123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862 |
- #include "StatistikTabelle.h"
- #include <TextFeld.h>
- #define ABSTYLE AuswahlBox::Style::Sichtbar | AuswahlBox::Style::Erlaubt | AuswahlBox::Style::Rahmen | AuswahlBox::Style::AuswahlBuffer | AuswahlBox::Style::MausBuffer | AuswahlBox::Style::MaxHeight | AuswahlBox::Style::Hintergrund | AuswahlBox::Style::VScroll
- #define OTSTYLE ObjTabelle::Style::Sichtbar | ObjTabelle::Style::Erlaubt | ObjTabelle::Style::Rahmen | ObjTabelle::Style::Raster | ObjTabelle::Style::scroll | ObjTabelle::Style::SpaltenBreiteMax | ObjTabelle::Style::SpaltenBreiteMin | ObjTabelle::Style::SpaltenBreiteChangeable | ObjTabelle::Style::SpaltenBeweglich
- struct OBJTabelleSpalteIni
- {
- const char* name;
- int breite;
- int minBreite;
- int maxBreite;
- };
- AuswahlBox* initAuswahlBox(int x, int y, int br, int hö, UIInit& uiFactory, int style, std::initializer_list< const char* > values)
- {
- AuswahlBox* ret = uiFactory.createAuswahlBox(uiFactory.initParam);
- ret->addStyle(style);
- ret->setPosition(x, y);
- ret->setSize(br, hö);
- if ((style | AuswahlBox::Style::Hintergrund) == style)
- ret->setHintergrundFarbe(0xFF000000);
- if ((style | AuswahlBox::Style::Erlaubt) == style)
- ret->setMausEreignis(_ret1ME);
- if ((style | AuswahlBox::Style::Rahmen) == style)
- {
- ret->setRahmenBreite(1);
- ret->setRahmenFarbe(0xFFFFFFFF);
- }
- if ((style | AuswahlBox::Style::MaxHeight) == style)
- ret->setMaxAuskappHeight(100);
- if ((style | AuswahlBox::Style::MausRahmen) == style)
- {
- ret->setMausRahmenBreite(1);
- ret->setMausRahmenFarbe(0xFF005500);
- }
- if ((style | AuswahlBox::Style::MausBuffer) == style)
- {
- ret->setMausAlphaFeldFarbe(0x00008700);
- ret->setMausAlphaFeldStrength(-8);
- }
- if ((style | AuswahlBox::Style::AuswahlRahmen) == style)
- {
- ret->setAuswRahmenBreite(1);
- ret->setAuswRahmenFarbe(0xFF00FF00);
- }
- if ((style | AuswahlBox::Style::AuswahlBuffer) == style)
- {
- ret->setAuswAlphaFeldFarbe(0x0000FF00);
- ret->setAuswAlphaFeldStrength(-8);
- }
- for (auto i = values.begin(); i != values.end(); i++)
- {
- ret->addEintrag(*i);
- }
- return ret;
- }
- ObjTabelle* initObjTabelle(int x, int y, int br, int hö, UIInit& uiFactory, int style, std::initializer_list< OBJTabelleSpalteIni > spalten, int überschriftHöhe)
- {
- ObjTabelle* ret = uiFactory.createObjTabelle(uiFactory.initParam);
- ret->addStyle(style);
- ret->setPosition(x, y);
- ret->setSize(br, hö);
- if ((style | ObjTabelle::Style::Erlaubt) == style)
- ret->setMausEreignis(_ret1ME);
- if ((style | ObjTabelle::Style::Rahmen) == style)
- {
- ret->setRahmenBreite(1);
- ret->setRahmenFarbe(0xFFFFFFFF);
- }
- if ((style | ObjTabelle::Style::Raster) == style)
- {
- ret->setRasterBreite(1);
- ret->setRasterFarbe(0xFFFFFFFF);
- }
- if ((style | ObjTabelle::Style::VScroll) == style)
- ret->setVertikalKlickScroll(5);
- if ((style | ObjTabelle::Style::HScroll) == style)
- ret->setHorizontalKlickScroll(5);
- for (auto i = spalten.begin(); i != spalten.end(); i++)
- {
- ret->addSpalte(i->name);
- ret->setSpaltenBreite(i->name, i->breite);
- if ((style | ObjTabelle::Style::SpaltenBreiteMin) == style)
- ret->setMinSpaltenBreite(i->name, i->minBreite);
- if ((style | ObjTabelle::Style::SpaltenBreiteMax) == style)
- ret->setMaxSpaltenBreite(i->name, i->maxBreite);
- if (überschriftHöhe)
- {
- if (ret->getZeilenNummer("Überschrift") < 0)
- {
- ret->addZeile(0, "Überschrift");
- ret->setZeilenHeight(0, 20);
- }
- TextFeld* tf = uiFactory.createTextFeld(uiFactory.initParam);
- tf->setSize(i->breite, 20);
- tf->setText(i->name);
- ret->setZeichnungZ(i->name, "Überschrift", tf);
- }
- }
- return ret;
- }
- TextFeld* initTextFeld(UIInit& uiFactory, int style, const char* txt)
- {
- TextFeld* ret = uiFactory.createTextFeld(uiFactory.initParam);
- ret->setStyle(style);
- if (txt)
- ret->setText(txt);
- return ret;
- }
- // Inhalt der StatistikTabelle Klasse aus StatistikTabelle.h
- // Konstruktor
- StatistikTabelle::StatistikTabelle(Array< SSDGesamtSpieler* >* ssdgs, Array< SSDGesamtTeam* >* ssdgt,
- Array< SSDRunde* >* ssdr, UIInit& uiFactory, bool historie)
- : ReferenceCounter(),
- uiFactory(uiFactory),
- ssdgs(ssdgs),
- ssdgt(ssdgt),
- ssdr(ssdr),
- stAuswahl(initAuswahlBox(10, 10, 120, 20, uiFactory, ABSTYLE, { "Spieler", "Teams" })),
- grAuswahl(initAuswahlBox(140, 10, 120, 20, uiFactory, ABSTYLE, { "Gesamt" })),
- sortAuswahlGS(initAuswahlBox(270, 10, 120, 20, uiFactory, ABSTYLE, { "Spielername", "Teamname", "Spielerfarbe", "Teamfarbe",
- "Gewonnene Runden", "Punkte", "Linienlänge", "Zeit am Leben",
- "Zeit tod", "Kills", "Tode" })),
- sortAuswahlGT(initAuswahlBox(270, 10, 120, 20, uiFactory, ABSTYLE, { "Teamname", "Teamfarbe", "Gewonnene Runden", "Punkte",
- "Linienlänge", "Kills", "Tode" })),
- sortAuswahlRS(new RCArray< AuswahlBox >()),
- sortAuswahlRT(new RCArray< AuswahlBox >()),
- sortRichtungGS(initAuswahlBox(400, 10, 120, 20, uiFactory, ABSTYLE, { "Aufwärts", "Abwärts" })),
- sortRichtungGT(initAuswahlBox(400, 10, 120, 20, uiFactory, ABSTYLE, { "Aufwärts", "Abwärts" })),
- sortRichtungRS(new RCArray< AuswahlBox >()),
- sortRichtungRT(new RCArray< AuswahlBox >()),
- gesamtSpieler(initObjTabelle(10, 40, 500, 245, uiFactory, OTSTYLE, { { "Spielername", 120, 20, 200 }, { "Teamname", 120, 20, 120 },
- { "Spielerfarbe", 100, 20, 100 }, { "Teamfarbe", 100, 20, 100 }, { "Gewonnene Runden", 130, 20, 130 }, { "Punkte", 50, 20, 50 },
- { "Linienlänge", 120, 20, 120 }, { "Zeit Am Leben", 120, 20, 120 }, { "Zeit tod", 60, 20, 60 }, { "Kills", 40, 20, 40 }, { "Tode", 40, 20, 40 } }, 20)),
- gesamtTeam(initObjTabelle(10, 40, 500, 245, uiFactory, OTSTYLE, { { "Teamname", 120, 20, 120 }, { "Teamfarbe", 100, 20, 100 },
- { "Gewonnene Runden", 130, 20, 130 }, { "Punkte", 50, 20, 50 }, { "Linienlänge", 120, 20, 120 }, { "Kills", 40, 20, 40 }, { "Tode", 40, 20, 40 } }, 20)),
- rundeSpieler(new RCArray< ObjTabelle >()),
- rundeTeam(new RCArray< ObjTabelle >()),
- teamS(0),
- rundeAusw(-1),
- rend(0)
- {
- tabelleFüllen(gesamtSpieler);
- tabelleFüllen(gesamtTeam);
- int anz = ssdr->getEintragAnzahl();
- for (int i = 0; i < anz; i++)
- {
- if (!ssdr->hat(i))
- continue;
- Text rName("Runde ");
- rName += ssdr->get(i)->rundenNummer + 1;
- grAuswahl->addEintrag(rName);
- AuswahlBox* ab = initAuswahlBox(270, 10, 120, 20, uiFactory, ABSTYLE, { "Spielername", "Teamname", "Spielerfarbe",
- "Teamfarbe", "Linienlänge", "Kills", "Todeszeit" });
- ab->setToolTipText("Spalte nach der sortiert werden soll.", uiFactory.initParam.bildschirm, uiFactory.initParam.schrift);
- sortAuswahlRS->add(ab);
- ab = initAuswahlBox(270, 10, 120, 20, uiFactory, ABSTYLE, { "Teamname", "Teamfarbe", "Ergebnis",
- "Linienlänge", "Kills", "Tode" });
- ab->setToolTipText("Spalte nach der sortiert werden soll.", uiFactory.initParam.bildschirm, uiFactory.initParam.schrift);
- sortAuswahlRT->add(ab);
- ab = initAuswahlBox(400, 10, 120, 20, uiFactory, ABSTYLE, { "Aufwärts", "Abwärts" });
- ab->setToolTipText("Richtung nach der sortiert werden soll.", uiFactory.initParam.bildschirm, uiFactory.initParam.schrift);
- sortRichtungRS->add(ab);
- ab = initAuswahlBox(400, 10, 120, 20, uiFactory, ABSTYLE, { "Aufwärts", "Abwärts" });
- ab->setToolTipText("Richtung nach der sortiert werden soll.", uiFactory.initParam.bildschirm, uiFactory.initParam.schrift);
- sortRichtungRT->add(ab);
- rundeSpieler->add(initObjTabelle(10, 40, 500, 245, uiFactory, OTSTYLE, { { "Spielername", 120, 20, 200 }, { "Teamname", 120, 20, 120 },
- { "Spielerfarbe", 100, 20, 100 }, { "Teamfarbe", 100, 20, 100 }, { "Linienlänge", 120, 20, 120 }, { "Kills", 40, 20, 40 }, { "Todeszeit", 80, 20, 80 } }, 20));
- rundeTeam->add(initObjTabelle(10, 40, 500, 245, uiFactory, OTSTYLE, { { "Teamname", 120, 20, 120 }, { "Teamfarbe", 100, 20, 100 },
- { "Ergebnis", 80, 20, 80 }, { "Linienlänge", 120, 20, 120 }, { "Kills", 40, 20, 40 }, { "Tode", 40, 20, 40 } }, 20));
- tabelleFüllen(rundeSpieler->z(i));
- tabelleFüllen(rundeTeam->z(i));
- }
- if (historie)
- {
- sortRichtungGS->setSize(110, 20);
- sortRichtungGT->setSize(110, 20);
- gesamtSpieler->setSize(500, 380);
- gesamtTeam->setSize(500, 380);
- for (int i = 0; i < anz; i++)
- {
- rundeSpieler->z(i)->setSize(500, 380);
- rundeTeam->z(i)->setSize(500, 380);
- sortRichtungRS->z(i)->setSize(110, 20);
- sortRichtungRT->z(i)->setSize(110, 20);
- }
- }
- }
- // Destruktor
- StatistikTabelle::~StatistikTabelle()
- {
- tabelleLehren(gesamtSpieler, 1);
- tabelleLehren(gesamtTeam, 1);
- int anz = rundeSpieler->getEintragAnzahl();
- for (int i = 0; i < anz; i++)
- tabelleLehren(rundeSpieler->z(i), 1);
- anz = rundeTeam->getEintragAnzahl();
- for (int i = 0; i < anz; i++)
- tabelleLehren(rundeTeam->z(i), 1);
- ssdgs->release();
- ssdgt->release();
- ssdr->release();
- stAuswahl->release();
- grAuswahl->release();
- sortAuswahlGS->release();
- sortAuswahlGT->release();
- sortAuswahlRS->release();
- sortAuswahlRT->release();
- sortRichtungGS->release();
- sortRichtungGT->release();
- sortRichtungRS->release();
- sortRichtungRT->release();
- gesamtSpieler->release();
- gesamtTeam->release();
- rundeSpieler->release();
- rundeTeam->release();
- }
- // privat
- void StatistikTabelle::tabelleLehren(ObjTabelle* zT, bool überschrift)
- {
- int zAnz = zT->getZeilenAnzahl();
- for (int i = !überschrift; i < zAnz; i++)
- zT->removeZeile(!überschrift);
- }
- void StatistikTabelle::tabelleFüllen(ObjTabelle* zT)
- {
- if (zT == gesamtSpieler)
- {
- if (!sortAuswahlGS->zEintragText(sortAuswahlGS->getAuswahl()))
- return;
- if (!sortRichtungGS->zEintragText(sortRichtungGS->getAuswahl()))
- return;
- Array< int > reihenfolge;
- bool aufsteigend = sortRichtungGS->zEintragText(sortRichtungGS->getAuswahl())->istGleich("Aufwärts");
- int anz = ssdgs->getEintragAnzahl();
- bool* fertig = new bool[anz];
- ZeroMemory(fertig, anz);
- bool spielername = sortAuswahlGS->zEintragText(sortAuswahlGS->getAuswahl())->istGleich("Spielername");
- bool teamname = sortAuswahlGS->zEintragText(sortAuswahlGS->getAuswahl())->istGleich("Teamname");
- bool spielerfarbe = sortAuswahlGS->zEintragText(sortAuswahlGS->getAuswahl())->istGleich("Spielerfarbe");
- bool teamfarbe = sortAuswahlGS->zEintragText(sortAuswahlGS->getAuswahl())->istGleich("Teamfarbe");
- bool gewonnenerunden = sortAuswahlGS->zEintragText(sortAuswahlGS->getAuswahl())->istGleich("Gewonnene Runden");
- bool punkte = sortAuswahlGS->zEintragText(sortAuswahlGS->getAuswahl())->istGleich("Punkte");
- bool linienlänge = sortAuswahlGS->zEintragText(sortAuswahlGS->getAuswahl())->istGleich("Linienlänge");
- bool zeitamleben = sortAuswahlGS->zEintragText(sortAuswahlGS->getAuswahl())->istGleich("Zeit am Leben");
- bool zeittod = sortAuswahlGS->zEintragText(sortAuswahlGS->getAuswahl())->istGleich("Zeit tod");
- bool kills = sortAuswahlGS->zEintragText(sortAuswahlGS->getAuswahl())->istGleich("Kills");
- bool tode = sortAuswahlGS->zEintragText(sortAuswahlGS->getAuswahl())->istGleich("Tode");
- for (int i = 0; i < anz; i++)
- {
- Text minMaxT;
- int minMax;
- int pos = -1;
- for (int j = 0; j < anz; j++)
- {
- if (!ssdgs->hat(j) || fertig[j])
- continue;
- if (spielername && (pos < 0 || (aufsteigend && ssdgs->get(j)->spielerName < minMaxT) || (!aufsteigend && ssdgs->get(j)->spielerName > minMaxT)))
- { // Sortiert nach Spieler Name
- minMaxT = ssdgs->get(j)->spielerName.getText();
- pos = j;
- }
- if (teamname && (pos < 0 || (aufsteigend && ssdgs->get(j)->teamName < minMaxT) || (!aufsteigend && ssdgs->get(j)->teamName > minMaxT)))
- { // Sortiert nach Team Name
- minMaxT = ssdgs->get(j)->teamName.getText();
- pos = j;
- }
- if (spielerfarbe && (pos < 0 || (aufsteigend && ssdgs->get(j)->spielerFarbe < minMax) || (!aufsteigend && ssdgs->get(j)->spielerFarbe > minMax)))
- { // Sortiert nach Spieler Farbe
- minMax = ssdgs->get(j)->spielerFarbe;
- pos = j;
- }
- if (teamfarbe && (pos < 0 || (aufsteigend && ssdgs->get(j)->teamFarbe < minMax) || (!aufsteigend && ssdgs->get(j)->teamFarbe > minMax)))
- { // Sortiert nach Team Farbe
- minMax = ssdgs->get(j)->teamFarbe;
- pos = j;
- }
- if (gewonnenerunden && (pos < 0 || (aufsteigend && ssdgs->get(j)->gewonneneRunden < minMax) || (!aufsteigend && ssdgs->get(j)->gewonneneRunden > minMax)))
- { // Sortiert nach Gewonnenen Runden
- minMax = ssdgs->get(j)->gewonneneRunden;
- pos = j;
- }
- if (punkte && (pos < 0 || (aufsteigend && ssdgs->get(j)->punkte < minMax) || (!aufsteigend && ssdgs->get(j)->punkte > minMax)))
- { // Sortiert nach Punkten
- minMax = ssdgs->get(j)->punkte;
- pos = j;
- }
- if (linienlänge && (pos < 0 || (aufsteigend && ssdgs->get(j)->linienLänge < minMax) || (!aufsteigend && ssdgs->get(j)->linienLänge > minMax)))
- { // Sortiert nach Linienlängen
- minMax = ssdgs->get(j)->linienLänge;
- pos = j;
- }
- if (zeitamleben && (pos < 0 || (aufsteigend && ssdgs->get(j)->zeitAmLeben < minMax) || (!aufsteigend && ssdgs->get(j)->zeitAmLeben > minMax)))
- { // Sortiert nach Zeit Am Leben
- minMax = ssdgs->get(j)->zeitAmLeben;
- pos = j;
- }
- if (zeittod && (pos < 0 || (aufsteigend && ssdgs->get(j)->zeitTod < minMax) || (!aufsteigend && ssdgs->get(j)->zeitTod > minMax)))
- { // Sortiert nach Zeit Tod
- minMax = ssdgs->get(j)->zeitTod;
- pos = j;
- }
- if (kills && (pos < 0 || (aufsteigend && ssdgs->get(j)->kills < minMax) || (!aufsteigend && ssdgs->get(j)->kills > minMax)))
- { // Sortiert nach Kills
- minMax = ssdgs->get(j)->kills;
- pos = j;
- }
- if (tode && (pos < 0 || (aufsteigend && ssdgs->get(j)->tode < minMax) || (!aufsteigend && ssdgs->get(j)->tode > minMax)))
- { // Sortiert nach Toden
- minMax = ssdgs->get(j)->tode;
- pos = j;
- }
- }
- if (pos >= 0)
- {
- reihenfolge.add(pos);
- fertig[pos] = 1;
- }
- else
- break;
- }
- delete[] fertig;
- anz = reihenfolge.getEintragAnzahl();
- for (int j = 0; j < anz; j++)
- {
- int i = reihenfolge.get(j);
- zT->addZeile(Text("Spieler ") += ssdgs->get(i)->spielerNummer);
- int zNum = zT->getZeilenNummer(Text("Spieler ") += ssdgs->get(i)->spielerNummer);
- zT->setZeichnungZ(zT->getSpaltenNummer("Spielername"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, ssdgs->get(i)->spielerName));
- zT->setZeichnungZ(zT->getSpaltenNummer("Teamname"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, ssdgs->get(i)->teamName));
- zT->setZeichnungZ(zT->getSpaltenNummer("Spielerfarbe"), zNum, initTextFeld(uiFactory, TextFeld::Style::Sichtbar | TextFeld::Style::Hintergrund, 0));
- ((TextFeld*)zT->zZeichnung(zT->getSpaltenNummer("Spielerfarbe"), zNum))->setHintergrundFarbe(ssdgs->get(i)->spielerFarbe);
- zT->setZeichnungZ(zT->getSpaltenNummer("Teamfarbe"), zNum, initTextFeld(uiFactory, TextFeld::Style::Sichtbar | TextFeld::Style::Hintergrund, 0));
- ((TextFeld*)zT->zZeichnung(zT->getSpaltenNummer("Teamfarbe"), zNum))->setHintergrundFarbe(ssdgs->get(i)->teamFarbe);
- zT->setZeichnungZ(zT->getSpaltenNummer("Gewonnene Runden"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdgs->get(i)->gewonneneRunden));
- zT->setZeichnungZ(zT->getSpaltenNummer("Punkte"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdgs->get(i)->punkte));
- zT->setZeichnungZ(zT->getSpaltenNummer("Linienlänge"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdgs->get(i)->linienLänge));
- Text zeitAmLeben;
- zeitAmLeben += ssdgs->get(i)->zeitAmLeben / 60;
- zeitAmLeben += ":";
- zeitAmLeben += ssdgs->get(i)->zeitAmLeben % 60;
- zT->setZeichnungZ(zT->getSpaltenNummer("Zeit Am Leben"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, zeitAmLeben));
- Text zeitTod;
- zeitTod += ssdgs->get(i)->zeitTod / 60;
- zeitTod += ":";
- zeitTod += ssdgs->get(i)->zeitTod % 60;
- zT->setZeichnungZ(zT->getSpaltenNummer("Zeit tod"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, zeitTod));
- zT->setZeichnungZ(zT->getSpaltenNummer("Kills"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdgs->get(i)->kills));
- zT->setZeichnungZ(zT->getSpaltenNummer("Tode"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdgs->get(i)->tode));
- }
- return;
- }
- if (zT == gesamtTeam)
- {
- if (!sortAuswahlGT->zEintragText(sortAuswahlGT->getAuswahl()))
- return;
- if (!sortRichtungGS->zEintragText(sortRichtungGS->getAuswahl()))
- return;
- Array< int > reihenfolge;
- bool aufsteigend = sortRichtungGT->zEintragText(sortRichtungGT->getAuswahl())->istGleich("Aufwärts");
- int anz = ssdgt->getEintragAnzahl();
- bool* fertig = new bool[anz];
- ZeroMemory(fertig, anz);
- bool teamname = sortAuswahlGT->zEintragText(sortAuswahlGT->getAuswahl())->istGleich("Teamname");
- bool teamfarbe = sortAuswahlGT->zEintragText(sortAuswahlGT->getAuswahl())->istGleich("Teamfarbe");
- bool gewonnenerunden = sortAuswahlGT->zEintragText(sortAuswahlGT->getAuswahl())->istGleich("Gewonnene Runden");
- bool punkte = sortAuswahlGT->zEintragText(sortAuswahlGT->getAuswahl())->istGleich("Punkte");
- bool linienlänge = sortAuswahlGT->zEintragText(sortAuswahlGT->getAuswahl())->istGleich("Linienlänge");
- bool kills = sortAuswahlGT->zEintragText(sortAuswahlGT->getAuswahl())->istGleich("Kills");
- bool tode = sortAuswahlGT->zEintragText(sortAuswahlGT->getAuswahl())->istGleich("Tode");
- for (int i = 0; i < anz; i++)
- {
- Text minMaxT;
- int minMax;
- int pos = -1;
- for (int j = 0; j < anz; j++)
- {
- if (!ssdgt->hat(j) || fertig[j])
- continue;
- if (teamname && (pos < 0 || (aufsteigend && ssdgt->get(j)->teamName < minMaxT) || (!aufsteigend && ssdgt->get(j)->teamName > minMaxT)))
- { // Sortiert nach Team Name
- minMaxT = ssdgt->get(j)->teamName.getText();
- pos = j;
- }
- if (teamfarbe && (pos < 0 || (aufsteigend && ssdgt->get(j)->teamFarbe < minMax) || (!aufsteigend && ssdgt->get(j)->teamFarbe > minMax)))
- { // Sortiert nach Team Farbe
- minMax = ssdgt->get(j)->teamFarbe;
- pos = j;
- }
- if (gewonnenerunden && (pos < 0 || (aufsteigend && ssdgt->get(j)->gewonneneRunden < minMax) || (!aufsteigend && ssdgt->get(j)->gewonneneRunden > minMax)))
- { // Sortiert nach Gewonnenen Runden
- minMax = ssdgt->get(j)->gewonneneRunden;
- pos = j;
- }
- if (punkte && (pos < 0 || (aufsteigend && ssdgt->get(j)->punkte < minMax) || (!aufsteigend && ssdgt->get(j)->punkte > minMax)))
- { // Sortiert nach Punkten
- minMax = ssdgt->get(j)->punkte;
- pos = j;
- }
- if (linienlänge && (pos < 0 || (aufsteigend && ssdgt->get(j)->linienLänge < minMax) || (!aufsteigend && ssdgt->get(j)->linienLänge > minMax)))
- { // Sortiert nach Linienlängen
- minMax = ssdgt->get(j)->linienLänge;
- pos = j;
- }
- if (kills && (pos < 0 || (aufsteigend && ssdgt->get(j)->kills < minMax) || (!aufsteigend && ssdgt->get(j)->kills > minMax)))
- { // Sortiert nach Kills
- minMax = ssdgt->get(j)->kills;
- pos = j;
- }
- if (tode && (pos < 0 || (aufsteigend && ssdgt->get(j)->tode < minMax) || (!aufsteigend && ssdgt->get(j)->tode > minMax)))
- { // Sortiert nach Toden
- minMax = ssdgt->get(j)->tode;
- pos = j;
- }
- }
- if (pos >= 0)
- {
- reihenfolge.add(pos);
- fertig[pos] = 1;
- }
- else
- break;
- }
- delete[] fertig;
- anz = reihenfolge.getEintragAnzahl();
- for (int j = 0; j < anz; j++)
- {
- int i = reihenfolge.get(j);
- zT->addZeile(Text("Team ") += ssdgt->get(i)->teamNummer);
- int zNum = zT->getZeilenNummer(Text("Team ") += ssdgt->get(i)->teamNummer);
- zT->setZeichnungZ(zT->getSpaltenNummer("Teamname"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, ssdgt->get(i)->teamName));
- zT->setZeichnungZ(zT->getSpaltenNummer("Teamfarbe"), zNum, initTextFeld(uiFactory, TextFeld::Style::Sichtbar | TextFeld::Style::Hintergrund, 0));
- ((TextFeld*)zT->zZeichnung(zT->getSpaltenNummer("Teamfarbe"), zNum))->setHintergrundFarbe(ssdgt->get(i)->teamFarbe);
- zT->setZeichnungZ(zT->getSpaltenNummer("Gewonnene Runden"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdgt->get(i)->gewonneneRunden));
- zT->setZeichnungZ(zT->getSpaltenNummer("Punkte"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdgt->get(i)->punkte));
- zT->setZeichnungZ(zT->getSpaltenNummer("Linienlänge"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdgt->get(i)->linienLänge));
- zT->setZeichnungZ(zT->getSpaltenNummer("Kills"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdgt->get(i)->kills));
- zT->setZeichnungZ(zT->getSpaltenNummer("Tode"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdgt->get(i)->tode));
- }
- return;
- }
- int anz = rundeSpieler->getEintragAnzahl();
- for (int h = 0; h < anz; h++)
- {
- if (zT == rundeSpieler->z(h))
- {
- if (!ssdr->hat(h))
- return;
- Array< SSDRundeSpieler* >* ssdrs = &ssdr->get(h)->spieler;
- AuswahlBox* sortAuswahl = sortAuswahlRS->z(h);
- AuswahlBox* sortRichtung = sortRichtungRS->z(h);
- if (!sortAuswahl || !sortAuswahl->zEintragText(sortAuswahl->getAuswahl()))
- return;
- if (!sortRichtung || !sortRichtung->zEintragText(sortRichtung->getAuswahl()))
- return;
- Array< int > reihenfolge;
- bool aufsteigend = sortRichtung->zEintragText(sortRichtung->getAuswahl())->istGleich("Aufwärts");
- int anz = ssdrs->getEintragAnzahl();
- bool* fertig = new bool[anz];
- ZeroMemory(fertig, anz);
- bool spielername = sortAuswahl->zEintragText(sortAuswahl->getAuswahl())->istGleich("Spielername");
- bool teamname = sortAuswahl->zEintragText(sortAuswahl->getAuswahl())->istGleich("Teamname");
- bool spielerfarbe = sortAuswahl->zEintragText(sortAuswahl->getAuswahl())->istGleich("Spielerfarbe");
- bool teamfarbe = sortAuswahl->zEintragText(sortAuswahl->getAuswahl())->istGleich("Teamfarbe");
- bool linienlänge = sortAuswahl->zEintragText(sortAuswahl->getAuswahl())->istGleich("Linienlänge");
- bool kills = sortAuswahl->zEintragText(sortAuswahl->getAuswahl())->istGleich("Kills");
- bool todeszeit = sortAuswahl->zEintragText(sortAuswahl->getAuswahl())->istGleich("Todeszeit");
- for (int i = 0; i < anz; i++)
- {
- Text minMaxT;
- int minMax;
- int pos = -1;
- for (int j = 0; j < anz; j++)
- {
- if (!ssdrs->hat(j) || fertig[j])
- continue;
- if (spielername && (pos < 0 || (aufsteigend && ssdrs->get(j)->spielerName < minMaxT) || (!aufsteigend && ssdrs->get(j)->spielerName > minMaxT)))
- { // Sortiert nach Spieler Name
- minMaxT = ssdrs->get(j)->spielerName.getText();
- pos = j;
- }
- if (teamname && (pos < 0 || (aufsteigend && ssdrs->get(j)->teamName < minMaxT) || (!aufsteigend && ssdrs->get(j)->teamName > minMaxT)))
- { // Sortiert nach Team Name
- minMaxT = ssdrs->get(j)->teamName.getText();
- pos = j;
- }
- if (spielerfarbe && (pos < 0 || (aufsteigend && ssdrs->get(j)->spielerFarbe < minMax) || (!aufsteigend && ssdrs->get(j)->spielerFarbe > minMax)))
- { // Sortiert nach Spieler Farbe
- minMax = ssdrs->get(j)->spielerFarbe;
- pos = j;
- }
- if (teamfarbe && (pos < 0 || (aufsteigend && ssdrs->get(j)->teamFarbe < minMax) || (!aufsteigend && ssdrs->get(j)->teamFarbe > minMax)))
- { // Sortiert nach Team Farbe
- minMax = ssdrs->get(j)->teamFarbe;
- pos = j;
- }
- if (linienlänge && (pos < 0 || (aufsteigend && ssdrs->get(j)->linienLänge < minMax) || (!aufsteigend && ssdrs->get(j)->linienLänge > minMax)))
- { // Sortiert nach Linienlängen
- minMax = ssdrs->get(j)->linienLänge;
- pos = j;
- }
- if (kills && (pos < 0 || (aufsteigend && ssdrs->get(j)->kills < minMax) || (!aufsteigend && ssdrs->get(j)->kills > minMax)))
- { // Sortiert nach Kills
- minMax = ssdrs->get(j)->kills;
- pos = j;
- }
- if (todeszeit && (pos < 0 || (aufsteigend && ssdrs->get(j)->todesZeit < minMax) || (!aufsteigend && ssdrs->get(j)->todesZeit > minMax)))
- { // Sortiert nach Todeszeitpunkten
- minMax = ssdrs->get(j)->todesZeit;
- pos = j;
- }
- }
- if (pos >= 0)
- {
- reihenfolge.add(pos);
- fertig[pos] = 1;
- }
- else
- break;
- }
- delete[] fertig;
- anz = reihenfolge.getEintragAnzahl();
- for (int j = 0; j < anz; j++)
- {
- int i = reihenfolge.get(j);
- zT->addZeile(Text("Spieler ") += ssdrs->get(i)->spielerNummer);
- int zNum = zT->getZeilenNummer(Text("Spieler ") += ssdrs->get(i)->spielerNummer);
- zT->setZeichnungZ(zT->getSpaltenNummer("Spielername"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, ssdrs->get(i)->spielerName));
- zT->setZeichnungZ(zT->getSpaltenNummer("Teamname"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, ssdrs->get(i)->teamName));
- zT->setZeichnungZ(zT->getSpaltenNummer("Spielerfarbe"), zNum, initTextFeld(uiFactory, TextFeld::Style::Sichtbar | TextFeld::Style::Hintergrund, 0));
- ((TextFeld*)zT->zZeichnung(zT->getSpaltenNummer("Spielerfarbe"), zNum))->setHintergrundFarbe(ssdrs->get(i)->spielerFarbe);
- zT->setZeichnungZ(zT->getSpaltenNummer("Teamfarbe"), zNum, initTextFeld(uiFactory, TextFeld::Style::Sichtbar | TextFeld::Style::Hintergrund, 0));
- ((TextFeld*)zT->zZeichnung(zT->getSpaltenNummer("Teamfarbe"), zNum))->setHintergrundFarbe(ssdrs->get(i)->teamFarbe);
- zT->setZeichnungZ(zT->getSpaltenNummer("Linienlänge"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdrs->get(i)->linienLänge));
- zT->setZeichnungZ(zT->getSpaltenNummer("Kills"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdrs->get(i)->kills));
- Text todesZeit;
- todesZeit += ssdrs->get(i)->todesZeit / 60;
- todesZeit += ":";
- todesZeit += ssdrs->get(i)->todesZeit % 60;
- zT->setZeichnungZ(zT->getSpaltenNummer("Todeszeit"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, todesZeit));
- }
- return;
- }
- }
- anz = rundeTeam->getEintragAnzahl();
- for (int h = 0; h < anz; h++)
- {
- if (zT == rundeTeam->z(h))
- {
- if (!ssdr->hat(h))
- return;
- Array< SSDRundeTeam* >* ssdrt = &ssdr->get(h)->teams;
- AuswahlBox* sortAuswahl = sortAuswahlRT->z(h);
- AuswahlBox* sortRichtung = sortRichtungRT->z(h);
- if (!sortAuswahl || !sortAuswahl->zEintragText(sortAuswahl->getAuswahl()))
- return;
- if (!sortRichtung || !sortRichtung->zEintragText(sortRichtung->getAuswahl()))
- return;
- Array< int > reihenfolge;
- bool aufsteigend = sortRichtung->zEintragText(sortRichtung->getAuswahl())->istGleich("Aufwärts");
- int anz = ssdrt->getEintragAnzahl();
- bool* fertig = new bool[anz];
- ZeroMemory(fertig, anz);
- bool teamname = sortAuswahl->zEintragText(sortAuswahl->getAuswahl())->istGleich("Teamname");
- bool teamfarbe = sortAuswahl->zEintragText(sortAuswahl->getAuswahl())->istGleich("Teamfarbe");
- bool ergebnis = sortAuswahl->zEintragText(sortAuswahl->getAuswahl())->istGleich("Ergebnis");
- bool linienlänge = sortAuswahl->zEintragText(sortAuswahl->getAuswahl())->istGleich("Linienlänge");
- bool kills = sortAuswahl->zEintragText(sortAuswahl->getAuswahl())->istGleich("Kills");
- bool tode = sortAuswahl->zEintragText(sortAuswahl->getAuswahl())->istGleich("Tode");
- for (int i = 0; i < anz; i++)
- {
- Text minMaxT;
- int minMax;
- int pos = -1;
- for (int j = 0; j < anz; j++)
- {
- if (!ssdrt->hat(j) || fertig[j])
- continue;
- if (teamname && (pos < 0 || (aufsteigend && ssdrt->get(j)->teamName < minMaxT) || (!aufsteigend && ssdrt->get(j)->teamName > minMaxT)))
- { // Sortiert nach Team Name
- minMaxT = ssdrt->get(j)->teamName.getText();
- pos = j;
- }
- if (teamfarbe && (pos < 0 || (aufsteigend && ssdrt->get(j)->teamFarbe < minMax) || (!aufsteigend && ssdrt->get(j)->teamFarbe > minMax)))
- { // Sortiert nach Team Farbe
- minMax = ssdrt->get(j)->teamFarbe;
- pos = j;
- }
- if (ergebnis && (pos < 0 || (aufsteigend && ssdrt->get(j)->ergebnis < minMax) || (!aufsteigend && ssdrt->get(j)->ergebnis > minMax)))
- { // Sortiert nach Ergebnis
- minMax = ssdrt->get(j)->ergebnis;
- pos = j;
- }
- if (linienlänge && (pos < 0 || (aufsteigend && ssdrt->get(j)->linienLänge < minMax) || (!aufsteigend && ssdrt->get(j)->linienLänge > minMax)))
- { // Sortiert nach Linienlängen
- minMax = ssdrt->get(j)->linienLänge;
- pos = j;
- }
- if (kills && (pos < 0 || (aufsteigend && ssdrt->get(j)->kills < minMax) || (!aufsteigend && ssdrt->get(j)->kills > minMax)))
- { // Sortiert nach Kills
- minMax = ssdrt->get(j)->kills;
- pos = j;
- }
- if (tode && (pos < 0 || (aufsteigend && ssdrt->get(j)->tode < minMax) || (!aufsteigend && ssdrt->get(j)->tode > minMax)))
- { // Sortiert nach Todeszeitpunkten
- minMax = ssdrt->get(j)->tode;
- pos = j;
- }
- }
- if (pos >= 0)
- {
- reihenfolge.add(pos);
- fertig[pos] = 1;
- }
- else
- break;
- }
- delete[] fertig;
- anz = reihenfolge.getEintragAnzahl();
- for (int j = 0; j < anz; j++)
- {
- int i = reihenfolge.get(j);
- zT->addZeile(Text("Team ") += ssdrt->get(i)->teamNummer);
- int zNum = zT->getZeilenNummer(Text("Team ") += ssdrt->get(i)->teamNummer);
- zT->setZeichnungZ(zT->getSpaltenNummer("Teamname"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, ssdrt->get(i)->teamName));
- zT->setZeichnungZ(zT->getSpaltenNummer("Teamfarbe"), zNum, initTextFeld(uiFactory, TextFeld::Style::Sichtbar | TextFeld::Style::Hintergrund, 0));
- ((TextFeld*)zT->zZeichnung(zT->getSpaltenNummer("Teamfarbe"), zNum))->setHintergrundFarbe(ssdrt->get(i)->teamFarbe);
- zT->setZeichnungZ(zT->getSpaltenNummer("Ergebnis"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, ergebnis ? Text("Gewonnen") : Text("Verloren")));
- zT->setZeichnungZ(zT->getSpaltenNummer("Linienlänge"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdrt->get(i)->linienLänge));
- zT->setZeichnungZ(zT->getSpaltenNummer("Kills"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdrt->get(i)->kills));
- zT->setZeichnungZ(zT->getSpaltenNummer("Tode"), zNum, initTextFeld(uiFactory, TextFeld::Style::Text, Text() += ssdrt->get(i)->tode));
- }
- return;
- }
- }
- }
- // nicht constant
- void StatistikTabelle::doPublicMausEreignis(MausEreignis& me)
- {
- // Auswahl Boxen
- int ausw = stAuswahl->getAuswahl();
- stAuswahl->doPublicMausEreignis(me);
- if (ausw != stAuswahl->getAuswahl())
- {
- teamS = stAuswahl->zEintragText(stAuswahl->getAuswahl())->istGleich("Teams");
- stAuswahl->einklappen();
- }
- ausw = grAuswahl->getAuswahl();
- grAuswahl->doPublicMausEreignis(me);
- if (ausw != grAuswahl->getAuswahl())
- {
- if (grAuswahl->zEintragText(grAuswahl->getAuswahl())->istGleich("Gesamt"))
- rundeAusw = -1;
- Text* nummer = grAuswahl->zEintragText(grAuswahl->getAuswahl())->getTeilText(6);
- rundeAusw = (int)(*nummer) - 1;
- nummer->release();
- grAuswahl->einklappen();
- }
- if (rundeAusw == -1)
- { // Statistik vom gesamtem Spiel
- if (teamS)
- { // Team Statistik
- int ausw = sortAuswahlGT->getAuswahl();
- sortAuswahlGT->doPublicMausEreignis(me);
- if (ausw != sortAuswahlGT->getAuswahl())
- { // Sortierungs Spalte ändert sich
- tabelleLehren(gesamtTeam, 0);
- tabelleFüllen(gesamtTeam);
- sortAuswahlGT->einklappen();
- }
- ausw = sortRichtungGT->getAuswahl();
- sortRichtungGT->doPublicMausEreignis(me);
- if (ausw != sortRichtungGT->getAuswahl())
- { // Sortierungs Richtung ändert sich
- tabelleLehren(gesamtTeam, 0);
- tabelleFüllen(gesamtTeam);
- sortRichtungGT->einklappen();
- }
- gesamtTeam->doPublicMausEreignis(me);
- }
- else
- { // Spieler Statistik
- int ausw = sortAuswahlGS->getAuswahl();
- sortAuswahlGS->doPublicMausEreignis(me);
- if (ausw != sortAuswahlGS->getAuswahl())
- { // Sortierungs Spalte ändert sich
- tabelleLehren(gesamtSpieler, 0);
- tabelleFüllen(gesamtSpieler);
- sortAuswahlGS->einklappen();
- }
- ausw = sortRichtungGS->getAuswahl();
- sortRichtungGS->doPublicMausEreignis(me);
- if (ausw != sortRichtungGS->getAuswahl())
- { // Sortierungs Richtung ändert sich
- tabelleLehren(gesamtSpieler, 0);
- tabelleFüllen(gesamtSpieler);
- sortRichtungGS->einklappen();
- }
- gesamtSpieler->doPublicMausEreignis(me);
- }
- }
- else
- { // Statistik von einer Runde
- if (teamS)
- { // Team Statistik
- if (sortAuswahlRT->z(rundeAusw))
- {
- int ausw = sortAuswahlRT->z(rundeAusw)->getAuswahl();
- sortAuswahlRT->z(rundeAusw)->doPublicMausEreignis(me);
- if (ausw != sortAuswahlRT->z(rundeAusw)->getAuswahl() && rundeTeam->z(rundeAusw))
- { // Sortierungs Spalte ändert sich
- tabelleLehren(rundeTeam->z(rundeAusw), 0);
- tabelleFüllen(rundeTeam->z(rundeAusw));
- sortAuswahlRT->z(rundeAusw)->einklappen();
- }
- }
- if (sortRichtungRT->z(rundeAusw))
- {
- int ausw = sortRichtungRT->z(rundeAusw)->getAuswahl();
- sortRichtungRT->z(rundeAusw)->doPublicMausEreignis(me);
- if (ausw != sortRichtungRT->z(rundeAusw)->getAuswahl() && rundeTeam->z(rundeAusw))
- { // Sortierungs Richtung ändert sich
- tabelleLehren(rundeTeam->z(rundeAusw), 0);
- tabelleFüllen(rundeTeam->z(rundeAusw));
- sortRichtungRT->z(rundeAusw)->einklappen();
- }
- }
- if (rundeTeam->z(rundeAusw))
- rundeTeam->z(rundeAusw)->doPublicMausEreignis(me);
- }
- else
- { // Spieler Statistik
- if (sortAuswahlRS->z(rundeAusw))
- {
- int ausw = sortAuswahlRS->z(rundeAusw)->getAuswahl();
- sortAuswahlRS->z(rundeAusw)->doPublicMausEreignis(me);
- if (ausw != sortAuswahlRS->z(rundeAusw)->getAuswahl() && rundeSpieler->z(rundeAusw))
- { // Sortierungs Spalte ändert sich
- tabelleLehren(rundeSpieler->z(rundeAusw), 0);
- tabelleFüllen(rundeSpieler->z(rundeAusw));
- sortAuswahlRS->z(rundeAusw)->einklappen();
- }
- }
- if (sortRichtungRS->z(rundeAusw))
- {
- int ausw = sortRichtungRS->z(rundeAusw)->getAuswahl();
- sortRichtungRS->z(rundeAusw)->doPublicMausEreignis(me);
- if (ausw != sortRichtungRS->z(rundeAusw)->getAuswahl() && rundeSpieler->z(rundeAusw))
- { // Sortierungs Richtung ändert sich
- tabelleLehren(rundeSpieler->z(rundeAusw), 0);
- tabelleFüllen(rundeSpieler->z(rundeAusw));
- sortRichtungRS->z(rundeAusw)->einklappen();
- }
- }
- if (rundeSpieler->z(rundeAusw))
- rundeSpieler->z(rundeAusw)->doPublicMausEreignis(me);
- }
- }
- }
- bool StatistikTabelle::tick(double tickVal)
- {
- if (rundeAusw == -1)
- { // Statistik vom gesamtem Spiel
- if (teamS)
- { // Team Statistik
- rend |= gesamtTeam->tick(tickVal);
- rend |= sortAuswahlGT->tick(tickVal);
- rend |= sortRichtungGT->tick(tickVal);
- }
- else
- { // Spieler Statistik
- rend |= gesamtSpieler->tick(tickVal);
- rend |= sortAuswahlGS->tick(tickVal);
- rend |= sortRichtungGS->tick(tickVal);
- }
- }
- else
- { // Statistik von einer Runde
- if (teamS)
- { // Team Statistik
- if (rundeTeam->z(rundeAusw))
- rend |= rundeTeam->z(rundeAusw)->tick(tickVal);
- if (sortAuswahlRT->z(rundeAusw))
- rend |= sortAuswahlRT->z(rundeAusw)->tick(tickVal);
- if (sortRichtungRT->z(rundeAusw))
- rend |= sortRichtungRT->z(rundeAusw)->tick(tickVal);
- }
- else
- { // Spieler Statistik
- if (rundeSpieler->z(rundeAusw))
- rend |= rundeSpieler->z(rundeAusw)->tick(tickVal);
- if (sortAuswahlRS->z(rundeAusw))
- rend |= sortAuswahlRS->z(rundeAusw)->tick(tickVal);
- if (sortRichtungRS->z(rundeAusw))
- rend |= sortRichtungRS->z(rundeAusw)->tick(tickVal);
- }
- }
- // Auswahl Boxen
- rend |= stAuswahl->tick(tickVal);
- rend |= grAuswahl->tick(tickVal);
- bool ret = rend;
- rend = 0;
- return ret;
- }
- void StatistikTabelle::render(Bild& zRObj)
- {
- if (rundeAusw == -1)
- { // Statistik vom gesamtem Spiel
- if (teamS)
- { // Team Statistik
- gesamtTeam->render(zRObj);
- sortAuswahlGT->render(zRObj);
- sortRichtungGT->render(zRObj);
- }
- else
- { // Spieler Statistik
- gesamtSpieler->render(zRObj);
- sortAuswahlGS->render(zRObj);
- sortRichtungGS->render(zRObj);
- }
- }
- else
- { // Statistik von einer Runde
- if (teamS)
- { // Team Statistik
- if (rundeTeam->z(rundeAusw))
- rundeTeam->z(rundeAusw)->render(zRObj);
- if (sortAuswahlRT->z(rundeAusw))
- sortAuswahlRT->z(rundeAusw)->render(zRObj);
- if (sortRichtungRT->z(rundeAusw))
- sortRichtungRT->z(rundeAusw)->render(zRObj);
- }
- else
- { // Spieler Statistik
- if (rundeSpieler->z(rundeAusw))
- rundeSpieler->z(rundeAusw)->render(zRObj);
- if (sortAuswahlRS->z(rundeAusw))
- sortAuswahlRS->z(rundeAusw)->render(zRObj);
- if (sortRichtungRS->z(rundeAusw))
- sortRichtungRS->z(rundeAusw)->render(zRObj);
- }
- }
- // Auswahl Boxen
- stAuswahl->render(zRObj);
- grAuswahl->render(zRObj);
- }
- // constant
- int StatistikTabelle::getRunde() const
- {
- return rundeAusw;
- }
|