Made follower pokemon inactive on vanilla saves.
This commit is contained in:
parent
f970057930
commit
c46f12ed70
@ -1386,6 +1386,7 @@ static bool8 GetAvailableObjectEventId(u16 localId, u8 mapNum, u8 mapGroup, u8 *
|
||||
static void RemoveObjectEvent(struct ObjectEvent *objectEvent)
|
||||
{
|
||||
objectEvent->active = FALSE;
|
||||
objectEvent->extra.asU16 = 0; // zero potential species info
|
||||
RemoveObjectEventInternal(objectEvent);
|
||||
}
|
||||
|
||||
|
||||
@ -13,6 +13,7 @@
|
||||
#include "gba/flash_internal.h"
|
||||
#include "decoration_inventory.h"
|
||||
#include "agb_flash.h"
|
||||
#include "constants/event_objects.h"
|
||||
|
||||
static void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey);
|
||||
|
||||
@ -181,16 +182,26 @@ void SaveObjectEvents(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
|
||||
for (i = 0; i < OBJECT_EVENTS_COUNT; i++) {
|
||||
gSaveBlock1Ptr->objectEvents[i] = gObjectEvents[i];
|
||||
// To avoid crash on vanilla, save follower as inactive
|
||||
if (gObjectEvents[i].localId == OBJ_EVENT_ID_FOLLOWER)
|
||||
gSaveBlock1Ptr->objectEvents[i].active = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void LoadObjectEvents(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
|
||||
for (i = 0; i < OBJECT_EVENTS_COUNT; i++) {
|
||||
gObjectEvents[i] = gSaveBlock1Ptr->objectEvents[i];
|
||||
// Try to restore saved inactive follower
|
||||
if (gObjectEvents[i].localId == OBJ_EVENT_ID_FOLLOWER &&
|
||||
!gObjectEvents[i].active &&
|
||||
gObjectEvents[i].extra.asU16)
|
||||
gObjectEvents[i].active = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
void CopyPartyAndObjectsToSave(void)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user