[Scummvm-cvs-logs] CVS: scummvm/queen command.cpp,1.51,1.52 cutaway.cpp,1.101,1.102 graphics.cpp,1.70,1.71 graphics.h,1.53,1.54 logic.cpp,1.160,1.161 logic.h,1.103,1.104 talk.cpp,1.69,1.70 walk.cpp,1.35,1.36 xref.txt,1.55,1.56
Gregory Montoir
cyx at users.sourceforge.net
Wed Jan 7 07:46:01 CET 2004
Update of /cvsroot/scummvm/scummvm/queen
In directory sc8-pr-cvs1:/tmp/cvs-serv4576/queen
Modified Files:
command.cpp cutaway.cpp graphics.cpp graphics.h logic.cpp
logic.h talk.cpp walk.cpp xref.txt
Log Message:
- moved some Person/Anim code to Graphics
- some renaming
Index: command.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/command.cpp,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- command.cpp 6 Jan 2004 12:45:29 -0000 1.51
+++ command.cpp 7 Jan 2004 15:45:23 -0000 1.52
@@ -446,7 +446,7 @@
// FIXME: the EXECUTE_EXIT1 stuff can be omitted as it is
// more or less redundant code
if (condResult > 0) {
- _vm->logic()->joeSpeak(condResult, true);
+ _vm->logic()->makeJoeSpeak(condResult, true);
}
return condResult;
}
@@ -757,7 +757,7 @@
char cutaway[20];
memset(cutaway, 0, sizeof(cutaway));
- _vm->logic()->dialogue(description, _state.selNoun, cutaway);
+ _vm->logic()->startDialogue(description, _state.selNoun, cutaway);
while (cutaway[0] != '\0') {
char currentCutaway[20];
@@ -823,28 +823,28 @@
case VERB_OPEN:
// 'it doesn't seem to open'
- _vm->logic()->joeSpeak(1);
+ _vm->logic()->makeJoeSpeak(1);
break;
case VERB_USE:
if (subj1 < 0) {
uint16 k = _vm->logic()->itemData(-subj1)->sfxDescription;
if (k > 0) {
- _vm->logic()->joeSpeak(k, true);
+ _vm->logic()->makeJoeSpeak(k, true);
} else {
- _vm->logic()->joeSpeak(2);
+ _vm->logic()->makeJoeSpeak(2);
}
} else {
- _vm->logic()->joeSpeak(2);
+ _vm->logic()->makeJoeSpeak(2);
}
break;
case VERB_TALK_TO:
- _vm->logic()->joeSpeak(24 + _vm->randomizer.getRandomNumber(2));
+ _vm->logic()->makeJoeSpeak(24 + _vm->randomizer.getRandomNumber(2));
break;
case VERB_CLOSE:
- _vm->logic()->joeSpeak(2);
+ _vm->logic()->makeJoeSpeak(2);
break;
case VERB_MOVE:
@@ -852,12 +852,12 @@
if (subj1 > 0) {
int16 img = _vm->logic()->objectData(subj1)->image;
if (img == -4 || img == -3) {
- _vm->logic()->joeSpeak(18);
+ _vm->logic()->makeJoeSpeak(18);
} else {
- _vm->logic()->joeSpeak(3);
+ _vm->logic()->makeJoeSpeak(3);
}
} else {
- _vm->logic()->joeSpeak(3);
+ _vm->logic()->makeJoeSpeak(3);
}
break;
@@ -867,30 +867,30 @@
if (subj2 > 0) {
int16 img = _vm->logic()->objectData(subj2)->image;
if (img == -4 || img == -3) {
- _vm->logic()->joeSpeak(27 + _vm->randomizer.getRandomNumber(2));
+ _vm->logic()->makeJoeSpeak(27 + _vm->randomizer.getRandomNumber(2));
}
} else {
- _vm->logic()->joeSpeak(11);
+ _vm->logic()->makeJoeSpeak(11);
}
} else {
- _vm->logic()->joeSpeak(12);
+ _vm->logic()->makeJoeSpeak(12);
}
break;
case VERB_PICK_UP:
if (subj1 < 0) {
- _vm->logic()->joeSpeak(14);
+ _vm->logic()->makeJoeSpeak(14);
} else {
int16 img = _vm->logic()->objectData(subj2)->image;
if (img == -4 || img == -3) {
// Trying to get a person
- _vm->logic()->joeSpeak(20);
+ _vm->logic()->makeJoeSpeak(20);
} else {
// 5 : 'I can't pick that up'
// 6 : 'I don't think I need that'
// 7 : 'I'd rather leave it here'
// 8 : 'I don't think I'd have any use for that'
- _vm->logic()->joeSpeak(5 + _vm->randomizer.getRandomNumber(3));
+ _vm->logic()->makeJoeSpeak(5 + _vm->randomizer.getRandomNumber(3));
}
}
break;
@@ -922,7 +922,7 @@
}
} else {
// 'it's already open !'
- _vm->logic()->joeSpeak(9);
+ _vm->logic()->makeJoeSpeak(9);
}
} else if (action == VERB_CLOSE && !cutDone) {
if (State::findOn(objData->state) == STATE_ON_OFF) {
@@ -941,7 +941,7 @@
}
} else {
// 'it's already closed !'
- _vm->logic()->joeSpeak(10);
+ _vm->logic()->makeJoeSpeak(10);
}
} else if (action == VERB_MOVE) {
State::alterOn(&objData->state, STATE_ON_OFF);
@@ -1046,7 +1046,7 @@
// check to see if fail state is in fact a cutaway
const char *objDesc = _vm->logic()->objectTextualDescription(cmdGs->speakValue);
if (!executeIfCutaway(objDesc) && !executeIfDialog(objDesc)) {
- _vm->logic()->joeSpeak(cmdGs->speakValue, true);
+ _vm->logic()->makeJoeSpeak(cmdGs->speakValue, true);
}
ret = -2;
} else {
@@ -1239,7 +1239,7 @@
// if (_vm->logic()->objectData(objNum)->entryObj == 0) {
// if (makeJoeWalkTo(_selPosX, _selPosY, objNum, _state.selAction, false) == -2) {
// // 'I can't get close enough to have a look.'
-// _vm->logic()->joeSpeak(13);
+// _vm->logic()->makeJoeSpeak(13);
// }
// }
// }
@@ -1267,7 +1267,7 @@
}
}
- _vm->logic()->joeSpeak(desc, true);
+ _vm->logic()->makeJoeSpeak(desc, true);
_vm->logic()->joeFace();
}
Index: cutaway.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/cutaway.cpp,v
retrieving revision 1.101
retrieving revision 1.102
diff -u -d -r1.101 -r1.102
--- cutaway.cpp 6 Jan 2004 14:21:50 -0000 1.101
+++ cutaway.cpp 7 Jan 2004 15:45:23 -0000 1.102
@@ -794,7 +794,7 @@
}
}
else {
- _vm->logic()->personSetData(
+ _vm->logic()->initPerson(
object.objectNumber - _vm->logic()->currentRoomData(),
"", true, &p);
@@ -1023,7 +1023,7 @@
if (object->image == -3 || object->image == -4) {
k++;
if (object->name > 0) {
- _vm->graphics()->animReset(k);
+ _vm->graphics()->resetPersonAnim(k);
}
}
}
@@ -1040,7 +1040,6 @@
_vm->logic()->gameState(3, 1);
_vm->logic()->inventoryRefresh();
}
-
}
joeBob->animating = 0;
Index: graphics.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/graphics.cpp,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -d -r1.70 -r1.71
--- graphics.cpp 6 Jan 2004 20:00:43 -0000 1.70
+++ graphics.cpp 7 Jan 2004 15:45:24 -0000 1.71
@@ -278,11 +278,10 @@
void BankManager::eraseFrame(uint32 index) {
+ debug(9, "BankManager::eraseFrame(%d)", index);
BobFrame *pbf = &_frames[index];
- pbf->width = 0;
- pbf->height = 0;
delete[] pbf->data;
- pbf->data = 0;
+ memset(pbf, 0, sizeof(BobFrame));
}
@@ -465,9 +464,9 @@
if (pbs->animating) {
pbs->animOneStep();
- if (pbs->frameNum > 500) {
- pbs->frameNum -= 500;
+ if (pbs->frameNum > 500) { // SFX frame
_vm->sound()->playSfx(_vm->logic()->currentRoomSfx());
+ pbs->frameNum -= 500;
}
}
if (pbs->moving) {
@@ -668,64 +667,40 @@
}
-uint16 Graphics::animCreate(uint16 curImage, const Person *person) {
- AnimFrame *animFrames = _newAnim[person->actor->bobNum];
+void Graphics::fillAnimBuffer(const char *anim, AnimFrame *af) {
+ while (true) {
+ sscanf(anim, "%3hu,%3hu", &af->frame, &af->speed);
+ if (af->frame == 0)
+ break;
+ anim += 8;
+ ++af;
+ }
+}
- uint16 allocatedFrames[256];
- memset(allocatedFrames, 0, sizeof(allocatedFrames));
- const char *p = person->anim;
- int frame = 0;
- uint16 f1, f2;
- do {
- sscanf(p, "%3hu,%3hu", &f1, &f2);
- animFrames[frame].frame = f1;
- animFrames[frame].speed = f2;
- if (f1 > 500) {
- // SFX
- allocatedFrames[f1 - 500] = 1;
- } else {
- allocatedFrames[f1] = 1;
- }
-
- p += 8;
- ++frame;
- } while(f1 != 0);
-
- // ajust frame numbers
- uint16 n = 1;
- uint16 i;
- for (i = 1; i <= 255; ++i) {
- if (allocatedFrames[i] != 0) {
- allocatedFrames[i] = n;
- ++n;
- }
- }
- for (i = 0; animFrames[i].frame != 0; ++i) {
- uint16 frameNum = animFrames[i].frame;
+uint16 Graphics::countAnimFrames(const char *anim) {
+ AnimFrame afbuf[30];
+ fillAnimBuffer(anim, afbuf);
+
+ bool frames[256];
+ memset(frames, 0, sizeof(frames));
+ uint16 count = 0;
+ AnimFrame *af = afbuf;
+ for ( ; af->frame != 0; ++af) {
+ uint16 frameNum = af->frame;
if (frameNum > 500) {
- animFrames[i].frame = curImage + allocatedFrames[frameNum - 500] + 500;
- } else {
- animFrames[i].frame = curImage + allocatedFrames[frameNum];
+ frameNum -= 500;
}
- }
-
- // unpack necessary frames
- for (i = 1; i <= 255; ++i) {
- if (allocatedFrames[i] != 0) {
- ++curImage;
- _vm->bankMan()->unpack(i, curImage, person->actor->bankNum);
+ if (!frames[frameNum]) {
+ frames[frameNum] = true;
+ ++count;
}
}
-
- // start animation
- bob(person->actor->bobNum)->animString(animFrames);
-
- return curImage;
+ return count;
}
-void Graphics::animSetup(const GraphicData *gd, uint16 firstImage, uint16 bobNum, bool visible) {
+void Graphics::setupObjectAnim(const GraphicData *gd, uint16 firstImage, uint16 bobNum, bool visible) {
int16 tempFrames[20];
memset(tempFrames, 0, sizeof(tempFrames));
uint16 numTempFrames = 0;
@@ -801,14 +776,60 @@
}
-void Graphics::animReset(uint16 bobNum) {
+uint16 Graphics::setupPersonAnim(const ActorData *ad, const char *anim, uint16 curImage) {
+ debug(9, "Graphics::setupPersonAnim(%s, %d)", anim, curImage);
+ AnimFrame *animFrames = _newAnim[ad->bobNum];
+ fillAnimBuffer(anim, animFrames);
+ uint16 frameCount[256];
+ memset(frameCount, 0, sizeof(frameCount));
+ AnimFrame *af = animFrames;
+ for ( ; af->frame != 0; ++af) {
+ uint16 frameNum = af->frame;
+ if (frameNum > 500) {
+ frameNum -= 500;
+ }
+ if (!frameCount[frameNum]) {
+ frameCount[frameNum] = 1;
+ }
+ }
+ uint16 i, n = 1;
+ for (i = 1; i < 256; ++i) {
+ if (frameCount[i]) {
+ frameCount[i] = n;
+ ++n;
+ }
+ }
+ af = animFrames;
+ for ( ; af->frame != 0; ++af) {
+ if (af->frame > 500) {
+ af->frame = curImage + frameCount[af->frame - 500] + 500;
+ } else {
+ af->frame = curImage + frameCount[af->frame];
+ }
+ }
+
+ // unpack necessary frames
+ for (i = 1; i < 256; ++i) {
+ if (frameCount[i]) {
+ ++curImage;
+ _vm->bankMan()->unpack(i, curImage, ad->bankNum);
+ }
+ }
+
+ // start animation
+ bob(ad->bobNum)->animString(animFrames);
+ return curImage;
+}
+
+
+void Graphics::resetPersonAnim(uint16 bobNum) {
if (_newAnim[bobNum][0].frame != 0) {
bob(bobNum)->animString(_newAnim[bobNum]);
}
}
-void Graphics::animErase(uint16 bobNum) {
+void Graphics::erasePersonAnim(uint16 bobNum) {
_newAnim[bobNum][0].frame = 0;
BobSlot *pbs = bob(bobNum);
pbs->animating = false;
@@ -816,7 +837,7 @@
}
-void Graphics::animEraseAll() {
+void Graphics::eraseAllAnims() {
for (int i = 1; i <= 16; ++i) {
_newAnim[i][0].frame = 0;
}
Index: graphics.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/graphics.h,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -d -r1.53 -r1.54
--- graphics.h 6 Jan 2004 14:21:50 -0000 1.53
+++ graphics.h 7 Jan 2004 15:45:24 -0000 1.54
@@ -179,11 +179,13 @@
int textCenterX(const char *text) const; // MIDDLE()
void textColor(uint16 y, uint8 color) { _texts[y].color = color; }
- uint16 animCreate(uint16 curImage, const Person *person);
- void animSetup(const GraphicData *gd, uint16 firstImage, uint16 bobNum, bool visible);
- void animReset(uint16 bobNum);
- void animErase(uint16 bobNum);
- void animEraseAll();
+ void fillAnimBuffer(const char *anim, AnimFrame *af);
+ uint16 countAnimFrames(const char *anim);
+ void setupObjectAnim(const GraphicData *gd, uint16 firstImage, uint16 bobNum, bool visible);
+ uint16 setupPersonAnim(const ActorData *ad, const char *anim, uint16 curImage);
+ void resetPersonAnim(uint16 bobNum);
+ void erasePersonAnim(uint16 bobNum);
+ void eraseAllAnims();
void loadPanel();
Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.cpp,v
retrieving revision 1.160
retrieving revision 1.161
diff -u -d -r1.160 -r1.161
--- logic.cpp 6 Jan 2004 20:00:45 -0000 1.160
+++ logic.cpp 7 Jan 2004 15:45:24 -0000 1.161
@@ -260,7 +260,7 @@
memset(_gameState, 0, sizeof(_gameState));
_vm->graphics()->loadPanel();
_vm->graphics()->bobSetupControl();
- joeSetup();
+ setupJoe();
zoneSetupPanel();
_oldRoom = 0;
@@ -268,11 +268,7 @@
ObjectData* Logic::objectData(int index) const {
- if (index < 0) {
- warning("Logic::objectData() called with negative object index: %i", index);
- }
- index = ABS(index); // cyx: is that really necessary ?
- if (index <= _numObjects)
+ if (index >= 0 && index <= _numObjects)
return &_objectData[index];
else
error("[Logic::objectData] Invalid object data index: %i", index);
@@ -480,7 +476,7 @@
}
-int16 Logic::gameState(int index) {
+int16 Logic::gameState(int index) const {
if (index >= 0 && index < GAME_STATE_COUNT)
return _gameState[index];
else
@@ -616,7 +612,7 @@
for (i = 0; i <= 3; ++i) {
_personFrames[i] = 0;
}
- _vm->graphics()->animEraseAll();
+ _vm->graphics()->eraseAllAnims();
uint16 cur = _roomData[_oldRoom] + 1;
uint16 last = _roomData[_oldRoom + 1];
@@ -767,7 +763,7 @@
if (pgd->firstFrame < 0) {
// FIXME: if(TEMPA[1]<0) bobs[CURRBOB].xflip=1;
curBob = 5 + _numFurnitureAnimated;
- _vm->graphics()->animSetup(pgd, curImage + 1, curBob + numObjectAnimated, pod->name > 0);
+ _vm->graphics()->setupObjectAnim(pgd, curImage + 1, curBob + numObjectAnimated, pod->name > 0);
curImage += pgd->lastFrame;
++numObjectAnimated;
} else if (lastFrame != 0) {
@@ -816,9 +812,9 @@
debug(6, "Logic::roomSetupObjects() - Setting up person %X, name=%X", i, pod->name);
uint16 noun = i - currentRoomData();
if (pod->name > 0) {
- curImage = personSetup(noun, curImage);
+ curImage = setupPersonInRoom(noun, curImage);
} else {
- curImage = personAllocate(noun, curImage);
+ curImage = countPersonFrames(noun, curImage);
}
}
}
@@ -879,7 +875,7 @@
curImage = _numFrames;
_personFrames[pNum] = curImage;
}
- curImage = personSetup(obj - currentRoomData(), curImage);
+ curImage = setupPersonInRoom(obj - currentRoomData(), curImage);
}
return curImage;
}
@@ -906,7 +902,7 @@
rebound = true;
}
if (pgd->firstFrame < 0) {
- _vm->graphics()->animSetup(pgd, curImage, curBob, pod->name != 0);
+ _vm->graphics()->setupObjectAnim(pgd, curImage, curBob, pod->name != 0);
curImage += pgd->lastFrame - 1;
} else if (lastFrame != 0) {
// turn on an animated bob
@@ -975,7 +971,7 @@
roomSetup(roomName(room), comPanel, inCutaway);
ObjectData *pod = NULL;
if (mode != RDM_FADE_NOJOE) {
- pod = joeSetupInRoom(mode != RDM_FADE_JOE_XY, scale);
+ pod = setupJoeInRoom(mode != RDM_FADE_JOE_XY, scale);
}
if (mode != RDM_NOFADE_JOE) {
update();
@@ -1035,9 +1031,9 @@
}
-void Logic::personSetData(int16 noun, const char *actorName, bool loadBank, Person *pp) {
+void Logic::initPerson(int16 noun, const char *actorName, bool loadBank, Person *pp) {
if (noun <= 0) {
- warning("Person::setData() - Invalid object number: %i", noun);
+ warning("Logic::initPerson() - Invalid object number: %i", noun);
}
ActorData *pad = findActor(noun, actorName);
if (pad != NULL) {
@@ -1058,14 +1054,14 @@
}
-uint16 Logic::personSetup(uint16 noun, uint16 curImage) {
+uint16 Logic::setupPersonInRoom(uint16 noun, uint16 curImage) {
if (noun == 0) {
warning("Trying to setup person 0");
return curImage;
}
Person p;
- personSetData(noun, "", true, &p);
+ initPerson(noun, "", true, &p);
const ActorData *pad = p.actor;
uint16 scale = 100;
@@ -1087,39 +1083,25 @@
if (p.anim != NULL) {
_personFrames[pad->bobNum] = curImage + 1;
- curImage = _vm->graphics()->animCreate(curImage, &p);
+ curImage = _vm->graphics()->setupPersonAnim(pad, p.anim, curImage);
} else {
- _vm->graphics()->animErase(pad->bobNum);
+ _vm->graphics()->erasePersonAnim(pad->bobNum);
}
return curImage;
}
-uint16 Logic::personAllocate(uint16 noun, uint16 curImage) {
+uint16 Logic::countPersonFrames(uint16 noun, uint16 curImage) {
ActorData *pad = findActor(noun);
if (pad != NULL && pad->anim != 0) {
- const char *animStr = _aAnim[pad->anim];
- bool allocatedFrames[256];
- memset(allocatedFrames, 0, sizeof(allocatedFrames));
- uint16 f1, f2;
- do {
- sscanf(animStr, "%3hu,%3hu", &f1, &f2);
- animStr += 8;
- allocatedFrames[f1] = true;
- } while(f1 != 0);
- for (int i = 1; i <= 255; ++i) {
- if (allocatedFrames[i]) {
- ++curImage;
- }
- }
- // FIXME: shouldn't this line be executed BEFORE curImage is incremented ?
+ curImage += _vm->graphics()->countAnimFrames(_aAnim[pad->anim]);
_personFrames[pad->bobNum] = curImage + 1;
}
return curImage;
}
-void Logic::joeSetupFromBanks(const char *animBank, const char *standBank) {
+void Logic::loadJoeBanks(const char *animBank, const char *standBank) {
int i;
_vm->bankMan()->load(animBank, 13);
for (i = 11; i <= 28 + FRAMES_JOE_XTRA; ++i) {
@@ -1134,22 +1116,22 @@
}
-void Logic::joeSetup() {
- joeSetupFromBanks("joe_a.BBK", "joe_b.BBK");
+void Logic::setupJoe() {
+ loadJoeBanks("joe_a.BBK", "joe_b.BBK");
joePrevFacing(DIR_FRONT);
joeFacing(DIR_FRONT);
}
-ObjectData *Logic::joeSetupInRoom(bool autoPosition, uint16 scale) {
- debug(6, "Logic::joeSetupInRoom(%d, %d) joe.x=%d joe.y=%d", autoPosition, scale, _joe.x, _joe.y);
+ObjectData *Logic::setupJoeInRoom(bool autoPosition, uint16 scale) {
+ debug(9, "Logic::setupJoeInRoom(%d, %d) joe.x=%d joe.y=%d", autoPosition, scale, _joe.x, _joe.y);
uint16 oldx;
uint16 oldy;
WalkOffData *pwo = NULL;
ObjectData *pod = objectData(_entryObj);
if (pod == NULL) {
- error("Logic::joeSetupInRoom() - No object data for obj %d", _entryObj);
+ error("Logic::setupJoeInRoom() - No object data for obj %d", _entryObj);
}
if (!autoPosition || joeX() != 0 || joeY() != 0) {
@@ -1349,7 +1331,7 @@
}
}
_vm->display()->palSetJoeDress();
- joeSetupFromBanks("JoeD_A.BBK", "JoeD_B.BBK");
+ loadJoeBanks("JoeD_A.BBK", "JoeD_B.BBK");
inventoryDeleteItem(ITEM_DRESS);
gameState(VAR_DRESSING_MODE, 2);
}
@@ -1363,7 +1345,7 @@
inventoryInsertItem(ITEM_DRESS);
}
_vm->display()->palSetJoeNormal();
- joeSetupFromBanks("Joe_A.BBK", "Joe_B.BBK");
+ loadJoeBanks("Joe_A.BBK", "Joe_B.BBK");
inventoryDeleteItem(ITEM_CLOTHES);
gameState(VAR_DRESSING_MODE, 0);
}
@@ -1371,7 +1353,7 @@
void Logic::joeUseUnderwear() {
_vm->display()->palSetJoeNormal();
- joeSetupFromBanks("JoeU_A.BBK", "JoeU_B.BBK");
+ loadJoeBanks("JoeU_A.BBK", "JoeU_B.BBK");
gameState(VAR_DRESSING_MODE, 1);
}
@@ -1382,7 +1364,7 @@
}
-void Logic::dialogue(const char *dlgFile, int personInRoom, char *cutaway) {
+void Logic::startDialogue(const char *dlgFile, int personInRoom, char *cutaway) {
char cutawayFile[20];
if (cutaway == NULL) {
cutaway = cutawayFile;
@@ -1405,9 +1387,9 @@
}
-void Logic::joeSpeak(uint16 descNum, bool objectType) {
- // joeSpeak(k, false) == SPEAK(JOE_RESPstr[k],"JOE",find_cd_desc(k))
- // joeSpeak(k, true) == SPEAK(OBJECT_DESCRstr[k],"JOE",find_cd_desc(JOERESPMAX+k))
+void Logic::makeJoeSpeak(uint16 descNum, bool objectType) {
+ // makeJoeSpeak(k, false) == SPEAK(JOE_RESPstr[k],"JOE",find_cd_desc(k))
+ // makeJoeSpeak(k, true) == SPEAK(OBJECT_DESCRstr[k],"JOE",find_cd_desc(JOERESPMAX+k))
const char *text = objectType ? _objDescription[descNum] : _joeResponse[descNum];
if (objectType) {
descNum += JOE_RESPONSE_MAX;
@@ -1685,7 +1667,7 @@
switch (_currentRoom) {
case ROOM_JUNGLE_BRIDGE:
- joeSpeak(16);
+ makeJoeSpeak(16);
break;
case ROOM_JUNGLE_GORILLA_1:
playCutaway("c6c.CUT", nextCut);
@@ -1734,10 +1716,10 @@
playCutaway("c53b.CUT", nextCut);
break;
case ROOM_TEMPLE_LIZARD_LASER:
- joeSpeak(19);
+ makeJoeSpeak(19);
break;
case ROOM_HOTEL_DOWNSTAIRS:
- joeSpeak(21);
+ makeJoeSpeak(21);
break;
case ROOM_HOTEL_LOBBY:
if (_gameState[VAR_ESCAPE_FROM_HOTEL_COUNT] == 0) {
@@ -1754,7 +1736,7 @@
break;
case ROOM_TEMPLE_MAZE_5:
if (areaNum == 7) {
- joeSpeak(17);
+ makeJoeSpeak(17);
}
break;
case ROOM_TEMPLE_MAZE_6:
@@ -2563,7 +2545,7 @@
void Logic::asmAttemptPuzzle() {
++_puzzleAttemptCount;
if (_puzzleAttemptCount & 4) {
- joeSpeak(226, true);
+ makeJoeSpeak(226, true);
_puzzleAttemptCount = 0;
}
}
Index: logic.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.h,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -d -r1.103 -r1.104
--- logic.h 6 Jan 2004 20:00:46 -0000 1.103
+++ logic.h 7 Jan 2004 15:45:24 -0000 1.104
@@ -130,7 +130,7 @@
const char *joeResponse(int i) const { return _joeResponse[i]; }
const char *verbName(Verb v) const { return _verbName[v]; }
- int16 gameState(int index);
+ int16 gameState(int index) const;
void gameState(int index, int16 newValue);
TalkSelected *talkSelected(int index) { return _talkSelected + index; }
@@ -169,18 +169,18 @@
uint16 numFrames() const { return _numFrames; }
ActorData *findActor(uint16 noun, const char *name = NULL);
- void personSetData(int16 noun, const char *actorName, bool loadBank, Person *pp);
- uint16 personSetup(uint16 noun, uint16 curImage);
- uint16 personAllocate(uint16 noun, uint16 curImage);
+ void initPerson(int16 noun, const char *actorName, bool loadBank, Person *pp);
+ uint16 setupPersonInRoom(uint16 noun, uint16 curImage);
+ uint16 countPersonFrames(uint16 noun, uint16 curImage);
uint16 personFrames(uint16 bobNum) const { return _personFrames[bobNum]; }
- void joeSetupFromBanks(const char *animBank, const char *standBank);
+ void loadJoeBanks(const char *animBank, const char *standBank);
//! Load the various bobs needed to animate Joe
- void joeSetup();
+ void setupJoe();
//! Setup Joe at the right place when entering a room
- ObjectData *joeSetupInRoom(bool autoPosition, uint16 scale);
+ ObjectData *setupJoeInRoom(bool autoPosition, uint16 scale);
uint16 joeFace();
void joeGrab(int16 grabState);
@@ -189,10 +189,9 @@
void joeUseClothes(bool showCut);
void joeUseUnderwear();
- void joeSpeak(uint16 descNum, bool objectType = false);
-
+ void makeJoeSpeak(uint16 descNum, bool objectType = false);
void makePersonSpeak(const char *sentence, Person *person, const char *voiceFilePrefix);
- void dialogue(const char *dlgFile, int personInRoom, char *cutaway);
+ void startDialogue(const char *dlgFile, int personInRoom, char *cutaway);
void playCutaway(const char *cutFile, char *next = NULL);
Verb findVerbUnderCursor(int16 cursorx, int16 cursory) const;
Index: talk.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/talk.cpp,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -d -r1.69 -r1.70
--- talk.cpp 6 Jan 2004 14:21:50 -0000 1.69
+++ talk.cpp 7 Jan 2004 15:45:24 -0000 1.70
@@ -99,7 +99,7 @@
if (State::findTalk(data->state) == STATE_TALK_MUTE) {
// 'I can't talk to that'
- _vm->logic()->joeSpeak(24 + _vm->randomizer.getRandomNumber(2));
+ _vm->logic()->makeJoeSpeak(24 + _vm->randomizer.getRandomNumber(2));
return;
}
@@ -107,7 +107,7 @@
Person person;
memset(&person, 0, sizeof(Person));
- _vm->logic()->personSetData(personInRoom, "", false, &person);
+ _vm->logic()->initPerson(personInRoom, "", false, &person);
if (NULL == person.name) {
error("Invalid person object");
@@ -337,7 +337,7 @@
pbs->y = person.actor->y;
// Better kick start the persons anim sequence
- _vm->graphics()->animReset(person.actor->bobNum);
+ _vm->graphics()->resetPersonAnim(person.actor->bobNum);
}
_vm->logic()->joeWalk(JWM_NORMAL);
Index: walk.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/walk.cpp,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- walk.cpp 6 Jan 2004 12:45:29 -0000 1.35
+++ walk.cpp 7 Jan 2004 15:45:24 -0000 1.36
@@ -306,7 +306,7 @@
}
} else {
// path has been blocked, make Joe say so
- _vm->logic()->joeSpeak(4);
+ _vm->logic()->makeJoeSpeak(4);
can = -1;
}
}
Index: xref.txt
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/xref.txt,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -d -r1.55 -r1.56
--- xref.txt 6 Jan 2004 14:21:50 -0000 1.55
+++ xref.txt 7 Jan 2004 15:45:24 -0000 1.56
@@ -126,7 +126,7 @@
clearbob() Graphics::bobClear
drawbobs() Graphics::bobDrawAll
invbob() Graphics::bobDrawInventoryItem
-loadbackdrop() Graphics::loadBackdrop
+loadbackdrop() *included in Display::setupNewRoom*
loadpanel() Graphics::loadPanel
MAKE_SPEAK_BOB() Graphics::bobSetText
makeanim() BobSlot::animNormal
@@ -172,8 +172,8 @@
===
FACE_JOE() Logic::joeFace
GRAB_DIR(),GRAB_JOE() Logic::joeGrab
-SETUP_HERO() Logic::joeSetupInRoom
-SETUP_JOE() Logic::joeSetup
+SETUP_HERO() Logic::setupJoeInRoom
+SETUP_JOE() Logic::setupJoe
USE_UNDERWEAR() Logic::joeUseUnderwear
USE_CLOTHES() Logic::joeUseClothes
USE_DRESS() Logic::joeUseDress
@@ -205,6 +205,7 @@
LOGIC
=====
CHECK_PLAYER() Logic::checkPlayer
+CUTAWAY_SPECIAL()
DISP_OBJECTS() Logic::roomSetupObjects
DISP_ROOM() Logic::roomDisplay
FIND_BOB() Logic::findBob
@@ -248,7 +249,6 @@
ITEMTOT Logic::_numItems
ITEM_DATA Logic::_itemData
NAMETOT Logic::_numNames
-NEW_ANIM Logic::_newAnim
OBJ_DESC_DATA Logic::_objectDescription
OBJ_DESC_MAX Logic::_numObjDesc
OBJECT_BOX Logic::_objectBox
@@ -262,19 +262,20 @@
ROOM_DATA Logic::_roomData
ROOM_NAMEstr Logic::_roomName
SFACTOR Logic::_joe.scale
-VERB_NAMEstr Verb::_verbName
+VERB_NAMEstr Logic::_verbName
WALK_OFF_DATA Logic::_walkOffData
WALK_OFF_MAX Logic::_numWalkOffs
PERSONS
=======
-ALLOCATE_PERSON() Logic::personAllocate
-CREATE_ANIM() Graphics::animCreate
-SET_PERSON_DATA() Logic::personSetData
-SETUP_PERSON() Logic::personSetup
+ALLOCATE_PERSON() Logic::allocatePersonFrames
+CREATE_ANIM() Graphics::setupPersonAnim
+SET_PERSON_DATA() Logic::initPerson
+SETUP_PERSON() Logic::setupPersonInRoom
OBJ_PERSON() Logic::objectForPerson
-
+NEW_ANIM Graphics::_newAnim
PERSON_FACE
PERSON_FACE_MAX
PERSON_FRAMES Logic::_personFrames
More information about the Scummvm-git-logs
mailing list