aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Montoir2003-11-10 14:06:55 +0000
committerGregory Montoir2003-11-10 14:06:55 +0000
commit72d91990227ed6e64f6358011bda3bd5493fdb86 (patch)
tree7074a3e910563d3bf33fafe8e93e3bfffae430ec
parentff07a453e386312ba3181067b89609025a7f8e24 (diff)
downloadscummvm-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.cpp3
-rw-r--r--queen/logic.cpp10
-rw-r--r--queen/talk.cpp7
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;