Document hide/show reflection movement actions

This commit is contained in:
Marcus Huderle 2019-10-06 14:17:34 -05:00
parent c0b0602516
commit 799edaf3e6
6 changed files with 28 additions and 36 deletions

View File

@ -102,8 +102,8 @@
create_movement_action clear_fixed_priority create_movement_action clear_fixed_priority
create_movement_action init_affine_anim create_movement_action init_affine_anim
create_movement_action clear_affine_anim create_movement_action clear_affine_anim
create_movement_action unknown_movement_1 create_movement_action hide_reflection
create_movement_action unknown_movement_2 create_movement_action show_reflection
create_movement_action walk_down_start_affine create_movement_action walk_down_start_affine
create_movement_action walk_down_affine create_movement_action walk_down_affine

View File

@ -179,8 +179,8 @@
#define MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY 0x5D #define MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY 0x5D
#define MOVEMENT_ACTION_INIT_AFFINE_ANIM 0x5E #define MOVEMENT_ACTION_INIT_AFFINE_ANIM 0x5E
#define MOVEMENT_ACTION_CLEAR_AFFINE_ANIM 0x5F #define MOVEMENT_ACTION_CLEAR_AFFINE_ANIM 0x5F
#define MOVEMENT_ACTION_UNKNOWN1 0x60 #define MOVEMENT_ACTION_HIDE_REFLECTION 0x60
#define MOVEMENT_ACTION_UNKNOWN2 0x61 #define MOVEMENT_ACTION_SHOW_REFLECTION 0x61
#define MOVEMENT_ACTION_WALK_DOWN_START_AFFINE 0x62 #define MOVEMENT_ACTION_WALK_DOWN_START_AFFINE 0x62
#define MOVEMENT_ACTION_WALK_DOWN_AFFINE 0x63 #define MOVEMENT_ACTION_WALK_DOWN_AFFINE 0x63
#define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN 0x64 #define MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN 0x64

View File

@ -65,7 +65,7 @@ struct EventObjectTemplate
/*0x0E*/ u16 trainerRange_berryTreeId; /*0x0E*/ u16 trainerRange_berryTreeId;
/*0x10*/ const u8 *script; /*0x10*/ const u8 *script;
/*0x14*/ u16 flagId; /*0x14*/ u16 flagId;
}; /*size = 0x18*/ };
struct WarpEvent struct WarpEvent
{ {
@ -82,7 +82,6 @@ struct CoordEvent
u8 elevation; u8 elevation;
u16 trigger; u16 trigger;
u16 index; u16 index;
u8 filler_A[0x2];
u8 *script; u8 *script;
}; };
@ -90,20 +89,14 @@ struct BgEvent
{ {
u16 x, y; u16 x, y;
u8 elevation; u8 elevation;
u8 kind; u8 kind; // The "kind" field determines how to access bgUnion union below.
union { // carried over from diego's FR/LG work, seems to be the same struct union {
// in gen 3, "kind" (0x3 in BgEvent struct) determines the method to read the union.
u8 *script; u8 *script;
// hidden item type
struct { struct {
u16 item; u16 item;
u16 hiddenItemId; // flag offset to determine flag lookup u16 hiddenItemId;
} hiddenItem; } hiddenItem;
// secret base type
u32 secretBaseId; u32 secretBaseId;
} bgUnion; } bgUnion;
}; };
@ -113,7 +106,6 @@ struct MapEvents
u8 warpCount; u8 warpCount;
u8 coordEventCount; u8 coordEventCount;
u8 bgEventCount; u8 bgEventCount;
struct EventObjectTemplate *eventObjects; struct EventObjectTemplate *eventObjects;
struct WarpEvent *warps; struct WarpEvent *warps;
struct CoordEvent *coordEvents; struct CoordEvent *coordEvents;
@ -122,10 +114,10 @@ struct MapEvents
struct MapConnection struct MapConnection
{ {
/*0x00*/ u8 direction; u8 direction;
/*0x01*/ u32 offset; u32 offset;
/*0x05*/ u8 mapGroup; u8 mapGroup;
/*0x06*/ u8 mapNum; u8 mapNum;
}; };
struct MapConnections struct MapConnections
@ -180,7 +172,7 @@ struct EventObject
/*0x03*/ u32 spriteAffineAnimPausedBackup:1; /*0x03*/ u32 spriteAffineAnimPausedBackup:1;
u32 disableJumpLandingGroundEffect:1; u32 disableJumpLandingGroundEffect:1;
u32 fixedPriority:1; u32 fixedPriority:1;
u32 unk3_3:1; u32 hideReflection:1;
/*0x04*/ u8 spriteId; /*0x04*/ u8 spriteId;
/*0x05*/ u8 graphicsId; /*0x05*/ u8 graphicsId;
/*0x06*/ u8 movementType; /*0x06*/ u8 movementType;

View File

@ -170,8 +170,8 @@ u8 MovementAction_SetFixedPriority_Step0(struct EventObject *, struct Sprite *);
u8 MovementAction_ClearFixedPriority_Step0(struct EventObject *, struct Sprite *); u8 MovementAction_ClearFixedPriority_Step0(struct EventObject *, struct Sprite *);
u8 MovementAction_InitAffineAnim_Step0(struct EventObject *, struct Sprite *); u8 MovementAction_InitAffineAnim_Step0(struct EventObject *, struct Sprite *);
u8 MovementAction_ClearAffineAnim_Step0(struct EventObject *, struct Sprite *); u8 MovementAction_ClearAffineAnim_Step0(struct EventObject *, struct Sprite *);
u8 MovementAction_Unknown1_Step0(struct EventObject *, struct Sprite *); u8 MovementAction_HideReflection_Step0(struct EventObject *, struct Sprite *);
u8 MovementAction_Unknown2_Step0(struct EventObject *, struct Sprite *); u8 MovementAction_ShowReflection_Step0(struct EventObject *, struct Sprite *);
u8 MovementAction_WalkDownStartAffine_Step0(struct EventObject *, struct Sprite *); u8 MovementAction_WalkDownStartAffine_Step0(struct EventObject *, struct Sprite *);
u8 MovementAction_WalkDownStartAffine_Step1(struct EventObject *, struct Sprite *); u8 MovementAction_WalkDownStartAffine_Step1(struct EventObject *, struct Sprite *);
u8 MovementAction_WalkDownAffine_Step0(struct EventObject *, struct Sprite *); u8 MovementAction_WalkDownAffine_Step0(struct EventObject *, struct Sprite *);
@ -358,8 +358,8 @@ u8 (*const gMovementActionFuncs_SetFixedPriority[])(struct EventObject *, struct
u8 (*const gMovementActionFuncs_ClearFixedPriority[])(struct EventObject *, struct Sprite *); u8 (*const gMovementActionFuncs_ClearFixedPriority[])(struct EventObject *, struct Sprite *);
u8 (*const gMovementActionFuncs_InitAffineAnim[])(struct EventObject *, struct Sprite *); u8 (*const gMovementActionFuncs_InitAffineAnim[])(struct EventObject *, struct Sprite *);
u8 (*const gMovementActionFuncs_ClearAffineAnim[])(struct EventObject *, struct Sprite *); u8 (*const gMovementActionFuncs_ClearAffineAnim[])(struct EventObject *, struct Sprite *);
u8 (*const gMovementActionFuncs_Unknown1[])(struct EventObject *, struct Sprite *); u8 (*const gMovementActionFuncs_HideReflection[])(struct EventObject *, struct Sprite *);
u8 (*const gMovementActionFuncs_Unknown2[])(struct EventObject *, struct Sprite *); u8 (*const gMovementActionFuncs_ShowReflection[])(struct EventObject *, struct Sprite *);
u8 (*const gMovementActionFuncs_WalkDownStartAffine[])(struct EventObject *, struct Sprite *); u8 (*const gMovementActionFuncs_WalkDownStartAffine[])(struct EventObject *, struct Sprite *);
u8 (*const gMovementActionFuncs_WalkDownAffine[])(struct EventObject *, struct Sprite *); u8 (*const gMovementActionFuncs_WalkDownAffine[])(struct EventObject *, struct Sprite *);
u8 (*const gMovementActionFuncs_AcroWheelieFaceDown[])(struct EventObject *, struct Sprite *); u8 (*const gMovementActionFuncs_AcroWheelieFaceDown[])(struct EventObject *, struct Sprite *);
@ -518,8 +518,8 @@ u8 (*const *const gMovementActionFuncs[])(struct EventObject *, struct Sprite *)
[MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY] = gMovementActionFuncs_ClearFixedPriority, [MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY] = gMovementActionFuncs_ClearFixedPriority,
[MOVEMENT_ACTION_INIT_AFFINE_ANIM] = gMovementActionFuncs_InitAffineAnim, [MOVEMENT_ACTION_INIT_AFFINE_ANIM] = gMovementActionFuncs_InitAffineAnim,
[MOVEMENT_ACTION_CLEAR_AFFINE_ANIM] = gMovementActionFuncs_ClearAffineAnim, [MOVEMENT_ACTION_CLEAR_AFFINE_ANIM] = gMovementActionFuncs_ClearAffineAnim,
[MOVEMENT_ACTION_UNKNOWN1] = gMovementActionFuncs_Unknown1, [MOVEMENT_ACTION_HIDE_REFLECTION] = gMovementActionFuncs_HideReflection,
[MOVEMENT_ACTION_UNKNOWN2] = gMovementActionFuncs_Unknown2, [MOVEMENT_ACTION_SHOW_REFLECTION] = gMovementActionFuncs_ShowReflection,
[MOVEMENT_ACTION_WALK_DOWN_START_AFFINE] = gMovementActionFuncs_WalkDownStartAffine, [MOVEMENT_ACTION_WALK_DOWN_START_AFFINE] = gMovementActionFuncs_WalkDownStartAffine,
[MOVEMENT_ACTION_WALK_DOWN_AFFINE] = gMovementActionFuncs_WalkDownAffine, [MOVEMENT_ACTION_WALK_DOWN_AFFINE] = gMovementActionFuncs_WalkDownAffine,
[MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN] = gMovementActionFuncs_AcroWheelieFaceDown, [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN] = gMovementActionFuncs_AcroWheelieFaceDown,
@ -1197,13 +1197,13 @@ u8 (*const gMovementActionFuncs_ClearAffineAnim[])(struct EventObject *, struct
MovementAction_Finish, MovementAction_Finish,
}; };
u8 (*const gMovementActionFuncs_Unknown1[])(struct EventObject *, struct Sprite *) = { u8 (*const gMovementActionFuncs_HideReflection[])(struct EventObject *, struct Sprite *) = {
MovementAction_Unknown1_Step0, MovementAction_HideReflection_Step0,
MovementAction_Finish, MovementAction_Finish,
}; };
u8 (*const gMovementActionFuncs_Unknown2[])(struct EventObject *, struct Sprite *) = { u8 (*const gMovementActionFuncs_ShowReflection[])(struct EventObject *, struct Sprite *) = {
MovementAction_Unknown2_Step0, MovementAction_ShowReflection_Step0,
MovementAction_Finish, MovementAction_Finish,
}; };

View File

@ -6831,15 +6831,15 @@ bool8 MovementAction_ClearAffineAnim_Step0(struct EventObject *eventObject, stru
return TRUE; return TRUE;
} }
bool8 MovementAction_Unknown1_Step0(struct EventObject *eventObject, struct Sprite *sprite) bool8 MovementAction_HideReflection_Step0(struct EventObject *eventObject, struct Sprite *sprite)
{ {
eventObject->unk3_3 = TRUE; eventObject->hideReflection = TRUE;
return TRUE; return TRUE;
} }
bool8 MovementAction_Unknown2_Step0(struct EventObject *eventObject, struct Sprite *sprite) bool8 MovementAction_ShowReflection_Step0(struct EventObject *eventObject, struct Sprite *sprite)
{ {
eventObject->unk3_3 = FALSE; eventObject->hideReflection = FALSE;
return TRUE; return TRUE;
} }

View File

@ -143,7 +143,7 @@ static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite)
reflectionSprite->pos2.y = -mainSprite->pos2.y; reflectionSprite->pos2.y = -mainSprite->pos2.y;
reflectionSprite->coordOffsetEnabled = mainSprite->coordOffsetEnabled; reflectionSprite->coordOffsetEnabled = mainSprite->coordOffsetEnabled;
if (eventObject->unk3_3 == TRUE) if (eventObject->hideReflection == TRUE)
reflectionSprite->invisible = TRUE; reflectionSprite->invisible = TRUE;
// Check if the reflection is not still. // Check if the reflection is not still.