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