diff options
author | YamaArashi <shadow962@live.com> | 2016-09-22 01:12:41 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-09-22 01:12:41 -0700 |
commit | 775e8544b3acffa3e95932cef723d0a72f26e22d (patch) | |
tree | 439642edad3e9dcb753d69e4c62997c1a090735b /src/script.c | |
parent | 7d57a4fc2384faa07e82112cf530aef2beb8869d (diff) |
clean up RAM script code
Diffstat (limited to 'src/script.c')
-rw-r--r-- | src/script.c | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/src/script.c b/src/script.c index eb6750899..e4be0442e 100644 --- a/src/script.c +++ b/src/script.c @@ -2,15 +2,17 @@ #include "script.h" #include "fieldmap.h" +#define RAM_SCRIPT_MAGIC 51 + extern u16 VarGet(u16); extern u8 *gUnknown_0202E8AC; extern u32 gUnknown_0202E8B0; -extern u8 sScriptContext1Status; // 0x30005B0 -extern struct ScriptContext sScriptContext1; // 0x30005B8 -extern struct ScriptContext sScriptContext2; // 0x3000630 -extern bool8 sScriptContext2Enabled; // 0x30006A4 +extern u8 sScriptContext1Status; +extern struct ScriptContext sScriptContext1; +extern struct ScriptContext sScriptContext2; +extern bool8 sScriptContext2Enabled; extern ScrCmdFunc gScriptCmdTable[]; extern ScrCmdFunc gScriptCmdTableEnd[]; @@ -331,39 +333,39 @@ void ClearRamScript(void) CpuFill32(0, &gSaveBlock1.ramScript, sizeof(struct RamScript)); } -bool8 InitRamScript(u8 *a1, u16 a2, u8 a3, u8 a4, u8 a5) +bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId) { struct RamScriptData *scriptData = &gSaveBlock1.ramScript.data; ClearRamScript(); - if (a2 > 995) + if (scriptSize > sizeof(scriptData->script)) return FALSE; - scriptData->magic = 51; - scriptData->mapGroup = a3; - scriptData->mapNum = a4; - scriptData->objectId = a5; - memcpy(scriptData->script, a1, a2); + scriptData->magic = RAM_SCRIPT_MAGIC; + scriptData->mapGroup = mapGroup; + scriptData->mapNum = mapNum; + scriptData->objectId = objectId; + memcpy(scriptData->script, script, scriptSize); gSaveBlock1.ramScript.checksum = CalculateRamScriptChecksum(); return TRUE; } -u8 *GetRamScript(u8 a1, u8 *a2) +u8 *GetRamScript(u8 objectId, u8 *script) { struct RamScriptData *scriptData = &gSaveBlock1.ramScript.data; gUnknown_0202E8AC = 0; - if (scriptData->magic == 51 + if (scriptData->magic == RAM_SCRIPT_MAGIC && scriptData->mapGroup == gSaveBlock1.location.mapGroup && scriptData->mapNum == gSaveBlock1.location.mapNum - && scriptData->objectId == a1) + && scriptData->objectId == objectId) { if (CalculateRamScriptChecksum() == gSaveBlock1.ramScript.checksum) { - gUnknown_0202E8AC = a2; + gUnknown_0202E8AC = script; return scriptData->script; } ClearRamScript(); } - return a2; + return script; } |