Cleanup scripts.h

See #42
This commit is contained in:
Alexander Batalov 2022-06-19 14:56:00 +03:00
parent 32fdd5d8ef
commit ebee02e196
2 changed files with 107 additions and 154 deletions

View File

@ -17,6 +17,7 @@
#include "game_mouse.h" #include "game_mouse.h"
#include "game_movie.h" #include "game_movie.h"
#include "memory.h" #include "memory.h"
#include "message.h"
#include "object.h" #include "object.h"
#include "party_member.h" #include "party_member.h"
#include "platform_compat.h" #include "platform_compat.h"
@ -33,51 +34,93 @@
#include <string.h> #include <string.h>
#include <time.h> #include <time.h>
#define SCRIPT_LIST_EXTENT_SIZE 16
typedef struct ScriptsListEntry {
char name[16];
int local_vars_num;
} ScriptsListEntry;
typedef struct ScriptListExtent {
Script scripts[SCRIPT_LIST_EXTENT_SIZE];
// Number of scripts in the extent
int length;
struct ScriptListExtent* next;
} ScriptListExtent;
typedef struct ScriptList {
ScriptListExtent* head;
ScriptListExtent* tail;
// Number of extents in the script list.
int length;
int nextScriptId;
} ScriptList;
static Program* scriptsCreateProgramByName(const char* name);
static void _doBkProcesses();
static void _script_chk_critters();
static void _script_chk_timed_events();
static int scriptsClearPendingRequests();
static int scriptLocateProcs(Script* scr);
static int scriptsLoadScriptsList();
static int scriptsFreeScriptsList();
static int scriptsGetFileName(int scriptIndex, char* name);
static int _scr_header_load();
static int scriptWrite(Script* scr, File* stream);
static int scriptListExtentWrite(ScriptListExtent* a1, File* stream);
static int scriptRead(Script* scr, File* stream);
static int scriptListExtentRead(ScriptListExtent* a1, File* stream);
static int scriptGetNewId(int scriptType);
static int scriptsRemoveLocalVars(Script* script);
static Script* scriptGetFirstSpatialScript(int a1);
static Script* scriptGetNextSpatialScript();
static int scriptsGetMessageList(int a1, MessageList** out_message_list);
// 0x50D6B8 // 0x50D6B8
char _Error_2[] = "Error"; static char _Error_2[] = "Error";
// 0x50D6C0 // 0x50D6C0
char byte_50D6C0[] = ""; static char byte_50D6C0[] = "";
// Number of lines in scripts.lst // Number of lines in scripts.lst
// //
// 0x51C6AC // 0x51C6AC
int _num_script_indexes = 0; static int _num_script_indexes = 0;
// 0x51C6B0 // 0x51C6B0
int gScriptsEnumerationScriptIndex = 0; static int gScriptsEnumerationScriptIndex = 0;
// 0x51C6B4 // 0x51C6B4
ScriptListExtent* gScriptsEnumerationScriptListExtent = NULL; static ScriptListExtent* gScriptsEnumerationScriptListExtent = NULL;
// 0x51C6B8 // 0x51C6B8
int gScriptsEnumerationElevation = 0; static int gScriptsEnumerationElevation = 0;
// 0x51C6BC // 0x51C6BC
bool _scr_SpatialsEnabled = true; static bool _scr_SpatialsEnabled = true;
// 0x51C6C0 // 0x51C6C0
ScriptList gScriptLists[SCRIPT_TYPE_COUNT]; static ScriptList gScriptLists[SCRIPT_TYPE_COUNT];
// 0x51C710 // 0x51C710
const char* gScriptsBasePath = "scripts\\"; static const char* gScriptsBasePath = "scripts\\";
// 0x51C714 // 0x51C714
bool gScriptsEnabled = false; static bool gScriptsEnabled = false;
// 0x51C718 // 0x51C718
int _script_engine_run_critters = 0; static int _script_engine_run_critters = 0;
// 0x51C71C // 0x51C71C
int _script_engine_game_mode = 0; static int _script_engine_game_mode = 0;
// Game time in ticks (1/10 second). // Game time in ticks (1/10 second).
// //
// 0x51C720 // 0x51C720
int gGameTime = 302400; static int gGameTime = 302400;
// 0x51C724 // 0x51C724
const int gGameTimeDaysPerMonth[12] = { static const int gGameTimeDaysPerMonth[12] = {
31, // Jan 31, // Jan
28, // Feb 28, // Feb
31, // Mar 31, // Mar
@ -93,7 +136,7 @@ const int gGameTimeDaysPerMonth[12] = {
}; };
// 0x51C758 // 0x51C758
const char* gScriptProcNames[28] = { static const char* gScriptProcNames[28] = {
"no_p_proc", "no_p_proc",
"start", "start",
"spatial_p_proc", "spatial_p_proc",
@ -127,98 +170,98 @@ const char* gScriptProcNames[28] = {
// scripts.lst // scripts.lst
// //
// 0x51C7C8 // 0x51C7C8
ScriptsListEntry* gScriptsListEntries = NULL; static ScriptsListEntry* gScriptsListEntries = NULL;
// 0x51C7CC // 0x51C7CC
int gScriptsListEntriesLength = 0; static int gScriptsListEntriesLength = 0;
// 0x51C7D4 // 0x51C7D4
int _cur_id = 4; static int _cur_id = 4;
// 0x51C7DC // 0x51C7DC
int _count_ = 0; static int _count_ = 0;
// 0x51C7E0 // 0x51C7E0
int _last_time__ = 0; static int _last_time__ = 0;
// 0x51C7E4 // 0x51C7E4
int _last_light_time = 0; static int _last_light_time = 0;
// 0x51C7E8 // 0x51C7E8
Object* _scrQueueTestObj = NULL; static Object* _scrQueueTestObj = NULL;
// 0x51C7EC // 0x51C7EC
int _scrQueueTestValue = 0; static int _scrQueueTestValue = 0;
// 0x51C7F0 // 0x51C7F0
char* _err_str = _Error_2; static char* _err_str = _Error_2;
// 0x51C7F4 // 0x51C7F4
char* _blank_str = byte_50D6C0; static char* _blank_str = byte_50D6C0;
// 0x664954 // 0x664954
unsigned int gScriptsRequests; static unsigned int gScriptsRequests;
// 0x664958 // 0x664958
STRUCT_664980 stru_664958; static STRUCT_664980 stru_664958;
// 0x664980 // 0x664980
STRUCT_664980 stru_664980; static STRUCT_664980 stru_664980;
// 0x6649A8 // 0x6649A8
int gScriptsRequestedElevatorType; static int gScriptsRequestedElevatorType;
// 0x6649AC // 0x6649AC
int gScriptsRequestedElevatorLevel; static int gScriptsRequestedElevatorLevel;
// 0x6649B0 // 0x6649B0
int gScriptsRequestedExplosionTile; static int gScriptsRequestedExplosionTile;
// 0x6649B4 // 0x6649B4
int gScriptsRequestedExplosionElevation; static int gScriptsRequestedExplosionElevation;
// 0x6649B8 // 0x6649B8
int gScriptsRequestedExplosionMinDamage; static int gScriptsRequestedExplosionMinDamage;
// 0x6649BC // 0x6649BC
int gScriptsRequestedExplosionMaxDamage; static int gScriptsRequestedExplosionMaxDamage;
// 0x6649C0 // 0x6649C0
Object* gScriptsRequestedDialogWith; static Object* gScriptsRequestedDialogWith;
// 0x6649C4 // 0x6649C4
Object* gScriptsRequestedLootingBy; static Object* gScriptsRequestedLootingBy;
// 0x6649C8 // 0x6649C8
Object* gScriptsRequestedLootingFrom; static Object* gScriptsRequestedLootingFrom;
// 0x6649CC // 0x6649CC
Object* gScriptsRequestedStealingBy; static Object* gScriptsRequestedStealingBy;
// 0x6649D0 // 0x6649D0
Object* gScriptsRequestedStealingFrom; static Object* gScriptsRequestedStealingFrom;
// 0x6649D4 // 0x6649D4
MessageList _script_dialog_msgs[1450]; static MessageList _script_dialog_msgs[1450];
// scr.msg // scr.msg
// //
// 0x667724 // 0x667724
MessageList gScrMessageList; static MessageList gScrMessageList;
// time string (h:ss) // time string (h:ss)
// //
// 0x66772C // 0x66772C
char _hour_str[7]; static char _hour_str[7];
// 0x667748 // 0x667748
int _lasttime; static int _lasttime;
// 0x66774C // 0x66774C
bool _set; static bool _set;
// 0x667750 // 0x667750
char _tempStr1[20]; static char _tempStr1[20];
// TODO: Make unsigned. // TODO: Make unsigned.
// //
@ -600,7 +643,7 @@ int scriptSetActionBeingUsed(int sid, int value)
} }
// 0x4A3B74 // 0x4A3B74
Program* scriptsCreateProgramByName(const char* name) static Program* scriptsCreateProgramByName(const char* name)
{ {
char path[COMPAT_MAX_PATH]; char path[COMPAT_MAX_PATH];
@ -613,7 +656,7 @@ Program* scriptsCreateProgramByName(const char* name)
} }
// 0x4A3C2C // 0x4A3C2C
void _doBkProcesses() static void _doBkProcesses()
{ {
if (!_set) { if (!_set) {
_lasttime = _get_bk_time(); _lasttime = _get_bk_time();
@ -644,7 +687,7 @@ void _doBkProcesses()
} }
// 0x4A3CA0 // 0x4A3CA0
void _script_chk_critters() static void _script_chk_critters()
{ {
if (!_gdialogActive() && !isInCombat()) { if (!_gdialogActive() && !isInCombat()) {
ScriptList* scriptList; ScriptList* scriptList;
@ -687,7 +730,7 @@ void _script_chk_critters()
// TODO: Check. // TODO: Check.
// //
// 0x4A3D84 // 0x4A3D84
void _script_chk_timed_events() static void _script_chk_timed_events()
{ {
int v0 = _get_bk_time(); int v0 = _get_bk_time();
@ -817,7 +860,7 @@ int scriptEventProcess(Object* obj, void* data)
} }
// 0x4A3F80 // 0x4A3F80
int scriptsClearPendingRequests() static int scriptsClearPendingRequests()
{ {
gScriptsRequests = 0; gScriptsRequests = 0;
return 0; return 0;
@ -1269,7 +1312,7 @@ int scriptExecProc(int sid, int proc)
// Locate built-in procs for given script. // Locate built-in procs for given script.
// //
// 0x4A49D0 // 0x4A49D0
int scriptLocateProcs(Script* script) static int scriptLocateProcs(Script* script)
{ {
for (int proc = 0; proc < SCRIPT_PROC_COUNT; proc++) { for (int proc = 0; proc < SCRIPT_PROC_COUNT; proc++) {
int index = programFindProcedure(script->program, gScriptProcNames[proc]); int index = programFindProcedure(script->program, gScriptProcNames[proc]);
@ -1295,7 +1338,7 @@ bool scriptHasProc(int sid, int proc)
} }
// 0x4A4D50 // 0x4A4D50
int scriptsLoadScriptsList() static int scriptsLoadScriptsList()
{ {
char path[COMPAT_MAX_PATH]; char path[COMPAT_MAX_PATH];
sprintf(path, "%s%s", "scripts\\", "scripts.lst"); sprintf(path, "%s%s", "scripts\\", "scripts.lst");
@ -1346,7 +1389,7 @@ int scriptsLoadScriptsList()
// NOTE: Inlined. // NOTE: Inlined.
// //
// 0x4A4EFC // 0x4A4EFC
int scriptsFreeScriptsList() static int scriptsFreeScriptsList()
{ {
if (gScriptsListEntries != NULL) { if (gScriptsListEntries != NULL) {
internal_free(gScriptsListEntries); internal_free(gScriptsListEntries);
@ -1372,7 +1415,7 @@ int _scr_find_str_run_info(int scriptIndex, int* a2, int sid)
} }
// 0x4A4F68 // 0x4A4F68
int scriptsGetFileName(int scriptIndex, char* name) static int scriptsGetFileName(int scriptIndex, char* name)
{ {
sprintf(name, "%s.int", gScriptsListEntries[scriptIndex].name); sprintf(name, "%s.int", gScriptsListEntries[scriptIndex].name);
return 0; return 0;
@ -1668,7 +1711,7 @@ int scriptsSkipGameGlobalVars(File* stream)
} }
// 0x4A5490 // 0x4A5490
int _scr_header_load() static int _scr_header_load()
{ {
_num_script_indexes = 0; _num_script_indexes = 0;
@ -1709,7 +1752,7 @@ int _scr_header_load()
} }
// 0x4A5590 // 0x4A5590
int scriptWrite(Script* scr, File* stream) static int scriptWrite(Script* scr, File* stream)
{ {
if (fileWriteInt32(stream, scr->sid) == -1) return -1; if (fileWriteInt32(stream, scr->sid) == -1) return -1;
if (fileWriteInt32(stream, scr->field_4) == -1) return -1; if (fileWriteInt32(stream, scr->field_4) == -1) return -1;
@ -1744,7 +1787,7 @@ int scriptWrite(Script* scr, File* stream)
} }
// 0x4A5704 // 0x4A5704
int scriptListExtentWrite(ScriptListExtent* a1, File* stream) static int scriptListExtentWrite(ScriptListExtent* a1, File* stream)
{ {
for (int index = 0; index < SCRIPT_LIST_EXTENT_SIZE; index++) { for (int index = 0; index < SCRIPT_LIST_EXTENT_SIZE; index++) {
Script* script = &(a1->scripts[index]); Script* script = &(a1->scripts[index]);
@ -1861,7 +1904,7 @@ int scriptSaveAll(File* stream)
} }
// 0x4A5A1C // 0x4A5A1C
int scriptRead(Script* scr, File* stream) static int scriptRead(Script* scr, File* stream)
{ {
int prg; int prg;
@ -1910,7 +1953,7 @@ int scriptRead(Script* scr, File* stream)
} }
// 0x4A5BE8 // 0x4A5BE8
int scriptListExtentRead(ScriptListExtent* scriptExtent, File* stream) static int scriptListExtentRead(ScriptListExtent* scriptExtent, File* stream)
{ {
for (int index = 0; index < SCRIPT_LIST_EXTENT_SIZE; index++) { for (int index = 0; index < SCRIPT_LIST_EXTENT_SIZE; index++) {
Script* scr = &(scriptExtent->scripts[index]); Script* scr = &(scriptExtent->scripts[index]);
@ -2041,7 +2084,7 @@ int scriptGetScript(int sid, Script** scriptPtr)
} }
// 0x4A5ED8 // 0x4A5ED8
int scriptGetNewId(int scriptType) static int scriptGetNewId(int scriptType)
{ {
int scriptId = gScriptLists[scriptType].nextScriptId++; int scriptId = gScriptLists[scriptType].nextScriptId++;
int v1 = scriptType << 24; int v1 = scriptType << 24;
@ -2129,7 +2172,7 @@ int scriptAdd(int* sidPtr, int scriptType)
// scr_remove_local_vars // scr_remove_local_vars
// 0x4A60D4 // 0x4A60D4
int scriptsRemoveLocalVars(Script* script) static int scriptsRemoveLocalVars(Script* script)
{ {
if (script == NULL) { if (script == NULL) {
return -1; return -1;
@ -2345,7 +2388,7 @@ int _scr_remove_all_force()
} }
// 0x4A6524 // 0x4A6524
Script* scriptGetFirstSpatialScript(int elevation) static Script* scriptGetFirstSpatialScript(int elevation)
{ {
gScriptsEnumerationElevation = elevation; gScriptsEnumerationElevation = elevation;
gScriptsEnumerationScriptIndex = 0; gScriptsEnumerationScriptIndex = 0;
@ -2364,7 +2407,7 @@ Script* scriptGetFirstSpatialScript(int elevation)
} }
// 0x4A6564 // 0x4A6564
Script* scriptGetNextSpatialScript() static Script* scriptGetNextSpatialScript()
{ {
ScriptListExtent* scriptListExtent = gScriptsEnumerationScriptListExtent; ScriptListExtent* scriptListExtent = gScriptsEnumerationScriptListExtent;
int scriptIndex = gScriptsEnumerationScriptIndex; int scriptIndex = gScriptsEnumerationScriptIndex;
@ -2577,7 +2620,7 @@ void scriptsExecMapExitProc()
} }
// 0x4A6B64 // 0x4A6B64
int scriptsGetMessageList(int a1, MessageList** messageListPtr) static int scriptsGetMessageList(int a1, MessageList** messageListPtr)
{ {
if (a1 == -1) { if (a1 == -1) {
return -1; return -1;

View File

@ -4,11 +4,8 @@
#include "combat_defs.h" #include "combat_defs.h"
#include "db.h" #include "db.h"
#include "interpreter.h" #include "interpreter.h"
#include "message.h"
#include "obj_types.h" #include "obj_types.h"
#define SCRIPT_LIST_EXTENT_SIZE 16
#define SCRIPT_FLAG_0x01 (0x01) #define SCRIPT_FLAG_0x01 (0x01)
#define SCRIPT_FLAG_0x02 (0x02) #define SCRIPT_FLAG_0x02 (0x02)
#define SCRIPT_FLAG_0x04 (0x04) #define SCRIPT_FLAG_0x04 (0x04)
@ -76,11 +73,6 @@ typedef enum ScriptProc {
SCRIPT_PROC_COUNT, SCRIPT_PROC_COUNT,
} ScriptProc; } ScriptProc;
typedef struct ScriptsListEntry {
char name[16];
int local_vars_num;
} ScriptsListEntry;
typedef struct Script { typedef struct Script {
// scr_id // scr_id
int sid; int sid;
@ -148,69 +140,6 @@ typedef struct Script {
int field_DC; int field_DC;
} Script; } Script;
typedef struct ScriptListExtent {
Script scripts[SCRIPT_LIST_EXTENT_SIZE];
// Number of scripts in the extent
int length;
struct ScriptListExtent* next;
} ScriptListExtent;
typedef struct ScriptList {
ScriptListExtent* head;
ScriptListExtent* tail;
// Number of extents in the script list.
int length;
int nextScriptId;
} ScriptList;
extern char _Error_2[];
extern char byte_50D6C0[];
extern int _num_script_indexes;
extern int gScriptsEnumerationScriptIndex;
extern ScriptListExtent* gScriptsEnumerationScriptListExtent;
extern int gScriptsEnumerationElevation;
extern bool _scr_SpatialsEnabled;
extern ScriptList gScriptLists[SCRIPT_TYPE_COUNT];
extern const char* gScriptsBasePath;
extern bool gScriptsEnabled;
extern int _script_engine_run_critters;
extern int _script_engine_game_mode;
extern int gGameTime;
extern const int gGameTimeDaysPerMonth[12];
extern const char* gScriptProcNames[SCRIPT_PROC_COUNT];
extern ScriptsListEntry* gScriptsListEntries;
extern int gScriptsListEntriesLength;
extern int _cur_id;
extern int _count_;
extern int _last_time__;
extern int _last_light_time;
extern Object* _scrQueueTestObj;
extern int _scrQueueTestValue;
extern char* _err_str;
extern char* _blank_str;
extern unsigned int gScriptsRequests;
extern STRUCT_664980 stru_664958;
extern STRUCT_664980 stru_664980;
extern int gScriptsRequestedElevatorType;
extern int gScriptsRequestedElevatorLevel;
extern int gScriptsRequestedExplosionTile;
extern int gScriptsRequestedExplosionElevation;
extern int gScriptsRequestedExplosionMinDamage;
extern int gScriptsRequestedExplosionMaxDamage;
extern Object* gScriptsRequestedDialogWith;
extern Object* gScriptsRequestedLootingBy;
extern Object* gScriptsRequestedLootingFrom;
extern Object* gScriptsRequestedStealingBy;
extern Object* gScriptsRequestedStealingFrom;
extern MessageList _script_dialog_msgs[1450];
extern MessageList gScrMessageList;
extern char _hour_str[7];
extern int _lasttime;
extern bool _set;
extern char _tempStr1[20];
int gameTimeGetTime(); int gameTimeGetTime();
void gameTimeGetDate(int* monthPtr, int* dayPtr, int* yearPtr); void gameTimeGetDate(int* monthPtr, int* dayPtr, int* yearPtr);
int gameTimeGetHour(); int gameTimeGetHour();
@ -228,17 +157,12 @@ Object* scriptGetSelf(Program* s);
int scriptSetObjects(int sid, Object* source, Object* target); int scriptSetObjects(int sid, Object* source, Object* target);
void scriptSetFixedParam(int a1, int a2); void scriptSetFixedParam(int a1, int a2);
int scriptSetActionBeingUsed(int sid, int a2); int scriptSetActionBeingUsed(int sid, int a2);
Program* scriptsCreateProgramByName(const char* name);
void _doBkProcesses();
void _script_chk_critters();
void _script_chk_timed_events();
void _scrSetQueueTestVals(Object* a1, int a2); void _scrSetQueueTestVals(Object* a1, int a2);
int _scrQueueRemoveFixed(Object* obj, void* data); int _scrQueueRemoveFixed(Object* obj, void* data);
int scriptAddTimerEvent(int sid, int delay, int param); int scriptAddTimerEvent(int sid, int delay, int param);
int scriptEventWrite(File* stream, void* data); int scriptEventWrite(File* stream, void* data);
int scriptEventRead(File* stream, void** dataPtr); int scriptEventRead(File* stream, void** dataPtr);
int scriptEventProcess(Object* obj, void* data); int scriptEventProcess(Object* obj, void* data);
int scriptsClearPendingRequests();
int _scripts_clear_combat_requests(Script* script); int _scripts_clear_combat_requests(Script* script);
int scriptsHandleRequests(); int scriptsHandleRequests();
int _scripts_check_state_in_combat(); int _scripts_check_state_in_combat();
@ -252,12 +176,8 @@ void scriptsRequestEndgame();
int scriptsRequestLooting(Object* a1, Object* a2); int scriptsRequestLooting(Object* a1, Object* a2);
int scriptsRequestStealing(Object* a1, Object* a2); int scriptsRequestStealing(Object* a1, Object* a2);
int scriptExecProc(int sid, int proc); int scriptExecProc(int sid, int proc);
int scriptLocateProcs(Script* scr);
bool scriptHasProc(int sid, int proc); bool scriptHasProc(int sid, int proc);
int scriptsLoadScriptsList();
int scriptsFreeScriptsList();
int _scr_find_str_run_info(int a1, int* a2, int sid); int _scr_find_str_run_info(int a1, int* a2, int sid);
int scriptsGetFileName(int scriptIndex, char* name);
int scriptsSetDudeScript(); int scriptsSetDudeScript();
int scriptsClearDudeScript(); int scriptsClearDudeScript();
int scriptsInit(); int scriptsInit();
@ -274,22 +194,13 @@ void _scr_disable_critters();
int scriptsSaveGameGlobalVars(File* stream); int scriptsSaveGameGlobalVars(File* stream);
int scriptsLoadGameGlobalVars(File* stream); int scriptsLoadGameGlobalVars(File* stream);
int scriptsSkipGameGlobalVars(File* stream); int scriptsSkipGameGlobalVars(File* stream);
int _scr_header_load();
int scriptWrite(Script* scr, File* stream);
int scriptListExtentWrite(ScriptListExtent* a1, File* stream);
int scriptSaveAll(File* stream); int scriptSaveAll(File* stream);
int scriptRead(Script* scr, File* stream);
int scriptListExtentRead(ScriptListExtent* a1, File* stream);
int scriptLoadAll(File* stream); int scriptLoadAll(File* stream);
int scriptGetScript(int sid, Script** script); int scriptGetScript(int sid, Script** script);
int scriptGetNewId(int scriptType);
int scriptAdd(int* sidPtr, int scriptType); int scriptAdd(int* sidPtr, int scriptType);
int scriptsRemoveLocalVars(Script* script);
int scriptRemove(int index); int scriptRemove(int index);
int _scr_remove_all(); int _scr_remove_all();
int _scr_remove_all_force(); int _scr_remove_all_force();
Script* scriptGetFirstSpatialScript(int a1);
Script* scriptGetNextSpatialScript();
void _scr_spatials_enable(); void _scr_spatials_enable();
void _scr_spatials_disable(); void _scr_spatials_disable();
bool scriptsExecSpatialProc(Object* obj, int tile, int elevation); bool scriptsExecSpatialProc(Object* obj, int tile, int elevation);
@ -298,7 +209,6 @@ void scriptsExecMapEnterProc();
void scriptsExecMapUpdateProc(); void scriptsExecMapUpdateProc();
void scriptsExecMapUpdateScripts(int a1); void scriptsExecMapUpdateScripts(int a1);
void scriptsExecMapExitProc(); void scriptsExecMapExitProc();
int scriptsGetMessageList(int a1, MessageList** out_message_list);
char* _scr_get_msg_str(int messageListId, int messageId); char* _scr_get_msg_str(int messageListId, int messageId);
char* _scr_get_msg_str_speech(int messageListId, int messageId, int a3); char* _scr_get_msg_str_speech(int messageListId, int messageId, int a3);
int scriptGetLocalVar(int a1, int a2, int* a3); int scriptGetLocalVar(int a1, int a2, int* a3);