[Bastion-cvs] bastion/src/map UnitHandler.cpp,1.47,1.48 UnitHandler.h,1.30,1.31
Brought to you by:
jacek_kolodziej
|
From: Jacek K. <jac...@us...> - 2004-06-30 18:49:40
|
Update of /cvsroot/bastion/bastion/src/map In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24235/src/map Modified Files: UnitHandler.cpp UnitHandler.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: UnitHandler.cpp =================================================================== RCS file: /cvsroot/bastion/bastion/src/map/UnitHandler.cpp,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** UnitHandler.cpp 30 Jun 2004 13:52:37 -0000 1.47 --- UnitHandler.cpp 30 Jun 2004 18:49:30 -0000 1.48 *************** *** 59,62 **** --- 59,69 ---- #ifndef __CONSOLE_TEST__ // jak widac tu nie jest sprawdzane czy nie ma NULL'a po drodze. + + EventDispatcher::get()->dispatch( + EventDispatcher::ENeedAFigure, + new EventNeedAFigure(this) + ); + + /* figure = Figure::createFigure( unit->getType(), *************** *** 64,67 **** --- 71,76 ---- x, y, owner->isWilhelm, false); figure->beRendered(false); + */ + /// sprawdzanie czy jestesmy w armii atakujacej czy broniacej zamku // TODO: ^^^ *************** *** 435,438 **** --- 444,454 ---- void UnitHandler::closeGate(Gate *gateToBeClosed){} + void UnitHandler::setFigure( Figure * fig ) + { + figure = fig; + if(figure) + figure->setMapPos(x,y); + } + Index: UnitHandler.h =================================================================== RCS file: /cvsroot/bastion/bastion/src/map/UnitHandler.h,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** UnitHandler.h 27 Apr 2004 20:27:11 -0000 1.30 --- UnitHandler.h 30 Jun 2004 18:49:31 -0000 1.31 *************** *** 88,93 **** UnitHandler (const UnitHandler &obj){}; - Unit* getOwner(){return owner;}; - /// Figurka (wizualizacja postaci) reprezentujaca danego unita. Figure *figure; --- 88,91 ---- *************** *** 95,99 **** public: - /*!\brief Konstruktor z mapy */ --- 93,96 ---- *************** *** 105,108 **** --- 102,106 ---- ~UnitHandler(); + Unit* getOwner(){return owner;}; virtual double moveMeToAsFarAs(double newX, double newY, double maxDistance); *************** *** 231,234 **** --- 229,233 ---- Figure * getFigure() { return figure; } + void setFigure(Figure *fig); }; |