aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/cruise/actor.cpp12
-rw-r--r--engines/cruise/cruise_main.cpp1
-rw-r--r--engines/cruise/function.cpp489
-rw-r--r--engines/cruise/function.h1
-rw-r--r--engines/cruise/perso.cpp4
-rw-r--r--engines/cruise/perso.h2
6 files changed, 341 insertions, 168 deletions
diff --git a/engines/cruise/actor.cpp b/engines/cruise/actor.cpp
index a52b97bc68..2ee8d5309a 100644
--- a/engines/cruise/actor.cpp
+++ b/engines/cruise/actor.cpp
@@ -88,9 +88,9 @@ void getPixel(int x, int y) {
y_min = *tableau++;
y_max = *tableau++;
- computedVar14 = *polygone++;
+ numPoly = *polygone++;
- if (walkboxState[computedVar14] == 0 && ((x >= x_min && x <= x_max) && (y >= y_min && y <= y_max))) {
+ if (walkboxState[numPoly] == 0 && ((x >= x_min && x <= x_max) && (y >= y_min && y <= y_max))) {
// click was in given box
int u = y - y_min;
tableau += u * 2;
@@ -98,7 +98,7 @@ void getPixel(int x, int y) {
x_max = *tableau++;
if ((x >= x_min && x <= x_max)) {
- flag_obstacle = walkboxColor[computedVar14];
+ flag_obstacle = walkboxColor[numPoly];
return;
}
@@ -627,7 +627,7 @@ int16 computePathfinding(MovementEntry &moveInfo, int16 x, int16 y, int16 destX,
*(ptr++) = moveInfo.y = destY;
*(ptr++) = -1;
- moveInfo.poly = computedVar14;
+ moveInfo.poly = numPoly;
perso->inc_droite = 0;
perso->inc_chemin = 0;
@@ -650,7 +650,7 @@ int16 computePathfinding(MovementEntry &moveInfo, int16 x, int16 y, int16 destX,
getPixel(x, y);
- moveInfo.poly = computedVar14;
+ moveInfo.poly = numPoly;
x_mouse = x;
y_mouse = y;
@@ -699,7 +699,7 @@ int16 computePathfinding(MovementEntry &moveInfo, int16 x, int16 y, int16 destX,
moveInfo.x = table_ptselect[1][0];
moveInfo.y = table_ptselect[1][1];
- moveInfo.poly = computedVar14;
+ moveInfo.poly = numPoly;
perso->inc_chemin = 0;
perso->inc_droite = 0;
diff --git a/engines/cruise/cruise_main.cpp b/engines/cruise/cruise_main.cpp
index f260551841..21e99948b8 100644
--- a/engines/cruise/cruise_main.cpp
+++ b/engines/cruise/cruise_main.cpp
@@ -393,7 +393,6 @@ int initAllData(void) {
int i;
setupFuncArray();
- setupOpcodeTable();
initOverlayTable();
stateID = 0;
diff --git a/engines/cruise/function.cpp b/engines/cruise/function.cpp
index 5cd0cdbc12..78b7d189ba 100644
--- a/engines/cruise/function.cpp
+++ b/engines/cruise/function.cpp
@@ -186,7 +186,7 @@ int16 Op_GetMouseY(void) { // TODO: implement properly
return (mouseY);
}
-int16 Op_Random(void) { // TODO: implement
+int16 Op_Random(void) {
int var = popVar();
if (var < 2) {
@@ -196,13 +196,67 @@ int16 Op_Random(void) { // TODO: implement
return (_vm->_rnd.getRandomNumber(var - 1));
}
-int16 Op_PlayFX(void) { // TODO: implement
- popVar();
- popVar();
- popVar();
- popVar();
+int16 Op_PlayFX(void) {
+ int volume = popVar();
+ int speed = popVar();
+ int channelNum = popVar();
+ int sampleNum = popVar();
+
+ if ((sampleNum >= 0) && (sampleNum < NUM_FILE_ENTRIES) && (filesDatabase[sampleNum].subData.ptr)) {
+ if (speed == -1)
+ speed = filesDatabase[sampleNum].subData.transparency;
+
+ _vm->sound().startSound(channelNum, filesDatabase[sampleNum].subData.ptr,
+ filesDatabase[sampleNum].width, speed, volume, false);
+ }
+
+ return (0);
+}
+
+int16 Op_LoopFX(void) {
+ int volume = popVar();
+ int speed = popVar();
+ int channelNum = popVar();
+ int sampleNum = popVar();
+
+ if ((sampleNum >= 0) && (sampleNum < NUM_FILE_ENTRIES) && (filesDatabase[sampleNum].subData.ptr)) {
+ if (speed == -1)
+ speed = filesDatabase[sampleNum].subData.transparency;
+
+ _vm->sound().startSound(channelNum, filesDatabase[sampleNum].subData.ptr,
+ filesDatabase[sampleNum].width, speed, volume, true);
+ }
+
+ return (0);
+}
+
+int16 Op_StopFX(void) {
+ int channelNum = popVar();
+
+ if (channelNum == -1) {
+ _vm->sound().stopChannel(0);
+ _vm->sound().stopChannel(1);
+ _vm->sound().stopChannel(2);
+ _vm->sound().stopChannel(3);
+ } else {
+ _vm->sound().stopChannel(channelNum);
+ }
+
+ return 0;
+}
+
+int16 Op_FreqFX(void) {
+ int volume = popVar();
+ int speed = popVar();
+ int channelNum = popVar();
+ int sampleNum = popVar();
- // printf("Op_PlayFX, implement (sound related)\n");
+ if ((sampleNum >= 0) && (sampleNum < NUM_FILE_ENTRIES) && (filesDatabase[sampleNum].subData.ptr)) {
+ if (speed == -1)
+ speed = filesDatabase[sampleNum].subData.transparency;
+
+ _vm->sound().startNote(channelNum, volume, speed);
+ }
return (0);
}
@@ -368,9 +422,30 @@ int16 Op_FindProc(void) {
return param;
}
+int16 Op_GetRingWord(void) {
+ // Original method had a ringed queue allowing this method to return words one at a time.
+ // But it never seemed to be used; no entries were ever added to the list
+ return 0;
+}
+
int16 Op_KillMenu(void) {
- // TODO: implement
- printf("Op_KillMenu, implement\n");
+ // Free menus, if active
+ if (menuTable[0]) {
+ freeMenu(menuTable[0]);
+ menuTable[0] = NULL;
+ currentActiveMenu = -1;
+ }
+
+ if (menuTable[1]) {
+ freeMenu(menuTable[1]);
+ menuTable[1] = NULL;
+ currentActiveMenu = -1;
+ }
+
+ // Free the message list
+// if (linkedMsgList) freeMsgList(linkedMsgList);
+ linkedMsgList = NULL;
+ linkedRelation = NULL;
return 0;
}
@@ -426,7 +501,7 @@ int16 Op_LoadBackground(void) {
bgIdx = popVar();
- if (bgIdx >= 0 || bgIdx < 8) {
+ if (bgIdx >= 0 || bgIdx < NBSCREENS) {
strToUpper(bgName);
gfxModuleData_gfxWaitVSync();
@@ -536,6 +611,21 @@ int16 Op_GetlowMemory(void) {
return lowMemory;
}
+int16 Op_AniDir(void) {
+ int type = popVar();
+ int objIdx = popVar();
+ int ovlIdx = popVar();
+
+ if (!ovlIdx)
+ ovlIdx = currentScriptPtr->overlayNumber;
+
+ actorStruct *pActor = findActor(&actorHead, ovlIdx, objIdx, type);
+ if (pActor)
+ return pActor->startDirection;
+
+ return -1;
+}
+
int16 Op_FadeOut(void) {
for (long int i = 0; i < 256; i += 32) {
for (long int j = 0; j < 256; j++) {
@@ -695,9 +785,21 @@ int16 Op_ProtectionFlag(void) {
if (newVar != -1) {
protectionCode = newVar;
}
+
return temp;
}
+int16 Op_ClearScreen(void) {
+ int bgIdx = popVar();
+
+ if ((bgIdx >= 0) && (bgIdx < NBSCREENS) && (backgroundScreens[bgIdx])) {
+ memset(backgroundScreens[bgIdx], 0, 320 * 200);
+ strcpy(backgroundTable[0].name, "");
+ }
+
+ return 0;
+}
+
int16 Op_AddMessage(void) {
int16 color = popVar();
int16 var_2 = popVar();
@@ -823,7 +925,7 @@ int16 Op_SetActiveBackground(void) {
int currentPlane = masterScreen;
int newPlane = popVar();
- if (newPlane >= 0 && newPlane < 8) {
+ if (newPlane >= 0 && newPlane < NBSCREENS) {
if (backgroundScreens[newPlane]) {
masterScreen = newPlane;
switchPal = 1;
@@ -1089,7 +1191,7 @@ int removeAnimation(actorStruct * pHead, int overlay, int objIdx, int objType) {
return dir;
}
-int flag_obstacle; // computedVar14Bis
+int flag_obstacle; // numPolyBis
// add animation
int16 Op_AddAnimation(void) {
@@ -1136,7 +1238,7 @@ int16 Op_AddAnimation(void) {
setObjectPosition(overlay, obj, 3, newFrame + start);
setObjectPosition(overlay, obj, 4, zoom);
- setObjectPosition(overlay, obj, 5, computedVar14);
+ setObjectPosition(overlay, obj, 5, numPoly);
animationStart = false;
}
@@ -1173,6 +1275,36 @@ int16 Op_SetStringColors(void) {
return 0;
}
+int16 Op_XClick(void) {
+ int x = popVar();
+
+ if (x != -1) {
+ aniX = x;
+ animationStart = true;
+ }
+
+ return aniX;
+}
+
+int16 Op_YClick(void) {
+ int y = popVar();
+
+ if (y != -1) {
+ aniY = y;
+ animationStart = true;
+ }
+
+ return aniY;
+}
+
+int16 Op_GetPixel(void) {
+ int x = popVar();
+ int y = popVar();
+
+ getPixel(x, y);
+ return numPoly;
+}
+
int16 Op_TrackAnim(void) { // setup actor position
actorStruct *pActor;
@@ -1207,7 +1339,7 @@ int16 Op_BgName(void) {
char* bgName = (char*)popPtr();
int bgIdx = popVar();
- if ((bgIdx >= 0) && (bgIdx < 8) && bgName) {
+ if ((bgIdx >= 0) && (bgIdx < NBSCREENS) && bgName) {
strcpy(bgName, backgroundTable[bgIdx].name);
if (strlen(bgName))
@@ -1219,14 +1351,6 @@ int16 Op_BgName(void) {
return 0;
}
-int16 Op_StopFX(void) {
- int fxIdx = popVar();
-
- printf("StopFX(%d)\n", fxIdx);
-
- return 0;
-}
-
int16 Op_LoadSong(void) {
const char *ptr = (const char *)popPtr();
char buffer[33];
@@ -1253,6 +1377,39 @@ int16 Op_StopSong(void) {
return 0;
}
+int16 Op_RestoreSong(void) {
+ // Used in the original to restore the contents of a song. Doesn't seem to be used,
+ // since the backup buffer it uses is never set
+ return 0;
+}
+
+int16 Op_SongSize(void) {
+ int size, oldSize;
+
+ if (_vm->music().songLoaded()) {
+ byte *pSize = _vm->music().songData() + 470;
+ oldSize = *pSize;
+ size = popVar();
+ if ((size >= 1) && (size < 128))
+ *pSize = size;
+ } else
+ oldSize = 0;
+
+ return oldSize;
+}
+
+int16 Op_SetPattern(void) {
+ int value = popVar();
+ int offset = popVar();
+
+ if (_vm->music().songLoaded()) {
+ byte *pData = _vm->music().songData();
+ *(pData + 472 + offset) = (byte)value;
+ }
+
+ return 0;
+}
+
int16 Op_FadeSong(void) {
_vm->music().fadeSong();
@@ -1265,6 +1422,17 @@ int16 Op_FreeSong(void) {
return 0;
}
+int16 Op_SongLoop(void) {
+ bool oldLooping = _vm->music().looping();
+ _vm->music().setLoop(popVar() != 0);
+
+ return oldLooping;
+}
+
+int16 Op_SongPlayed(void) {
+ return _vm->music().songPlayed();
+}
+
void setVar49Value(int value) {
flagCt = value;
}
@@ -1466,6 +1634,22 @@ int16 Op_GetNodeY(void) {
return nodeInfo[1];
}
+int16 Op_SetVolume(void) {
+ int oldVolume = _vm->music().volume() >> 2;
+ int newVolume = popVar();
+
+ // TODO: The game seems to expect the volume will only range from 0 - 63, so for now
+ // I'm doing a translation of the full range 0 - 255 to the 0 - 63 for this script.
+ // Need to verify at some point that there's no problem with this
+ if (newVolume > 63) newVolume = 63;
+ if (newVolume >= 0) {
+ int volume = 63 - newVolume;
+ _vm->music().setVolume(volume << 2);
+ }
+
+ return oldVolume >> 2;
+}
+
int16 Op_SongExist(void) {
char* songName = (char*)popPtr();
@@ -1474,6 +1658,11 @@ int16 Op_SongExist(void) {
return 0;
}
+int16 Op_TrackPos(void) {
+ // This function returns a variable that never seems to change from 0
+ return 0;
+}
+
int16 Op_SetNodeState(void) {
int16 state = popVar();
int16 node = popVar();
@@ -1489,9 +1678,7 @@ int16 Op_SetNodeColor(void) {
}
int16 Op_SetXDial(void) {
- int16 old;
-
- old = xdial;
+ int16 old = xdial;
xdial = popVar();
return old;
@@ -1541,6 +1728,95 @@ int16 Op_LinkObjects(void) {
return 0;
}
+int16 Op_UserClick(void) {
+ sysKey = popVar();
+ sysY = popVar();
+ sysX = popVar();
+
+ return 0;
+}
+
+int16 Op_XMenuItem(void) {
+ int index = popVar();
+ int count = 0;
+
+ if (!menuTable[0] || (menuTable[0]->numElements == 0))
+ return 0;
+
+ menuElementStruct *p = menuTable[0]->ptrNextElement;
+
+ while (p) {
+ if (count == index)
+ return p->x + 1;
+
+ ++count;
+ p = p->next;
+ }
+
+ return 0;
+}
+
+int16 Op_YMenuItem(void) {
+ int index = popVar();
+ int count = 0;
+
+ if (!menuTable[0] || (menuTable[0]->numElements == 0))
+ return 0;
+
+ menuElementStruct *p = menuTable[0]->ptrNextElement;
+
+ while (p) {
+ if (count == index)
+ return p->y + 1;
+
+ ++count;
+ p = p->next;
+ }
+
+ return 0;
+}
+
+
+int16 Op_Menu() {
+ return (int16)(menuTable[0] != NULL);
+}
+
+int16 Op_AutoControl(void) {
+ int oldValue = automaticMode;
+ int newValue = popVar();
+
+ if (newValue >= 0) {
+ automaticMode = newValue;
+ activeMouse = newValue;
+ }
+
+ return oldValue;
+}
+
+int16 Op_MouseMove(void) {
+ int16 handle, button;
+ Common::Point pt;
+
+ getMouseStatus(&handle, &pt.x, &button, &pt.y);
+
+ // x/y parameters aren't used
+ popVar();
+ popVar();
+
+ return 0;
+}
+
+int16 Op_MouseEnd(void) {
+ if (automoveInc < automoveMax)
+ return (int16)false;
+
+ return (int16)true;
+}
+
+int16 Op_MsgExist(void) {
+ return isMessage;
+}
+
int16 Op_UserDelay(void) {
int delay = popVar();
@@ -1551,6 +1827,12 @@ int16 Op_UserDelay(void) {
return userDelay;
}
+int16 Op_ThemeReset(void) {
+ objectReset();
+
+ return 0;
+}
+
int16 Op_UserWait(void) {
userWait = 1;
if (currentScriptPtr->type == scriptType_PROC) {
@@ -1602,9 +1884,9 @@ opcodeFunction opcodeTablePtr[] = {
Op_GetZoom,
Op_GetStep,
Op_SetStringColors,
- NULL, // xClick
- NULL, // yClick
- NULL, // getPixel
+ Op_XClick,
+ Op_YClick,
+ Op_GetPixel,
Op_UserOn,
Op_FreeCT,
Op_FindObject,
@@ -1620,7 +1902,7 @@ opcodeFunction opcodeTablePtr[] = {
Op_DialogOn,
Op_DialogOff,
Op_UserDelay,
- NULL, // ThemeReset
+ Op_ThemeReset,
Op_Narrator,
Op_RemoveBackground,
Op_SetActiveBackground,
@@ -1633,25 +1915,25 @@ opcodeFunction opcodeTablePtr[] = {
Op_FreeSong, // 0x40
Op_FrameExist,
- NULL, // SetVolume
+ Op_SetVolume,
Op_SongExist,
- NULL, // TrackPos
+ Op_TrackPos,
Op_StopSong,
- NULL, // RestoreSong
- NULL, // SongSize
- NULL, // SetPattern
- NULL, // SongLoop
- NULL, // SongPlayed
+ Op_RestoreSong,
+ Op_SongSize,
+ Op_SetPattern,
+ Op_SongLoop,
+ Op_SongPlayed,
Op_LinkObjects,
- NULL, // UserClick
- NULL, // XMenuItem
- NULL, // YMenuItem
- NULL, // Menu
-
- NULL, // AutoControl 0x50
- NULL, // MouseMove
- NULL, // MouseEnd
- NULL, // MsgExist
+ Op_UserClick,
+ Op_XMenuItem,
+ Op_YMenuItem,
+ Op_Menu,
+
+ Op_AutoControl, // 0x50
+ Op_MouseMove,
+ Op_MouseEnd,
+ Op_MsgExist,
Op_SetFont,
NULL, // MergeMsg
Op_Display,
@@ -1661,9 +1943,9 @@ opcodeFunction opcodeTablePtr[] = {
Op_FindSet,
Op_regenerateBackgroundIncrust,
Op_BgName,
- NULL, // loopFX
+ Op_LoopFX,
Op_StopFX,
- NULL, // freqFX
+ Op_FreqFX,
Op_FreezeAni, // 0x60
Op_FindMsg,
@@ -1687,124 +1969,17 @@ opcodeFunction opcodeTablePtr[] = {
Op_FindSymbol,
Op_SetXDial,
Op_GetlowMemory,
- NULL, // aniDir
+ Op_AniDir,
Op_Protect,
- NULL, // Cls
+ Op_ClearScreen,
Op_Inventory,
Op_UserMenu,
- NULL, // GetChar
+ Op_GetRingWord,
Op_Sec,
Op_ProtectionFlag,
Op_KillMenu,
};
-void setupOpcodeTable(void) {
-// int i;
-
- /* for (i = 0; i < 256; i++) {
- opcodeTablePtr[i] = NULL;
- }
-
- opcodeTablePtr[0x1] = Op_FadeIn;
- opcodeTablePtr[0x2] = Op_FadeOut;
- opcodeTablePtr[0x3] = Op_LoadBackground;
- opcodeTablePtr[0x4] = Op_LoadAbs;
- opcodeTablePtr[0x5] = Op_AddCell;
- opcodeTablePtr[0x6] = Op_AddProc;
- opcodeTablePtr[0x7] = Op_InitializeState;
- opcodeTablePtr[0x8] = Op_RemoveCell;
- opcodeTablePtr[0x9] = Op_FreeCell;
- opcodeTablePtr[0xA] = Op_RemoveProc;
- opcodeTablePtr[0xB] = Op_RemoveFrame;
- opcodeTablePtr[0xC] = Op_LoadOverlay;
- opcodeTablePtr[0xD] = Op_SetColor;
- opcodeTablePtr[0xE] = Op_PlayFX;
- opcodeTablePtr[0xF] = NULL; // used to be debug
- opcodeTablePtr[0x10] = Op_FreeOverlay;
- opcodeTablePtr[0x11] = Op_FindOverlay;
- opcodeTablePtr[0x12] = NULL; // used to be exec debug
- opcodeTablePtr[0x13] = Op_AddMessage;
- opcodeTablePtr[0x14] = Op_RemoveMessage;
- opcodeTablePtr[0x15] = Op_UserWait;
- opcodeTablePtr[0x16] = Op_FreezeCell;
- opcodeTablePtr[0x17] = Op_LoadCt;
- opcodeTablePtr[0x18] = Op_AddAnimation;
- opcodeTablePtr[0x19] = Op_RemoveAnimation;
- opcodeTablePtr[0x1A] = Op_SetZoom;
- opcodeTablePtr[0x1B] = Op_SetObjectAtNode;
- opcodeTablePtr[0x1D] = Op_SetNodeColor;
- opcodeTablePtr[0x1E] = Op_TrackAnim;
- opcodeTablePtr[0x1F] = Op_GetNodeX;
- opcodeTablePtr[0x20] = Op_GetNodeY;
- opcodeTablePtr[0x21] = Op_EndAnim;
- opcodeTablePtr[0x22] = Op_GetZoom;
- opcodeTablePtr[0x23] = Op_GetStep;
- opcodeTablePtr[0x24] = Op_SetStringColors;
- opcodeTablePtr[0x28] = Op_UserOn;
- opcodeTablePtr[0x29] = Op_FreeCT;
- opcodeTablePtr[0x2A] = Op_FindObject;
- opcodeTablePtr[0x2B] = Op_FindProc;
- opcodeTablePtr[0x2C] = Op_WriteObject;
- opcodeTablePtr[0x2E] = Op_RemoveOverlay;
- opcodeTablePtr[0x2F] = Op_AddBackgroundIncrust;
- opcodeTablePtr[0x30] = Op_RemoveBackgroundIncrust;
- opcodeTablePtr[0x31] = Op_UnmergeBackgroundIncrust;
- opcodeTablePtr[0x32] = Op_freeBackgroundInscrustList;
- opcodeTablePtr[0x33] = Op_DialogOn;
- opcodeTablePtr[0x34] = Op_DialogOff;
- opcodeTablePtr[0x35] = Op_UserDelay;
- opcodeTablePtr[0x37] = Op_Narrator;
- opcodeTablePtr[0x38] = Op_RemoveBackground;
- opcodeTablePtr[0x39] = Op_SetActiveBackground;
- opcodeTablePtr[0x3A] = Op_CTOn;
- opcodeTablePtr[0x3B] = Op_CTOff;
- opcodeTablePtr[0x3C] = Op_Random;
- opcodeTablePtr[0x3D] = Op_LoadSong;
- opcodeTablePtr[0x3E] = Op_PlaySong;
- opcodeTablePtr[0x3F] = Op_FadeSong;
- opcodeTablePtr[0x40] = Op_FreeSong;
- opcodeTablePtr[0x41] = Op_FrameExist;
- opcodeTablePtr[0x43] = Op_SongExist;
- opcodeTablePtr[0x45] = Op_StopSong;
- opcodeTablePtr[0x4B] = Op_LinkObjects;
- opcodeTablePtr[0x54] = Op_SetFont;
- opcodeTablePtr[0x56] = Op_Display;
- opcodeTablePtr[0x57] = Op_GetMouseX;
- opcodeTablePtr[0x58] = Op_GetMouseY;
- opcodeTablePtr[0x59] = Op_GetMouseButton;
- opcodeTablePtr[0x5A] = Op_FindSet;
- opcodeTablePtr[0x5B] = Op_regenerateBackgroundIncrust;
- opcodeTablePtr[0x5C] = Op_BgName;
- opcodeTablePtr[0x5E] = Op_StopFX;
- opcodeTablePtr[0x60] = Op_FreezeAni;
- opcodeTablePtr[0x61] = Op_FindMsg;
- opcodeTablePtr[0x62] = Op_FreezeParent;
- opcodeTablePtr[0x63] = Op_UnfreezeParent;
- opcodeTablePtr[0x64] = Op_Exec;
- opcodeTablePtr[0x65] = Op_AutoCell;
- opcodeTablePtr[0x66] = Op_Sizeof;
- opcodeTablePtr[0x67] = Op_Preload;
- opcodeTablePtr[0x68] = Op_FreePreload;
- opcodeTablePtr[0x6A] = Op_VBL;
- opcodeTablePtr[0x6B] = Op_LoadFrame;
- opcodeTablePtr[0x6C] = Op_FreezeOverlay;
- opcodeTablePtr[0x6D] = Op_Strcpy;
- opcodeTablePtr[0x6E] = Op_Strcat;
- opcodeTablePtr[0x6F] = Op_Itoa;
- opcodeTablePtr[0x70] = Op_comment;
- opcodeTablePtr[0x71] = Op_ComputeLine;
- opcodeTablePtr[0x72] = Op_FindSymbol;
- opcodeTablePtr[0x73] = Op_SetXDial;
- opcodeTablePtr[0x74] = Op_GetlowMemory;
- opcodeTablePtr[0x76] = Op_Protect;
- opcodeTablePtr[0x79] = Op_UserMenu;
- opcodeTablePtr[0x78] = Op_Inventory;
- opcodeTablePtr[0x7B] = Op_Sec;
- opcodeTablePtr[0x7C] = Op_ProtectionFlag;
- opcodeTablePtr[0x7D] = Op_KillMenu;*/
- // TODO: copy the opcodes here
-}
-
int32 opcodeType8(void) {
int opcode = getByteFromScript();
diff --git a/engines/cruise/function.h b/engines/cruise/function.h
index 826f99abc8..42f4e38f8b 100644
--- a/engines/cruise/function.h
+++ b/engines/cruise/function.h
@@ -30,7 +30,6 @@ namespace Cruise {
extern int flag_obstacle;
extern int vblLimit;
-void setupOpcodeTable(void);
int32 opcodeType8(void);
int16 computeZoom(int param);
int16 subOp23(int param1, int param2);
diff --git a/engines/cruise/perso.cpp b/engines/cruise/perso.cpp
index 9633a86e0b..cd61c596f7 100644
--- a/engines/cruise/perso.cpp
+++ b/engines/cruise/perso.cpp
@@ -30,7 +30,7 @@ namespace Cruise {
persoStruct *persoTable[NUM_PERSONS];
-int16 computedVar14;
+int16 numPoly;
void freePerso(int persoIdx) {
if (persoTable[persoIdx]) {
@@ -222,7 +222,7 @@ void processActorWalk(MovementEntry &resx_y, int16 *inc_droite, int16 *inc_droit
resx_y.zoom = computeZoom(resx_y.y);
getPixel(resx_y.x, resx_y.y);
- resx_y.poly = computedVar14;
+ resx_y.poly = numPoly;
u = subOp23(resx_y.zoom, inc_jo);
if (!u)
diff --git a/engines/cruise/perso.h b/engines/cruise/perso.h
index a9864f6453..9522ca2fa6 100644
--- a/engines/cruise/perso.h
+++ b/engines/cruise/perso.h
@@ -59,7 +59,7 @@ struct MovementEntry {
};
extern persoStruct *persoTable[NUM_PERSONS];
-extern int16 computedVar14;
+extern int16 numPoly;
int cor_droite(int x1, int y1, int x2, int y2, point* outputTable);
void freePerso(int persoIdx);