[Scummvm-cvs-logs] SF.net SVN: scummvm: [21897] scummvm/trunk/engines/simon
kirben at users.sourceforge.net
kirben at users.sourceforge.net
Fri Apr 14 18:10:03 CEST 2006
Revision: 21897
Author: kirben
Date: 2006-04-14 18:09:04 -0700 (Fri, 14 Apr 2006)
ViewCVS: http://svn.sourceforge.net/scummvm/?rev=21897&view=rev
Log Message:
-----------
Adjust video opcodes for second variable array
Modified Paths:
--------------
scummvm/trunk/engines/simon/items.cpp
scummvm/trunk/engines/simon/verb.cpp
scummvm/trunk/engines/simon/vga.cpp
Modified: scummvm/trunk/engines/simon/items.cpp
===================================================================
--- scummvm/trunk/engines/simon/items.cpp 2006-04-15 00:24:20 UTC (rev 21896)
+++ scummvm/trunk/engines/simon/items.cpp 2006-04-15 01:09:04 UTC (rev 21897)
@@ -1837,7 +1837,7 @@
void SimonEngine::o3_checkCD() {
// 135: switch CD
- debug(1, "Switch to CD number %d", readVariable(97));
+ debug(0, "Switch to CD number %d", readVariable(97));
}
void SimonEngine::o3_screenTextBox() {
@@ -1910,7 +1910,7 @@
void SimonEngine::o3_playSmack() {
// 183: play video
- debug(1, "Play video");
+ debug(0, "Play video");
}
void SimonEngine::o3_centreScroll() {
Modified: scummvm/trunk/engines/simon/verb.cpp
===================================================================
--- scummvm/trunk/engines/simon/verb.cpp 2006-04-15 00:24:20 UTC (rev 21896)
+++ scummvm/trunk/engines/simon/verb.cpp 2006-04-15 01:09:04 UTC (rev 21897)
@@ -685,7 +685,7 @@
if (mode != 0 && mode != 3) {
_lastHitArea = best_ha;
_variableArray[1] = x;
- _variableArray[2] = y;
+ _variableArray[2] = y - _scrollY;
}
if (best_ha->flags & kBFNoTouchName) {
Modified: scummvm/trunk/engines/simon/vga.cpp
===================================================================
--- scummvm/trunk/engines/simon/vga.cpp 2006-04-15 00:24:20 UTC (rev 21896)
+++ scummvm/trunk/engines/simon/vga.cpp 2006-04-15 01:09:04 UTC (rev 21897)
@@ -170,6 +170,22 @@
return *_vcPtr++;
}
+uint SimonEngine::vcReadVar(uint var) {
+ assert(var < 255);
+ if (getGameType() == GType_FF && getBitFlag(82))
+ return (uint16)_variableArray2[var];
+ else
+ return (uint16)_variableArray[var];
+}
+
+void SimonEngine::vcWriteVar(uint var, int16 value) {
+ assert(var < 255);
+ if (getGameType() == GType_FF && getBitFlag(82))
+ _variableArray2[var] = value;
+ else
+ _variableArray[var] = value;
+}
+
void SimonEngine::vcSkipNextInstruction() {
static const byte opcodeParamLenSimon1[] = {
0, 6, 2, 10, 6, 4, 2, 2,
@@ -1292,8 +1308,8 @@
_scrollYMax = 0;
_scrollImage = state->depack_src;
_scrollHeight = state->height;
- if (_variableArray[34] < 0)
- state->x = _variableArray[251];
+ if (vcReadVar(34) < 0)
+ state->x = vcReadVar(251);
_scrollX = state->x;
@@ -1324,8 +1340,8 @@
_scrollYMax = state->height - 480;
_scrollImage = state->depack_src;
_scrollWidth = state->width;
- if (_variableArray[34] < 0)
- state->y = _variableArray[250];
+ if (vcReadVar(34) < 0)
+ state->y = vcReadVar(250);
_scrollY = state->y;
@@ -1689,15 +1705,6 @@
_windowNum = vcReadNextWord();
}
-uint SimonEngine::vcReadVar(uint var) {
- assert(var < 255);
- return (uint16)_variableArray[var];
-}
-
-void SimonEngine::vcWriteVar(uint var, int16 value) {
- _variableArray[var] = value;
-}
-
void SimonEngine::vc32_copyVar() {
uint16 a = vcReadVar(vcReadNextWord());
vcWriteVar(vcReadNextWord(), a);
@@ -1852,12 +1859,13 @@
}
void SimonEngine::vc48_setPathFinder() {
- uint a = (uint16)_variableArray[12];
+ uint a = (uint16)vcReadVar(12);
const uint16 *p = _pathFindArray[a - 1];
if (getGameType() == GType_FF) {
VgaSprite *vsp = findCurSprite();
- int16 x, x2, y, y1, y2, ydiff;
+ int16 x, y, ydiff;
+ int16 x1, y1, x2, y2;
uint pos = 0;
while (vsp->x >= readUint16Wrapper(p + 2)) {
@@ -1865,6 +1873,7 @@
pos++;
}
+ x1 = readUint16Wrapper(p);
y1 = readUint16Wrapper(p + 1);
x2 = readUint16Wrapper(p + 2);
y2 = readUint16Wrapper(p + 3);
@@ -1889,8 +1898,8 @@
vsp->y = y1;
checkScrollY(y1 - y, y1);
- _variableArray[11] = readUint16Wrapper(p);
- _variableArray[13] = pos;
+ vcWriteVar(11, x1);
+ vcWriteVar(13, pos);
} else {
uint b = (uint16)_variableArray[13];
p += b * 2 + 1;
@@ -2362,7 +2371,7 @@
int var = vcReadNextWord();
vsp->x += getScale(vsp->y, x);
- _variableArray[var] = vsp->x;
+ vcWriteVar(var, vsp->x);
checkScrollX(x, vsp->x);
@@ -2377,7 +2386,7 @@
int var = vcReadNextWord();
vsp->y += getScale(vsp->y, y);
- _variableArray[var] = vsp->y;
+ vcWriteVar(var, vsp->y);
if (y != 0)
checkScrollY(y, vsp->y);
@@ -2388,18 +2397,18 @@
void SimonEngine::vc78_computeXY() {
VgaSprite *vsp = findCurSprite();
- uint a = (uint16)_variableArray[12];
- uint b = (uint16)_variableArray[13];
+ uint a = (uint16)vcReadVar(12);
+ uint b = (uint16)vcReadVar(13);
const uint16 *p = _pathFindArray[a - 1];
p += b * 2;
uint16 posx = readUint16Wrapper(p);
- _variableArray[15] = posx;
+ vcWriteVar(15, posx);
vsp->x = posx;
uint16 posy = readUint16Wrapper(p + 1);
- _variableArray[16] = posy;
+ vcWriteVar(16, posy);
vsp->y = posy;
setBitFlag(85, false);
@@ -2409,17 +2418,17 @@
}
void SimonEngine::vc79_computePosNum() {
- uint a = (uint16)_variableArray[12];
+ uint a = (uint16)vcReadVar(12);
const uint16 *p = _pathFindArray[a - 1];
uint pos = 0;
- int16 y = _variableArray[16];
+ uint16 y = vcReadVar(16);
while(y > readUint16Wrapper(p + 1)) {
p += 2;
pos++;
}
- _variableArray[13] = pos;
+ vcWriteVar(13, pos);
}
void SimonEngine::vc80_setOverlayImage() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list