[Bastion-cvs] bastion/src World.cpp,1.31,1.32 World.h,1.10,1.11
Brought to you by:
jacek_kolodziej
|
From: Jacek K. <jac...@us...> - 2004-06-30 18:50:08
|
Update of /cvsroot/bastion/bastion/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24235/src Modified Files: World.cpp World.h Log Message: - Zwyciestwo! Model gry jest oddzielony od jej wizualizacji. Dzieki temu moze istniec caly model swiata bez istnienia wizualizacji (nie testowalem czy mozna tick'ac swiat zanim zacznie sie go ogladac, ale nie powinno byc z tym problemow). W szczegolnosci nie da sie juz przejsc wskaznikami od klas swiata do klas widoku. Teraz metoda void* LoadingScreen::loadLevel(void *levelName) wyglada nader prosto: new World, new GameView(world). Pawel: masz czysty teren jesli chodzi o zapisywanie stanu gry. Sa dwa miejsca gdzie obiekty swiata posiadaja wskaznik do obiektow wizualizacji: UnitHandler oraz EventUnitSpotted (klasa przechowujaca informacje o jednostce w InformationCollectorze). Klasy te posiadaja wskazniki do figurek ("figure"). Przy zapisywaniu stanu gry, nalezy te wskazniki zapisac jako NULL - sa bowiem one poprawiane przy podpinaniu swiata do GameView. Mozna przyjac ze klasa MissileView ktora zajmuje sie renderingiem strzal tez powinna byc zapisywana w pliku. Alternatywnie, mozna odpowiedni wskaznik z klasy Missile zapisac jako NULL - tez powinno dzialac ok. A tak pozatym to gra dziala tak samo jak do tej pory. Index: World.h =================================================================== RCS file: /cvsroot/bastion/bastion/src/World.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** World.h 4 Jun 2004 20:21:41 -0000 1.10 --- World.h 30 Jun 2004 18:49:28 -0000 1.11 *************** *** 37,41 **** \param gv wskaznik na obiekt klasy GameView. \param mapName string z nazwa mapy. Przeklada sie na nazwe katalogu "./data/<mapName>/". */ ! World(GameView *gv, char *mapName); ~World(); --- 37,41 ---- \param gv wskaznik na obiekt klasy GameView. \param mapName string z nazwa mapy. Przeklada sie na nazwe katalogu "./data/<mapName>/". */ ! World(char *mapName); ~World(); *************** *** 45,49 **** GameMap* getGameMap() { return gameMap; } ! GameView* getGameView() { return gameView; } --- 45,49 ---- GameMap* getGameMap() { return gameMap; } ! //GameView* getGameView() { return gameView; } *************** *** 67,72 **** protected: GameMap *gameMap; ! GameView *gameView; ! bool gameOver; /// true jesli gra jest zakonczona --- 67,71 ---- protected: GameMap *gameMap; ! bool gameOver; /// true jesli gra jest zakonczona Index: World.cpp =================================================================== RCS file: /cvsroot/bastion/bastion/src/World.cpp,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** World.cpp 30 Jun 2004 13:52:36 -0000 1.31 --- World.cpp 30 Jun 2004 18:49:28 -0000 1.32 *************** *** 115,124 **** } ! World::World(GameView *gv , char *mapName ) { gameOver = false; worldDescription = new WorldDescription(mapName, EventDispatcher::get()); army = new (Army*)[2]; ! gameView = gv; gameMap = new GameMap( this, --- 115,124 ---- } ! World::World(char *mapName ) { gameOver = false; worldDescription = new WorldDescription(mapName, EventDispatcher::get()); army = new (Army*)[2]; ! gameMap = new GameMap( this, *************** *** 128,131 **** --- 128,133 ---- army[0] = new Army(this, gameMap, 20.0, 20.0); army[1] = new Army(this, gameMap, 100.0, 100.0); + + createSample(); } |