123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #include "KartenLeser.h"
- #include <Datei.h>
- // Inhalt der KartenLeser Klasse aus KartenLeser.h
- // Kontruktor
- KartenLeser::KartenLeser(int karteId, SSDatenbankV* db, const char* mapPfad)
- : ReferenceCounter()
- {
- this->karteId = karteId;
- this->db = db;
- pfad = new Text(mapPfad);
- }
- // Destruktor
- KartenLeser::~KartenLeser()
- {
- db->release();
- if (pfad)
- pfad->release();
- }
- // nicht constant
- bool KartenLeser::ladeSpielerTeamStruktur(SpielerTeamStruktur* zSts)
- {
- if (!pfad)
- return 0;
- Text* pf = new Text(pfad->getText());
- pf->append("sts.ltgd");
- Datei* datei = new Datei();
- datei->setDatei(pf);
- if (!datei->existiert() || datei->istOrdner())
- {
- datei->release();
- return 0;
- }
- datei->open(Datei::Style::lesen);
- datei->lese((char*)&zSts->spielerAnzahl, 4);
- datei->lese((char*)&zSts->teamAnzahl, 4);
- if (zSts->spielerFarbe)
- zSts->spielerFarbe->release();
- zSts->spielerFarbe = new Array< int >();
- for (int i = 0; i < zSts->spielerAnzahl; i++)
- {
- int farbe = 0;
- datei->lese((char*)&farbe, 4);
- zSts->spielerFarbe->set(farbe, i);
- }
- if (zSts->teamFarbe)
- zSts->teamFarbe->release();
- zSts->teamFarbe = new Array< int >();
- for (int i = 0; i < zSts->teamAnzahl; i++)
- {
- int farbe = 0;
- datei->lese((char*)&farbe, 4);
- zSts->teamFarbe->set(farbe, i);
- }
- if (zSts->teamName)
- zSts->teamName->release();
- zSts->teamName = new RCArray< Text >();
- for (int i = 0; i < zSts->teamAnzahl; i++)
- {
- char len = 0;
- datei->lese(&len, 1);
- char* txt = new char[len + 1];
- txt[(int)len] = 0;
- datei->lese(txt, len);
- Text* name = new Text(txt);
- delete[] txt;
- zSts->teamName->set(name, i);
- }
- if (zSts->teamSize)
- zSts->teamSize->release();
- zSts->teamSize = new Array< int >();
- for (int i = 0; i < zSts->teamAnzahl; i++)
- {
- int size = 0;
- datei->lese((char*)&size, 4);
- zSts->teamSize->set(size, i);
- }
- datei->close();
- datei->release();
- return 1;
- }
- // constant
- int KartenLeser::getKarteId() const
- {
- return karteId;
- }
- Text* KartenLeser::getPfad() const
- {
- return pfad ? dynamic_cast<Text*>(pfad->getThis()) : 0;
- }
- Text* KartenLeser::zPfad() const
- {
- return pfad;
- }
|