[Scummvm-cvs-logs] scummvm master -> d9441aeb802cd99cbef7f392301ff77e625a4f94

lordhoto lordhoto at gmail.com
Mon Apr 11 00:37:58 CEST 2011


This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
8fe9f8e73a KYRA: Cleanup.
93f591580a KYRA: Get rid of non-const static variable in Kyra2 code.
073da68efa KYRA: Constify static data table in LoL code.
d9441aeb80 KYRA: Add some assertion to prevent out of bounds access.


Commit: 8fe9f8e73a0ac0a4f0a18a94db705f934f58ad34
    https://github.com/scummvm/scummvm/commit/8fe9f8e73a0ac0a4f0a18a94db705f934f58ad34
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2011-04-10T15:31:24-07:00

Commit Message:
KYRA: Cleanup.

Changed paths:
    engines/kyra/kyra_hof.cpp
    engines/kyra/kyra_hof.h
    engines/kyra/kyra_mr.cpp
    engines/kyra/kyra_mr.h
    engines/kyra/kyra_v2.cpp
    engines/kyra/kyra_v2.h



diff --git a/engines/kyra/kyra_hof.cpp b/engines/kyra/kyra_hof.cpp
index 4fef760..c73792e 100644
--- a/engines/kyra/kyra_hof.cpp
+++ b/engines/kyra/kyra_hof.cpp
@@ -1279,14 +1279,14 @@ int KyraEngine_HoF::getCharacterWalkspeed() const {
 	return _timer->getDelay(0);
 }
 
-void KyraEngine_HoF::updateCharAnimFrame(int charId, int *table) {
-	static const int unkTable2[] = { 17, 0 };
-	static const int unkTable3[] = { 10, 0 };
-	static const int unkTable4[] = { 24, 0 };
-	static const int unkTable5[] = { 19, 0 };
-	static const int unkTable6[] = { 21, 0 };
-	static const int unkTable7[] = { 31, 0 };
-	static const int unkTable8[] = { 26, 0 };
+void KyraEngine_HoF::updateCharAnimFrame(int *table) {
+	static const int unkFrame1 = 17;
+	static const int unkFrame2 = 10;
+	static const int unkFrame3 = 24;
+	static const int unkFrame4 = 19;
+	static const int unkFrame5 = 21;
+	static const int unkFrame6 = 31;
+	static const int unkFrame7 = 26;
 
 	Character *character = &_mainCharacter;
 	++character->animFrame;
@@ -1301,46 +1301,46 @@ void KyraEngine_HoF::updateCharAnimFrame(int charId, int *table) {
 	}
 
 	if (!facing) {
-		++_characterFacingCountTable[charId];
+		++_characterFacingCountTable[0];
 	} else if (facing == 4) {
-		++_characterFacingCountTable[charId+1];
+		++_characterFacingCountTable[1];
 	} else if (facing == 7 || facing == 1 || facing == 5 || facing == 3) {
 		if (facing == 7 || facing == 1) {
-			if (_characterFacingCountTable[charId] > 2)
+			if (_characterFacingCountTable[0] > 2)
 				facing = 0;
 		} else {
-			if (_characterFacingCountTable[charId+1] > 2)
+			if (_characterFacingCountTable[1] > 2)
 				facing = 4;
 		}
 
-		_characterFacingCountTable[charId] = 0;
-		_characterFacingCountTable[charId+1] = 0;
+		_characterFacingCountTable[0] = 0;
+		_characterFacingCountTable[1] = 0;
 	}
 
 	if (facing == 0) {
-		if (character->animFrame < unkTable8[charId])
-			character->animFrame = unkTable8[charId];
+		if (character->animFrame < unkFrame7)
+			character->animFrame = unkFrame7;
 
-		if (character->animFrame > unkTable7[charId])
-			character->animFrame = unkTable8[charId];
+		if (character->animFrame > unkFrame6)
+			character->animFrame = unkFrame7;
 	} else if (facing == 4) {
-		if (character->animFrame < unkTable5[charId])
-			character->animFrame = unkTable5[charId];
+		if (character->animFrame < unkFrame4)
+			character->animFrame = unkFrame4;
 
-		if (character->animFrame > unkTable4[charId])
-			character->animFrame = unkTable5[charId];
+		if (character->animFrame > unkFrame3)
+			character->animFrame = unkFrame4;
 	} else {
-		if (character->animFrame > unkTable5[charId])
-			character->animFrame = unkTable6[charId];
+		if (character->animFrame > unkFrame4)
+			character->animFrame = unkFrame5;
 
-		if (character->animFrame == unkTable2[charId])
-			character->animFrame = unkTable3[charId];
+		if (character->animFrame == unkFrame1)
+			character->animFrame = unkFrame2;
 
-		if (character->animFrame > unkTable2[charId])
-			character->animFrame = unkTable3[charId] + 2;
+		if (character->animFrame > unkFrame1)
+			character->animFrame = unkFrame2 + 2;
 	}
 
-	updateCharacterAnim(charId);
+	updateCharacterAnim(0);
 }
 
 bool KyraEngine_HoF::checkCharCollision(int x, int y) {
diff --git a/engines/kyra/kyra_hof.h b/engines/kyra/kyra_hof.h
index 3040107..3086984 100644
--- a/engines/kyra/kyra_hof.h
+++ b/engines/kyra/kyra_hof.h
@@ -583,7 +583,7 @@ protected:
 	int _characterFacingCountTable[2];
 
 	int getCharacterWalkspeed() const;
-	void updateCharAnimFrame(int num, int *table);
+	void updateCharAnimFrame(int *table);
 
 	bool checkCharCollision(int x, int y);
 
diff --git a/engines/kyra/kyra_mr.cpp b/engines/kyra/kyra_mr.cpp
index fee7835..65e7844 100644
--- a/engines/kyra/kyra_mr.cpp
+++ b/engines/kyra/kyra_mr.cpp
@@ -788,7 +788,7 @@ int KyraEngine_MR::getCharacterWalkspeed() const {
 	return _mainCharacter.walkspeed;
 }
 
-void KyraEngine_MR::updateCharAnimFrame(int character, int *table) {
+void KyraEngine_MR::updateCharAnimFrame(int *table) {
 	++_mainCharacter.animFrame;
 	int facing = _mainCharacter.facing;
 
diff --git a/engines/kyra/kyra_mr.h b/engines/kyra/kyra_mr.h
index f5ff377..912c615 100644
--- a/engines/kyra/kyra_mr.h
+++ b/engines/kyra/kyra_mr.h
@@ -386,7 +386,7 @@ private:
 
 	// character
 	int getCharacterWalkspeed() const;
-	void updateCharAnimFrame(int character, int *table);
+	void updateCharAnimFrame(int *table);
 	int8 _characterAnimTable[2];
 	static const uint8 _characterFrameTable[];
 
diff --git a/engines/kyra/kyra_v2.cpp b/engines/kyra/kyra_v2.cpp
index 53c57c2..6477b68 100644
--- a/engines/kyra/kyra_v2.cpp
+++ b/engines/kyra/kyra_v2.cpp
@@ -236,7 +236,7 @@ int KyraEngine_v2::updateCharPos(int *table, int force) {
 		return 0;
 	_mainCharacter.x1 += _charAddXPosTable[_mainCharacter.facing];
 	_mainCharacter.y1 += _charAddYPosTable[_mainCharacter.facing];
-	updateCharAnimFrame(0, table);
+	updateCharAnimFrame(table);
 	_updateCharPosNextUpdate = _system->getMillis() + getCharacterWalkspeed() * _tickLength;
 	return 1;
 }
diff --git a/engines/kyra/kyra_v2.h b/engines/kyra/kyra_v2.h
index 084b159..bce11c8 100644
--- a/engines/kyra/kyra_v2.h
+++ b/engines/kyra/kyra_v2.h
@@ -340,7 +340,7 @@ protected:
 	uint32 _updateCharPosNextUpdate;
 
 	virtual int getCharacterWalkspeed() const = 0;
-	virtual void updateCharAnimFrame(int num, int *table) = 0;
+	virtual void updateCharAnimFrame(int *table) = 0;
 
 	// chat
 	int _vocHigh;


Commit: 93f591580a31b0a4553994be40a2eb0b227e3a56
    https://github.com/scummvm/scummvm/commit/93f591580a31b0a4553994be40a2eb0b227e3a56
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2011-04-10T15:34:16-07:00

Commit Message:
KYRA: Get rid of non-const static variable in Kyra2 code.

Changed paths:
    engines/kyra/kyra_v2.cpp
    engines/kyra/kyra_v2.h
    engines/kyra/scene_v2.cpp



diff --git a/engines/kyra/kyra_v2.cpp b/engines/kyra/kyra_v2.cpp
index 6477b68..804097c 100644
--- a/engines/kyra/kyra_v2.cpp
+++ b/engines/kyra/kyra_v2.cpp
@@ -74,6 +74,9 @@ KyraEngine_v2::KyraEngine_v2(OSystem *system, const GameFlags &flags, const Engi
 
 	_pauseStart = 0;
 
+	_pathfinderFlag = 0;
+	_smoothingPath = false;
+
 	_lang = 0;
 	Common::Language lang = Common::parseLanguage(ConfMan.get("language"));
 	if (lang == _flags.fanLang && _flags.replacedLang != Common::UNK_LANG)
diff --git a/engines/kyra/kyra_v2.h b/engines/kyra/kyra_v2.h
index bce11c8..9f0aecd 100644
--- a/engines/kyra/kyra_v2.h
+++ b/engines/kyra/kyra_v2.h
@@ -269,6 +269,7 @@ protected:
 	// pathfinder
 	int _movFacingTable[600];
 	int _pathfinderFlag;
+	bool _smoothingPath;
 
 	int findWay(int curX, int curY, int dstX, int dstY, int *moveTable, int moveTableSize);
 
diff --git a/engines/kyra/scene_v2.cpp b/engines/kyra/scene_v2.cpp
index f0c26ac..fdfbceb 100644
--- a/engines/kyra/scene_v2.cpp
+++ b/engines/kyra/scene_v2.cpp
@@ -86,15 +86,16 @@ int KyraEngine_v2::findWay(int x, int y, int toX, int toY, int *moveTable, int m
 	x &= ~3; toX &= ~3;
 	y &= ~1; toY &= ~1;
 	int size = KyraEngine_v1::findWay(x, y, toX, toY, moveTable, moveTableSize);
-	static bool usePostProcess = false;
-	if (size && !usePostProcess) {
-		usePostProcess = true;
+
+	if (size && !_smoothingPath) {
+		_smoothingPath = true;
 		int temp = pathfinderInitPositionTable(moveTable);
 		temp = pathfinderInitPositionIndexTable(temp, x, y);
 		pathfinderFinializePath(moveTable, temp, x, y, moveTableSize);
-		usePostProcess = false;
+		_smoothingPath = false;
 	}
-	return usePostProcess ? size : getMoveTableSize(moveTable);
+
+	return _smoothingPath ? size : getMoveTableSize(moveTable);
 }
 
 bool KyraEngine_v2::directLinePassable(int x, int y, int toX, int toY) {


Commit: 073da68efa75045530afd201e8b82886326072a9
    https://github.com/scummvm/scummvm/commit/073da68efa75045530afd201e8b82886326072a9
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2011-04-10T15:35:28-07:00

Commit Message:
KYRA: Constify static data table in LoL code.

Changed paths:
    engines/kyra/lol.cpp



diff --git a/engines/kyra/lol.cpp b/engines/kyra/lol.cpp
index 7003d8c..bec4879 100644
--- a/engines/kyra/lol.cpp
+++ b/engines/kyra/lol.cpp
@@ -898,7 +898,7 @@ void LoLEngine::startupNew() {
 
 	memset(_globalScriptVars2, 0x100, 8);
 
-	static int selectIds[] = { -9, -1, -8, -5 };
+	static const int selectIds[] = { -9, -1, -8, -5 };
 	addCharacter(selectIds[_charSelection]);
 
 	gui_enableDefaultPlayfieldButtons();


Commit: d9441aeb802cd99cbef7f392301ff77e625a4f94
    https://github.com/scummvm/scummvm/commit/d9441aeb802cd99cbef7f392301ff77e625a4f94
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2011-04-10T15:36:03-07:00

Commit Message:
KYRA: Add some assertion to prevent out of bounds access.

Changed paths:
    engines/kyra/lol.cpp



diff --git a/engines/kyra/lol.cpp b/engines/kyra/lol.cpp
index bec4879..5928c40 100644
--- a/engines/kyra/lol.cpp
+++ b/engines/kyra/lol.cpp
@@ -899,6 +899,8 @@ void LoLEngine::startupNew() {
 	memset(_globalScriptVars2, 0x100, 8);
 
 	static const int selectIds[] = { -9, -1, -8, -5 };
+	assert(_charSelection >= 0);
+	assert(_charSelection < ARRAYSIZE(selectIds));
 	addCharacter(selectIds[_charSelection]);
 
 	gui_enableDefaultPlayfieldButtons();






More information about the Scummvm-git-logs mailing list