diff options
-rw-r--r-- | engines/cge2/cge2.h | 1 | ||||
-rw-r--r-- | engines/cge2/cge2_main.cpp | 41 |
2 files changed, 42 insertions, 0 deletions
diff --git a/engines/cge2/cge2.h b/engines/cge2/cge2.h index 925cb67f50..b51ae2750d 100644 --- a/engines/cge2/cge2.h +++ b/engines/cge2/cge2.h @@ -112,6 +112,7 @@ public: void inf(const char *text, bool wideSpace = false); void movie(const char *ext); void runGame(); + void loadGame(); void loadScript(const char *fname); void loadSprite(const char *fname, int ref, int scene, V3D &pos); void badLab(const char *fn); diff --git a/engines/cge2/cge2_main.cpp b/engines/cge2/cge2_main.cpp index 532836186c..78d743596b 100644 --- a/engines/cge2/cge2_main.cpp +++ b/engines/cge2/cge2_main.cpp @@ -561,9 +561,50 @@ void CGE2Engine::loadUser() { warning("STUB: CGE2Engine::loadUser()"); // Missing loading from file. TODO: Implement it with the saving/loading! loadScript("CGE.INI"); + loadGame(); loadPos(); } +void CGE2Engine::loadGame() { + warning("STUB: CGE2Engine::loadGame()"); + + // load sprites & pocket + + Sprite *s; + Hero *h; + + // initialize Andzia + s = _spare->take(142); + if (s) { + h = new Hero(this); + *(Sprite*)h = *s; + delete s; + h->expand(); + _spare->update(h); + } + _heroTab[0]->_ptr = h; + s = _spare->take(152); + _vga->_showQ->insert(s); + _heroTab[0]->_face = s; + + // initialize Wacek + s = _spare->take(141); + if (s) { + h = new Hero(this); + *(Sprite*)h = *s; + delete s; + h->expand(); + _spare->update(h); + } + _heroTab[1]->_ptr = h; + s = _spare->take(151); + _vga->_showQ->insert(s); + _heroTab[1]->_face = s; + + //--- start! + switchHero(_sex); +} + void CGE2Engine::loadPos() { if (_resman->exist("CGE.HXY")) { for (int cav = 0; cav < kCaveMax; cav++) |