diff options
author | Gregory Montoir | 2003-11-10 14:06:55 +0000 |
---|---|---|
committer | Gregory Montoir | 2003-11-10 14:06:55 +0000 |
commit | 72d91990227ed6e64f6358011bda3bd5493fdb86 (patch) | |
tree | 7074a3e910563d3bf33fafe8e93e3bfffae430ec | |
parent | ff07a453e386312ba3181067b89609025a7f8e24 (diff) | |
download | scummvm-rg350-72d91990227ed6e64f6358011bda3bd5493fdb86.tar.gz scummvm-rg350-72d91990227ed6e64f6358011bda3bd5493fdb86.tar.bz2 scummvm-rg350-72d91990227ed6e64f6358011bda3bd5493fdb86.zip |
fix some bugs :
- bettle not disappearing when caught
- wrong Joe position when switching rooms
- bellboy dispappearing after spoken to him (partially fixed)
svn-id: r11249
-rw-r--r-- | queen/graphics.cpp | 3 | ||||
-rw-r--r-- | queen/logic.cpp | 10 | ||||
-rw-r--r-- | queen/talk.cpp | 7 |
3 files changed, 14 insertions, 6 deletions
diff --git a/queen/graphics.cpp b/queen/graphics.cpp index e3a2c0e144..9023ea11e0 100644 --- a/queen/graphics.cpp +++ b/queen/graphics.cpp @@ -325,6 +325,7 @@ void BobSlot::animReset() { if(active && animating) { const AnimFrame *af = anim.string.buffer; + printf("animReset() - %X %X", af->frame, af->speed); if (af != NULL) { anim.string.curPos = af; frameNum = af->frame; @@ -467,7 +468,7 @@ void Graphics::bobClear(uint32 bobnum) { BobSlot *pbs = &_bobs[bobnum]; - pbs->active = 0; + pbs->active = false; pbs->xflip = false; pbs->animating = false; pbs->anim.string.buffer = NULL; diff --git a/queen/logic.cpp b/queen/logic.cpp index 735bd088f8..a3eb630623 100644 --- a/queen/logic.cpp +++ b/queen/logic.cpp @@ -1098,7 +1098,7 @@ uint16 Logic::roomRefreshObject(uint16 obj) { if (pod->image == -3 || pod->image == -4) { // a person object - if (pod->name < 0) { + if (pod->name <= 0) { _graphics->bobClear(curBob); } else { @@ -1626,6 +1626,14 @@ ObjectData *Logic::joeSetupInRoom(bool autoPosition, uint16 scale) { // check to see which way Joe entered room _joe.facing = State::findDirection(pod->state); + switch (_joe.facing) { + case DIR_BACK: + _joe.facing = DIR_FRONT; + break; + case DIR_FRONT: + _joe.facing = DIR_BACK; + break; + } _joe.prevFacing = _joe.facing; BobSlot *pbs = _graphics->bob(0); diff --git a/queen/talk.cpp b/queen/talk.cpp index 8357245f26..4e13c538e6 100644 --- a/queen/talk.cpp +++ b/queen/talk.cpp @@ -354,10 +354,9 @@ void Talk::talk(const char *filename, int personInRoom, char *cutawayFilename) { pbs->y = person.actor->y; _logic->display()->fullscreen(_wasFullscren); - - // XXX if (P_ANIMstr[0] != '\0') - // Better kick start the persons anim sequence - // XXX stringanim(BNUM,NEW_ANIM[BNUM]); + // Better kick start the persons anim sequence + pbs->animating = true; + pbs->animReset(); } _talkHead = false; |