123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- #include "Strukturen.h"
- #include <M2Datei.h>
- #include <DateiSystem.h>
- #include <Text.h>
- // Inhalt der RessourceStr Klasse aus Strukturen.h
- // Konstruktor
- RessourceStr::RessourceStr(Datei* zDatei, SSDatenbankV* zDb, const char* tmpPfad, int kId)
- : ReferenceCounter()
- {
- zDatei->lese((char*)&id, 4);
- char len = 0;
- zDatei->lese(&len, 1);
- Text txt;
- txt.fillText('0', len + 1);
- zDatei->lese((char*)txt.getText(), len);
- pfad = 0;
- if (txt.positionVon("spiel:") == 0)
- {
- pfad = zDb->getSpielPfad(kId);
- if (pfad)
- pfad->append(txt.getTeilText(6));
- }
- if (txt.positionVon("map:") == 0)
- {
- pfad = new Text(tmpPfad);
- pfad->append("map/files");
- pfad->append(txt.getTeilText(4));
- }
- m2d = 0;
- bild = 0;
- if (pfad && pfad->hat(".m2/"))
- {
- int pos = pfad->positionVon(".m2/", pfad->anzahlVon(".m2/") - 1);
- M2Datei* datei = new M2Datei(pfad->getTeilText(0, pos + 3));
- datei->leseDaten();
- m2d = datei->ladeModel(pfad->getTeilText(pos + 4));
- datei->release();
- }
- }
- // Destruktor
- RessourceStr::~RessourceStr()
- {
- if (pfad)
- pfad->release();
- if (m2d)
- m2d->release();
- if (bild)
- bild->release();
- }
- // constant
- int RessourceStr::getId() const
- {
- return id;
- }
- Model2DData* RessourceStr::zReccourceM2() const
- {
- return m2d;
- }
- Bild* RessourceStr::zReccourceTxt() const
- {
- return bild;
- }
- // Inhalt der ObjektStr Klasse aus Strukturen.h
- // Konstruktor
- ObjektStr::ObjektStr(Datei* zDatei)
- : ReferenceCounter()
- {
- if (zDatei)
- {
- zDatei->lese((char*)&pos.x, 4);
- zDatei->lese((char*)&pos.y, 4);
- zDatei->lese((char*)&rot, 4);
- zDatei->lese((char*)&scale, 4);
- zDatei->lese((char*)&id, 4);
- zDatei->lese((char*)&m2d, 4);
- zDatei->lese((char*)&bild, 4);
- zDatei->lese((char*)&style, 4);
- zDatei->lese((char*)&maxStability, 4);
- zDatei->lese((char*)&maxEnergie, 4);
- zDatei->lese((char*)&energieRadius, 4);
- zDatei->lese((char*)&reparatur, 8);
- zDatei->lese((char*)&akkuLeistung, 8);
- zDatei->lese(&team, 1);
- }
- }
- void ObjektStr::save(Datei* zDatei) const
- {
- zDatei->schreibe((char*)&pos.x, 4);
- zDatei->schreibe((char*)&pos.y, 4);
- zDatei->schreibe((char*)&rot, 4);
- zDatei->schreibe((char*)&scale, 4);
- zDatei->schreibe((char*)&id, 4);
- zDatei->schreibe((char*)&m2d, 4);
- zDatei->schreibe((char*)&bild, 4);
- zDatei->schreibe((char*)&style, 4);
- zDatei->schreibe((char*)&maxStability, 4);
- zDatei->schreibe((char*)&maxEnergie, 4);
- zDatei->schreibe((char*)&energieRadius, 4);
- zDatei->schreibe((char*)&reparatur, 8);
- zDatei->schreibe((char*)&akkuLeistung, 8);
- zDatei->schreibe((char*)&team, 1);
- }
- // Inhalt der SpielerStr Klasse aus Strukturen.h
- // Konstruktor
- SpielerStr::SpielerStr(Datei* zDatei)
- : ReferenceCounter()
- {
- if (zDatei)
- {
- zDatei->lese((char*)&id, 4);
- zDatei->lese((char*)&pos.x, 4);
- zDatei->lese((char*)&pos.y, 4);
- zDatei->lese((char*)&rot, 8);
- zDatei->lese((char*)&beschleunigung, 8);
- zDatei->lese((char*)&maxStability, 4);
- zDatei->lese((char*)&maxEnergie, 4);
- zDatei->lese((char*)&reparatur, 8);
- zDatei->lese((char*)&akkuLeistung, 8);
- zDatei->lese((char*)&laserIntensity, 4);
- zDatei->lese((char*)&laserEffizienz, 4);
- zDatei->lese((char*)&laserTempo, 4);
- zDatei->lese((char*)&wendigkeit, 8);
- zDatei->lese((char*)&antriebEffizienz, 8);
- zDatei->lese((char*)&energieSchild, 8);
- zDatei->lese((char*)&energieSchildEffizienz, 8);
- zDatei->lese((char*)&netzwerk, 4);
- zDatei->lese((char*)&skillPunkte, 4);
- zDatei->lese((char*)&m2d, 4);
- zDatei->lese((char*)&bild, 4);
- }
- }
- void SpielerStr::save(Datei* zDatei) const
- {
- zDatei->schreibe((char*)&id, 4);
- zDatei->schreibe((char*)&pos.x, 4);
- zDatei->schreibe((char*)&pos.y, 4);
- zDatei->schreibe((char*)&rot, 8);
- zDatei->schreibe((char*)&beschleunigung, 8);
- zDatei->schreibe((char*)&maxStability, 4);
- zDatei->schreibe((char*)&maxEnergie, 4);
- zDatei->schreibe((char*)&reparatur, 8);
- zDatei->schreibe((char*)&akkuLeistung, 8);
- zDatei->schreibe((char*)&laserIntensity, 4);
- zDatei->schreibe((char*)&laserEffizienz, 4);
- zDatei->schreibe((char*)&laserTempo, 4);
- zDatei->schreibe((char*)&wendigkeit, 8);
- zDatei->schreibe((char*)&antriebEffizienz, 8);
- zDatei->schreibe((char*)&energieSchild, 8);
- zDatei->schreibe((char*)&energieSchildEffizienz, 8);
- zDatei->schreibe((char*)&netzwerk, 4);
- zDatei->schreibe((char*)&skillPunkte, 4);
- zDatei->schreibe((char*)&m2d, 4);
- zDatei->schreibe((char*)&bild, 4);
- }
- // Inhalt der TeamStr Klasse aus Strukturen.h
- // Konstruktor
- TeamStr::TeamStr(Datei* zDatei)
- : ReferenceCounter()
- {
- if (zDatei)
- {
- zDatei->lese((char*)&id, 4);
- zDatei->lese((char*)&maxPunkte, 4);
- zDatei->lese((char*)&beschleunigung, 8);
- zDatei->lese((char*)&maxStability, 4);
- zDatei->lese((char*)&maxEnergie, 4);
- zDatei->lese((char*)&reparatur, 8);
- zDatei->lese((char*)&akkuLeistung, 8);
- zDatei->lese((char*)&laserIntensity, 4);
- zDatei->lese((char*)&laserEffizienz, 4);
- zDatei->lese((char*)&laserTempo, 4);
- zDatei->lese((char*)&wendigkeit, 8);
- zDatei->lese((char*)&antriebEffizienz, 8);
- zDatei->lese((char*)&energieSchild, 8);
- zDatei->lese((char*)&energieSchildEffizienz, 8);
- zDatei->lese((char*)&punkte, 4);
- }
- }
- void TeamStr::save(Datei* zDatei) const
- {
- zDatei->schreibe((char*)&id, 4);
- zDatei->schreibe((char*)&maxPunkte, 4);
- zDatei->schreibe((char*)&beschleunigung, 8);
- zDatei->schreibe((char*)&maxStability, 4);
- zDatei->schreibe((char*)&maxEnergie, 4);
- zDatei->schreibe((char*)&reparatur, 8);
- zDatei->schreibe((char*)&akkuLeistung, 8);
- zDatei->schreibe((char*)&laserIntensity, 4);
- zDatei->schreibe((char*)&laserEffizienz, 4);
- zDatei->schreibe((char*)&laserTempo, 4);
- zDatei->schreibe((char*)&wendigkeit, 8);
- zDatei->schreibe((char*)&antriebEffizienz, 8);
- zDatei->schreibe((char*)&energieSchild, 8);
- zDatei->schreibe((char*)&energieSchildEffizienz, 8);
- zDatei->schreibe((char*)&punkte, 4);
- }
|