ASYLUM: Removed the ScriptManager. The singleton functionality is rolled into the actionlist class (where it belongs)

git-svn-id: http://asylumengine.googlecode.com/svn/trunk@348 0bfb4aae-4ea4-11de-8d8d-752d95cf3e3c
This commit is contained in:
Alex Bevilacqua 2009-09-19 13:31:00 +00:00 committed by Eugene Sandulenko
parent 2cb80c6d8d
commit b4385f8e9e
No known key found for this signature in database
GPG key ID: 014D387312D34F08
12 changed files with 1293 additions and 1412 deletions

File diff suppressed because it is too large Load diff

View file

@ -29,10 +29,14 @@
#include "common/array.h"
#include "common/stream.h"
#include "asylum/scene.h"
namespace Asylum {
#define MAX_ACTION_COMMANDS 161
class Scene;
typedef struct ActionCommand {
uint32 numLines; // Only set on the first line of each script
uint32 opcode;
@ -58,7 +62,7 @@ typedef struct ActionDefinitions {
class ActionList {
public:
ActionList(Common::SeekableReadStream *stream);
ActionList(Common::SeekableReadStream *stream, Scene *scene);
virtual ~ActionList();
uint32 size;
@ -66,12 +70,140 @@ public:
Common::Array<ActionDefinitions> entries;
// FIXME
// Made all the internal control variables public and removed the getter/setter
// pairs for simplicity. This should be refactored later, once the function mapping
// is cleaned up properly
int currentLine;
int currentLoops;
int delayedSceneIndex;
int delayedVideoIndex;
bool allowInput;
bool processing;
int lineIncrement;
bool done;
bool waitCycle;
void setScriptByIndex(uint32 index);
ActionDefinitions* getScript() { return _currentScript; }
int process();
int checkBarrierFlags(int barrierId);
int setBarrierNextFrame(int barrierId, int barrierFlags);
void processActionListSub02(ActionDefinitions* script, ActionCommand* command, int a4);
void enableActorSub(int actorIndex, int condition);
private:
Scene *_scene;
ActionDefinitions *_currentScript;
void load(Common::SeekableReadStream *stream);
};
// opcode functions
int kReturn0(ActionCommand *cmd, Scene *scn);
int kSetGameFlag(ActionCommand *cmd, Scene *scn);
int kClearGameFlag(ActionCommand *cmd, Scene *scn);
int kToggleGameFlag(ActionCommand *cmd, Scene *scn);
int kJumpIfGameFlag(ActionCommand *cmd, Scene *scn);
int kHideCursor(ActionCommand *cmd, Scene *scn);
int kShowCursor(ActionCommand *cmd, Scene *scn);
int kPlayAnimation(ActionCommand *cmd, Scene *scn);
int kMoveScenePosition(ActionCommand *cmd, Scene *scn);
int kHideActor(ActionCommand *cmd, Scene *scn);
int kShowActor(ActionCommand *cmd, Scene *scn);
int kSetActorStats(ActionCommand *cmd, Scene *scn);
int kSetSceneMotionStat(ActionCommand *cmd, Scene *scn);
int kDisableActor(ActionCommand *cmd, Scene *scn);
int kEnableActor(ActionCommand *cmd, Scene *scn);
int kEnableBarriers(ActionCommand *cmd, Scene *scn);
int kReturn(ActionCommand *cmd, Scene *scn);
int kDestroyBarrier(ActionCommand *cmd, Scene *scn);
int k_unk12_JMP_WALK_ACTOR(ActionCommand *cmd, Scene *scn);
int k_unk13_JMP_WALK_ACTOR(ActionCommand *cmd, Scene *scn);
int k_unk14_JMP_WALK_ACTOR(ActionCommand *cmd, Scene *scn);
int k_unk15(ActionCommand *cmd, Scene *scn);
int kResetAnimation(ActionCommand *cmd, Scene *scn);
int kClearFlag1Bit0(ActionCommand *cmd, Scene *scn);
int k_unk18_PLAY_SND(ActionCommand *cmd, Scene *scn);
int kJumpIfFlag2Bit0(ActionCommand *cmd, Scene *scn);
int kSetFlag2Bit0(ActionCommand *cmd, Scene *scn);
int kClearFlag2Bit0(ActionCommand *cmd, Scene *scn);
int kJumpIfFlag2Bit2(ActionCommand *cmd, Scene *scn);
int kSetFlag2Bit2(ActionCommand *cmd, Scene *scn);
int kClearFlag2Bit2(ActionCommand *cmd, Scene *scn);
int kJumpIfFlag2Bit1(ActionCommand *cmd, Scene *scn);
int kSetFlag2Bit1(ActionCommand *cmd, Scene *scn);
int kClearFlag2Bit1(ActionCommand *cmd, Scene *scn);
int k_unk22(ActionCommand *cmd, Scene *scn);
int k_unk23(ActionCommand *cmd, Scene *scn);
int k_unk24(ActionCommand *cmd, Scene *scn);
int kRunEncounter(ActionCommand *cmd, Scene *scn);
int kJumpIfFlag2Bit4(ActionCommand *cmd, Scene *scn);
int kSetFlag2Bit4(ActionCommand *cmd, Scene *scn);
int kClearFlag2Bit4(ActionCommand *cmd, Scene *scn);
int kSetActorField638(ActionCommand *cmd, Scene *scn);
int kJumpIfActorField638(ActionCommand *cmd, Scene *scn);
int kChangeScene(ActionCommand *cmd, Scene *scn);
int k_unk2C_ActorSub(ActionCommand *cmd, Scene *scn);
int kPlayMovie(ActionCommand *cmd, Scene *scn);
int kStopAllBarriersSounds(ActionCommand *cmd, Scene *scn);
int kSetActionFlag01(ActionCommand *cmd, Scene *scn);
int kClearActionFlag01(ActionCommand *cmd, Scene *scn);
int kResetSceneRect(ActionCommand *cmd, Scene *scn);
int kChangeMusicById(ActionCommand *cmd, Scene *scn);
int kStopMusic(ActionCommand *cmd, Scene *scn);
int k_unk34_Status(ActionCommand *cmd, Scene *scn);
int k_unk35(ActionCommand *cmd, Scene *scn);
int k_unk36(ActionCommand *cmd, Scene *scn);
int kRunBlowUpPuzzle(ActionCommand *cmd, Scene *scn);
int kJumpIfFlag2Bit3(ActionCommand *cmd, Scene *scn);
int kSetFlag2Bit3(ActionCommand *cmd, Scene *scn);
int kClearFlag2Bit3(ActionCommand *cmd, Scene *scn);
int k_unk3B_PALETTE_MOD(ActionCommand *cmd, Scene *scn);
int k_unk3C_CMP_VAL(ActionCommand *cmd, Scene *scn);
int kWaitUntilFramePlayed(ActionCommand *cmd, Scene *scn);
int kUpdateWideScreen(ActionCommand *cmd, Scene *scn);
int k_unk3F(ActionCommand *cmd, Scene *scn);
int k_unk40_SOUND(ActionCommand *cmd, Scene *scn);
int kPlaySpeech(ActionCommand *cmd, Scene *scn);
int k_unk42(ActionCommand *cmd, Scene *scn);
int k_unk43(ActionCommand *cmd, Scene *scn);
int kPaletteFade(ActionCommand *cmd, Scene *scn);
int kStartPaletteFadeThread(ActionCommand *cmd, Scene *scn);
int k_unk46(ActionCommand *cmd, Scene *scn);
int kActorFaceObject(ActionCommand *cmd, Scene *scn);
int k_unk48_MATTE_01(ActionCommand *cmd, Scene *scn);
int k_unk49_MATTE_90(ActionCommand *cmd, Scene *scn);
int kJumpIfSoundPlaying(ActionCommand *cmd, Scene *scn);
int kChangePlayerCharacterIndex(ActionCommand *cmd, Scene *scn);
int kChangeActorField40(ActionCommand *cmd, Scene *scn);
int kStopSound(ActionCommand *cmd, Scene *scn);
int k_unk4E_RANDOM_COMMAND(ActionCommand *cmd, Scene *scn);
int kClearScreen(ActionCommand *cmd, Scene *scn);
int kQuit(ActionCommand *cmd, Scene *scn);
int kJumpBarrierFrame(ActionCommand *cmd, Scene *scn);
int k_unk52(ActionCommand *cmd, Scene *scn);
int k_unk53(ActionCommand *cmd, Scene *scn);
int k_unk54_SET_ACTIONLIST_6EC(ActionCommand *cmd, Scene *scn);
int k_unk55(ActionCommand *cmd, Scene *scn);
int k_unk56(ActionCommand *cmd, Scene *scn);
int kSetResourcePalette(ActionCommand *cmd, Scene *scn);
int kSetBarrierFrameIdxFlaged(ActionCommand *cmd, Scene *scn);
int k_unk59(ActionCommand *cmd, Scene *scn);
int k_unk5A(ActionCommand *cmd, Scene *scn);
int k_unk5B(ActionCommand *cmd, Scene *scn);
int k_unk5C(ActionCommand *cmd, Scene *scn);
int k_unk5D(ActionCommand *cmd, Scene *scn);
int k_unk5E(ActionCommand *cmd, Scene *scn);
int kSetBarrierLastFrameIdx(ActionCommand *cmd, Scene *scn);
int k_unk60_SET_OR_CLR_ACTIONAREA_FLAG(ActionCommand *cmd, Scene *scn);
int k_unk61(ActionCommand *cmd, Scene *scn);
int k_unk62_SHOW_OPTIONS_SCREEN(ActionCommand *cmd, Scene *scn);
int k_unk63(ActionCommand *cmd, Scene *scn);
} // end of namespace Asylum
#endif

View file

@ -157,7 +157,7 @@ void Actor::drawActor() {
void Actor::setWalkArea(ActionArea *target) {
if (_currentWalkArea != target) {
ScriptMan.setScriptIndex(target->actionListIdx1);
Shared.getScene()->actions()->setScriptByIndex(target->actionListIdx1);
_currentWalkArea = target;
debugC(kDebugLevelScripts, "%s", target->name);
}

View file

@ -114,7 +114,7 @@ Common::Error AsylumEngine::go() {
// XXX This can probably also be rolled into the scene constructor.
// Investigate if this will fuck up the execution sequence though :P
ScriptMan.setScript(_scene->getDefaultActionList());
_scene->actions()->setScriptByIndex(_scene->worldstats()->actionListIdx);
// Set up main menu
_mainMenu = new MainMenu();
@ -260,12 +260,12 @@ void AsylumEngine::checkForEvent(bool doUpdate) { // k_sub_40AE30 (0040AE30)
void AsylumEngine::processDelayedEvents() {
// check for a delayed video
int videoIdx = ScriptMan.delayedVideoIndex;
int videoIdx = _scene->actions()->delayedVideoIndex;
if (videoIdx >= 0) {
_sound->stopMusic();
_sound->stopSfx();
_video->playVideo(videoIdx, kSubtitlesOn);
ScriptMan.delayedVideoIndex = -1;
_scene->actions()->delayedVideoIndex = -1;
if (_mainMenu->isActive())
_mainMenu->openMenu();
@ -274,8 +274,8 @@ void AsylumEngine::processDelayedEvents() {
}
// check for a delayed scene change
int sceneIdx = ScriptMan.delayedSceneIndex;
if (sceneIdx >=0 && !ScriptMan.processing) {
int sceneIdx = _scene->actions()->delayedSceneIndex;
if (sceneIdx >=0 && !_scene->actions()->processing) {
_sound->stopMusic();
_sound->stopSfx();
@ -286,8 +286,8 @@ void AsylumEngine::processDelayedEvents() {
Shared.setScene(_scene);
_scene->enterScene();
ScriptMan.delayedSceneIndex = -1;
ScriptMan.setScript(_scene->getDefaultActionList());
_scene->actions()->delayedSceneIndex = -1;
_scene->actions()->setScriptByIndex(_scene->worldstats()->actionListIdx);
}
}

View file

@ -34,7 +34,6 @@
#include "asylum/screen.h"
#include "asylum/sound.h"
#include "asylum/video.h"
#include "asylum/scriptman.h"
#include "asylum/blowuppuzzle.h"
#include "asylum/encounters.h"

View file

@ -43,8 +43,6 @@
<File RelativePath="..\..\engines\asylum\scene.h" />
<File RelativePath="..\..\engines\asylum\screen.cpp" />
<File RelativePath="..\..\engines\asylum\screen.h" />
<File RelativePath="..\..\engines\asylum\scriptman.cpp" />
<File RelativePath="..\..\engines\asylum\scriptman.h" />
<File RelativePath="..\..\engines\asylum\sound.cpp" />
<File RelativePath="..\..\engines\asylum\sound.h" />
<File RelativePath="..\..\engines\asylum\text.cpp" />

View file

@ -118,7 +118,7 @@ bool Console::cmdPlayVideo(int argc, const char **argv) {
return true;
}
ScriptMan.delayedVideoIndex = atoi(argv[1]);
Shared.getScene()->actions()->delayedVideoIndex = atoi(argv[1]);
return false;
}
@ -129,7 +129,7 @@ bool Console::cmdRunScript(int argc, const char **argv) {
return true;
}
ScriptMan.setScriptIndex(atoi(argv[1]));
Shared.getScene()->actions()->setScriptByIndex(atoi(argv[1]));
return false;
}
@ -145,8 +145,9 @@ bool Console::cmdChangeScene(int argc, const char **argv) {
return true;
}
ScriptMan.delayedSceneIndex = atoi(argv[1]);
ScriptMan.setScript(0);
Shared.getScene()->actions()->delayedSceneIndex = atoi(argv[1]);
Shared.getScene()->actions()->setScriptByIndex(0); // XXX is this right or should it be
// ws->actionListIdx???
return false;
}

View file

@ -1,26 +1,25 @@
MODULE := engines/asylum
MODULE_OBJS := \
actionlist.o \
actor.o \
asylum.o \
barrier.o \
blowuppuzzle.o \
console.o \
cursor.o \
detection.o \
encounters.o \
graphics.o \
menu.o \
polygons.o \
respack.o \
scene.o \
barrier.o \
screen.o \
shared.o \
sound.o \
text.o \
video.o \
actor.o \
encounters.o \
scriptman.o \
blowuppuzzle.o \
shared.o \
cursor.o \
polygons.o \
actionlist.o \
worldstats.o
# This module can be built as a plugin

View file

@ -25,7 +25,6 @@
#include "asylum/scene.h"
#include "asylum/shared.h"
#include "asylum/scriptman.h"
#include "asylum/actor.h"
namespace Asylum {
@ -64,7 +63,7 @@ Scene::Scene(uint8 sceneIdx) {
_polygons = new Polygons(fd);
// jump to action list data
fd->seek(0xE868E + _polygons->size * _polygons->numEntries);
_actions = new ActionList(fd);
_actions = new ActionList(fd, this);
fd->close();
delete fd;
@ -157,17 +156,6 @@ void Scene::enterScene() {
_walking = false;
}
ActionDefinitions* Scene::getDefaultActionList() {
getActionList(_ws->actionListIdx);
}
ActionDefinitions* Scene::getActionList(int actionListIndex) {
if ((actionListIndex >= 0) && (actionListIndex < (int)_ws->numActions))
return &actions()->entries[actionListIndex];
else
return 0;
}
void Scene::setScenePosition(int x, int y)
{
WorldStats *ws = _ws;
@ -199,12 +187,12 @@ void Scene::handleEvent(Common::Event *event, bool doUpdate) {
break;
case Common::EVENT_LBUTTONUP:
if (ScriptMan.allowInput)
if (_actions->allowInput)
_leftClick = true;
break;
case Common::EVENT_RBUTTONUP:
if (ScriptMan.allowInput) {
if (_actions->allowInput) {
// TODO This isn't always going to be the magnifying glass
// Should check the current pointer region to identify the type
// of cursor to use
@ -214,7 +202,7 @@ void Scene::handleEvent(Common::Event *event, bool doUpdate) {
break;
case Common::EVENT_RBUTTONDOWN:
if (ScriptMan.allowInput)
if (_actions->allowInput)
_rightButton = true;
break;
}
@ -276,7 +264,7 @@ int Scene::updateScene() {
//updateAdjustScreen();
//debugC(kDebugLevelScene, "AdjustScreenStart Time: %d", Shared.getMillis() - startTick);
if(ScriptMan.processActionList())
if(_actions->process())
return 1;
return 0;
@ -878,7 +866,7 @@ void Scene::OLD_UPDATE(WorldStats *worldStats) {
worldStats->actions[a].actionListIdx2,
worldStats->actions[a].actionType,
worldStats->actions[a].soundResId);
ScriptMan.setScript(&_actions->entries[worldStats->actions[a].actionListIdx1]);
_actions->setScriptByIndex(_ws->actions[a].actionListIdx1);
}
}
} else if (curBarrier >= 0) {
@ -889,7 +877,7 @@ void Scene::OLD_UPDATE(WorldStats *worldStats) {
b.soundResId,
b.flags,
b.flags2);
ScriptMan.setScript(getActionList(b.actionListIdx));
_actions->setScriptByIndex(b.actionListIdx);
}
}
}

View file

@ -41,6 +41,7 @@
namespace Asylum {
class ActionList;
class Screen;
class Sound;
class Video;
@ -62,10 +63,6 @@ public:
bool isActive() { return _isActive; }
int getSceneIndex() { return _sceneIdx; }
// TODO roll into actionlist.cpp
ActionDefinitions* getDefaultActionList();
ActionDefinitions* getActionList(int actionListIndex);
Actor* getActor();
Cursor* getCursor() { return _cursor; }

File diff suppressed because it is too large Load diff

View file

@ -1,186 +0,0 @@
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* $URL$
* $Id$
*/
#ifndef ASYLUM_SCRIPTMANAGER_H_
#define ASYLUM_SCRIPTMANAGER_H_
#include "common/singleton.h"
#include "asylum/scene.h"
namespace Asylum {
class ActionList;
struct ActionDefinitions;
struct ActionCommand;
class WorldStats;
class ScriptManager: public Common::Singleton<ScriptManager> {
public:
int processActionList();
void setScript(ActionDefinitions *action);
void setScriptIndex(uint32 index);
ActionDefinitions* getScript() { return _currentScript; }
int checkBarrierFlags(int barrierId);
int setBarrierNextFrame(int barrierId, int barrierFlags);
void processActionListSub02(ActionDefinitions* script, ActionCommand* command, int a4);
void enableActorSub(int actorIndex, int condition);
// FIXME
// Made all the internal control variables public and removed the getter/setter
// pairs for simplicity. This should be refactored later, once the function mapping
// is cleaned up properly
int currentLine;
int currentLoops;
int delayedSceneIndex;
int delayedVideoIndex;
bool allowInput;
bool processing;
int lineIncrement;
bool done;
bool waitCycle;
private:
friend class Common::Singleton<SingletonBaseType>;
ScriptManager();
~ScriptManager();
ActionDefinitions *_currentScript;
friend class Console;
}; // end of class ScriptManager
// opcode functions
int kReturn0(ActionCommand *cmd);
int kSetGameFlag(ActionCommand *cmd);
int kClearGameFlag(ActionCommand *cmd);
int kToggleGameFlag(ActionCommand *cmd);
int kJumpIfGameFlag(ActionCommand *cmd);
int kHideCursor(ActionCommand *cmd);
int kShowCursor(ActionCommand *cmd);
int kPlayAnimation(ActionCommand *cmd);
int kMoveScenePosition(ActionCommand *cmd);
int kHideActor(ActionCommand *cmd);
int kShowActor(ActionCommand *cmd);
int kSetActorStats(ActionCommand *cmd);
int kSetSceneMotionStat(ActionCommand *cmd);
int kDisableActor(ActionCommand *cmd);
int kEnableActor(ActionCommand *cmd);
int kEnableBarriers(ActionCommand *cmd);
int kReturn(ActionCommand *cmd);
int kDestroyBarrier(ActionCommand *cmd);
int k_unk12_JMP_WALK_ACTOR(ActionCommand *cmd);
int k_unk13_JMP_WALK_ACTOR(ActionCommand *cmd);
int k_unk14_JMP_WALK_ACTOR(ActionCommand *cmd);
int k_unk15(ActionCommand *cmd);
int kResetAnimation(ActionCommand *cmd);
int kClearFlag1Bit0(ActionCommand *cmd);
int k_unk18_PLAY_SND(ActionCommand *cmd);
int kJumpIfFlag2Bit0(ActionCommand *cmd);
int kSetFlag2Bit0(ActionCommand *cmd);
int kClearFlag2Bit0(ActionCommand *cmd);
int kJumpIfFlag2Bit2(ActionCommand *cmd);
int kSetFlag2Bit2(ActionCommand *cmd);
int kClearFlag2Bit2(ActionCommand *cmd);
int kJumpIfFlag2Bit1(ActionCommand *cmd);
int kSetFlag2Bit1(ActionCommand *cmd);
int kClearFlag2Bit1(ActionCommand *cmd);
int k_unk22(ActionCommand *cmd);
int k_unk23(ActionCommand *cmd);
int k_unk24(ActionCommand *cmd);
int kRunEncounter(ActionCommand *cmd);
int kJumpIfFlag2Bit4(ActionCommand *cmd);
int kSetFlag2Bit4(ActionCommand *cmd);
int kClearFlag2Bit4(ActionCommand *cmd);
int kSetActorField638(ActionCommand *cmd);
int kJumpIfActorField638(ActionCommand *cmd);
int kChangeScene(ActionCommand *cmd);
int k_unk2C_ActorSub(ActionCommand *cmd);
int kPlayMovie(ActionCommand *cmd);
int kStopAllBarriersSounds(ActionCommand *cmd);
int kSetActionFlag01(ActionCommand *cmd);
int kClearActionFlag01(ActionCommand *cmd);
int kResetSceneRect(ActionCommand *cmd);
int kChangeMusicById(ActionCommand *cmd);
int kStopMusic(ActionCommand *cmd);
int k_unk34_Status(ActionCommand *cmd);
int k_unk35(ActionCommand *cmd);
int k_unk36(ActionCommand *cmd);
int kRunBlowUpPuzzle(ActionCommand *cmd);
int kJumpIfFlag2Bit3(ActionCommand *cmd);
int kSetFlag2Bit3(ActionCommand *cmd);
int kClearFlag2Bit3(ActionCommand *cmd);
int k_unk3B_PALETTE_MOD(ActionCommand *cmd);
int k_unk3C_CMP_VAL(ActionCommand *cmd);
int kWaitUntilFramePlayed(ActionCommand *cmd);
int kUpdateWideScreen(ActionCommand *cmd);
int k_unk3F(ActionCommand *cmd);
int k_unk40_SOUND(ActionCommand *cmd);
int kPlaySpeech(ActionCommand *cmd);
int k_unk42(ActionCommand *cmd);
int k_unk43(ActionCommand *cmd);
int kPaletteFade(ActionCommand *cmd);
int kStartPaletteFadeThread(ActionCommand *cmd);
int k_unk46(ActionCommand *cmd);
int kActorFaceObject(ActionCommand *cmd);
int k_unk48_MATTE_01(ActionCommand *cmd);
int k_unk49_MATTE_90(ActionCommand *cmd);
int kJumpIfSoundPlaying(ActionCommand *cmd);
int kChangePlayerCharacterIndex(ActionCommand *cmd);
int kChangeActorField40(ActionCommand *cmd);
int kStopSound(ActionCommand *cmd);
int k_unk4E_RANDOM_COMMAND(ActionCommand *cmd);
int kClearScreen(ActionCommand *cmd);
int kQuit(ActionCommand *cmd);
int kJumpBarrierFrame(ActionCommand *cmd);
int k_unk52(ActionCommand *cmd);
int k_unk53(ActionCommand *cmd);
int k_unk54_SET_ACTIONLIST_6EC(ActionCommand *cmd);
int k_unk55(ActionCommand *cmd);
int k_unk56(ActionCommand *cmd);
int kSetResourcePalette(ActionCommand *cmd);
int kSetBarrierFrameIdxFlaged(ActionCommand *cmd);
int k_unk59(ActionCommand *cmd);
int k_unk5A(ActionCommand *cmd);
int k_unk5B(ActionCommand *cmd);
int k_unk5C(ActionCommand *cmd);
int k_unk5D(ActionCommand *cmd);
int k_unk5E(ActionCommand *cmd);
int kSetBarrierLastFrameIdx(ActionCommand *cmd);
int k_unk60_SET_OR_CLR_ACTIONAREA_FLAG(ActionCommand *cmd);
int k_unk61(ActionCommand *cmd);
int k_unk62_SHOW_OPTIONS_SCREEN(ActionCommand *cmd);
int k_unk63(ActionCommand *cmd);
#define ScriptMan (::Asylum::ScriptManager::instance())
} // end of namespace Asylum
#endif