npc-enemy-flags (#1212)

This commit is contained in:
z64a 2024-10-07 23:15:38 -04:00 committed by GitHub
parent 5929e49b72
commit 63b0e737ee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
564 changed files with 2723 additions and 2605 deletions

View File

@ -227,7 +227,7 @@ typedef struct Npc {
/* 0x01C */ f32 jumpVel; /* 0x01C */ f32 jumpVel;
/* 0x020 */ union { /* 0x020 */ union {
void* any; void* any;
NpcMotionBlur* motion; ///< Null unless flag 0x100000 is set. NpcMotionBlur* motion; ///< Null unless flag NPC_FLAG_MOTION_BLUR is set.
NpcChompBlur* chomp; NpcChompBlur* chomp;
NpcQuizmoBlur* quizmo; NpcQuizmoBlur* quizmo;
NpcFollowData* followData; NpcFollowData* followData;

View File

@ -1904,7 +1904,7 @@ enum EncounterOutcomes {
OUTCOME_PLAYER_LOST = 1, OUTCOME_PLAYER_LOST = 1,
OUTCOME_PLAYER_FLED = 2, OUTCOME_PLAYER_FLED = 2,
OUTCOME_ENEMY_FLED = 3, OUTCOME_ENEMY_FLED = 3,
OUTCOME_4 = 4, OUTCOME_SKIP = 4,
}; };
enum MerleeSpellType { enum MerleeSpellType {
@ -2992,11 +2992,11 @@ enum NpcPalSwapState {
NPC_PALSWAP_HOLDING_A = 0, NPC_PALSWAP_HOLDING_A = 0,
NPC_PALSWAP_FROM_A_TO_B = 1, NPC_PALSWAP_FROM_A_TO_B = 1,
NPC_PALSWAP_HOLDING_B = 2, NPC_PALSWAP_HOLDING_B = 2,
NPC_PALSWAP_FROM_B_TO_A = 3 NPC_PALSWAP_FROM_B_TO_A = 3,
}; };
enum NpcFlags { 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_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_INACTIVE = 0x00000004, // NPC will not render, move, or have collisions with other NPCs. They may still be interacted with.
NPC_FLAG_FLYING = 0x00000008, NPC_FLAG_FLYING = 0x00000008,
@ -3017,15 +3017,15 @@ enum NpcFlags {
NPC_FLAG_IGNORE_CAMERA_FOR_YAW = 0x00040000, // Do not adjust renderYaw to face the camera 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_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_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_TOUCHES_GROUND = 0x00400000, // Can cause effects to play when touching special surface types
NPC_FLAG_HIDING = 0x00800000, NPC_FLAG_HIDING = 0x00800000,
NPC_FLAG_HAS_NO_SPRITE = 0x01000000, NPC_FLAG_HAS_NO_SPRITE = 0x01000000,
NPC_FLAG_COLLIDING_WITH_NPC = 0x02000000, NPC_FLAG_COLLIDING_WITH_NPC = 0x02000000,
NPC_FLAG_PARTNER = 0x04000000, NPC_FLAG_PARTNER = 0x04000000,
NPC_FLAG_WORLD_COLLISION_DIRTY = 0x08000000, NPC_FLAG_WORLD_COLLISION_DIRTY = 0x08000000,
NPC_FLAG_10000000 = 0x10000000, NPC_FLAG_USE_INSPECT_ICON = 0x10000000, // Approaching this NPC will cause a red ! to appear.
NPC_FLAG_20000000 = 0x20000000, 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_NO_ANIMS_LOADED = 0x40000000, // Npc has no animations loaded
NPC_FLAG_SUSPENDED = 0x80000000, NPC_FLAG_SUSPENDED = 0x80000000,
}; };
@ -3455,14 +3455,14 @@ enum AnyEnemyAnims {
ENEMY_ANIM_F = 0x210, ENEMY_ANIM_F = 0x210,
}; };
enum FirstStrikes { enum FirstStrikeType {
FIRST_STRIKE_NONE = 0, FIRST_STRIKE_NONE = 0,
FIRST_STRIKE_PLAYER = 1, FIRST_STRIKE_PLAYER = 1,
FIRST_STRIKE_ENEMY = 2, FIRST_STRIKE_ENEMY = 2,
}; };
enum TimeFreezeMode { enum TimeFreezeMode {
TIME_FREEZE_NORMAL = 0, TIME_FREEZE_NONE = 0,
TIME_FREEZE_PARTIAL = 1, TIME_FREEZE_PARTIAL = 1,
TIME_FREEZE_FULL = 2, TIME_FREEZE_FULL = 2,
TIME_FREEZE_POPUP_MENU = 3, TIME_FREEZE_POPUP_MENU = 3,
@ -4520,8 +4520,8 @@ enum MapRoomNotifications {
enum EnemyFlags { enum EnemyFlags {
ENEMY_FLAG_PASSIVE = 0x00000001, // Not hostile; collision does not trigger battle ENEMY_FLAG_PASSIVE = 0x00000001, // Not hostile; collision does not trigger battle
ENEMY_FLAG_2 = 0x00000002, // Unused ENEMY_FLAG_UNUSED_2 = 0x00000002, // Unused
ENEMY_FLAG_4 = 0x00000004, ENEMY_FLAG_DO_NOT_KILL = 0x00000004, // Enemy will not be killed after being defeated in battle
ENEMY_FLAG_ENABLE_HIT_SCRIPT = 0x00000008, ENEMY_FLAG_ENABLE_HIT_SCRIPT = 0x00000008,
ENEMY_FLAG_FLED = 0x00000010, ENEMY_FLAG_FLED = 0x00000010,
ENEMY_FLAG_DISABLE_AI = 0x00000020, // Disable movement AI and collision (idle animation plays) ENEMY_FLAG_DISABLE_AI = 0x00000020, // Disable movement AI and collision (idle animation plays)
@ -4534,14 +4534,14 @@ enum EnemyFlags {
ENEMY_FLAG_GRAVITY = 0x00001000, ENEMY_FLAG_GRAVITY = 0x00001000,
ENEMY_FLAG_NO_SHADOW_RAYCAST = 0x00002000, ENEMY_FLAG_NO_SHADOW_RAYCAST = 0x00002000,
ENEMY_FLAG_HAS_NO_SPRITE = 0x00004000, ENEMY_FLAG_HAS_NO_SPRITE = 0x00004000,
ENEMY_FLAG_8000 = 0x00008000, // Corresponds with NPC_FLAG_10000000 ENEMY_FLAG_USE_INSPECT_ICON = 0x00008000, // Corresponds with NPC_FLAG_USE_INSPECT_ICON
ENEMY_FLAG_10000 = 0x00010000, // Corresponds with NPC_FLAG_20000000 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_USE_PLAYER_SPRITE = 0x00020000, // Used for Peach NPCs
ENEMY_FLAG_40000 = 0x00040000, ENEMY_FLAG_NO_DELAY_AFTER_FLEE = 0x00040000,
ENEMY_FLAG_80000 = 0x00080000, ENEMY_FLAG_DONT_SUSPEND_SCRIPTS = 0x00080000, // Do not suspend ai/aux scripts when aiSuspendTime != 0
ENEMY_FLAG_100000 = 0x00100000, ENEMY_FLAG_SKIP_BATTLE = 0x00100000,
ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN = 0x00200000, 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_NO_DROPS = 0x00800000, // Do not drop hearts, flowers, or coins on defeat
ENEMY_FLAG_IGNORE_TOUCH = 0x01000000, ENEMY_FLAG_IGNORE_TOUCH = 0x01000000,
ENEMY_FLAG_IGNORE_JUMP = 0x02000000, ENEMY_FLAG_IGNORE_JUMP = 0x02000000,
@ -4553,12 +4553,17 @@ enum EnemyFlags {
ENEMY_FLAG_SUSPENDED = 0x80000000, ENEMY_FLAG_SUSPENDED = 0x80000000,
}; };
#define COMMON_PASSIVE_FLAGS \ #define BASE_PASSIVE_FLAGS \
ENEMY_FLAG_PASSIVE \ ( ENEMY_FLAG_PASSIVE \
| ENEMY_FLAG_ENABLE_HIT_SCRIPT \
| ENEMY_FLAG_IGNORE_WORLD_COLLISION \ | ENEMY_FLAG_IGNORE_WORLD_COLLISION \
| ENEMY_FLAG_IGNORE_ENTITY_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 // used with enemy->aiFlags
enum EnemyAIFlags { enum EnemyAIFlags {
@ -4708,7 +4713,7 @@ enum PlayerCollisionTests {
PLAYER_COLLISION_0 = 0, PLAYER_COLLISION_0 = 0,
PLAYER_COLLISION_1 = 1, PLAYER_COLLISION_1 = 1,
PLAYER_COLLISION_2 = 2, PLAYER_COLLISION_2 = 2,
PLAYER_COLLISION_3 = 3, PLAYER_COLLISION_HAMMER = 3,
PLAYER_COLLISION_4 = 4, PLAYER_COLLISION_4 = 4,
}; };
@ -4978,50 +4983,21 @@ enum {
SHOP_BUY_RESULT_NOT_ENOUGH_ROOM = 5, SHOP_BUY_RESULT_NOT_ENOUGH_ROOM = 5,
}; };
enum EncounterStatusFlags { enum EncounterFlags {
ENCOUNTER_STATUS_FLAG_0 = 0x00000000, ENCOUNTER_FLAG_NONE = 0x00000000,
ENCOUNTER_STATUS_FLAG_1 = 0x00000001, ENCOUNTER_FLAG_THUMBS_UP = 0x00000001, ///< Mario will do a 'thumbs up' animation after winning
ENCOUNTER_STATUS_FLAG_2 = 0x00000002, ENCOUNTER_FLAG_CANT_SKIP_WIN_DELAY = 0x00000002,
ENCOUNTER_STATUS_FLAG_4 = 0x00000004, ENCOUNTER_FLAG_SKIP_FLEE_DROPS = 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 WindowFlags { enum WindowFlags {
WINDOW_FLAG_INITIALIZED = 0x00000001, WINDOW_FLAG_INITIALIZED = 0x00000001,
WINDOW_FLAG_FPUPDATE_CHANGED = 0x00000002, WINDOW_FLAG_FPUPDATE_CHANGED = 0x00000002,
WINDOW_FLAG_HIDDEN = 0x00000004, ///< Updated but not rendered WINDOW_FLAG_HIDDEN = 0x00000004, ///< Updated but not rendered
WINDOW_FLAG_INITIAL_ANIMATION = 0x00000008, WINDOW_FLAG_INITIAL_ANIMATION = 0x00000008,
WINDOW_FLAG_HAS_CHILDREN = 0x00000010, WINDOW_FLAG_HAS_CHILDREN = 0x00000010,
WINDOW_FLAG_DISABLED = 0x00000020, ///< Not updated or rendered WINDOW_FLAG_DISABLED = 0x00000020, ///< Not updated or rendered
WINDOW_FLAG_40 = 0x00000040, WINDOW_FLAG_40 = 0x00000040,
}; };
enum DrawFlags { enum DrawFlags {
@ -6319,46 +6295,46 @@ enum EncounterStates {
}; };
enum EncounterCreateSubStates { enum EncounterCreateSubStates {
ENCOUNTER_SUBSTATE_CREATE_INIT = 0, ENCOUNTER_SUBSTATE_CREATE_INIT = 0,
ENCOUNTER_SUBSTATE_CREATE_RUN_INIT_SCRIPT = 1, ENCOUNTER_SUBSTATE_CREATE_RUN_INIT_SCRIPT = 1,
ENCOUNTER_SUBSTATE_CREATE_RUN_AI = 2, ENCOUNTER_SUBSTATE_CREATE_RUN_AI = 2,
}; };
enum EncounterNeutralSubStates { enum EncounterNeutralSubStates {
ENCOUNTER_SUBSTATE_NEUTRAL = 0, ENCOUNTER_SUBSTATE_NEUTRAL = 0,
}; };
enum EncounterPreBattleSubStates { enum EncounterPreBattleSubStates {
ENCOUNTER_SUBSTATE_PRE_BATTLE_INIT = 0, ENCOUNTER_SUBSTATE_PRE_BATTLE_INIT = 0,
ENCOUNTER_SUBSTATE_PRE_BATTLE_LOAD_BATTLE = 1, ENCOUNTER_SUBSTATE_PRE_BATTLE_LOAD = 1,
ENCOUNTER_SUBSTATE_PRE_BATTLE_AUTO_WIN = 2, ENCOUNTER_SUBSTATE_PRE_BATTLE_AUTO_WIN = 2,
ENCOUNTER_SUBSTATE_PRE_BATTLE_3 = 3, ENCOUNTER_SUBSTATE_PRE_BATTLE_SKIP = 3,
}; };
enum EncounterConversationSubStates { enum EncounterConversationSubStates {
ENCOUNTER_SUBSTATE_CONVERSATION_INIT = 0, ENCOUNTER_SUBSTATE_CONVERSATION_INIT = 0,
ENCOUNTER_SUBSTATE_CONVERSATION_END = 1, ENCOUNTER_SUBSTATE_CONVERSATION_END = 1,
}; };
enum EncounterPostBattleSubStates { enum EncounterPostBattleSubStates {
ENCOUNTER_SUBSTATE_POST_BATTLE_INIT = 0, ENCOUNTER_SUBSTATE_POST_BATTLE_INIT = 0,
ENCOUNTER_SUBSTATE_POST_BATTLE_WON_WAIT = 2, ENCOUNTER_SUBSTATE_POST_BATTLE_WON_FADE_IN = 2,
ENCOUNTER_SUBSTATE_POST_BATTLE_WON_KILL = 3, ENCOUNTER_SUBSTATE_POST_BATTLE_WON_KILL = 3,
ENCOUNTER_SUBSTATE_POST_BATTLE_WON_TO_NEUTRAL = 4, ENCOUNTER_SUBSTATE_POST_BATTLE_WON_RESUME = 4,
ENCOUNTER_SUBSTATE_POST_BATTLE_WON_CHECK_MERLEE_BONUS = 10, ENCOUNTER_SUBSTATE_POST_BATTLE_WON_CHECK_MERLEE = 10,
ENCOUNTER_SUBSTATE_POST_BATTLE_PLAY_NPC_DEFEAT = 11, ENCOUNTER_SUBSTATE_POST_BATTLE_PLAY_NPC_DEFEAT = 11,
ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_INIT = 100, ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_INIT = 100,
ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_WAIT = 101, ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_FADE_IN = 101,
ENCOUNTER_SUBSTATE_POST_BATTLE_102 = 102, ENCOUNTER_SUBSTATE_POST_BATTLE_FLED_RESUME = 102,
ENCOUNTER_SUBSTATE_POST_BATTLE_103 = 103, 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_INIT = 200,
ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_WAIT = 201, ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_FADE_IN = 201,
ENCOUNTER_SUBSTATE_POST_BATTLE_202 = 202, ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_RESUME = 202,
ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_TO_NEUTRAL = 203, ENCOUNTER_SUBSTATE_POST_BATTLE_LOST_DELAY = 203,
ENCOUNTER_SUBSTATE_POST_BATTLE_300 = 300, ENCOUNTER_SUBSTATE_POST_BATTLE_SKIP = 300,
ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_INIT = 400, ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_INIT = 400,
ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_WAIT = 401, ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_FADE_IN = 401,
ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_TO_NEUTRAL = 402, ENCOUNTER_SUBSTATE_POST_BATTLE_ENEMY_FLED_RESUME = 402,
}; };
enum PlayerSpriteSets { enum PlayerSpriteSets {

View File

@ -125,29 +125,38 @@ enum EventCommandResults {
EVT_CMD_RESULT_ERROR = 1, 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 { enum EventGroupFlags {
EVT_GROUP_00 = 0x00, // Each flag represents a distinct condition for suspending or resuming script execution.
EVT_GROUP_0A = 0x0A, // 8 | 2 // These flags are named based on the scenarios that trigger suspension.
EVT_GROUP_0B = 0x0B, // 8 | 4 | 1 EVT_GROUP_FLAG_INTERACT = 0x01, // Suspended during certain scenes, interactions, and NPC dialogue.
EVT_GROUP_1B = 0x1B, // 10 | 8 | 4 | 1 EVT_GROUP_FLAG_MENUS = 0x02, // Suspended when menus are open, during pause, item pickups, or "got item" scenes.
EVT_GROUP_EF = 0xEF, // ~10 EVT_GROUP_FLAG_CAM = 0x04, // Never suspended; used exclusively with camera shake (ShakeCam) scripts.
EVT_GROUP_01 = 0x01, EVT_GROUP_FLAG_UNUSED = 0x08, // Unused flag; its original purpose is unknown.
EVT_GROUP_02 = 0x02, EVT_GROUP_FLAG_BATTLE = 0x10, // Suspended during battle entry and exit transitions.
EVT_GROUP_SHAKE_CAM = 0x04,
EVT_GROUP_08 = 0x08, // Combinations of flags used to assign specific behaviors to scripts.
EVT_GROUP_10 = 0x10, // 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 { enum EventPriority {
EVT_PRIORITY_0 = 0x00, // map main script EVT_PRIORITY_0 = 0x00, // map main script
EVT_PRIORITY_1 = 0x01, EVT_PRIORITY_1 = 0x01,
EVT_PRIORITY_A = 0x0A, EVT_PRIORITY_A = 0x0A,
EVT_PRIORITY_14 = 0x14, EVT_PRIORITY_14 = 0x14,
}; };
enum EventStateFlags { enum EventStateFlags {
EVT_FLAG_ACTIVE = 0x01, 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_BLOCKED_BY_CHILD = 0x10,
EVT_FLAG_RUN_IMMEDIATELY = 0x20, ///< don't wait for next `update_scripts` call EVT_FLAG_RUN_IMMEDIATELY = 0x20, ///< don't wait for next `update_scripts` call
EVT_FLAG_THREAD = 0x40, EVT_FLAG_THREAD = 0x40,

View File

@ -73,7 +73,12 @@ void player_input_to_move_vector(f32* angle, f32* magnitude);
void game_input_to_move_vector(f32* x, f32* y); void game_input_to_move_vector(f32* x, f32* y);
void exec_ShakeCamX(s32 arg0, s32 arg1, s32 arg2, f32 arg3); void exec_ShakeCamX(s32 arg0, s32 arg1, s32 arg2, f32 arg3);
void exec_ShakeCam1(s32 arg0, s32 arg1, s32 arg2); 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); void draw_number(s32 value, s32 x, s32 y, s32 variableWidthChars, s32 palette, s32 opacity, u16 style);
@ -137,7 +142,7 @@ void player_handle_floor_collider_type(s32 colliderID);
f32 player_fall_distance(void); f32 player_fall_distance(void);
void func_800E4AD8(s32 arg0); void func_800E4AD8(s32 arg0);
f32 player_check_collision_below(f32, s32* colliderID); 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 update_damage_popups(void);
void show_action_rating(s32, Actor*, f32, f32, f32); void show_action_rating(s32, Actor*, f32, f32, f32);
s32 render_with_adjusted_palettes(s32, ActorPart*, s32, Matrix4f, s32); s32 render_with_adjusted_palettes(s32, ActorPart*, s32, Matrix4f, s32);
@ -197,7 +202,7 @@ s32 get_model_list_index_from_tree_index(s32 treeIndex);
s32 get_transform_group_index(s32); s32 get_transform_group_index(s32);
void get_model_center_and_size(u16 modelID, f32* centerX, f32* centerY, f32* centerZ, f32* sizeX, f32* sizeY, void get_model_center_and_size(u16 modelID, f32* centerX, f32* centerY, f32* centerZ, f32* sizeX, f32* sizeY,
f32* sizeZ); f32* sizeZ);
s32 collision_main_above(void); HitID collision_main_above(void);
void collision_lava_reset_check_additional_overlaps(void); void collision_lava_reset_check_additional_overlaps(void);
s32 player_test_lateral_overlap(s32, PlayerStatus*, f32*, f32*, f32*, f32, f32); s32 player_test_lateral_overlap(s32, PlayerStatus*, f32*, f32*, f32*, f32, f32);
Npc* peach_make_disguise_npc(s32 peachDisguise); Npc* peach_make_disguise_npc(s32 peachDisguise);
@ -419,9 +424,9 @@ PlayerData* get_player_data(void);
b32 npc_raycast_down_around(s32, f32*, f32*, f32*, f32*, f32, f32); b32 npc_raycast_down_around(s32, f32*, f32*, f32*, f32*, f32, f32);
b32 npc_raycast_down_sides(s32 ignoreFlags, f32* posX, f32* posY, f32* posZ, f32* hitDepth); b32 npc_raycast_down_sides(s32 ignoreFlags, f32* posX, f32* posY, f32* posZ, f32* hitDepth);
s32 npc_raycast_up(s32, f32*, f32*, f32*, f32*); b32 npc_raycast_up(s32, f32*, f32*, f32*, f32*);
HitID npc_raycast_up_corners(s32 ignoreFlags, f32* posX, f32* posY, f32* posZ, f32* hitDepth, f32 yaw, f32 radius); HitID npc_raycast_up_corners(s32 ignoreFlags, f32* posX, f32* posY, f32* posZ, f32* hitDepth, f32 yaw, f32 radius);
s32 player_raycast_up_corners(PlayerStatus*, f32*, f32*, f32*, f32*, f32); HitID player_raycast_up_corners(PlayerStatus*, f32*, f32*, f32*, f32*, f32);
HitID player_raycast_below_cam_relative(PlayerStatus* playerStatus, f32* outX, f32* outY, f32* outZ, f32* outLength, HitID player_raycast_below_cam_relative(PlayerStatus* playerStatus, f32* outX, f32* outY, f32* outZ, f32* outLength,
f32* hitRx, f32* hitRz, f32* hitDirX, f32* hitDirZ); f32* hitRx, f32* hitRz, f32* hitDirX, f32* hitDirZ);
b32 npc_test_move_taller_with_slipping(s32, f32*, f32*, f32*, f32, f32, f32, f32); b32 npc_test_move_taller_with_slipping(s32, f32*, f32*, f32*, f32, f32, f32, f32);
@ -1075,7 +1080,7 @@ s32 lookup_defense(s32*, s32);
s32 lookup_status_chance(s32*, s32); s32 lookup_status_chance(s32*, s32);
void peach_check_for_parasol_input(void); void peach_check_for_parasol_input(void);
void peach_sync_disguise_npc(void); void peach_sync_disguise_npc(void);
s32 check_conversation_trigger(void); b32 check_conversation_trigger(void);
void clear_player_status(void); void clear_player_status(void);
void clear_entity_models(void); void clear_entity_models(void);

View File

@ -377,13 +377,13 @@ typedef struct FieldStatus {
} FieldStatus; } FieldStatus;
typedef struct EncounterStatus { typedef struct EncounterStatus {
/* 0x000 */ s32 flags; /* 0x000 */ s32 flags; // see enum: EncounterFlags
/* 0x004 */ s8 firstStrikeType; /* 0 = none, 1 = player, 2 = enemy */ /* 0x004 */ s8 firstStrikeType; // see enum: FirstStrikeType
/* 0x005 */ s8 hitType; /* 1 = none/enemy, 2 = jump */ /* 0x005 */ s8 hitType; // see enum: EncounterTriggers
/* 0x006 */ s8 hitTier; /* 0 = normal, 1 = super, 2 = ultra */ /* 0x006 */ s8 hitTier; // 0 = normal, 1 = super, 2 = ultra
/* 0x007 */ char unk_07; /* 0x007 */ char unk_07;
/* 0x008 */ s8 unk_08; /* 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 /* 0x00A */ s8 battleTriggerCooldown; ///< set to 15 after victory, 45 after fleeing
/* 0x00B */ b8 hasMerleeCoinBonus; /* triple coins when TRUE */ /* 0x00B */ b8 hasMerleeCoinBonus; /* triple coins when TRUE */
/* 0x00C */ u8 damageTaken; /* valid after battle */ /* 0x00C */ u8 damageTaken; /* valid after battle */
@ -394,7 +394,7 @@ typedef struct EncounterStatus {
/* 0x012 */ s8 scriptedBattle; ///< battle started by StartBattle but not by encounter /* 0x012 */ s8 scriptedBattle; ///< battle started by StartBattle but not by encounter
/* 0x013 */ s8 dropWhackaBump; /* 0x013 */ s8 dropWhackaBump;
/* 0x014 */ s32 songID; /* 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) */ /* 0x01C */ s8 numEncounters; /* number of encounters for current map (in list) */
/* 0x01D */ s8 curAreaIndex; /* 0x01D */ s8 curAreaIndex;
/* 0x01E */ u8 curMapIndex; /* 0x01E */ u8 curMapIndex;
@ -407,7 +407,7 @@ typedef struct EncounterStatus {
/* 0x088 */ Encounter* curEncounter; /* 0x088 */ Encounter* curEncounter;
/* 0x08C */ Enemy* curEnemy; /* 0x08C */ Enemy* curEnemy;
/* 0x090 */ s32 fadeOutAmount; /* 0x090 */ s32 fadeOutAmount;
/* 0x094 */ s32 unk_94; /* 0x094 */ s32 substateDelay;
/* 0x098 */ s32 fadeOutAccel; /* 0x098 */ s32 fadeOutAccel;
/* 0x09C */ s32 battleStartCountdown; /* 0x09C */ s32 battleStartCountdown;
/* 0x0A0 */ FieldStatus dizzyAttack; /* 0x0A0 */ FieldStatus dizzyAttack;

View File

@ -659,7 +659,7 @@
#define EVT_EXIT_WALK(walkDistance, exitIdx, map, entryIdx) \ #define EVT_EXIT_WALK(walkDistance, exitIdx, map, entryIdx) \
{ \ { \
SetGroup(EVT_GROUP_1B) \ SetGroup(EVT_GROUP_EXIT_MAP) \
Call(UseExitHeading, walkDistance, exitIdx) \ Call(UseExitHeading, walkDistance, exitIdx) \
Exec(ExitWalk) \ Exec(ExitWalk) \
Call(GotoMap, Ref(map), entryIdx) \ Call(GotoMap, Ref(map), entryIdx) \
@ -668,7 +668,7 @@
End \ End \
} }
// alternate version of EVT_EXIT_WALK used on Pleasant Path which does not join EVT_GROUP_1B // alternate version of EVT_EXIT_WALK used on Pleasant Path which does not join EVT_GROUP_EXIT_MAP
#define EVT_EXIT_WALK_NOK(walkDistance, exitIdx, map, entryIdx) \ #define EVT_EXIT_WALK_NOK(walkDistance, exitIdx, map, entryIdx) \
{ \ { \
Call(UseExitHeading, walkDistance, exitIdx) \ Call(UseExitHeading, walkDistance, exitIdx) \
@ -682,7 +682,7 @@
// alternate version of EVT_EXIT_WALK which includes a call to DisablePlayerInput // alternate version of EVT_EXIT_WALK which includes a call to DisablePlayerInput
#define EVT_EXIT_WALK_FIXED(walkDistance, exitIdx, map, entryIdx) \ #define EVT_EXIT_WALK_FIXED(walkDistance, exitIdx, map, entryIdx) \
{ \ { \
SetGroup(EVT_GROUP_1B) \ SetGroup(EVT_GROUP_EXIT_MAP) \
Call(DisablePlayerInput, TRUE) \ Call(DisablePlayerInput, TRUE) \
Call(UseExitHeading, walkDistance, exitIdx) \ Call(UseExitHeading, walkDistance, exitIdx) \
Exec(ExitWalk) \ Exec(ExitWalk) \
@ -694,7 +694,7 @@
#define EVT_EXIT_SINGLE_DOOR(exitIdx, map, entryIdx, colliderID, modelID, swingDir) \ #define EVT_EXIT_SINGLE_DOOR(exitIdx, map, entryIdx, colliderID, modelID, swingDir) \
{ \ { \
SetGroup(EVT_GROUP_1B) \ SetGroup(EVT_GROUP_EXIT_MAP) \
Call(DisablePlayerInput, TRUE) \ Call(DisablePlayerInput, TRUE) \
Set(LVar0, exitIdx) \ Set(LVar0, exitIdx) \
Set(LVar1, colliderID) \ Set(LVar1, colliderID) \
@ -710,7 +710,7 @@
#define EVT_EXIT_SPLIT_SINGLE_DOOR(exitIdx, map, entryIdx, colliderID, topModelID, bottomModelID, swingDir) \ #define EVT_EXIT_SPLIT_SINGLE_DOOR(exitIdx, map, entryIdx, colliderID, topModelID, bottomModelID, swingDir) \
{ \ { \
SetGroup(EVT_GROUP_1B) \ SetGroup(EVT_GROUP_EXIT_MAP) \
Call(DisablePlayerInput, TRUE) \ Call(DisablePlayerInput, TRUE) \
Set(LVar0, exitIdx) \ Set(LVar0, exitIdx) \
Set(LVar1, colliderID) \ Set(LVar1, colliderID) \
@ -727,7 +727,7 @@
#define EVT_EXIT_DOUBLE_DOOR(exitIdx, map, entryIdx, colliderID, leftDoorModelID, rightDoorModelID) \ #define EVT_EXIT_DOUBLE_DOOR(exitIdx, map, entryIdx, colliderID, leftDoorModelID, rightDoorModelID) \
{ \ { \
SetGroup(EVT_GROUP_1B) \ SetGroup(EVT_GROUP_EXIT_MAP) \
Call(DisablePlayerInput, TRUE) \ Call(DisablePlayerInput, TRUE) \
Set(LVar0, exitIdx) \ Set(LVar0, exitIdx) \
Set(LVar1, colliderID) \ Set(LVar1, colliderID) \

View File

@ -93,8 +93,8 @@ extern Vec3s StandardActorHomePositions[];
extern SaveData gCurrentSaveFile; extern SaveData gCurrentSaveFile;
extern s32 gEncounterSubState; extern s32 gEncounterSubState;
extern s32 timeFreezeMode; extern s32 gTimeFreezeMode;
extern s32 D_8009A678; extern b32 EncounterStateChanged;
extern u8 IntroMessageIdx; extern u8 IntroMessageIdx;
extern s32 PartnerIDFromMenuIndex[12]; // partner IDs extern s32 PartnerIDFromMenuIndex[12]; // partner IDs

View File

@ -40,7 +40,7 @@ void init_enter_world_shared(void) {
gOverrideFlags |= GLOBAL_OVERRIDES_DISABLE_DRAW_FRAME; gOverrideFlags |= GLOBAL_OVERRIDES_DISABLE_DRAW_FRAME;
evt_set_variable(NULL, GB_Unused_EVT_01, gGameStatusPtr->unk_A9); evt_set_variable(NULL, GB_Unused_EVT_01, gGameStatusPtr->unk_A9);
timeFreezeMode = 0; gTimeFreezeMode = TIME_FREEZE_NONE;
} }
void state_step_enter_world(void) { void state_step_enter_world(void) {
@ -61,7 +61,7 @@ void state_step_enter_world(void) {
} }
gGameStatusPtr->prevArea = gGameStatusPtr->areaID; gGameStatusPtr->prevArea = gGameStatusPtr->areaID;
set_time_freeze_mode(TIME_FREEZE_NORMAL); set_time_freeze_mode(TIME_FREEZE_NONE);
if (gGameStatusPtr->demoState == DEMO_STATE_NONE) { if (gGameStatusPtr->demoState == DEMO_STATE_NONE) {
disable_player_input(); disable_player_input();
} }
@ -158,7 +158,7 @@ void state_step_change_map(void) {
gGameStatusPtr->context = CONTEXT_WORLD; gGameStatusPtr->context = CONTEXT_WORLD;
gGameStatusPtr->debugScripts = DEBUG_SCRIPTS_NONE; gGameStatusPtr->debugScripts = DEBUG_SCRIPTS_NONE;
load_map_by_IDs(gGameStatusPtr->areaID, gGameStatusPtr->mapID, LOAD_FROM_MAP); load_map_by_IDs(gGameStatusPtr->areaID, gGameStatusPtr->mapID, LOAD_FROM_MAP);
set_time_freeze_mode(TIME_FREEZE_NORMAL); set_time_freeze_mode(TIME_FREEZE_NONE);
nuContRmbForceStopEnd(); nuContRmbForceStopEnd();
if (gGameStatusPtr->demoState == DEMO_STATE_NONE) { if (gGameStatusPtr->demoState == DEMO_STATE_NONE) {
disable_player_input(); disable_player_input();

View File

@ -327,7 +327,7 @@ s32 get_coin_drop_amount(Enemy* enemy) {
amt += currentEncounter->coinsEarned; amt += currentEncounter->coinsEarned;
if (enemy->flags & (ENEMY_FLAG_NO_DROPS | ENEMY_FLAG_40000)) { if (enemy->flags & (ENEMY_FLAG_NO_DROPS | ENEMY_FLAG_NO_DELAY_AFTER_FLEE)) {
amt = 0; amt = 0;
} }

View File

@ -404,7 +404,7 @@ HitID player_test_lateral_overlap(s32 mode, PlayerStatus* playerStatus, f32* x,
hitDepth = length + radius; hitDepth = length + radius;
hitID = player_raycast_general(mode, *x, *y + height, *z, sinTheta, 0, cosTheta, &hitX, &hitY, &hitZ, &hitDepth, &hitNx, &hitNy, &hitNz); hitID = player_raycast_general(mode, *x, *y + height, *z, sinTheta, 0, cosTheta, &hitX, &hitY, &hitZ, &hitDepth, &hitNx, &hitNy, &hitNz);
if (mode == 3) { if (mode == PLAYER_COLLISION_HAMMER) {
targetDx = 0.0f; targetDx = 0.0f;
targetDz = 0.0f; targetDz = 0.0f;
} else { } else {
@ -452,12 +452,12 @@ HitID player_raycast_general(s32 mode, f32 startX, f32 startY, f32 startZ, f32 d
} else { } else {
ret = entityID | COLLISION_WITH_ENTITY_BIT; ret = entityID | COLLISION_WITH_ENTITY_BIT;
} }
} else if (mode == PLAYER_COLLISION_3) { } else if (mode == PLAYER_COLLISION_HAMMER) {
ret = test_ray_colliders(COLLIDER_FLAG_IGNORE_SHELL, startX, startY, startZ, dirX, dirY, dirZ, ret = test_ray_colliders(COLLIDER_FLAG_IGNORE_SHELL, startX, startY, startZ, dirX, dirY, dirZ,
hitX, hitY, hitZ, hitDepth, hitNx, hitNy, hitNz); hitX, hitY, hitZ, hitDepth, hitNx, hitNy, hitNz);
} }
if (mode == PLAYER_COLLISION_1 || mode == PLAYER_COLLISION_3) { if (mode == PLAYER_COLLISION_1 || mode == PLAYER_COLLISION_HAMMER) {
return ret; return ret;
} }
@ -1098,7 +1098,7 @@ s32 has_valid_conversation_npc(void) {
s32 ret = FALSE; s32 ret = FALSE;
s32 cond; s32 cond;
if (npc != NULL && !(npc->flags & NPC_FLAG_10000000)) { if (npc != NULL && !(npc->flags & NPC_FLAG_USE_INSPECT_ICON)) {
cond = !(playerStatus->flags & PS_FLAG_INPUT_DISABLED) && (playerStatus->flags & PS_FLAG_HAS_CONVERSATION_NPC); cond = !(playerStatus->flags & PS_FLAG_INPUT_DISABLED) && (playerStatus->flags & PS_FLAG_HAS_CONVERSATION_NPC);
ret = cond; ret = cond;
} }
@ -1160,7 +1160,7 @@ s32 func_800E06D8(void) {
if (playerStatus->flags & PS_FLAG_HAS_CONVERSATION_NPC if (playerStatus->flags & PS_FLAG_HAS_CONVERSATION_NPC
&& !(playerStatus->flags & PS_FLAG_INPUT_DISABLED) && !(playerStatus->flags & PS_FLAG_INPUT_DISABLED)
&& npc != NULL && npc != NULL
&& npc->flags & NPC_FLAG_10000000 && npc->flags & NPC_FLAG_USE_INSPECT_ICON
) { ) {
playerStatus->interactingWithID = NO_COLLIDER; playerStatus->interactingWithID = NO_COLLIDER;
return TRUE; return TRUE;
@ -1236,7 +1236,7 @@ void check_for_interactables(void) {
(!(playerStatus->flags & PS_FLAG_INPUT_DISABLED)) (!(playerStatus->flags & PS_FLAG_INPUT_DISABLED))
&& (playerStatus->flags & PS_FLAG_HAS_CONVERSATION_NPC) && (playerStatus->flags & PS_FLAG_HAS_CONVERSATION_NPC)
&& (npc != NULL) && (npc != NULL)
&& (npc->flags & NPC_FLAG_10000000) && (npc->flags & NPC_FLAG_USE_INSPECT_ICON)
) { ) {
curInteraction = npc->npcID | COLLISION_WITH_NPC_BIT; curInteraction = npc->npcID | COLLISION_WITH_NPC_BIT;
if (playerStatus->interactingWithID == curInteraction) { if (playerStatus->interactingWithID == curInteraction) {

View File

@ -10,15 +10,15 @@ f32 StepUpLastYaw;
extern f32 GravityParamsStartJump[]; extern f32 GravityParamsStartJump[];
s32 collision_check_player_intersecting_world(s32 mode, s32 arg1, f32 yaw); HitID collision_check_player_intersecting_world(s32 mode, s32 arg1, f32 yaw);
s32 phys_check_interactable_collision(void); HitID phys_check_interactable_collision(void);
void phys_save_ground_pos(void); void phys_save_ground_pos(void);
void record_jump_apex(void) { void record_jump_apex(void) {
gPlayerStatus.jumpApexHeight = gPlayerStatus.pos.y; gPlayerStatus.jumpApexHeight = gPlayerStatus.pos.y;
} }
s32 can_trigger_loading_zone(void) { b32 can_trigger_loading_zone(void) {
PlayerData* playerData = &gPlayerData; PlayerData* playerData = &gPlayerData;
s32 actionState = gPlayerStatusPtr->actionState; s32 actionState = gPlayerStatusPtr->actionState;
PartnerStatus* partnerStatus = &gPartnerStatus; PartnerStatus* partnerStatus = &gPartnerStatus;
@ -64,15 +64,15 @@ void move_player(s32 duration, f32 heading, f32 speed) {
} }
} }
s32 collision_main_above(void) { HitID collision_main_above(void) {
PlayerStatus* playerStatus = &gPlayerStatus; PlayerStatus* playerStatus = &gPlayerStatus;
CollisionStatus* collisionStatus = &gCollisionStatus; CollisionStatus* collisionStatus = &gCollisionStatus;
HitID hitResult;
f32 x, y, z; f32 x, y, z;
f32 new_var; f32 new_var;
f32 moveAngle; f32 moveAngle;
f32 moveMagnitude; f32 moveMagnitude;
f32 sp2C; f32 sp2C;
s32 hitResult;
f32 phi_f2; f32 phi_f2;
new_var = sp2C = playerStatus->colliderHeight * 0.5f; new_var = sp2C = playerStatus->colliderHeight * 0.5f;
@ -522,7 +522,7 @@ void collision_main_lateral(void) {
switch (playerStatus->actionState) { switch (playerStatus->actionState) {
case ACTION_STATE_STEP_UP: case ACTION_STATE_STEP_UP:
collision_check_player_intersecting_world(0, 0, collision_check_player_intersecting_world(PLAYER_COLLISION_0, 0,
playerStatus->spriteFacingAngle - 90.0f + gCameras[gCurrentCameraID].curYaw); playerStatus->spriteFacingAngle - 90.0f + gCameras[gCurrentCameraID].curYaw);
break; break;
case ACTION_STATE_RIDE: case ACTION_STATE_RIDE:
@ -539,7 +539,7 @@ void collision_main_lateral(void) {
gCameras[CAM_DEFAULT].targetPos.y = playerStatus->pos.y; gCameras[CAM_DEFAULT].targetPos.y = playerStatus->pos.y;
gCameras[CAM_DEFAULT].targetPos.z = playerStatus->pos.z; gCameras[CAM_DEFAULT].targetPos.z = playerStatus->pos.z;
if (playerStatus->curAlpha != 128) { if (playerStatus->curAlpha != 128) {
collision_check_player_intersecting_world(0, 0, collision_check_player_intersecting_world(PLAYER_COLLISION_0, 0,
atan2(0.0f, 0.0f, playerStatus->pushVel.x, playerStatus->pushVel.z)); atan2(0.0f, 0.0f, playerStatus->pushVel.x, playerStatus->pushVel.z));
} }
} }
@ -562,7 +562,7 @@ void collision_main_lateral(void) {
playerStatus->pushVel.y != 0.0f || playerStatus->pushVel.y != 0.0f ||
playerStatus->pushVel.z != 0.0f) playerStatus->pushVel.z != 0.0f)
{ {
collision_check_player_intersecting_world(0, 0, collision_check_player_intersecting_world(PLAYER_COLLISION_0, 0,
playerStatus->spriteFacingAngle - 90.0f + gCameras[gCurrentCameraID].curYaw); playerStatus->spriteFacingAngle - 90.0f + gCameras[gCurrentCameraID].curYaw);
} }
break; break;
@ -595,7 +595,7 @@ void collision_main_lateral(void) {
playerStatus->pushVel.y != 0.0f || playerStatus->pushVel.y != 0.0f ||
playerStatus->pushVel.z != 0.0f) playerStatus->pushVel.z != 0.0f)
{ {
collision_check_player_intersecting_world(0, 0, collision_check_player_intersecting_world(PLAYER_COLLISION_0, 0,
playerStatus->spriteFacingAngle - 90.0f + gCameras[gCurrentCameraID].curYaw); playerStatus->spriteFacingAngle - 90.0f + gCameras[gCurrentCameraID].curYaw);
} }
break; break;
@ -685,7 +685,7 @@ void collision_main_lateral(void) {
collisionStatus->curWall = result; collisionStatus->curWall = result;
if (!(playerStatus->flags & PS_FLAG_MOVEMENT_LOCKED) && playerStatus->actionState != ACTION_STATE_HAMMER) { if (!(playerStatus->flags & PS_FLAG_MOVEMENT_LOCKED) && playerStatus->actionState != ACTION_STATE_HAMMER) {
if (speed == 0.0f) { if (speed == 0.0f) {
collision_check_player_intersecting_world(0, 0, collision_check_player_intersecting_world(PLAYER_COLLISION_0, 0,
playerStatus->spriteFacingAngle - 90.0f + gCameras[gCurrentCameraID].curYaw); playerStatus->spriteFacingAngle - 90.0f + gCameras[gCurrentCameraID].curYaw);
break; break;
} }
@ -736,8 +736,8 @@ void collision_main_lateral(void) {
} else { } else {
yaw2 = playerStatus->spriteFacingAngle - 90.0f + gCameras[gCurrentCameraID].curYaw; yaw2 = playerStatus->spriteFacingAngle - 90.0f + gCameras[gCurrentCameraID].curYaw;
} }
if (collision_check_player_intersecting_world(0, 0, yaw2) <= NO_COLLIDER) { if (collision_check_player_intersecting_world(PLAYER_COLLISION_0, 0, yaw2) <= NO_COLLIDER) {
collision_check_player_intersecting_world(1, playerStatus->colliderHeight * 0.75f, yaw2); collision_check_player_intersecting_world(PLAYER_COLLISION_1, playerStatus->colliderHeight * 0.75f, yaw2);
} }
} }
} }
@ -756,9 +756,9 @@ void collision_main_lateral(void) {
} }
} }
s32 collision_check_player_intersecting_world(s32 mode, s32 arg1, f32 yaw) { HitID collision_check_player_intersecting_world(s32 mode, s32 arg1, f32 yaw) {
HitID ret = NO_COLLIDER;
f32 angle = 0.0f; f32 angle = 0.0f;
s32 ret = -1;
s32 i; s32 i;
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
@ -791,16 +791,16 @@ s32 collision_check_player_intersecting_world(s32 mode, s32 arg1, f32 yaw) {
return ret; return ret;
} }
s32 func_800E4404(s32 mode, s32 arg1, f32 arg2, f32* outX, f32* outY, f32* outZ) { HitID func_800E4404(s32 mode, s32 offsetY, f32 arg2, f32* outX, f32* outY, f32* outZ) {
HitID ret = NO_COLLIDER;
f32 angle = 0.0f; f32 angle = 0.0f;
s32 ret = -1;
s32 i; s32 i;
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
f32 x = *outX; f32 x = *outX;
f32 y = *outY + arg1; f32 y = *outY + offsetY;
f32 z = *outZ; f32 z = *outZ;
s32 hitID = player_test_lateral_overlap(mode, gPlayerStatusPtr, &x, &y, &z, 0, angle); s32 hitID = player_test_lateral_overlap(mode, gPlayerStatusPtr, &x, &y, &z, 0.0f, angle);
if (hitID > NO_COLLIDER) { if (hitID > NO_COLLIDER) {
ret = hitID; ret = hitID;
@ -989,80 +989,80 @@ void phys_main_collision_below(void) {
} }
void func_800E4AD8(s32 mode) { void func_800E4AD8(s32 mode) {
Camera* currentCamera = &gCameras[gCurrentCameraID]; f32 camYaw = gCameras[gCurrentCameraID].curYaw;
collision_check_player_intersecting_world(mode, 0, gPlayerStatus.spriteFacingAngle - 90.0f + currentCamera->curYaw); collision_check_player_intersecting_world(mode, 0, gPlayerStatus.spriteFacingAngle - 90.0f + camYaw);
} }
void func_800E4B40(s32 mode, f32* arg1, f32* arg2, f32* arg3) { void func_800E4B40(s32 mode, f32* outX, f32* outY, f32* outZ) {
Camera* currentCamera = &gCameras[gCurrentCameraID]; f32 camYaw = gCameras[gCurrentCameraID].curYaw;
func_800E4404(mode, 0, gPlayerStatus.spriteFacingAngle - 90.0f + currentCamera->curYaw, arg1, arg2, arg3); func_800E4404(mode, 0, gPlayerStatus.spriteFacingAngle - 90.0f + camYaw, outX, outY, outZ);
} }
void collision_lava_reset_check_additional_overlaps(void) { void collision_lava_reset_check_additional_overlaps(void) {
PlayerStatus* playerStatus = &gPlayerStatus; PlayerStatus* playerStatus = &gPlayerStatus;
f32 x, y, z; f32 x, y, z;
f32 temp_f0; f32 yaw;
if (playerStatus->animFlags & PA_FLAG_USING_PEACH_PHYSICS) { if (playerStatus->animFlags & PA_FLAG_USING_PEACH_PHYSICS) {
collision_lateral_peach(); collision_lateral_peach();
return; return;
} }
temp_f0 = clamp_angle(playerStatus->targetYaw - 30.0); yaw = clamp_angle(playerStatus->targetYaw - 30.0);
y = playerStatus->pos.y + (playerStatus->colliderHeight * 0.75f); y = playerStatus->pos.y + (playerStatus->colliderHeight * 0.75f);
x = playerStatus->pos.x; x = playerStatus->pos.x;
z = playerStatus->pos.z; z = playerStatus->pos.z;
player_test_lateral_overlap(PLAYER_COLLISION_0, &gPlayerStatus, &x, &y, &z, 0.0f, temp_f0); player_test_lateral_overlap(PLAYER_COLLISION_0, &gPlayerStatus, &x, &y, &z, 0.0f, yaw);
playerStatus->pos.x = x; playerStatus->pos.x = x;
playerStatus->pos.z = z; playerStatus->pos.z = z;
temp_f0 = clamp_angle(playerStatus->targetYaw + 30.0); yaw = clamp_angle(playerStatus->targetYaw + 30.0);
y = playerStatus->pos.y + (playerStatus->colliderHeight * 0.75f); y = playerStatus->pos.y + (playerStatus->colliderHeight * 0.75f);
x = playerStatus->pos.x; x = playerStatus->pos.x;
z = playerStatus->pos.z; z = playerStatus->pos.z;
player_test_lateral_overlap(PLAYER_COLLISION_0, &gPlayerStatus, &x, &y, &z, 0.0f, temp_f0); player_test_lateral_overlap(PLAYER_COLLISION_0, &gPlayerStatus, &x, &y, &z, 0.0f, yaw);
playerStatus->pos.x = x; playerStatus->pos.x = x;
playerStatus->pos.z = z; playerStatus->pos.z = z;
temp_f0 = clamp_angle(playerStatus->targetYaw - 30.0); yaw = clamp_angle(playerStatus->targetYaw - 30.0);
x = playerStatus->pos.x; x = playerStatus->pos.x;
y = playerStatus->pos.y; y = playerStatus->pos.y;
z = playerStatus->pos.z; z = playerStatus->pos.z;
player_test_lateral_overlap(PLAYER_COLLISION_0, &gPlayerStatus, &x, &y, &z, 0.0f, temp_f0); player_test_lateral_overlap(PLAYER_COLLISION_0, &gPlayerStatus, &x, &y, &z, 0.0f, yaw);
playerStatus->pos.x = x; playerStatus->pos.x = x;
playerStatus->pos.z = z; playerStatus->pos.z = z;
temp_f0 = clamp_angle(playerStatus->targetYaw + 30.0); yaw = clamp_angle(playerStatus->targetYaw + 30.0);
x = playerStatus->pos.x; x = playerStatus->pos.x;
y = playerStatus->pos.y; y = playerStatus->pos.y;
z = playerStatus->pos.z; z = playerStatus->pos.z;
player_test_lateral_overlap(PLAYER_COLLISION_0, &gPlayerStatus, &x, &y, &z, 0.0f, temp_f0); player_test_lateral_overlap(PLAYER_COLLISION_0, &gPlayerStatus, &x, &y, &z, 0.0f, yaw);
playerStatus->pos.x = x; playerStatus->pos.x = x;
playerStatus->pos.z = z; playerStatus->pos.z = z;
temp_f0 = clamp_angle(playerStatus->targetYaw + 90.0); yaw = clamp_angle(playerStatus->targetYaw + 90.0);
x = playerStatus->pos.x; x = playerStatus->pos.x;
y = playerStatus->pos.y; y = playerStatus->pos.y;
z = playerStatus->pos.z; z = playerStatus->pos.z;
player_test_lateral_overlap(PLAYER_COLLISION_0, &gPlayerStatus, &x, &y, &z, 0.0f, temp_f0); player_test_lateral_overlap(PLAYER_COLLISION_0, &gPlayerStatus, &x, &y, &z, 0.0f, yaw);
playerStatus->pos.x = x; playerStatus->pos.x = x;
playerStatus->pos.z = z; playerStatus->pos.z = z;
temp_f0 = clamp_angle(playerStatus->targetYaw - 90.0); yaw = clamp_angle(playerStatus->targetYaw - 90.0);
x = playerStatus->pos.x; x = playerStatus->pos.x;
y = playerStatus->pos.y; y = playerStatus->pos.y;
z = playerStatus->pos.z; z = playerStatus->pos.z;
player_test_lateral_overlap(PLAYER_COLLISION_0, &gPlayerStatus, &x, &y, &z, 0.0f, temp_f0); player_test_lateral_overlap(PLAYER_COLLISION_0, &gPlayerStatus, &x, &y, &z, 0.0f, yaw);
playerStatus->pos.x = x; playerStatus->pos.x = x;
playerStatus->pos.z = z; playerStatus->pos.z = z;
temp_f0 = clamp_angle(playerStatus->targetYaw + 180.0); yaw = clamp_angle(playerStatus->targetYaw + 180.0);
x = playerStatus->pos.x; x = playerStatus->pos.x;
y = playerStatus->pos.y; y = playerStatus->pos.y;
z = playerStatus->pos.z; z = playerStatus->pos.z;
player_test_lateral_overlap(PLAYER_COLLISION_0, &gPlayerStatus, &x, &y, &z, 0.0f, temp_f0); player_test_lateral_overlap(PLAYER_COLLISION_0, &gPlayerStatus, &x, &y, &z, 0.0f, yaw);
playerStatus->pos.x = x; playerStatus->pos.x = x;
playerStatus->pos.z = z; playerStatus->pos.z = z;
} }
@ -1141,10 +1141,10 @@ void phys_update_interact_collider(void) {
gCollisionStatus.curInspect = phys_check_interactable_collision(); gCollisionStatus.curInspect = phys_check_interactable_collision();
} }
s32 phys_check_interactable_collision(void) { HitID phys_check_interactable_collision(void) {
PlayerStatus* playerStatus = &gPlayerStatus; PlayerStatus* playerStatus = &gPlayerStatus;
HitID ret = NO_COLLIDER;
f32 x, y, z, yaw; f32 x, y, z, yaw;
s32 ret = -1;
if (playerStatus->flags & PS_FLAG_INPUT_DISABLED) { if (playerStatus->flags & PS_FLAG_INPUT_DISABLED) {
return ret; return ret;
@ -1190,7 +1190,7 @@ s32 phys_can_player_interact(void) {
return ret; return ret;
} }
f32 func_800E5348(void) { f32 player_get_side_angle(void) {
f32 deltaYaw = get_clamped_angle_diff(gCameras[gCurrentCameraID].curYaw, gPlayerStatus.curYaw); f32 deltaYaw = get_clamped_angle_diff(gCameras[gCurrentCameraID].curYaw, gPlayerStatus.curYaw);
if (deltaYaw < -5.0f && deltaYaw > -175.0f) { if (deltaYaw < -5.0f && deltaYaw > -175.0f) {

View File

@ -678,7 +678,7 @@ s32 peach_disguise_check_overlaps(void) {
f32 x = playerStatus->pos.x + (dx * radius); f32 x = playerStatus->pos.x + (dx * radius);
f32 y = playerStatus->pos.y + 4.0f; f32 y = playerStatus->pos.y + 4.0f;
f32 z = playerStatus->pos.z - (dy * radius); f32 z = playerStatus->pos.z - (dy * radius);
hitID = player_test_lateral_overlap(PLAYER_COLLISION_3, playerStatus, &x, &y, &z, 4.0f, yaw); hitID = player_test_lateral_overlap(PLAYER_COLLISION_HAMMER, playerStatus, &x, &y, &z, 4.0f, yaw);
if (hitID >= 0) { if (hitID >= 0) {
break; break;
} }

View File

@ -450,7 +450,7 @@ EvtScript N(EVS_AnimBowser_DeathMain) = {
UseArray(FakeBowserAnimState) UseArray(FakeBowserAnimState)
Call(N(StartRumbleWithParams), 256, 30) Call(N(StartRumbleWithParams), 256, 30)
Thread Thread
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(ShakeCam, CAM_BATTLE, 0, 20, Float(3.0)) Call(ShakeCam, CAM_BATTLE, 0, 20, Float(3.0))
EndThread EndThread
Call(SetPartFlagBits, ACTOR_SELF, PRT_HEAD, ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, TRUE) Call(SetPartFlagBits, ACTOR_SELF, PRT_HEAD, ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, TRUE)
@ -476,35 +476,35 @@ EvtScript N(EVS_AnimBowser_DeathMain) = {
Wait(30) Wait(30)
Call(PlaySoundAtModel, MODEL_k1, SOUND_DISTANT_THUD, SOUND_SPACE_DEFAULT) Call(PlaySoundAtModel, MODEL_k1, SOUND_DISTANT_THUD, SOUND_SPACE_DEFAULT)
Thread Thread
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0)) Call(ShakeCam, CAM_BATTLE, 0, 5, Float(1.0))
EndThread EndThread
Call(N(StartRumbleWithParams), 100, 20) Call(N(StartRumbleWithParams), 100, 20)
Wait(20) Wait(20)
Call(PlaySoundAtModel, MODEL_u1, SOUND_DISTANT_THUD, SOUND_SPACE_DEFAULT) Call(PlaySoundAtModel, MODEL_u1, SOUND_DISTANT_THUD, SOUND_SPACE_DEFAULT)
Thread Thread
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(ShakeCam, CAM_BATTLE, 0, 10, Float(1.5)) Call(ShakeCam, CAM_BATTLE, 0, 10, Float(1.5))
EndThread EndThread
Call(N(StartRumbleWithParams), 150, 20) Call(N(StartRumbleWithParams), 150, 20)
Wait(30) Wait(30)
Call(PlaySoundAtModel, MODEL_p1, SOUND_DISTANT_THUD, SOUND_SPACE_DEFAULT) Call(PlaySoundAtModel, MODEL_p1, SOUND_DISTANT_THUD, SOUND_SPACE_DEFAULT)
Thread Thread
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(ShakeCam, CAM_BATTLE, 0, 10, Float(1.0)) Call(ShakeCam, CAM_BATTLE, 0, 10, Float(1.0))
EndThread EndThread
Call(N(StartRumbleWithParams), 100, 20) Call(N(StartRumbleWithParams), 100, 20)
Wait(30) Wait(30)
Call(PlaySoundAtModel, MODEL_d1, SOUND_DISTANT_THUD, SOUND_SPACE_DEFAULT) Call(PlaySoundAtModel, MODEL_d1, SOUND_DISTANT_THUD, SOUND_SPACE_DEFAULT)
Thread Thread
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(ShakeCam, CAM_BATTLE, 0, 5, Float(0.7)) Call(ShakeCam, CAM_BATTLE, 0, 5, Float(0.7))
EndThread EndThread
Call(N(StartRumbleWithParams), 70, 20) Call(N(StartRumbleWithParams), 70, 20)
Wait(20) Wait(20)
Call(PlaySoundAtModel, MODEL_s1, SOUND_DISTANT_THUD, SOUND_SPACE_DEFAULT) Call(PlaySoundAtModel, MODEL_s1, SOUND_DISTANT_THUD, SOUND_SPACE_DEFAULT)
Thread Thread
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(ShakeCam, CAM_BATTLE, 0, 10, Float(1.0)) Call(ShakeCam, CAM_BATTLE, 0, 10, Float(1.0))
EndThread EndThread
Call(N(StartRumbleWithParams), 100, 20) Call(N(StartRumbleWithParams), 100, 20)
@ -512,12 +512,12 @@ EvtScript N(EVS_AnimBowser_DeathMain) = {
Call(PlaySoundAtModel, MODEL_km1, SOUND_DISTANT_THUD, SOUND_SPACE_DEFAULT) Call(PlaySoundAtModel, MODEL_km1, SOUND_DISTANT_THUD, SOUND_SPACE_DEFAULT)
Call(N(StartRumbleWithParams), 60, 20) Call(N(StartRumbleWithParams), 60, 20)
Thread Thread
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(ShakeCam, CAM_BATTLE, 0, 5, Float(0.6)) Call(ShakeCam, CAM_BATTLE, 0, 5, Float(0.6))
EndThread EndThread
Wait(20) Wait(20)
Thread Thread
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(ShakeCam, CAM_BATTLE, 0, 5, Float(0.3)) Call(ShakeCam, CAM_BATTLE, 0, 5, Float(0.3))
EndThread EndThread
Call(N(StartRumbleWithParams), 30, 20) Call(N(StartRumbleWithParams), 30, 20)

View File

@ -19,16 +19,22 @@ extern EvtScript EVS_Player_NoDamageHit;
extern PlayerCelebrationAnimOptions bPlayerCelebrations; extern PlayerCelebrationAnimOptions bPlayerCelebrations;
BSS s32 D_8029FB90; BSS s32 BattleMerleeEffectsTime;
BSS f32 D_8029FB94; BSS f32 BattleMerleeBasePosY;
BSS EffectInstance* BattleMerleeOrbEffect; BSS EffectInstance* BattleMerleeOrbEffect;
BSS EffectInstance* BattleMerleeWaveEffect; BSS EffectInstance* BattleMerleeWaveEffect;
BSS s32 RefundHudElem; BSS s32 HID_Refund;
BSS s16 D_8029FBA4; BSS s16 BattleMerleeEffectsState;
BSS s32 D_8029FBA8; BSS s32 HID_Happy;
BSS s32 D_8029FBAC; BSS s32 HID_HPDrain;
BSS s32 D_8029FBB0[3]; BSS s32 D_8029FBB0[3];
enum {
MERLEE_EFFECTS_HOLD = 0, // effects appear and track Merlee's position
MERLEE_EFFECTS_RELEASE = 1, // effects grow larger before vanishing
MERLEE_EFFECTS_DISMISS = 2, // effects vanish and are dismissed
};
API_CALLABLE(ForceDisablePlayerBlurImmediately); API_CALLABLE(ForceDisablePlayerBlurImmediately);
void btl_set_player_idle_anims(void) { void btl_set_player_idle_anims(void) {
@ -207,8 +213,8 @@ API_CALLABLE(GiveRefund) {
posY = player->curPos.y; posY = player->curPos.y;
posZ = player->curPos.z; posZ = player->curPos.z;
get_screen_coords(gCurrentCameraID, posX, posY, posZ, &iconPosX, &iconPosY, &iconPosZ); get_screen_coords(gCurrentCameraID, posX, posY, posZ, &iconPosX, &iconPosY, &iconPosZ);
RefundHudElem = hud_element_create(&HES_Refund); HID_Refund = hud_element_create(&HES_Refund);
hud_element_set_render_pos(RefundHudElem, iconPosX + 36, iconPosY - 63); hud_element_set_render_pos(HID_Refund, iconPosX + 36, iconPosY - 63);
} }
script->varTable[0] = delayTime; script->varTable[0] = delayTime;
@ -220,7 +226,7 @@ API_CALLABLE(GiveRefundCleanup) {
s32 sellValue = gItemTable[gBattleStatus.moveArgument].sellValue; s32 sellValue = gItemTable[gBattleStatus.moveArgument].sellValue;
if (player_team_is_ability_active(gBattleStatus.playerActor, ABILITY_REFUND) && sellValue > 0) { if (player_team_is_ability_active(gBattleStatus.playerActor, ABILITY_REFUND) && sellValue > 0) {
hud_element_free(RefundHudElem); hud_element_free(HID_Refund);
} }
return ApiStatus_DONE2; return ApiStatus_DONE2;
@ -410,14 +416,14 @@ API_CALLABLE(BattleMerleeUpdateFX) {
if (isInitialCall) { if (isInitialCall) {
script->functionTemp[1] = 0; script->functionTemp[1] = 0;
D_8029FB94 = merlee->pos.y; BattleMerleeBasePosY = merlee->pos.y;
BattleMerleeOrbEffect = fx_energy_orb_wave(0, merlee->pos.x, merlee->pos.y, merlee->pos.z, 0.4f, 0); BattleMerleeOrbEffect = fx_energy_orb_wave(0, merlee->pos.x, merlee->pos.y, merlee->pos.z, 0.4f, 0);
BattleMerleeWaveEffect = fx_energy_orb_wave(3, merlee->pos.x, merlee->pos.y, merlee->pos.z, 0.00001f, 0); BattleMerleeWaveEffect = fx_energy_orb_wave(3, merlee->pos.x, merlee->pos.y, merlee->pos.z, 0.00001f, 0);
D_8029FBA4 = 0; BattleMerleeEffectsState = MERLEE_EFFECTS_HOLD;
D_8029FB90 = 12; BattleMerleeEffectsTime = 12;
sfx_play_sound(SOUND_MAGIC_ASCENDING); sfx_play_sound(SOUND_MAGIC_ASCENDING);
} }
merlee->pos.y = D_8029FB94 + (sin_rad(DEG_TO_RAD(script->functionTemp[1])) * 3.0f); merlee->pos.y = BattleMerleeBasePosY + (sin_rad(DEG_TO_RAD(script->functionTemp[1])) * 3.0f);
script->functionTemp[1] += 10; script->functionTemp[1] += 10;
script->functionTemp[1] = clamp_angle(script->functionTemp[1]); script->functionTemp[1] = clamp_angle(script->functionTemp[1]);
@ -432,7 +438,7 @@ API_CALLABLE(BattleMerleeUpdateFX) {
data->pos.y = merlee->pos.y + 16.0f; data->pos.y = merlee->pos.y + 16.0f;
data->pos.z = merlee->pos.z + 5.0f; data->pos.z = merlee->pos.z + 5.0f;
if (D_8029FBA4 == 2) { if (BattleMerleeEffectsState == MERLEE_EFFECTS_DISMISS) {
BattleMerleeOrbEffect->data.energyOrbWave->scale = 0.00001f; BattleMerleeOrbEffect->data.energyOrbWave->scale = 0.00001f;
BattleMerleeWaveEffect->data.energyOrbWave->scale = 0.00001f; BattleMerleeWaveEffect->data.energyOrbWave->scale = 0.00001f;
BattleMerleeOrbEffect->flags |= FX_INSTANCE_FLAG_DISMISS; BattleMerleeOrbEffect->flags |= FX_INSTANCE_FLAG_DISMISS;
@ -440,28 +446,28 @@ API_CALLABLE(BattleMerleeUpdateFX) {
return ApiStatus_DONE1; return ApiStatus_DONE1;
} }
if (D_8029FBA4 == 1) { if (BattleMerleeEffectsState == MERLEE_EFFECTS_RELEASE) {
data = BattleMerleeOrbEffect->data.energyOrbWave; data = BattleMerleeOrbEffect->data.energyOrbWave;
data->scale += 0.35; data->scale += 0.35;
if (data->scale > 3.5) { if (data->scale > 3.5) {
data->scale = 3.5f; data->scale = 3.5;
} }
if (D_8029FB90 != 0) { if (BattleMerleeEffectsTime != 0) {
D_8029FB90--; BattleMerleeEffectsTime--;
} else { } else {
data = BattleMerleeWaveEffect->data.energyOrbWave; data = BattleMerleeWaveEffect->data.energyOrbWave;
data->scale += 0.5; data->scale += 0.5;
if (data->scale > 5.0) { if (data->scale > 5.0) {
D_8029FBA4 = 2; BattleMerleeEffectsState = MERLEE_EFFECTS_DISMISS;
} }
} }
} }
return ApiStatus_BLOCK; return ApiStatus_BLOCK;
} }
API_CALLABLE(func_802619B4) { API_CALLABLE(BattleMerleeStopFX) {
D_8029FBA4 = 1; BattleMerleeEffectsState = MERLEE_EFFECTS_RELEASE;
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
@ -490,24 +496,24 @@ API_CALLABLE(SpawnTurnEndFX) {
screenY -= 19; screenY -= 19;
if (script->varTable[10] > 0) { if (script->varTable[10] > 0) {
D_8029FBAC = hud_element_create(&HES_HPDrain); HID_HPDrain = hud_element_create(&HES_HPDrain);
hud_element_set_render_pos(D_8029FBAC, screenX, screenY); hud_element_set_render_pos(HID_HPDrain, screenX, screenY);
screenY += 9; screenY += 9;
} }
if (script->varTable[11] > 0 || script->varTable[12] > 0) { if (script->varTable[11] > 0 || script->varTable[12] > 0) {
D_8029FBA8 = hud_element_create(&HES_Happy); HID_Happy = hud_element_create(&HES_Happy);
hud_element_set_render_pos(D_8029FBA8, screenX, screenY); hud_element_set_render_pos(HID_Happy, screenX, screenY);
} }
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
API_CALLABLE(RemoveTurnEndFX) { API_CALLABLE(RemoveTurnEndFX) {
if (script->varTable[10] > 0) { if (script->varTable[10] > 0) {
hud_element_free(D_8029FBAC); hud_element_free(HID_HPDrain);
} }
if (script->varTable[11] > 0 || script->varTable[12] > 0) { if (script->varTable[11] > 0 || script->varTable[12] > 0) {
hud_element_free(D_8029FBA8); hud_element_free(HID_Happy);
} }
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
@ -1611,7 +1617,7 @@ EvtScript EVS_MerleeAttackBonus = {
Call(BattleFadeInMerlee) Call(BattleFadeInMerlee)
Wait(30) Wait(30)
Call(SetNpcAnimation, NPC_BTL_MERLEE, ANIM_BattleMerlee_Release) Call(SetNpcAnimation, NPC_BTL_MERLEE, ANIM_BattleMerlee_Release)
Call(func_802619B4) Call(BattleMerleeStopFX)
Call(UseBattleCamPreset, BTL_CAM_DEFAULT) Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
Call(MoveBattleCamOver, 4) Call(MoveBattleCamOver, 4)
Call(BattleMerleeFadeStageFromBlack) Call(BattleMerleeFadeStageFromBlack)
@ -1660,7 +1666,7 @@ EvtScript EVS_MerleeDefenseBonus = {
Call(BattleFadeInMerlee) Call(BattleFadeInMerlee)
Wait(30) Wait(30)
Call(SetNpcAnimation, NPC_BTL_MERLEE, ANIM_BattleMerlee_Release) Call(SetNpcAnimation, NPC_BTL_MERLEE, ANIM_BattleMerlee_Release)
Call(func_802619B4) Call(BattleMerleeStopFX)
Call(UseBattleCamPreset, BTL_CAM_DEFAULT) Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
Call(MoveBattleCamOver, 4) Call(MoveBattleCamOver, 4)
Call(BattleMerleeFadeStageFromBlack) Call(BattleMerleeFadeStageFromBlack)
@ -1714,7 +1720,7 @@ EvtScript EVS_MerleeExpBonus = {
Call(BattleFadeInMerlee) Call(BattleFadeInMerlee)
Wait(30) Wait(30)
Call(SetNpcAnimation, NPC_BTL_MERLEE, ANIM_BattleMerlee_Release) Call(SetNpcAnimation, NPC_BTL_MERLEE, ANIM_BattleMerlee_Release)
Call(func_802619B4) Call(BattleMerleeStopFX)
Call(UseBattleCamPreset, BTL_CAM_DEFAULT) Call(UseBattleCamPreset, BTL_CAM_DEFAULT)
Call(MoveBattleCamOver, 4) Call(MoveBattleCamOver, 4)
Call(BattleMerleeFadeStageFromBlack) Call(BattleMerleeFadeStageFromBlack)

View File

@ -27,7 +27,7 @@ BSS s32 gEncounterSubState;
BSS u32 __osBbRCountWraps; BSS u32 __osBbRCountWraps;
#endif #endif
BSS void *CurrentSefCmdHandler; BSS void *CurrentSefCmdHandler;
BSS s32 timeFreezeMode; BSS s32 gTimeFreezeMode;
#ifdef BBPLAYER #ifdef BBPLAYER
BSS u32 __osBbLastRCount; BSS u32 __osBbLastRCount;
#endif #endif
@ -64,7 +64,7 @@ BSS OSPiHandle* nuPiCartHandle;
#ifdef BBPLAYER #ifdef BBPLAYER
BSS u32 __osBbVCountWraps; BSS u32 __osBbVCountWraps;
#endif #endif
BSS s8 D_8009A63C; BSS s8 PendingPartnerAbilityResume;
BSS SoundManager* gSoundManager; BSS SoundManager* gSoundManager;
BSS s32 D_8009A644; BSS s32 D_8009A644;
BSS s32 D_8009A648; BSS s32 D_8009A648;
@ -77,9 +77,9 @@ BSS u32 __osFinalrom;
BSS BGMPlayer* gBGMPlayerA; BSS BGMPlayer* gBGMPlayerA;
BSS s16 gFirstStrikeMessagePos; BSS s16 gFirstStrikeMessagePos;
BSS Gfx* gMainGfxPos; BSS Gfx* gMainGfxPos;
BSS s8 D_8009A670; BSS s8 LastBattleStartedBySpin;
BSS DisplayContext* gDisplayContext; BSS DisplayContext* gDisplayContext;
BSS s32 D_8009A678; BSS b32 EncounterStateChanged;
BSS s32 D_8009A67C; BSS s32 D_8009A67C;
#if VERSION_IQUE #if VERSION_IQUE
BSS s32 D_80099258[2]; BSS s32 D_80099258[2];

View File

@ -366,7 +366,7 @@ Camera* initialize_next_camera(CameraInitData* initData) {
camera->lookAt_obj.x = 0; camera->lookAt_obj.x = 0;
camera->lookAt_obj.y = 0; camera->lookAt_obj.y = 0;
camera->lookAt_obj.z = -100.0f; camera->lookAt_obj.z = -100.0f;
camera->curYaw = 0; camera->curYaw = 0.0f;
camera->curBoomLength = 0; camera->curBoomLength = 0;
camera->targetOffsetY = 0; camera->targetOffsetY = 0;
camera->curBoomYaw = 0.0f; camera->curBoomYaw = 0.0f;

File diff suppressed because it is too large Load Diff

View File

@ -199,7 +199,7 @@ void start_battle(Evt* script, s32 songID) {
Encounter* encounter; Encounter* encounter;
s32 i; s32 i;
resume_all_group(EVT_GROUP_01); resume_all_group(EVT_GROUP_FLAG_INTERACT);
currentEncounter->hitType = ENCOUNTER_TRIGGER_NONE; currentEncounter->hitType = ENCOUNTER_TRIGGER_NONE;
enemy->encountered = TRUE; enemy->encountered = TRUE;
@ -243,10 +243,10 @@ void start_battle(Evt* script, s32 songID) {
} }
currentEncounter->fadeOutAmount = 0; currentEncounter->fadeOutAmount = 0;
currentEncounter->unk_94 = 0; currentEncounter->substateDelay = 0;
currentEncounter->scriptedBattle = TRUE; currentEncounter->scriptedBattle = TRUE;
gEncounterState = ENCOUNTER_STATE_PRE_BATTLE; gEncounterState = ENCOUNTER_STATE_PRE_BATTLE;
D_8009A678 = 1; EncounterStateChanged = TRUE;
gEncounterSubState = ENCOUNTER_SUBSTATE_PRE_BATTLE_INIT; gEncounterSubState = ENCOUNTER_SUBSTATE_PRE_BATTLE_INIT;
} }
@ -270,7 +270,7 @@ API_CALLABLE(StartBossBattle) {
Encounter* encounter; Encounter* encounter;
s32 i; s32 i;
resume_all_group(EVT_GROUP_01); resume_all_group(EVT_GROUP_FLAG_INTERACT);
currentEncounter->hitType = ENCOUNTER_TRIGGER_NONE; currentEncounter->hitType = ENCOUNTER_TRIGGER_NONE;
enemy->encountered = TRUE; enemy->encountered = TRUE;
@ -312,10 +312,10 @@ API_CALLABLE(StartBossBattle) {
} }
currentEncounter->fadeOutAmount = 0; currentEncounter->fadeOutAmount = 0;
currentEncounter->unk_94 = 0; currentEncounter->substateDelay = 0;
currentEncounter->scriptedBattle = TRUE; currentEncounter->scriptedBattle = TRUE;
gEncounterState = ENCOUNTER_STATE_PRE_BATTLE; gEncounterState = ENCOUNTER_STATE_PRE_BATTLE;
D_8009A678 = 1; EncounterStateChanged = TRUE;
gEncounterSubState = ENCOUNTER_SUBSTATE_PRE_BATTLE_INIT; gEncounterSubState = ENCOUNTER_SUBSTATE_PRE_BATTLE_INIT;
return ApiStatus_DONE1; return ApiStatus_DONE1;
@ -362,9 +362,9 @@ API_CALLABLE(BindNpcAI) {
} }
if (enemy->flags & ENEMY_FLAG_PASSIVE) { if (enemy->flags & ENEMY_FLAG_PASSIVE) {
groupFlags = EVT_GROUP_08 | EVT_GROUP_02; groupFlags = EVT_GROUP_PASSIVE_NPC;
} else { } else {
groupFlags = EVT_GROUP_08 | EVT_GROUP_02 | EVT_GROUP_01; groupFlags = EVT_GROUP_HOSTILE_NPC;
} }
if (enemy->aiScript != NULL) { if (enemy->aiScript != NULL) {
@ -415,9 +415,9 @@ API_CALLABLE(RestartNpcAI) {
enemy = get_enemy(npcID); enemy = get_enemy(npcID);
if (enemy->flags & ENEMY_FLAG_PASSIVE) { if (enemy->flags & ENEMY_FLAG_PASSIVE) {
groupFlags = EVT_GROUP_08 | EVT_GROUP_02; groupFlags = EVT_GROUP_PASSIVE_NPC;
} else { } else {
groupFlags = EVT_GROUP_08 | EVT_GROUP_02 | EVT_GROUP_01; groupFlags = EVT_GROUP_HOSTILE_NPC;
} }
if (enemy->aiScript != NULL) { if (enemy->aiScript != NULL) {
@ -536,9 +536,9 @@ API_CALLABLE(RestartNpcAux) {
enemy = get_enemy(npcID); enemy = get_enemy(npcID);
if (enemy->flags & ENEMY_FLAG_PASSIVE) { if (enemy->flags & ENEMY_FLAG_PASSIVE) {
groupFlags = EVT_GROUP_08 | EVT_GROUP_02; groupFlags = EVT_GROUP_PASSIVE_NPC;
} else { } else {
groupFlags = EVT_GROUP_08 | EVT_GROUP_02 | EVT_GROUP_01; groupFlags = EVT_GROUP_HOSTILE_NPC;
} }
if (enemy->auxScript != NULL) { if (enemy->auxScript != NULL) {

View File

@ -285,7 +285,7 @@ void entity_HeartBlockContent__anim_heal(Entity* entity, s32 arg1) {
case 5: case 5:
playerStatus->animFlags &= ~PA_FLAG_RAISED_ARMS; playerStatus->animFlags &= ~PA_FLAG_RAISED_ARMS;
enable_player_input(); enable_player_input();
set_time_freeze_mode(TIME_FREEZE_NORMAL); set_time_freeze_mode(TIME_FREEZE_NONE);
gOverrideFlags &= ~GLOBAL_OVERRIDES_40; gOverrideFlags &= ~GLOBAL_OVERRIDES_40;
exec_entity_commandlist(entity); exec_entity_commandlist(entity);
break; break;
@ -380,7 +380,7 @@ void entity_HeartBlock_show_tutorial_message(Entity* entity) {
void entity_HeartBlock_wait_for_close_tutorial(Entity* entity) { void entity_HeartBlock_wait_for_close_tutorial(Entity* entity) {
if (HeartBlockPrinterClosed) { if (HeartBlockPrinterClosed) {
exec_entity_commandlist(entity); exec_entity_commandlist(entity);
set_time_freeze_mode(TIME_FREEZE_NORMAL); set_time_freeze_mode(TIME_FREEZE_NONE);
gOverrideFlags &= ~GLOBAL_OVERRIDES_40; gOverrideFlags &= ~GLOBAL_OVERRIDES_40;
enable_player_input(); enable_player_input();
} }

View File

@ -238,7 +238,7 @@ void entity_HiddenPanel_flip_over(Entity* entity) {
data->state = 0; data->state = 0;
exec_entity_commandlist(entity); exec_entity_commandlist(entity);
if (data->unk_02) { if (data->unk_02) {
set_time_freeze_mode(TIME_FREEZE_NORMAL); set_time_freeze_mode(TIME_FREEZE_NONE);
gPlayerStatusPtr->animFlags &= ~PA_FLAG_OPENED_HIDDEN_PANEL; gPlayerStatusPtr->animFlags &= ~PA_FLAG_OPENED_HIDDEN_PANEL;
} }
entity->flags &= ~ENTITY_FLAG_DISABLE_COLLISION; entity->flags &= ~ENTITY_FLAG_DISABLE_COLLISION;

View File

@ -91,7 +91,7 @@ void entity_SaveBlock_pause_game(void) {
} }
void entity_SaveBlock_resume_game(void) { void entity_SaveBlock_resume_game(void) {
set_time_freeze_mode(TIME_FREEZE_NORMAL); set_time_freeze_mode(TIME_FREEZE_NONE);
enable_player_input(); enable_player_input();
} }

View File

@ -73,7 +73,7 @@ void entity_StarBoxLauncher_check_launch(Entity* entity) {
z = playerStatus->pos.z; z = playerStatus->pos.z;
hitDepth = 10.0f; hitDepth = 10.0f;
add_vec2D_polar(&x, &z, 10.0f, func_800E5348()); add_vec2D_polar(&x, &z, 10.0f, player_get_side_angle());
if (npc_raycast_down_sides(COLLIDER_FLAG_IGNORE_PLAYER, &x, &y, &z, &hitDepth) != 0) { if (npc_raycast_down_sides(COLLIDER_FLAG_IGNORE_PLAYER, &x, &y, &z, &hitDepth) != 0) {
if (NpcHitQueryColliderID & COLLISION_WITH_ENTITY_BIT) { if (NpcHitQueryColliderID & COLLISION_WITH_ENTITY_BIT) {
result = get_entity_type(NpcHitQueryColliderID) == ENTITY_TYPE_STAR_BOX_LAUNCHER; result = get_entity_type(NpcHitQueryColliderID) == ENTITY_TYPE_STAR_BOX_LAUNCHER;

View File

@ -207,7 +207,7 @@ void entity_Tweester_idle(Entity* entity) {
f32 delta; f32 delta;
f32 targetRotationSpeed; f32 targetRotationSpeed;
if (get_time_freeze_mode() == TIME_FREEZE_NORMAL && if (get_time_freeze_mode() == TIME_FREEZE_NONE &&
!is_picking_up_item() && !is_picking_up_item() &&
!(playerStatus->flags & PS_FLAG_PAUSED) && !(playerStatus->flags & PS_FLAG_PAUSED) &&
(playerData->curPartner != PARTNER_GOOMBARIO || (playerData->curPartner != PARTNER_GOOMBARIO ||

View File

@ -2,14 +2,14 @@
#include "camera.h" #include "camera.h"
EvtScript ShakeCam1 = { EvtScript ShakeCam1 = {
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(ShakeCam, LVar0, LVar1, LVar2, Float(1.0)) Call(ShakeCam, LVar0, LVar1, LVar2, Float(1.0))
Return Return
End End
}; };
EvtScript ShakeCamX = { EvtScript ShakeCamX = {
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(ShakeCam, LVar0, LVar1, LVar2, LVar3) Call(ShakeCam, LVar0, LVar1, LVar2, LVar3)
Return Return
End End

View File

@ -920,11 +920,11 @@ ApiStatus evt_handle_call(Evt* script) {
ApiStatus evt_handle_exec1(Evt* script) { ApiStatus evt_handle_exec1(Evt* script) {
Bytecode* args = script->ptrReadPos; Bytecode* args = script->ptrReadPos;
EvtScript* newSource = (EvtScript*)evt_get_variable(script, *args++);
Evt* newScript; Evt* newScript;
s32 i; s32 i;
newScript = start_script_in_group((EvtScript*)evt_get_variable(script, *args++), script->priority, 0, newScript = start_script_in_group(newSource, script->priority, 0, script->groupFlags);
script->groupFlags);
newScript->owner1 = script->owner1; newScript->owner1 = script->owner1;
newScript->owner2 = script->owner2; newScript->owner2 = script->owner2;
@ -947,7 +947,7 @@ ApiStatus evt_handle_exec1(Evt* script) {
ApiStatus evt_handle_exec1_get_id(Evt* script) { ApiStatus evt_handle_exec1_get_id(Evt* script) {
Bytecode* args = script->ptrReadPos; Bytecode* args = script->ptrReadPos;
EvtScript* newSource = (EvtScript*)evt_get_variable(script, *args++); EvtScript* newSource = (EvtScript*)evt_get_variable(script, *args++);
Bytecode arg2 = *args++; Bytecode outVar = *args++;
Evt* newScript; Evt* newScript;
s32 i; s32 i;
@ -967,15 +967,16 @@ ApiStatus evt_handle_exec1_get_id(Evt* script) {
newScript->array = script->array; newScript->array = script->array;
newScript->flagArray = script->flagArray; newScript->flagArray = script->flagArray;
evt_set_variable(script, arg2, newScript->id); evt_set_variable(script, outVar, newScript->id);
return ApiStatus_DONE2; return ApiStatus_DONE2;
} }
ApiStatus evt_handle_exec_wait(Evt* script) { ApiStatus evt_handle_exec_wait(Evt* script) {
Bytecode* args = script->ptrReadPos; Bytecode* args = script->ptrReadPos;
EvtScript* newSource = (EvtScript*)evt_get_variable(script, *args++);
start_child_script(script, (EvtScript*) evt_get_variable(script, *args++), 0); start_child_script(script, newSource, 0);
script->curOpcode = EVT_OP_INTERNAL_FETCH; script->curOpcode = EVT_OP_INTERNAL_FETCH;
return ApiStatus_FINISH; return ApiStatus_FINISH;
} }

View File

@ -218,23 +218,21 @@ void init_script_list(void) {
init_model_animators(); init_model_animators();
} }
// enforces current gTimeFreezeMode on newly created script
void suspend_frozen_scripts(Evt* script) { void suspend_frozen_scripts(Evt* script) {
s32 groupFlags; switch (gTimeFreezeMode) {
switch (timeFreezeMode) {
default: default:
case 0: case TIME_FREEZE_NONE:
case 4: case TIME_FREEZE_EXIT:
return;
case TIME_FREEZE_PARTIAL:
suspend_all_group(EVT_GROUP_FLAG_INTERACT);
return;
case TIME_FREEZE_FULL:
case TIME_FREEZE_POPUP_MENU:
suspend_all_group(EVT_GROUP_FLAG_MENUS);
return; return;
case 1:
groupFlags = EVT_GROUP_01;
break;
case 2:
case 3:
groupFlags = EVT_GROUP_02;
break;
} }
suspend_all_group(groupFlags);
} }
Evt* start_script(EvtScript* source, s32 priority, s32 flags) { Evt* start_script(EvtScript* source, s32 priority, s32 flags) {
@ -271,7 +269,7 @@ Evt* start_script(EvtScript* source, s32 priority, s32 flags) {
newScript->owner2.npcID = -1; newScript->owner2.npcID = -1;
newScript->loopDepth = -1; newScript->loopDepth = -1;
newScript->switchDepth = -1; newScript->switchDepth = -1;
newScript->groupFlags = ~EVT_GROUP_10; newScript->groupFlags = EVT_GROUP_NOT_BATTLE;
newScript->ptrSavedPos = NULL; newScript->ptrSavedPos = NULL;
newScript->frameCounter = 0.0f; newScript->frameCounter = 0.0f;
newScript->unk_158 = 0; newScript->unk_158 = 0;
@ -593,7 +591,7 @@ void update_scripts(void) {
if (script != NULL && if (script != NULL &&
script->id == gScriptIdList[i] && script->id == gScriptIdList[i] &&
script->stateFlags != 0 && script->stateFlags != 0 &&
!(script->stateFlags & (EVT_FLAG_SUSPENDED | EVT_FLAG_BLOCKED_BY_CHILD | EVT_FLAG_SUSPENDED_IN_GROUP))) !(script->stateFlags & (EVT_FLAG_SUSPENDED | EVT_FLAG_BLOCKED_BY_CHILD | EVT_FLAG_PAUSED)))
{ {
s32 stop = FALSE; s32 stop = FALSE;
s32 status; s32 status;
@ -801,7 +799,7 @@ void suspend_group_script(Evt* script, s32 groupFlags) {
} }
if ((script->groupFlags & groupFlags) != 0) { if ((script->groupFlags & groupFlags) != 0) {
script->stateFlags |= EVT_FLAG_SUSPENDED_IN_GROUP; script->stateFlags |= EVT_FLAG_PAUSED;
} }
} }
@ -822,7 +820,7 @@ void resume_group_script(Evt* script, s32 groupFlags) {
} }
if ((script->groupFlags & groupFlags) != 0) { if ((script->groupFlags & groupFlags) != 0) {
script->stateFlags &= ~EVT_FLAG_SUSPENDED_IN_GROUP; script->stateFlags &= ~EVT_FLAG_PAUSED;
} }
} }
@ -833,7 +831,7 @@ s32 suspend_all_script(s32 id) {
Evt* scriptContextPtr = (*gCurrentScriptListPtr)[i]; Evt* scriptContextPtr = (*gCurrentScriptListPtr)[i];
if (scriptContextPtr != NULL && scriptContextPtr->id == id) { if (scriptContextPtr != NULL && scriptContextPtr->id == id) {
suspend_group_script(scriptContextPtr, 0xEF); suspend_group_script(scriptContextPtr, EVT_GROUP_NOT_BATTLE);
} }
} }
} }
@ -845,7 +843,7 @@ s32 resume_all_script(s32 id) {
for (i = 0; i < MAX_SCRIPTS; i++) { for (i = 0; i < MAX_SCRIPTS; i++) {
scriptContextPtr = (*gCurrentScriptListPtr)[i]; scriptContextPtr = (*gCurrentScriptListPtr)[i];
if (scriptContextPtr != NULL && scriptContextPtr->id == id) { if (scriptContextPtr != NULL && scriptContextPtr->id == id) {
resume_group_script(scriptContextPtr, 0xEF); resume_group_script(scriptContextPtr, EVT_GROUP_NOT_BATTLE);
} }
} }
} }

View File

@ -117,7 +117,7 @@ s32 should_continue_inspect(void) {
} else if (!(playerStatus->flags & PS_FLAG_INPUT_DISABLED) } else if (!(playerStatus->flags & PS_FLAG_INPUT_DISABLED)
&& (playerStatus->flags & PS_FLAG_HAS_CONVERSATION_NPC) && (playerStatus->flags & PS_FLAG_HAS_CONVERSATION_NPC)
&& (npc != NULL) && (npc != NULL)
&& (npc->flags & NPC_FLAG_10000000) && (npc->flags & NPC_FLAG_USE_INSPECT_ICON)
) { ) {
curInteraction = npc->npcID | COLLISION_WITH_NPC_BIT; curInteraction = npc->npcID | COLLISION_WITH_NPC_BIT;
if (playerStatus->interactingWithID == curInteraction) { if (playerStatus->interactingWithID == curInteraction) {

View File

@ -1378,7 +1378,7 @@ b32 test_item_player_collision(ItemEntity* item) {
} }
hammerHitboxHeight = tmpYTopThreshold; hammerHitboxHeight = tmpYTopThreshold;
if (get_time_freeze_mode() != TIME_FREEZE_NORMAL) { if (get_time_freeze_mode() != TIME_FREEZE_NONE) {
return FALSE; return FALSE;
} }
@ -2036,7 +2036,7 @@ void update_item_entity_collectable(ItemEntity* item) {
D_801565A8 = FALSE; D_801565A8 = FALSE;
#endif #endif
remove_item_entity_by_reference(item); remove_item_entity_by_reference(item);
resume_all_group(EVT_GROUP_02); resume_all_group(EVT_GROUP_FLAG_MENUS);
} }
} }
@ -2364,7 +2364,7 @@ block_47: // TODO required to match
} }
case ITEM_PICKUP_STATE_DONE: case ITEM_PICKUP_STATE_DONE:
if (!(item->flags & ITEM_ENTITY_FLAG_2000000)) { if (!(item->flags & ITEM_ENTITY_FLAG_2000000)) {
set_time_freeze_mode(TIME_FREEZE_NORMAL); set_time_freeze_mode(TIME_FREEZE_NONE);
enable_player_input(); enable_player_input();
partner_enable_input(); partner_enable_input();
gOverrideFlags &= ~GLOBAL_OVERRIDES_40; gOverrideFlags &= ~GLOBAL_OVERRIDES_40;
@ -2470,7 +2470,7 @@ block_47: // TODO required to match
break; break;
case ITEM_PICKUP_STATE_THROW_AWAY_DONE: case ITEM_PICKUP_STATE_THROW_AWAY_DONE:
suggest_player_anim_always_forward(ANIM_Mario1_Idle); suggest_player_anim_always_forward(ANIM_Mario1_Idle);
set_time_freeze_mode(TIME_FREEZE_NORMAL); set_time_freeze_mode(TIME_FREEZE_NONE);
enable_player_input(); enable_player_input();
partner_enable_input(); partner_enable_input();
gOverrideFlags &= ~GLOBAL_OVERRIDES_40; gOverrideFlags &= ~GLOBAL_OVERRIDES_40;

View File

@ -7,7 +7,7 @@
#include "game_modes.h" #include "game_modes.h"
s32 gOverrideFlags; s32 gOverrideFlags;
s32 timeFreezeMode; s32 gTimeFreezeMode;
u16** nuGfxCfb; u16** nuGfxCfb;
BSS s16 SoftResetDelay; BSS s16 SoftResetDelay;
@ -273,7 +273,7 @@ void load_engine_data(void) {
gGameStatusPtr->multiplayerEnabled = FALSE; gGameStatusPtr->multiplayerEnabled = FALSE;
gGameStatusPtr->altViewportOffset.x = -8; gGameStatusPtr->altViewportOffset.x = -8;
gGameStatusPtr->altViewportOffset.y = 4; gGameStatusPtr->altViewportOffset.y = 4;
timeFreezeMode = 0; gTimeFreezeMode = TIME_FREEZE_NONE;
gGameStatusPtr->debugQuizmo = gGameStatusPtr->unk_13C = 0; gGameStatusPtr->debugQuizmo = gGameStatusPtr->unk_13C = 0;
gGameStepDelayCount = 5; gGameStepDelayCount = 5;
gGameStatusPtr->saveCount = 0; gGameStatusPtr->saveCount = 0;
@ -321,45 +321,45 @@ void load_engine_data(void) {
} }
/// Time freeze modes: /// Time freeze modes:
/// 0: normal /// 0: none
/// 1: NPCs move, can't be interacted with /// 1: NPCs move, can't be interacted with
/// 2: NPCs don't move, no partner ability, can't interact, can't use exits /// 2: NPCs don't move, no partner ability, can't interact, can't use exits
/// 3: NPCs don't more or animate /// 3: NPCs don't more or animate
/// 4: NPCs can move, animations don't update, can use exits /// 4: NPCs can move, animations don't update, can use exits
void set_time_freeze_mode(s32 mode) { void set_time_freeze_mode(s32 mode) {
switch (mode) { switch (mode) {
case TIME_FREEZE_NORMAL: case TIME_FREEZE_NONE:
timeFreezeMode = mode; gTimeFreezeMode = mode;
gOverrideFlags &= ~(GLOBAL_OVERRIDES_800 | GLOBAL_OVERRIDES_400 | GLOBAL_OVERRIDES_200 | GLOBAL_OVERRIDES_DISABLE_BATTLES); gOverrideFlags &= ~(GLOBAL_OVERRIDES_800 | GLOBAL_OVERRIDES_400 | GLOBAL_OVERRIDES_200 | GLOBAL_OVERRIDES_DISABLE_BATTLES);
resume_all_group(EVT_GROUP_01 | EVT_GROUP_02); resume_all_group(EVT_GROUP_FLAG_INTERACT | EVT_GROUP_FLAG_MENUS);
break; break;
case TIME_FREEZE_PARTIAL: case TIME_FREEZE_PARTIAL:
timeFreezeMode = mode; gTimeFreezeMode = mode;
gOverrideFlags &= ~(GLOBAL_OVERRIDES_800 | GLOBAL_OVERRIDES_400 | GLOBAL_OVERRIDES_200); gOverrideFlags &= ~(GLOBAL_OVERRIDES_800 | GLOBAL_OVERRIDES_400 | GLOBAL_OVERRIDES_200);
gOverrideFlags |= GLOBAL_OVERRIDES_DISABLE_BATTLES; gOverrideFlags |= GLOBAL_OVERRIDES_DISABLE_BATTLES;
suspend_all_group(EVT_GROUP_01); suspend_all_group(EVT_GROUP_FLAG_INTERACT);
break; break;
case TIME_FREEZE_FULL: case TIME_FREEZE_FULL:
timeFreezeMode = mode; gTimeFreezeMode = mode;
gOverrideFlags &= ~(GLOBAL_OVERRIDES_400 | GLOBAL_OVERRIDES_800); gOverrideFlags &= ~(GLOBAL_OVERRIDES_400 | GLOBAL_OVERRIDES_800);
gOverrideFlags |= GLOBAL_OVERRIDES_200 | GLOBAL_OVERRIDES_DISABLE_BATTLES; gOverrideFlags |= GLOBAL_OVERRIDES_200 | GLOBAL_OVERRIDES_DISABLE_BATTLES;
suspend_all_group(EVT_GROUP_02); suspend_all_group(EVT_GROUP_FLAG_MENUS);
break; break;
case TIME_FREEZE_POPUP_MENU: case TIME_FREEZE_POPUP_MENU:
timeFreezeMode = mode; gTimeFreezeMode = mode;
gOverrideFlags &= ~GLOBAL_OVERRIDES_800; gOverrideFlags &= ~GLOBAL_OVERRIDES_800;
gOverrideFlags |= GLOBAL_OVERRIDES_400 | GLOBAL_OVERRIDES_200 | GLOBAL_OVERRIDES_DISABLE_BATTLES; gOverrideFlags |= GLOBAL_OVERRIDES_400 | GLOBAL_OVERRIDES_200 | GLOBAL_OVERRIDES_DISABLE_BATTLES;
suspend_all_group(EVT_GROUP_02); suspend_all_group(EVT_GROUP_FLAG_MENUS);
break; break;
case TIME_FREEZE_EXIT: case TIME_FREEZE_EXIT:
timeFreezeMode = mode; gTimeFreezeMode = mode;
gOverrideFlags |= GLOBAL_OVERRIDES_800 | GLOBAL_OVERRIDES_400 | GLOBAL_OVERRIDES_200 | GLOBAL_OVERRIDES_DISABLE_BATTLES; gOverrideFlags |= GLOBAL_OVERRIDES_800 | GLOBAL_OVERRIDES_400 | GLOBAL_OVERRIDES_200 | GLOBAL_OVERRIDES_DISABLE_BATTLES;
break; break;
} }
} }
s32 get_time_freeze_mode(void) { s32 get_time_freeze_mode(void) {
return timeFreezeMode; return gTimeFreezeMode;
} }
#if VERSION_IQUE #if VERSION_IQUE

View File

@ -817,7 +817,7 @@ f32 npc_get_render_yaw(Npc* npc) {
} }
} }
if (npc->flags & NPC_FLAG_200000) { if (npc->flags & NPC_FLAG_FLIP_INSTANTLY) {
npc->turnAroundYawAdjustment = 0; npc->turnAroundYawAdjustment = 0;
} }
@ -2446,7 +2446,7 @@ void init_encounter_status(void) {
currentEncounter->encounterList[i] = 0; currentEncounter->encounterList[i] = 0;
} }
currentEncounter->flags = ENCOUNTER_STATUS_FLAG_0; currentEncounter->flags = ENCOUNTER_FLAG_NONE;
currentEncounter->numEncounters = 0; currentEncounter->numEncounters = 0;
currentEncounter->firstStrikeType = FIRST_STRIKE_NONE; currentEncounter->firstStrikeType = FIRST_STRIKE_NONE;
currentEncounter->hitType = 0; currentEncounter->hitType = 0;
@ -2602,7 +2602,7 @@ void make_npcs(s32 flags, s32 mapID, s32* npcGroupList) {
if (npcGroupList != NULL) { if (npcGroupList != NULL) {
gEncounterState = ENCOUNTER_STATE_CREATE; gEncounterState = ENCOUNTER_STATE_CREATE;
D_8009A678 = 1; EncounterStateChanged = TRUE;
gEncounterSubState = ENCOUNTER_SUBSTATE_CREATE_INIT; gEncounterSubState = ENCOUNTER_SUBSTATE_CREATE_INIT;
} }
} }
@ -2671,7 +2671,7 @@ void kill_enemy(Enemy* enemy) {
} }
do { do {
if (!(enemy->flags & ENEMY_FLAG_4) if (!(enemy->flags & ENEMY_FLAG_DO_NOT_KILL)
&& (!(enemy->flags & ENEMY_FLAG_ENABLE_HIT_SCRIPT) || (enemy == encounterStatus->curEnemy)) && (!(enemy->flags & ENEMY_FLAG_ENABLE_HIT_SCRIPT) || (enemy == encounterStatus->curEnemy))
&& !(enemy->flags & ENEMY_FLAG_PASSIVE) && !(enemy->flags & ENEMY_FLAG_PASSIVE)
) { ) {

View File

@ -7,7 +7,7 @@ s32 NpcHitQueryAheadY;
s32 NpcHitQueryBehindLeftY; s32 NpcHitQueryBehindLeftY;
s32 NpcHitQueryColliderID; s32 NpcHitQueryColliderID;
PlayerStatus* gPlayerStatusPtr = &gPlayerStatus; // maybe wPlayerStatus PlayerStatus* gPlayerStatusPtr = &gPlayerStatus;
// not used outside this file // not used outside this file
HitID npc_raycast_down(s32 ignoreFlags, f32* startX, f32* startY, f32* startZ, f32* hitDepth) { HitID npc_raycast_down(s32 ignoreFlags, f32* startX, f32* startY, f32* startZ, f32* hitDepth) {
@ -275,7 +275,7 @@ b32 npc_raycast_down_sides(s32 ignoreFlags, f32* posX, f32* posY, f32* posZ, f32
return FALSE; return FALSE;
} }
s32 npc_raycast_up(s32 ignoreFlags, f32* startX, f32* startY, f32* startZ, f32* hitDepth) { b32 npc_raycast_up(s32 ignoreFlags, f32* startX, f32* startY, f32* startZ, f32* hitDepth) {
f32 cHitX; f32 cHitX;
f32 cHitY; f32 cHitY;
f32 cHitZ; f32 cHitZ;
@ -331,7 +331,7 @@ s32 npc_raycast_up(s32 ignoreFlags, f32* startX, f32* startY, f32* startZ, f32*
} }
} }
s32 npc_raycast_up_corner(s32 ignoreFlags, f32* x, f32* y, f32* z, f32* length) { HitID npc_raycast_up_corner(s32 ignoreFlags, f32* x, f32* y, f32* z, f32* length) {
f32 hitX; f32 hitX;
f32 hitY; f32 hitY;
f32 hitZ; f32 hitZ;
@ -343,7 +343,7 @@ s32 npc_raycast_up_corner(s32 ignoreFlags, f32* x, f32* y, f32* z, f32* length)
s32 entityID; s32 entityID;
f32 sx, sy, sz; f32 sx, sy, sz;
f32 sx2, sy2, sz2; f32 sx2, sy2, sz2;
s32 ret = NO_COLLIDER; HitID ret = NO_COLLIDER;
// needed to match // needed to match
sx2 = sx = *x; sx2 = sx = *x;
@ -444,9 +444,9 @@ HitID npc_raycast_up_corners(s32 ignoreFlags, f32* posX, f32* posY, f32* posZ, f
return ret; return ret;
} }
s32 npc_raycast_general(s32 flags, f32 startX, f32 startY, f32 startZ, f32 dirX, f32 dirY, f32 dirZ, f32* hitX, HitID npc_raycast_general(s32 flags, f32 startX, f32 startY, f32 startZ, f32 dirX, f32 dirY, f32 dirZ, f32* hitX,
f32* hitY, f32* hitZ, f32* outDepth, f32* hitNx, f32* hitNy, f32* hitNz) { f32* hitY, f32* hitZ, f32* outDepth, f32* hitNx, f32* hitNy, f32* hitNz) {
s32 ret; HitID ret;
s32 entityID; s32 entityID;
ret = NO_COLLIDER; ret = NO_COLLIDER;

View File

@ -99,7 +99,7 @@ void state_step_battle(void) {
D_800A0904 = gPlayerStatusPtr->animFlags; D_800A0904 = gPlayerStatusPtr->animFlags;
gPlayerStatusPtr->animFlags &= ~PA_FLAG_PULSE_STONE_VISIBLE; gPlayerStatusPtr->animFlags &= ~PA_FLAG_PULSE_STONE_VISIBLE;
D_800A0908 = get_time_freeze_mode(); D_800A0908 = get_time_freeze_mode();
set_time_freeze_mode(TIME_FREEZE_NORMAL); set_time_freeze_mode(TIME_FREEZE_NONE);
gOverrideFlags &= ~GLOBAL_OVERRIDES_DISABLE_DRAW_FRAME; gOverrideFlags &= ~GLOBAL_OVERRIDES_DISABLE_DRAW_FRAME;
if (D_800A0900 >= 0) { if (D_800A0900 >= 0) {

View File

@ -364,7 +364,7 @@ void state_step_exit_language_select(void) {
} }
break; break;
case 4: case 4:
set_time_freeze_mode(TIME_FREEZE_NORMAL); set_time_freeze_mode(TIME_FREEZE_NONE);
update_player(); update_player();
update_npcs(); update_npcs();
update_encounters(); update_encounters();
@ -407,7 +407,7 @@ void state_step_exit_file_select(void) {
set_windows_visible(WINDOW_GROUP_ALL); set_windows_visible(WINDOW_GROUP_ALL);
D_800A0931 = 3; D_800A0931 = 3;
case 3: case 3:
set_time_freeze_mode(TIME_FREEZE_NORMAL); set_time_freeze_mode(TIME_FREEZE_NONE);
if (temp_s0 == 0) { if (temp_s0 == 0) {
set_game_mode(GAME_MODE_TITLE_SCREEN); set_game_mode(GAME_MODE_TITLE_SCREEN);
gOverrideFlags &= ~GLOBAL_OVERRIDES_WINDOWS_OVER_CURTAINS; gOverrideFlags &= ~GLOBAL_OVERRIDES_WINDOWS_OVER_CURTAINS;

View File

@ -240,7 +240,7 @@ void state_step_unpause(void) {
} }
break; break;
case 4: case 4:
set_time_freeze_mode(TIME_FREEZE_NORMAL); set_time_freeze_mode(TIME_FREEZE_NONE);
update_encounters(); update_encounters();
update_npcs(); update_npcs();
update_player(); update_player();

View File

@ -119,7 +119,7 @@ void state_init_title_screen(void) {
void* titleData; void* titleData;
gOverrideFlags = 0; gOverrideFlags = 0;
timeFreezeMode = 0; gTimeFreezeMode = TIME_FREEZE_NONE;
D_8014C248 = TRUE; D_8014C248 = TRUE;
general_heap_create(); general_heap_create();
clear_printers(); clear_printers();

View File

@ -22,7 +22,7 @@ BSS HammerHitData D_802B6E90;
HammerHitData* HammerHit = &D_802B6E90; HammerHitData* HammerHit = &D_802B6E90;
void func_802B6820_E256F0(void); void action_hammer_end_swing(void);
s32 action_hammer_is_swinging_away(s32 animID) { s32 action_hammer_is_swinging_away(s32 animID) {
if (animID & SPRITE_ID_BACK_FACING) { if (animID & SPRITE_ID_BACK_FACING) {
@ -69,7 +69,7 @@ void action_hammer_play_hit_fx(s32 hitID) {
soundID = SOUND_HAMMER_STRIKE_1; soundID = SOUND_HAMMER_STRIKE_1;
} }
theta = DEG_TO_RAD(func_800E5348()); theta = DEG_TO_RAD(player_get_side_angle());
sinTheta = sin_rad(theta) * 25.0f; sinTheta = sin_rad(theta) * 25.0f;
cosTheta = cos_rad(theta) * -25.0f; cosTheta = cos_rad(theta) * -25.0f;
@ -86,7 +86,7 @@ void action_hammer_play_hit_fx(s32 hitID) {
radius = 1; radius = 1;
} }
exec_ShakeCamX(0, 2, time, shakeAmt); exec_ShakeCamX(CAM_DEFAULT, CAM_SHAKE_DECAYING_VERTICAL, time, shakeAmt);
fx_smoke_impact(0, x, y, z, radius, numParticles, 0, (time + 3) * 3); fx_smoke_impact(0, x, y, z, radius, numParticles, 0, (time + 3) * 3);
switch (is_ability_active(ABILITY_ATTACK_FX)) { switch (is_ability_active(ABILITY_ATTACK_FX)) {
@ -114,19 +114,19 @@ void action_hammer_play_hit_fx(s32 hitID) {
start_rumble(256, 50); start_rumble(256, 50);
} }
s32 func_802B62A4_E25174(void) { HitID action_hammer_test_swing_collision(void) {
PlayerStatus* playerStatus = &gPlayerStatus; PlayerStatus* playerStatus = &gPlayerStatus;
HitID ret;
f32 yaw; f32 yaw;
f32 angle; f32 angle;
f32 outSinTheta; f32 outSinTheta;
f32 outCosTheta; f32 outCosTheta;
f32 playerX, playerY, playerZ; f32 playerX, playerY, playerZ;
f32 x, y, z; f32 x, y, z;
s32 ret;
s32 i; s32 i;
// first attempt // first attempt
yaw = func_800E5348(); yaw = player_get_side_angle();
if (action_hammer_is_swinging_away(playerStatus->trueAnimation)) { if (action_hammer_is_swinging_away(playerStatus->trueAnimation)) {
angle = clamp_angle(yaw + 90.0f - gCameras[gCurrentCameraID].curYaw); angle = clamp_angle(yaw + 90.0f - gCameras[gCurrentCameraID].curYaw);
if (angle >= 90.0f && angle < 270.0f) { if (angle >= 90.0f && angle < 270.0f) {
@ -141,11 +141,12 @@ s32 func_802B62A4_E25174(void) {
playerY = playerStatus->pos.y; playerY = playerStatus->pos.y;
playerZ = playerStatus->pos.z; playerZ = playerStatus->pos.z;
// check collision along 16 points in a line away from the player
for (i = 1; i < 16; i++) { for (i = 1; i < 16; i++) {
x = playerX + (outSinTheta * i); x = playerX + (outSinTheta * i);
y = playerY; y = playerY;
z = playerZ - (outCosTheta * i); z = playerZ - (outCosTheta * i);
ret = player_test_lateral_overlap(PLAYER_COLLISION_3, playerStatus, &x, &y, &z, 4.0f, yaw); ret = player_test_lateral_overlap(PLAYER_COLLISION_HAMMER, playerStatus, &x, &y, &z, 4.0f, yaw);
if (ret > NO_COLLIDER) { if (ret > NO_COLLIDER) {
HammerHit->hitPos.x = x; HammerHit->hitPos.x = x;
HammerHit->hitPos.y = y; HammerHit->hitPos.y = y;
@ -156,7 +157,7 @@ s32 func_802B62A4_E25174(void) {
// second attempt // second attempt
if (i >= 16) { if (i >= 16) {
yaw = func_800E5348(); yaw = player_get_side_angle();
if (!action_hammer_is_swinging_away(playerStatus->trueAnimation)) { if (!action_hammer_is_swinging_away(playerStatus->trueAnimation)) {
angle = clamp_angle(yaw + 90.0f - gCameras[gCurrentCameraID].curYaw); angle = clamp_angle(yaw + 90.0f - gCameras[gCurrentCameraID].curYaw);
if (angle >= 90.0f && angle < 270.0f) { if (angle >= 90.0f && angle < 270.0f) {
@ -166,13 +167,14 @@ s32 func_802B62A4_E25174(void) {
} }
} }
// check collision along 16 points in a line away from the player
sin_cos_rad(DEG_TO_RAD(yaw), &outSinTheta, &outCosTheta); sin_cos_rad(DEG_TO_RAD(yaw), &outSinTheta, &outCosTheta);
for (i = 1; i < 16; i++) { for (i = 1; i < 16; i++) {
x = playerX + (outSinTheta * i); x = playerX + (outSinTheta * i);
y = playerY; y = playerY;
z = playerZ - (outCosTheta * i); z = playerZ - (outCosTheta * i);
ret = player_test_lateral_overlap(PLAYER_COLLISION_3, playerStatus, &x, &y, &z, 4.0f, yaw); ret = player_test_lateral_overlap(PLAYER_COLLISION_HAMMER, playerStatus, &x, &y, &z, 4.0f, yaw);
if (ret > NO_COLLIDER) { if (ret > NO_COLLIDER) {
HammerHit->hitPos.x = x; HammerHit->hitPos.x = x;
HammerHit->hitPos.y = y; HammerHit->hitPos.y = y;
@ -240,7 +242,7 @@ void action_update_hammer(void) {
playerStatus->actionSubstate = SUBSTATE_HAMMER_0; playerStatus->actionSubstate = SUBSTATE_HAMMER_0;
playerStatus->curSpeed = 0.0f; playerStatus->curSpeed = 0.0f;
playerStatus->animNotifyValue = 0; playerStatus->animNotifyValue = 0;
HammerHit->hitID = func_802B62A4_E25174(); HammerHit->hitID = action_hammer_test_swing_collision();
if (gPlayerData.hammerLevel == 2) { if (gPlayerData.hammerLevel == 2) {
soundID = SOUND_HAMMER_SWING_3; soundID = SOUND_HAMMER_SWING_3;
@ -278,11 +280,11 @@ void action_update_hammer(void) {
} else if (HammerHit->timer < 2) { } else if (HammerHit->timer < 2) {
HammerHit->timer++; HammerHit->timer++;
} else { } else {
func_802B6820_E256F0(); action_hammer_end_swing();
} }
} }
void func_802B6820_E256F0(void) { void action_hammer_end_swing(void) {
PlayerStatus* playerStatus = &gPlayerStatus; PlayerStatus* playerStatus = &gPlayerStatus;
CollisionStatus* collisionStatus; CollisionStatus* collisionStatus;
f32 yaw; f32 yaw;
@ -303,7 +305,7 @@ void func_802B6820_E256F0(void) {
collisionStatus = &gCollisionStatus; collisionStatus = &gCollisionStatus;
} while (0); // required to match; } while (0); // required to match;
yaw = func_800E5348(); yaw = player_get_side_angle();
if (action_hammer_is_swinging_away(playerStatus->trueAnimation)) { if (action_hammer_is_swinging_away(playerStatus->trueAnimation)) {
angle = clamp_angle(yaw + 90.0f - gCameras[gCurrentCameraID].curYaw); angle = clamp_angle(yaw + 90.0f - gCameras[gCurrentCameraID].curYaw);
if (angle >= 90.0f && angle < 270.0f) { if (angle >= 90.0f && angle < 270.0f) {
@ -318,12 +320,12 @@ void func_802B6820_E256F0(void) {
playerY = playerStatus->pos.y; playerY = playerStatus->pos.y;
playerZ = playerStatus->pos.z; playerZ = playerStatus->pos.z;
// check collision allong 16 points in a line away from the player // check collision along 16 points in a line away from the player
for (i = 1; i < 16; i++) { for (i = 1; i < 16; i++) {
x = playerX + (outSinTheta * i); x = playerX + (outSinTheta * i);
y = playerY; y = playerY;
z = playerZ - (outCosTheta * i); z = playerZ - (outCosTheta * i);
result = player_test_lateral_overlap(PLAYER_COLLISION_3, playerStatus, &x, &y, &z, 4.0f, yaw); result = player_test_lateral_overlap(PLAYER_COLLISION_HAMMER, playerStatus, &x, &y, &z, 4.0f, yaw);
if (HammerHit->unk_14 == 0) { if (HammerHit->unk_14 == 0) {
collisionStatus->lastWallHammered = result; collisionStatus->lastWallHammered = result;
if (result > NO_COLLIDER) { if (result > NO_COLLIDER) {
@ -339,7 +341,7 @@ void func_802B6820_E256F0(void) {
} }
if (i >= 16) { if (i >= 16) {
yaw = func_800E5348(); yaw = player_get_side_angle();
if (action_hammer_is_swinging_away(playerStatus->trueAnimation) == 0) { if (action_hammer_is_swinging_away(playerStatus->trueAnimation) == 0) {
angle = clamp_angle(yaw + 90.0f - gCameras[gCurrentCameraID].curYaw); angle = clamp_angle(yaw + 90.0f - gCameras[gCurrentCameraID].curYaw);
if (angle >= 90.0f && angle < 270.0f) { if (angle >= 90.0f && angle < 270.0f) {
@ -350,11 +352,12 @@ void func_802B6820_E256F0(void) {
} }
sin_cos_rad(DEG_TO_RAD(yaw), &outSinTheta, &outCosTheta); sin_cos_rad(DEG_TO_RAD(yaw), &outSinTheta, &outCosTheta);
// check collision along 16 points in a line away from the player
for (i = 1; i < 16; i++) { for (i = 1; i < 16; i++) {
x = playerX + (outSinTheta * i); x = playerX + (outSinTheta * i);
y = playerY; y = playerY;
z = playerZ - (outCosTheta * i); z = playerZ - (outCosTheta * i);
result = player_test_lateral_overlap(PLAYER_COLLISION_3, playerStatus, &x, &y, &z, 4.0f, yaw); result = player_test_lateral_overlap(PLAYER_COLLISION_HAMMER, playerStatus, &x, &y, &z, 4.0f, yaw);
if (HammerHit->unk_14 == 0) { if (HammerHit->unk_14 == 0) {
collisionStatus->lastWallHammered = result; collisionStatus->lastWallHammered = result;
if (result > NO_COLLIDER) { if (result > NO_COLLIDER) {

View File

@ -170,7 +170,7 @@ void action_update_hit_lava(void) {
} }
playerStatus->pos.y = player_check_collision_below(player_fall_distance(), &completeAxes); playerStatus->pos.y = player_check_collision_below(player_fall_distance(), &completeAxes);
if (completeAxes >= 0) { if (completeAxes >= 0) {
exec_ShakeCamX(0, 2, 1, 0.8f); exec_ShakeCamX(CAM_DEFAULT, CAM_SHAKE_DECAYING_VERTICAL, 1, 0.8f);
start_rumble(256, 50); start_rumble(256, 50);
phys_adjust_cam_on_landing(); phys_adjust_cam_on_landing();
gCameras[CAM_DEFAULT].moveFlags &= ~CAMERA_MOVE_NO_INTERP_Y; gCameras[CAM_DEFAULT].moveFlags &= ~CAMERA_MOVE_NO_INTERP_Y;

View File

@ -57,7 +57,7 @@ Npc* parasol_get_npc(void) {
ret = NULL; ret = NULL;
} else { } else {
angle = clamp_angle(atan2(playerStatus->pos.x, playerStatus->pos.z, ret->pos.x, ret->pos.z)); angle = clamp_angle(atan2(playerStatus->pos.x, playerStatus->pos.z, ret->pos.x, ret->pos.z));
if (fabs(angle - func_800E5348()) > 30.0) { if (fabs(angle - player_get_side_angle()) > 30.0) {
ret = NULL; ret = NULL;
} }
} }
@ -228,7 +228,7 @@ void action_update_parasol(void) {
break; break;
case SUBSTATE_DISGUISE_DONE: case SUBSTATE_DISGUISE_DONE:
if (--playerStatus->curStateTime == 0) { if (--playerStatus->curStateTime == 0) {
set_time_freeze_mode(TIME_FREEZE_NORMAL); set_time_freeze_mode(TIME_FREEZE_NONE);
disguiseNpc = get_npc_by_index(PeachDisguiseNpcIndex); disguiseNpc = get_npc_by_index(PeachDisguiseNpcIndex);
disguiseNpc->flags &= ~NPC_FLAG_IGNORE_CAMERA_FOR_YAW; disguiseNpc->flags &= ~NPC_FLAG_IGNORE_CAMERA_FOR_YAW;
playerStatus->flags &= ~PS_FLAG_ROTATION_LOCKED; playerStatus->flags &= ~PS_FLAG_ROTATION_LOCKED;
@ -310,7 +310,7 @@ void action_update_parasol(void) {
break; break;
case SUBSTATE_REVERT_DONE: case SUBSTATE_REVERT_DONE:
if (--playerStatus->curStateTime == 0) { if (--playerStatus->curStateTime == 0) {
set_time_freeze_mode(TIME_FREEZE_NORMAL); set_time_freeze_mode(TIME_FREEZE_NONE);
playerStatus->flags &= ~PS_FLAG_ROTATION_LOCKED; playerStatus->flags &= ~PS_FLAG_ROTATION_LOCKED;
set_action_state(ACTION_STATE_IDLE); set_action_state(ACTION_STATE_IDLE);
enable_player_static_collisions(); enable_player_static_collisions();

View File

@ -393,7 +393,7 @@ NpcData N(NpcData_Boo_01) = {
}, },
.init = &N(EVS_NpcInit_Boo_01), .init = &N(EVS_NpcInit_Boo_01),
.settings = &N(NpcSettings_Boo_Patrol), .settings = &N(NpcSettings_Boo_Patrol),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_ARN_LovesBow, .tattle = MSG_NpcTattle_ARN_LovesBow,
@ -405,7 +405,7 @@ NpcData N(NpcData_Boo_02) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_02), .init = &N(EVS_NpcInit_Boo_02),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_ARN_BooA, .tattle = MSG_NpcTattle_ARN_BooA,
@ -431,7 +431,7 @@ NpcData N(NpcData_Boo_03) = {
}, },
.init = &N(EVS_NpcInit_Boo_03), .init = &N(EVS_NpcInit_Boo_03),
.settings = &N(NpcSettings_Boo_Patrol), .settings = &N(NpcSettings_Boo_Patrol),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_ARN_BooB, .tattle = MSG_NpcTattle_ARN_BooB,
@ -443,7 +443,7 @@ NpcData N(NpcData_Boo_04) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_04), .init = &N(EVS_NpcInit_Boo_04),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_ARN_BooC, .tattle = MSG_NpcTattle_ARN_BooC,
@ -455,7 +455,7 @@ NpcData N(NpcData_Boo_05) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_05), .init = &N(EVS_NpcInit_Boo_05),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
}; };
@ -519,7 +519,7 @@ NpcData N(NpcData_Boo_06)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_06), .init = &N(EVS_NpcInit_Boo_06),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_400000, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
}, },
@ -529,7 +529,7 @@ NpcData N(NpcData_Boo_06)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_07), .init = &N(EVS_NpcInit_Boo_07),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_400000, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
}, },
@ -539,7 +539,7 @@ NpcData N(NpcData_Boo_06)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_08), .init = &N(EVS_NpcInit_Boo_08),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_400000, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
}, },
@ -549,7 +549,7 @@ NpcData N(NpcData_Boo_06)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_09), .init = &N(EVS_NpcInit_Boo_09),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_400000, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
}, },

View File

@ -249,7 +249,7 @@ NpcData N(NpcData_Boo_01)[] = {
}, },
.init = &N(EVS_NpcInit_Boo_01), .init = &N(EVS_NpcInit_Boo_01),
.settings = &N(NpcSettings_Boo_Patrol), .settings = &N(NpcSettings_Boo_Patrol),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_ARN_BooD, .tattle = MSG_NpcTattle_ARN_BooD,
@ -260,7 +260,7 @@ NpcData N(NpcData_Boo_01)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Boo_02), .init = &N(EVS_NpcInit_Boo_02),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_ARN_BooE, .tattle = MSG_NpcTattle_ARN_BooE,
@ -271,7 +271,7 @@ NpcData N(NpcData_Boo_01)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Boo_03), .init = &N(EVS_NpcInit_Boo_03),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_ARN_BooF, .tattle = MSG_NpcTattle_ARN_BooF,
@ -282,7 +282,7 @@ NpcData N(NpcData_Boo_01)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Boo_04), .init = &N(EVS_NpcInit_Boo_04),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_ARN_BooG, .tattle = MSG_NpcTattle_ARN_BooG,
@ -307,7 +307,7 @@ NpcData N(NpcData_Boo_01)[] = {
}, },
.init = &N(EVS_NpcInit_Boo_05), .init = &N(EVS_NpcInit_Boo_05),
.settings = &N(NpcSettings_Boo_Patrol), .settings = &N(NpcSettings_Boo_Patrol),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_ARN_BooH, .tattle = MSG_NpcTattle_ARN_BooH,
@ -705,7 +705,7 @@ NpcData N(NpcData_Boo_06)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_06), .init = &N(EVS_NpcInit_Boo_06),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_400000, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
}, },
@ -715,7 +715,7 @@ NpcData N(NpcData_Boo_06)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_07), .init = &N(EVS_NpcInit_Boo_07),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_400000, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
}, },
@ -725,7 +725,7 @@ NpcData N(NpcData_Boo_06)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_08), .init = &N(EVS_NpcInit_Boo_08),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_400000, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
}, },
@ -735,7 +735,7 @@ NpcData N(NpcData_Boo_06)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_09), .init = &N(EVS_NpcInit_Boo_09),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_400000, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
}, },

View File

@ -7,18 +7,18 @@ MAP_RODATA_PAD(1,entity);
#include "world/common/todo/GetEntityPosition.inc.c" #include "world/common/todo/GetEntityPosition.inc.c"
EvtScript N(EVS_UnlockDoor) = { EvtScript N(EVS_UnlockDoor) = {
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(SetTimeFreezeMode, TIME_FREEZE_PARTIAL) Call(SetTimeFreezeMode, TIME_FREEZE_PARTIAL)
Call(ShowKeyChoicePopup) Call(ShowKeyChoicePopup)
IfEq(LVar0, 0) IfEq(LVar0, 0)
Call(ShowMessageAtScreenPos, MSG_Menus_00D8, 160, 40) Call(ShowMessageAtScreenPos, MSG_Menus_00D8, 160, 40)
Call(CloseChoicePopup) Call(CloseChoicePopup)
Call(SetTimeFreezeMode, TIME_FREEZE_NORMAL) Call(SetTimeFreezeMode, TIME_FREEZE_NONE)
Return Return
EndIf EndIf
IfEq(LVar0, -1) IfEq(LVar0, -1)
Call(CloseChoicePopup) Call(CloseChoicePopup)
Call(SetTimeFreezeMode, TIME_FREEZE_NORMAL) Call(SetTimeFreezeMode, TIME_FREEZE_NONE)
Return Return
EndIf EndIf
Call(FindKeyItem, ITEM_MYSTICAL_KEY, LVar0) Call(FindKeyItem, ITEM_MYSTICAL_KEY, LVar0)
@ -29,7 +29,7 @@ EvtScript N(EVS_UnlockDoor) = {
Call(PlaySoundAt, SOUND_USE_KEY, SOUND_SPACE_DEFAULT, LVar0, LVar1, LVar2) Call(PlaySoundAt, SOUND_USE_KEY, SOUND_SPACE_DEFAULT, LVar0, LVar1, LVar2)
Set(LVar0, MV_Unk_00) Set(LVar0, MV_Unk_00)
Call(N(RemovePadlock)) Call(N(RemovePadlock))
Call(SetTimeFreezeMode, TIME_FREEZE_NORMAL) Call(SetTimeFreezeMode, TIME_FREEZE_NONE)
Unbind Unbind
Return Return
End End

View File

@ -306,7 +306,7 @@ EvtScript N(EVS_NpcIdle_Boo) = {
}; };
EvtScript N(EVS_NpcDefeat_Tubba) = { EvtScript N(EVS_NpcDefeat_Tubba) = {
Call(SetEncounterStatusFlags, ENCOUNTER_STATUS_FLAG_2, TRUE) Call(SetEncounterStatusFlags, ENCOUNTER_FLAG_CANT_SKIP_WIN_DELAY, TRUE)
Call(GetBattleOutcome, LVar0) Call(GetBattleOutcome, LVar0)
Switch(LVar0) Switch(LVar0)
CaseEq(OUTCOME_PLAYER_WON) CaseEq(OUTCOME_PLAYER_WON)
@ -566,7 +566,7 @@ NpcData N(NpcData_Tubba)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Tubba), .init = &N(EVS_NpcInit_Tubba),
.settings = &N(NpcSettings_TubbaBlubba), .settings = &N(NpcSettings_TubbaBlubba),
.flags = ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN, .flags = ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_DELAY_AFTER_FLEE | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = TUBBA_ANIMS, .animations = TUBBA_ANIMS,
.extraAnimations = N(ExtraAnims_Tubba), .extraAnimations = N(ExtraAnims_Tubba),
@ -577,7 +577,7 @@ NpcData N(NpcData_Tubba)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_TubbasHeart), .init = &N(EVS_NpcInit_TubbasHeart),
.settings = &N(NpcSettings_TubbasHeart), .settings = &N(NpcSettings_TubbasHeart),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_DELAY_AFTER_FLEE | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = TUBBAS_HEART_ANIMS, .animations = TUBBAS_HEART_ANIMS,
}, },
@ -590,7 +590,7 @@ NpcData N(NpcData_Boos)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Boo), .init = &N(EVS_NpcInit_Boo),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
.extraAnimations = N(ExtraAnims_GustyBoo), .extraAnimations = N(ExtraAnims_GustyBoo),
@ -601,7 +601,7 @@ NpcData N(NpcData_Boos)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Boo), .init = &N(EVS_NpcInit_Boo),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
.extraAnimations = N(ExtraAnims_GustyBoo), .extraAnimations = N(ExtraAnims_GustyBoo),
@ -612,7 +612,7 @@ NpcData N(NpcData_Boos)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Boo), .init = &N(EVS_NpcInit_Boo),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
.extraAnimations = N(ExtraAnims_GustyBoo), .extraAnimations = N(ExtraAnims_GustyBoo),
@ -623,7 +623,7 @@ NpcData N(NpcData_Boos)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Boo), .init = &N(EVS_NpcInit_Boo),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
.extraAnimations = N(ExtraAnims_GustyBoo), .extraAnimations = N(ExtraAnims_GustyBoo),
@ -634,7 +634,7 @@ NpcData N(NpcData_Boos)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Boo), .init = &N(EVS_NpcInit_Boo),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = NORMAL_BOO_ANIMS, .animations = NORMAL_BOO_ANIMS,
.extraAnimations = N(ExtraAnims_Boo), .extraAnimations = N(ExtraAnims_Boo),
@ -645,7 +645,7 @@ NpcData N(NpcData_Boos)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Boo), .init = &N(EVS_NpcInit_Boo),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_ENABLE_HIT_SCRIPT | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = NORMAL_BOO_ANIMS, .animations = NORMAL_BOO_ANIMS,
.extraAnimations = N(ExtraAnims_Boo), .extraAnimations = N(ExtraAnims_Boo),
@ -658,7 +658,7 @@ NpcData N(NpcData_Bow) = {
.yaw = 0, .yaw = 0,
.init = &N(EVS_NpcInit_Bow), .init = &N(EVS_NpcInit_Bow),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_WorldBow_Idle, .idle = ANIM_WorldBow_Idle,
@ -686,7 +686,7 @@ NpcData N(NpcData_Bootler) = {
.yaw = 0, .yaw = 0,
.init = &N(EVS_NpcInit_Bootler), .init = &N(EVS_NpcInit_Bootler),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_Bootler_Idle, .idle = ANIM_Bootler_Idle,
@ -797,7 +797,7 @@ NpcData N(NpcData_Skolar) = {
.yaw = 0, .yaw = 0,
.init = &N(EVS_NpcInit_Skolar), .init = &N(EVS_NpcInit_Skolar),
.settings = &N(NpcSettings_StarSpirit), .settings = &N(NpcSettings_StarSpirit),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = SKOLAR_ANIMS, .animations = SKOLAR_ANIMS,
}; };

View File

@ -1,7 +1,7 @@
#include "arn_08.h" #include "arn_08.h"
EvtScript N(EVS_ExitDoor_arn_07_0) = { EvtScript N(EVS_ExitDoor_arn_07_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(ClearDefeatedEnemies) Call(ClearDefeatedEnemies)
Set(LVar0, arn_08_ENTRY_0) Set(LVar0, arn_08_ENTRY_0)

View File

@ -51,7 +51,7 @@ NpcData N(NpcData_TubbasHeart) = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_TubbasHeart), .init = &N(EVS_NpcInit_TubbasHeart),
.settings = &N(NpcSettings_TubbasHeart), .settings = &N(NpcSettings_TubbasHeart),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_DO_NOT_KILL,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = TUBBAS_HEART_ANIMS, .animations = TUBBAS_HEART_ANIMS,
}; };

View File

@ -51,7 +51,7 @@ NpcData N(NpcData_TubbasHeart) = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_TubbasHeart), .init = &N(EVS_NpcInit_TubbasHeart),
.settings = &N(NpcSettings_TubbasHeart), .settings = &N(NpcSettings_TubbasHeart),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_DO_NOT_KILL,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = TUBBAS_HEART_ANIMS, .animations = TUBBAS_HEART_ANIMS,
}; };

View File

@ -65,7 +65,7 @@ NpcData N(NpcData_TubbasHeart) = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_TubbasHeart), .init = &N(EVS_NpcInit_TubbasHeart),
.settings = &N(NpcSettings_TubbasHeart), .settings = &N(NpcSettings_TubbasHeart),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_DO_NOT_KILL,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = TUBBAS_HEART_ANIMS, .animations = TUBBAS_HEART_ANIMS,
}; };

View File

@ -52,7 +52,7 @@ EvtScript N(EVS_Scene_MeetHeart) = {
}; };
EvtScript N(EVS_ExitDoor_arn_13_1) = { EvtScript N(EVS_ExitDoor_arn_13_1) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Set(LVar0, arn_11_ENTRY_0) Set(LVar0, arn_11_ENTRY_0)
Set(LVar1, COLLIDER_ttw) Set(LVar1, COLLIDER_ttw)

View File

@ -155,7 +155,7 @@ NpcData N(NpcData_TubbasHeart) = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_TubbasHeart), .init = &N(EVS_NpcInit_TubbasHeart),
.settings = &N(NpcSettings_TubbasHeart), .settings = &N(NpcSettings_TubbasHeart),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_DELAY_AFTER_FLEE,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = TUBBAS_HEART_ANIMS, .animations = TUBBAS_HEART_ANIMS,
}; };

View File

@ -66,7 +66,7 @@ NpcData N(NpcData_TubbasHeart) = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_TubbasHeart), .init = &N(EVS_NpcInit_TubbasHeart),
.settings = &N(NpcSettings_TubbasHeart), .settings = &N(NpcSettings_TubbasHeart),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_DO_NOT_KILL,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = TUBBAS_HEART_ANIMS, .animations = TUBBAS_HEART_ANIMS,
}; };

View File

@ -66,7 +66,7 @@ NpcData N(NpcData_TubbasHeart) = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_TubbasHeart), .init = &N(EVS_NpcInit_TubbasHeart),
.settings = &N(NpcSettings_TubbasHeart), .settings = &N(NpcSettings_TubbasHeart),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_DO_NOT_KILL,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = TUBBAS_HEART_ANIMS, .animations = TUBBAS_HEART_ANIMS,
}; };

View File

@ -10,7 +10,7 @@ s32 N(map_init)(void) {
EvtScript N(EVS_ExitWalk_arn_04_1) = EVT_EXIT_WALK(60, dgb_00_ENTRY_0, "arn_04", arn_04_ENTRY_1); EvtScript N(EVS_ExitWalk_arn_04_1) = EVT_EXIT_WALK(60, dgb_00_ENTRY_0, "arn_04", arn_04_ENTRY_1);
EvtScript N(EVS_ExitDoors_dgb_01_0) = { EvtScript N(EVS_ExitDoors_dgb_01_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_00_ENTRY_1) Set(LVar0, dgb_00_ENTRY_1)

View File

@ -200,7 +200,7 @@ EvtScript N(EVS_LeaderBooShivering) = {
}; };
EvtScript N(EVS_TubbaTaunting) = { EvtScript N(EVS_TubbaTaunting) = {
SetGroup(EVT_GROUP_EF) SetGroup(EVT_GROUP_NOT_BATTLE)
Loop(0) Loop(0)
Call(RandInt, 50 * DT, LVar0) Call(RandInt, 50 * DT, LVar0)
Add(LVar0, 80 * DT) Add(LVar0, 80 * DT)
@ -442,7 +442,7 @@ NpcData N(NpcData_Boo_01) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_01), .init = &N(EVS_NpcInit_Boo_01),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_400000, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_BraveBoo, .tattle = MSG_NpcTattle_BraveBoo,
@ -454,7 +454,7 @@ NpcData N(NpcData_Boo_02) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_02), .init = &N(EVS_NpcInit_Boo_02),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
}; };
@ -465,7 +465,7 @@ NpcData N(NpcData_Boo_03) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_03), .init = &N(EVS_NpcInit_Boo_03),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
}; };
@ -476,7 +476,7 @@ NpcData N(NpcData_Boo_04) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_04), .init = &N(EVS_NpcInit_Boo_04),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
}; };
@ -487,7 +487,7 @@ NpcData N(NpcData_Boo_05) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_05), .init = &N(EVS_NpcInit_Boo_05),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
}; };
@ -498,7 +498,7 @@ NpcData N(NpcData_Boo_06) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Boo_06), .init = &N(EVS_NpcInit_Boo_06),
.settings = &N(NpcSettings_Boo), .settings = &N(NpcSettings_Boo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GUSTY_BOO_ANIMS, .animations = GUSTY_BOO_ANIMS,
}; };
@ -655,7 +655,7 @@ NpcData N(NpcData_Sentinel) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Sentinel), .init = &N(EVS_NpcInit_Sentinel),
.settings = &N(NpcSettings_Dummy), .settings = &N(NpcSettings_Dummy),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_400000, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = SENTINEL_ANIMS, .animations = SENTINEL_ANIMS,
}; };

View File

@ -5,18 +5,18 @@
#include "world/common/todo/GetEntityPosition.inc.c" #include "world/common/todo/GetEntityPosition.inc.c"
EvtScript N(EVS_UnlockPrompt_Door) = { EvtScript N(EVS_UnlockPrompt_Door) = {
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
SuspendGroup(EVT_GROUP_01) SuspendGroup(EVT_GROUP_FLAG_INTERACT)
Call(ShowKeyChoicePopup) Call(ShowKeyChoicePopup)
IfEq(LVar0, 0) IfEq(LVar0, 0)
Call(ShowMessageAtScreenPos, MSG_Menus_00D8, 160, 40) Call(ShowMessageAtScreenPos, MSG_Menus_00D8, 160, 40)
Call(CloseChoicePopup) Call(CloseChoicePopup)
ResumeGroup(EVT_GROUP_01) ResumeGroup(EVT_GROUP_FLAG_INTERACT)
Return Return
EndIf EndIf
IfEq(LVar0, -1) IfEq(LVar0, -1)
Call(CloseChoicePopup) Call(CloseChoicePopup)
ResumeGroup(EVT_GROUP_01) ResumeGroup(EVT_GROUP_FLAG_INTERACT)
Return Return
EndIf EndIf
Call(FindKeyItem, ITEM_TUBBA_CASTLE_KEY, LVar0) Call(FindKeyItem, ITEM_TUBBA_CASTLE_KEY, LVar0)
@ -27,7 +27,7 @@ EvtScript N(EVS_UnlockPrompt_Door) = {
Call(PlaySoundAt, SOUND_USE_KEY, SOUND_SPACE_DEFAULT, LVar0, LVar1, LVar2) Call(PlaySoundAt, SOUND_USE_KEY, SOUND_SPACE_DEFAULT, LVar0, LVar1, LVar2)
Set(LVar0, MV_PadlockEntityID) Set(LVar0, MV_PadlockEntityID)
Call(N(RemovePadlock)) Call(N(RemovePadlock))
ResumeGroup(EVT_GROUP_01) ResumeGroup(EVT_GROUP_FLAG_INTERACT)
Unbind Unbind
Return Return
End End

View File

@ -1,7 +1,7 @@
#include "dgb_01.h" #include "dgb_01.h"
EvtScript N(EVS_ExitDoors_dgb_00_1) = { EvtScript N(EVS_ExitDoors_dgb_00_1) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_01_ENTRY_0) Set(LVar0, dgb_01_ENTRY_0)
@ -17,7 +17,7 @@ EvtScript N(EVS_ExitDoors_dgb_00_1) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_02_1) = { EvtScript N(EVS_ExitDoors_dgb_02_1) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_01_ENTRY_1) Set(LVar0, dgb_01_ENTRY_1)
@ -33,7 +33,7 @@ EvtScript N(EVS_ExitDoors_dgb_02_1) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_08_0) = { EvtScript N(EVS_ExitDoors_dgb_08_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_01_ENTRY_2) Set(LVar0, dgb_01_ENTRY_2)
@ -49,7 +49,7 @@ EvtScript N(EVS_ExitDoors_dgb_08_0) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_09_1) = { EvtScript N(EVS_ExitDoors_dgb_09_1) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_01_ENTRY_3) Set(LVar0, dgb_01_ENTRY_3)
@ -65,7 +65,7 @@ EvtScript N(EVS_ExitDoors_dgb_09_1) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_08_1) = { EvtScript N(EVS_ExitDoors_dgb_08_1) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_01_ENTRY_4) Set(LVar0, dgb_01_ENTRY_4)
@ -81,7 +81,7 @@ EvtScript N(EVS_ExitDoors_dgb_08_1) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_17_1) = { EvtScript N(EVS_ExitDoors_dgb_17_1) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_01_ENTRY_5) Set(LVar0, dgb_01_ENTRY_5)
@ -97,7 +97,7 @@ EvtScript N(EVS_ExitDoors_dgb_17_1) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_18_0) = { EvtScript N(EVS_ExitDoors_dgb_18_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_01_ENTRY_6) Set(LVar0, dgb_01_ENTRY_6)

View File

@ -1,7 +1,7 @@
#include "dgb_02.h" #include "dgb_02.h"
EvtScript N(EVS_ExitDoors_dgb_03_1) = { EvtScript N(EVS_ExitDoors_dgb_03_1) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_02_ENTRY_0) Set(LVar0, dgb_02_ENTRY_0)
@ -17,7 +17,7 @@ EvtScript N(EVS_ExitDoors_dgb_03_1) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_01_1) = { EvtScript N(EVS_ExitDoors_dgb_01_1) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_02_ENTRY_1) Set(LVar0, dgb_02_ENTRY_1)
@ -33,7 +33,7 @@ EvtScript N(EVS_ExitDoors_dgb_01_1) = {
}; };
EvtScript N(EVS_ExitDoor_dgb_07_0) = { EvtScript N(EVS_ExitDoor_dgb_07_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_BASIC) Call(UseDoorSounds, DOOR_SOUNDS_BASIC)
Set(LVar0, dgb_02_ENTRY_2) Set(LVar0, dgb_02_ENTRY_2)
@ -49,7 +49,7 @@ EvtScript N(EVS_ExitDoor_dgb_07_0) = {
}; };
EvtScript N(EVS_ExitDoor_dgb_11_0) = { EvtScript N(EVS_ExitDoor_dgb_11_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_BASIC) Call(UseDoorSounds, DOOR_SOUNDS_BASIC)
Set(LVar0, dgb_02_ENTRY_3) Set(LVar0, dgb_02_ENTRY_3)

View File

@ -4,7 +4,7 @@
#include "world/common/todo/UnkFunc12.inc.c" #include "world/common/todo/UnkFunc12.inc.c"
EvtScript N(EVS_PushClock_Impl) = { EvtScript N(EVS_PushClock_Impl) = {
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Loop(20) Loop(20)
Call(GetPartnerInUse, LVarA) Call(GetPartnerInUse, LVarA)
IfNe(LVarA, PARTNER_NONE) IfNe(LVarA, PARTNER_NONE)

View File

@ -5,18 +5,18 @@
#include "world/common/todo/GetEntityPosition.inc.c" #include "world/common/todo/GetEntityPosition.inc.c"
EvtScript N(EVS_UnlockPrompt_UpperDoor) = { EvtScript N(EVS_UnlockPrompt_UpperDoor) = {
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
SuspendGroup(EVT_GROUP_01) SuspendGroup(EVT_GROUP_FLAG_INTERACT)
Call(ShowKeyChoicePopup) Call(ShowKeyChoicePopup)
IfEq(LVar0, 0) IfEq(LVar0, 0)
Call(ShowMessageAtScreenPos, MSG_Menus_00D8, 160, 40) Call(ShowMessageAtScreenPos, MSG_Menus_00D8, 160, 40)
Call(CloseChoicePopup) Call(CloseChoicePopup)
ResumeGroup(EVT_GROUP_01) ResumeGroup(EVT_GROUP_FLAG_INTERACT)
Return Return
EndIf EndIf
IfEq(LVar0, -1) IfEq(LVar0, -1)
Call(CloseChoicePopup) Call(CloseChoicePopup)
ResumeGroup(EVT_GROUP_01) ResumeGroup(EVT_GROUP_FLAG_INTERACT)
Return Return
EndIf EndIf
Call(FindKeyItem, ITEM_TUBBA_CASTLE_KEY, LVar0) Call(FindKeyItem, ITEM_TUBBA_CASTLE_KEY, LVar0)
@ -27,7 +27,7 @@ EvtScript N(EVS_UnlockPrompt_UpperDoor) = {
Call(PlaySoundAt, SOUND_USE_KEY, SOUND_SPACE_DEFAULT, LVar0, LVar1, LVar2) Call(PlaySoundAt, SOUND_USE_KEY, SOUND_SPACE_DEFAULT, LVar0, LVar1, LVar2)
Set(LVar0, MV_PadlockEntityID) Set(LVar0, MV_PadlockEntityID)
Call(N(RemovePadlock)) Call(N(RemovePadlock))
ResumeGroup(EVT_GROUP_01) ResumeGroup(EVT_GROUP_FLAG_INTERACT)
Unbind Unbind
Return Return
End End

View File

@ -1,7 +1,7 @@
#include "dgb_03.h" #include "dgb_03.h"
EvtScript N(EVS_ExitDoors_dgb_02_0) = { EvtScript N(EVS_ExitDoors_dgb_02_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_03_ENTRY_1) Set(LVar0, dgb_03_ENTRY_1)
@ -17,7 +17,7 @@ EvtScript N(EVS_ExitDoors_dgb_02_0) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_09_0) = { EvtScript N(EVS_ExitDoors_dgb_09_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_03_ENTRY_4) Set(LVar0, dgb_03_ENTRY_4)
@ -33,7 +33,7 @@ EvtScript N(EVS_ExitDoors_dgb_09_0) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_04_0) = { EvtScript N(EVS_ExitDoors_dgb_04_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_03_ENTRY_0) Set(LVar0, dgb_03_ENTRY_0)
@ -51,7 +51,7 @@ EvtScript N(EVS_ExitDoors_dgb_04_0) = {
EvtScript N(EVS_ExitWalk_dgb_13_0) = EVT_EXIT_WALK(26, dgb_03_ENTRY_2, "dgb_13", dgb_13_ENTRY_0); EvtScript N(EVS_ExitWalk_dgb_13_0) = EVT_EXIT_WALK(26, dgb_03_ENTRY_2, "dgb_13", dgb_13_ENTRY_0);
EvtScript N(EVS_ExitDoors_dgb_05_0) = { EvtScript N(EVS_ExitDoors_dgb_05_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_BASIC) Call(UseDoorSounds, DOOR_SOUNDS_BASIC)
Set(LVar0, dgb_03_ENTRY_2) Set(LVar0, dgb_03_ENTRY_2)
@ -67,7 +67,7 @@ EvtScript N(EVS_ExitDoors_dgb_05_0) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_14_0) = { EvtScript N(EVS_ExitDoors_dgb_14_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_03_ENTRY_3) Set(LVar0, dgb_03_ENTRY_3)

View File

@ -1,7 +1,7 @@
#include "dgb_04.h" #include "dgb_04.h"
EvtScript N(EVS_ExitDoor_dgb_06_0) = { EvtScript N(EVS_ExitDoor_dgb_06_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_BASIC) Call(UseDoorSounds, DOOR_SOUNDS_BASIC)
Set(LVar0, dgb_04_ENTRY_0) Set(LVar0, dgb_04_ENTRY_0)
@ -17,7 +17,7 @@ EvtScript N(EVS_ExitDoor_dgb_06_0) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_03_0) = { EvtScript N(EVS_ExitDoors_dgb_03_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_04_ENTRY_1) Set(LVar0, dgb_04_ENTRY_1)

View File

@ -1,7 +1,7 @@
#include "dgb_05.h" #include "dgb_05.h"
EvtScript N(EVS_ExitDoor_dgb_03_2) = { EvtScript N(EVS_ExitDoor_dgb_03_2) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_BASIC) Call(UseDoorSounds, DOOR_SOUNDS_BASIC)
Set(LVar0, dgb_05_ENTRY_0) Set(LVar0, dgb_05_ENTRY_0)

View File

@ -1,7 +1,7 @@
#include "dgb_06.h" #include "dgb_06.h"
EvtScript N(EVS_ExitDoor_dgb_04_1) = { EvtScript N(EVS_ExitDoor_dgb_04_1) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_BASIC) Call(UseDoorSounds, DOOR_SOUNDS_BASIC)
Set(LVar0, dgb_06_ENTRY_0) Set(LVar0, dgb_06_ENTRY_0)

View File

@ -1,7 +1,7 @@
#include "dgb_07.h" #include "dgb_07.h"
EvtScript N(EVS_ExitDoor_dgb_02_2) = { EvtScript N(EVS_ExitDoor_dgb_02_2) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_BASIC) Call(UseDoorSounds, DOOR_SOUNDS_BASIC)
Set(LVar0, dgb_07_ENTRY_0) Set(LVar0, dgb_07_ENTRY_0)

View File

@ -1,7 +1,7 @@
#include "dgb_08.h" #include "dgb_08.h"
EvtScript N(EVS_ExitDoors_dgb_01_2) = { EvtScript N(EVS_ExitDoors_dgb_01_2) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_08_ENTRY_0) Set(LVar0, dgb_08_ENTRY_0)
@ -17,7 +17,7 @@ EvtScript N(EVS_ExitDoors_dgb_01_2) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_01_4) = { EvtScript N(EVS_ExitDoors_dgb_01_4) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_08_ENTRY_1) Set(LVar0, dgb_08_ENTRY_1)

View File

@ -198,7 +198,7 @@ NpcData N(NpcData_Tubba) = {
}, },
.init = &N(EVS_NpcInit_Tubba), .init = &N(EVS_NpcInit_Tubba),
.settings = &N(NpcSettings_TubbaBlubba), .settings = &N(NpcSettings_TubbaBlubba),
.flags = ENEMY_FLAG_4 | ENEMY_FLAG_40000 | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN | ENEMY_FLAG_NO_DROPS, .flags = ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_NO_DELAY_AFTER_FLEE | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN | ENEMY_FLAG_NO_DROPS,
.drops = CLUBBA_DROPS, .drops = CLUBBA_DROPS,
.animations = TUBBA_ANGRY_ANIMS, .animations = TUBBA_ANGRY_ANIMS,
.aiDetectFlags = AI_DETECT_SIGHT, .aiDetectFlags = AI_DETECT_SIGHT,
@ -412,7 +412,7 @@ NpcData N(NpcData_LastClubba) = {
}, },
.init = &N(EVS_NpcInit_LastClubba), .init = &N(EVS_NpcInit_LastClubba),
.settings = &N(NpcSettings_LastClubba), .settings = &N(NpcSettings_LastClubba),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN | ENEMY_FLAG_400000, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = CLUBBA_ANIMS, .animations = CLUBBA_ANIMS,
.aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION,

View File

@ -1,7 +1,7 @@
#include "dgb_09.h" #include "dgb_09.h"
EvtScript N(exitDoubleDoor_80243920) = { EvtScript N(exitDoubleDoor_80243920) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_09_ENTRY_0) Set(LVar0, dgb_09_ENTRY_0)
@ -17,7 +17,7 @@ EvtScript N(exitDoubleDoor_80243920) = {
}; };
EvtScript N(exitDoubleDoor_802439D4) = { EvtScript N(exitDoubleDoor_802439D4) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_09_ENTRY_1) Set(LVar0, dgb_09_ENTRY_1)
@ -33,7 +33,7 @@ EvtScript N(exitDoubleDoor_802439D4) = {
}; };
EvtScript N(exitSingleDoor_80243A88) = { EvtScript N(exitSingleDoor_80243A88) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_BASIC) Call(UseDoorSounds, DOOR_SOUNDS_BASIC)
Set(LVar0, dgb_09_ENTRY_2) Set(LVar0, dgb_09_ENTRY_2)

View File

@ -1,7 +1,7 @@
#include "dgb_11.h" #include "dgb_11.h"
EvtScript N(EVS_ExitDoor_dgb_02_3) = { EvtScript N(EVS_ExitDoor_dgb_02_3) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_BASIC) Call(UseDoorSounds, DOOR_SOUNDS_BASIC)
Set(LVar0, dgb_11_ENTRY_0) Set(LVar0, dgb_11_ENTRY_0)

View File

@ -1,7 +1,7 @@
#include "dgb_12.h" #include "dgb_12.h"
EvtScript N(EVS_ExitDoor_dgb_09_2) = { EvtScript N(EVS_ExitDoor_dgb_09_2) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_BASIC) Call(UseDoorSounds, DOOR_SOUNDS_BASIC)
Set(LVar0, dgb_12_ENTRY_0) Set(LVar0, dgb_12_ENTRY_0)

View File

@ -6,7 +6,7 @@ LavaReset N(SafeFloorColliders)[] = {
}; };
EvtScript N(EVS_SetupSpikes) = { EvtScript N(EVS_SetupSpikes) = {
SetGroup(EVT_GROUP_EF) SetGroup(EVT_GROUP_NOT_BATTLE)
Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o202, SURFACE_TYPE_SPIKES) Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o202, SURFACE_TYPE_SPIKES)
Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o215, SURFACE_TYPE_SPIKES) Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o215, SURFACE_TYPE_SPIKES)
Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o216, SURFACE_TYPE_SPIKES) Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o216, SURFACE_TYPE_SPIKES)

View File

@ -2,7 +2,7 @@
#include "sprite/player.h" #include "sprite/player.h"
EvtScript N(EVS_ExitDoors_dgb_03_3) = { EvtScript N(EVS_ExitDoors_dgb_03_3) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_14_ENTRY_1) Set(LVar0, dgb_14_ENTRY_1)
@ -18,7 +18,7 @@ EvtScript N(EVS_ExitDoors_dgb_03_3) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_15_0) = { EvtScript N(EVS_ExitDoors_dgb_15_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_14_ENTRY_0) Set(LVar0, dgb_14_ENTRY_0)

View File

@ -5,18 +5,18 @@
#include "world/common/todo/RemovePadlock.inc.c" #include "world/common/todo/RemovePadlock.inc.c"
EvtScript N(EVS_UnlockPrompt_Door) = { EvtScript N(EVS_UnlockPrompt_Door) = {
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
SuspendGroup(EVT_GROUP_01) SuspendGroup(EVT_GROUP_FLAG_INTERACT)
Call(ShowKeyChoicePopup) Call(ShowKeyChoicePopup)
IfEq(LVar0, 0) IfEq(LVar0, 0)
Call(ShowMessageAtScreenPos, MSG_Menus_00D8, 160, 40) Call(ShowMessageAtScreenPos, MSG_Menus_00D8, 160, 40)
Call(CloseChoicePopup) Call(CloseChoicePopup)
ResumeGroup(EVT_GROUP_01) ResumeGroup(EVT_GROUP_FLAG_INTERACT)
Return Return
EndIf EndIf
IfEq(LVar0, -1) IfEq(LVar0, -1)
Call(CloseChoicePopup) Call(CloseChoicePopup)
ResumeGroup(EVT_GROUP_01) ResumeGroup(EVT_GROUP_FLAG_INTERACT)
Return Return
EndIf EndIf
Call(FindKeyItem, ITEM_TUBBA_CASTLE_KEY, LVar0) Call(FindKeyItem, ITEM_TUBBA_CASTLE_KEY, LVar0)
@ -27,7 +27,7 @@ EvtScript N(EVS_UnlockPrompt_Door) = {
Call(PlaySoundAt, SOUND_USE_KEY, SOUND_SPACE_DEFAULT, LVar0, LVar1, LVar2) Call(PlaySoundAt, SOUND_USE_KEY, SOUND_SPACE_DEFAULT, LVar0, LVar1, LVar2)
Set(LVar0, MV_PadlockEntityID) Set(LVar0, MV_PadlockEntityID)
Call(N(RemovePadlock)) Call(N(RemovePadlock))
ResumeGroup(EVT_GROUP_01) ResumeGroup(EVT_GROUP_FLAG_INTERACT)
Unbind Unbind
Return Return
End End

View File

@ -6,7 +6,7 @@ s32 N(KeyList)[] = {
}; };
EvtScript N(EVS_ExitDoors_dgb_14_1) = { EvtScript N(EVS_ExitDoors_dgb_14_1) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_15_ENTRY_0) Set(LVar0, dgb_15_ENTRY_0)
@ -22,7 +22,7 @@ EvtScript N(EVS_ExitDoors_dgb_14_1) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_17_0) = { EvtScript N(EVS_ExitDoors_dgb_17_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_15_ENTRY_1) Set(LVar0, dgb_15_ENTRY_1)
@ -38,7 +38,7 @@ EvtScript N(EVS_ExitDoors_dgb_17_0) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_16_0) = { EvtScript N(EVS_ExitDoors_dgb_16_0) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_BASIC) Call(UseDoorSounds, DOOR_SOUNDS_BASIC)
Set(LVar0, dgb_15_ENTRY_2) Set(LVar0, dgb_15_ENTRY_2)

View File

@ -187,7 +187,7 @@ NpcData N(NpcData_Tubba) = {
}, },
.init = &N(EVS_NpcInit_Tubba), .init = &N(EVS_NpcInit_Tubba),
.settings = &N(NpcSettings_TubbaBlubba), .settings = &N(NpcSettings_TubbaBlubba),
.flags = ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN | ENEMY_FLAG_NO_DROPS, .flags = ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_DELAY_AFTER_FLEE | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN | ENEMY_FLAG_NO_DROPS,
.drops = CLUBBA_DROPS, .drops = CLUBBA_DROPS,
.animations = TUBBA_ANIMS, .animations = TUBBA_ANIMS,
.aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION,

View File

@ -1,7 +1,7 @@
#include "dgb_16.h" #include "dgb_16.h"
EvtScript N(EVS_ExitDoors_dgb_15_2) = { EvtScript N(EVS_ExitDoors_dgb_15_2) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_BASIC) Call(UseDoorSounds, DOOR_SOUNDS_BASIC)
Set(LVar0, dgb_16_ENTRY_0) Set(LVar0, dgb_16_ENTRY_0)

View File

@ -1,7 +1,7 @@
#include "dgb_17.h" #include "dgb_17.h"
EvtScript N(EVS_ExitDoors_dgb_15_1) = { EvtScript N(EVS_ExitDoors_dgb_15_1) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_17_ENTRY_0) Set(LVar0, dgb_17_ENTRY_0)
@ -17,7 +17,7 @@ EvtScript N(EVS_ExitDoors_dgb_15_1) = {
}; };
EvtScript N(EVS_ExitDoors_dgb_01_5) = { EvtScript N(EVS_ExitDoors_dgb_01_5) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_17_ENTRY_1) Set(LVar0, dgb_17_ENTRY_1)

View File

@ -1,7 +1,7 @@
#include "dgb_18.h" #include "dgb_18.h"
EvtScript N(EVS_ExitDoors_dgb_01_6) = { EvtScript N(EVS_ExitDoors_dgb_01_6) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(UseDoorSounds, DOOR_SOUNDS_CREAKY) Call(UseDoorSounds, DOOR_SOUNDS_CREAKY)
Set(LVar0, dgb_18_ENTRY_0) Set(LVar0, dgb_18_ENTRY_0)

View File

@ -297,7 +297,7 @@ EvtScript N(EVS_NpcIdle_Tubba_Asleep) = {
}; };
EvtScript N(EVS_NpcAI_Tubba_WakeUp) = { EvtScript N(EVS_NpcAI_Tubba_WakeUp) = {
SetGroup(EVT_GROUP_0B) SetGroup(EVT_GROUP_HOSTILE_NPC)
Call(PlaySoundAtNpc, NPC_SELF, SOUND_TUBBA_SNORE_EXHALE, SOUND_SPACE_DEFAULT) Call(PlaySoundAtNpc, NPC_SELF, SOUND_TUBBA_SNORE_EXHALE, SOUND_SPACE_DEFAULT)
Call(ShowSleepBubble, NPC_Tubba, 0, 50, 2, 552, 111, 128, 30, LVar0) Call(ShowSleepBubble, NPC_Tubba, 0, 50, 2, 552, 111, 128, 30, LVar0)
Wait(360) Wait(360)
@ -322,7 +322,7 @@ EvtScript N(EVS_NpcAI_Tubba_WakeUp) = {
}; };
EvtScript N(EVS_NpcAI_Tubba_Chase) = { EvtScript N(EVS_NpcAI_Tubba_Chase) = {
SetGroup(EVT_GROUP_0B) SetGroup(EVT_GROUP_HOSTILE_NPC)
Call(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim0D) Call(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim0D)
Thread Thread
Loop(0) Loop(0)
@ -510,7 +510,7 @@ NpcData N(NpcData_Tubba) = {
}, },
.init = &N(EVS_NpcInit_Tubba), .init = &N(EVS_NpcInit_Tubba),
.settings = &N(NpcSettings_TubbaBlubba), .settings = &N(NpcSettings_TubbaBlubba),
.flags = ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN | ENEMY_FLAG_NO_DROPS, .flags = ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_DELAY_AFTER_FLEE | ENEMY_FLAG_ACTIVE_WHILE_OFFSCREEN | ENEMY_FLAG_NO_DROPS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = TUBBA_ANGRY_ANIMS, .animations = TUBBA_ANGRY_ANIMS,
}; };

View File

@ -5,7 +5,7 @@
#include "world/common/atomic/ApplyTint.inc.c" #include "world/common/atomic/ApplyTint.inc.c"
EvtScript N(EVS_ExitWalk_sbk_36_1) = { EvtScript N(EVS_ExitWalk_sbk_36_1) = {
SetGroup(EVT_GROUP_1B) SetGroup(EVT_GROUP_EXIT_MAP)
Set(GF_DRO01_HeardHintAboutSpinningRoof, 0) Set(GF_DRO01_HeardHintAboutSpinningRoof, 0)
Call(UseExitHeading, 60, 0) Call(UseExitHeading, 60, 0)
Exec(ExitWalk) Exec(ExitWalk)

View File

@ -196,7 +196,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Mouser_01), .init = &N(EVS_NpcInit_Mouser_01),
.settings = &N(NpcSettings_Mouser), .settings = &N(NpcSettings_Mouser),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = MOUSER_BLUE_ANIMS, .animations = MOUSER_BLUE_ANIMS,
.tattle = MSG_NpcTattle_DRO_Greeter, .tattle = MSG_NpcTattle_DRO_Greeter,
@ -219,7 +219,7 @@ NpcData N(PassiveNPCs)[] = {
}, },
.init = &N(EVS_NpcInit_Dryite_01), .init = &N(EVS_NpcInit_Dryite_01),
.settings = &N(NpcSettings_Dryite_Wander), .settings = &N(NpcSettings_Dryite_Wander),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = DRYITE_YELLOW_ANIMS, .animations = DRYITE_YELLOW_ANIMS,
.tattle = MSG_NpcTattle_DRO_DryiteA, .tattle = MSG_NpcTattle_DRO_DryiteA,
@ -230,7 +230,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 61, .yaw = 61,
.init = &N(EVS_NpcInit_Dryite_02), .init = &N(EVS_NpcInit_Dryite_02),
.settings = &N(NpcSettings_Dryite), .settings = &N(NpcSettings_Dryite),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = DRYITE_BLUE_ANIMS, .animations = DRYITE_BLUE_ANIMS,
.tattle = MSG_NpcTattle_DRO_DryiteD, .tattle = MSG_NpcTattle_DRO_DryiteD,
@ -241,7 +241,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 74, .yaw = 74,
.init = &N(EVS_NpcInit_HintDryite), .init = &N(EVS_NpcInit_HintDryite),
.settings = &N(NpcSettings_Dryite), .settings = &N(NpcSettings_Dryite),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = DRYITE_GREEN_ANIMS, .animations = DRYITE_GREEN_ANIMS,
.tattle = MSG_NpcTattle_DRO_DryiteB, .tattle = MSG_NpcTattle_DRO_DryiteB,
@ -252,7 +252,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 257, .yaw = 257,
.init = &N(EVS_NpcInit_Dryite_04), .init = &N(EVS_NpcInit_Dryite_04),
.settings = &N(NpcSettings_Dryite), .settings = &N(NpcSettings_Dryite),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = DRYITE_GREEN_ANIMS, .animations = DRYITE_GREEN_ANIMS,
.tattle = MSG_NpcTattle_DRO_DryiteC, .tattle = MSG_NpcTattle_DRO_DryiteC,
@ -263,7 +263,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 271, .yaw = 271,
.init = &N(EVS_NpcInit_Composer), .init = &N(EVS_NpcInit_Composer),
.settings = &N(NpcSettings_Dryite), .settings = &N(NpcSettings_Dryite),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_Musician_Composer_Idle, .idle = ANIM_Musician_Composer_Idle,
@ -291,7 +291,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 180, .yaw = 180,
.init = &N(EVS_NpcInit_ShopOwner), .init = &N(EVS_NpcInit_ShopOwner),
.settings = &N(NpcSettings_Mouser), .settings = &N(NpcSettings_Mouser),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = MOUSER_PURPLE_ANIMS, .animations = MOUSER_PURPLE_ANIMS,
.tattle = MSG_NpcTattle_DRO_ShopOwner, .tattle = MSG_NpcTattle_DRO_ShopOwner,
@ -303,7 +303,7 @@ NpcData N(PassiveNPCs)[] = {
.initVarCount = 1, .initVarCount = 1,
.initVar = { .bytes = { 0, QUIZ_AREA_DRO, QUIZ_COUNT_DRO, QUIZ_MAP_DRO_01 }}, .initVar = { .bytes = { 0, QUIZ_AREA_DRO, QUIZ_COUNT_DRO, QUIZ_MAP_DRO_01 }},
.settings = &N(NpcSettings_ChuckQuizmo), .settings = &N(NpcSettings_ChuckQuizmo),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_ChuckQuizmo_Idle, .idle = ANIM_ChuckQuizmo_Idle,
@ -343,7 +343,7 @@ NpcData N(PassiveNPCs)[] = {
}, },
.init = &N(EVS_NpcInit_DojoGrad), .init = &N(EVS_NpcInit_DojoGrad),
.settings = &N(NpcSettings_Dryite_Wander), .settings = &N(NpcSettings_Dryite_Wander),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = DRYITE_BROWN_ANIMS, .animations = DRYITE_BROWN_ANIMS,
.tattle = MSG_NpcTattle_DRO_DojoGraduate, .tattle = MSG_NpcTattle_DRO_DojoGraduate,
@ -382,7 +382,7 @@ NpcData N(ThreeSisterNPCs)[] = {
.yaw = 62, .yaw = 62,
.init = &N(EVS_NpcInit_Toadette), .init = &N(EVS_NpcInit_Toadette),
.settings = &N(NpcSettings_Toad_Stationary), .settings = &N(NpcSettings_Toad_Stationary),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = TOADETTE_PINK_ANIMS, .animations = TOADETTE_PINK_ANIMS,
.tattle = MSG_NpcTattle_TravelingMaidA, .tattle = MSG_NpcTattle_TravelingMaidA,
@ -393,7 +393,7 @@ NpcData N(ThreeSisterNPCs)[] = {
.yaw = 63, .yaw = 63,
.init = &N(EVS_NpcInit_Toadette), .init = &N(EVS_NpcInit_Toadette),
.settings = &N(NpcSettings_Toad_Stationary), .settings = &N(NpcSettings_Toad_Stationary),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = TOADETTE_PINK_ANIMS, .animations = TOADETTE_PINK_ANIMS,
.tattle = MSG_NpcTattle_TravelingMaidB, .tattle = MSG_NpcTattle_TravelingMaidB,
@ -404,7 +404,7 @@ NpcData N(ThreeSisterNPCs)[] = {
.yaw = 244, .yaw = 244,
.init = &N(EVS_NpcInit_Toadette), .init = &N(EVS_NpcInit_Toadette),
.settings = &N(NpcSettings_Toad_Stationary), .settings = &N(NpcSettings_Toad_Stationary),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = TOADETTE_PINK_ANIMS, .animations = TOADETTE_PINK_ANIMS,
.tattle = MSG_NpcTattle_TravelingMaidC, .tattle = MSG_NpcTattle_TravelingMaidC,

View File

@ -374,7 +374,7 @@ NpcData N(PassiveNPCs)[] = {
}, },
.init = &N(EVS_NpcInit_Archeologist), .init = &N(EVS_NpcInit_Archeologist),
.settings = &N(NpcSettings_Archeologist), .settings = &N(NpcSettings_Archeologist),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_Archeologist_Idle, .idle = ANIM_Archeologist_Idle,
@ -414,7 +414,7 @@ NpcData N(PassiveNPCs)[] = {
}, },
.init = &N(EVS_NpcInit_MrE), .init = &N(EVS_NpcInit_MrE),
.settings = &N(NpcSettings_Dryite_Wander), .settings = &N(NpcSettings_Dryite_Wander),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = DRYITE_BLUE_ANIMS, .animations = DRYITE_BLUE_ANIMS,
.tattle = MSG_NpcTattle_DRO_DryiteE, .tattle = MSG_NpcTattle_DRO_DryiteE,
@ -425,7 +425,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_DisguisedMoustafa), .init = &N(EVS_NpcInit_DisguisedMoustafa),
.settings = &N(NpcSettings_Mouser), .settings = &N(NpcSettings_Mouser),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = DISGUISED_MOUSTAFA_ANIMS, .animations = DISGUISED_MOUSTAFA_ANIMS,
.tattle = MSG_NpcTattle_Sheek, .tattle = MSG_NpcTattle_Sheek,
@ -436,7 +436,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 180, .yaw = 180,
.init = &N(EVS_NpcInit_ToadHouseKeeper), .init = &N(EVS_NpcInit_ToadHouseKeeper),
.settings = &N(NpcSettings_Toad_Stationary), .settings = &N(NpcSettings_Toad_Stationary),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = TOAD_RED_ANIMS, .animations = TOAD_RED_ANIMS,
.tattle = MSG_NpcTattle_DRO_ToadHouseToad, .tattle = MSG_NpcTattle_DRO_ToadHouseToad,
@ -447,7 +447,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 180, .yaw = 180,
.init = &N(EVS_NpcAuxAI_Merlee), .init = &N(EVS_NpcAuxAI_Merlee),
.settings = &N(NpcSettings_Merlee), .settings = &N(NpcSettings_Merlee),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_WorldMerlee_Idle, .idle = ANIM_WorldMerlee_Idle,
@ -475,7 +475,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 0, .yaw = 0,
.init = &N(EVS_NpcInit_Moustafa), .init = &N(EVS_NpcInit_Moustafa),
.settings = &N(NpcSettings_Mouser), .settings = &N(NpcSettings_Mouser),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = MOUSTAFA_ANIMS, .animations = MOUSTAFA_ANIMS,
.tattle = MSG_NpcTattle_Moustafa, .tattle = MSG_NpcTattle_Moustafa,
@ -486,7 +486,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Dryite_02), .init = &N(EVS_NpcInit_Dryite_02),
.settings = &N(NpcSettings_Dryite), .settings = &N(NpcSettings_Dryite),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = DRYITE_GREEN_ANIMS, .animations = DRYITE_GREEN_ANIMS,
.tattle = MSG_NpcTattle_DRO_DryiteF, .tattle = MSG_NpcTattle_DRO_DryiteF,
@ -497,7 +497,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Dryite_03), .init = &N(EVS_NpcInit_Dryite_03),
.settings = &N(NpcSettings_Dryite), .settings = &N(NpcSettings_Dryite),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = DRYITE_GREEN_ANIMS, .animations = DRYITE_GREEN_ANIMS,
.tattle = MSG_NpcTattle_DRO_VisitedShootingStarSummit, .tattle = MSG_NpcTattle_DRO_VisitedShootingStarSummit,
@ -508,7 +508,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 180, .yaw = 180,
.init = &N(EVS_NpcInit_Mouser_01), .init = &N(EVS_NpcInit_Mouser_01),
.settings = &N(NpcSettings_Mouser), .settings = &N(NpcSettings_Mouser),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = MOUSER_BLUE_ANIMS, .animations = MOUSER_BLUE_ANIMS,
.tattle = MSG_NpcTattle_DRO_CrushingOnMerlee, .tattle = MSG_NpcTattle_DRO_CrushingOnMerlee,
@ -519,7 +519,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Mouser_02), .init = &N(EVS_NpcInit_Mouser_02),
.settings = &N(NpcSettings_Mouser), .settings = &N(NpcSettings_Mouser),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = MOUSER_BLUE_ANIMS, .animations = MOUSER_BLUE_ANIMS,
.tattle = MSG_NpcTattle_DRO_TellsTales, .tattle = MSG_NpcTattle_DRO_TellsTales,
@ -530,7 +530,7 @@ NpcData N(PassiveNPCs)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Mouser_03), .init = &N(EVS_NpcInit_Mouser_03),
.settings = &N(NpcSettings_Mouser), .settings = &N(NpcSettings_Mouser),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = MOUSER_PURPLE_ANIMS, .animations = MOUSER_PURPLE_ANIMS,
}, },

View File

@ -256,7 +256,7 @@ EvtScript N(EVS_NpcInit_DisguisedMoustafa) = {
CaseOrEq(dro_02_ENTRY_3) CaseOrEq(dro_02_ENTRY_3)
Call(SetNpcPos, NPC_SELF, 200, 0, -15) Call(SetNpcPos, NPC_SELF, 200, 0, -15)
Call(InterpNpcYaw, NPC_SELF, 270, 0) Call(InterpNpcYaw, NPC_SELF, 270, 0)
Call(SetNpcFlagBits, NPC_SELF, NPC_FLAG_200000, TRUE) Call(SetNpcFlagBits, NPC_SELF, NPC_FLAG_FLIP_INSTANTLY, TRUE)
Call(SetNpcAnimation, NPC_SELF, ANIM_DisguisedMoustafa_GrabCloak) Call(SetNpcAnimation, NPC_SELF, ANIM_DisguisedMoustafa_GrabCloak)
EndCaseGroup EndCaseGroup
CaseDefault CaseDefault

View File

@ -129,7 +129,7 @@ EvtScript N(EVS_RoomListener_Hideout) = {
}; };
EvtScript N(EVS_OpenSecretDoor_FromOutside) = { EvtScript N(EVS_OpenSecretDoor_FromOutside) = {
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(func_802D2C14, 1) Call(func_802D2C14, 1)
Call(PlayerMoveTo, 230, 10, 20) Call(PlayerMoveTo, 230, 10, 20)
@ -163,7 +163,7 @@ EvtScript N(EVS_OpenSecretDoor_FromOutside) = {
}; };
EvtScript N(EVS_OpenSecretDoor_FromInside) = { EvtScript N(EVS_OpenSecretDoor_FromInside) = {
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
Call(func_802D2C14, 1) Call(func_802D2C14, 1)
Call(PlayerMoveTo, 230, -70, 20) Call(PlayerMoveTo, 230, -70, 20)

View File

@ -2,7 +2,7 @@
#include "effects.h" #include "effects.h"
EvtScript N(EVS_FlowerSpawnRegion) = { EvtScript N(EVS_FlowerSpawnRegion) = {
SetGroup(EVT_GROUP_0B) SetGroup(EVT_GROUP_HOSTILE_NPC)
// save input args // save input args
Set(LVarA, LVar0) // minX Set(LVarA, LVar0) // minX
Set(LVarB, LVar1) // minZ Set(LVarB, LVar1) // minZ

View File

@ -466,7 +466,7 @@ EvtScript N(EVS_BeanPatch_ItemPrompt) = {
Call(func_802CF56C, 2) Call(func_802CF56C, 2)
Call(DisablePlayerInput, FALSE) Call(DisablePlayerInput, FALSE)
IfEq(GF_FLO00_PlacedFertileSoil, FALSE) IfEq(GF_FLO00_PlacedFertileSoil, FALSE)
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(SetTimeFreezeMode, TIME_FREEZE_PARTIAL) Call(SetTimeFreezeMode, TIME_FREEZE_PARTIAL)
Label(10) Label(10)
Call(ShowKeyChoicePopup) Call(ShowKeyChoicePopup)
@ -474,7 +474,7 @@ EvtScript N(EVS_BeanPatch_ItemPrompt) = {
Switch(LVar2) Switch(LVar2)
CaseLe(ITEM_NONE) CaseLe(ITEM_NONE)
Call(CloseChoicePopup) Call(CloseChoicePopup)
Call(SetTimeFreezeMode, TIME_FREEZE_NORMAL) Call(SetTimeFreezeMode, TIME_FREEZE_NONE)
Call(AwaitPlayerLeave, -85, 85, 28) Call(AwaitPlayerLeave, -85, 85, 28)
Return Return
CaseEq(ITEM_FERTILE_SOIL) CaseEq(ITEM_FERTILE_SOIL)
@ -502,7 +502,7 @@ EvtScript N(EVS_BeanPatch_ItemPrompt) = {
Set(GF_FLO00_PlacedFertileSoil, TRUE) Set(GF_FLO00_PlacedFertileSoil, TRUE)
EndIf EndIf
IfEq(GF_FLO00_PlacedMagicalBean, FALSE) IfEq(GF_FLO00_PlacedMagicalBean, FALSE)
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(SetTimeFreezeMode, TIME_FREEZE_PARTIAL) Call(SetTimeFreezeMode, TIME_FREEZE_PARTIAL)
Label(20) Label(20)
Call(ShowKeyChoicePopup) Call(ShowKeyChoicePopup)
@ -510,7 +510,7 @@ EvtScript N(EVS_BeanPatch_ItemPrompt) = {
Switch(LVar2) Switch(LVar2)
CaseLe(ITEM_NONE) CaseLe(ITEM_NONE)
Call(CloseChoicePopup) Call(CloseChoicePopup)
Call(SetTimeFreezeMode, TIME_FREEZE_NORMAL) Call(SetTimeFreezeMode, TIME_FREEZE_NONE)
Call(AwaitPlayerLeave, -85, 85, 28) Call(AwaitPlayerLeave, -85, 85, 28)
Return Return
CaseEq(ITEM_MAGICAL_BEAN) CaseEq(ITEM_MAGICAL_BEAN)
@ -539,7 +539,7 @@ EvtScript N(EVS_BeanPatch_ItemPrompt) = {
EndIf EndIf
Set(GF_FLO00_PlacedMagicalBean, TRUE) Set(GF_FLO00_PlacedMagicalBean, TRUE)
EndIf EndIf
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(SetTimeFreezeMode, TIME_FREEZE_PARTIAL) Call(SetTimeFreezeMode, TIME_FREEZE_PARTIAL)
Label(30) Label(30)
Call(ShowKeyChoicePopup) Call(ShowKeyChoicePopup)
@ -547,7 +547,7 @@ EvtScript N(EVS_BeanPatch_ItemPrompt) = {
Switch(LVar2) Switch(LVar2)
CaseLe(ITEM_NONE) CaseLe(ITEM_NONE)
Call(CloseChoicePopup) Call(CloseChoicePopup)
Call(SetTimeFreezeMode, TIME_FREEZE_NORMAL) Call(SetTimeFreezeMode, TIME_FREEZE_NONE)
Call(AwaitPlayerLeave, -85, 85, 28) Call(AwaitPlayerLeave, -85, 85, 28)
Return Return
CaseEq(ITEM_MIRACLE_WATER) CaseEq(ITEM_MIRACLE_WATER)

View File

@ -739,7 +739,7 @@ NpcData N(NpcData_Tolielup) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Tolielup), .init = &N(EVS_NpcInit_Tolielup),
.settings = &N(NpcSettings_Tolielup), .settings = &N(NpcSettings_Tolielup),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_400000, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = TOLIELUP_ANIMS, .animations = TOLIELUP_ANIMS,
.tattle = MSG_NpcTattle_Tolielup, .tattle = MSG_NpcTattle_Tolielup,
@ -751,7 +751,7 @@ NpcData N(NpcData_Klevar) = {
.yaw = 0, .yaw = 0,
.init = &N(EVS_NpcInit_Klevar), .init = &N(EVS_NpcInit_Klevar),
.settings = &N(NpcSettings_StarSpirit), .settings = &N(NpcSettings_StarSpirit),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = KLEVAR_ANIMS, .animations = KLEVAR_ANIMS,
}; };
@ -762,7 +762,7 @@ NpcData N(NpcData_Lakilulu) = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Lakilulu), .init = &N(EVS_NpcInit_Lakilulu),
.settings = &N(NpcSettings_Dummy), .settings = &N(NpcSettings_Dummy),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_Lakilulu_Idle, .idle = ANIM_Lakilulu_Idle,

View File

@ -233,11 +233,11 @@ EvtScript N(EVS_NpcInteract_Petunia) = {
Set(LVar4, Float(90.0)) Set(LVar4, Float(90.0))
ExecWait(N(EVS_FocusCamBetween)) ExecWait(N(EVS_FocusCamBetween))
Call(SpeakToPlayer, NPC_SELF, ANIM_Petunia_AngryTalk, ANIM_Petunia_Angry, 0, MSG_CH6_0057) Call(SpeakToPlayer, NPC_SELF, ANIM_Petunia_AngryTalk, ANIM_Petunia_Angry, 0, MSG_CH6_0057)
Call(SetEnemyFlagBits, NPC_Dayzee, ENEMY_FLAG_PASSIVE, 0) Call(SetEnemyFlagBits, NPC_Dayzee, ENEMY_FLAG_PASSIVE, FALSE)
Call(SetEnemyFlagBits, NPC_MontyMole_01, ENEMY_FLAG_PASSIVE, 0) Call(SetEnemyFlagBits, NPC_MontyMole_01, ENEMY_FLAG_PASSIVE, FALSE)
Call(SetEnemyFlagBits, NPC_MontyMole_02, ENEMY_FLAG_PASSIVE, 0) Call(SetEnemyFlagBits, NPC_MontyMole_02, ENEMY_FLAG_PASSIVE, FALSE)
Call(SetEnemyFlagBits, NPC_MontyMole_03, ENEMY_FLAG_PASSIVE, 0) Call(SetEnemyFlagBits, NPC_MontyMole_03, ENEMY_FLAG_PASSIVE, FALSE)
Call(SetEnemyFlagBits, NPC_MontyMole_04, ENEMY_FLAG_PASSIVE, 0) Call(SetEnemyFlagBits, NPC_MontyMole_04, ENEMY_FLAG_PASSIVE, FALSE)
Call(BindNpcAI, NPC_Dayzee, Ref(N(EVS_NpcAI_Dayzee))) Call(BindNpcAI, NPC_Dayzee, Ref(N(EVS_NpcAI_Dayzee)))
Set(MV_PauseBurrowing, FALSE) Set(MV_PauseBurrowing, FALSE)
Set(MV_NextBurrowTriggerRadius, 60) Set(MV_NextBurrowTriggerRadius, 60)
@ -297,7 +297,7 @@ EvtScript N(EVS_NpcInit_Dayzee) = {
Call(SetNpcPos, NPC_Dayzee, NPC_DISPOSE_LOCATION) Call(SetNpcPos, NPC_Dayzee, NPC_DISPOSE_LOCATION)
CaseDefault CaseDefault
IfEq(GF_FLO03_Defeated_Dayzee, FALSE) IfEq(GF_FLO03_Defeated_Dayzee, FALSE)
Call(SetEnemyFlagBits, NPC_Dayzee, ENEMY_FLAG_PASSIVE, 0) Call(SetEnemyFlagBits, NPC_Dayzee, ENEMY_FLAG_PASSIVE, FALSE)
Call(BindNpcIdle, NPC_SELF, Ref(N(EVS_NpcAI_Dayzee))) Call(BindNpcIdle, NPC_SELF, Ref(N(EVS_NpcAI_Dayzee)))
Else Else
Call(SetNpcPos, NPC_Dayzee, NPC_DISPOSE_LOCATION) Call(SetNpcPos, NPC_Dayzee, NPC_DISPOSE_LOCATION)
@ -404,7 +404,7 @@ EvtScript N(EVS_NpcIdle_MontyMole_01) = {
Call(PlaySoundAtNpc, NPC_MontyMole_01, SOUND_EMOTE_IDEA, SOUND_SPACE_DEFAULT) Call(PlaySoundAtNpc, NPC_MontyMole_01, SOUND_EMOTE_IDEA, SOUND_SPACE_DEFAULT)
Call(ShowEmote, NPC_MontyMole_01, EMOTE_EXCLAMATION, 0, LVar1, EMOTER_NPC, 0, 0, 0, 0) Call(ShowEmote, NPC_MontyMole_01, EMOTE_EXCLAMATION, 0, LVar1, EMOTER_NPC, 0, 0, 0, 0)
Wait(LVar1) Wait(LVar1)
Call(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, 1) Call(SetSelfEnemyFlagBits, ENEMY_FLAG_SKIP_BATTLE | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, TRUE)
EndIf EndIf
Call(PlaySoundAtNpc, NPC_MontyMole_01, SOUND_BURROW_DIG, SOUND_SPACE_DEFAULT) Call(PlaySoundAtNpc, NPC_MontyMole_01, SOUND_BURROW_DIG, SOUND_SPACE_DEFAULT)
Call(SetNpcAnimation, NPC_MontyMole_01, ANIM_MontyMole_Dark_Anim11) Call(SetNpcAnimation, NPC_MontyMole_01, ANIM_MontyMole_Dark_Anim11)
@ -432,7 +432,7 @@ EvtScript N(EVS_NpcIdle_MontyMole_01) = {
Call(PlaySoundAtNpc, NPC_MontyMole_01, SOUND_BURROW_SURFACE, SOUND_SPACE_DEFAULT) Call(PlaySoundAtNpc, NPC_MontyMole_01, SOUND_BURROW_SURFACE, SOUND_SPACE_DEFAULT)
Call(SetNpcAnimation, NPC_MontyMole_01, ANIM_MontyMole_Dark_Anim10) Call(SetNpcAnimation, NPC_MontyMole_01, ANIM_MontyMole_Dark_Anim10)
Wait(10) Wait(10)
Call(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, 0) Call(SetSelfEnemyFlagBits, ENEMY_FLAG_SKIP_BATTLE | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, FALSE)
Call(RandInt, 30, LVar0) Call(RandInt, 30, LVar0)
Add(LVar0, 60) Add(LVar0, 60)
Set(MV_NextBurrowTime_Mole_01, LVar0) Set(MV_NextBurrowTime_Mole_01, LVar0)
@ -483,7 +483,7 @@ EvtScript N(EVS_NpcIdle_MontyMole_02) = {
Call(PlaySoundAtNpc, NPC_MontyMole_02, SOUND_EMOTE_IDEA, SOUND_SPACE_DEFAULT) Call(PlaySoundAtNpc, NPC_MontyMole_02, SOUND_EMOTE_IDEA, SOUND_SPACE_DEFAULT)
Call(ShowEmote, NPC_MontyMole_02, EMOTE_EXCLAMATION, 0, LVar1, EMOTER_NPC, 0, 0, 0, 0) Call(ShowEmote, NPC_MontyMole_02, EMOTE_EXCLAMATION, 0, LVar1, EMOTER_NPC, 0, 0, 0, 0)
Wait(LVar1) Wait(LVar1)
Call(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, 1) Call(SetSelfEnemyFlagBits, ENEMY_FLAG_SKIP_BATTLE | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, TRUE)
EndIf EndIf
Call(PlaySoundAtNpc, NPC_MontyMole_02, SOUND_BURROW_DIG, SOUND_SPACE_DEFAULT) Call(PlaySoundAtNpc, NPC_MontyMole_02, SOUND_BURROW_DIG, SOUND_SPACE_DEFAULT)
Call(SetNpcAnimation, NPC_MontyMole_02, ANIM_MontyMole_Dark_Anim11) Call(SetNpcAnimation, NPC_MontyMole_02, ANIM_MontyMole_Dark_Anim11)
@ -511,7 +511,7 @@ EvtScript N(EVS_NpcIdle_MontyMole_02) = {
Call(PlaySoundAtNpc, NPC_MontyMole_02, SOUND_BURROW_SURFACE, SOUND_SPACE_DEFAULT) Call(PlaySoundAtNpc, NPC_MontyMole_02, SOUND_BURROW_SURFACE, SOUND_SPACE_DEFAULT)
Call(SetNpcAnimation, NPC_MontyMole_02, ANIM_MontyMole_Dark_Anim10) Call(SetNpcAnimation, NPC_MontyMole_02, ANIM_MontyMole_Dark_Anim10)
Wait(10) Wait(10)
Call(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, 0) Call(SetSelfEnemyFlagBits, ENEMY_FLAG_SKIP_BATTLE | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, FALSE)
Call(RandInt, 35, LVar0) Call(RandInt, 35, LVar0)
Add(LVar0, 55) Add(LVar0, 55)
Set(MV_NextBurrowTime_Mole_02, LVar0) Set(MV_NextBurrowTime_Mole_02, LVar0)
@ -562,7 +562,7 @@ EvtScript N(EVS_NpcIdle_MontyMole_03) = {
Call(PlaySoundAtNpc, NPC_MontyMole_03, SOUND_EMOTE_IDEA, SOUND_SPACE_DEFAULT) Call(PlaySoundAtNpc, NPC_MontyMole_03, SOUND_EMOTE_IDEA, SOUND_SPACE_DEFAULT)
Call(ShowEmote, NPC_MontyMole_03, EMOTE_EXCLAMATION, 0, LVar1, EMOTER_NPC, 0, 0, 0, 0) Call(ShowEmote, NPC_MontyMole_03, EMOTE_EXCLAMATION, 0, LVar1, EMOTER_NPC, 0, 0, 0, 0)
Wait(LVar1) Wait(LVar1)
Call(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, 1) Call(SetSelfEnemyFlagBits, ENEMY_FLAG_SKIP_BATTLE | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, TRUE)
EndIf EndIf
Call(PlaySoundAtNpc, NPC_MontyMole_03, SOUND_BURROW_DIG, SOUND_SPACE_DEFAULT) Call(PlaySoundAtNpc, NPC_MontyMole_03, SOUND_BURROW_DIG, SOUND_SPACE_DEFAULT)
Call(SetNpcAnimation, NPC_MontyMole_03, ANIM_MontyMole_Dark_Anim11) Call(SetNpcAnimation, NPC_MontyMole_03, ANIM_MontyMole_Dark_Anim11)
@ -590,7 +590,7 @@ EvtScript N(EVS_NpcIdle_MontyMole_03) = {
Call(PlaySoundAtNpc, NPC_MontyMole_03, SOUND_BURROW_SURFACE, SOUND_SPACE_DEFAULT) Call(PlaySoundAtNpc, NPC_MontyMole_03, SOUND_BURROW_SURFACE, SOUND_SPACE_DEFAULT)
Call(SetNpcAnimation, NPC_MontyMole_03, ANIM_MontyMole_Dark_Anim10) Call(SetNpcAnimation, NPC_MontyMole_03, ANIM_MontyMole_Dark_Anim10)
Wait(10) Wait(10)
Call(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, 0) Call(SetSelfEnemyFlagBits, ENEMY_FLAG_SKIP_BATTLE | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, FALSE)
Call(RandInt, 40, LVar0) Call(RandInt, 40, LVar0)
Add(LVar0, 50) Add(LVar0, 50)
Set(MV_NextBurrowTime_Mole_03, LVar0) Set(MV_NextBurrowTime_Mole_03, LVar0)
@ -641,7 +641,7 @@ EvtScript N(EVS_NpcIdle_MontyMole_04) = {
Call(PlaySoundAtNpc, NPC_MontyMole_04, SOUND_EMOTE_IDEA, SOUND_SPACE_DEFAULT) Call(PlaySoundAtNpc, NPC_MontyMole_04, SOUND_EMOTE_IDEA, SOUND_SPACE_DEFAULT)
Call(ShowEmote, NPC_MontyMole_04, EMOTE_EXCLAMATION, 0, LVar1, EMOTER_NPC, 0, 0, 0, 0) Call(ShowEmote, NPC_MontyMole_04, EMOTE_EXCLAMATION, 0, LVar1, EMOTER_NPC, 0, 0, 0, 0)
Wait(LVar1) Wait(LVar1)
Call(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, 1) Call(SetSelfEnemyFlagBits, ENEMY_FLAG_SKIP_BATTLE | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, TRUE)
EndIf EndIf
Call(PlaySoundAtNpc, NPC_MontyMole_04, SOUND_BURROW_DIG, SOUND_SPACE_DEFAULT) Call(PlaySoundAtNpc, NPC_MontyMole_04, SOUND_BURROW_DIG, SOUND_SPACE_DEFAULT)
Call(SetNpcAnimation, NPC_MontyMole_04, ANIM_MontyMole_Dark_Anim11) Call(SetNpcAnimation, NPC_MontyMole_04, ANIM_MontyMole_Dark_Anim11)
@ -669,7 +669,7 @@ EvtScript N(EVS_NpcIdle_MontyMole_04) = {
Call(PlaySoundAtNpc, NPC_MontyMole_04, SOUND_BURROW_SURFACE, SOUND_SPACE_DEFAULT) Call(PlaySoundAtNpc, NPC_MontyMole_04, SOUND_BURROW_SURFACE, SOUND_SPACE_DEFAULT)
Call(SetNpcAnimation, NPC_MontyMole_04, ANIM_MontyMole_Dark_Anim10) Call(SetNpcAnimation, NPC_MontyMole_04, ANIM_MontyMole_Dark_Anim10)
Wait(10) Wait(10)
Call(SetSelfEnemyFlagBits, ENEMY_FLAG_100000 | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, 0) Call(SetSelfEnemyFlagBits, ENEMY_FLAG_SKIP_BATTLE | ENEMY_FLAG_IGNORE_TOUCH | ENEMY_FLAG_IGNORE_JUMP | ENEMY_FLAG_IGNORE_HAMMER | ENEMY_FLAG_IGNORE_PARTNER, FALSE)
Call(RandInt, 45, LVar0) Call(RandInt, 45, LVar0)
Add(LVar0, 45) Add(LVar0, 45)
Set(MV_NextBurrowTime_Mole_04, LVar0) Set(MV_NextBurrowTime_Mole_04, LVar0)
@ -697,7 +697,7 @@ EvtScript N(EVS_NpcInit_MontyMole_01) = {
IfEq(GF_FLO03_Defeated_MontyMoleA, FALSE) IfEq(GF_FLO03_Defeated_MontyMoleA, FALSE)
Call(BindNpcIdle, NPC_SELF, Ref(N(EVS_NpcIdle_MontyMole_01))) Call(BindNpcIdle, NPC_SELF, Ref(N(EVS_NpcIdle_MontyMole_01)))
Call(SetNpcAnimation, NPC_MontyMole_01, ANIM_MontyMole_Dark_Anim10) Call(SetNpcAnimation, NPC_MontyMole_01, ANIM_MontyMole_Dark_Anim10)
Call(SetEnemyFlagBits, NPC_MontyMole_01, ENEMY_FLAG_PASSIVE, 0) Call(SetEnemyFlagBits, NPC_MontyMole_01, ENEMY_FLAG_PASSIVE, FALSE)
Else Else
Call(SetNpcPos, NPC_MontyMole_01, NPC_DISPOSE_LOCATION) Call(SetNpcPos, NPC_MontyMole_01, NPC_DISPOSE_LOCATION)
EndIf EndIf
@ -720,7 +720,7 @@ EvtScript N(EVS_NpcInit_MontyMole_02) = {
IfEq(GF_FLO03_Defeated_MontyMoleB, FALSE) IfEq(GF_FLO03_Defeated_MontyMoleB, FALSE)
Call(BindNpcIdle, NPC_SELF, Ref(N(EVS_NpcIdle_MontyMole_02))) Call(BindNpcIdle, NPC_SELF, Ref(N(EVS_NpcIdle_MontyMole_02)))
Call(SetNpcAnimation, NPC_MontyMole_02, ANIM_MontyMole_Dark_Anim10) Call(SetNpcAnimation, NPC_MontyMole_02, ANIM_MontyMole_Dark_Anim10)
Call(SetEnemyFlagBits, NPC_MontyMole_02, ENEMY_FLAG_PASSIVE, 0) Call(SetEnemyFlagBits, NPC_MontyMole_02, ENEMY_FLAG_PASSIVE, FALSE)
Else Else
Call(SetNpcPos, NPC_MontyMole_02, NPC_DISPOSE_LOCATION) Call(SetNpcPos, NPC_MontyMole_02, NPC_DISPOSE_LOCATION)
EndIf EndIf
@ -743,7 +743,7 @@ EvtScript N(EVS_NpcInit_MontyMole_03) = {
IfEq(GF_FLO03_Defeated_MontyMoleC, FALSE) IfEq(GF_FLO03_Defeated_MontyMoleC, FALSE)
Call(BindNpcIdle, NPC_SELF, Ref(N(EVS_NpcIdle_MontyMole_03))) Call(BindNpcIdle, NPC_SELF, Ref(N(EVS_NpcIdle_MontyMole_03)))
Call(SetNpcAnimation, NPC_MontyMole_03, ANIM_MontyMole_Dark_Anim10) Call(SetNpcAnimation, NPC_MontyMole_03, ANIM_MontyMole_Dark_Anim10)
Call(SetEnemyFlagBits, NPC_MontyMole_03, ENEMY_FLAG_PASSIVE, 0) Call(SetEnemyFlagBits, NPC_MontyMole_03, ENEMY_FLAG_PASSIVE, FALSE)
Else Else
Call(SetNpcPos, NPC_MontyMole_03, NPC_DISPOSE_LOCATION) Call(SetNpcPos, NPC_MontyMole_03, NPC_DISPOSE_LOCATION)
EndIf EndIf
@ -766,7 +766,7 @@ EvtScript N(EVS_NpcInit_MontyMole_04) = {
IfEq(GF_FLO03_Defeated_MontyMoleD, FALSE) IfEq(GF_FLO03_Defeated_MontyMoleD, FALSE)
Call(BindNpcIdle, NPC_SELF, Ref(N(EVS_NpcIdle_MontyMole_04))) Call(BindNpcIdle, NPC_SELF, Ref(N(EVS_NpcIdle_MontyMole_04)))
Call(SetNpcAnimation, NPC_MontyMole_04, ANIM_MontyMole_Dark_Anim10) Call(SetNpcAnimation, NPC_MontyMole_04, ANIM_MontyMole_Dark_Anim10)
Call(SetEnemyFlagBits, NPC_MontyMole_04, ENEMY_FLAG_PASSIVE, 0) Call(SetEnemyFlagBits, NPC_MontyMole_04, ENEMY_FLAG_PASSIVE, FALSE)
Else Else
Call(SetNpcPos, NPC_MontyMole_04, NPC_DISPOSE_LOCATION) Call(SetNpcPos, NPC_MontyMole_04, NPC_DISPOSE_LOCATION)
EndIf EndIf
@ -783,7 +783,7 @@ NpcData N(NpcData_Petunia) = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Petunia), .init = &N(EVS_NpcInit_Petunia),
.settings = &N(NpcSettings_Petunia), .settings = &N(NpcSettings_Petunia),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_Petunia_Idle, .idle = ANIM_Petunia_Idle,
@ -812,7 +812,7 @@ NpcData N(NpcData_Dayzee) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Dayzee), .init = &N(EVS_NpcInit_Dayzee),
.settings = &N(NpcSettings_Dayzee), .settings = &N(NpcSettings_Dayzee),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_Dayzee_Anim01, .idle = ANIM_Dayzee_Anim01,
@ -840,7 +840,7 @@ NpcData N(NpcData_MontyMole_01) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_MontyMole_01), .init = &N(EVS_NpcInit_MontyMole_01),
.settings = &N(NpcSettings_Dayzee), .settings = &N(NpcSettings_Dayzee),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_IGNORE_PLAYER_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_MontyMole_Dark_Anim01, .idle = ANIM_MontyMole_Dark_Anim01,
@ -868,7 +868,7 @@ NpcData N(NpcData_MontyMole_02) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_MontyMole_02), .init = &N(EVS_NpcInit_MontyMole_02),
.settings = &N(NpcSettings_Dayzee), .settings = &N(NpcSettings_Dayzee),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_IGNORE_PLAYER_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_MontyMole_Dark_Anim01, .idle = ANIM_MontyMole_Dark_Anim01,
@ -896,7 +896,7 @@ NpcData N(NpcData_MontyMole_03) = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_MontyMole_03), .init = &N(EVS_NpcInit_MontyMole_03),
.settings = &N(NpcSettings_Dayzee), .settings = &N(NpcSettings_Dayzee),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_IGNORE_PLAYER_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_MontyMole_Dark_Anim01, .idle = ANIM_MontyMole_Dark_Anim01,
@ -924,7 +924,7 @@ NpcData N(NpcData_MontyMole_04) = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_MontyMole_04), .init = &N(EVS_NpcInit_MontyMole_04),
.settings = &N(NpcSettings_Dayzee), .settings = &N(NpcSettings_Dayzee),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_IGNORE_PLAYER_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_MontyMole_Dark_Anim01, .idle = ANIM_MontyMole_Dark_Anim01,

View File

@ -237,7 +237,7 @@ NpcData N(NpcData_Posie) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Posie), .init = &N(EVS_NpcInit_Posie),
.settings = &N(NpcSettings_Posie), .settings = &N(NpcSettings_Posie),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = POSIE_ANIMS, .animations = POSIE_ANIMS,
.tattle = MSG_NpcTattle_Posie, .tattle = MSG_NpcTattle_Posie,

View File

@ -164,7 +164,7 @@ NpcData N(NpcData_GateFlower) = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_GateFlower), .init = &N(EVS_NpcInit_GateFlower),
.settings = &N(NpcSettings_GateFlower), .settings = &N(NpcSettings_GateFlower),
.flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_400000, .flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = GATE_FLOWER_YELLOW_ANIMS, .animations = GATE_FLOWER_YELLOW_ANIMS,
.tattle = MSG_NpcTattle_YellowGateFlower, .tattle = MSG_NpcTattle_YellowGateFlower,

View File

@ -145,7 +145,7 @@ NpcData N(NpcData_Bzzap_02) = {
}, },
.init = &N(EVS_NpcInit_Bzzap_02), .init = &N(EVS_NpcInit_Bzzap_02),
.settings = &N(NpcSettings_Bzzap_02), .settings = &N(NpcSettings_Bzzap_02),
.flags = ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, .flags = ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST,
.drops = BZZAP_DROPS, .drops = BZZAP_DROPS,
.animations = BZZAP_ANIMS, .animations = BZZAP_ANIMS,
.aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION,

View File

@ -36,14 +36,14 @@ EvtScript N(EVS_OnInteract_WaterStoneSocket) = {
Return Return
EndIf EndIf
Call(DisablePlayerInput, TRUE) Call(DisablePlayerInput, TRUE)
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Call(SetTimeFreezeMode, TIME_FREEZE_PARTIAL) Call(SetTimeFreezeMode, TIME_FREEZE_PARTIAL)
Call(ShowKeyChoicePopup) Call(ShowKeyChoicePopup)
Set(LVar2, LVar0) Set(LVar2, LVar0)
Switch(LVar2) Switch(LVar2)
CaseEq(-1) CaseEq(-1)
Call(CloseChoicePopup) Call(CloseChoicePopup)
Call(SetTimeFreezeMode, TIME_FREEZE_NORMAL) Call(SetTimeFreezeMode, TIME_FREEZE_NONE)
Wait(10 * DT) Wait(10 * DT)
Call(SpeakToPlayer, NPC_Lily, ANIM_Lily_TalkPlead, ANIM_Lily_IdlePlead, 0, MSG_CH6_0081) Call(SpeakToPlayer, NPC_Lily, ANIM_Lily_TalkPlead, ANIM_Lily_IdlePlead, 0, MSG_CH6_0081)
CaseDefault CaseDefault
@ -59,7 +59,7 @@ EvtScript N(EVS_OnInteract_WaterStoneSocket) = {
Call(MakeItemEntity, ITEM_WATER_STONE, 0, -60, 6, ITEM_SPAWN_MODE_DECORATION, 0) Call(MakeItemEntity, ITEM_WATER_STONE, 0, -60, 6, ITEM_SPAWN_MODE_DECORATION, 0)
Set(LVarA, LVar0) Set(LVarA, LVar0)
Call(CloseChoicePopup) Call(CloseChoicePopup)
Call(SetTimeFreezeMode, TIME_FREEZE_NORMAL) Call(SetTimeFreezeMode, TIME_FREEZE_NONE)
ExecWait(N(EVS_Scene_ReleaseFountain)) ExecWait(N(EVS_Scene_ReleaseFountain))
EndSwitch EndSwitch
Call(DisablePlayerInput, FALSE) Call(DisablePlayerInput, FALSE)
@ -159,7 +159,7 @@ EvtScript N(EVS_NpcInteract_Lily) = {
EndSwitch EndSwitch
Wait(10 * DT) Wait(10 * DT)
Set(GF_FLO10_LilyRequestedWaterStone, TRUE) Set(GF_FLO10_LilyRequestedWaterStone, TRUE)
Call(SetEnemyFlagBits, NPC_SELF, ENEMY_FLAG_400000, 0) Call(SetEnemyFlagBits, NPC_SELF, ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER, FALSE)
Else Else
Call(SpeakToPlayer, NPC_SELF, ANIM_Lily_TalkPlead, ANIM_Lily_IdlePlead, 5, MSG_CH6_007F) Call(SpeakToPlayer, NPC_SELF, ANIM_Lily_TalkPlead, ANIM_Lily_IdlePlead, 5, MSG_CH6_007F)
EndIf EndIf
@ -188,7 +188,7 @@ EvtScript N(EVS_NpcInit_Lily) = {
IfEq(GF_FLO10_LilyRequestedWaterStone, FALSE) IfEq(GF_FLO10_LilyRequestedWaterStone, FALSE)
Call(SetNpcAnimation, NPC_SELF, ANIM_Lily_IdlePlead) Call(SetNpcAnimation, NPC_SELF, ANIM_Lily_IdlePlead)
Call(InterpNpcYaw, NPC_SELF, 90, 1) Call(InterpNpcYaw, NPC_SELF, 90, 1)
Call(SetEnemyFlagBits, NPC_SELF, ENEMY_FLAG_400000, 1) Call(SetEnemyFlagBits, NPC_SELF, ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER, TRUE)
EndIf EndIf
CaseEq(STORY_CH6_GOT_WATER_STONE) CaseEq(STORY_CH6_GOT_WATER_STONE)
Call(InterpNpcYaw, NPC_SELF, 270, 1) Call(InterpNpcYaw, NPC_SELF, 270, 1)
@ -205,7 +205,7 @@ NpcData N(NpcData_Lily) = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Lily), .init = &N(EVS_NpcInit_Lily),
.settings = &N(NpcSettings_Lily), .settings = &N(NpcSettings_Lily),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = LILY_ANIMS, .animations = LILY_ANIMS,
.tattle = MSG_NpcTattle_Lily, .tattle = MSG_NpcTattle_Lily,

View File

@ -16,7 +16,7 @@ EvtScript N(EVS_ExitWalk_flo_12_0) = EVT_EXIT_WALK(60, flo_11_ENTRY_1, "flo_12",
// template for GotoMap exits used with pipes in the maze // template for GotoMap exits used with pipes in the maze
#define Goto_MAP(mapName, entry) \ #define Goto_MAP(mapName, entry) \
{ \ { \
SetGroup(EVT_GROUP_1B) \ SetGroup(EVT_GROUP_EXIT_MAP) \
Call(GotoMap, Ref(mapName), entry) \ Call(GotoMap, Ref(mapName), entry) \
Wait(100) \ Wait(100) \
Return \ Return \

View File

@ -375,7 +375,7 @@ NpcData N(NpcData_Lakitus)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Lakitu_01), .init = &N(EVS_NpcInit_Lakitu_01),
.settings = &N(NpcSettings_Lakitu), .settings = &N(NpcSettings_Lakitu),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_DELAY_AFTER_FLEE,
.drops = LAKITU_DROPS, .drops = LAKITU_DROPS,
.animations = LAKITU_ANIMS, .animations = LAKITU_ANIMS,
}, },
@ -385,7 +385,7 @@ NpcData N(NpcData_Lakitus)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Lakitu_02), .init = &N(EVS_NpcInit_Lakitu_02),
.settings = &N(NpcSettings_Lakitu), .settings = &N(NpcSettings_Lakitu),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_NO_DELAY_AFTER_FLEE,
.drops = LAKITU_DROPS, .drops = LAKITU_DROPS,
.animations = LAKITU_ANIMS, .animations = LAKITU_ANIMS,
}, },

View File

@ -196,7 +196,7 @@ NpcData N(NpcData_Rosie)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Rosie), .init = &N(EVS_NpcInit_Rosie),
.settings = &N(NpcSettings_Rosie), .settings = &N(NpcSettings_Rosie),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_400000, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = ROSIE_ANIMS, .animations = ROSIE_ANIMS,
.tattle = MSG_NpcTattle_Rosie, .tattle = MSG_NpcTattle_Rosie,

View File

@ -599,7 +599,7 @@ NpcData N(NpcData_Lakilester) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Lakilester), .init = &N(EVS_NpcInit_Lakilester),
.settings = &N(NpcSettings_Lakilester), .settings = &N(NpcSettings_Lakilester),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000, .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_DELAY_AFTER_FLEE,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_WorldLakilester_Idle, .idle = ANIM_WorldLakilester_Idle,
@ -627,7 +627,7 @@ NpcData N(NpcData_Lakilulu) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Lakilulu), .init = &N(EVS_NpcInit_Lakilulu),
.settings = &N(NpcSettings_Lakilester), .settings = &N(NpcSettings_Lakilester),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_Lakilulu_Idle, .idle = ANIM_Lakilulu_Idle,
@ -656,7 +656,7 @@ NpcData N(NpcData_Lakilulu_Spiny) = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Lakilulu_Spiny), .init = &N(EVS_NpcInit_Lakilulu_Spiny),
.settings = &N(NpcSettings_Lakilester), .settings = &N(NpcSettings_Lakilester),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_IGNORE_PLAYER_COLLISION,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = { .animations = {
.idle = ANIM_Lakilulu_Idle, .idle = ANIM_Lakilulu_Idle,
@ -744,7 +744,7 @@ NpcData N(NpcData_Spiny_01) = {
}, },
.init = &N(EVS_NpcInit_Spiny), .init = &N(EVS_NpcInit_Spiny),
.settings = &N(NpcSettings_SpawnedSpiny), .settings = &N(NpcSettings_SpawnedSpiny),
.flags = ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = SPINY_DROPS, .drops = SPINY_DROPS,
.animations = SPINY_ANIMS, .animations = SPINY_ANIMS,
.aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION,
@ -768,7 +768,7 @@ NpcData N(NpcData_Spiny_02) = {
}, },
.init = &N(EVS_NpcInit_Spiny), .init = &N(EVS_NpcInit_Spiny),
.settings = &N(NpcSettings_SpawnedSpiny), .settings = &N(NpcSettings_SpawnedSpiny),
.flags = ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = SPINY_DROPS, .drops = SPINY_DROPS,
.animations = SPINY_ANIMS, .animations = SPINY_ANIMS,
.aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION,
@ -792,7 +792,7 @@ NpcData N(NpcData_Spiny_03) = {
}, },
.init = &N(EVS_NpcInit_Spiny), .init = &N(EVS_NpcInit_Spiny),
.settings = &N(NpcSettings_SpawnedSpiny), .settings = &N(NpcSettings_SpawnedSpiny),
.flags = ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = SPINY_DROPS, .drops = SPINY_DROPS,
.animations = SPINY_ANIMS, .animations = SPINY_ANIMS,
.aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION,
@ -816,7 +816,7 @@ NpcData N(NpcData_Spiny_04) = {
}, },
.init = &N(EVS_NpcInit_Spiny), .init = &N(EVS_NpcInit_Spiny),
.settings = &N(NpcSettings_SpawnedSpiny), .settings = &N(NpcSettings_SpawnedSpiny),
.flags = ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = SPINY_DROPS, .drops = SPINY_DROPS,
.animations = SPINY_ANIMS, .animations = SPINY_ANIMS,
.aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION,
@ -840,7 +840,7 @@ NpcData N(NpcData_Spiny_05) = {
}, },
.init = &N(EVS_NpcInit_Spiny), .init = &N(EVS_NpcInit_Spiny),
.settings = &N(NpcSettings_SpawnedSpiny), .settings = &N(NpcSettings_SpawnedSpiny),
.flags = ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = SPINY_DROPS, .drops = SPINY_DROPS,
.animations = SPINY_ANIMS, .animations = SPINY_ANIMS,
.aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION,
@ -864,7 +864,7 @@ NpcData N(NpcData_Spiny_06) = {
}, },
.init = &N(EVS_NpcInit_Spiny), .init = &N(EVS_NpcInit_Spiny),
.settings = &N(NpcSettings_SpawnedSpiny), .settings = &N(NpcSettings_SpawnedSpiny),
.flags = ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_ENTITY_COLLISION, .flags = ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_ENTITY_COLLISION,
.drops = SPINY_DROPS, .drops = SPINY_DROPS,
.animations = SPINY_ANIMS, .animations = SPINY_ANIMS,
.aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION,

View File

@ -291,7 +291,7 @@ void N(gfx_build_bubble_flower)(void) {
} }
EvtScript N(EVS_ManageBlownBubble) = { EvtScript N(EVS_ManageBlownBubble) = {
SetGroup(EVT_GROUP_00) SetGroup(EVT_GROUP_NEVER_PAUSE)
Set(LVarF, LVar0) Set(LVarF, LVar0)
Label(0) Label(0)
IfEq(AF_FLO_PauseBlowingBubbles, TRUE) IfEq(AF_FLO_PauseBlowingBubbles, TRUE)

View File

@ -84,7 +84,7 @@ NpcData N(NpcData_BubbleFlower) = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_BubbleFlower), .init = &N(EVS_NpcInit_BubbleFlower),
.settings = &N(NpcSettings_BubbleFlower), .settings = &N(NpcSettings_BubbleFlower),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_HAS_NO_SPRITE, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_HAS_NO_SPRITE,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = BUBULB_PINK_ANIMS, .animations = BUBULB_PINK_ANIMS,
.tattle = MSG_NpcTattle_BubblePlant, .tattle = MSG_NpcTattle_BubblePlant,

View File

@ -205,7 +205,7 @@ NpcData N(NpcData_Sun)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Sun_01), .init = &N(EVS_NpcInit_Sun_01),
.settings = &N(NpcSettings_Sun), .settings = &N(NpcSettings_Sun),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_400000, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = SUN_ANIMS, .animations = SUN_ANIMS,
.tattle = MSG_NpcTattle_TheSun, .tattle = MSG_NpcTattle_TheSun,
@ -216,7 +216,7 @@ NpcData N(NpcData_Sun)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Sun_02), .init = &N(EVS_NpcInit_Sun_02),
.settings = &N(NpcSettings_Sun), .settings = &N(NpcSettings_Sun),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_8000, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_USE_INSPECT_ICON,
.drops = NO_DROPS, .drops = NO_DROPS,
.animations = SUN_ANIMS, .animations = SUN_ANIMS,
.tattle = MSG_NpcTattle_TheSun, .tattle = MSG_NpcTattle_TheSun,

View File

@ -69,7 +69,7 @@ NpcData N(NpcData_Spiny_01) = {
} }
}, },
.settings = &N(NpcSettings_SpawnedSpiny), .settings = &N(NpcSettings_SpawnedSpiny),
.flags = ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING,
.drops = SPINY_DROPS, .drops = SPINY_DROPS,
.animations = SPINY_ANIMS, .animations = SPINY_ANIMS,
.aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION,
@ -92,7 +92,7 @@ NpcData N(NpcData_Spiny_02) = {
} }
}, },
.settings = &N(NpcSettings_SpawnedSpiny), .settings = &N(NpcSettings_SpawnedSpiny),
.flags = ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING,
.drops = SPINY_DROPS, .drops = SPINY_DROPS,
.animations = SPINY_ANIMS, .animations = SPINY_ANIMS,
.aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION,
@ -115,7 +115,7 @@ NpcData N(NpcData_Spiny_03) = {
} }
}, },
.settings = &N(NpcSettings_SpawnedSpiny), .settings = &N(NpcSettings_SpawnedSpiny),
.flags = ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING,
.drops = SPINY_DROPS, .drops = SPINY_DROPS,
.animations = SPINY_ANIMS, .animations = SPINY_ANIMS,
.aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION,
@ -138,7 +138,7 @@ NpcData N(NpcData_Spiny_04) = {
} }
}, },
.settings = &N(NpcSettings_SpawnedSpiny), .settings = &N(NpcSettings_SpawnedSpiny),
.flags = ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, .flags = ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING,
.drops = SPINY_DROPS, .drops = SPINY_DROPS,
.animations = SPINY_ANIMS, .animations = SPINY_ANIMS,
.aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION,

View File

@ -22,7 +22,7 @@ API_CALLABLE(N(SetMachineLightningColor)) {
} }
EvtScript N(EVS_AnimateMachineLightning) = { EvtScript N(EVS_AnimateMachineLightning) = {
SetGroup(EVT_GROUP_0B) SetGroup(EVT_GROUP_HOSTILE_NPC)
Loop(0) Loop(0)
PlayEffect(EFFECT_LIGHTNING_BOLT, 0, Float(-16.0), Float(102.0), Float(-4.1), Float(80.9), Float(102.0), Float(-4.1), Float(0.5), 6) PlayEffect(EFFECT_LIGHTNING_BOLT, 0, Float(-16.0), Float(102.0), Float(-4.1), Float(80.9), Float(102.0), Float(-4.1), Float(0.5), 6)
Call(N(SetMachineLightningColor)) Call(N(SetMachineLightningColor))

View File

@ -605,7 +605,7 @@ NpcData N(NpcData_MachineGang)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Lakitu_01), .init = &N(EVS_NpcInit_Lakitu_01),
.settings = &N(NpcSettings_Lakitu), .settings = &N(NpcSettings_Lakitu),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_400000, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_NO_DELAY_AFTER_FLEE | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = LAKITU_DROPS, .drops = LAKITU_DROPS,
.animations = LAKITU_ANIMS, .animations = LAKITU_ANIMS,
.tattle = MSG_NpcTattle_PuffPuffOperator, .tattle = MSG_NpcTattle_PuffPuffOperator,
@ -616,7 +616,7 @@ NpcData N(NpcData_MachineGang)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Lakitu_02), .init = &N(EVS_NpcInit_Lakitu_02),
.settings = &N(NpcSettings_Lakitu), .settings = &N(NpcSettings_Lakitu),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_400000, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_NO_DELAY_AFTER_FLEE | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = LAKITU_DROPS, .drops = LAKITU_DROPS,
.animations = LAKITU_ANIMS, .animations = LAKITU_ANIMS,
.tattle = MSG_NpcTattle_PuffPuffOperator, .tattle = MSG_NpcTattle_PuffPuffOperator,
@ -627,7 +627,7 @@ NpcData N(NpcData_MachineGang)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_Lakitu_03), .init = &N(EVS_NpcInit_Lakitu_03),
.settings = &N(NpcSettings_Lakitu), .settings = &N(NpcSettings_Lakitu),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_400000, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_NO_DELAY_AFTER_FLEE | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = LAKITU_DROPS, .drops = LAKITU_DROPS,
.animations = LAKITU_ANIMS, .animations = LAKITU_ANIMS,
.tattle = MSG_NpcTattle_PuffPuffOperator, .tattle = MSG_NpcTattle_PuffPuffOperator,
@ -638,7 +638,7 @@ NpcData N(NpcData_MachineGang)[] = {
.yaw = 90, .yaw = 90,
.init = &N(EVS_NpcInit_Magikoopa), .init = &N(EVS_NpcInit_Magikoopa),
.settings = &N(NpcSettings_Magikoopa), .settings = &N(NpcSettings_Magikoopa),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_400000, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_NO_DELAY_AFTER_FLEE | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = MAGINO_DROPS, .drops = MAGINO_DROPS,
.animations = MAGIKOOPA_YELLOW_ANIMS, .animations = MAGIKOOPA_YELLOW_ANIMS,
.tattle = MSG_NpcTattle_PuffPuffOperator, .tattle = MSG_NpcTattle_PuffPuffOperator,
@ -649,7 +649,7 @@ NpcData N(NpcData_MachineGang)[] = {
.yaw = 270, .yaw = 270,
.init = &N(EVS_NpcInit_FlyingMagikoopa), .init = &N(EVS_NpcInit_FlyingMagikoopa),
.settings = &N(NpcSettings_Magikoopa), .settings = &N(NpcSettings_Magikoopa),
.flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_400000, .flags = BASE_PASSIVE_FLAGS | ENEMY_FLAG_DO_NOT_KILL | ENEMY_FLAG_NO_DELAY_AFTER_FLEE | ENEMY_FLAG_DO_NOT_AUTO_FACE_PLAYER,
.drops = MAGINO_DROPS, .drops = MAGINO_DROPS,
.animations = FLYING_MAGIKOOPA_YELLOW_ANIMS, .animations = FLYING_MAGIKOOPA_YELLOW_ANIMS,
.tattle = MSG_NpcTattle_PuffPuffOperator, .tattle = MSG_NpcTattle_PuffPuffOperator,

View File

@ -25,7 +25,7 @@ API_CALLABLE(N(CosInterpAbsMinMax)) {
} }
EvtScript N(EVS_AnimatePlatforms) = { EvtScript N(EVS_AnimatePlatforms) = {
SetGroup(EVT_GROUP_EF) SetGroup(EVT_GROUP_NOT_BATTLE)
Set(LVarF, 0) Set(LVarF, 0)
Label(0) Label(0)
SetF(LVar0, Float(-215.4375)) SetF(LVar0, Float(-215.4375))

Some files were not shown because too many files have changed in this diff Show More