Changed the scummVar system to a dynamic one. Started to remove all the reference to FULL_TROTTLE define.
svn-id: r3624
This commit is contained in:
parent
b4123064b4
commit
cef0ef44d3
7 changed files with 456 additions and 352 deletions
2
Makefile
2
Makefile
|
@ -15,7 +15,7 @@ OBJS = actor.o boxes.o costume.o gfx.o object.o resource.o \
|
|||
saveload.o script.o scummvm.o sound.o string.o \
|
||||
sys.o verbs.o sdl.o script_v1.o script_v2.o debug.o gui.o \
|
||||
sound/imuse.o sound/fmopl.o sound/adlib.o sound/gmidi.o debugrl.o \
|
||||
akos.o
|
||||
akos.o vars.o
|
||||
|
||||
DISTFILES=$(OBJS:.o=.cpp) Makefile scumm.h scummsys.h stdafx.h stdafx.cpp \
|
||||
windows.cpp debugrl.h whatsnew.txt readme.txt copying.txt \
|
||||
|
|
|
@ -101,7 +101,7 @@ bool ScummDebugger::do_command() {
|
|||
printf("Enter a room number...\n");
|
||||
} else {
|
||||
int room=atoi(_parameters);
|
||||
_s->actor[_s->_vars[VAR_EGO]].room=room;
|
||||
_s->actor[_s->_vars[_s->VAR_EGO]].room=room;
|
||||
_s->startScene(room, 0, 0);
|
||||
_s->_fullRedraw = 1;
|
||||
}
|
||||
|
|
12
resource.cpp
12
resource.cpp
|
@ -62,14 +62,11 @@ void Scumm::openRoom(int room) {
|
|||
_fileOffset = _roomFileOffsets[room];
|
||||
return;
|
||||
}
|
||||
#if defined(FULL_THROTTLE)
|
||||
sprintf(buf, "%s.la%d", _exe_name,
|
||||
room==0 ? 0 : res.roomno[rtRoom][room]);
|
||||
_encbyte = (_features & GF_USE_KEY) ? 0x69 : 0;
|
||||
#else
|
||||
if (!(_features & GF_SMALL_HEADER)) {
|
||||
sprintf(buf, "%s.%.3d", _exe_name, room==0 ? 0 : res.roomno[rtRoom][room]);
|
||||
|
||||
if(_features & GF_AFTER_V7)
|
||||
sprintf(buf, "%s.la%d", _exe_name, room==0 ? 0 : res.roomno[rtRoom][room]);
|
||||
else
|
||||
sprintf(buf, "%s.%.3d", _exe_name, room==0 ? 0 : res.roomno[rtRoom][room]);
|
||||
_encbyte = (_features & GF_USE_KEY) ? 0x69 : 0;
|
||||
} else if(!(_features & GF_SMALL_NAMES)) {
|
||||
if(room==0 || room>=900) {
|
||||
|
@ -91,7 +88,6 @@ void Scumm::openRoom(int room) {
|
|||
else
|
||||
_encbyte = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (openResourceFile(buf)) {
|
||||
if (room==0)
|
||||
|
|
331
script_v2.cpp
331
script_v2.cpp
|
@ -2143,189 +2143,186 @@ void Scumm::o6_miscOps() {
|
|||
|
||||
getStackList(args,sizeof(args)/sizeof(args[0]));
|
||||
|
||||
#if defined(FULL_THROTTLE)
|
||||
switch(args[0]) {
|
||||
case 4:
|
||||
grabCursor(args[1], args[2], args[3], args[4]);
|
||||
break;
|
||||
case 6:
|
||||
warning("o6_miscOps: startVideo(%d,%s)", args[1], getStringAddress(_vars[0xf6/2]));
|
||||
break;
|
||||
case 7:
|
||||
warning("o6_miscOps: stub7()");
|
||||
break;
|
||||
case 10:
|
||||
warning("o6_miscOps: stub10(%d,%d,%d,%d)",args[1],args[2],args[3],args[4]);
|
||||
break;
|
||||
case 11:
|
||||
warning("o6_miscOps: stub11(%d)", args[1]);
|
||||
break;
|
||||
case 12:
|
||||
setCursorImg(args[1], -1, args[2]);
|
||||
break;
|
||||
case 13:
|
||||
warning("o6_miscOps: stub13(%d,%d,%d,%d)",args[1],args[2],args[3],args[4]);
|
||||
break;
|
||||
case 14:
|
||||
remapActor(derefActorSafe(args[1], "o6_miscOps:14"), args[2],args[3],args[4],args[5]);
|
||||
break;
|
||||
case 15:
|
||||
warning("o6_miscOps: stub15(%d)", args[1]);
|
||||
break;
|
||||
case 16: {
|
||||
byte buf[200];
|
||||
_msgPtrToAdd = buf;
|
||||
addMessageToStack(getStringAddress(_vars[VAR_STRING2DRAW]));
|
||||
warning("o6_miscOps: drawString(%s,charset=%d,color=%d,x=%d,y=%d)",buf, args[1],args[2],args[3],args[4]);
|
||||
break;
|
||||
}
|
||||
case 17:
|
||||
warning("o6_miscOps: stub17(%d,%d,%d,%d)",args[1],args[2],args[3],args[4]);
|
||||
break;
|
||||
case 18:
|
||||
warning("o6_miscOps: stub18(%d,%d)", args[1], args[2]);
|
||||
break;
|
||||
case 107:
|
||||
a = derefActorSafe(args[1], "o6_miscops: 107");
|
||||
a->scalex = args[2];
|
||||
a->needBgReset = true;
|
||||
a->needRedraw = true;
|
||||
break;
|
||||
case 108:
|
||||
setupShadowPalette(args[1],args[2],args[3],args[4],args[5],args[6]);
|
||||
break;
|
||||
case 109:
|
||||
setupShadowPalette(0, args[1],args[2],args[3],args[4],args[5]);
|
||||
break;
|
||||
case 114:
|
||||
warning("o6_miscOps: stub114()");
|
||||
break;
|
||||
case 117:
|
||||
freezeScripts(2);
|
||||
break;
|
||||
case 118:
|
||||
enqueueObject(args[1],args[2],args[3],args[4],args[5],args[6],args[7],args[8], 3);
|
||||
break;
|
||||
case 119:
|
||||
enqueueObject(args[1],args[2],args[3],args[4],args[5],args[6],args[7],args[8], 0);
|
||||
break;
|
||||
case 120:
|
||||
warning("o6_miscOps: stub120(%d,%d)", args[1], args[2]);
|
||||
break;
|
||||
case 124:
|
||||
warning("o6_miscOps: stub124(%d)", args[1]);
|
||||
break;
|
||||
}
|
||||
if(_features & GF_AFTER_V7) {
|
||||
switch(args[0]) {
|
||||
case 4:
|
||||
grabCursor(args[1], args[2], args[3], args[4]);
|
||||
break;
|
||||
case 6:
|
||||
warning("o6_miscOps: startVideo(%d,%s)", args[1], getStringAddress(_vars[0xf6/2]));
|
||||
break;
|
||||
case 7:
|
||||
warning("o6_miscOps: stub7()");
|
||||
break;
|
||||
case 10:
|
||||
warning("o6_miscOps: stub10(%d,%d,%d,%d)",args[1],args[2],args[3],args[4]);
|
||||
break;
|
||||
case 11:
|
||||
warning("o6_miscOps: stub11(%d)", args[1]);
|
||||
break;
|
||||
case 12:
|
||||
setCursorImg(args[1], -1, args[2]);
|
||||
break;
|
||||
case 13:
|
||||
warning("o6_miscOps: stub13(%d,%d,%d,%d)",args[1],args[2],args[3],args[4]);
|
||||
break;
|
||||
case 14:
|
||||
remapActor(derefActorSafe(args[1], "o6_miscOps:14"), args[2],args[3],args[4],args[5]);
|
||||
break;
|
||||
case 15:
|
||||
warning("o6_miscOps: stub15(%d)", args[1]);
|
||||
break;
|
||||
case 16: {
|
||||
byte buf[200];
|
||||
_msgPtrToAdd = buf;
|
||||
addMessageToStack(getStringAddress(_vars[VAR_STRING2DRAW]));
|
||||
warning("o6_miscOps: drawString(%s,charset=%d,color=%d,x=%d,y=%d)",buf, args[1],args[2],args[3],args[4]);
|
||||
break;
|
||||
}
|
||||
case 17:
|
||||
warning("o6_miscOps: stub17(%d,%d,%d,%d)",args[1],args[2],args[3],args[4]);
|
||||
break;
|
||||
case 18:
|
||||
warning("o6_miscOps: stub18(%d,%d)", args[1], args[2]);
|
||||
break;
|
||||
case 107:
|
||||
a = derefActorSafe(args[1], "o6_miscops: 107");
|
||||
a->scalex = args[2];
|
||||
a->needBgReset = true;
|
||||
a->needRedraw = true;
|
||||
break;
|
||||
case 108:
|
||||
setupShadowPalette(args[1],args[2],args[3],args[4],args[5],args[6]);
|
||||
break;
|
||||
case 109:
|
||||
setupShadowPalette(0, args[1],args[2],args[3],args[4],args[5]);
|
||||
break;
|
||||
case 114:
|
||||
warning("o6_miscOps: stub114()");
|
||||
break;
|
||||
case 117:
|
||||
freezeScripts(2);
|
||||
break;
|
||||
case 118:
|
||||
enqueueObject(args[1],args[2],args[3],args[4],args[5],args[6],args[7],args[8], 3);
|
||||
break;
|
||||
case 119:
|
||||
enqueueObject(args[1],args[2],args[3],args[4],args[5],args[6],args[7],args[8], 0);
|
||||
break;
|
||||
case 120:
|
||||
warning("o6_miscOps: stub120(%d,%d)", args[1], args[2]);
|
||||
break;
|
||||
case 124:
|
||||
warning("o6_miscOps: stub124(%d)", args[1]);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch(args[0]) {
|
||||
case 3:
|
||||
warning("o6_miscOps: nothing in 3");
|
||||
break;
|
||||
case 4:
|
||||
grabCursor(args[1], args[2], args[3], args[4]);
|
||||
break;
|
||||
case 5:
|
||||
unkVirtScreen4(args[1]);
|
||||
break;
|
||||
case 6:
|
||||
_fullRedraw = 1;
|
||||
redrawBGAreas();
|
||||
for (i=0; i<NUM_ACTORS; i++)
|
||||
derefActor(i)->needRedraw = true;
|
||||
processActors();
|
||||
screenEffect(args[1]);
|
||||
break;
|
||||
case 8:
|
||||
startManiac();
|
||||
break;
|
||||
case 9:
|
||||
unkMiscOp9();
|
||||
break;
|
||||
|
||||
#else
|
||||
switch(args[0]) {
|
||||
case 3:
|
||||
warning("o6_miscOps: nothing in 3");
|
||||
break;
|
||||
case 4:
|
||||
grabCursor(args[1], args[2], args[3], args[4]);
|
||||
break;
|
||||
case 5:
|
||||
unkVirtScreen4(args[1]);
|
||||
break;
|
||||
case 6:
|
||||
_fullRedraw = 1;
|
||||
redrawBGAreas();
|
||||
for (i=0; i<NUM_ACTORS; i++)
|
||||
derefActor(i)->needRedraw = true;
|
||||
processActors();
|
||||
screenEffect(args[1]);
|
||||
break;
|
||||
case 8:
|
||||
startManiac();
|
||||
break;
|
||||
case 9:
|
||||
unkMiscOp9();
|
||||
break;
|
||||
case 124: /* samnmax */
|
||||
warning("o6_miscOps: _saveSound=%d", args[1]);
|
||||
break;
|
||||
|
||||
case 124: /* samnmax */
|
||||
warning("o6_miscOps: _saveSound=%d", args[1]);
|
||||
break;
|
||||
|
||||
case 104: /* samnmax */
|
||||
nukeFlObjects(args[2], args[3]);
|
||||
break;
|
||||
case 104: /* samnmax */
|
||||
nukeFlObjects(args[2], args[3]);
|
||||
break;
|
||||
|
||||
case 106:
|
||||
error("stub o6_miscOps_106()");
|
||||
break;
|
||||
case 106:
|
||||
error("stub o6_miscOps_106()");
|
||||
break;
|
||||
|
||||
case 107: /* set actor scale */
|
||||
a = derefActorSafe(args[1], "o6_miscops: 107");
|
||||
a->scalex = args[2];
|
||||
a->needBgReset = true;
|
||||
a->needRedraw = true;
|
||||
break;
|
||||
case 107: /* set actor scale */
|
||||
a = derefActorSafe(args[1], "o6_miscops: 107");
|
||||
a->scalex = args[2];
|
||||
a->needBgReset = true;
|
||||
a->needRedraw = true;
|
||||
break;
|
||||
|
||||
case 108:
|
||||
case 109:
|
||||
warning("stub o6_miscOps_108(%d,%d,%d,%d,%d,%d,%d)",
|
||||
args[1], args[2], args[3], args[4], args[5],
|
||||
0,256);
|
||||
break;
|
||||
case 108:
|
||||
case 109:
|
||||
warning("stub o6_miscOps_108(%d,%d,%d,%d,%d,%d,%d)",args[1], args[2], args[3], args[4], args[5],0,256);
|
||||
break;
|
||||
|
||||
case 110:
|
||||
gdi.clearUpperMask();
|
||||
break;
|
||||
case 110:
|
||||
gdi.clearUpperMask();
|
||||
break;
|
||||
|
||||
case 111:
|
||||
a = derefActorSafe(args[1], "o6_miscops: 111");
|
||||
a->shadow_mode = args[2] + args[3];
|
||||
break;
|
||||
case 111:
|
||||
a = derefActorSafe(args[1], "o6_miscops: 111");
|
||||
a->shadow_mode = args[2] + args[3];
|
||||
break;
|
||||
|
||||
case 112:
|
||||
error("stub o6_miscOps_112(%d,%d,%d,%d,%d,%d,%d)",
|
||||
args[1], args[2], args[3], args[4], args[5],
|
||||
args[6], args[7]);
|
||||
break;
|
||||
|
||||
case 114: /* palette? */
|
||||
error("stub o6_miscOps_114()");
|
||||
break;
|
||||
case 112:
|
||||
error("stub o6_miscOps_112(%d,%d,%d,%d,%d,%d,%d)",
|
||||
args[1], args[2], args[3], args[4], args[5],
|
||||
args[6], args[7]);
|
||||
break;
|
||||
|
||||
case 114: /* palette? */
|
||||
error("stub o6_miscOps_114()");
|
||||
break;
|
||||
|
||||
case 117:
|
||||
error("stub o6_miscOps_117()");
|
||||
break;
|
||||
case 117:
|
||||
error("stub o6_miscOps_117()");
|
||||
break;
|
||||
|
||||
case 118:
|
||||
error("stub o6_miscOps_118(%d,%d,%d,%d,%d,%d,%d)",
|
||||
args[1], args[2], args[3], args[4], args[5],
|
||||
args[6], args[7]);
|
||||
break;
|
||||
case 118:
|
||||
error("stub o6_miscOps_118(%d,%d,%d,%d,%d,%d,%d)",
|
||||
args[1], args[2], args[3], args[4], args[5],
|
||||
args[6], args[7]);
|
||||
break;
|
||||
|
||||
case 119:
|
||||
enqueueObject(args[1], args[2], args[3], args[4], args[5],
|
||||
args[6], args[7], args[8], 0);
|
||||
break;
|
||||
|
||||
case 119:
|
||||
enqueueObject(args[1], args[2], args[3], args[4], args[5],
|
||||
args[6], args[7], args[8], 0);
|
||||
break;
|
||||
case 120:
|
||||
swapPalColors(args[1],args[2]);
|
||||
break;
|
||||
|
||||
case 120:
|
||||
swapPalColors(args[1],args[2]);
|
||||
break;
|
||||
case 121:
|
||||
error("stub o6_miscOps_121(%d)", args[1]);
|
||||
break;
|
||||
|
||||
case 121:
|
||||
error("stub o6_miscOps_121(%d)", args[1]);
|
||||
break;
|
||||
case 122:
|
||||
error("stub o6_miscOps_122(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)",
|
||||
args[1],args[2],args[3],args[4],
|
||||
args[5],args[6],args[7],args[8],
|
||||
args[9],args[10],args[11],args[12]);
|
||||
break;
|
||||
|
||||
case 122:
|
||||
error("stub o6_miscOps_122(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)",
|
||||
args[1],args[2],args[3],args[4],
|
||||
args[5],args[6],args[7],args[8],
|
||||
args[9],args[10],args[11],args[12]);
|
||||
break;
|
||||
case 123:
|
||||
error("stub o6_miscOps_123(%d,%d)", args[1], args[2]);
|
||||
break;
|
||||
|
||||
case 123:
|
||||
error("stub o6_miscOps_123(%d,%d)", args[1], args[2]);
|
||||
break;
|
||||
|
||||
default:
|
||||
error("o6_miscOps: default case %d", args[0]);
|
||||
default:
|
||||
error("o6_miscOps: default case %d", args[0]);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void Scumm::o6_kernelFunction() {
|
||||
|
|
280
scumm.h
280
scumm.h
|
@ -294,179 +294,6 @@ enum {
|
|||
sleUint32 = 5
|
||||
};
|
||||
|
||||
#if !defined(FULL_THROTTLE)
|
||||
|
||||
enum ScummVars {
|
||||
VAR_EGO = 1,
|
||||
VAR_CAMERA_POS_X = 2,
|
||||
VAR_HAVE_MSG = 3,
|
||||
VAR_ROOM = 4,
|
||||
VAR_OVERRIDE = 5,
|
||||
VAR_MACHINE_SPEED = 6,
|
||||
VAR_ME = 7,
|
||||
VAR_NUM_ACTOR = 8,
|
||||
VAR_CURRENT_LIGHTS = 9,
|
||||
VAR_CURRENTDRIVE = 10,
|
||||
VAR_TMR_1 = 11,
|
||||
VAR_TMR_2 = 12,
|
||||
VAR_TMR_3 = 13,
|
||||
VAR_MUSIC_FLAG = 14,
|
||||
VAR_ACTOR_RANGE_MIN = 15,
|
||||
VAR_ACTOR_RANGE_MAX = 16,
|
||||
VAR_CAMERA_MIN_X = 17,
|
||||
VAR_CAMERA_MAX_X = 18,
|
||||
VAR_TIMER_NEXT = 19,
|
||||
VAR_VIRT_MOUSE_X = 20,
|
||||
VAR_VIRT_MOUSE_Y = 21,
|
||||
VAR_ROOM_RESOURCE = 22,
|
||||
VAR_LAST_SOUND = 23,
|
||||
VAR_CUTSCENEEXIT_KEY = 24,
|
||||
VAR_TALK_ACTOR = 25,
|
||||
VAR_CAMERA_FAST_X = 26,
|
||||
VAR_SCROLL_SCRIPT = 27,
|
||||
VAR_ENTRY_SCRIPT = 28,
|
||||
VAR_ENTRY_SCRIPT2 = 29,
|
||||
VAR_EXIT_SCRIPT = 30,
|
||||
VAR_EXIT_SCRIPT2 = 31,
|
||||
VAR_VERB_SCRIPT = 32,
|
||||
VAR_SENTENCE_SCRIPT = 33,
|
||||
VAR_HOOK_SCRIPT = 34,
|
||||
VAR_CUTSCENE_START_SCRIPT = 35,
|
||||
VAR_CUTSCENE_END_SCRIPT = 36,
|
||||
VAR_CHARINC = 37,
|
||||
VAR_WALKTO_OBJ = 38,
|
||||
VAR_DEBUGMODE = 39,
|
||||
VAR_HEAPSPACE = 40,
|
||||
VAR_RESTART_KEY = 42,
|
||||
VAR_PAUSE_KEY = 43,
|
||||
VAR_MOUSE_X = 44,
|
||||
VAR_MOUSE_Y = 45,
|
||||
VAR_TIMER = 46,
|
||||
VAR_TMR_4 = 47,
|
||||
VAR_SOUNDCARD = 48,
|
||||
VAR_VIDEOMODE = 49,
|
||||
VAR_SAVELOADDIALOG_KEY = 50,
|
||||
VAR_FIXEDDISK = 51,
|
||||
VAR_CURSORSTATE = 52,
|
||||
VAR_USERPUT = 53,
|
||||
VAR_SOUNDRESULT = 56,
|
||||
VAR_TALKSTOP_KEY = 57,
|
||||
VAR_59 = 59,
|
||||
|
||||
VAR_SOUNDPARAM = 64,
|
||||
VAR_SOUNDPARAM2 = 65,
|
||||
VAR_SOUNDPARAM3 = 66,
|
||||
VAR_MOUSEPRESENT = 67,
|
||||
VAR_PERFORMANCE_1 = 68,
|
||||
VAR_PERFORMANCE_2 = 69,
|
||||
VAR_ROOM_FLAG = 70,
|
||||
VAR_GAME_LOADED = 71,
|
||||
VAR_NEW_ROOM = 72,
|
||||
VAR_VERSION = 75,
|
||||
|
||||
VAR_V5_DRAWFLAGS = 9,
|
||||
VAR_MI1_TIMER = 14,
|
||||
VAR_V5_OBJECT_LO = 15,
|
||||
VAR_V5_OBJECT_HI = 16,
|
||||
VAR_V5_TALK_STRING_Y = 54,
|
||||
VAR_V5_CHARFLAG = 60,
|
||||
|
||||
VAR_V6_SCREEN_WIDTH = 41,
|
||||
VAR_V6_SCREEN_HEIGHT = 54,
|
||||
VAR_V6_EMSSPACE = 76,
|
||||
VAR_V6_RANDOM_NR = 118,
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
enum ScummVars {
|
||||
VAR_MOUSE_X = 1,
|
||||
VAR_MOUSE_Y = 2,
|
||||
VAR_VIRT_MOUSE_X = 3,
|
||||
VAR_VIRT_MOUSE_Y = 4,
|
||||
VAR_V6_SCREEN_WIDTH = 5,
|
||||
VAR_V6_SCREEN_HEIGHT = 6,
|
||||
VAR_CAMERA_POS_X = 7,
|
||||
VAR_CAMERA_POS_Y = 8,
|
||||
VAR_OVERRIDE = 9,
|
||||
VAR_ROOM = 10,
|
||||
VAR_ROOM_RESOURCE = 11,
|
||||
VAR_TALK_ACTOR = 12,
|
||||
VAR_HAVE_MSG = 13,
|
||||
VAR_TIMER = 14,
|
||||
VAR_TMR_4 = 15,
|
||||
VAR_LEFTBTN_DOWN = 22,
|
||||
VAR_RIGHTBTN_DOWN = 23,
|
||||
VAR_LEFTBTN_HOLD = 24,
|
||||
VAR_RIGHTBTN_HOLD = 25,
|
||||
|
||||
VAR_PERFORMANCE_1 = 26,
|
||||
VAR_PERFORMANCE_2 = 27,
|
||||
VAR_GAME_LOADED = 29,
|
||||
VAR_V6_RANDOM_NR = 34,
|
||||
VAR_NEW_ROOM = 35,
|
||||
VAR_WALKTO_OBJ = 36,
|
||||
|
||||
VAR_SCROLL_SCRIPT = 50,
|
||||
VAR_ENTRY_SCRIPT = 51,
|
||||
VAR_ENTRY_SCRIPT2 = 52,
|
||||
VAR_EXIT_SCRIPT = 53,
|
||||
VAR_EXIT_SCRIPT2 = 54,
|
||||
VAR_VERB_SCRIPT = 55,
|
||||
VAR_SENTENCE_SCRIPT = 56,
|
||||
VAR_HOOK_SCRIPT = 57,
|
||||
VAR_CUTSCENE_START_SCRIPT = 58,
|
||||
VAR_CUTSCENE_END_SCRIPT = 59,
|
||||
VAR_UNK_SCRIPT = 60,
|
||||
VAR_UNK_SCRIPT_2 = 61,
|
||||
|
||||
VAR_PAUSE_KEY = 63,
|
||||
VAR_RESTART_KEY = 64, /* ?? */
|
||||
VAR_TALKSTOP_KEY = 65, /* ?? */
|
||||
VAR_SAVELOADDIALOG_KEY = 66, /* ?? */
|
||||
VAR_CUTSCENEEXIT_KEY = 24,
|
||||
|
||||
VAR_TIMER_NEXT = 97,
|
||||
VAR_TMR_1 = 98,
|
||||
VAR_TMR_2 = 99,
|
||||
VAR_TMR_3 = 100,
|
||||
|
||||
VAR_CAMERA_MIN_X = 101,
|
||||
VAR_CAMERA_MAX_X = 102,
|
||||
VAR_CAMERA_MIN_Y = 103,
|
||||
VAR_CAMERA_MAX_Y = 104,
|
||||
VAR_CAMERA_THRESHOLD_X = 105,
|
||||
VAR_CAMERA_THRESHOLD_Y = 106,
|
||||
VAR_CAMERA_SPEED_X = 107,
|
||||
VAR_CAMERA_SPEED_Y = 108,
|
||||
VAR_CAMERA_ACCEL_X = 109,
|
||||
VAR_CAMERA_ACCEL_Y = 110,
|
||||
|
||||
VAR_EGO = 111,
|
||||
|
||||
VAR_CURSORSTATE = 112,
|
||||
VAR_USERPUT = 113,
|
||||
VAR_DEFAULT_TALK_DELAY = 114,
|
||||
VAR_CHARINC = 115,
|
||||
VAR_DEBUGMODE = 116,
|
||||
|
||||
VAR_CHARSET_MASK = 119,
|
||||
|
||||
//VAR_V5_DRAWFLAGS = 9,
|
||||
VAR_MI1_TIMER = 14,
|
||||
VAR_V5_OBJECT_LO = 15,
|
||||
VAR_V5_OBJECT_HI = 16,
|
||||
VAR_V5_TALK_STRING_Y = 54,
|
||||
VAR_V5_CHARFLAG = 60,
|
||||
|
||||
VAR_V6_EMSSPACE = 76,
|
||||
|
||||
VAR_STRING2DRAW = 130,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
enum ResTypes {
|
||||
rtFirst = 1,
|
||||
rtRoom = 1,
|
||||
|
@ -913,6 +740,8 @@ enum GameId {
|
|||
GID_ZAK256 = 8,
|
||||
GID_INDY3_256 = 9,
|
||||
GID_LOOM = 10,
|
||||
GID_FT = 11,
|
||||
GID_DIG = 12,
|
||||
};
|
||||
|
||||
enum GameFeatures {
|
||||
|
@ -2102,6 +1931,111 @@ struct Scumm {
|
|||
void cost_decodeData(Actor *a, int frame, uint usemask);
|
||||
|
||||
void redrawLines(int from, int to);
|
||||
|
||||
void setupScummVarsOld();
|
||||
void setupScummVarsNew();
|
||||
|
||||
byte VAR_EGO;
|
||||
byte VAR_CAMERA_POS_X;
|
||||
byte VAR_HAVE_MSG;
|
||||
byte VAR_ROOM;
|
||||
byte VAR_OVERRIDE;
|
||||
byte VAR_MACHINE_SPEED;
|
||||
byte VAR_ME;
|
||||
byte VAR_NUM_ACTOR;
|
||||
byte VAR_CURRENT_LIGHTS;
|
||||
byte VAR_CURRENTDRIVE;
|
||||
byte VAR_TMR_1;
|
||||
byte VAR_TMR_2;
|
||||
byte VAR_TMR_3;
|
||||
byte VAR_MUSIC_FLAG;
|
||||
byte VAR_ACTOR_RANGE_MIN;
|
||||
byte VAR_ACTOR_RANGE_MAX;
|
||||
byte VAR_CAMERA_MIN_X;
|
||||
byte VAR_CAMERA_MAX_X;
|
||||
byte VAR_TIMER_NEXT;
|
||||
byte VAR_VIRT_MOUSE_X;
|
||||
byte VAR_VIRT_MOUSE_Y;
|
||||
byte VAR_ROOM_RESOURCE;
|
||||
byte VAR_LAST_SOUND;
|
||||
byte VAR_CUTSCENEEXIT_KEY;
|
||||
byte VAR_TALK_ACTOR;
|
||||
byte VAR_CAMERA_FAST_X;
|
||||
byte VAR_SCROLL_SCRIPT;
|
||||
byte VAR_ENTRY_SCRIPT;
|
||||
byte VAR_ENTRY_SCRIPT2;
|
||||
byte VAR_EXIT_SCRIPT;
|
||||
byte VAR_EXIT_SCRIPT2;
|
||||
byte VAR_VERB_SCRIPT;
|
||||
byte VAR_SENTENCE_SCRIPT;
|
||||
byte VAR_HOOK_SCRIPT;
|
||||
byte VAR_CUTSCENE_START_SCRIPT;
|
||||
byte VAR_CUTSCENE_END_SCRIPT;
|
||||
byte VAR_CHARINC;
|
||||
byte VAR_WALKTO_OBJ;
|
||||
byte VAR_DEBUGMODE;
|
||||
byte VAR_HEAPSPACE;
|
||||
byte VAR_RESTART_KEY;
|
||||
byte VAR_PAUSE_KEY;
|
||||
byte VAR_MOUSE_X;
|
||||
byte VAR_MOUSE_Y;
|
||||
byte VAR_TIMER;
|
||||
byte VAR_TMR_4;
|
||||
byte VAR_SOUNDCARD;
|
||||
byte VAR_VIDEOMODE;
|
||||
byte VAR_SAVELOADDIALOG_KEY;
|
||||
byte VAR_FIXEDDISK;
|
||||
byte VAR_CURSORSTATE;
|
||||
byte VAR_USERPUT;
|
||||
byte VAR_SOUNDRESULT;
|
||||
byte VAR_TALKSTOP_KEY;
|
||||
byte VAR_59;
|
||||
|
||||
byte VAR_SOUNDPARAM;
|
||||
byte VAR_SOUNDPARAM2;
|
||||
byte VAR_SOUNDPARAM3;
|
||||
byte VAR_MOUSEPRESENT;
|
||||
byte VAR_PERFORMANCE_1;
|
||||
byte VAR_PERFORMANCE_2;
|
||||
byte VAR_ROOM_FLAG;
|
||||
byte VAR_GAME_LOADED;
|
||||
byte VAR_NEW_ROOM;
|
||||
byte VAR_VERSION;
|
||||
|
||||
byte VAR_V5_DRAWFLAGS;
|
||||
byte VAR_MI1_TIMER;
|
||||
byte VAR_V5_OBJECT_LO;
|
||||
byte VAR_V5_OBJECT_HI;
|
||||
byte VAR_V5_TALK_STRING_Y;
|
||||
byte VAR_V5_CHARFLAG;
|
||||
|
||||
byte VAR_V6_SCREEN_WIDTH;
|
||||
byte VAR_V6_SCREEN_HEIGHT;
|
||||
byte VAR_V6_EMSSPACE;
|
||||
byte VAR_V6_RANDOM_NR;
|
||||
|
||||
byte VAR_STRING2DRAW;
|
||||
byte VAR_CAMERA_POS_Y;
|
||||
|
||||
byte VAR_CAMERA_MIN_Y;
|
||||
byte VAR_CAMERA_MAX_Y;
|
||||
byte VAR_CAMERA_THRESHOLD_X;
|
||||
byte VAR_CAMERA_THRESHOLD_Y;
|
||||
byte VAR_CAMERA_SPEED_X;
|
||||
byte VAR_CAMERA_SPEED_Y;
|
||||
byte VAR_CAMERA_ACCEL_X;
|
||||
byte VAR_CAMERA_ACCEL_Y;
|
||||
|
||||
byte VAR_LEFTBTN_DOWN;
|
||||
byte VAR_RIGHTBTN_DOWN;
|
||||
byte VAR_LEFTBTN_HOLD;
|
||||
byte VAR_RIGHTBTN_HOLD;
|
||||
|
||||
byte VAR_UNK_SCRIPT;
|
||||
byte VAR_UNK_SCRIPT_2;
|
||||
|
||||
byte VAR_DEFAULT_TALK_DELAY;
|
||||
byte VAR_CHARSET_MASK;
|
||||
};
|
||||
|
||||
enum AkosOpcodes{
|
||||
|
|
10
scummvm.cpp
10
scummvm.cpp
|
@ -206,6 +206,11 @@ void Scumm::scummMain(int argc, char **argv) {
|
|||
_features = GF_DEFAULT;
|
||||
}
|
||||
|
||||
if(_features & GF_AFTER_V7)
|
||||
setupScummVarsNew();
|
||||
else
|
||||
setupScummVarsOld();
|
||||
|
||||
if (_gameId==GID_INDY4 && _bootParam==0) {
|
||||
_bootParam = -7873;
|
||||
}
|
||||
|
@ -465,8 +470,9 @@ static const VersionSettings version_settings[] = {
|
|||
{"snmdemo", "Sam & Max (Demo)", GID_SAMNMAX, 6, 3, 0, GF_NEW_OPCODES|GF_AFTER_V6|GF_USE_KEY},
|
||||
|
||||
/* Scumm Version 7 */
|
||||
{"ft", "Full Throttle", GID_SAMNMAX, 7, 3, 0, GF_NEW_OPCODES|GF_AFTER_V6|GF_AFTER_V7},
|
||||
|
||||
{"ft", "Full Throttle", GID_FT, 7, 3, 0, GF_NEW_OPCODES|GF_AFTER_V6|GF_AFTER_V7},
|
||||
{"dig", "The Dig", GID_DIG, 7, 5, 0, GF_NEW_OPCODES|GF_AFTER_V6|GF_AFTER_V7},
|
||||
|
||||
/* Scumm Version 8 */
|
||||
// {"curse", "The Curse of Monkey Island", GID_CMI, 8, 1, 0,},
|
||||
{NULL,NULL}
|
||||
|
|
171
vars.cpp
Normal file
171
vars.cpp
Normal file
|
@ -0,0 +1,171 @@
|
|||
#include "stdafx.h"
|
||||
#include "scumm.h"
|
||||
|
||||
void Scumm::setupScummVarsOld(){
|
||||
|
||||
VAR_EGO = 1;
|
||||
VAR_CAMERA_POS_X = 2;
|
||||
VAR_HAVE_MSG = 3;
|
||||
VAR_ROOM = 4;
|
||||
VAR_OVERRIDE = 5;
|
||||
VAR_MACHINE_SPEED = 6;
|
||||
VAR_ME = 7;
|
||||
VAR_NUM_ACTOR = 8;
|
||||
VAR_CURRENT_LIGHTS = 9;
|
||||
VAR_CURRENTDRIVE = 10;
|
||||
VAR_TMR_1 = 11;
|
||||
VAR_TMR_2 = 12;
|
||||
VAR_TMR_3 = 13;
|
||||
VAR_MUSIC_FLAG = 14;
|
||||
VAR_ACTOR_RANGE_MIN = 15;
|
||||
VAR_ACTOR_RANGE_MAX = 16;
|
||||
VAR_CAMERA_MIN_X = 17;
|
||||
VAR_CAMERA_MAX_X = 18;
|
||||
VAR_TIMER_NEXT = 19;
|
||||
VAR_VIRT_MOUSE_X = 20;
|
||||
VAR_VIRT_MOUSE_Y = 21;
|
||||
VAR_ROOM_RESOURCE = 22;
|
||||
VAR_LAST_SOUND = 23;
|
||||
VAR_CUTSCENEEXIT_KEY = 24;
|
||||
VAR_TALK_ACTOR = 25;
|
||||
VAR_CAMERA_FAST_X = 26;
|
||||
VAR_SCROLL_SCRIPT = 27;
|
||||
VAR_ENTRY_SCRIPT = 28;
|
||||
VAR_ENTRY_SCRIPT2 = 29;
|
||||
VAR_EXIT_SCRIPT = 30;
|
||||
VAR_EXIT_SCRIPT2 = 31;
|
||||
VAR_VERB_SCRIPT = 32;
|
||||
VAR_SENTENCE_SCRIPT = 33;
|
||||
VAR_HOOK_SCRIPT = 34;
|
||||
VAR_CUTSCENE_START_SCRIPT = 35;
|
||||
VAR_CUTSCENE_END_SCRIPT = 36;
|
||||
VAR_CHARINC = 37;
|
||||
VAR_WALKTO_OBJ = 38;
|
||||
VAR_DEBUGMODE = 39;
|
||||
VAR_HEAPSPACE = 40;
|
||||
VAR_RESTART_KEY = 42;
|
||||
VAR_PAUSE_KEY = 43;
|
||||
VAR_MOUSE_X = 44;
|
||||
VAR_MOUSE_Y = 45;
|
||||
VAR_TIMER = 46;
|
||||
VAR_TMR_4 = 47;
|
||||
VAR_SOUNDCARD = 48;
|
||||
VAR_VIDEOMODE = 49;
|
||||
VAR_SAVELOADDIALOG_KEY = 50;
|
||||
VAR_FIXEDDISK = 51;
|
||||
VAR_CURSORSTATE = 52;
|
||||
VAR_USERPUT = 53;
|
||||
VAR_SOUNDRESULT = 56;
|
||||
VAR_TALKSTOP_KEY = 57;
|
||||
VAR_59 = 59;
|
||||
|
||||
VAR_SOUNDPARAM = 64;
|
||||
VAR_SOUNDPARAM2 = 65;
|
||||
VAR_SOUNDPARAM3 = 66;
|
||||
VAR_MOUSEPRESENT = 67;
|
||||
VAR_PERFORMANCE_1 = 68;
|
||||
VAR_PERFORMANCE_2 = 69;
|
||||
VAR_ROOM_FLAG = 70;
|
||||
VAR_GAME_LOADED = 71;
|
||||
VAR_NEW_ROOM = 72;
|
||||
VAR_VERSION = 75;
|
||||
|
||||
VAR_V5_DRAWFLAGS = 9;
|
||||
VAR_MI1_TIMER = 14;
|
||||
VAR_V5_OBJECT_LO = 15;
|
||||
VAR_V5_OBJECT_HI = 16;
|
||||
VAR_V5_TALK_STRING_Y = 54;
|
||||
VAR_V5_CHARFLAG = 60;
|
||||
|
||||
VAR_V6_SCREEN_WIDTH = 41;
|
||||
VAR_V6_SCREEN_HEIGHT = 54;
|
||||
VAR_V6_EMSSPACE = 76;
|
||||
VAR_V6_RANDOM_NR = 118;
|
||||
}
|
||||
|
||||
|
||||
void Scumm::setupScummVarsNew() {
|
||||
|
||||
VAR_MOUSE_X = 1;
|
||||
VAR_MOUSE_Y = 2;
|
||||
VAR_VIRT_MOUSE_X = 3;
|
||||
VAR_VIRT_MOUSE_Y = 4;
|
||||
VAR_V6_SCREEN_WIDTH = 5;
|
||||
VAR_V6_SCREEN_HEIGHT = 6;
|
||||
VAR_CAMERA_POS_X = 7;
|
||||
VAR_CAMERA_POS_Y = 8;
|
||||
VAR_OVERRIDE = 9;
|
||||
VAR_ROOM = 10;
|
||||
VAR_ROOM_RESOURCE = 11;
|
||||
VAR_TALK_ACTOR = 12;
|
||||
VAR_HAVE_MSG = 13;
|
||||
VAR_TIMER = 14;
|
||||
VAR_TMR_4 = 15;
|
||||
VAR_LEFTBTN_DOWN = 22;
|
||||
VAR_RIGHTBTN_DOWN = 23;
|
||||
VAR_LEFTBTN_HOLD = 24;
|
||||
VAR_RIGHTBTN_HOLD = 25;
|
||||
|
||||
VAR_PERFORMANCE_1 = 26;
|
||||
VAR_PERFORMANCE_2 = 27;
|
||||
VAR_GAME_LOADED = 29;
|
||||
VAR_V6_RANDOM_NR = 34;
|
||||
VAR_NEW_ROOM = 35;
|
||||
VAR_WALKTO_OBJ = 36;
|
||||
|
||||
VAR_SCROLL_SCRIPT = 50;
|
||||
VAR_ENTRY_SCRIPT = 51;
|
||||
VAR_ENTRY_SCRIPT2 = 52;
|
||||
VAR_EXIT_SCRIPT = 53;
|
||||
VAR_EXIT_SCRIPT2 = 54;
|
||||
VAR_VERB_SCRIPT = 55;
|
||||
VAR_SENTENCE_SCRIPT = 56;
|
||||
VAR_HOOK_SCRIPT = 57;
|
||||
VAR_CUTSCENE_START_SCRIPT = 58;
|
||||
VAR_CUTSCENE_END_SCRIPT = 59;
|
||||
VAR_UNK_SCRIPT = 60;
|
||||
VAR_UNK_SCRIPT_2 = 61;
|
||||
|
||||
VAR_PAUSE_KEY = 63;
|
||||
VAR_RESTART_KEY = 64; /* ?? */
|
||||
VAR_TALKSTOP_KEY = 65; /* ?? */
|
||||
VAR_SAVELOADDIALOG_KEY = 66; /* ?? */
|
||||
VAR_CUTSCENEEXIT_KEY = 24;
|
||||
|
||||
VAR_TIMER_NEXT = 97;
|
||||
VAR_TMR_1 = 98;
|
||||
VAR_TMR_2 = 99;
|
||||
VAR_TMR_3 = 100;
|
||||
|
||||
VAR_CAMERA_MIN_X = 101;
|
||||
VAR_CAMERA_MAX_X = 102;
|
||||
VAR_CAMERA_MIN_Y = 103;
|
||||
VAR_CAMERA_MAX_Y = 104;
|
||||
VAR_CAMERA_THRESHOLD_X = 105;
|
||||
VAR_CAMERA_THRESHOLD_Y = 106;
|
||||
VAR_CAMERA_SPEED_X = 107;
|
||||
VAR_CAMERA_SPEED_Y = 108;
|
||||
VAR_CAMERA_ACCEL_X = 109;
|
||||
VAR_CAMERA_ACCEL_Y = 110;
|
||||
|
||||
VAR_EGO = 111;
|
||||
|
||||
VAR_CURSORSTATE = 112;
|
||||
VAR_USERPUT = 113;
|
||||
VAR_DEFAULT_TALK_DELAY = 114;
|
||||
VAR_CHARINC = 115;
|
||||
VAR_DEBUGMODE = 116;
|
||||
|
||||
VAR_CHARSET_MASK = 119;
|
||||
|
||||
//VAR_V5_DRAWFLAGS = 9;
|
||||
VAR_MI1_TIMER = 14;
|
||||
VAR_V5_OBJECT_LO = 15;
|
||||
VAR_V5_OBJECT_HI = 16;
|
||||
VAR_V5_TALK_STRING_Y = 54;
|
||||
VAR_V5_CHARFLAG = 60;
|
||||
|
||||
VAR_V6_EMSSPACE = 76;
|
||||
|
||||
VAR_STRING2DRAW = 130;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue