|
@@ -1,4 +1,5 @@
|
|
|
#include "Spiel.h"
|
|
|
+#include "Reader.h"
|
|
|
|
|
|
#define TICK 0.03333333
|
|
|
|
|
@@ -60,6 +61,7 @@ Spiel::Spiel()
|
|
|
zuletztFortgesetzterTimer = 0;
|
|
|
zuletztBenutzterTunnel = 0;
|
|
|
zuletztBenutzteUmlenkung = 0;
|
|
|
+ resources = 0;
|
|
|
ref = 1;
|
|
|
}
|
|
|
|
|
@@ -138,6 +140,8 @@ Spiel::~Spiel()
|
|
|
zuletztBenutzterTunnel->release();
|
|
|
if( zuletztBenutzteUmlenkung )
|
|
|
zuletztBenutzteUmlenkung->release();
|
|
|
+ if( resources )
|
|
|
+ resources->release();
|
|
|
delete[] tasten;
|
|
|
}
|
|
|
|
|
@@ -454,12 +458,82 @@ void Spiel::setKarteId( int karteId )
|
|
|
void Spiel::ladeDaten()
|
|
|
{
|
|
|
Text *gamePath = infoKlient->getDateiGruppePfad( infoKlient->getDateiGruppeIdVonSpiel( infoKlient->getSpielId( karteId ) ) );
|
|
|
- Text *mapPf = new Text( "data/tmp/Karten/" );
|
|
|
- mapPf->append( karteId );
|
|
|
- mapPf->append( "/spiel/data/data.sts" );
|
|
|
-
|
|
|
+ Text mapPf = Text( "data/tmp/Karten/" ) + karteId + "/spiel/files";
|
|
|
+ MapReader *reader = new MapReader( karteId, Text( "data/tmp/Karten/" ) + karteId + "/spiel/data/" );
|
|
|
+ // loading map
|
|
|
+ reader->ladeKarte( this );
|
|
|
+ spielKlient->setLadenProzent( 50 );
|
|
|
+ reader->release();
|
|
|
+ // loading resources
|
|
|
+ if( resources )
|
|
|
+ resources->release();
|
|
|
+ resources = new ResourceRegistry( gamePath->getText(), mapPf );
|
|
|
+ resources->zResource( R_BARIERE, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/bariere.png" );
|
|
|
+ resources->zResource( R_BASE, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/base.png" );
|
|
|
+ resources->zResource( R_PFEIL_GESCHOSS, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/pfeilg.png" );
|
|
|
+ resources->zResource( R_PFEIL, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/pfeil.png" );
|
|
|
+ resources->zResource( R_LEBEN, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/leben.png" );
|
|
|
+ resources->zResource( R_SCHILD, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/schild.png" );
|
|
|
+ resources->zResource( R_SCHUH, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/schuh.png" );
|
|
|
+ resources->zResource( R_GEIST, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/geist.png" );
|
|
|
+ resources->zResource( R_ROLLE, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/rolle.png" );
|
|
|
+ resources->zResource( R_ROLLE_OBEN, 0, new ColorMode(), "spiel:/bilder/rolleoben.ltdb" );
|
|
|
+ resources->zResource( R_ROLLE_LINKS, 0, new ColorMode(), "spiel:/bilder/rollelinks.ltdb" );
|
|
|
+ resources->zResource( R_ROLLE_RECHTS, 0, new ColorMode(), "spiel:/bilder/rollerechts.ltdb" );
|
|
|
+ resources->zResource( R_ROLLE_UNTEN, 0, new ColorMode(), "spiel:/bilder/rolleunten.ltdb" );
|
|
|
+ resources->zResource( R_STURM, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/sturm.png" );
|
|
|
+ resources->zResource( R_STURM_OBEN, 0, new ColorMode(), "spiel:/bilder/sturmoben.ltdb" );
|
|
|
+ resources->zResource( R_STURM_LINKS, 0, new ColorMode(), "spiel:/bilder/sturmlinks.ltdb" );
|
|
|
+ resources->zResource( R_STURM_RECHTS, 0, new ColorMode(), "spiel:/bilder/sturmrechts.ltdb" );
|
|
|
+ resources->zResource( R_STURM_UNTEN, 0, new ColorMode(), "spiel:/bilder/sturmunten.ltdb" );
|
|
|
+ resources->zResource( R_DRACHENAUGE, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/drachenauge.png" );
|
|
|
+ resources->zResource( R_FEUERBALL, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/feuerball.png" );
|
|
|
+ resources->zResource( R_FEUERBALL_TREFFER, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/feuerballtreffe" );
|
|
|
+ resources->zResource( R_ENTERHAKEN_SEIL, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/enterhakenseil." );
|
|
|
+ resources->zResource( R_ENTERHAKEN_SPITZE, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/enterhakenspitz" );
|
|
|
+ resources->zResource( R_ENTERHAKEN_ITEM, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/enterhaken.png" );
|
|
|
+ resources->zResource( R_MINE, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/miene.png" );
|
|
|
+ resources->zResource( R_RWEISHEIT, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/rweisheit.png" );
|
|
|
+ resources->zResource( R_RBOSHEIT, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/rbosheit.png" );
|
|
|
+ resources->zResource( R_RLEBEN, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/rleben.png" );
|
|
|
+ resources->zResource( R_RTEMPO, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/rtempo.png" );
|
|
|
+ resources->zResource( R_SCHALTER, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/schalter.png" );
|
|
|
+ resources->zResource( R_SCHIENE, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/schiene.png" );
|
|
|
+ resources->zResource( R_SPIELER_STIRBT, 0, new ColorMode(), "spiel:/bilder/spielerstirbt.ltdb" );
|
|
|
+ resources->zResource( R_SPIELER, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/spieler.png" );
|
|
|
+ resources->zResource( R_SPIELER_RECHTS, 0, new ColorMode(), "spiel:/bilder/spielerrechts.ltdb" );
|
|
|
+ resources->zResource( R_SPIELER_LINKS, 0, new ColorMode(), "spiel:/bilder/spielerlinks.ltdb" );
|
|
|
+ resources->zResource( R_TUNNEL, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/tunnel.png" );
|
|
|
+ resources->zResource( R_UMLENKUNG, 0, new ColorMode(), "spiel:/bilder/textures.ltdb/umlenkung.png" );
|
|
|
+ spielKlient->setLadenProzent( 70 );
|
|
|
+ // apply team color filters
|
|
|
+ AlphaColorMode *alphaMode = new AlphaColorMode( 0x77 );
|
|
|
+ for( auto t = teams.getIterator(); t; t++ )
|
|
|
+ {
|
|
|
+ resources->zResource( R_BARIERE, t->getFarbe(), alphaMode->getThis() );
|
|
|
+ resources->zResource( R_BASE, t->getFarbe(), alphaMode->getThis() );
|
|
|
+ }
|
|
|
+ alphaMode->release();
|
|
|
+ spielKlient->setLadenProzent( 80 );
|
|
|
+ // apply player color filters
|
|
|
+ MaskColorMode *maskMode = new MaskColorMode( 0xFFFFFF );
|
|
|
+ for( auto s = spieler.getIterator(); s; s++ )
|
|
|
+ {
|
|
|
+ resources->zResource( R_ROLLE_OBEN, s->getFarbe(), maskMode->getThis() );
|
|
|
+ resources->zResource( R_ROLLE_LINKS, s->getFarbe(), maskMode->getThis() );
|
|
|
+ resources->zResource( R_ROLLE_RECHTS, s->getFarbe(), maskMode->getThis() );
|
|
|
+ resources->zResource( R_ROLLE_UNTEN, s->getFarbe(), maskMode->getThis() );
|
|
|
+ resources->zResource( R_STURM_OBEN, s->getFarbe(), maskMode->getThis() );
|
|
|
+ resources->zResource( R_STURM_LINKS, s->getFarbe(), maskMode->getThis() );
|
|
|
+ resources->zResource( R_STURM_RECHTS, s->getFarbe(), maskMode->getThis() );
|
|
|
+ resources->zResource( R_STURM_UNTEN, s->getFarbe(), maskMode->getThis() );
|
|
|
+ resources->zResource( R_SPIELER_STIRBT, s->getFarbe(), maskMode->getThis() );
|
|
|
+ resources->zResource( R_SPIELER, s->getFarbe(), maskMode->getThis() );
|
|
|
+ resources->zResource( R_SPIELER_RECHTS, s->getFarbe(), maskMode->getThis() );
|
|
|
+ resources->zResource( R_SPIELER_LINKS, s->getFarbe(), maskMode->getThis() );
|
|
|
+ }
|
|
|
+ maskMode->release();
|
|
|
spielKlient->setLadenProzent( 100 );
|
|
|
- mapPf->release();
|
|
|
gamePath->release();
|
|
|
}
|
|
|
|