summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2020-02-02 11:23:04 -0500
committerPikalaxALT <PikalaxALT@gmail.com>2020-02-02 11:23:04 -0500
commitceeed6247dbeca94fdb073441b98a885da44ffe1 (patch)
tree93e2c1f0b966e704922a14ca7df62f955a0f2c96
parentba7403c74e214fe798095e99949461aaadd274c7 (diff)
Port object event flags from emerald
-rw-r--r--include/global.fieldmap.h108
-rw-r--r--include/global.h32
-rw-r--r--src/event_object_80688E4.c16
-rw-r--r--src/event_object_lock.c4
-rw-r--r--src/field_fadetransition.c2
-rw-r--r--src/field_specials.c2
-rw-r--r--src/quest_log_objects.c64
-rw-r--r--src/quest_log_player.c2
-rw-r--r--src/vs_seeker.c2
9 files changed, 114 insertions, 118 deletions
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index b7f28d8a0..e0053fe88 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -168,62 +168,58 @@ struct MapHeader
struct ObjectEvent
{
- /*0x00*/ u32 active:1;
- u32 mapobj_bit_1:1;
- u32 mapobj_bit_2:1;
- u32 mapobj_bit_3:1;
- u32 mapobj_bit_4:1;
- u32 mapobj_bit_5:1;
- u32 mapobj_bit_6:1;
- u32 mapobj_bit_7:1;
- /*0x01*/ u32 mapobj_bit_8:1;
- u32 mapobj_bit_9:1;
- u32 mapobj_bit_10:1;
- u32 mapobj_bit_11:1;
- u32 mapobj_bit_12:1;
- u32 mapobj_bit_13:1;
- u32 mapobj_bit_14:1;
- u32 mapobj_bit_15:1;
- /*0x02*/ u32 mapobj_bit_16:1;
- u32 mapobj_bit_17:1;
- u32 mapobj_bit_18:1;
- u32 mapobj_bit_19:1;
- u32 mapobj_bit_20:1;
- u32 mapobj_bit_21:1;
- u32 hasShadow:1;
- u32 mapobj_bit_23:1;
- /*0x03*/ u32 mapobj_bit_24:1;
- u32 mapobj_bit_25:1;
- u32 mapobj_bit_26:1;
- u32 mapobj_bit_27:1;
- u32 mapobj_bit_28:1;
- u32 mapobj_bit_29:1;
- u32 mapobj_bit_30:1;
- u32 mapobj_bit_31:1;
- /*0x04*/ u8 spriteId;
- /*0x05*/ u8 graphicsId;
- /*0x06*/ u8 animPattern;
- /*0x07*/ u8 trainerType;
- /*0x08*/ u8 localId;
- /*0x09*/ u8 mapNum;
- /*0x0A*/ u8 mapGroup;
- /*0x0B*/ u8 mapobj_unk_0B_0:4;
- u8 elevation:4;
- /*0x0C*/ struct Coords16 coords1;
- /*0x10*/ struct Coords16 coords2;
- /*0x14*/ struct Coords16 coords3;
- /*0x18*/ u8 facingDirection:4; //current direction?
- /*0x18*/ u8 placeholder18:4;
- /*0x19*/ union ObjectEventRange range;
- /*0x1A*/ u8 mapobj_unk_1A;
- /*0x1B*/ u8 mapobj_unk_1B;
- /*0x1C*/ u8 mapobj_unk_1C;
- /*0x1D*/ u8 trainerRange_berryTreeId;
- /*0x1E*/ u8 mapobj_unk_1E;
- /*0x1F*/ u8 mapobj_unk_1F;
- /*0x20*/ u8 mapobj_unk_20;
- /*0x21*/ u8 mapobj_unk_21;
- /*0x22*/ u8 animId;
+ /*0x00*/ /* 0*/ u32 active:1;
+ /* 1*/ u32 singleMovementActive:1;
+ /* 2*/ u32 triggerGroundEffectsOnMove:1;
+ /* 3*/ u32 triggerGroundEffectsOnStop:1;
+ /* 4*/ u32 disableCoveringGroundEffects:1;
+ /* 5*/ u32 landingJump:1;
+ /* 6*/ u32 heldMovementActive:1;
+ /* 7*/ u32 heldMovementFinished:1;
+ /*0x01*/ /* 8*/ u32 frozen:1;
+ /* 9*/ u32 facingDirectionLocked:1;
+ /*10*/ u32 disableAnim:1;
+ /*11*/ u32 enableAnim:1;
+ /*12*/ u32 inanimate:1;
+ /*13*/ u32 invisible:1;
+ /*14*/ u32 offScreen:1;
+ /*15*/ u32 trackedByCamera:1;
+ /*0x02*/ /*16*/ u32 isPlayer:1;
+ /*17*/ u32 hasReflection:1;
+ /*18*/ u32 inShortGrass:1;
+ /*19*/ u32 inShallowFlowingWater:1;
+ /*20*/ u32 inSandPile:1;
+ /*21*/ u32 inHotSprings:1;
+ /*22*/ u32 hasShadow:1;
+ /*23*/ u32 spriteAnimPausedBackup:1;
+ /*0x03*/ /*24*/ u32 spriteAffineAnimPausedBackup:1;
+ /*25*/ u32 disableJumpLandingGroundEffect:1;
+ /*26*/ u32 fixedPriority:1;
+ /*27*/ u32 hideReflection:1;
+ /*0x04*/ u8 spriteId;
+ /*0x05*/ u8 graphicsId;
+ /*0x06*/ u8 animPattern;
+ /*0x07*/ u8 trainerType;
+ /*0x08*/ u8 localId;
+ /*0x09*/ u8 mapNum;
+ /*0x0A*/ u8 mapGroup;
+ /*0x0B*/ u8 mapobj_unk_0B_0:4;
+ u8 elevation:4;
+ /*0x0C*/ struct Coords16 coords1;
+ /*0x10*/ struct Coords16 coords2;
+ /*0x14*/ struct Coords16 coords3;
+ /*0x18*/ u8 facingDirection:4; //current direction?
+ /*0x18*/ u8 placeholder18:4;
+ /*0x19*/ union ObjectEventRange range;
+ /*0x1A*/ u8 mapobj_unk_1A;
+ /*0x1B*/ u8 mapobj_unk_1B;
+ /*0x1C*/ u8 mapobj_unk_1C;
+ /*0x1D*/ u8 trainerRange_berryTreeId;
+ /*0x1E*/ u8 mapobj_unk_1E;
+ /*0x1F*/ u8 mapobj_unk_1F;
+ /*0x20*/ u8 mapobj_unk_20;
+ /*0x21*/ u8 mapobj_unk_21;
+ /*0x22*/ u8 animId;
/*size = 0x24*/
};
diff --git a/include/global.h b/include/global.h
index 2f87a0c29..a0027f9dc 100644
--- a/include/global.h
+++ b/include/global.h
@@ -591,22 +591,22 @@ union QuestLogMovement
struct QuestLogObjectEvent
{
/*0x00*/ u8 active:1;
- /*0x00*/ u8 mapobj_bit_3:1;
- /*0x00*/ u8 mapobj_bit_4:1;
- /*0x00*/ u8 mapobj_bit_5:1;
- /*0x00*/ u8 mapobj_bit_8:1;
- /*0x00*/ u8 mapobj_bit_9:1;
- /*0x00*/ u8 mapobj_bit_10:1;
- /*0x00*/ u8 mapobj_bit_11:1;
- /*0x01*/ u8 mapobj_bit_12:1;
- /*0x01*/ u8 mapobj_bit_13:1;
- /*0x01*/ u8 mapobj_bit_14:1;
- /*0x01*/ u8 mapobj_bit_15:1;
- /*0x01*/ u8 mapobj_bit_16:1;
- /*0x01*/ u8 mapobj_bit_23:1;
- /*0x01*/ u8 mapobj_bit_24:1;
- /*0x01*/ u8 mapobj_bit_25:1;
- /*0x02*/ u8 mapobj_bit_26:1;
+ /*0x00*/ u8 triggerGroundEffectsOnStop:1;
+ /*0x00*/ u8 disableCoveringGroundEffects:1;
+ /*0x00*/ u8 landingJump:1;
+ /*0x00*/ u8 frozen:1;
+ /*0x00*/ u8 facingDirectionLocked:1;
+ /*0x00*/ u8 disableAnim:1;
+ /*0x00*/ u8 enableAnim:1;
+ /*0x01*/ u8 inanimate:1;
+ /*0x01*/ u8 invisible:1;
+ /*0x01*/ u8 offScreen:1;
+ /*0x01*/ u8 trackedByCamera:1;
+ /*0x01*/ u8 isPlayer:1;
+ /*0x01*/ u8 spriteAnimPausedBackup:1;
+ /*0x01*/ u8 spriteAffineAnimPausedBackup:1;
+ /*0x01*/ u8 disableJumpLandingGroundEffect:1;
+ /*0x02*/ u8 fixedPriority:1;
/*0x02*/ u8 mapobj_unk_18:4;
/*0x02*/ u8 unused_02_5:3;
/*0x03*/ u8 mapobj_unk_0B_0:4;
diff --git a/src/event_object_80688E4.c b/src/event_object_80688E4.c
index 4ce976b6d..133052642 100644
--- a/src/event_object_80688E4.c
+++ b/src/event_object_80688E4.c
@@ -10,11 +10,11 @@ static void DoObjectUnionRoomWarpYDisplacement(struct Sprite * sprite);
bool8 FreezeObjectEvent(struct ObjectEvent * objectEvent)
{
- if (objectEvent->mapobj_bit_6 || objectEvent->mapobj_bit_8)
+ if (objectEvent->heldMovementActive || objectEvent->frozen)
return TRUE;
- objectEvent->mapobj_bit_8 = TRUE;
- objectEvent->mapobj_bit_23 = gSprites[objectEvent->spriteId].animPaused;
- objectEvent->mapobj_bit_24 = gSprites[objectEvent->spriteId].affineAnimPaused;
+ objectEvent->frozen = TRUE;
+ objectEvent->spriteAnimPausedBackup = gSprites[objectEvent->spriteId].animPaused;
+ objectEvent->spriteAffineAnimPausedBackup = gSprites[objectEvent->spriteId].affineAnimPaused;
gSprites[objectEvent->spriteId].animPaused = TRUE;
gSprites[objectEvent->spriteId].affineAnimPaused = TRUE;
return FALSE;
@@ -42,11 +42,11 @@ void FreezeObjectEventsExceptOne(u8 noFreeze)
void UnfreezeObjectEvent(struct ObjectEvent * objectEvent)
{
- if (objectEvent->active && objectEvent->mapobj_bit_8)
+ if (objectEvent->active && objectEvent->frozen)
{
- objectEvent->mapobj_bit_8 = FALSE;
- gSprites[objectEvent->spriteId].animPaused = objectEvent->mapobj_bit_23;
- gSprites[objectEvent->spriteId].affineAnimPaused = objectEvent->mapobj_bit_24;
+ objectEvent->frozen = FALSE;
+ gSprites[objectEvent->spriteId].animPaused = objectEvent->spriteAnimPausedBackup;
+ gSprites[objectEvent->spriteId].affineAnimPaused = objectEvent->spriteAffineAnimPausedBackup;
}
}
diff --git a/src/event_object_lock.c b/src/event_object_lock.c
index e91642aa2..cf500054f 100644
--- a/src/event_object_lock.c
+++ b/src/event_object_lock.c
@@ -51,7 +51,7 @@ void sub_80695CC(u8 taskId)
task->data[0] = 1;
}
- if (task->data[1] == 0 && !gObjectEvents[gSelectedObjectEvent].mapobj_bit_1)
+ if (task->data[1] == 0 && !gObjectEvents[gSelectedObjectEvent].singleMovementActive)
{
FreezeObjectEvent(&gObjectEvents[gSelectedObjectEvent]);
task->data[1] = 1;
@@ -78,7 +78,7 @@ void LockSelectedObjectEvent(void)
FreezeObjectEventsExceptOne(gSelectedObjectEvent);
taskId = CreateTask(sub_80695CC, 80);
- if (!gObjectEvents[gSelectedObjectEvent].mapobj_bit_1)
+ if (!gObjectEvents[gSelectedObjectEvent].singleMovementActive)
{
FreezeObjectEvent(&gObjectEvents[gSelectedObjectEvent]);
gTasks[taskId].data[1] = 1;
diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c
index 0af5f462c..42fe26c91 100644
--- a/src/field_fadetransition.c
+++ b/src/field_fadetransition.c
@@ -850,7 +850,7 @@ static void sub_807EAC4(s16 a0, s16 a1, s16 *a2, s16 *a3, s16 *a4)
(*a4)++;
playerSpr->pos2.x = *a2 >> 5;
playerSpr->pos2.y = *a3 >> 5;
- if (playerObj->mapobj_bit_7)
+ if (playerObj->heldMovementFinished)
{
ObjectEventForceSetSpecialAnim(playerObj, GetStepInPlaceDelay16AnimId(GetPlayerFacingDirection()));
}
diff --git a/src/field_specials.c b/src/field_specials.c
index 57bf53830..bb320d42a 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -316,7 +316,7 @@ void Special_AnimatePcTurnOff()
void SpawnCameraObject(void)
{
u8 objectEventId = SpawnSpecialObjectEventParameterized(OBJECT_EVENT_GFX_YOUNGSTER, 8, 127, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3);
- gObjectEvents[objectEventId].mapobj_bit_13 = TRUE;
+ gObjectEvents[objectEventId].invisible = TRUE;
CameraObjectSetFollowedObjectId(gObjectEvents[objectEventId].spriteId);
}
diff --git a/src/quest_log_objects.c b/src/quest_log_objects.c
index 7917d03e9..aecc5fd68 100644
--- a/src/quest_log_objects.c
+++ b/src/quest_log_objects.c
@@ -14,22 +14,22 @@ void SetQuestLogObjectEventsData(struct QuestLog * questLog)
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
questLog->unk_008[i].active = gObjectEvents[i].active;
- questLog->unk_008[i].mapobj_bit_3 = gObjectEvents[i].mapobj_bit_3;
- questLog->unk_008[i].mapobj_bit_4 = gObjectEvents[i].mapobj_bit_4;
- questLog->unk_008[i].mapobj_bit_5 = gObjectEvents[i].mapobj_bit_5;
- questLog->unk_008[i].mapobj_bit_8 = gObjectEvents[i].mapobj_bit_8;
- questLog->unk_008[i].mapobj_bit_9 = gObjectEvents[i].mapobj_bit_9;
- questLog->unk_008[i].mapobj_bit_10 = gObjectEvents[i].mapobj_bit_10;
- questLog->unk_008[i].mapobj_bit_11 = gObjectEvents[i].mapobj_bit_11;
- questLog->unk_008[i].mapobj_bit_12 = gObjectEvents[i].mapobj_bit_12;
- questLog->unk_008[i].mapobj_bit_13 = gObjectEvents[i].mapobj_bit_13;
- questLog->unk_008[i].mapobj_bit_14 = gObjectEvents[i].mapobj_bit_14;
- questLog->unk_008[i].mapobj_bit_15 = gObjectEvents[i].mapobj_bit_15;
- questLog->unk_008[i].mapobj_bit_16 = gObjectEvents[i].mapobj_bit_16;
- questLog->unk_008[i].mapobj_bit_23 = gObjectEvents[i].mapobj_bit_23;
- questLog->unk_008[i].mapobj_bit_24 = gObjectEvents[i].mapobj_bit_24;
- questLog->unk_008[i].mapobj_bit_25 = gObjectEvents[i].mapobj_bit_25;
- questLog->unk_008[i].mapobj_bit_26 = gObjectEvents[i].mapobj_bit_26;
+ questLog->unk_008[i].triggerGroundEffectsOnStop = gObjectEvents[i].triggerGroundEffectsOnStop;
+ questLog->unk_008[i].disableCoveringGroundEffects = gObjectEvents[i].disableCoveringGroundEffects;
+ questLog->unk_008[i].landingJump = gObjectEvents[i].landingJump;
+ questLog->unk_008[i].frozen = gObjectEvents[i].frozen;
+ questLog->unk_008[i].facingDirectionLocked = gObjectEvents[i].facingDirectionLocked;
+ questLog->unk_008[i].disableAnim = gObjectEvents[i].disableAnim;
+ questLog->unk_008[i].enableAnim = gObjectEvents[i].enableAnim;
+ questLog->unk_008[i].inanimate = gObjectEvents[i].inanimate;
+ questLog->unk_008[i].invisible = gObjectEvents[i].invisible;
+ questLog->unk_008[i].offScreen = gObjectEvents[i].offScreen;
+ questLog->unk_008[i].trackedByCamera = gObjectEvents[i].trackedByCamera;
+ questLog->unk_008[i].isPlayer = gObjectEvents[i].isPlayer;
+ questLog->unk_008[i].spriteAnimPausedBackup = gObjectEvents[i].spriteAnimPausedBackup;
+ questLog->unk_008[i].spriteAffineAnimPausedBackup = gObjectEvents[i].spriteAffineAnimPausedBackup;
+ questLog->unk_008[i].disableJumpLandingGroundEffect = gObjectEvents[i].disableJumpLandingGroundEffect;
+ questLog->unk_008[i].fixedPriority = gObjectEvents[i].fixedPriority;
questLog->unk_008[i].mapobj_unk_18 = gObjectEvents[i].facingDirection;
questLog->unk_008[i].mapobj_unk_0B_0 = gObjectEvents[i].mapobj_unk_0B_0;
questLog->unk_008[i].elevation = gObjectEvents[i].elevation;
@@ -58,22 +58,22 @@ void sub_815A1F8(const struct QuestLog * questLog, const struct ObjectEventTempl
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
gObjectEvents[i].active = questLogObjectEvents[i].active;
- gObjectEvents[i].mapobj_bit_3 = questLogObjectEvents[i].mapobj_bit_3;
- gObjectEvents[i].mapobj_bit_4 = questLogObjectEvents[i].mapobj_bit_4;
- gObjectEvents[i].mapobj_bit_5 = questLogObjectEvents[i].mapobj_bit_5;
- gObjectEvents[i].mapobj_bit_8 = questLogObjectEvents[i].mapobj_bit_8;
- gObjectEvents[i].mapobj_bit_9 = questLogObjectEvents[i].mapobj_bit_9;
- gObjectEvents[i].mapobj_bit_10 = questLogObjectEvents[i].mapobj_bit_10;
- gObjectEvents[i].mapobj_bit_11 = questLogObjectEvents[i].mapobj_bit_11;
- gObjectEvents[i].mapobj_bit_12 = questLogObjectEvents[i].mapobj_bit_12;
- gObjectEvents[i].mapobj_bit_13 = questLogObjectEvents[i].mapobj_bit_13;
- gObjectEvents[i].mapobj_bit_14 = questLogObjectEvents[i].mapobj_bit_14;
- gObjectEvents[i].mapobj_bit_15 = questLogObjectEvents[i].mapobj_bit_15;
- gObjectEvents[i].mapobj_bit_16 = questLogObjectEvents[i].mapobj_bit_16;
- gObjectEvents[i].mapobj_bit_23 = questLogObjectEvents[i].mapobj_bit_23;
- gObjectEvents[i].mapobj_bit_24 = questLogObjectEvents[i].mapobj_bit_24;
- gObjectEvents[i].mapobj_bit_25 = questLogObjectEvents[i].mapobj_bit_25;
- gObjectEvents[i].mapobj_bit_26 = questLogObjectEvents[i].mapobj_bit_26;
+ gObjectEvents[i].triggerGroundEffectsOnStop = questLogObjectEvents[i].triggerGroundEffectsOnStop;
+ gObjectEvents[i].disableCoveringGroundEffects = questLogObjectEvents[i].disableCoveringGroundEffects;
+ gObjectEvents[i].landingJump = questLogObjectEvents[i].landingJump;
+ gObjectEvents[i].frozen = questLogObjectEvents[i].frozen;
+ gObjectEvents[i].facingDirectionLocked = questLogObjectEvents[i].facingDirectionLocked;
+ gObjectEvents[i].disableAnim = questLogObjectEvents[i].disableAnim;
+ gObjectEvents[i].enableAnim = questLogObjectEvents[i].enableAnim;
+ gObjectEvents[i].inanimate = questLogObjectEvents[i].inanimate;
+ gObjectEvents[i].invisible = questLogObjectEvents[i].invisible;
+ gObjectEvents[i].offScreen = questLogObjectEvents[i].offScreen;
+ gObjectEvents[i].trackedByCamera = questLogObjectEvents[i].trackedByCamera;
+ gObjectEvents[i].isPlayer = questLogObjectEvents[i].isPlayer;
+ gObjectEvents[i].spriteAnimPausedBackup = questLogObjectEvents[i].spriteAnimPausedBackup;
+ gObjectEvents[i].spriteAffineAnimPausedBackup = questLogObjectEvents[i].spriteAffineAnimPausedBackup;
+ gObjectEvents[i].disableJumpLandingGroundEffect = questLogObjectEvents[i].disableJumpLandingGroundEffect;
+ gObjectEvents[i].fixedPriority = questLogObjectEvents[i].fixedPriority;
gObjectEvents[i].facingDirection = questLogObjectEvents[i].mapobj_unk_18;
gObjectEvents[i].mapobj_unk_0B_0 = questLogObjectEvents[i].mapobj_unk_0B_0;
gObjectEvents[i].elevation = questLogObjectEvents[i].elevation;
diff --git a/src/quest_log_player.c b/src/quest_log_player.c
index 7665a8a92..0d7a2bb50 100644
--- a/src/quest_log_player.c
+++ b/src/quest_log_player.c
@@ -100,7 +100,7 @@ static void sub_81505C4(u8 taskId)
{
case 0:
ObjectEventClearAnimIfSpecialAnimActive(objectEvent);
- objectEvent->mapobj_bit_11 = TRUE;
+ objectEvent->enableAnim = TRUE;
sub_81507BC(objectEvent, sub_805C808(4));
StartSpriteAnim(sprite, sub_80634F0(objectEvent->facingDirection));
gTasks[taskId].data[0]++;
diff --git a/src/vs_seeker.c b/src/vs_seeker.c
index b35b6143e..c0f53d5c2 100644
--- a/src/vs_seeker.c
+++ b/src/vs_seeker.c
@@ -598,7 +598,7 @@ static void sub_810C3B8(u8 taskId)
{
if (sub_810CF04(i) == TRUE)
{
- if (gObjectEvents[i].mapobj_bit_1)
+ if (gObjectEvents[i].singleMovementActive)
return;
FreezeObjectEvent(&gObjectEvents[i]);
}