Cleanup interpreter_lib.h

See #42
This commit is contained in:
Alexander Batalov 2022-06-20 07:56:00 +03:00
parent c132b4f350
commit cb921fc9ba
2 changed files with 124 additions and 131 deletions

View File

@ -7,8 +7,75 @@
#include "interpreter_extra.h" #include "interpreter_extra.h"
#include "memory_manager.h" #include "memory_manager.h"
#include "nevs.h" #include "nevs.h"
#include "sound.h"
#include "widget.h" #include "widget.h"
#define INTERPRETER_SOUNDS_LENGTH (32)
#define INTERPRETER_KEY_HANDLER_ENTRIES_LENGTH (256)
typedef struct InterpreterKeyHandlerEntry {
Program* program;
int proc;
} InterpreterKeyHandlerEntry;
static void opFormat(Program* program);
static void opPrint(Program* program);
static void opPrintRect(Program* program);
static void opSetMovieFlags(Program* program);
static void opStopMovie(Program* program);
static void opAddRegionProc(Program* program);
static void opAddRegionRightProc(Program* program);
static void opSayStart(Program* program);
static void opDeleteRegion(Program* program);
static void opCheckRegion(Program* program);
static void opSayStartPos(Program* program);
static void opSayReplyTitle(Program* program);
static void opSayGoToReply(Program* program);
static void opSayGetLastPos(Program* program);
static void opSayQuit(Program* program);
static void opSayMessageTimeout(Program* program);
static void opAddButtonFlag(Program* program);
static void opAddRegionFlag(Program* program);
static void opAddButtonProc(Program* program);
static void opAddButtonRightProc(Program* program);
static void opShowWin(Program* program);
static void opDeleteButton(Program* program);
static void opHideMouse(Program* program);
static void opShowMouse(Program* program);
static void opSetGlobalMouseFunc(Program* Program);
static void opLoadPaletteTable(Program* program);
static void opAddNamedEvent(Program* program);
static void opAddNamedHandler(Program* program);
static void opClearNamed(Program* program);
static void opSignalNamed(Program* program);
static void opAddKey(Program* program);
static void opDeleteKey(Program* program);
static void opSetFont(Program* program);
static void opSetTextFlags(Program* program);
static void opSetTextColor(Program* program);
static void opSayOptionColor(Program* program);
static void opSayReplyColor(Program* program);
static void opSetHighlightColor(Program* program);
static void opSayReplyFlags(Program* program);
static void opSayOptionFlags(Program* program);
static void opSayBorder(Program* program);
static void opSaySetSpacing(Program* program);
static void opSayRestart(Program* program);
static void interpreterSoundCallback(void* userData, int a2);
static int interpreterSoundDelete(int a1);
static int interpreterSoundPlay(char* fileName, int mode);
static int interpreterSoundPause(int value);
static int interpreterSoundRewind(int value);
static int interpreterSoundResume(int value);
static void opSoundPlay(Program* program);
static void opSoundPause(Program* program);
static void opSoundResume(Program* program);
static void opSoundStop(Program* program);
static void opSoundRewind(Program* program);
static void opSoundDelete(Program* program);
static void opSetOneOptPause(Program* program);
static bool _intLibDoInput(int key);
// 0x59D5D0 // 0x59D5D0
Sound* gInterpreterSounds[INTERPRETER_SOUNDS_LENGTH]; Sound* gInterpreterSounds[INTERPRETER_SOUNDS_LENGTH];
@ -34,7 +101,7 @@ int _sayStartingPosition;
// format // format
// 0x461850 // 0x461850
void opFormat(Program* program) static void opFormat(Program* program)
{ {
opcode_t opcode[6]; opcode_t opcode[6];
int data[6]; int data[6];
@ -87,7 +154,7 @@ void opFormat(Program* program)
// print // print
// 0x461A5C // 0x461A5C
void opPrint(Program* program) static void opPrint(Program* program)
{ {
_selectWindowID(program->field_84); _selectWindowID(program->field_84);
@ -113,7 +180,7 @@ void opPrint(Program* program)
// printrect // printrect
// 0x461F1C // 0x461F1C
void opPrintRect(Program* program) static void opPrintRect(Program* program)
{ {
_selectWindowID(program->field_84); _selectWindowID(program->field_84);
@ -158,7 +225,7 @@ void opPrintRect(Program* program)
// movieflags // movieflags
// 0x462584 // 0x462584
void opSetMovieFlags(Program* program) static void opSetMovieFlags(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -174,7 +241,7 @@ void opSetMovieFlags(Program* program)
// stopmovie // stopmovie
// 0x46287C // 0x46287C
void opStopMovie(Program* program) static void opStopMovie(Program* program)
{ {
_windowStopMovie(); _windowStopMovie();
program->flags |= PROGRAM_FLAG_0x40; program->flags |= PROGRAM_FLAG_0x40;
@ -182,7 +249,7 @@ void opStopMovie(Program* program)
// deleteregion // deleteregion
// 0x462890 // 0x462890
void opDeleteRegion(Program* program) static void opDeleteRegion(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -205,7 +272,7 @@ void opDeleteRegion(Program* program)
// checkregion // checkregion
// 0x4629A0 // 0x4629A0
void opCheckRegion(Program* program) static void opCheckRegion(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -227,7 +294,7 @@ void opCheckRegion(Program* program)
// addregionproc // addregionproc
// 0x462C10 // 0x462C10
void opAddRegionProc(Program* program) static void opAddRegionProc(Program* program)
{ {
opcode_t opcode[5]; opcode_t opcode[5];
int data[5]; int data[5];
@ -272,7 +339,7 @@ void opAddRegionProc(Program* program)
// addregionrightproc // addregionrightproc
// 0x462DDC // 0x462DDC
void opAddRegionRightProc(Program* program) static void opAddRegionRightProc(Program* program)
{ {
opcode_t opcode[3]; opcode_t opcode[3];
int data[3]; int data[3];
@ -309,7 +376,7 @@ void opAddRegionRightProc(Program* program)
// saystart // saystart
// 0x4633E4 // 0x4633E4
void opSayStart(Program* program) static void opSayStart(Program* program)
{ {
_sayStartingPosition = 0; _sayStartingPosition = 0;
@ -324,7 +391,7 @@ void opSayStart(Program* program)
// saystartpos // saystartpos
// 0x463430 // 0x463430
void opSayStartPos(Program* program) static void opSayStartPos(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -346,7 +413,7 @@ void opSayStartPos(Program* program)
// sayreplytitle // sayreplytitle
// 0x46349C // 0x46349C
void opSayReplyTitle(Program* program) static void opSayReplyTitle(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -367,7 +434,7 @@ void opSayReplyTitle(Program* program)
// saygotoreply // saygotoreply
// 0x463510 // 0x463510
void opSayGoToReply(Program* program) static void opSayGoToReply(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -388,7 +455,7 @@ void opSayGoToReply(Program* program)
// saygetlastpos // saygetlastpos
// 0x4637EC // 0x4637EC
void opSayGetLastPos(Program* program) static void opSayGetLastPos(Program* program)
{ {
int value = _dialogGetExitPoint(); int value = _dialogGetExitPoint();
programStackPushInt32(program, value); programStackPushInt32(program, value);
@ -397,7 +464,7 @@ void opSayGetLastPos(Program* program)
// sayquit // sayquit
// 0x463810 // 0x463810
void opSayQuit(Program* program) static void opSayQuit(Program* program)
{ {
if (_dialogQuit() != 0) { if (_dialogQuit() != 0) {
programFatalError("Error quitting option."); programFatalError("Error quitting option.");
@ -406,7 +473,7 @@ void opSayQuit(Program* program)
// saymessagetimeout // saymessagetimeout
// 0x463838 // 0x463838
void opSayMessageTimeout(Program* program) static void opSayMessageTimeout(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -425,7 +492,7 @@ void opSayMessageTimeout(Program* program)
// addbuttonflag // addbuttonflag
// 0x463A38 // 0x463A38
void opAddButtonFlag(Program* program) static void opAddButtonFlag(Program* program)
{ {
opcode_t opcode[2]; opcode_t opcode[2];
int data[2]; int data[2];
@ -458,7 +525,7 @@ void opAddButtonFlag(Program* program)
// addregionflag // addregionflag
// 0x463B10 // 0x463B10
void opAddRegionFlag(Program* program) static void opAddRegionFlag(Program* program)
{ {
opcode_t opcode[2]; opcode_t opcode[2];
int data[2]; int data[2];
@ -491,7 +558,7 @@ void opAddRegionFlag(Program* program)
// addbuttonproc // addbuttonproc
// 0x4640DC // 0x4640DC
void opAddButtonProc(Program* program) static void opAddButtonProc(Program* program)
{ {
opcode_t opcode[5]; opcode_t opcode[5];
int data[5]; int data[5];
@ -536,7 +603,7 @@ void opAddButtonProc(Program* program)
// addbuttonrightproc // addbuttonrightproc
// 0x4642A8 // 0x4642A8
void opAddButtonRightProc(Program* program) static void opAddButtonRightProc(Program* program)
{ {
opcode_t opcode[3]; opcode_t opcode[3];
int data[3]; int data[3];
@ -573,7 +640,7 @@ void opAddButtonRightProc(Program* program)
// showwin // showwin
// 0x4643D4 // 0x4643D4
void opShowWin(Program* program) static void opShowWin(Program* program)
{ {
_selectWindowID(program->field_84); _selectWindowID(program->field_84);
_windowDraw(); _windowDraw();
@ -581,7 +648,7 @@ void opShowWin(Program* program)
// deletebutton // deletebutton
// 0x4643E4 // 0x4643E4
void opDeleteButton(Program* program) static void opDeleteButton(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -614,28 +681,28 @@ void opDeleteButton(Program* program)
// hidemouse // hidemouse
// 0x46489C // 0x46489C
void opHideMouse(Program* program) static void opHideMouse(Program* program)
{ {
mouseHideCursor(); mouseHideCursor();
} }
// showmouse // showmouse
// 0x4648A4 // 0x4648A4
void opShowMouse(Program* program) static void opShowMouse(Program* program)
{ {
mouseShowCursor(); mouseShowCursor();
} }
// setglobalmousefunc // setglobalmousefunc
// 0x4649C4 // 0x4649C4
void opSetGlobalMouseFunc(Program* Program) static void opSetGlobalMouseFunc(Program* Program)
{ {
programFatalError("setglobalmousefunc not defined"); programFatalError("setglobalmousefunc not defined");
} }
// loadpalettetable // loadpalettetable
// 0x464ADC // 0x464ADC
void opLoadPaletteTable(Program* program) static void opLoadPaletteTable(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -658,7 +725,7 @@ void opLoadPaletteTable(Program* program)
// addnamedevent // addnamedevent
// 0x464B54 // 0x464B54
void opAddNamedEvent(Program* program) static void opAddNamedEvent(Program* program)
{ {
opcode_t opcode[2]; opcode_t opcode[2];
int data[2]; int data[2];
@ -683,7 +750,7 @@ void opAddNamedEvent(Program* program)
// addnamedhandler // addnamedhandler
// 0x464BE8 // 0x464BE8
void opAddNamedHandler(Program* program) static void opAddNamedHandler(Program* program)
{ {
opcode_t opcode[2]; opcode_t opcode[2];
int data[2]; int data[2];
@ -708,7 +775,7 @@ void opAddNamedHandler(Program* program)
// clearnamed // clearnamed
// 0x464C80 // 0x464C80
void opClearNamed(Program* program) static void opClearNamed(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -727,7 +794,7 @@ void opClearNamed(Program* program)
// signalnamed // signalnamed
// 0x464CE4 // 0x464CE4
void opSignalNamed(Program* program) static void opSignalNamed(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -746,7 +813,7 @@ void opSignalNamed(Program* program)
// addkey // addkey
// 0x464D48 // 0x464D48
void opAddKey(Program* program) static void opAddKey(Program* program)
{ {
opcode_t opcode[2]; opcode_t opcode[2];
int data[2]; int data[2];
@ -785,7 +852,7 @@ void opAddKey(Program* program)
// deletekey // deletekey
// 0x464E24 // 0x464E24
void opDeleteKey(Program* program) static void opDeleteKey(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -815,7 +882,7 @@ void opDeleteKey(Program* program)
// setfont // setfont
// 0x464F18 // 0x464F18
void opSetFont(Program* program) static void opSetFont(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -835,7 +902,7 @@ void opSetFont(Program* program)
// setflags // setflags
// 0x464F84 // 0x464F84
void opSetTextFlags(Program* program) static void opSetTextFlags(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -855,7 +922,7 @@ void opSetTextFlags(Program* program)
// settextcolor // settextcolor
// 0x464FF0 // 0x464FF0
void opSetTextColor(Program* program) static void opSetTextColor(Program* program)
{ {
opcode_t opcode[3]; opcode_t opcode[3];
int data[3]; int data[3];
@ -889,7 +956,7 @@ void opSetTextColor(Program* program)
// sayoptioncolor // sayoptioncolor
// 0x465140 // 0x465140
void opSayOptionColor(Program* program) static void opSayOptionColor(Program* program)
{ {
opcode_t opcode[3]; opcode_t opcode[3];
int data[3]; int data[3];
@ -923,7 +990,7 @@ void opSayOptionColor(Program* program)
// sayreplycolor // sayreplycolor
// 0x465290 // 0x465290
void opSayReplyColor(Program* program) static void opSayReplyColor(Program* program)
{ {
opcode_t opcode[3]; opcode_t opcode[3];
int data[3]; int data[3];
@ -958,7 +1025,7 @@ void opSayReplyColor(Program* program)
// sethighlightcolor // sethighlightcolor
// 0x4653E0 // 0x4653E0
void opSetHighlightColor(Program* program) static void opSetHighlightColor(Program* program)
{ {
opcode_t opcode[3]; opcode_t opcode[3];
int data[3]; int data[3];
@ -992,7 +1059,7 @@ void opSetHighlightColor(Program* program)
// sayreplyflags // sayreplyflags
// 0x465688 // 0x465688
void opSayReplyFlags(Program* program) static void opSayReplyFlags(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -1012,7 +1079,7 @@ void opSayReplyFlags(Program* program)
// sayoptionflags // sayoptionflags
// 0x4656F4 // 0x4656F4
void opSayOptionFlags(Program* program) static void opSayOptionFlags(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -1032,7 +1099,7 @@ void opSayOptionFlags(Program* program)
// sayborder // sayborder
// 0x4658B8 // 0x4658B8
void opSayBorder(Program* program) static void opSayBorder(Program* program)
{ {
opcode_t opcode[2]; opcode_t opcode[2];
int data[2]; int data[2];
@ -1060,7 +1127,7 @@ void opSayBorder(Program* program)
// saysetspacing // saysetspacing
// 0x465FE0 // 0x465FE0
void opSaySetSpacing(Program* program) static void opSaySetSpacing(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -1080,7 +1147,7 @@ void opSaySetSpacing(Program* program)
// sayrestart // sayrestart
// 0x46604C // 0x46604C
void opSayRestart(Program* program) static void opSayRestart(Program* program)
{ {
if (_dialogRestart() != 0) { if (_dialogRestart() != 0) {
programFatalError("Error restarting option"); programFatalError("Error restarting option");
@ -1088,7 +1155,7 @@ void opSayRestart(Program* program)
} }
// 0x466064 // 0x466064
void interpreterSoundCallback(void* userData, int a2) static void interpreterSoundCallback(void* userData, int a2)
{ {
if (a2 == 1) { if (a2 == 1) {
Sound** sound = (Sound**)userData; Sound** sound = (Sound**)userData;
@ -1097,7 +1164,7 @@ void interpreterSoundCallback(void* userData, int a2)
} }
// 0x466070 // 0x466070
int interpreterSoundDelete(int value) static int interpreterSoundDelete(int value)
{ {
if (value == -1) { if (value == -1) {
return 1; return 1;
@ -1125,7 +1192,7 @@ int interpreterSoundDelete(int value)
} }
// 0x466110 // 0x466110
int interpreterSoundPlay(char* fileName, int mode) static int interpreterSoundPlay(char* fileName, int mode)
{ {
int v3 = 1; int v3 = 1;
int v5 = 0; int v5 = 0;
@ -1247,7 +1314,7 @@ err:
} }
// 0x46655C // 0x46655C
int interpreterSoundPause(int value) static int interpreterSoundPause(int value)
{ {
if (value == -1) { if (value == -1) {
return 1; return 1;
@ -1273,7 +1340,7 @@ int interpreterSoundPause(int value)
} }
// 0x4665C8 // 0x4665C8
int interpreterSoundRewind(int value) static int interpreterSoundRewind(int value)
{ {
if (value == -1) { if (value == -1) {
return 1; return 1;
@ -1299,7 +1366,7 @@ int interpreterSoundRewind(int value)
} }
// 0x46662C // 0x46662C
int interpreterSoundResume(int value) static int interpreterSoundResume(int value)
{ {
if (value == -1) { if (value == -1) {
return 1; return 1;
@ -1326,14 +1393,14 @@ int interpreterSoundResume(int value)
// soundplay // soundplay
// 0x466698 // 0x466698
void opSoundPlay(Program* program) static void opSoundPlay(Program* program)
{ {
// TODO: Incomplete. // TODO: Incomplete.
} }
// soundpause // soundpause
// 0x466768 // 0x466768
void opSoundPause(Program* program) static void opSoundPause(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -1351,7 +1418,7 @@ void opSoundPause(Program* program)
// soundresume // soundresume
// 0x4667C0 // 0x4667C0
void opSoundResume(Program* program) static void opSoundResume(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -1369,7 +1436,7 @@ void opSoundResume(Program* program)
// soundstop // soundstop
// 0x466818 // 0x466818
void opSoundStop(Program* program) static void opSoundStop(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -1387,7 +1454,7 @@ void opSoundStop(Program* program)
// soundrewind // soundrewind
// 0x466870 // 0x466870
void opSoundRewind(Program* program) static void opSoundRewind(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -1405,7 +1472,7 @@ void opSoundRewind(Program* program)
// sounddelete // sounddelete
// 0x4668C8 // 0x4668C8
void opSoundDelete(Program* program) static void opSoundDelete(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -1423,7 +1490,7 @@ void opSoundDelete(Program* program)
// SetOneOptPause // SetOneOptPause
// 0x466920 // 0x466920
void opSetOneOptPause(Program* program) static void opSetOneOptPause(Program* program)
{ {
opcode_t opcode = programStackPopInt16(program); opcode_t opcode = programStackPopInt16(program);
int data = programStackPopInt32(program); int data = programStackPopInt32(program);
@ -1478,7 +1545,7 @@ void _intlibClose()
} }
// 0x466A04 // 0x466A04
bool _intLibDoInput(int key) static bool _intLibDoInput(int key)
{ {
if (key < 0 || key >= INTERPRETER_KEY_HANDLER_ENTRIES_LENGTH) { if (key < 0 || key >= INTERPRETER_KEY_HANDLER_ENTRIES_LENGTH) {
return false; return false;

View File

@ -2,85 +2,11 @@
#define INTERPRETER_LIB_H #define INTERPRETER_LIB_H
#include "interpreter.h" #include "interpreter.h"
#include "sound.h"
#define INTERPRETER_SOUNDS_LENGTH (32)
#define INTERPRETER_KEY_HANDLER_ENTRIES_LENGTH (256)
typedef struct InterpreterKeyHandlerEntry {
Program* program;
int proc;
} InterpreterKeyHandlerEntry;
typedef void (*OFF_59E160)(Program*); typedef void (*OFF_59E160)(Program*);
extern Sound* gInterpreterSounds[INTERPRETER_SOUNDS_LENGTH];
extern InterpreterKeyHandlerEntry gInterpreterKeyHandlerEntries[INTERPRETER_KEY_HANDLER_ENTRIES_LENGTH];
extern int gIntepreterAnyKeyHandlerProc;
extern int _numCallbacks;
extern Program* gInterpreterAnyKeyHandlerProgram;
extern OFF_59E160* _callbacks;
extern int _sayStartingPosition;
void opFormat(Program* program);
void opPrint(Program* program);
void opPrintRect(Program* program);
void opSetMovieFlags(Program* program);
void opStopMovie(Program* program);
void opAddRegionProc(Program* program);
void opAddRegionRightProc(Program* program);
void opSayStart(Program* program);
void opDeleteRegion(Program* program);
void opCheckRegion(Program* program);
void opSayStartPos(Program* program);
void opSayReplyTitle(Program* program);
void opSayGoToReply(Program* program);
void opSayGetLastPos(Program* program);
void opSayQuit(Program* program);
void opSayMessageTimeout(Program* program);
void opAddButtonFlag(Program* program);
void opAddRegionFlag(Program* program);
void opAddButtonProc(Program* program);
void opAddButtonRightProc(Program* program);
void opShowWin(Program* program);
void opDeleteButton(Program* program);
void opHideMouse(Program* program);
void opShowMouse(Program* program);
void opSetGlobalMouseFunc(Program* Program);
void opLoadPaletteTable(Program* program);
void opAddNamedEvent(Program* program);
void opAddNamedHandler(Program* program);
void opClearNamed(Program* program);
void opSignalNamed(Program* program);
void opAddKey(Program* program);
void opDeleteKey(Program* program);
void opSetFont(Program* program);
void opSetTextFlags(Program* program);
void opSetTextColor(Program* program);
void opSayOptionColor(Program* program);
void opSayReplyColor(Program* program);
void opSetHighlightColor(Program* program);
void opSayReplyFlags(Program* program);
void opSayOptionFlags(Program* program);
void opSayBorder(Program* program);
void opSaySetSpacing(Program* program);
void opSayRestart(Program* program);
void interpreterSoundCallback(void* userData, int a2);
int interpreterSoundDelete(int a1);
int interpreterSoundPlay(char* fileName, int mode);
int interpreterSoundPause(int value);
int interpreterSoundRewind(int value);
int interpreterSoundResume(int value);
void opSoundPlay(Program* program);
void opSoundPause(Program* program);
void opSoundResume(Program* program);
void opSoundStop(Program* program);
void opSoundRewind(Program* program);
void opSoundDelete(Program* program);
void opSetOneOptPause(Program* program);
void _updateIntLib(); void _updateIntLib();
void _intlibClose(); void _intlibClose();
bool _intLibDoInput(int key);
void _initIntlib(); void _initIntlib();
void _interpretRegisterProgramDeleteCallback(OFF_59E160 fn); void _interpretRegisterProgramDeleteCallback(OFF_59E160 fn);
void _removeProgramReferences_(Program* program); void _removeProgramReferences_(Program* program);