remove 1000ish bytes with ramscript (thx griffinR for advice)
This commit is contained in:
parent
741f62fc0b
commit
ef6c4ddbb1
2 changed files with 27 additions and 1 deletions
|
@ -15,7 +15,7 @@
|
|||
#define FREE_EXTRA_SEEN_FLAGS //free up extra pokedex seen flags. Frees up 104 bytes
|
||||
#define FREE_FIELD_3598 //frees up unused saveblock data. 384 bytes
|
||||
#define FREE_TRAINER_HILL //frees up trainer hill data. 28 bytes
|
||||
#define FREE_MYSTERY_EVENT_BUFFERS //frees up mystery event. 876 bytes
|
||||
#define FREE_MYSTERY_EVENT_BUFFERS //frees up mystery event and ramScript. roughly 1880 bytes
|
||||
#define FREE_MATCH_CALL //frees up match call data. 104 bytes
|
||||
#define FREE_UNION_ROOM_CHAT //frees up field unk3C88. 210 bytes
|
||||
#define FREE_ENIGMA_BERRY //frees up enigma berry. 52 bytes
|
||||
|
@ -1072,7 +1072,9 @@ struct SaveBlock1
|
|||
#ifndef FREE_TRAINER_HILL
|
||||
/*0x3718*/ u32 trainerHillTimes[4]; //16 bytes
|
||||
#endif
|
||||
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||
/*0x3728*/ struct RamScript ramScript;
|
||||
#endif
|
||||
/*0x3B14*/ struct RecordMixingGift recordMixingGift;
|
||||
#ifndef FREE_EXTRA_SEEN_FLAGS
|
||||
/*0x3B24*/ u8 seen2[DEX_FLAGS_NO]; //52 bytes
|
||||
|
|
24
src/script.c
24
src/script.c
|
@ -348,16 +348,23 @@ void TryRunOnWarpIntoMapScript(void)
|
|||
|
||||
u32 CalculateRamScriptChecksum(void)
|
||||
{
|
||||
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||
return CalcCRC16WithTable((u8*)(&gSaveBlock1Ptr->ramScript.data), sizeof(gSaveBlock1Ptr->ramScript.data));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
void ClearRamScript(void)
|
||||
{
|
||||
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||
CpuFill32(0, &gSaveBlock1Ptr->ramScript, sizeof(struct RamScript));
|
||||
#endif
|
||||
}
|
||||
|
||||
bool8 InitRamScript(const u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId)
|
||||
{
|
||||
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
||||
|
||||
ClearRamScript();
|
||||
|
@ -372,10 +379,14 @@ bool8 InitRamScript(const u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8
|
|||
memcpy(scriptData->script, script, scriptSize);
|
||||
gSaveBlock1Ptr->ramScript.checksum = CalculateRamScriptChecksum();
|
||||
return TRUE;
|
||||
#else
|
||||
return FALSE;
|
||||
#endif
|
||||
}
|
||||
|
||||
const u8 *GetRamScript(u8 objectId, const u8 *script)
|
||||
{
|
||||
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
||||
gRamScriptRetAddr = NULL;
|
||||
if (scriptData->magic != RAM_SCRIPT_MAGIC)
|
||||
|
@ -396,10 +407,14 @@ const u8 *GetRamScript(u8 objectId, const u8 *script)
|
|||
gRamScriptRetAddr = script;
|
||||
return scriptData->script;
|
||||
}
|
||||
#else
|
||||
return script;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool32 ValidateSavedRamScript(void)
|
||||
{
|
||||
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
||||
if (scriptData->magic != RAM_SCRIPT_MAGIC)
|
||||
return FALSE;
|
||||
|
@ -412,10 +427,14 @@ bool32 ValidateSavedRamScript(void)
|
|||
if (CalculateRamScriptChecksum() != gSaveBlock1Ptr->ramScript.checksum)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
#else
|
||||
return FALSE;
|
||||
#endif
|
||||
}
|
||||
|
||||
u8 *GetSavedRamScriptIfValid(void)
|
||||
{
|
||||
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
||||
if (!ValidateReceivedWonderCard())
|
||||
return NULL;
|
||||
|
@ -436,11 +455,16 @@ u8 *GetSavedRamScriptIfValid(void)
|
|||
{
|
||||
return scriptData->script;
|
||||
}
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
void InitRamScript_NoObjectEvent(u8 *script, u16 scriptSize)
|
||||
{
|
||||
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||
if (scriptSize > sizeof(gSaveBlock1Ptr->ramScript.data.script))
|
||||
scriptSize = sizeof(gSaveBlock1Ptr->ramScript.data.script);
|
||||
InitRamScript(script, scriptSize, 0xFF, 0xFF, 0xFF);
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue