mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-23 04:33:09 +00:00
cleanup
svn-id: r5893
This commit is contained in:
parent
2345aa0307
commit
0720fa80c8
@ -308,15 +308,15 @@ void ScummDebugger::printScripts()
|
|||||||
int i;
|
int i;
|
||||||
ScriptSlot *ss;
|
ScriptSlot *ss;
|
||||||
|
|
||||||
printf("+---------------------------------+\n");
|
printf("+------------------------------\n");
|
||||||
printf("|# |num|sta|typ|un1|un2|fc|cut|un5|\n");
|
printf("|# |num|sta|typ|un1|un2|fc|cut|\n");
|
||||||
printf("+--+---+---+---+---+---+--+---+---+\n");
|
printf("+--+---+---+---+---+---+--+---+\n");
|
||||||
for (i = 0; i < 25; i++) {
|
for (i = 0; i < 25; i++) {
|
||||||
ss = &_s->vm.slot[i];
|
ss = &_s->vm.slot[i];
|
||||||
if (ss->number) {
|
if (ss->number) {
|
||||||
printf("|%2d|%3d|%3d|%3d|%3d|%3d|%2d|%3d|%3d|\n",
|
printf("|%2d|%3d|%3d|%3d|%3d|%3d|%2d|%3d|\n",
|
||||||
i, ss->number, ss->status, ss->where, ss->unk1, ss->unk2,
|
i, ss->number, ss->status, ss->where, ss->unk1, ss->unk2,
|
||||||
ss->freezeCount, ss->cutsceneOverride, ss->unk5);
|
ss->freezeCount, ss->cutsceneOverride);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("+-------------------------------------+\n");
|
printf("+-------------------------------------+\n");
|
||||||
|
@ -278,6 +278,16 @@ void Scumm::setCursor(int cursor)
|
|||||||
warning("setCursor(%d)", cursor);
|
warning("setCursor(%d)", cursor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Scumm::setCameraAtEx(int at)
|
||||||
|
{
|
||||||
|
if (!(_features & GF_AFTER_V7)) {
|
||||||
|
camera._mode = CM_NORMAL;
|
||||||
|
camera._cur.x = at;
|
||||||
|
setCameraAt(at, 0);
|
||||||
|
camera._movingToActor = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Scumm::setCameraAt(int pos_x, int pos_y)
|
void Scumm::setCameraAt(int pos_x, int pos_y)
|
||||||
{
|
{
|
||||||
if (_features & GF_AFTER_V7) {
|
if (_features & GF_AFTER_V7) {
|
||||||
@ -2393,7 +2403,7 @@ void Scumm::moveCamera()
|
|||||||
if (t < 5)
|
if (t < 5)
|
||||||
camera._dest.x = actorx - 80;
|
camera._dest.x = actorx - 80;
|
||||||
} else
|
} else
|
||||||
camera._movingToActor = 1;
|
camera._movingToActor = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2419,7 +2429,7 @@ void Scumm::moveCamera()
|
|||||||
|
|
||||||
/* a is set a bit above */
|
/* a is set a bit above */
|
||||||
if (camera._movingToActor && camera._cur.x >> 3 == a->x >> 3) {
|
if (camera._movingToActor && camera._cur.x >> 3 == a->x >> 3) {
|
||||||
camera._movingToActor = 0;
|
camera._movingToActor = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
cameraMoved();
|
cameraMoved();
|
||||||
@ -2464,7 +2474,7 @@ void Scumm::panCameraTo(int x, int y)
|
|||||||
|
|
||||||
camera._dest.x = x;
|
camera._dest.x = x;
|
||||||
camera._mode = CM_PANNING;
|
camera._mode = CM_PANNING;
|
||||||
camera._movingToActor = 0;
|
camera._movingToActor = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2477,7 +2487,7 @@ void Scumm::actorFollowCamera(int act)
|
|||||||
if (act == 0) {
|
if (act == 0) {
|
||||||
camera._mode = CM_NORMAL;
|
camera._mode = CM_NORMAL;
|
||||||
camera._follows = 0;
|
camera._follows = 0;
|
||||||
camera._movingToActor = 0;
|
camera._movingToActor = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2486,17 +2496,7 @@ void Scumm::actorFollowCamera(int act)
|
|||||||
if (camera._follows != old)
|
if (camera._follows != old)
|
||||||
runHook(0);
|
runHook(0);
|
||||||
|
|
||||||
camera._movingToActor = 0;
|
camera._movingToActor = false;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Scumm::setCameraAtEx(int at)
|
|
||||||
{
|
|
||||||
if (!(_features & GF_AFTER_V7)) {
|
|
||||||
camera._mode = CM_NORMAL;
|
|
||||||
camera._cur.x = at;
|
|
||||||
setCameraAt(at, 0);
|
|
||||||
camera._movingToActor = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -471,7 +471,7 @@ void Scumm::saveOrLoad(Serializer *s)
|
|||||||
MKLINE(ScriptSlot, freezeCount, sleByte, VER_V8),
|
MKLINE(ScriptSlot, freezeCount, sleByte, VER_V8),
|
||||||
MKLINE(ScriptSlot, didexec, sleByte, VER_V8),
|
MKLINE(ScriptSlot, didexec, sleByte, VER_V8),
|
||||||
MKLINE(ScriptSlot, cutsceneOverride, sleByte, VER_V8),
|
MKLINE(ScriptSlot, cutsceneOverride, sleByte, VER_V8),
|
||||||
MKLINE(ScriptSlot, unk5, sleByte, VER_V8),
|
MK_OBSOLETE(ScriptSlot, unk5, sleByte, VER_V8, VER_V10),
|
||||||
MKEND()
|
MKEND()
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -487,7 +487,7 @@ void Scumm::saveOrLoad(Serializer *s)
|
|||||||
MKLINE(SentenceTab, unk2, sleUint8, VER_V8),
|
MKLINE(SentenceTab, unk2, sleUint8, VER_V8),
|
||||||
MKLINE(SentenceTab, unk4, sleUint16, VER_V8),
|
MKLINE(SentenceTab, unk4, sleUint16, VER_V8),
|
||||||
MKLINE(SentenceTab, unk3, sleUint16, VER_V8),
|
MKLINE(SentenceTab, unk3, sleUint16, VER_V8),
|
||||||
MKLINE(SentenceTab, unk, sleUint8, VER_V8),
|
MKLINE(SentenceTab, freezeCount, sleUint8, VER_V8),
|
||||||
MKEND()
|
MKEND()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ void Scumm::runScript(int script, int a, int b, int16 *lvarptr)
|
|||||||
s = &vm.slot[slot];
|
s = &vm.slot[slot];
|
||||||
s->number = script;
|
s->number = script;
|
||||||
s->offs = scriptOffs;
|
s->offs = scriptOffs;
|
||||||
s->status = 2;
|
s->status = ssRunning;
|
||||||
s->where = scriptType;
|
s->where = scriptType;
|
||||||
s->unk1 = a;
|
s->unk1 = a;
|
||||||
s->unk2 = b;
|
s->unk2 = b;
|
||||||
@ -92,7 +92,7 @@ void Scumm::stopScriptNr(int script)
|
|||||||
ss = &vm.slot[1];
|
ss = &vm.slot[1];
|
||||||
|
|
||||||
for (i = 1; i < NUM_SCRIPT_SLOT; i++, ss++) {
|
for (i = 1; i < NUM_SCRIPT_SLOT; i++, ss++) {
|
||||||
if (script != ss->number || ss->where != WIO_GLOBAL && ss->where != WIO_LOCAL || ss->status == 0)
|
if (script != ss->number || ss->where != WIO_GLOBAL && ss->where != WIO_LOCAL || ss->status == ssDead)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (ss->cutsceneOverride)
|
if (ss->cutsceneOverride)
|
||||||
@ -133,7 +133,7 @@ void Scumm::stopObjectScript(int script)
|
|||||||
for (i = 1; i < NUM_SCRIPT_SLOT; i++, ss++) {
|
for (i = 1; i < NUM_SCRIPT_SLOT; i++, ss++) {
|
||||||
if (script == ss->number && (ss->where == WIO_ROOM ||
|
if (script == ss->number && (ss->where == WIO_ROOM ||
|
||||||
ss->where == WIO_INVENTORY || ss->where == WIO_FLOBJECT)
|
ss->where == WIO_INVENTORY || ss->where == WIO_FLOBJECT)
|
||||||
&& ss->status != 0) {
|
&& ss->status != ssDead) {
|
||||||
if (ss->cutsceneOverride)
|
if (ss->cutsceneOverride)
|
||||||
error("Object %d stopped with active cutscene/override", script);
|
error("Object %d stopped with active cutscene/override", script);
|
||||||
ss->number = 0;
|
ss->number = 0;
|
||||||
@ -167,7 +167,7 @@ int Scumm::getScriptSlot()
|
|||||||
ss = &vm.slot[1];
|
ss = &vm.slot[1];
|
||||||
|
|
||||||
for (i = 1; i < NUM_SCRIPT_SLOT; i++, ss++) {
|
for (i = 1; i < NUM_SCRIPT_SLOT; i++, ss++) {
|
||||||
if (ss->status == 0)
|
if (ss->status == ssDead)
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
error("Too many scripts running, %d max", NUM_SCRIPT_SLOT);
|
error("Too many scripts running, %d max", NUM_SCRIPT_SLOT);
|
||||||
@ -210,7 +210,7 @@ void Scumm::runScriptNested(int script)
|
|||||||
if (nest->number != 0xFF) {
|
if (nest->number != 0xFF) {
|
||||||
slot = &vm.slot[nest->slot];
|
slot = &vm.slot[nest->slot];
|
||||||
if (slot->number == nest->number && slot->where == nest->where &&
|
if (slot->number == nest->number && slot->where == nest->where &&
|
||||||
slot->status != 0 && slot->freezeCount == 0) {
|
slot->status != ssDead && slot->freezeCount == 0) {
|
||||||
_currentScript = nest->slot;
|
_currentScript = nest->slot;
|
||||||
getScriptBaseAddress();
|
getScriptBaseAddress();
|
||||||
getScriptEntryPoint();
|
getScriptEntryPoint();
|
||||||
@ -544,7 +544,7 @@ void Scumm::stopObjectCode()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ss->number = 0;
|
ss->number = 0;
|
||||||
ss->status = 0;
|
ss->status = ssDead;
|
||||||
_currentScript = 0xFF;
|
_currentScript = 0xFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -583,7 +583,7 @@ void Scumm::freezeScripts(int flag)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 6; i++)
|
for (i = 0; i < 6; i++)
|
||||||
_sentence[i].unk++;
|
_sentence[i].freezeCount++;
|
||||||
|
|
||||||
if (vm.cutSceneScriptIndex != 0xFF) {
|
if (vm.cutSceneScriptIndex != 0xFF) {
|
||||||
vm.slot[vm.cutSceneScriptIndex].status &= 0x7F;
|
vm.slot[vm.cutSceneScriptIndex].status &= 0x7F;
|
||||||
@ -603,8 +603,8 @@ void Scumm::unfreezeScripts()
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
if (_sentence[i].unk > 0)
|
if (_sentence[i].freezeCount > 0)
|
||||||
_sentence[i].unk--;
|
_sentence[i].freezeCount--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -694,11 +694,11 @@ void Scumm::killScriptsAndResources()
|
|||||||
if (ss->where == WIO_ROOM || ss->where == WIO_FLOBJECT) {
|
if (ss->where == WIO_ROOM || ss->where == WIO_FLOBJECT) {
|
||||||
if (ss->cutsceneOverride)
|
if (ss->cutsceneOverride)
|
||||||
error("Object %d stopped with active cutscene/override in exit", ss->number);
|
error("Object %d stopped with active cutscene/override in exit", ss->number);
|
||||||
ss->status = 0;
|
ss->status = ssDead;
|
||||||
} else if (ss->where == WIO_LOCAL) {
|
} else if (ss->where == WIO_LOCAL) {
|
||||||
if (ss->cutsceneOverride)
|
if (ss->cutsceneOverride)
|
||||||
error("Script %d stopped with active cutscene/override in exit", ss->number);
|
error("Script %d stopped with active cutscene/override in exit", ss->number);
|
||||||
ss->status = 0;
|
ss->status = ssDead;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -721,7 +721,7 @@ void Scumm::killScriptsAndResources()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Scumm::checkAndRunVar33()
|
void Scumm::checkAndRunSentenceScript()
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
ScriptSlot *ss;
|
ScriptSlot *ss;
|
||||||
@ -730,11 +730,11 @@ void Scumm::checkAndRunVar33()
|
|||||||
if (isScriptInUse(_vars[VAR_SENTENCE_SCRIPT])) {
|
if (isScriptInUse(_vars[VAR_SENTENCE_SCRIPT])) {
|
||||||
ss = vm.slot;
|
ss = vm.slot;
|
||||||
for (i = 0; i < NUM_SCRIPT_SLOT; i++, ss++)
|
for (i = 0; i < NUM_SCRIPT_SLOT; i++, ss++)
|
||||||
if (ss->number == _vars[VAR_SENTENCE_SCRIPT] && ss->status != 0 && ss->freezeCount == 0)
|
if (ss->number == _vars[VAR_SENTENCE_SCRIPT] && ss->status != ssDead && ss->freezeCount == 0)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_sentenceNum || _sentence[_sentenceNum - 1].unk)
|
if (!_sentenceNum || _sentence[_sentenceNum - 1].freezeCount)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_sentenceNum--;
|
_sentenceNum--;
|
||||||
@ -767,10 +767,10 @@ void Scumm::decreaseScriptDelay(int amount)
|
|||||||
ScriptSlot *ss = &vm.slot[0];
|
ScriptSlot *ss = &vm.slot[0];
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < NUM_SCRIPT_SLOT; i++, ss++) {
|
for (i = 0; i < NUM_SCRIPT_SLOT; i++, ss++) {
|
||||||
if (ss->status == 1) {
|
if (ss->status == ssPaused) {
|
||||||
ss->delay -= amount;
|
ss->delay -= amount;
|
||||||
if (ss->delay < 0) {
|
if (ss->delay < 0) {
|
||||||
ss->status = 2;
|
ss->status = ssRunning;
|
||||||
ss->delay = 0;
|
ss->delay = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -945,7 +945,7 @@ bool Scumm::isScriptRunning(int script)
|
|||||||
int i;
|
int i;
|
||||||
ScriptSlot *ss = vm.slot;
|
ScriptSlot *ss = vm.slot;
|
||||||
for (i = 0; i < NUM_SCRIPT_SLOT; i++, ss++)
|
for (i = 0; i < NUM_SCRIPT_SLOT; i++, ss++)
|
||||||
if (ss->number == script && (ss->where == WIO_GLOBAL || ss->where == WIO_LOCAL) && ss->status)
|
if (ss->number == script && (ss->where == WIO_GLOBAL || ss->where == WIO_LOCAL) && ss->status != ssDead)
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -955,7 +955,7 @@ bool Scumm::isRoomScriptRunning(int script)
|
|||||||
int i;
|
int i;
|
||||||
ScriptSlot *ss = vm.slot;
|
ScriptSlot *ss = vm.slot;
|
||||||
for (i = 0; i < NUM_SCRIPT_SLOT; i++, ss++)
|
for (i = 0; i < NUM_SCRIPT_SLOT; i++, ss++)
|
||||||
if (ss->number == script && ss->where == WIO_ROOM && ss->status)
|
if (ss->number == script && ss->where == WIO_ROOM && ss->status != ssDead)
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -1101,7 +1101,7 @@ void Scumm::exitCutscene()
|
|||||||
if (offs) {
|
if (offs) {
|
||||||
ScriptSlot *ss = &vm.slot[vm.cutSceneScript[vm.cutSceneStackPointer]];
|
ScriptSlot *ss = &vm.slot[vm.cutSceneScript[vm.cutSceneStackPointer]];
|
||||||
ss->offs = offs;
|
ss->offs = offs;
|
||||||
ss->status = 2;
|
ss->status = ssRunning;
|
||||||
ss->freezeCount = 0;
|
ss->freezeCount = 0;
|
||||||
|
|
||||||
if (ss->cutsceneOverride > 0)
|
if (ss->cutsceneOverride > 0)
|
||||||
@ -1147,5 +1147,5 @@ void Scumm::doSentence(int c, int b, int a)
|
|||||||
st->unk5 = c;
|
st->unk5 = c;
|
||||||
st->unk4 = b;
|
st->unk4 = b;
|
||||||
st->unk3 = a;
|
st->unk3 = a;
|
||||||
st->unk = 0;
|
st->freezeCount = 0;
|
||||||
}
|
}
|
||||||
|
@ -726,7 +726,7 @@ void Scumm::o5_doSentence()
|
|||||||
} else {
|
} else {
|
||||||
st->unk2 = 1;
|
st->unk2 = 1;
|
||||||
}
|
}
|
||||||
st->unk = 0;
|
st->freezeCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Scumm::o5_drawBox()
|
void Scumm::o5_drawBox()
|
||||||
@ -2018,7 +2018,7 @@ void Scumm::o5_soundKludge()
|
|||||||
|
|
||||||
if (_features & GF_SMALL_HEADER) { // Is WaitForSentence in SCUMM V3
|
if (_features & GF_SMALL_HEADER) { // Is WaitForSentence in SCUMM V3
|
||||||
if (_sentenceNum) {
|
if (_sentenceNum) {
|
||||||
if (_sentence[_sentenceNum - 1].unk && !isScriptInUse(_vars[VAR_SENTENCE_SCRIPT]))
|
if (_sentence[_sentenceNum - 1].freezeCount && !isScriptInUse(_vars[VAR_SENTENCE_SCRIPT]))
|
||||||
return;
|
return;
|
||||||
} else if (!isScriptInUse(_vars[VAR_SENTENCE_SCRIPT]))
|
} else if (!isScriptInUse(_vars[VAR_SENTENCE_SCRIPT]))
|
||||||
return;
|
return;
|
||||||
@ -2344,7 +2344,7 @@ void Scumm::o5_wait()
|
|||||||
return;
|
return;
|
||||||
case 4: /* wait for sentence */
|
case 4: /* wait for sentence */
|
||||||
if (_sentenceNum) {
|
if (_sentenceNum) {
|
||||||
if (_sentence[_sentenceNum - 1].unk && !isScriptInUse(_vars[VAR_SENTENCE_SCRIPT]))
|
if (_sentence[_sentenceNum - 1].freezeCount && !isScriptInUse(_vars[VAR_SENTENCE_SCRIPT]))
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -2067,7 +2067,7 @@ void Scumm::o6_wait()
|
|||||||
case 171:
|
case 171:
|
||||||
printf("wait for sentence");
|
printf("wait for sentence");
|
||||||
if (_sentenceNum) {
|
if (_sentenceNum) {
|
||||||
if (_sentence[_sentenceNum - 1].unk && !isScriptInUse(_vars[VAR_SENTENCE_SCRIPT]))
|
if (_sentence[_sentenceNum - 1].freezeCount && !isScriptInUse(_vars[VAR_SENTENCE_SCRIPT]))
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -99,9 +99,9 @@ struct ScriptSlot {
|
|||||||
uint16 delayFrameCount;
|
uint16 delayFrameCount;
|
||||||
byte status;
|
byte status;
|
||||||
byte where;
|
byte where;
|
||||||
byte unk1, unk2, freezeCount, didexec;
|
byte unk1, unk2, freezeCount;
|
||||||
|
bool didexec;
|
||||||
byte cutsceneOverride;
|
byte cutsceneOverride;
|
||||||
byte unk5;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct NestedScript {
|
struct NestedScript {
|
||||||
@ -237,8 +237,7 @@ struct SentenceTab {
|
|||||||
byte unk2;
|
byte unk2;
|
||||||
uint16 unk4;
|
uint16 unk4;
|
||||||
uint16 unk3;
|
uint16 unk3;
|
||||||
int8 unk;
|
uint8 freezeCount;
|
||||||
byte pad;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO / FIXME: next time save game format changes, Fingolfin would like to
|
// TODO / FIXME: next time save game format changes, Fingolfin would like to
|
||||||
@ -495,7 +494,7 @@ public:
|
|||||||
void beginOverride();
|
void beginOverride();
|
||||||
void endOverride();
|
void endOverride();
|
||||||
void killScriptsAndResources();
|
void killScriptsAndResources();
|
||||||
void checkAndRunVar33();
|
void checkAndRunSentenceScript();
|
||||||
void decreaseScriptDelay(int amount);
|
void decreaseScriptDelay(int amount);
|
||||||
bool isScriptRunning(int script);
|
bool isScriptRunning(int script);
|
||||||
bool isRoomScriptRunning(int script);
|
bool isRoomScriptRunning(int script);
|
||||||
|
@ -499,7 +499,7 @@ int Scumm::scummLoop(int delta)
|
|||||||
|
|
||||||
runAllScripts();
|
runAllScripts();
|
||||||
checkExecVerbs();
|
checkExecVerbs();
|
||||||
checkAndRunVar33();
|
checkAndRunSentenceScript();
|
||||||
|
|
||||||
if (_currentRoom == 0) {
|
if (_currentRoom == 0) {
|
||||||
gdi._cursorActive = 0;
|
gdi._cursorActive = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user