[Scummvm-cvs-logs] CVS: scummvm scumm.h,1.210,1.211 script_v1.cpp,1.144,1.145
Max Horn
fingolfin at users.sourceforge.net
Sat Aug 24 06:19:04 CEST 2002
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/smush blitter.cpp,NONE,1.1 blitter.h,NONE,1.1 brenderer.cpp,NONE,1.1 brenderer.h,NONE,1.1 channel.h,NONE,1.1 chunck.cpp,NONE,1.1 chunck.h,NONE,1.1 chunck_type.h,NONE,1.1 codec1.cpp,NONE,1.1 codec1.h,NONE,1.1 codec37.cpp,NONE,1.1 codec37.h,NONE,1.1 codec44.cpp,NONE,1.1 codec44.h,NONE,1.1 codec47.cpp,NONE,1.1 codec47.h,NONE,1.1 color.cpp,NONE,1.1 color.h,NONE,1.1 config.h,NONE,1.1 decoder.h,NONE,1.1 frenderer.cpp,NONE,1.1 frenderer.h,NONE,1.1 imuse_channel.cpp,NONE,1.1 mixer.h,NONE,1.1 palette.cpp,NONE,1.1 palette.h,NONE,1.1 player.cpp,NONE,1.1 player.h,NONE,1.1 rect.cpp,NONE,1.1 rect.h,NONE,1.1 renderer.h,NONE,1.1 saud_channel.cpp,NONE,1.1 scumm_renderer.cpp,NONE,1.1 scumm_renderer.h,NONE,1.1
- Next message: [Scummvm-cvs-logs] CVS: scummvm-new Makefile,1.5,1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm
In directory usw-pr-cvs1:/tmp/cvs-serv8755
Modified Files:
scumm.h script_v1.cpp
Log Message:
added/corrected some missing opcodes - this fixes the issues with the voodoo lady in MI1VGA
Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm.h,v
retrieving revision 1.210
retrieving revision 1.211
diff -u -d -r1.210 -r1.211
--- scumm.h 23 Aug 2002 22:07:39 -0000 1.210
+++ scumm.h 24 Aug 2002 13:18:38 -0000 1.211
@@ -1017,6 +1017,7 @@
void o5_isGreaterEqual();
void o5_isLess();
void o5_isNotEqual();
+ void o5_ifState();
void o5_isSoundRunning();
void o5_jumpRelative();
void o5_lessOrEqual();
Index: script_v1.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/script_v1.cpp,v
retrieving revision 1.144
retrieving revision 1.145
diff -u -d -r1.144 -r1.145
--- script_v1.cpp 20 Aug 2002 10:08:48 -0000 1.144
+++ script_v1.cpp 24 Aug 2002 13:18:38 -0000 1.145
@@ -86,7 +86,7 @@
&Scumm::o5_cursorCommand,
&Scumm::o5_putActorInRoom,
&Scumm::o5_delay,
- &Scumm::o5_getObjectState,
+ &Scumm::o5_ifState,
/* 30 */
&Scumm::o5_matrixOps,
&Scumm::o5_getInventoryCount,
@@ -126,7 +126,7 @@
&Scumm::o5_soundKludge,
&Scumm::o5_walkActorToActor,
&Scumm::o5_putActorAtObject,
- &Scumm::o5_badOpcode,
+ &Scumm::o5_ifState,
/* 50 */
&Scumm::o5_pickupObjectOld,
&Scumm::o5_animateActor,
@@ -166,7 +166,7 @@
&Scumm::o5_getActorWidth,
&Scumm::o5_putActorInRoom,
&Scumm::o5_stopObjectScript,
- &Scumm::o5_badOpcode,
+ &Scumm::o5_ifState,
/* 70 */
&Scumm::o5_lights,
&Scumm::o5_getActorCostume,
@@ -246,7 +246,7 @@
&Scumm::o5_expression,
&Scumm::o5_putActorInRoom,
&Scumm::o5_wait,
- &Scumm::o5_badOpcode,
+ &Scumm::o5_ifState,
/* B0 */
&Scumm::o5_matrixOps,
&Scumm::o5_getInventoryCount,
@@ -286,7 +286,7 @@
&Scumm::o5_pseudoRoom,
&Scumm::o5_walkActorToActor,
&Scumm::o5_putActorAtObject,
- &Scumm::o5_badOpcode,
+ &Scumm::o5_ifState,
/* D0 */
&Scumm::o5_pickupObjectOld,
&Scumm::o5_animateActor,
@@ -326,7 +326,7 @@
&Scumm::o5_getActorWidth,
&Scumm::o5_putActorInRoom,
&Scumm::o5_stopObjectScript,
- &Scumm::o5_badOpcode,
+ &Scumm::o5_ifState,
/* F0 */
&Scumm::o5_lights,
&Scumm::o5_getActorCostume,
@@ -409,7 +409,7 @@
"o5_cursorCommand",
"o5_putActorInRoom",
"o5_delay",
- "o5_badOpcode",
+ "o5_ifNotState",
/* 30 */
"o5_matrixOps",
"o5_getInventoryCount",
@@ -437,7 +437,7 @@
"o5_getActorX",
/* 44 */
"o5_isLess",
- "o5_badOpcode",
+ "o5_drawObject",
"o5_increment",
"o5_setState",
/* 48 */
@@ -449,7 +449,7 @@
"o5_soundKludge",
"o5_walkActorToActor",
"o5_putActorAtObject",
- "o5_badOpcode",
+ "o5_ifState",
/* 50 */
"o5_pickupObjectOld",
"o5_animateActor",
@@ -489,7 +489,7 @@
"o5_getActorWidth",
"o5_putActorInRoom",
"o5_stopObjectScript",
- "o5_badOpcode",
+ "o5_ifNotState",
/* 70 */
"o5_lights",
"o5_getActorCostume",
@@ -569,7 +569,7 @@
"o5_expression",
"o5_putActorInRoom",
"o5_wait",
- "o5_badOpcode",
+ "o5_ifNotState",
/* B0 */
"o5_matrixOps",
"o5_getInventoryCount",
@@ -597,7 +597,7 @@
"o5_getActorX",
/* C4 */
"o5_isLess",
- "o5_badOpcode",
+ "o5_drawObject",
"o5_decrement",
"o5_setState",
/* C8 */
@@ -609,7 +609,7 @@
"o5_pseudoRoom",
"o5_walkActorToActor",
"o5_putActorAtObject",
- "o5_badOpcode",
+ "o5_ifState",
/* D0 */
"o5_pickupObjectOld",
"o5_animateActor",
@@ -649,7 +649,7 @@
"o5_getActorWidth",
"o5_putActorInRoom",
"o5_stopObjectScript",
- "o5_badOpcode",
+ "o5_ifNotState",
/* F0 */
"o5_lights",
"o5_getActorCostume",
@@ -1367,17 +1367,23 @@
void Scumm::o5_getObjectState()
{
if (_features & GF_SMALL_HEADER) {
- int a = getVarOrDirectWord(0x80);
- int b = getVarOrDirectByte(0x40);
-
- if ((getState(a) & 0xF0 >> 4) != b)
- o5_jumpRelative();
- else
- ignoreScriptWord();
+ o5_ifState();
} else {
getResultPos();
setResult(getState(getVarOrDirectWord(0x80)));
}
+}
+
+void Scumm::o5_ifState()
+{
+ int a = getVarOrDirectWord(0x80);
+ int b = getVarOrDirectByte(0x40);
+ bool isNegated = _opcode & 0x20;
+
+ if (((getState(a) & 0xF0 >> 4) != b) ^ isNegated)
+ o5_jumpRelative();
+ else
+ ignoreScriptWord();
}
void Scumm::o5_getRandomNr()
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/smush blitter.cpp,NONE,1.1 blitter.h,NONE,1.1 brenderer.cpp,NONE,1.1 brenderer.h,NONE,1.1 channel.h,NONE,1.1 chunck.cpp,NONE,1.1 chunck.h,NONE,1.1 chunck_type.h,NONE,1.1 codec1.cpp,NONE,1.1 codec1.h,NONE,1.1 codec37.cpp,NONE,1.1 codec37.h,NONE,1.1 codec44.cpp,NONE,1.1 codec44.h,NONE,1.1 codec47.cpp,NONE,1.1 codec47.h,NONE,1.1 color.cpp,NONE,1.1 color.h,NONE,1.1 config.h,NONE,1.1 decoder.h,NONE,1.1 frenderer.cpp,NONE,1.1 frenderer.h,NONE,1.1 imuse_channel.cpp,NONE,1.1 mixer.h,NONE,1.1 palette.cpp,NONE,1.1 palette.h,NONE,1.1 player.cpp,NONE,1.1 player.h,NONE,1.1 rect.cpp,NONE,1.1 rect.h,NONE,1.1 renderer.h,NONE,1.1 saud_channel.cpp,NONE,1.1 scumm_renderer.cpp,NONE,1.1 scumm_renderer.h,NONE,1.1
- Next message: [Scummvm-cvs-logs] CVS: scummvm-new Makefile,1.5,1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list