diff options
author | Nicola Mettifogo | 2008-07-11 13:06:28 +0000 |
---|---|---|
committer | Nicola Mettifogo | 2008-07-11 13:06:28 +0000 |
commit | 8ed023142a9ce0ee825eb3d6c33759281d68357b (patch) | |
tree | fe01c86cc8d04a88fb82a29e79279c25c4e8e922 /engines/parallaction/parallaction_br.cpp | |
parent | fe655836575214c33c82120e9dd714b95a96e475 (diff) | |
download | scummvm-rg350-8ed023142a9ce0ee825eb3d6c33759281d68357b.tar.gz scummvm-rg350-8ed023142a9ce0ee825eb3d6c33759281d68357b.tar.bz2 scummvm-rg350-8ed023142a9ce0ee825eb3d6c33759281d68357b.zip |
Moved program and command execution code out of the engine, into their own brand new
classes.
svn-id: r33003
Diffstat (limited to 'engines/parallaction/parallaction_br.cpp')
-rw-r--r-- | engines/parallaction/parallaction_br.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/engines/parallaction/parallaction_br.cpp b/engines/parallaction/parallaction_br.cpp index c382f6a7f6..6606550132 100644 --- a/engines/parallaction/parallaction_br.cpp +++ b/engines/parallaction/parallaction_br.cpp @@ -72,12 +72,16 @@ int Parallaction_br::init() { initResources(); initFonts(); initCursors(); - initOpcodes(); _locationParser = new LocationParser_br(this); _locationParser->init(); _programParser = new ProgramParser_br(this); _programParser->init(); + _cmdExec = new CommandExec_br(this); + _cmdExec->init(); + _programExec = new ProgramExec_br(this); + _programExec->init(); + _part = -1; _subtitle[0] = -1; @@ -226,8 +230,14 @@ void Parallaction_br::changeLocation(char *location) { freeBackground(); _gfx->clearGfxObjects(kGfxObjNormal | kGfxObjCharacter); _location._programs.clear(); + + _location._animations.remove(_char._ani); + freeZones(); freeAnimations(); + + _location._animations.push_front(_char._ani); + // free(_location._comment); // _location._comment = 0; // _location._commands.clear(); @@ -236,9 +246,9 @@ void Parallaction_br::changeLocation(char *location) { // load new location parseLocation(location); - runCommands(_location._commands); + _cmdExec->run(_location._commands); // doLocationEnterTransition(); - runCommands(_location._aCommands); + _cmdExec->run(_location._aCommands); _engineFlags &= ~kEngineChangeLocation; } @@ -287,12 +297,16 @@ void Parallaction_br::loadProgram(AnimationPtr a, const char *filename) { void Parallaction_br::changeCharacter(const char *name) { + printf("changeCharacter(%s)\n", name); + const char *charName = _char.getName(); if (!scumm_stricmp(charName, name)) { return; } _char.setName(name); + _char._ani->gfxobj = _gfx->loadAnim(name); + _char._ani->gfxobj->setFlags(kGfxObjCharacter); _char._talk = _disk->loadTalk(name); } |