Skip to content

Commit

Permalink
merge upstreams (#99)
Browse files Browse the repository at this point in the history
  • Loading branch information
bates64 authored Oct 8, 2024
2 parents 04d65cd + 5f6e105 commit 69a9b21
Show file tree
Hide file tree
Showing 479 changed files with 2,476 additions and 2,372 deletions.
2 changes: 1 addition & 1 deletion include/common_structs.h
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ typedef struct Npc {
/* 0x01C */ f32 jumpVel;
/* 0x020 */ union {
void* any;
NpcMotionBlur* motion; ///< Null unless flag 0x100000 is set.
NpcMotionBlur* motion; ///< Null unless flag NPC_FLAG_MOTION_BLUR is set.
NpcChompBlur* chomp;
NpcQuizmoBlur* quizmo;
NpcFollowData* followData;
Expand Down
156 changes: 66 additions & 90 deletions include/enums.h
Original file line number Diff line number Diff line change
Expand Up @@ -1903,7 +1903,7 @@ enum EncounterOutcomes {
OUTCOME_PLAYER_LOST = 1,
OUTCOME_PLAYER_FLED = 2,
OUTCOME_ENEMY_FLED = 3,
OUTCOME_4 = 4,
OUTCOME_SKIP = 4,
};

enum MerleeSpellType {
Expand Down Expand Up @@ -2991,11 +2991,11 @@ enum NpcPalSwapState {
NPC_PALSWAP_HOLDING_A = 0,
NPC_PALSWAP_FROM_A_TO_B = 1,
NPC_PALSWAP_HOLDING_B = 2,
NPC_PALSWAP_FROM_B_TO_A = 3
NPC_PALSWAP_FROM_B_TO_A = 3,
};

enum NpcFlags {
NPC_FLAG_ENABLED = 0x00000001, // Does nothing aside from making npc->flags !=
NPC_FLAG_ENABLED = 0x00000001, // Does nothing aside from making npc->flags != 0
NPC_FLAG_INVISIBLE = 0x00000002, // NPC will not be drawn or cause surface effects while moving
NPC_FLAG_INACTIVE = 0x00000004, // NPC will not render, move, or have collisions with other NPCs. They may still be interacted with.
NPC_FLAG_FLYING = 0x00000008,
Expand All @@ -3016,15 +3016,15 @@ enum NpcFlags {
NPC_FLAG_IGNORE_CAMERA_FOR_YAW = 0x00040000, // Do not adjust renderYaw to face the camera
NPC_FLAG_REFLECT_FLOOR = 0x00080000, // Mirror rendering across y=0
NPC_FLAG_MOTION_BLUR = 0x00100000, // Gives motion blur effect as NPC moves. Set by enable_npc_blur
NPC_FLAG_200000 = 0x00200000,
NPC_FLAG_FLIP_INSTANTLY = 0x00200000, // Flip instantly when changing facing direction
NPC_FLAG_TOUCHES_GROUND = 0x00400000, // Can cause effects to play when touching special surface types
NPC_FLAG_HIDING = 0x00800000,
NPC_FLAG_HAS_NO_SPRITE = 0x01000000,
NPC_FLAG_COLLIDING_WITH_NPC = 0x02000000,
NPC_FLAG_PARTNER = 0x04000000,
NPC_FLAG_WORLD_COLLISION_DIRTY = 0x08000000,
NPC_FLAG_10000000 = 0x10000000,
NPC_FLAG_20000000 = 0x20000000,
NPC_FLAG_USE_INSPECT_ICON = 0x10000000, // Approaching this NPC will cause a red ! to appear.
NPC_FLAG_RAYCAST_TO_INTERACT = 0x20000000, // Intended to require a line of sight raycast before conversations can be triggered. Seems bugged.
NPC_FLAG_NO_ANIMS_LOADED = 0x40000000, // Npc has no animations loaded
NPC_FLAG_SUSPENDED = 0x80000000,
};
Expand Down Expand Up @@ -3454,14 +3454,14 @@ enum AnyEnemyAnims {
ENEMY_ANIM_F = 0x210,
};

enum FirstStrikes {
enum FirstStrikeType {
FIRST_STRIKE_NONE = 0,
FIRST_STRIKE_PLAYER = 1,
FIRST_STRIKE_ENEMY = 2,
};

enum TimeFreezeMode {
TIME_FREEZE_NORMAL = 0,
TIME_FREEZE_NONE = 0,
TIME_FREEZE_PARTIAL = 1,
TIME_FREEZE_FULL = 2,
TIME_FREEZE_POPUP_MENU = 3,
Expand Down Expand Up @@ -4519,8 +4519,8 @@ enum MapRoomNotifications {

enum EnemyFlags {
ENEMY_FLAG_PASSIVE = 0x00000001, // Not hostile; collision does not trigger battle
ENEMY_FLAG_2 = 0x00000002, // Unused
ENEMY_FLAG_4 = 0x00000004,
ENEMY_FLAG_UNUSED_2 = 0x00000002, // Unused
ENEMY_FLAG_DO_NOT_KILL = 0x00000004, // Enemy will not be killed after being defeated in battle
ENEMY_FLAG_ENABLE_HIT_SCRIPT = 0x00000008,
ENEMY_FLAG_FLED = 0x00000010,
ENEMY_FLAG_DISABLE_AI = 0x00000020, // Disable movement AI and collision (idle animation plays)
Expand All @@ -4533,14 +4533,14 @@ enum EnemyFlags {
ENEMY_FLAG_GRAVITY = 0x00001000,
ENEMY_FLAG_NO_SHADOW_RAYCAST = 0x00002000,
ENEMY_FLAG_HAS_NO_SPRITE = 0x00004000,
ENEMY_FLAG_8000 = 0x00008000, // Corresponds with NPC_FLAG_10000000
ENEMY_FLAG_10000 = 0x00010000, // Corresponds with NPC_FLAG_20000000
ENEMY_FLAG_USE_INSPECT_ICON = 0x00008000, // Corresponds with NPC_FLAG_USE_INSPECT_ICON
ENEMY_FLAG_RAYCAST_TO_INTERACT = 0x00010000, // Intended to require a line of sight raycast before conversations can be triggered. Seems bugged. Corresponds with NPC_FLAG_RAYCAST_TO_INTERACT
ENEMY_FLAG_USE_PLAYER_SPRITE = 0x00020000, // Used for Peach NPCs
ENEMY_FLAG_40000 = 0x00040000,
ENEMY_FLAG_80000 = 0x00080000,
ENEMY_FLAG_100000 = 0x00100000,
ENEMY_FLAG_NO_DELAY_AFTER_FLEE = 0x00040000,
ENEMY_FLAG_DONT_SUSPEND_SCRIPTS = 0x00080000, // Do not suspend ai/aux scripts when aiSuspendTime != 0
ENEMY_FLAG_SKIP_BATTLE = 0x00100000,
ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN = 0x00200000,
ENEMY_FLAG_400000 = 0x00400000,
ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER = 0x00400000,
ENEMY_FLAG_NO_DROPS = 0x00800000, // Do not drop hearts, flowers, or coins on defeat
ENEMY_FLAG_IGNORE_TOUCH = 0x01000000,
ENEMY_FLAG_IGNORE_JUMP = 0x02000000,
Expand All @@ -4552,12 +4552,17 @@ enum EnemyFlags {
ENEMY_FLAG_SUSPENDED = 0x80000000,
};

#define COMMON_PASSIVE_FLAGS \
ENEMY_FLAG_PASSIVE \
| ENEMY_FLAG_ENABLE_HIT_SCRIPT \
#define BASE_PASSIVE_FLAGS \
( ENEMY_FLAG_PASSIVE \
| ENEMY_FLAG_IGNORE_WORLD_COLLISION \
| ENEMY_FLAG_IGNORE_ENTITY_COLLISION \
| ENEMY_FLAG_FLYING
| ENEMY_FLAG_FLYING \
)

#define COMMON_PASSIVE_FLAGS \
( BASE_PASSIVE_FLAGS \
| ENEMY_FLAG_ENABLE_HIT_SCRIPT \
)

// used with enemy->aiFlags
enum EnemyAIFlags {
Expand Down Expand Up @@ -4707,7 +4712,7 @@ enum PlayerCollisionTests {
PLAYER_COLLISION_0 = 0,
PLAYER_COLLISION_1 = 1,
PLAYER_COLLISION_2 = 2,
PLAYER_COLLISION_3 = 3,
PLAYER_COLLISION_HAMMER = 3,
PLAYER_COLLISION_4 = 4,
};

Expand Down Expand Up @@ -4977,50 +4982,21 @@ enum {
SHOP_BUY_RESULT_NOT_ENOUGH_ROOM = 5,
};

enum EncounterStatusFlags {
ENCOUNTER_STATUS_FLAG_0 = 0x00000000,
ENCOUNTER_STATUS_FLAG_1 = 0x00000001,
ENCOUNTER_STATUS_FLAG_2 = 0x00000002,
ENCOUNTER_STATUS_FLAG_4 = 0x00000004,
ENCOUNTER_STATUS_FLAG_8 = 0x00000008,
ENCOUNTER_STATUS_FLAG_10 = 0x00000010,
ENCOUNTER_STATUS_FLAG_20 = 0x00000020,
ENCOUNTER_STATUS_FLAG_40 = 0x00000040,
ENCOUNTER_STATUS_FLAG_80 = 0x00000080,
ENCOUNTER_STATUS_FLAG_100 = 0x00000100,
ENCOUNTER_STATUS_FLAG_200 = 0x00000200,
ENCOUNTER_STATUS_FLAG_400 = 0x00000400,
ENCOUNTER_STATUS_FLAG_800 = 0x00000800,
ENCOUNTER_STATUS_FLAG_1000 = 0x00001000,
ENCOUNTER_STATUS_FLAG_2000 = 0x00002000,
ENCOUNTER_STATUS_FLAG_4000 = 0x00004000,
ENCOUNTER_STATUS_FLAG_8000 = 0x00008000,
ENCOUNTER_STATUS_FLAG_10000 = 0x00010000,
ENCOUNTER_STATUS_FLAG_20000 = 0x00020000,
ENCOUNTER_STATUS_FLAG_40000 = 0x00040000,
ENCOUNTER_STATUS_FLAG_80000 = 0x00080000,
ENCOUNTER_STATUS_FLAG_100000 = 0x00100000,
ENCOUNTER_STATUS_FLAG_200000 = 0x00200000,
ENCOUNTER_STATUS_FLAG_400000 = 0x00400000,
ENCOUNTER_STATUS_FLAG_800000 = 0x00800000,
ENCOUNTER_STATUS_FLAG_1000000 = 0x01000000,
ENCOUNTER_STATUS_FLAG_2000000 = 0x02000000,
ENCOUNTER_STATUS_FLAG_4000000 = 0x04000000,
ENCOUNTER_STATUS_FLAG_8000000 = 0x08000000,
ENCOUNTER_STATUS_FLAG_10000000 = 0x10000000,
ENCOUNTER_STATUS_FLAG_20000000 = 0x20000000,
ENCOUNTER_STATUS_FLAG_40000000 = 0x40000000,
ENCOUNTER_STATUS_FLAG_80000000 = 0x80000000,
enum EncounterFlags {
ENCOUNTER_FLAG_NONE = 0x00000000,
ENCOUNTER_FLAG_THUMBS_UP = 0x00000001, ///< Mario will do a 'thumbs up' animation after winning
ENCOUNTER_FLAG_CANT_SKIP_WIN_DELAY = 0x00000002,
ENCOUNTER_FLAG_SKIP_FLEE_DROPS = 0x00000004,
};

enum WindowFlags {
WINDOW_FLAG_INITIALIZED = 0x00000001,
WINDOW_FLAG_FPUPDATE_CHANGED = 0x00000002,
WINDOW_FLAG_HIDDEN = 0x00000004, ///< Updated but not rendered
WINDOW_FLAG_INITIAL_ANIMATION = 0x00000008,
WINDOW_FLAG_HAS_CHILDREN = 0x00000010,
WINDOW_FLAG_DISABLED = 0x00000020, ///< Not updated or rendered
WINDOW_FLAG_40 = 0x00000040,
WINDOW_FLAG_INITIALIZED = 0x00000001,
WINDOW_FLAG_FPUPDATE_CHANGED = 0x00000002,
WINDOW_FLAG_HIDDEN = 0x00000004, ///< Updated but not rendered
WINDOW_FLAG_INITIAL_ANIMATION = 0x00000008,
WINDOW_FLAG_HAS_CHILDREN = 0x00000010,
WINDOW_FLAG_DISABLED = 0x00000020, ///< Not updated or rendered
WINDOW_FLAG_40 = 0x00000040,
};

enum DrawFlags {
Expand Down Expand Up @@ -6324,46 +6300,46 @@ enum EncounterStates {
};

enum EncounterCreateSubStates {
ENCOUNTER_SUBSTATE_CREATE_INIT = 0,
ENCOUNTER_SUBSTATE_CREATE_RUN_INIT_SCRIPT = 1,
ENCOUNTER_SUBSTATE_CREATE_RUN_AI = 2,
ENCOUNTER_SUBSTATE_CREATE_INIT = 0,
ENCOUNTER_SUBSTATE_CREATE_RUN_INIT_SCRIPT = 1,
ENCOUNTER_SUBSTATE_CREATE_RUN_AI = 2,
};

enum EncounterNeutralSubStates {
ENCOUNTER_SUBSTATE_NEUTRAL = 0,
ENCOUNTER_SUBSTATE_NEUTRAL = 0,
};

enum EncounterPreBattleSubStates {
ENCOUNTER_SUBSTATE_PRE_BATTLE_INIT = 0,
ENCOUNTER_SUBSTATE_PRE_BATTLE_LOAD_BATTLE = 1,
ENCOUNTER_SUBSTATE_PRE_BATTLE_AUTO_WIN = 2,
ENCOUNTER_SUBSTATE_PRE_BATTLE_3 = 3,
ENCOUNTER_SUBSTATE_PRE_BATTLE_INIT = 0,
ENCOUNTER_SUBSTATE_PRE_BATTLE_LOAD = 1,
ENCOUNTER_SUBSTATE_PRE_BATTLE_AUTO_WIN = 2,
ENCOUNTER_SUBSTATE_PRE_BATTLE_SKIP = 3,
};

enum EncounterConversationSubStates {
ENCOUNTER_SUBSTATE_CONVERSATION_INIT = 0,
ENCOUNTER_SUBSTATE_CONVERSATION_END = 1,
ENCOUNTER_SUBSTATE_CONVERSATION_INIT = 0,
ENCOUNTER_SUBSTATE_CONVERSATION_END = 1,
};

enum EncounterPostBattleSubStates {
ENCOUNTER_SUBSTATE_POST_BATTLE_INIT = 0,
ENCOUNTER_SUBSTATE_POST_BATTLE_WON_WAIT = 2,
ENCOUNTER_SUBSTATE_POST_BATTLE_WON_KILL = 3,
ENCOUNTER_SUBSTATE_POST_BATTLE_WON_TO_NEUTRAL = 4,
ENCOUNTER_SUBSTATE_POST_BATTLE_WON_CHECK_MERLEE_BONUS = 10,
ENCOUNTER_SUBSTATE_POST_BATTLE_PLAY_NPC_DEFEAT = 11,
ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_INIT = 100,
ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_WAIT = 101,
ENCOUNTER_SUBSTATE_POST_BATTLE_102 = 102,
ENCOUNTER_SUBSTATE_POST_BATTLE_103 = 103,
ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_INIT = 200,
ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_WAIT = 201,
ENCOUNTER_SUBSTATE_POST_BATTLE_202 = 202,
ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_TO_NEUTRAL = 203,
ENCOUNTER_SUBSTATE_POST_BATTLE_300 = 300,
ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_INIT = 400,
ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_WAIT = 401,
ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_TO_NEUTRAL = 402,
ENCOUNTER_SUBSTATE_POST_BATTLE_INIT = 0,
ENCOUNTER_SUBSTATE_POST_BATTLE_WON_FADE_IN = 2,
ENCOUNTER_SUBSTATE_POST_BATTLE_WON_KILL = 3,
ENCOUNTER_SUBSTATE_POST_BATTLE_WON_RESUME = 4,
ENCOUNTER_SUBSTATE_POST_BATTLE_WON_CHECK_MERLEE = 10,
ENCOUNTER_SUBSTATE_POST_BATTLE_PLAY_NPC_DEFEAT = 11,
ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_INIT = 100,
ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_FADE_IN = 101,
ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_RESUME = 102,
ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_DELAY = 103, // delay before battle can be retriggered
ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_INIT = 200,
ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_FADE_IN = 201,
ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_RESUME = 202,
ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_DELAY = 203,
ENCOUNTER_SUBSTATE_POST_BATTLE_SKIP = 300,
ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_INIT = 400,
ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_FADE_IN = 401,
ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_RESUME = 402,
};

enum PlayerSpriteSets {
Expand Down
39 changes: 24 additions & 15 deletions include/evt.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,29 +125,38 @@ enum EventCommandResults {
EVT_CMD_RESULT_ERROR = 1,
};

// EventGroupFlags determine when scripts are paused and resumed.
// Each flag corresponds to a set of circumstances which may pause scripts independently of the others.
// These group flags are inherited when one script launches another.
enum EventGroupFlags {
EVT_GROUP_00 = 0x00,
EVT_GROUP_0A = 0x0A, // 8 | 2
EVT_GROUP_0B = 0x0B, // 8 | 4 | 1
EVT_GROUP_1B = 0x1B, // 10 | 8 | 4 | 1
EVT_GROUP_EF = 0xEF, // ~10
EVT_GROUP_01 = 0x01,
EVT_GROUP_02 = 0x02,
EVT_GROUP_SHAKE_CAM = 0x04,
EVT_GROUP_08 = 0x08,
EVT_GROUP_10 = 0x10,
// Each flag represents a distinct condition for suspending or resuming script execution.
// These flags are named based on the scenarios that trigger suspension.
EVT_GROUP_FLAG_INTERACT = 0x01, // Suspended during certain scenes, interactions, and NPC dialogue.
EVT_GROUP_FLAG_MENUS = 0x02, // Suspended when menus are open, during pause, item pickups, or "got item" scenes.
EVT_GROUP_FLAG_CAM = 0x04, // Never suspended; used exclusively with camera shake (ShakeCam) scripts.
EVT_GROUP_FLAG_UNUSED = 0x08, // Unused flag; its original purpose is unknown.
EVT_GROUP_FLAG_BATTLE = 0x10, // Suspended during battle entry and exit transitions.

// Combinations of flags used to assign specific behaviors to scripts.
// These groups are named after their most common script use-cases.
EVT_GROUP_NEVER_PAUSE = 0x00, // Never paused; default for map scripts derived from the main script, which always uses this group.
EVT_GROUP_PASSIVE_NPC = EVT_GROUP_FLAG_MENUS | EVT_GROUP_FLAG_UNUSED, // 0xA -- Pauses similar to passive NPC scripts.
EVT_GROUP_HOSTILE_NPC = EVT_GROUP_FLAG_INTERACT | EVT_GROUP_FLAG_MENUS | EVT_GROUP_FLAG_UNUSED, // 0xB -- Pauses similar to hostile NPC scripts; used for platforms, machinery, etc.
EVT_GROUP_EXIT_MAP = EVT_GROUP_FLAG_INTERACT | EVT_GROUP_FLAG_MENUS | EVT_GROUP_FLAG_UNUSED | EVT_GROUP_FLAG_BATTLE, // 0x1B -- Used for exit map scripts.
EVT_GROUP_SHAKE_CAM = EVT_GROUP_FLAG_CAM, // Only used by ShakeCam scripts.
EVT_GROUP_NOT_BATTLE = 0xFF & ~EVT_GROUP_FLAG_BATTLE, // 0xEF -- Pauses from anything except battles; default for scripts started via start_script, common in many battle scripts.
};

enum EventPriority {
EVT_PRIORITY_0 = 0x00, // map main script
EVT_PRIORITY_1 = 0x01,
EVT_PRIORITY_A = 0x0A,
EVT_PRIORITY_14 = 0x14,
EVT_PRIORITY_0 = 0x00, // map main script
EVT_PRIORITY_1 = 0x01,
EVT_PRIORITY_A = 0x0A,
EVT_PRIORITY_14 = 0x14,
};

enum EventStateFlags {
EVT_FLAG_ACTIVE = 0x01,
EVT_FLAG_SUSPENDED_IN_GROUP = 0x02,
EVT_FLAG_PAUSED = 0x02, ///< paused through suspend_group_script / resume_group_script
EVT_FLAG_BLOCKED_BY_CHILD = 0x10,
EVT_FLAG_RUN_IMMEDIATELY = 0x20, ///< don't wait for next `update_scripts` call
EVT_FLAG_THREAD = 0x40,
Expand Down
11 changes: 8 additions & 3 deletions include/functions.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,12 @@ void player_input_to_move_vector(f32* angle, f32* magnitude);
void game_input_to_move_vector(f32* x, f32* y);
void exec_ShakeCamX(s32 arg0, s32 arg1, s32 arg2, f32 arg3);
void exec_ShakeCam1(s32 arg0, s32 arg1, s32 arg2);
f32 func_800E5348(void);

// returns the angle that the player is facing "toward" in world-space.
// this will always be to the left or the right relative to the current camera position.
// note that this is NOT the direction the player character is moving, nor the orientation of the sprite itself.
// think of this as the direction of a hammer impact relative to the center of the player.
f32 player_get_side_angle(void);

void draw_number(s32 value, s32 x, s32 y, s32 variableWidthChars, s32 palette, s32 opacity, u16 style);

Expand Down Expand Up @@ -126,7 +131,7 @@ void player_handle_floor_collider_type(s32 colliderID);
f32 player_fall_distance(void);
void func_800E4AD8(s32 arg0);
f32 player_check_collision_below(f32, s32* colliderID);
s32 can_trigger_loading_zone(void);
b32 can_trigger_loading_zone(void);
void update_damage_popups(void);
void show_action_rating(s32, Actor*, f32, f32, f32);
s32 render_with_adjusted_palettes(s32, ActorPart*, s32, Matrix4f, s32);
Expand Down Expand Up @@ -1056,7 +1061,7 @@ s32 lookup_defense(s32*, s32);
s32 lookup_status_chance(s32*, s32);
void peach_check_for_parasol_input(void);
void peach_sync_disguise_npc(void);
s32 check_conversation_trigger(void);
b32 check_conversation_trigger(void);

void clear_player_status(void);
void clear_entity_models(void);
Expand Down
14 changes: 7 additions & 7 deletions include/npc.h
Original file line number Diff line number Diff line change
Expand Up @@ -359,13 +359,13 @@ typedef struct FieldStatus {
} FieldStatus;

typedef struct EncounterStatus {
/* 0x000 */ s32 flags;
/* 0x004 */ s8 firstStrikeType; /* 0 = none, 1 = player, 2 = enemy */
/* 0x005 */ s8 hitType; /* 1 = none/enemy, 2 = jump */
/* 0x006 */ s8 hitTier; /* 0 = normal, 1 = super, 2 = ultra */
/* 0x000 */ s32 flags; // see enum: EncounterFlags
/* 0x004 */ s8 firstStrikeType; // see enum: FirstStrikeType
/* 0x005 */ s8 hitType; // see enum: EncounterTriggers
/* 0x006 */ s8 hitTier; // 0 = normal, 1 = super, 2 = ultra
/* 0x007 */ char unk_07;
/* 0x008 */ s8 unk_08;
/* 0x009 */ s8 battleOutcome; /* 0 = won, 1 = lost */
/* 0x009 */ s8 battleOutcome; // see enum: EncounterOutcomes
/* 0x00A */ s8 battleTriggerCooldown; ///< set to 15 after victory, 45 after fleeing
/* 0x00B */ b8 hasMerleeCoinBonus; /* triple coins when TRUE */
/* 0x00C */ u8 damageTaken; /* valid after battle */
Expand All @@ -376,7 +376,7 @@ typedef struct EncounterStatus {
/* 0x012 */ s8 scriptedBattle; ///< battle started by StartBattle but not by encounter
/* 0x013 */ s8 dropWhackaBump;
/* 0x014 */ s32 songID;
/* 0x018 */ s32 unk_18;
/* 0x018 */ s32 unk_18; // unused, related to songID. perhaps was meant for variation, but not implemented.
/* 0x01C */ s8 numEncounters; /* number of encounters for current map (in list) */
/* 0x01D */ s8 curAreaIndex;
/* 0x01E */ u8 curMapIndex;
Expand All @@ -389,7 +389,7 @@ typedef struct EncounterStatus {
/* 0x088 */ Encounter* curEncounter;
/* 0x08C */ Enemy* curEnemy;
/* 0x090 */ s32 fadeOutAmount;
/* 0x094 */ s32 unk_94;
/* 0x094 */ s32 substateDelay;
/* 0x098 */ s32 fadeOutAccel;
/* 0x09C */ s32 battleStartCountdown;
/* 0x0A0 */ FieldStatus dizzyAttack;
Expand Down
Loading

0 comments on commit 69a9b21

Please sign in to comment.