[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