From 0b51516c7fc4767b47315a0a3fafa74e0ab532b1 Mon Sep 17 00:00:00 2001 From: Gregory Montoir Date: Sun, 12 Oct 2003 16:37:56 +0000 Subject: minor additions for DISP_ROOM svn-id: r10758 --- queen/logic.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- queen/logic.h | 1 - 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/queen/logic.cpp b/queen/logic.cpp index bed16e608a..4dea6826dd 100644 --- a/queen/logic.cpp +++ b/queen/logic.cpp @@ -736,16 +736,62 @@ void Logic::roomSetupObjects() { warning("Logic::roomSetupObjects() not fully implemented"); uint16 i; + // furniture frames are reserved in ::roomSetupFurniture(), we append objects + // frames after the furniture ones. uint16 curImage = 36 + FRAMES_JOE_XTRA + _numFurnitureStatic + _numFurnitureAnimatedLen; uint16 firstRoomObj = _roomData[_currentRoom] + 1; uint16 lastRoomObj = _roomData[_currentRoom + 1]; + uint16 numObjectStatic = 0; + uint16 numObjectAnimated = 0; + uint16 curBob; + // invalidates all Bobs for persons (except Joe's one) for (i = 1; i <= 3; ++i) { _graphics->bob(i)->active = false; } - // TODO: bobs static/animated - // TODO: bobs persons + // static/animated Bobs + for (i = firstRoomObj; i <= lastRoomObj; ++i) { + int16 obj = _objectData[i].image; + // setup blanks bobs for turned off objects (in case + // you turn them on again) + if (obj == -1) { + // static OFF Bob + curBob = 20 + _numFurnitureStatic + numObjectStatic; + ++numObjectStatic; + // create a blank frame for the for the OFF object + ++_numFrames; + ++curImage; + } + else if(obj == -2) { + // animated OFF Bob + curBob = 5 + _numFurnitureAnimated + numObjectAnimated; + ++numObjectAnimated; + } + else if(obj > 0 && obj < 5000) { + // FIXME: need GRAPHIC_ANIM stuff + warning("Logic::roomSetupObjects() - Object number %d no handled", obj); + } + + } + + // persons Bobs + uint16 bobNum = 0; + for (i = firstRoomObj; i <= lastRoomObj; ++i) { + ObjectData *pod = &_objectData[i]; + if (pod->image == -3 || pod->image == -4) { + ++bobNum; + uint16 noun = i - firstRoomObj; + // FIXME: need Person stuff +// if (pod->name > 0) { +// curImage = personSetup(noun, curImage); +// } +// else { +// curImage = personAllocate(noun, curImage); +// } + warning("Logic::roomSetupObjects() - Person object number %d no handled", noun); + } + } // paste downs list ++curImage; diff --git a/queen/logic.h b/queen/logic.h index 51a34fe662..b6658fa313 100644 --- a/queen/logic.h +++ b/queen/logic.h @@ -167,7 +167,6 @@ protected: Resource *_resource; Graphics *_graphics; -public: Walk *_walk; void initialise(); -- cgit v1.2.3