41 if (x != -1 && y != -1) {
53 debugC(3,
kDebugLevelScriptFuncs,
"KyraEngine_MR::o3_defineObject(%p) (%d, '%s', %d, %d, %d, %d, %d, %d)", (
const void *)script,
70 const bool updateNeed =
stackPos(2) != 0;
75 if (frame >= 0 && frame != 87)
138 const int slot = MAX<int16>(0, MIN<int16>(10,
stackPos(0)));
208 for (
int i = 0; i < 10; ++i) {
220 for (
int i = 0; i < 10; ++i) {
302 const bool allItems = (
stackPos(2) != 0);
306 for (
int i = 0; i < 50; ++i) {
373 if (x >= x1 && x <= x2 && y >= y1 &&
y <= y2)
575 for (
int i = 0; i < 4; ++i) {
614 anim.
x = anim.
x2 + (anim.
width >> 1);
632 for (
int i = 0; i < 10; ++i) {
644 for (
int i = 0; i < 50; ++i) {
740 for (
int i = 100; i <= 107; ++i) {
747 for (
int i = 110; i <= 113; ++i) {
779 if (keys == 198 || keys == 199) {
780 if (
_mouseX >= 15 && _mouseX <= 104 && _mouseY >= 170 &&
_mouseY <= 186) {
783 }
else if (
_mouseX >= 115 && _mouseX <= 204 && _mouseY >= 170 &&
_mouseY <= 186) {
786 }
else if (
_mouseX >= 214 && _mouseX <= 303 && _mouseY >= 170 &&
_mouseY <= 186) {
801 debugC(3,
kDebugLevelScriptFuncs,
"KyraEngine_MR::o3_blockOutWalkableRegion(%p) (%d, %d, %d, %d)", (
const void *)script,
stackPos(0),
stackPos(1),
stackPos(2),
stackPos(3));
843 debugC(3,
kDebugLevelScriptFuncs,
"KyraEngine_MR::o3_defineSceneAnim(%p) (%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, '%s')",
903 memset(&data, 0,
sizeof(data));
904 memset(&state, 0,
sizeof(state));
999 debugC(3,
kDebugLevelScriptFuncs,
"KyraEngine_MR::o3_changeChapter(%p) (%d, %d, %d, %d)", (
const void *)script,
stackPos(0),
stackPos(1),
stackPos(2),
stackPos(3));
1009 for (
int i = 0; i < 10; ++i) {
1017 for (
int i = 0; i < 50; ++i) {
1064 debugC(3,
kDebugLevelScriptFuncs,
"KyraEngine_MR::o3_setupSceneAnimObject(%p) (%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %s)", (
const void *)script,
1065 stackPos(0),
stackPos(1),
stackPos(2),
stackPos(3),
stackPos(4),
stackPos(5),
stackPos(6),
stackPos(7),
stackPos(8),
stackPos(9),
1087 static const uint8 frameTable[] = {
1088 0x58, 0xD8, 0xD8, 0x98, 0x78, 0x78, 0xB8, 0xB8
1124 #define SetOpcodeTable(x) table = &x; 1125 #define Opcode(x) table->push_back(new OpcodeV3(this, &KyraEngine_MR::x)) 1126 #define OpcodeUnImpl() table->push_back(new OpcodeV3(this, 0)) int o2_disableTimer(EMCState *script)
int o2_setSpecialSceneScriptState(EMCState *script)
int o3_getCharacterFrameFromFacing(EMCState *script)
int o2_addSpecialExit(EMCState *script)
int o2_setTimerCountdown(EMCState *script)
int o2_getCharacterFacing(EMCState *script)
Common::Functor1Mem< EMCState *, int, KyraEngine_MR > OpcodeV3
int o3d_updateAnim(EMCState *script)
int o3_setCharacterFacing(EMCState *script)
int o3_setupSceneAnimObject(EMCState *script)
int o2_getCharacterScene(EMCState *script)
int o3_setConversationState(EMCState *script)
void playVoice(int high, int low)
int o1_showMouse(EMCState *script)
int o3_showSceneStringsMessage(EMCState *script)
#define stackPosString(x)
void addItemToAnimList(int item)
int o3a_setCharacterFrame(EMCState *script)
Common::Array< const Opcode * > _opcodesAnimation
int o3_removeItemSlot(EMCState *script)
bool _specialSceneScriptRunFlag
bool start(EMCState *script, int function)
int findFreeInventorySlot()
int o2_checkForItem(EMCState *script)
int o3_showAlbum(EMCState *script)
int o3_setSceneAnimPosAndFrame(EMCState *script)
int o3_updateSceneAnim(EMCState *script)
int o3_makeSecondChanceSave(EMCState *script)
uint8 * getShapePtr(int index) const
void goodConscienceChat(const char *str, int vocHigh, int vocLow)
int setGameFlag(int flag)
int checkInput(Button *buttonList, bool mainLoop=false, int eventFlag=0x8000)
int o1_setDeathHandler(EMCState *script)
int o3_addItemToCurScene(EMCState *script)
void resetItem(int index)
static const BdfFontData desc
void printText(const char *str, int x, int y, uint8 c0, uint8 c1, uint8 c2)
int o3_showBadConscience(EMCState *script)
int o1_setHandItem(EMCState *script)
void doDialog(int dlgIndex, int funcNum)
int o3_daggerWarning(EMCState *script)
int o1_setMousePos(EMCState *script)
int open(const char *filename, int unk1, Palette *palette)
int o3_disguiseMalcolm(EMCState *script)
int o3_runActorScript(EMCState *script)
void debugC(int level, uint32 debugChannels, const char *s,...)
int o3_setMalcolmPos(EMCState *script)
int o3_customChatFinish(EMCState *script)
int o2_getCharacterX(EMCState *script)
int o1_removeHandItem(EMCState *script)
SceneAnim _sceneAnims[16]
bool isValid(EMCState *script)
debug level for o::_* functions
int o3_countInventoryItemInstances(EMCState *script)
int o3_defineObject(EMCState *script)
int o2_waitForConfirmationClick(EMCState *script)
int o1_queryGameFlag(EMCState *script)
int o3_switchScene(EMCState *script)
bool updateScore(int scoreId, int strId)
Common::Array< const Opcode * > _opcodesDialog
int o3_addItemToInventory(EMCState *script)
int o3a_playSoundEffect(EMCState *script)
int o2_setVocHigh(EMCState *script)
void playStudioSFX(const char *str)
int o3_drawSceneShapeOnPage(EMCState *script)
int o3_stopMusic(EMCState *script)
int resetGameFlag(int flag)
int o3_showSceneFileMessage(EMCState *script)
int o3_setMalcolmsMood(EMCState *script)
static bool shouldQuit()
Return whether the ENGINE should quit respectively should return to the launcher. ...
int o2_getVocHigh(EMCState *script)
int o2_delay(EMCState *script)
int o3_objectChat(EMCState *script)
void changeChapter(int newChapter, int sceneId, int malcolmShapes, int facing)
void hideGoodConscience()
int o2_getDlgIndex(EMCState *script)
int queryGameFlag(int flag) const
virtual uint32 getMillis(bool skipRecord=false)=0
Get the number of milliseconds since the program was started.
int o2_runAnimationScript(EMCState *script)
bool exists(const char *file, bool errorOutOnFail=false)
int o3_goodConscienceChat(EMCState *script)
int o3_customChat(EMCState *script)
void copyRegion(int x1, int y1, int x2, int y2, int w, int h, int srcPage, int dstPage, int flags=0)
int o3_doDialog(EMCState *script)
void showMessage(const char *string, uint8 c0, uint8 c1)
int o3_defineSceneAnim(EMCState *script)
void badConscienceChat(const char *str, int vocHigh, int vocLow)
int o3_drawSceneShape(EMCState *script)
int o3_wipeDownMouseItem(EMCState *script)
int o3_removeItemsFromScene(EMCState *script)
virtual void delayUntil(uint32 timestamp, bool updateGameTimers=false, bool update=false, bool isMainLoop=false)
int o3_badConscienceChat(EMCState *script)
int o1_getRand(EMCState *script)
int o3_hideBadConscience(EMCState *script)
int o3_disableInventory(EMCState *script)
Common::Array< const Opcode * > _opcodes
int o3_countItemInstances(EMCState *script)
int o2_defineScene(EMCState *script)
void flagAnimObjsForRefresh()
Constant for invalid item.
void setupSceneAnimObject(int anim, uint16 flags, int x, int y, int x2, int y2, int w, int h, int unk10, int specialSize, int unk14, int shape, const char *filename)
int o3_changeChapter(EMCState *script)
int o3_setSceneFilename(EMCState *script)
void backUpGfxRect32x32(int x, int y)
void redrawInventory(int page)
int o3_getConversationState(EMCState *script)
int o3_hideGoodConscience(EMCState *script)
int o3_removeInventoryItemInstances(EMCState *script)
void blockOutRegion(int x, int y, int width, int height)
Common::Error saveGameStateIntern(int slot, const char *saveName, const Graphics::Surface *thumbnail)
int resetShapeHeight(uint8 *shape)
int o2_update(EMCState *script)
ItemDefinition * _itemList
void enterNewScene(uint16 scene, int facing, int unk1, int unk2, int unk3)
int o2_defineItem(EMCState *script)
int o2a_setAnimationShapes(EMCState *script)
This is the namespace of the Kyra engine.
int o3_dialogEndScript(EMCState *script)
int o2_trySceneChange(EMCState *script)
void dialogEndScript(int object)
int o2_setDlgIndex(EMCState *script)
void loadCharacterShapes(int newShapes)
void delay(uint32 time, bool update=false, bool isMainLoop=false)
int setNewShapeHeight(uint8 *shape, int height)
int o2_setHiddenItemsEntry(EMCState *script)
void copyRegionToBuffer(int pageNum, int x, int y, int w, int h, uint8 *dest)
int o3_blockOutWalkableRegion(EMCState *script)
void dialogStartScript(int object, int funcNum)
int o3_resetInventory(EMCState *script)
void updateSceneAnim(int anim, int newFrame)
int o2_setSpecialSceneScriptRunTime(EMCState *script)
Functor object for an unary class member function.
int o3_checkInRect(EMCState *script)
int o3_removeItemInstances(EMCState *script)
int o1_setGameFlag(EMCState *script)
WSAMovie_v2 * _sceneAnimMovie[16]
int o3_npcChatSequence(EMCState *script)
void refreshAnimObjectsIfNeed()
int o3_enterNewScene(EMCState *script)
int o2a_setResetFrame(EMCState *script)
static const uint8 _characterFrameTable[]
bool run(EMCState *script)
Common::Functor1< EMCState *, int > Opcode
int o3_updateScore(EMCState *script)
void npcChatSequence(const char *str, int object, int vocHigh, int vocLow)
int o2_getCharacterY(EMCState *script)
int o3_removeSceneAnimObject(EMCState *script)
bool load(const char *filename, EMCData *data, const Common::Array< const Opcode *> *opcodes)
int o3_refreshCharacter(EMCState *script)
int o2_randomSceneChat(EMCState *script)
virtual void drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int sd, int flags,...)
void unload(EMCData *data)
signed char * fill(signed char *first, signed char *last, Value val)
int o3_setSceneDim(EMCState *script)
void objectChatInit(const char *text, int object, int vocHigh, int vocLow)
int o3_playSoundEffect(EMCState *script)
int o3_dummy(EMCState *script)
int o3_setCharacterPos(EMCState *script)
void showGoodConscience()
#define SetOpcodeTable(x)
int o3_getInventorySlot(EMCState *script)
uint8 * getTableEntry(uint8 *buffer, int id)
void restoreGfxRect32x32(int x, int y)
int getCenterStringX(const char *str, int x1, int x2)
void deleteItemAnimEntry(int item)
int o3d_delay(EMCState *script)
int o2_enableTimer(EMCState *script)
SceneShapeDesc _sceneShapeDescs[20]
int o2_moveCharacter(EMCState *script)
int o2_setCharacterFacingOverwrite(EMCState *script)
int o3_getMalcolmShapes(EMCState *script)
int o3_dialogStartScript(EMCState *script)
int o3_showGoodConscience(EMCState *script)
int o3_getScore(EMCState *script)
int o2_clearSpecialSceneScriptState(EMCState *script)
int o2_getShapeFlag1(EMCState *script)
int o1_hideMouse(EMCState *script)
void drawFilledBox(int x1, int y1, int x2, int y2, uint8 c1, uint8 c2, uint8 c3)
int o3_enableInventory(EMCState *script)
int o1_resetGameFlag(EMCState *script)
int8 _conversationState[30][30]
void copyBlockToPage(int pageNum, int x, int y, int w, int h, const uint8 *src)
int o3_setCharacterAnimFrameFromFacing(EMCState *script)
int o3_setInventorySlot(EMCState *script)
int o2_getHiddenItemsEntry(EMCState *script)
int o2_defineRoomEntrance(EMCState *script)
void removeSceneAnimObject(int anim, int refresh)
int o1_playWanderScoreViaMap(EMCState *script)
int o3_getMalcolmsMood(EMCState *script)
void updateCharacterAnim(int charId)
void init(EMCState *scriptState, const EMCData *data)
int o3_updateConversations(EMCState *script)
int o1_getMouseState(EMCState *script)
int o2_querySpecialSceneScriptState(EMCState *script)
void updateCharPal(int unk1)
void objectChat(const char *text, int object, int vocHigh, int vocLow)
void snd_playSoundEffect(int item, int volume)
TalkObject * _talkObjectList