123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- #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, char *tmpPfad, int kId )
- {
- zDatei->lese( (char *)& id, 4 );
- char len = 0;
- zDatei->lese( &len, 1 );
- Text txt;
- txt.fillText( '0', len + 1 );
- zDatei->lese( txt, len );
- txt.getText()[ (int)len ] = 0;
- 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();
- }
- ref = 1;
- }
- // 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;
- }
- // Reference Counting
- RessourceStr *RessourceStr::getThis()
- {
- ref++;
- return this;
- }
- RessourceStr *RessourceStr::release()
- {
- ref--;
- if( !ref )
- delete this;
- return 0;
- }
- // Inhalt der ObjektStr Klasse aus Strukturen.h
- // Konstruktor
- ObjektStr::ObjektStr( Datei * zDatei )
- {
- 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 );
- }
- ref = 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 );
- }
- // Reference Counting
- ObjektStr *ObjektStr::getThis()
- {
- ref++;
- return this;
- }
- ObjektStr *ObjektStr::release()
- {
- ref--;
- if( !ref )
- delete this;
- return 0;
- }
- // Inhalt der SpielerStr Klasse aus Strukturen.h
- // Konstruktor
- SpielerStr::SpielerStr( Datei * zDatei )
- {
- 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 );
- }
- ref = 1;
- }
- 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 );
- }
- // Reference Counting
- SpielerStr *SpielerStr::getThis()
- {
- ref++;
- return this;
- }
- SpielerStr *SpielerStr::release()
- {
- ref--;
- if( !ref )
- delete this;
- return 0;
- }
- // Inhalt der TeamStr Klasse aus Strukturen.h
- // Konstruktor
- TeamStr::TeamStr( Datei * zDatei )
- {
- 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 );
- }
- ref = 1;
- }
- 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 );
- }
- // Reference Counting
- TeamStr *TeamStr::getThis()
- {
- ref++;
- return this;
- }
- TeamStr *TeamStr::release()
- {
- ref--;
- if( !ref )
- delete this;
- return 0;
- }
|