[Scummvm-cvs-logs] CVS: scummvm/kyra kyra.cpp,1.86,1.87 script_v1.cpp,1.39,1.40
Johannes Schickel
lordhoto at users.sourceforge.net
Tue Dec 13 05:30:22 CET 2005
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/kyra sound.cpp,1.10,1.11
- Next message: [Scummvm-cvs-logs] CVS: scummvm/sky control.cpp,1.103,1.104 logic.cpp,1.161,1.162 screen.cpp,1.70,1.71 sky.cpp,1.186,1.187
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/kyra
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14732
Modified Files:
kyra.cpp script_v1.cpp
Log Message:
Fixed a bug with transcendScenes in CD version there the old file
is still loaded then.
Also implemented:
cmd_changeCharactersXAndY
cmd_setCharactersLocation
cmd_setCharactersCurrentFrame
Index: kyra.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/kyra/kyra.cpp,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -d -r1.86 -r1.87
--- kyra.cpp 12 Dec 2005 19:22:49 -0000 1.86
+++ kyra.cpp 13 Dec 2005 13:27:58 -0000 1.87
@@ -1327,6 +1327,15 @@
void KyraEngine::transcendScenes(int roomIndex, int roomName) {
debug(9, "transcendScenes(%d, %d, %d, %d)", roomIndex, roomName);
assert(roomIndex < _roomTableSize);
+ if (_features & GF_TALKIE) {
+ char file[32];
+ assert(roomIndex < _roomTableSize);
+ int tableId = _roomTable[roomIndex].nameIndex;
+ assert(tableId < _roomFilenameTableSize);
+ strcpy(file, _roomFilenameTable[tableId]);
+ strcat(file, ".VRM");
+ _res->unloadPakFile(file);
+ }
_roomTable[roomIndex].nameIndex = roomName;
// _game_unkScreenVar2 = 1;
// _game_unkScreenVar3 = 1;
Index: script_v1.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/kyra/script_v1.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- script_v1.cpp 12 Dec 2005 20:30:23 -0000 1.39
+++ script_v1.cpp 13 Dec 2005 13:27:58 -0000 1.40
@@ -948,7 +948,18 @@
}
int KyraEngine::cmd_changeCharactersXAndY(ScriptState *script) {
- warning("STUB: cmd_changeCharactersXAndY");
+ debug(3, "cmd_changeCharactersXAndY(0x%X) (%d, %d, %d)", script, stackPos(0), stackPos(1), stackPos(2));
+ Character *ch = &_characterList[stackPos(0)];
+ int16 x = stackPos(1);
+ int16 y = stackPos(2);
+ if (x != -1 && y != -1) {
+ x &= 0xFFFC;
+ y &= 0xFFFE;
+ }
+ restoreAllObjectBackgrounds();
+ ch->x1 = ch->x2 = x;
+ ch->y1 = ch->y2 = y;
+ preserveAllBackgrounds();
return 0;
}
@@ -1060,7 +1071,19 @@
}
int KyraEngine::cmd_setCharactersLocation(ScriptState *script) {
- warning("STUB: cmd_setCharactersLocation");
+ debug(3, "cmd_setCharactersLocation(0x%X) (%d, %d)", script, stackPos(0), stackPos(1));
+ Character *ch = &_characterList[stackPos(0)];
+ AnimObject *animObj = &_charactersAnimState[stackPos(0)];
+ int newScene = stackPos(1);
+ if (_currentCharacter->sceneId == ch->sceneId) {
+ if (_currentCharacter->sceneId != newScene)
+ animObj->active = 0;
+ } else if (_currentCharacter->sceneId == newScene) {
+ if (_currentCharacter->sceneId != ch->sceneId)
+ animObj->active = 1;
+ }
+
+ ch->sceneId = stackPos(1);
return 0;
}
@@ -1274,7 +1297,8 @@
}
int KyraEngine::cmd_setCharactersCurrentFrame(ScriptState *script) {
- warning("STUB: cmd_setCharactersCurrentFrame");
+ debug(3, "cmd_setCharactersCurrentFrame(0x%X) (%d, %d)", script, stackPos(0), stackPos(1));
+ _characterList[stackPos(0)].currentAnimFrame = stackPos(1);
return 0;
}
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/kyra sound.cpp,1.10,1.11
- Next message: [Scummvm-cvs-logs] CVS: scummvm/sky control.cpp,1.103,1.104 logic.cpp,1.161,1.162 screen.cpp,1.70,1.71 sky.cpp,1.186,1.187
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list