mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-09 21:25:42 -05:00
add FREE_MYSTERY_EVENT_BUFFERS functionality
This commit is contained in:
parent
230195b036
commit
a9eb83c4e5
|
|
@ -852,7 +852,9 @@ struct SaveBlock1
|
|||
#endif //FREE_MYSTERY_GIFT
|
||||
/*0x????*/ u8 dexSeen[DEX_FLAGS_NO];
|
||||
u8 dexCaught[DEX_FLAGS_NO];
|
||||
#if FREE_MYSTERY_EVENT_BUFFERS == FALSE
|
||||
/*0x361C*/ struct RamScript ramScript;
|
||||
#endif //FREE_MYSTERY_EVENT_BUFFERS
|
||||
/*0x3A08*/ struct RecordMixingGift recordMixingGift; // unused
|
||||
/*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x3A54*/ struct FameCheckerSaveData fameChecker[NUM_FAMECHECKER_PERSONS];
|
||||
|
|
|
|||
24
src/script.c
24
src/script.c
|
|
@ -494,16 +494,23 @@ void TryRunOnWarpIntoMapScript(void)
|
|||
|
||||
u32 CalculateRamScriptChecksum(void)
|
||||
{
|
||||
#if FREE_MYSTERY_EVENT_BUFFERS == FALSE
|
||||
return CalcCRC16WithTable((u8 *)(&gSaveBlock1Ptr->ramScript.data), sizeof(gSaveBlock1Ptr->ramScript.data));
|
||||
#else
|
||||
return 0;
|
||||
#endif //FREE_MYSTERY_EVENT_BUFFERS
|
||||
}
|
||||
|
||||
void ClearRamScript(void)
|
||||
{
|
||||
#if FREE_MYSTERY_EVENT_BUFFERS == FALSE
|
||||
CpuFill32(0, &gSaveBlock1Ptr->ramScript, sizeof(struct RamScript));
|
||||
#endif //FREE_MYSTERY_EVENT_BUFFERS
|
||||
}
|
||||
|
||||
bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId)
|
||||
{
|
||||
#if FREE_MYSTERY_EVENT_BUFFERS == FALSE
|
||||
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
||||
|
||||
ClearRamScript();
|
||||
|
|
@ -518,10 +525,14 @@ bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objec
|
|||
memcpy(scriptData->script, script, scriptSize);
|
||||
gSaveBlock1Ptr->ramScript.checksum = CalculateRamScriptChecksum();
|
||||
return TRUE;
|
||||
#else
|
||||
return FALSE;
|
||||
#endif //FREE_MYSTERY_EVENT_BUFFERS
|
||||
}
|
||||
|
||||
const u8 *GetRamScript(u8 objectId, const u8 *script)
|
||||
{
|
||||
#if FREE_MYSTERY_EVENT_BUFFERS == FALSE
|
||||
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
||||
gRamScriptRetAddr = NULL;
|
||||
if (scriptData->magic != RAM_SCRIPT_MAGIC)
|
||||
|
|
@ -542,10 +553,14 @@ const u8 *GetRamScript(u8 objectId, const u8 *script)
|
|||
gRamScriptRetAddr = script;
|
||||
return scriptData->script;
|
||||
}
|
||||
#else
|
||||
return script;
|
||||
#endif //FREE_MYSTERY_EVENT_BUFFERS
|
||||
}
|
||||
|
||||
bool32 ValidateRamScript(void)
|
||||
{
|
||||
#if FREE_MYSTERY_EVENT_BUFFERS == FALSE
|
||||
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
||||
if (scriptData->magic != RAM_SCRIPT_MAGIC)
|
||||
return FALSE;
|
||||
|
|
@ -558,10 +573,14 @@ bool32 ValidateRamScript(void)
|
|||
if (CalculateRamScriptChecksum() != gSaveBlock1Ptr->ramScript.checksum)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
#else
|
||||
return FALSE;
|
||||
#endif //FREE_MYSTERY_EVENT_BUFFERS
|
||||
}
|
||||
|
||||
u8 *GetSavedRamScriptIfValid(void)
|
||||
{
|
||||
#if FREE_MYSTERY_EVENT_BUFFERS == FALSE
|
||||
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
||||
if (!ValidateSavedWonderCard())
|
||||
return NULL;
|
||||
|
|
@ -582,13 +601,18 @@ u8 *GetSavedRamScriptIfValid(void)
|
|||
{
|
||||
return scriptData->script;
|
||||
}
|
||||
#else
|
||||
return NULL;
|
||||
#endif //FREE_MYSTERY_EVENT_BUFFERS
|
||||
}
|
||||
|
||||
void InitRamScript_NoObjectEvent(u8 *script, u16 scriptSize)
|
||||
{
|
||||
#if FREE_MYSTERY_EVENT_BUFFERS == FALSE
|
||||
if (scriptSize > sizeof(gSaveBlock1Ptr->ramScript.data.script))
|
||||
scriptSize = sizeof(gSaveBlock1Ptr->ramScript.data.script);
|
||||
InitRamScript(script, scriptSize, MAP_GROUP(UNDEFINED), MAP_NUM(UNDEFINED), 0xFF);
|
||||
#endif //FREE_MYSTERY_EVENT_BUFFERS
|
||||
}
|
||||
|
||||
bool8 LoadTrainerObjectScript(void)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user