[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