Merge branch 'master' into clone-union
This commit is contained in:
+25
-13
@@ -14,10 +14,10 @@
|
|||||||
create_movement face_up_fast
|
create_movement face_up_fast
|
||||||
create_movement face_left_fast
|
create_movement face_left_fast
|
||||||
create_movement face_right_fast
|
create_movement face_right_fast
|
||||||
create_movement walk_slowest_down
|
create_movement walk_slower_down
|
||||||
create_movement walk_slowest_up
|
create_movement walk_slower_up
|
||||||
create_movement walk_slowest_left
|
create_movement walk_slower_left
|
||||||
create_movement walk_slowest_right
|
create_movement walk_slower_right
|
||||||
create_movement walk_slow_down
|
create_movement walk_slow_down
|
||||||
create_movement walk_slow_up
|
create_movement walk_slow_up
|
||||||
create_movement walk_slow_left
|
create_movement walk_slow_left
|
||||||
@@ -55,10 +55,10 @@
|
|||||||
create_movement walk_in_place_fastest_up
|
create_movement walk_in_place_fastest_up
|
||||||
create_movement walk_in_place_fastest_left
|
create_movement walk_in_place_fastest_left
|
||||||
create_movement walk_in_place_fastest_right
|
create_movement walk_in_place_fastest_right
|
||||||
create_movement face_down_slow
|
create_movement ride_water_current_down
|
||||||
create_movement face_up_slow
|
create_movement ride_water_current_up
|
||||||
create_movement face_left_slow
|
create_movement ride_water_current_lefft
|
||||||
create_movement face_right_slow
|
create_movement ride_water_current_right
|
||||||
create_movement walk_fastest_down
|
create_movement walk_fastest_down
|
||||||
create_movement walk_fastest_up
|
create_movement walk_fastest_up
|
||||||
create_movement walk_fastest_left
|
create_movement walk_fastest_left
|
||||||
@@ -113,12 +113,24 @@
|
|||||||
create_movement rock_smash_break
|
create_movement rock_smash_break
|
||||||
create_movement cut_tree
|
create_movement cut_tree
|
||||||
|
|
||||||
enum_start 0x91
|
enum_start 0x94
|
||||||
create_movement step_91
|
create_movement spin_down
|
||||||
create_movement step_92
|
create_movement spin_up
|
||||||
|
create_movement spin_left
|
||||||
|
create_movement spin_right
|
||||||
|
|
||||||
enum_start 0x96
|
enum_start 0x9b
|
||||||
create_movement step_96
|
create_movement walk_slowest_down
|
||||||
|
create_movement walk_slowest_up
|
||||||
|
create_movement walk_slowest_left
|
||||||
|
create_movement walk_slowest_right
|
||||||
|
create_movement shake_head
|
||||||
|
|
||||||
|
enum_start 0xa6
|
||||||
|
create_movement jump_special_with_effect_down
|
||||||
|
create_movement jump_special_with_effect_up
|
||||||
|
create_movement jump_special_with_effect_left
|
||||||
|
create_movement jump_special_with_effect_right
|
||||||
|
|
||||||
enum_start 0xfe
|
enum_start 0xfe
|
||||||
create_movement step_end
|
create_movement step_end
|
||||||
|
|||||||
@@ -115,11 +115,11 @@ BirthIsland_Exterior_EventScript_RanFromDeoxys:: @ 8165348
|
|||||||
end
|
end
|
||||||
|
|
||||||
Movement_DeoxysApproach: @ 8165353
|
Movement_DeoxysApproach: @ 8165353
|
||||||
walk_slowest_down
|
walk_slower_down
|
||||||
walk_slowest_down
|
walk_slower_down
|
||||||
walk_slowest_down
|
walk_slower_down
|
||||||
walk_slowest_down
|
walk_slower_down
|
||||||
walk_slowest_down
|
walk_slower_down
|
||||||
walk_slowest_down
|
walk_slower_down
|
||||||
walk_slowest_down
|
walk_slower_down
|
||||||
step_end
|
step_end
|
||||||
|
|||||||
@@ -251,8 +251,8 @@ CinnabarIsland_Movement_BoatArrive:: @ 8167195
|
|||||||
walk_fast_left
|
walk_fast_left
|
||||||
walk_fast_left
|
walk_fast_left
|
||||||
walk_left
|
walk_left
|
||||||
walk_slowest_left
|
walk_slower_left
|
||||||
walk_slowest_left
|
walk_slower_left
|
||||||
step_end
|
step_end
|
||||||
|
|
||||||
CinnabarIsland_Movement_BillBoardBoat:: @ 816719D
|
CinnabarIsland_Movement_BillBoardBoat:: @ 816719D
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ FourIsland_PokemonDayCare_Movement_RetrieveMon:: @ 8171B71
|
|||||||
delay_16
|
delay_16
|
||||||
delay_16
|
delay_16
|
||||||
face_up
|
face_up
|
||||||
walk_slowest_up
|
walk_slower_up
|
||||||
set_invisible
|
set_invisible
|
||||||
delay_16
|
delay_16
|
||||||
delay_16
|
delay_16
|
||||||
@@ -179,7 +179,7 @@ FourIsland_PokemonDayCare_Movement_RetrieveMon:: @ 8171B71
|
|||||||
delay_16
|
delay_16
|
||||||
face_down
|
face_down
|
||||||
set_visible
|
set_visible
|
||||||
walk_slowest_down
|
walk_slower_down
|
||||||
step_end
|
step_end
|
||||||
|
|
||||||
@ Unused. Possibly a commented script, or a typo end added to the above Movement script
|
@ Unused. Possibly a commented script, or a typo end added to the above Movement script
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
"x": 36,
|
"x": 36,
|
||||||
"y": 15,
|
"y": 15,
|
||||||
"elevation": 3,
|
"elevation": 3,
|
||||||
"movement_type": "MOVEMENT_TYPE_WANDER_AROUND_SLOWEST",
|
"movement_type": "MOVEMENT_TYPE_WANDER_AROUND_SLOWER",
|
||||||
"movement_range_x": 4,
|
"movement_range_x": 4,
|
||||||
"movement_range_y": 1,
|
"movement_range_y": 1,
|
||||||
"trainer_type": "TRAINER_TYPE_NONE",
|
"trainer_type": "TRAINER_TYPE_NONE",
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
||||||
"movement_range_x": 0,
|
"movement_range_x": 0,
|
||||||
"movement_range_y": 0,
|
"movement_range_y": 0,
|
||||||
"trainer_type": "66",
|
"trainer_type": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_1",
|
||||||
"trainer_sight_or_berry_tree_id": "0",
|
"trainer_sight_or_berry_tree_id": "0",
|
||||||
"script": "EventScript_StrengthBoulder",
|
"script": "EventScript_StrengthBoulder",
|
||||||
"flag": "FLAG_HIDE_SEAFOAM_1F_BOULDER_1"
|
"flag": "FLAG_HIDE_SEAFOAM_1F_BOULDER_1"
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
||||||
"movement_range_x": 0,
|
"movement_range_x": 0,
|
||||||
"movement_range_y": 0,
|
"movement_range_y": 0,
|
||||||
"trainer_type": "67",
|
"trainer_type": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_2",
|
||||||
"trainer_sight_or_berry_tree_id": "0",
|
"trainer_sight_or_berry_tree_id": "0",
|
||||||
"script": "EventScript_StrengthBoulder",
|
"script": "EventScript_StrengthBoulder",
|
||||||
"flag": "FLAG_HIDE_SEAFOAM_1F_BOULDER_2"
|
"flag": "FLAG_HIDE_SEAFOAM_1F_BOULDER_2"
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
||||||
"movement_range_x": 0,
|
"movement_range_x": 0,
|
||||||
"movement_range_y": 0,
|
"movement_range_y": 0,
|
||||||
"trainer_type": "68",
|
"trainer_type": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_1",
|
||||||
"trainer_sight_or_berry_tree_id": "0",
|
"trainer_sight_or_berry_tree_id": "0",
|
||||||
"script": "EventScript_StrengthBoulder",
|
"script": "EventScript_StrengthBoulder",
|
||||||
"flag": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_1"
|
"flag": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_1"
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
||||||
"movement_range_x": 0,
|
"movement_range_x": 0,
|
||||||
"movement_range_y": 0,
|
"movement_range_y": 0,
|
||||||
"trainer_type": "69",
|
"trainer_type": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_2",
|
||||||
"trainer_sight_or_berry_tree_id": "0",
|
"trainer_sight_or_berry_tree_id": "0",
|
||||||
"script": "EventScript_StrengthBoulder",
|
"script": "EventScript_StrengthBoulder",
|
||||||
"flag": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_2"
|
"flag": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_2"
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
||||||
"movement_range_x": 0,
|
"movement_range_x": 0,
|
||||||
"movement_range_y": 0,
|
"movement_range_y": 0,
|
||||||
"trainer_type": "70",
|
"trainer_type": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_1",
|
||||||
"trainer_sight_or_berry_tree_id": "0",
|
"trainer_sight_or_berry_tree_id": "0",
|
||||||
"script": "EventScript_StrengthBoulder",
|
"script": "EventScript_StrengthBoulder",
|
||||||
"flag": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_1"
|
"flag": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_1"
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
||||||
"movement_range_x": 0,
|
"movement_range_x": 0,
|
||||||
"movement_range_y": 0,
|
"movement_range_y": 0,
|
||||||
"trainer_type": "71",
|
"trainer_type": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_2",
|
||||||
"trainer_sight_or_berry_tree_id": "0",
|
"trainer_sight_or_berry_tree_id": "0",
|
||||||
"script": "EventScript_StrengthBoulder",
|
"script": "EventScript_StrengthBoulder",
|
||||||
"flag": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_2"
|
"flag": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_2"
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
||||||
"movement_range_x": 0,
|
"movement_range_x": 0,
|
||||||
"movement_range_y": 0,
|
"movement_range_y": 0,
|
||||||
"trainer_type": "77",
|
"trainer_type": "FLAG_HIDE_SEAFOAM_B4F_BOULDER_2",
|
||||||
"trainer_sight_or_berry_tree_id": "0",
|
"trainer_sight_or_berry_tree_id": "0",
|
||||||
"script": "EventScript_StrengthBoulder",
|
"script": "EventScript_StrengthBoulder",
|
||||||
"flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_5"
|
"flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_5"
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
||||||
"movement_range_x": 0,
|
"movement_range_x": 0,
|
||||||
"movement_range_y": 0,
|
"movement_range_y": 0,
|
||||||
"trainer_type": "76",
|
"trainer_type": "FLAG_HIDE_SEAFOAM_B4F_BOULDER_1",
|
||||||
"trainer_sight_or_berry_tree_id": "0",
|
"trainer_sight_or_berry_tree_id": "0",
|
||||||
"script": "EventScript_StrengthBoulder",
|
"script": "EventScript_StrengthBoulder",
|
||||||
"flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_3"
|
"flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_3"
|
||||||
|
|||||||
@@ -122,7 +122,7 @@
|
|||||||
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
"movement_type": "MOVEMENT_TYPE_FACE_DOWN",
|
||||||
"movement_range_x": 0,
|
"movement_range_x": 0,
|
||||||
"movement_range_y": 0,
|
"movement_range_y": 0,
|
||||||
"trainer_type": "88",
|
"trainer_type": "FLAG_HIDE_VICTORY_ROAD_2F_BOULDER",
|
||||||
"trainer_sight_or_berry_tree_id": "0",
|
"trainer_sight_or_berry_tree_id": "0",
|
||||||
"script": "EventScript_StrengthBoulder",
|
"script": "EventScript_StrengthBoulder",
|
||||||
"flag": "FLAG_HIDE_VICTORY_ROAD_3F_BOULDER"
|
"flag": "FLAG_HIDE_VICTORY_ROAD_3F_BOULDER"
|
||||||
|
|||||||
@@ -82,7 +82,7 @@
|
|||||||
#define MOVEMENT_TYPE_VS_SEEKER_4D 0x4D
|
#define MOVEMENT_TYPE_VS_SEEKER_4D 0x4D
|
||||||
#define MOVEMENT_TYPE_VS_SEEKER_4E 0x4E
|
#define MOVEMENT_TYPE_VS_SEEKER_4E 0x4E
|
||||||
#define MOVEMENT_TYPE_VS_SEEKER_4F 0x4F
|
#define MOVEMENT_TYPE_VS_SEEKER_4F 0x4F
|
||||||
#define MOVEMENT_TYPE_WANDER_AROUND_SLOWEST 0x50
|
#define MOVEMENT_TYPE_WANDER_AROUND_SLOWER 0x50
|
||||||
#define MOVEMENT_TYPES_COUNT 0x51
|
#define MOVEMENT_TYPES_COUNT 0x51
|
||||||
|
|
||||||
#define MOVEMENT_ACTION_FACE_DOWN 0x0
|
#define MOVEMENT_ACTION_FACE_DOWN 0x0
|
||||||
@@ -93,10 +93,10 @@
|
|||||||
#define MOVEMENT_ACTION_FACE_UP_FAST 0x5
|
#define MOVEMENT_ACTION_FACE_UP_FAST 0x5
|
||||||
#define MOVEMENT_ACTION_FACE_LEFT_FAST 0x6
|
#define MOVEMENT_ACTION_FACE_LEFT_FAST 0x6
|
||||||
#define MOVEMENT_ACTION_FACE_RIGHT_FAST 0x7
|
#define MOVEMENT_ACTION_FACE_RIGHT_FAST 0x7
|
||||||
#define MOVEMENT_ACTION_WALK_SLOWEST_DOWN 0x8
|
#define MOVEMENT_ACTION_WALK_SLOWER_DOWN 0x8
|
||||||
#define MOVEMENT_ACTION_WALK_SLOWEST_UP 0x9
|
#define MOVEMENT_ACTION_WALK_SLOWER_UP 0x9
|
||||||
#define MOVEMENT_ACTION_WALK_SLOWEST_LEFT 0xA
|
#define MOVEMENT_ACTION_WALK_SLOWER_LEFT 0xA
|
||||||
#define MOVEMENT_ACTION_WALK_SLOWEST_RIGHT 0xB
|
#define MOVEMENT_ACTION_WALK_SLOWER_RIGHT 0xB
|
||||||
#define MOVEMENT_ACTION_WALK_SLOW_DOWN 0xC
|
#define MOVEMENT_ACTION_WALK_SLOW_DOWN 0xC
|
||||||
#define MOVEMENT_ACTION_WALK_SLOW_UP 0xD
|
#define MOVEMENT_ACTION_WALK_SLOW_UP 0xD
|
||||||
#define MOVEMENT_ACTION_WALK_SLOW_LEFT 0xE
|
#define MOVEMENT_ACTION_WALK_SLOW_LEFT 0xE
|
||||||
@@ -134,10 +134,10 @@
|
|||||||
#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP 0x2E
|
#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP 0x2E
|
||||||
#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT 0x2F
|
#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT 0x2F
|
||||||
#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT 0x30
|
#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT 0x30
|
||||||
#define MOVEMENT_ACTION_FACE_DOWN_SLOW 0x31
|
#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN 0x31
|
||||||
#define MOVEMENT_ACTION_FACE_UP_SLOW 0x32
|
#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP 0x32
|
||||||
#define MOVEMENT_ACTION_FACE_LEFT_SLOW 0x33
|
#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT 0x33
|
||||||
#define MOVEMENT_ACTION_FACE_RIGHT_SLOW 0x34
|
#define MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT 0x34
|
||||||
#define MOVEMENT_ACTION_WALK_FASTEST_DOWN 0x35
|
#define MOVEMENT_ACTION_WALK_FASTEST_DOWN 0x35
|
||||||
#define MOVEMENT_ACTION_WALK_FASTEST_UP 0x36
|
#define MOVEMENT_ACTION_WALK_FASTEST_UP 0x36
|
||||||
#define MOVEMENT_ACTION_WALK_FASTEST_LEFT 0x37
|
#define MOVEMENT_ACTION_WALK_FASTEST_LEFT 0x37
|
||||||
@@ -235,33 +235,29 @@
|
|||||||
#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP 0x91
|
#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP 0x91
|
||||||
#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT 0x92
|
#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT 0x92
|
||||||
#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT 0x93
|
#define MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT 0x93
|
||||||
#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN 0x94
|
|
||||||
#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP 0x95
|
|
||||||
#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT 0x96
|
|
||||||
#define MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT 0x97
|
|
||||||
|
|
||||||
// 98-A3 are unknown
|
|
||||||
#define MOVEMENT_ACTION_0x98 0x98
|
|
||||||
#define MOVEMENT_ACTION_0x99 0x99
|
|
||||||
#define MOVEMENT_ACTION_0x9A 0x9A
|
|
||||||
#define MOVEMENT_ACTION_0x9B 0x9B
|
|
||||||
#define MOVEMENT_ACTION_0x9C 0x9C
|
|
||||||
#define MOVEMENT_ACTION_0x9D 0x9D
|
|
||||||
#define MOVEMENT_ACTION_0x9E 0x9E
|
|
||||||
#define MOVEMENT_ACTION_0x9F 0x9F
|
|
||||||
#define MOVEMENT_ACTION_0xA0 0xA0
|
|
||||||
#define MOVEMENT_ACTION_0xA1 0xA1
|
|
||||||
#define MOVEMENT_ACTION_0xA2 0xA2
|
|
||||||
#define MOVEMENT_ACTION_0xA3 0xA3
|
|
||||||
|
|
||||||
|
#define MOVEMENT_ACTION_SPIN_DOWN 0x94
|
||||||
|
#define MOVEMENT_ACTION_SPIN_UP 0x95
|
||||||
|
#define MOVEMENT_ACTION_SPIN_LEFT 0x96
|
||||||
|
#define MOVEMENT_ACTION_SPIN_RIGHT 0x97
|
||||||
|
#define MOVEMENT_ACTION_0x98 0x98
|
||||||
|
#define MOVEMENT_ACTION_0x99 0x99
|
||||||
|
#define MOVEMENT_ACTION_0x9A 0x9A
|
||||||
|
#define MOVEMENT_ACTION_WALK_SLOWEST_DOWN 0x9B
|
||||||
|
#define MOVEMENT_ACTION_WALK_SLOWEST_UP 0x9C
|
||||||
|
#define MOVEMENT_ACTION_WALK_SLOWEST_LEFT 0x9D
|
||||||
|
#define MOVEMENT_ACTION_WALK_SLOWEST_RIGHT 0x9E
|
||||||
|
#define MOVEMENT_ACTION_SHAKE_HEAD 0x9F
|
||||||
|
#define MOVEMENT_ACTION_0xA0 0xA0
|
||||||
|
#define MOVEMENT_ACTION_0xA1 0xA1
|
||||||
|
#define MOVEMENT_ACTION_0xA2 0xA2
|
||||||
|
#define MOVEMENT_ACTION_0xA3 0xA3
|
||||||
#define MOVEMENT_ACTION_FLY_UP 0xA4
|
#define MOVEMENT_ACTION_FLY_UP 0xA4
|
||||||
#define MOVEMENT_ACTION_FLY_DOWN 0xA5
|
#define MOVEMENT_ACTION_FLY_DOWN 0xA5
|
||||||
|
#define MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_DOWN 0xA6
|
||||||
// Duplicates of JUMP_SPECIAL?
|
#define MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_UP 0xA7
|
||||||
#define MOVEMENT_ACTION_0xA6 0xA6
|
#define MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_LEFT 0xA8
|
||||||
#define MOVEMENT_ACTION_0xA7 0xA7
|
#define MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_RIGHT 0xA9
|
||||||
#define MOVEMENT_ACTION_0xA8 0xA8
|
|
||||||
#define MOVEMENT_ACTION_0xA9 0xA9
|
|
||||||
|
|
||||||
#define MOVEMENT_ACTION_STEP_END 0xFE
|
#define MOVEMENT_ACTION_STEP_END 0xFE
|
||||||
|
|
||||||
|
|||||||
@@ -209,8 +209,14 @@
|
|||||||
#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 8
|
#define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 8
|
||||||
#define FRIENDSHIP_EVENT_FAINT_LARGE 9
|
#define FRIENDSHIP_EVENT_FAINT_LARGE 9
|
||||||
|
|
||||||
#define PARTY_SIZE 6
|
#define MAX_PER_STAT_IVS 31
|
||||||
|
#define MAX_IV_MASK 31
|
||||||
|
#define USE_RANDOM_IVS (MAX_PER_STAT_IVS + 1)
|
||||||
|
#define MAX_PER_STAT_EVS 255
|
||||||
#define MAX_TOTAL_EVS 510
|
#define MAX_TOTAL_EVS 510
|
||||||
|
#define EV_ITEM_RAISE_LIMIT 100
|
||||||
|
|
||||||
|
#define PARTY_SIZE 6
|
||||||
#define UNOWN_FORM_COUNT 28
|
#define UNOWN_FORM_COUNT 28
|
||||||
#define BOX_NAME_LENGTH 8
|
#define BOX_NAME_LENGTH 8
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ bool8 TryGetObjectEventIdByLocalIdAndMap(u8, u8, u8, u8 *);
|
|||||||
u8 GetObjectEventIdByXY(s16, s16);
|
u8 GetObjectEventIdByXY(s16, s16);
|
||||||
void SetObjectEventDirection(struct ObjectEvent *, u8);
|
void SetObjectEventDirection(struct ObjectEvent *, u8);
|
||||||
void RemoveObjectEventByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup);
|
void RemoveObjectEventByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup);
|
||||||
u16 GetObjectEventFlagByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup);
|
u16 GetBoulderRevealFlagByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup);
|
||||||
void LoadPlayerObjectReflectionPalette(u16, u8);
|
void LoadPlayerObjectReflectionPalette(u16, u8);
|
||||||
void LoadSpecialObjectReflectionPalette(u16, u8);
|
void LoadSpecialObjectReflectionPalette(u16, u8);
|
||||||
void TryMoveObjectEventToMapCoords(u8, u8, u8, s16, s16);
|
void TryMoveObjectEventToMapCoords(u8, u8, u8, s16, s16);
|
||||||
@@ -124,7 +124,7 @@ u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent);
|
|||||||
u8 GetWalkNormalMovementAction(u32);
|
u8 GetWalkNormalMovementAction(u32);
|
||||||
u8 GetWalkFastMovementAction(u32);
|
u8 GetWalkFastMovementAction(u32);
|
||||||
u8 GetWalkFastestMovementAction(u32);
|
u8 GetWalkFastestMovementAction(u32);
|
||||||
u8 GetWalkSlowestMovementAction(u32 direction);
|
u8 GetWalkSlowerMovementAction(u32 direction);
|
||||||
u8 GetTrainerFacingDirectionMovementType(u8 direction);
|
u8 GetTrainerFacingDirectionMovementType(u8 direction);
|
||||||
u8 GetFaceDirectionMovementAction(u32);
|
u8 GetFaceDirectionMovementAction(u32);
|
||||||
u8 GetFaceDirectionFastMovementAction(u32);
|
u8 GetFaceDirectionFastMovementAction(u32);
|
||||||
@@ -134,7 +134,7 @@ u8 GetSlideMovementAction(u32);
|
|||||||
u8 GetJumpInPlaceMovementAction(u32);
|
u8 GetJumpInPlaceMovementAction(u32);
|
||||||
u8 GetJumpMovementAction(u32);
|
u8 GetJumpMovementAction(u32);
|
||||||
u8 GetJump2MovementAction(u32);
|
u8 GetJump2MovementAction(u32);
|
||||||
bool8 NpcTakeStep(struct Sprite *sprite);
|
bool8 UpdateWalkSlowerAnim(struct Sprite *sprite);
|
||||||
void SetJumpSpriteData(struct Sprite *, u8, u8, u8);
|
void SetJumpSpriteData(struct Sprite *, u8, u8, u8);
|
||||||
u8 DoJumpSpriteMovement(struct Sprite *);
|
u8 DoJumpSpriteMovement(struct Sprite *);
|
||||||
u8 DoJumpSpecialSpriteMovement(struct Sprite *);
|
u8 DoJumpSpecialSpriteMovement(struct Sprite *);
|
||||||
@@ -171,16 +171,16 @@ void UpdateObjectEventsForCameraUpdate(s16 x, s16 y);
|
|||||||
void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *);
|
void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *);
|
||||||
void SetMovementDelay(struct Sprite *, s16);
|
void SetMovementDelay(struct Sprite *, s16);
|
||||||
bool8 WaitForMovementDelay(struct Sprite *);
|
bool8 WaitForMovementDelay(struct Sprite *);
|
||||||
void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
|
void SetSpriteDataForNormalStep(struct Sprite *, u8, u8);
|
||||||
bool8 obj_npc_ministep(struct Sprite *sprite);
|
bool8 NpcTakeStep(struct Sprite *sprite);
|
||||||
void SetSpriteDataForNormalStep(struct Sprite *, u8);
|
void SetWalkSlowerSpriteData(struct Sprite *, u8);
|
||||||
void SetSpriteDataForNormalStep2(struct Sprite *, u8);
|
void SetWalkSlowestSpriteData(struct Sprite *, u8);
|
||||||
|
bool8 UpdateWalkSlowestAnim(struct Sprite *sprite);
|
||||||
|
void SetWalkSlowSpriteData(struct Sprite *, u8);
|
||||||
bool8 UpdateWalkSlowAnim(struct Sprite *sprite);
|
bool8 UpdateWalkSlowAnim(struct Sprite *sprite);
|
||||||
void SetSpriteDataForNormalStep3(struct Sprite *, u8);
|
|
||||||
bool8 sub_8068C18(struct Sprite *sprite);
|
|
||||||
void DoShadowFieldEffect(struct ObjectEvent *);
|
void DoShadowFieldEffect(struct ObjectEvent *);
|
||||||
void SetSpriteDataForNormalStep4(struct Sprite *, u8);
|
void SetRunSlowSpriteData(struct Sprite *, u8);
|
||||||
bool8 sub_8068CB4(struct Sprite *sprite);
|
bool8 UpdateRunSlowAnim(struct Sprite *sprite);
|
||||||
void SetAndStartSpriteAnim(struct Sprite *, u8, u8);
|
void SetAndStartSpriteAnim(struct Sprite *, u8, u8);
|
||||||
bool8 SpriteAnimEnded(struct Sprite *);
|
bool8 SpriteAnimEnded(struct Sprite *);
|
||||||
u8 ObjectEventGetHeldMovementActionId(struct ObjectEvent *objectEvent);
|
u8 ObjectEventGetHeldMovementActionId(struct ObjectEvent *objectEvent);
|
||||||
@@ -212,7 +212,7 @@ u8 GetJumpInPlaceTurnAroundMovementAction(u32 direction);
|
|||||||
u8 GetAcroWheelieInPlaceDirectionMovementAction(u32 direction);
|
u8 GetAcroWheelieInPlaceDirectionMovementAction(u32 direction);
|
||||||
u8 GetAcroPopWheelieMoveDirectionMovementAction(u32 direction);
|
u8 GetAcroPopWheelieMoveDirectionMovementAction(u32 direction);
|
||||||
u8 GetAcroWheelieMoveDirectionMovementAction(u32 direction);
|
u8 GetAcroWheelieMoveDirectionMovementAction(u32 direction);
|
||||||
u8 sub_80641EC(u32 direction);
|
u8 GetJumpSpecialWithEffectMovementAction(u32 direction);
|
||||||
u8 GetFishingBiteDirectionAnimNum(u8 direction);
|
u8 GetFishingBiteDirectionAnimNum(u8 direction);
|
||||||
void TrySpawnObjectEvents(s16 cameraX, s16 cameraY);
|
void TrySpawnObjectEvents(s16 cameraX, s16 cameraY);
|
||||||
void ResetObjectEvents(void);
|
void ResetObjectEvents(void);
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ void PlayerFaceDirection(u8 direction);
|
|||||||
void PlayerFaceDirectionFast(u8 direction);
|
void PlayerFaceDirectionFast(u8 direction);
|
||||||
void PlayerTurnInPlace(u8 direction);
|
void PlayerTurnInPlace(u8 direction);
|
||||||
void PlayerJumpLedge(u8 direction);
|
void PlayerJumpLedge(u8 direction);
|
||||||
void sub_805C260(void);
|
void PlayerShakeHead(void);
|
||||||
void player_step(u8 direction, u16 newKeys, u16 heldKeys);
|
void player_step(u8 direction, u16 newKeys, u16 heldKeys);
|
||||||
bool32 PlayerIsMovingOnRockStairs(u8 direction);
|
bool32 PlayerIsMovingOnRockStairs(u8 direction);
|
||||||
void UpdatePlayerAvatarTransitionState(void);
|
void UpdatePlayerAvatarTransitionState(void);
|
||||||
|
|||||||
+7
-1
@@ -211,7 +211,13 @@ static void CreateBattleStartTask(u8 transition, u16 song) // song == 0 means de
|
|||||||
static bool8 CheckSilphScopeInPokemonTower(u16 mapGroup, u16 mapNum)
|
static bool8 CheckSilphScopeInPokemonTower(u16 mapGroup, u16 mapNum)
|
||||||
{
|
{
|
||||||
if (mapGroup == MAP_GROUP(POKEMON_TOWER_1F)
|
if (mapGroup == MAP_GROUP(POKEMON_TOWER_1F)
|
||||||
&& ((u16)(mapNum - MAP_NUM(POKEMON_TOWER_1F)) <= 6)
|
&& (mapNum == MAP_NUM(POKEMON_TOWER_1F)
|
||||||
|
|| mapNum == MAP_NUM(POKEMON_TOWER_2F)
|
||||||
|
|| mapNum == MAP_NUM(POKEMON_TOWER_3F)
|
||||||
|
|| mapNum == MAP_NUM(POKEMON_TOWER_4F)
|
||||||
|
|| mapNum == MAP_NUM(POKEMON_TOWER_5F)
|
||||||
|
|| mapNum == MAP_NUM(POKEMON_TOWER_6F)
|
||||||
|
|| mapNum == MAP_NUM(POKEMON_TOWER_7F))
|
||||||
&& !(CheckBagHasItem(ITEM_SILPH_SCOPE, 1)))
|
&& !(CheckBagHasItem(ITEM_SILPH_SCOPE, 1)))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -471,10 +471,10 @@ bool8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite
|
|||||||
[MOVEMENT_ACTION_FACE_UP_FAST] = sMovementActionFuncs_x05,
|
[MOVEMENT_ACTION_FACE_UP_FAST] = sMovementActionFuncs_x05,
|
||||||
[MOVEMENT_ACTION_FACE_LEFT_FAST] = sMovementActionFuncs_x06,
|
[MOVEMENT_ACTION_FACE_LEFT_FAST] = sMovementActionFuncs_x06,
|
||||||
[MOVEMENT_ACTION_FACE_RIGHT_FAST] = sMovementActionFuncs_x07,
|
[MOVEMENT_ACTION_FACE_RIGHT_FAST] = sMovementActionFuncs_x07,
|
||||||
[MOVEMENT_ACTION_WALK_SLOWEST_DOWN] = sMovementActionFuncs_x08,
|
[MOVEMENT_ACTION_WALK_SLOWER_DOWN] = sMovementActionFuncs_x08,
|
||||||
[MOVEMENT_ACTION_WALK_SLOWEST_UP] = sMovementActionFuncs_x09,
|
[MOVEMENT_ACTION_WALK_SLOWER_UP] = sMovementActionFuncs_x09,
|
||||||
[MOVEMENT_ACTION_WALK_SLOWEST_LEFT] = sMovementActionFuncs_x0A,
|
[MOVEMENT_ACTION_WALK_SLOWER_LEFT] = sMovementActionFuncs_x0A,
|
||||||
[MOVEMENT_ACTION_WALK_SLOWEST_RIGHT] = sMovementActionFuncs_x0B,
|
[MOVEMENT_ACTION_WALK_SLOWER_RIGHT] = sMovementActionFuncs_x0B,
|
||||||
[MOVEMENT_ACTION_WALK_SLOW_DOWN] = sMovementActionFuncs_x0C,
|
[MOVEMENT_ACTION_WALK_SLOW_DOWN] = sMovementActionFuncs_x0C,
|
||||||
[MOVEMENT_ACTION_WALK_SLOW_UP] = sMovementActionFuncs_x0D,
|
[MOVEMENT_ACTION_WALK_SLOW_UP] = sMovementActionFuncs_x0D,
|
||||||
[MOVEMENT_ACTION_WALK_SLOW_LEFT] = sMovementActionFuncs_x0E,
|
[MOVEMENT_ACTION_WALK_SLOW_LEFT] = sMovementActionFuncs_x0E,
|
||||||
@@ -512,10 +512,10 @@ bool8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite
|
|||||||
[MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP] = sMovementActionFuncs_x2E,
|
[MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP] = sMovementActionFuncs_x2E,
|
||||||
[MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT] = sMovementActionFuncs_x2F,
|
[MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT] = sMovementActionFuncs_x2F,
|
||||||
[MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT] = sMovementActionFuncs_x30,
|
[MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT] = sMovementActionFuncs_x30,
|
||||||
[MOVEMENT_ACTION_FACE_DOWN_SLOW] = sMovementActionFuncs_x31,
|
[MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN] = sMovementActionFuncs_x31,
|
||||||
[MOVEMENT_ACTION_FACE_UP_SLOW] = sMovementActionFuncs_x32,
|
[MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP] = sMovementActionFuncs_x32,
|
||||||
[MOVEMENT_ACTION_FACE_LEFT_SLOW] = sMovementActionFuncs_x33,
|
[MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT] = sMovementActionFuncs_x33,
|
||||||
[MOVEMENT_ACTION_FACE_RIGHT_SLOW] = sMovementActionFuncs_x34,
|
[MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT] = sMovementActionFuncs_x34,
|
||||||
[MOVEMENT_ACTION_WALK_FASTEST_DOWN] = sMovementActionFuncs_x35,
|
[MOVEMENT_ACTION_WALK_FASTEST_DOWN] = sMovementActionFuncs_x35,
|
||||||
[MOVEMENT_ACTION_WALK_FASTEST_UP] = sMovementActionFuncs_x36,
|
[MOVEMENT_ACTION_WALK_FASTEST_UP] = sMovementActionFuncs_x36,
|
||||||
[MOVEMENT_ACTION_WALK_FASTEST_LEFT] = sMovementActionFuncs_x37,
|
[MOVEMENT_ACTION_WALK_FASTEST_LEFT] = sMovementActionFuncs_x37,
|
||||||
@@ -611,28 +611,28 @@ bool8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite
|
|||||||
[MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP] = sMovementActionFuncs_x91,
|
[MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP] = sMovementActionFuncs_x91,
|
||||||
[MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_x92,
|
[MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_x92,
|
||||||
[MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_x93,
|
[MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_x93,
|
||||||
[MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN] = sMovementActionFuncs_x94,
|
[MOVEMENT_ACTION_SPIN_DOWN] = sMovementActionFuncs_x94,
|
||||||
[MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP] = sMovementActionFuncs_x95,
|
[MOVEMENT_ACTION_SPIN_UP] = sMovementActionFuncs_x95,
|
||||||
[MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_x96,
|
[MOVEMENT_ACTION_SPIN_LEFT] = sMovementActionFuncs_x96,
|
||||||
[MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_x97,
|
[MOVEMENT_ACTION_SPIN_RIGHT] = sMovementActionFuncs_x97,
|
||||||
[MOVEMENT_ACTION_0x98] = sMovementActionFuncs_x98,
|
[MOVEMENT_ACTION_0x98] = sMovementActionFuncs_x98,
|
||||||
[MOVEMENT_ACTION_0x99] = sMovementActionFuncs_x99,
|
[MOVEMENT_ACTION_0x99] = sMovementActionFuncs_x99,
|
||||||
[MOVEMENT_ACTION_0x9A] = sMovementActionFuncs_x9A,
|
[MOVEMENT_ACTION_0x9A] = sMovementActionFuncs_x9A,
|
||||||
[MOVEMENT_ACTION_0x9B] = sMovementActionFuncs_x9B,
|
[MOVEMENT_ACTION_WALK_SLOWEST_DOWN] = sMovementActionFuncs_x9B,
|
||||||
[MOVEMENT_ACTION_0x9C] = sMovementActionFuncs_x9C,
|
[MOVEMENT_ACTION_WALK_SLOWEST_UP] = sMovementActionFuncs_x9C,
|
||||||
[MOVEMENT_ACTION_0x9D] = sMovementActionFuncs_x9D,
|
[MOVEMENT_ACTION_WALK_SLOWEST_LEFT] = sMovementActionFuncs_x9D,
|
||||||
[MOVEMENT_ACTION_0x9E] = sMovementActionFuncs_x9E,
|
[MOVEMENT_ACTION_WALK_SLOWEST_RIGHT] = sMovementActionFuncs_x9E,
|
||||||
[MOVEMENT_ACTION_0x9F] = sMovementActionFuncs_x9F,
|
[MOVEMENT_ACTION_SHAKE_HEAD] = sMovementActionFuncs_x9F,
|
||||||
[MOVEMENT_ACTION_0xA0] = sMovementActionFuncs_xA0,
|
[MOVEMENT_ACTION_0xA0] = sMovementActionFuncs_xA0,
|
||||||
[MOVEMENT_ACTION_0xA1] = sMovementActionFuncs_xA1,
|
[MOVEMENT_ACTION_0xA1] = sMovementActionFuncs_xA1,
|
||||||
[MOVEMENT_ACTION_0xA2] = sMovementActionFuncs_xA2,
|
[MOVEMENT_ACTION_0xA2] = sMovementActionFuncs_xA2,
|
||||||
[MOVEMENT_ACTION_0xA3] = sMovementActionFuncs_xA3,
|
[MOVEMENT_ACTION_0xA3] = sMovementActionFuncs_xA3,
|
||||||
[MOVEMENT_ACTION_FLY_UP] = sMovementActionFuncs_xA4,
|
[MOVEMENT_ACTION_FLY_UP] = sMovementActionFuncs_xA4,
|
||||||
[MOVEMENT_ACTION_FLY_DOWN] = sMovementActionFuncs_xA5,
|
[MOVEMENT_ACTION_FLY_DOWN] = sMovementActionFuncs_xA5,
|
||||||
[MOVEMENT_ACTION_0xA6] = sMovementActionFuncs_xA6,
|
[MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_DOWN] = sMovementActionFuncs_xA6,
|
||||||
[MOVEMENT_ACTION_0xA7] = sMovementActionFuncs_xA7,
|
[MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_UP] = sMovementActionFuncs_xA7,
|
||||||
[MOVEMENT_ACTION_0xA8] = sMovementActionFuncs_xA8,
|
[MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_LEFT] = sMovementActionFuncs_xA8,
|
||||||
[MOVEMENT_ACTION_0xA9] = sMovementActionFuncs_xA9,
|
[MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_RIGHT] = sMovementActionFuncs_xA9,
|
||||||
};
|
};
|
||||||
|
|
||||||
static bool8 (*const sMovementActionFuncs_x00[])(struct ObjectEvent *, struct Sprite *) = {
|
static bool8 (*const sMovementActionFuncs_x00[])(struct ObjectEvent *, struct Sprite *) = {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ static bool8 MovementType_WanderAround_Step2(struct ObjectEvent *objectEvent, st
|
|||||||
static bool8 MovementType_WanderAround_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
static bool8 MovementType_WanderAround_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||||
static bool8 MovementType_WanderAround_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
static bool8 MovementType_WanderAround_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||||
static bool8 MovementType_WanderAround_Step5(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
static bool8 MovementType_WanderAround_Step5(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||||
static bool8 MovementType_WanderAround_Step5Slowest(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
static bool8 MovementType_WanderAround_Step5Slower(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||||
static bool8 MovementType_WanderAround_Step6(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
static bool8 MovementType_WanderAround_Step6(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||||
static bool8 MovementType_LookAround_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
static bool8 MovementType_LookAround_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||||
static bool8 MovementType_LookAround_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
static bool8 MovementType_LookAround_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||||
@@ -170,13 +170,13 @@ u8 (*const gMovementTypeFuncs_WanderAround[])(struct ObjectEvent *, struct Sprit
|
|||||||
MovementType_WanderAround_Step6,
|
MovementType_WanderAround_Step6,
|
||||||
};
|
};
|
||||||
|
|
||||||
u8 (*const gMovementTypeFuncs_WanderAroundSlowest[])(struct ObjectEvent *, struct Sprite *) = {
|
u8 (*const gMovementTypeFuncs_WanderAroundSlower[])(struct ObjectEvent *, struct Sprite *) = {
|
||||||
MovementType_WanderAround_Step0,
|
MovementType_WanderAround_Step0,
|
||||||
MovementType_WanderAround_Step1,
|
MovementType_WanderAround_Step1,
|
||||||
MovementType_WanderAround_Step2,
|
MovementType_WanderAround_Step2,
|
||||||
MovementType_WanderAround_Step3,
|
MovementType_WanderAround_Step3,
|
||||||
MovementType_WanderAround_Step4,
|
MovementType_WanderAround_Step4,
|
||||||
MovementType_WanderAround_Step5Slowest,
|
MovementType_WanderAround_Step5Slower,
|
||||||
MovementType_WanderAround_Step6,
|
MovementType_WanderAround_Step6,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+576
-587
File diff suppressed because it is too large
Load Diff
@@ -1069,7 +1069,7 @@ void HandleBoulderFallThroughHole(struct ObjectEvent * object)
|
|||||||
{
|
{
|
||||||
PlaySE(SE_FALL);
|
PlaySE(SE_FALL);
|
||||||
RemoveObjectEventByLocalIdAndMap(object->localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
|
RemoveObjectEventByLocalIdAndMap(object->localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
|
||||||
FlagClear(GetObjectEventFlagByLocalIdAndMap(object->localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup));
|
FlagClear(GetBoulderRevealFlagByLocalIdAndMap(object->localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1600,7 +1600,7 @@ static bool8 waterfall_2_wait_anim_finish_probably(struct Task * task, struct Ob
|
|||||||
|
|
||||||
static bool8 waterfall_3_move_player_probably(struct Task * task, struct ObjectEvent * playerObj)
|
static bool8 waterfall_3_move_player_probably(struct Task * task, struct ObjectEvent * playerObj)
|
||||||
{
|
{
|
||||||
ObjectEventSetHeldMovement(playerObj, GetWalkSlowestMovementAction(DIR_NORTH));
|
ObjectEventSetHeldMovement(playerObj, GetWalkSlowerMovementAction(DIR_NORTH));
|
||||||
task->data[0]++;
|
task->data[0]++;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
#include "constants/metatile_behaviors.h"
|
#include "constants/metatile_behaviors.h"
|
||||||
#include "constants/moves.h"
|
#include "constants/moves.h"
|
||||||
|
#include "constants/trainer_types.h"
|
||||||
|
|
||||||
static EWRAM_DATA struct ObjectEvent * sPlayerObjectPtr = NULL;
|
static EWRAM_DATA struct ObjectEvent * sPlayerObjectPtr = NULL;
|
||||||
static EWRAM_DATA u8 sTeleportSavedFacingDirection = DIR_NONE;
|
static EWRAM_DATA u8 sTeleportSavedFacingDirection = DIR_NONE;
|
||||||
@@ -831,7 +832,7 @@ static void QL_TryRecordNPCStepWithDuration32(struct ObjectEvent * objectEvent,
|
|||||||
|
|
||||||
void PlayerGoSlowest(u8 direction)
|
void PlayerGoSlowest(u8 direction)
|
||||||
{
|
{
|
||||||
PlayerSetAnimId(GetWalkSlowestMovementAction(direction), 2);
|
PlayerSetAnimId(GetWalkSlowerMovementAction(direction), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayerGoSlow(u8 direction)
|
void PlayerGoSlow(u8 direction)
|
||||||
@@ -908,9 +909,9 @@ void PlayerJumpLedge(u8 direction)
|
|||||||
PlayerSetAnimId(GetJump2MovementAction(direction), 8);
|
PlayerSetAnimId(GetJump2MovementAction(direction), 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_805C260(void)
|
void PlayerShakeHead(void)
|
||||||
{
|
{
|
||||||
PlayerSetAnimId(MOVEMENT_ACTION_0x9F, 0);
|
PlayerSetAnimId(MOVEMENT_ACTION_SHAKE_HEAD, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HandleEnforcedLookDirectionOnPlayerStopMoving(void)
|
void HandleEnforcedLookDirectionOnPlayerStopMoving(void)
|
||||||
@@ -1295,7 +1296,7 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender)
|
|||||||
playerObjEventTemplate.objUnion.normal.movementType = MOVEMENT_TYPE_PLAYER;
|
playerObjEventTemplate.objUnion.normal.movementType = MOVEMENT_TYPE_PLAYER;
|
||||||
playerObjEventTemplate.objUnion.normal.movementRangeX = 0;
|
playerObjEventTemplate.objUnion.normal.movementRangeX = 0;
|
||||||
playerObjEventTemplate.objUnion.normal.movementRangeY = 0;
|
playerObjEventTemplate.objUnion.normal.movementRangeY = 0;
|
||||||
playerObjEventTemplate.objUnion.normal.trainerType = 0;
|
playerObjEventTemplate.objUnion.normal.trainerType = TRAINER_TYPE_NONE;
|
||||||
playerObjEventTemplate.objUnion.normal.trainerRange_berryTreeId = 0;
|
playerObjEventTemplate.objUnion.normal.trainerRange_berryTreeId = 0;
|
||||||
playerObjEventTemplate.script = NULL;
|
playerObjEventTemplate.script = NULL;
|
||||||
playerObjEventTemplate.flagId = 0;
|
playerObjEventTemplate.flagId = 0;
|
||||||
@@ -1428,7 +1429,7 @@ static bool8 DoBoulderDust(struct Task *task, struct ObjectEvent *playerObject,
|
|||||||
ObjectEventClearHeldMovementIfFinished(playerObject);
|
ObjectEventClearHeldMovementIfFinished(playerObject);
|
||||||
ObjectEventClearHeldMovementIfFinished(strengthObject);
|
ObjectEventClearHeldMovementIfFinished(strengthObject);
|
||||||
QL_TryRecordPlayerStepWithDuration0(playerObject, GetWalkInPlaceNormalMovementAction((u8)task->data[2]));
|
QL_TryRecordPlayerStepWithDuration0(playerObject, GetWalkInPlaceNormalMovementAction((u8)task->data[2]));
|
||||||
QL_TryRecordNPCStepWithDuration32(strengthObject, GetWalkSlowestMovementAction((u8)task->data[2]));
|
QL_TryRecordNPCStepWithDuration32(strengthObject, GetWalkSlowerMovementAction((u8)task->data[2]));
|
||||||
gFieldEffectArguments[0] = strengthObject->currentCoords.x;
|
gFieldEffectArguments[0] = strengthObject->currentCoords.x;
|
||||||
gFieldEffectArguments[1] = strengthObject->currentCoords.y;
|
gFieldEffectArguments[1] = strengthObject->currentCoords.y;
|
||||||
gFieldEffectArguments[2] = strengthObject->previousElevation;
|
gFieldEffectArguments[2] = strengthObject->previousElevation;
|
||||||
@@ -1560,7 +1561,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep3(struct Task *task, struct Objec
|
|||||||
{
|
{
|
||||||
if (ObjectEventClearHeldMovementIfFinished(objectEvent))
|
if (ObjectEventClearHeldMovementIfFinished(objectEvent))
|
||||||
{
|
{
|
||||||
QL_TryRecordPlayerStepWithDuration0(objectEvent, GetWalkSlowestMovementAction(GetOppositeDirection(task->data[1])));
|
QL_TryRecordPlayerStepWithDuration0(objectEvent, GetWalkSlowerMovementAction(GetOppositeDirection(task->data[1])));
|
||||||
ScriptContext2_Disable();
|
ScriptContext2_Disable();
|
||||||
gPlayerAvatar.preventStep = FALSE;
|
gPlayerAvatar.preventStep = FALSE;
|
||||||
DestroyTask(FindTaskIdByFunc(PlayerAvatar_DoSecretBaseMatSpin));
|
DestroyTask(FindTaskIdByFunc(PlayerAvatar_DoSecretBaseMatSpin));
|
||||||
@@ -1617,7 +1618,7 @@ static void Task_StopSurfingInit(u8 taskId)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
SetSurfBlob_BobState(playerObjEvent->fieldEffectSpriteId, 2);
|
SetSurfBlob_BobState(playerObjEvent->fieldEffectSpriteId, 2);
|
||||||
QL_TryRecordPlayerStepWithDuration0(playerObjEvent, sub_80641EC((u8)gTasks[taskId].data[0]));
|
QL_TryRecordPlayerStepWithDuration0(playerObjEvent, GetJumpSpecialWithEffectMovementAction((u8)gTasks[taskId].data[0]));
|
||||||
gTasks[taskId].func = Task_WaitStopSurfing;
|
gTasks[taskId].func = Task_WaitStopSurfing;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-1
@@ -10,6 +10,7 @@
|
|||||||
#include "field_specials.h"
|
#include "field_specials.h"
|
||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
#include "constants/items.h"
|
#include "constants/items.h"
|
||||||
|
#include "constants/maps.h"
|
||||||
|
|
||||||
static EWRAM_DATA const struct YesNoFuncTable *gUnknown_20399C8 = NULL;
|
static EWRAM_DATA const struct YesNoFuncTable *gUnknown_20399C8 = NULL;
|
||||||
static EWRAM_DATA TaskFunc gUnknown_20399CC = NULL;
|
static EWRAM_DATA TaskFunc gUnknown_20399CC = NULL;
|
||||||
@@ -94,7 +95,8 @@ bool8 itemid_link_can_give_berry(u16 itemId)
|
|||||||
{
|
{
|
||||||
if (itemId != ITEM_ENIGMA_BERRY)
|
if (itemId != ITEM_ENIGMA_BERRY)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else if (!gSaveBlock1Ptr->location.mapGroup && gSaveBlock1Ptr->location.mapNum == 1)
|
else if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRADE_CENTER)
|
||||||
|
&& gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRADE_CENTER))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
else if (InUnionRoom() != TRUE)
|
else if (InUnionRoom() != TRUE)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|||||||
+6
-3
@@ -521,9 +521,9 @@ static void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId
|
|||||||
|
|
||||||
static bool32 IsDummyWarp(struct WarpData *warp)
|
static bool32 IsDummyWarp(struct WarpData *warp)
|
||||||
{
|
{
|
||||||
if (warp->mapGroup != -1)
|
if (warp->mapGroup != (s8)MAP_GROUP(UNDEFINED))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
else if (warp->mapNum != -1)
|
else if (warp->mapNum != (s8)MAP_NUM(UNDEFINED))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
else if (warp->warpId != -1)
|
else if (warp->warpId != -1)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -896,7 +896,10 @@ bool8 sub_8055B38(u16 metatileBehavior)
|
|||||||
{
|
{
|
||||||
if (MetatileBehavior_IsSurfable(metatileBehavior) != TRUE)
|
if (MetatileBehavior_IsSurfable(metatileBehavior) != TRUE)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if ((gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SEAFOAM_ISLANDS_B3F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEAFOAM_ISLANDS_B3F)) || (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SEAFOAM_ISLANDS_B4F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEAFOAM_ISLANDS_B4F)))
|
if ((gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SEAFOAM_ISLANDS_B3F)
|
||||||
|
&& gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEAFOAM_ISLANDS_B3F))
|
||||||
|
|| (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SEAFOAM_ISLANDS_B4F)
|
||||||
|
&& gSaveBlock1Ptr->location.mapNum == MAP_NUM(SEAFOAM_ISLANDS_B4F)))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|||||||
+110
-84
@@ -5,53 +5,74 @@
|
|||||||
#include "constants/maps.h"
|
#include "constants/maps.h"
|
||||||
#include "constants/region_map_sections.h"
|
#include "constants/region_map_sections.h"
|
||||||
|
|
||||||
EWRAM_DATA u8 sLocationHistory[3][2] = {};
|
// Despite having a variable to track it, the roamer is
|
||||||
EWRAM_DATA u8 sRoamerLocation[2] = {};
|
// hard-coded to only ever be in map group 3
|
||||||
|
#define ROAMER_MAP_GROUP 3
|
||||||
#define saveRoamer (*(&gSaveBlock1Ptr->roamer))
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
MAP_GRP = 0, // map group
|
MAP_GRP, // map group
|
||||||
MAP_NUM = 1, // map number
|
MAP_NUM, // map number
|
||||||
};
|
};
|
||||||
|
|
||||||
const u8 sRoamerLocations[][7] = {
|
#define ROAMER (&gSaveBlock1Ptr->roamer)
|
||||||
{MAP_NUM(ROUTE1), MAP_NUM(ROUTE2), MAP_NUM(ROUTE21_NORTH), MAP_NUM(ROUTE22), 0xff, 0xff, 0xff},
|
EWRAM_DATA u8 sLocationHistory[3][2] = {};
|
||||||
{MAP_NUM(ROUTE2), MAP_NUM(ROUTE1), MAP_NUM(ROUTE3), MAP_NUM(ROUTE22), 0xff, 0xff, 0xff},
|
EWRAM_DATA u8 sRoamerLocation[2] = {};
|
||||||
{MAP_NUM(ROUTE3), MAP_NUM(ROUTE2), MAP_NUM(ROUTE4), 0xff, 0xff, 0xff, 0xff},
|
|
||||||
{MAP_NUM(ROUTE4), MAP_NUM(ROUTE3), MAP_NUM(ROUTE5), MAP_NUM(ROUTE9), MAP_NUM(ROUTE24), 0xff, 0xff},
|
#define ___ MAP_NUM(UNDEFINED) // For empty spots in the location table
|
||||||
|
|
||||||
|
// Note: There are two potential softlocks that can occur with this table if its maps are
|
||||||
|
// changed in particular ways. They can be avoided by ensuring the following:
|
||||||
|
// - There must be at least 2 location sets that start with a different map,
|
||||||
|
// i.e. every location set cannot start with the same map. This is because of
|
||||||
|
// the while loop in RoamerMoveToOtherLocationSet.
|
||||||
|
// - Each location set must have at least 3 unique maps. This is because of
|
||||||
|
// the while loop in RoamerMove. In this loop the first map in the set is
|
||||||
|
// ignored, and an additional map is ignored if the roamer was there recently.
|
||||||
|
// - Additionally, while not a softlock, it's worth noting that if for any
|
||||||
|
// map in the location table there is not a location set that starts with
|
||||||
|
// that map then the roamer will be significantly less likely to move away
|
||||||
|
// from that map when it lands there.
|
||||||
|
static const u8 sRoamerLocations[][7] = {
|
||||||
|
{MAP_NUM(ROUTE1), MAP_NUM(ROUTE2), MAP_NUM(ROUTE21_NORTH), MAP_NUM(ROUTE22), ___, ___, ___},
|
||||||
|
{MAP_NUM(ROUTE2), MAP_NUM(ROUTE1), MAP_NUM(ROUTE3), MAP_NUM(ROUTE22), ___, ___, ___},
|
||||||
|
{MAP_NUM(ROUTE3), MAP_NUM(ROUTE2), MAP_NUM(ROUTE4), ___, ___, ___, ___},
|
||||||
|
{MAP_NUM(ROUTE4), MAP_NUM(ROUTE3), MAP_NUM(ROUTE5), MAP_NUM(ROUTE9), MAP_NUM(ROUTE24), ___, ___},
|
||||||
{MAP_NUM(ROUTE5), MAP_NUM(ROUTE4), MAP_NUM(ROUTE6), MAP_NUM(ROUTE7), MAP_NUM(ROUTE8), MAP_NUM(ROUTE9), MAP_NUM(ROUTE24)},
|
{MAP_NUM(ROUTE5), MAP_NUM(ROUTE4), MAP_NUM(ROUTE6), MAP_NUM(ROUTE7), MAP_NUM(ROUTE8), MAP_NUM(ROUTE9), MAP_NUM(ROUTE24)},
|
||||||
{MAP_NUM(ROUTE6), MAP_NUM(ROUTE5), MAP_NUM(ROUTE7), MAP_NUM(ROUTE8), MAP_NUM(ROUTE11), 0xff, 0xff},
|
{MAP_NUM(ROUTE6), MAP_NUM(ROUTE5), MAP_NUM(ROUTE7), MAP_NUM(ROUTE8), MAP_NUM(ROUTE11), ___, ___},
|
||||||
{MAP_NUM(ROUTE7), MAP_NUM(ROUTE5), MAP_NUM(ROUTE6), MAP_NUM(ROUTE8), MAP_NUM(ROUTE16), 0xff, 0xff},
|
{MAP_NUM(ROUTE7), MAP_NUM(ROUTE5), MAP_NUM(ROUTE6), MAP_NUM(ROUTE8), MAP_NUM(ROUTE16), ___, ___},
|
||||||
{MAP_NUM(ROUTE8), MAP_NUM(ROUTE5), MAP_NUM(ROUTE6), MAP_NUM(ROUTE7), MAP_NUM(ROUTE10), MAP_NUM(ROUTE12), 0xff},
|
{MAP_NUM(ROUTE8), MAP_NUM(ROUTE5), MAP_NUM(ROUTE6), MAP_NUM(ROUTE7), MAP_NUM(ROUTE10), MAP_NUM(ROUTE12), ___},
|
||||||
{MAP_NUM(ROUTE9), MAP_NUM(ROUTE4), MAP_NUM(ROUTE5), MAP_NUM(ROUTE10), MAP_NUM(ROUTE24), 0xff, 0xff},
|
{MAP_NUM(ROUTE9), MAP_NUM(ROUTE4), MAP_NUM(ROUTE5), MAP_NUM(ROUTE10), MAP_NUM(ROUTE24), ___, ___},
|
||||||
{MAP_NUM(ROUTE10), MAP_NUM(ROUTE8), MAP_NUM(ROUTE9), MAP_NUM(ROUTE12), 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE10), MAP_NUM(ROUTE8), MAP_NUM(ROUTE9), MAP_NUM(ROUTE12), ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE11), MAP_NUM(ROUTE6), MAP_NUM(ROUTE12), 0xff, 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE11), MAP_NUM(ROUTE6), MAP_NUM(ROUTE12), ___, ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE12), MAP_NUM(ROUTE10), MAP_NUM(ROUTE11), MAP_NUM(ROUTE13), 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE12), MAP_NUM(ROUTE10), MAP_NUM(ROUTE11), MAP_NUM(ROUTE13), ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE13), MAP_NUM(ROUTE12), MAP_NUM(ROUTE14), 0xff, 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE13), MAP_NUM(ROUTE12), MAP_NUM(ROUTE14), ___, ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE14), MAP_NUM(ROUTE13), MAP_NUM(ROUTE15), 0xff, 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE14), MAP_NUM(ROUTE13), MAP_NUM(ROUTE15), ___, ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE15), MAP_NUM(ROUTE14), MAP_NUM(ROUTE18), MAP_NUM(ROUTE19), 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE15), MAP_NUM(ROUTE14), MAP_NUM(ROUTE18), MAP_NUM(ROUTE19), ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE16), MAP_NUM(ROUTE7), MAP_NUM(ROUTE17), 0xff, 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE16), MAP_NUM(ROUTE7), MAP_NUM(ROUTE17), ___, ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE17), MAP_NUM(ROUTE16), MAP_NUM(ROUTE18), 0xff, 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE17), MAP_NUM(ROUTE16), MAP_NUM(ROUTE18), ___, ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE18), MAP_NUM(ROUTE15), MAP_NUM(ROUTE17), MAP_NUM(ROUTE19), 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE18), MAP_NUM(ROUTE15), MAP_NUM(ROUTE17), MAP_NUM(ROUTE19), ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE19), MAP_NUM(ROUTE15), MAP_NUM(ROUTE18), MAP_NUM(ROUTE20), 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE19), MAP_NUM(ROUTE15), MAP_NUM(ROUTE18), MAP_NUM(ROUTE20), ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE20), MAP_NUM(ROUTE19), MAP_NUM(ROUTE21_NORTH), 0xff, 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE20), MAP_NUM(ROUTE19), MAP_NUM(ROUTE21_NORTH), ___, ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE21_NORTH), MAP_NUM(ROUTE1), MAP_NUM(ROUTE20), 0xff, 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE21_NORTH), MAP_NUM(ROUTE1), MAP_NUM(ROUTE20), ___, ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE22), MAP_NUM(ROUTE1), MAP_NUM(ROUTE2), MAP_NUM(ROUTE23), 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE22), MAP_NUM(ROUTE1), MAP_NUM(ROUTE2), MAP_NUM(ROUTE23), ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE23), MAP_NUM(ROUTE22), MAP_NUM(ROUTE2), 0xff, 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE23), MAP_NUM(ROUTE22), MAP_NUM(ROUTE2), ___, ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE24), MAP_NUM(ROUTE4), MAP_NUM(ROUTE5), MAP_NUM(ROUTE9), 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE24), MAP_NUM(ROUTE4), MAP_NUM(ROUTE5), MAP_NUM(ROUTE9), ___, ___, ___},
|
||||||
{MAP_NUM(ROUTE25), MAP_NUM(ROUTE24), MAP_NUM(ROUTE9), 0xff, 0xff, 0xff, 0xff},
|
{MAP_NUM(ROUTE25), MAP_NUM(ROUTE24), MAP_NUM(ROUTE9), ___, ___, ___, ___},
|
||||||
{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
|
{___, ___, ___, ___, ___, ___, ___}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#undef ___
|
||||||
|
#define NUM_LOCATION_SETS (ARRAY_COUNT(sRoamerLocations) - 1)
|
||||||
|
#define NUM_LOCATIONS_PER_SET (ARRAY_COUNT(sRoamerLocations[0]))
|
||||||
|
|
||||||
void ClearRoamerData(void)
|
void ClearRoamerData(void)
|
||||||
{
|
{
|
||||||
u32 i;
|
u32 i;
|
||||||
gSaveBlock1Ptr->roamer = (struct Roamer){};
|
*ROAMER = (struct Roamer){};
|
||||||
sRoamerLocation[MAP_GRP] = 0;
|
sRoamerLocation[MAP_GRP] = 0;
|
||||||
sRoamerLocation[MAP_NUM] = 0;
|
sRoamerLocation[MAP_NUM] = 0;
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < ARRAY_COUNT(sLocationHistory); i++)
|
||||||
{
|
{
|
||||||
sLocationHistory[i][MAP_GRP] = 0;
|
sLocationHistory[i][MAP_GRP] = 0;
|
||||||
sLocationHistory[i][MAP_NUM] = 0;
|
sLocationHistory[i][MAP_NUM] = 0;
|
||||||
@@ -77,24 +98,23 @@ void ClearRoamerData(void)
|
|||||||
|
|
||||||
void CreateInitialRoamerMon(void)
|
void CreateInitialRoamerMon(void)
|
||||||
{
|
{
|
||||||
struct Pokemon * tmpMon = &gEnemyParty[0];
|
struct Pokemon * mon = &gEnemyParty[0];
|
||||||
u16 roamerMon;
|
u16 species = GetRoamerSpecies();
|
||||||
|
CreateMon(mon, species, 50, USE_RANDOM_IVS, FALSE, 0, OT_ID_PLAYER_ID, 0);
|
||||||
CreateMon(tmpMon, (roamerMon = GetRoamerSpecies()), 50, 0x20, 0, 0, 0, 0);
|
ROAMER->species = species;
|
||||||
saveRoamer.species = roamerMon;
|
ROAMER->level = 50;
|
||||||
saveRoamer.level = 50;
|
ROAMER->status = 0;
|
||||||
saveRoamer.status = 0;
|
ROAMER->active = TRUE;
|
||||||
saveRoamer.active = TRUE;
|
ROAMER->ivs = GetMonData(mon, MON_DATA_IVS);
|
||||||
saveRoamer.ivs = GetMonData(tmpMon, MON_DATA_IVS);
|
ROAMER->personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||||
saveRoamer.personality = GetMonData(tmpMon, MON_DATA_PERSONALITY);
|
ROAMER->hp = GetMonData(mon, MON_DATA_MAX_HP);
|
||||||
saveRoamer.hp = GetMonData(tmpMon, MON_DATA_MAX_HP);
|
ROAMER->cool = GetMonData(mon, MON_DATA_COOL);
|
||||||
saveRoamer.cool = GetMonData(tmpMon, MON_DATA_COOL);
|
ROAMER->beauty = GetMonData(mon, MON_DATA_BEAUTY);
|
||||||
saveRoamer.beauty = GetMonData(tmpMon, MON_DATA_BEAUTY);
|
ROAMER->cute = GetMonData(mon, MON_DATA_CUTE);
|
||||||
saveRoamer.cute = GetMonData(tmpMon, MON_DATA_CUTE);
|
ROAMER->smart = GetMonData(mon, MON_DATA_SMART);
|
||||||
saveRoamer.smart = GetMonData(tmpMon, MON_DATA_SMART);
|
ROAMER->tough = GetMonData(mon, MON_DATA_TOUGH);
|
||||||
saveRoamer.tough = GetMonData(tmpMon, MON_DATA_TOUGH);
|
sRoamerLocation[MAP_GRP] = ROAMER_MAP_GROUP;
|
||||||
sRoamerLocation[MAP_GRP] = 3;
|
sRoamerLocation[MAP_NUM] = sRoamerLocations[Random() % NUM_LOCATION_SETS][0];
|
||||||
sRoamerLocation[MAP_NUM] = sRoamerLocations[Random() % (NELEMS(sRoamerLocations) - 1)][0];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void InitRoamer(void)
|
void InitRoamer(void)
|
||||||
@@ -107,8 +127,10 @@ void UpdateLocationHistoryForRoamer(void)
|
|||||||
{
|
{
|
||||||
sLocationHistory[2][MAP_GRP] = sLocationHistory[1][MAP_GRP];
|
sLocationHistory[2][MAP_GRP] = sLocationHistory[1][MAP_GRP];
|
||||||
sLocationHistory[2][MAP_NUM] = sLocationHistory[1][MAP_NUM];
|
sLocationHistory[2][MAP_NUM] = sLocationHistory[1][MAP_NUM];
|
||||||
|
|
||||||
sLocationHistory[1][MAP_GRP] = sLocationHistory[0][MAP_GRP];
|
sLocationHistory[1][MAP_GRP] = sLocationHistory[0][MAP_GRP];
|
||||||
sLocationHistory[1][MAP_NUM] = sLocationHistory[0][MAP_NUM];
|
sLocationHistory[1][MAP_NUM] = sLocationHistory[0][MAP_NUM];
|
||||||
|
|
||||||
sLocationHistory[0][MAP_GRP] = gSaveBlock1Ptr->location.mapGroup;
|
sLocationHistory[0][MAP_GRP] = gSaveBlock1Ptr->location.mapGroup;
|
||||||
sLocationHistory[0][MAP_NUM] = gSaveBlock1Ptr->location.mapNum;
|
sLocationHistory[0][MAP_NUM] = gSaveBlock1Ptr->location.mapNum;
|
||||||
}
|
}
|
||||||
@@ -116,16 +138,17 @@ void UpdateLocationHistoryForRoamer(void)
|
|||||||
void RoamerMoveToOtherLocationSet(void)
|
void RoamerMoveToOtherLocationSet(void)
|
||||||
{
|
{
|
||||||
u8 mapNum = 0;
|
u8 mapNum = 0;
|
||||||
struct Roamer *roamer = &saveRoamer;
|
|
||||||
|
|
||||||
if (!roamer->active)
|
if (!ROAMER->active)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sRoamerLocation[MAP_GRP] = 3;
|
sRoamerLocation[MAP_GRP] = ROAMER_MAP_GROUP;
|
||||||
|
|
||||||
|
// Choose a location set that starts with a map
|
||||||
|
// different from the roamer's current map
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
mapNum = sRoamerLocations[Random() % (NELEMS(sRoamerLocations) - 1)][0];
|
mapNum = sRoamerLocations[Random() % NUM_LOCATION_SETS][0];
|
||||||
if (sRoamerLocation[MAP_NUM] != mapNum)
|
if (sRoamerLocation[MAP_NUM] != mapNum)
|
||||||
{
|
{
|
||||||
sRoamerLocation[MAP_NUM] = mapNum;
|
sRoamerLocation[MAP_NUM] = mapNum;
|
||||||
@@ -145,20 +168,23 @@ void RoamerMove(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
struct Roamer *roamer = &saveRoamer;
|
if (!ROAMER->active)
|
||||||
|
|
||||||
if (!roamer->active)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
while (locSet < (NELEMS(sRoamerLocations) - 1))
|
while (locSet < NUM_LOCATION_SETS)
|
||||||
{
|
{
|
||||||
|
// Find the location set that starts with the roamer's current map
|
||||||
if (sRoamerLocation[MAP_NUM] == sRoamerLocations[locSet][0])
|
if (sRoamerLocation[MAP_NUM] == sRoamerLocations[locSet][0])
|
||||||
{
|
{
|
||||||
u8 mapNum;
|
u8 mapNum;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
mapNum = sRoamerLocations[locSet][(Random() % 6) + 1];
|
// Choose a new map (excluding the first) within this set
|
||||||
if (!(sLocationHistory[2][MAP_GRP] == 3 && sLocationHistory[2][MAP_NUM] == mapNum) && mapNum != 0xFF)
|
// Also exclude a map if the roamer was there 2 moves ago
|
||||||
|
mapNum = sRoamerLocations[locSet][(Random() % (NUM_LOCATIONS_PER_SET - 1)) + 1];
|
||||||
|
if (!(sLocationHistory[2][MAP_GRP] == ROAMER_MAP_GROUP
|
||||||
|
&& sLocationHistory[2][MAP_NUM] == mapNum)
|
||||||
|
&& mapNum != MAP_NUM(UNDEFINED))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sRoamerLocation[MAP_NUM] = mapNum;
|
sRoamerLocation[MAP_NUM] = mapNum;
|
||||||
@@ -171,9 +197,7 @@ void RoamerMove(void)
|
|||||||
|
|
||||||
bool8 IsRoamerAt(u8 mapGroup, u8 mapNum)
|
bool8 IsRoamerAt(u8 mapGroup, u8 mapNum)
|
||||||
{
|
{
|
||||||
struct Roamer *roamer = &saveRoamer;
|
if (ROAMER->active && mapGroup == sRoamerLocation[MAP_GRP] && mapNum == sRoamerLocation[MAP_NUM])
|
||||||
|
|
||||||
if (roamer->active && mapGroup == sRoamerLocation[MAP_GRP] && mapNum == sRoamerLocation[MAP_NUM])
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
else
|
else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -181,20 +205,24 @@ bool8 IsRoamerAt(u8 mapGroup, u8 mapNum)
|
|||||||
|
|
||||||
void CreateRoamerMonInstance(void)
|
void CreateRoamerMonInstance(void)
|
||||||
{
|
{
|
||||||
struct Pokemon *mon;
|
u32 status;
|
||||||
struct Roamer *roamer;
|
struct Pokemon *mon = &gEnemyParty[0];
|
||||||
|
|
||||||
mon = &gEnemyParty[0];
|
|
||||||
ZeroEnemyPartyMons();
|
ZeroEnemyPartyMons();
|
||||||
roamer = &saveRoamer;
|
CreateMonWithIVsPersonality(mon, ROAMER->species, ROAMER->level, ROAMER->ivs, ROAMER->personality);
|
||||||
CreateMonWithIVsPersonality(mon, roamer->species, roamer->level, roamer->ivs, roamer->personality);
|
// The roamer's status field is u8, but SetMonData expects status to be u32, so will set the roamer's status
|
||||||
SetMonData(mon, MON_DATA_STATUS, &gSaveBlock1Ptr->roamer.status);
|
// using the status field and the following 3 bytes (cool, beauty, and cute).
|
||||||
SetMonData(mon, MON_DATA_HP, &gSaveBlock1Ptr->roamer.hp);
|
#ifdef BUGFIX
|
||||||
SetMonData(mon, MON_DATA_COOL, &gSaveBlock1Ptr->roamer.cool);
|
status = ROAMER->status;
|
||||||
SetMonData(mon, MON_DATA_BEAUTY, &gSaveBlock1Ptr->roamer.beauty);
|
SetMonData(mon, MON_DATA_STATUS, &status);
|
||||||
SetMonData(mon, MON_DATA_CUTE, &gSaveBlock1Ptr->roamer.cute);
|
#else
|
||||||
SetMonData(mon, MON_DATA_SMART, &gSaveBlock1Ptr->roamer.smart);
|
SetMonData(mon, MON_DATA_STATUS, &ROAMER->status);
|
||||||
SetMonData(mon, MON_DATA_TOUGH, &gSaveBlock1Ptr->roamer.tough);
|
#endif
|
||||||
|
SetMonData(mon, MON_DATA_HP, &ROAMER->hp);
|
||||||
|
SetMonData(mon, MON_DATA_COOL, &ROAMER->cool);
|
||||||
|
SetMonData(mon, MON_DATA_BEAUTY, &ROAMER->beauty);
|
||||||
|
SetMonData(mon, MON_DATA_CUTE, &ROAMER->cute);
|
||||||
|
SetMonData(mon, MON_DATA_SMART, &ROAMER->smart);
|
||||||
|
SetMonData(mon, MON_DATA_TOUGH, &ROAMER->tough);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 TryStartRoamerEncounter(void)
|
bool8 TryStartRoamerEncounter(void)
|
||||||
@@ -211,16 +239,15 @@ bool8 TryStartRoamerEncounter(void)
|
|||||||
}
|
}
|
||||||
void UpdateRoamerHPStatus(struct Pokemon *mon)
|
void UpdateRoamerHPStatus(struct Pokemon *mon)
|
||||||
{
|
{
|
||||||
saveRoamer.hp = GetMonData(mon, MON_DATA_HP);
|
ROAMER->hp = GetMonData(mon, MON_DATA_HP);
|
||||||
saveRoamer.status = GetMonData(mon, MON_DATA_STATUS);
|
ROAMER->status = GetMonData(mon, MON_DATA_STATUS);
|
||||||
|
|
||||||
RoamerMoveToOtherLocationSet();
|
RoamerMoveToOtherLocationSet();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetRoamerInactive(void)
|
void SetRoamerInactive(void)
|
||||||
{
|
{
|
||||||
struct Roamer *roamer = &saveRoamer;
|
ROAMER->active = FALSE;
|
||||||
roamer->active = FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GetRoamerLocation(u8 *mapGroup, u8 *mapNum)
|
void GetRoamerLocation(u8 *mapGroup, u8 *mapNum)
|
||||||
@@ -231,8 +258,7 @@ void GetRoamerLocation(u8 *mapGroup, u8 *mapNum)
|
|||||||
|
|
||||||
u16 GetRoamerLocationMapSectionId(void)
|
u16 GetRoamerLocationMapSectionId(void)
|
||||||
{
|
{
|
||||||
struct Roamer *roamer = &saveRoamer;
|
if (!ROAMER->active)
|
||||||
if (!saveRoamer.active)
|
|
||||||
return MAPSEC_NONE;
|
return MAPSEC_NONE;
|
||||||
return Overworld_GetMapHeaderByGroupAndId(sRoamerLocation[MAP_GRP], sRoamerLocation[MAP_NUM])->regionMapSectionId;
|
return Overworld_GetMapHeaderByGroupAndId(sRoamerLocation[MAP_GRP], sRoamerLocation[MAP_NUM])->regionMapSectionId;
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-4
@@ -2,6 +2,7 @@
|
|||||||
#include "script.h"
|
#include "script.h"
|
||||||
#include "event_data.h"
|
#include "event_data.h"
|
||||||
#include "quest_log.h"
|
#include "quest_log.h"
|
||||||
|
#include "constants/maps.h"
|
||||||
|
|
||||||
#define RAM_SCRIPT_MAGIC 51
|
#define RAM_SCRIPT_MAGIC 51
|
||||||
#define SCRIPT_STACK_SIZE 20
|
#define SCRIPT_STACK_SIZE 20
|
||||||
@@ -511,9 +512,9 @@ bool32 ValidateRamScript(void)
|
|||||||
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
||||||
if (scriptData->magic != RAM_SCRIPT_MAGIC)
|
if (scriptData->magic != RAM_SCRIPT_MAGIC)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (scriptData->mapGroup != 0xFF)
|
if (scriptData->mapGroup != MAP_GROUP(UNDEFINED))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (scriptData->mapNum != 0xFF)
|
if (scriptData->mapNum != MAP_NUM(UNDEFINED))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (scriptData->objectId != 0xFF)
|
if (scriptData->objectId != 0xFF)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -529,9 +530,9 @@ u8 *sub_8069E48(void)
|
|||||||
return NULL;
|
return NULL;
|
||||||
if (scriptData->magic != RAM_SCRIPT_MAGIC)
|
if (scriptData->magic != RAM_SCRIPT_MAGIC)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (scriptData->mapGroup != 0xFF)
|
if (scriptData->mapGroup != MAP_GROUP(UNDEFINED))
|
||||||
return NULL;
|
return NULL;
|
||||||
if (scriptData->mapNum != 0xFF)
|
if (scriptData->mapNum != MAP_NUM(UNDEFINED))
|
||||||
return NULL;
|
return NULL;
|
||||||
if (scriptData->objectId != 0xFF)
|
if (scriptData->objectId != 0xFF)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|||||||
+6
-8
@@ -10,6 +10,7 @@
|
|||||||
#include "constants/battle_setup.h"
|
#include "constants/battle_setup.h"
|
||||||
#include "constants/event_object_movement.h"
|
#include "constants/event_object_movement.h"
|
||||||
#include "constants/event_objects.h"
|
#include "constants/event_objects.h"
|
||||||
|
#include "constants/trainer_types.h"
|
||||||
|
|
||||||
typedef u8 (*TrainerApproachFunc)(struct ObjectEvent *, s16, s16, s16);
|
typedef u8 (*TrainerApproachFunc)(struct ObjectEvent *, s16, s16, s16);
|
||||||
typedef bool8 (*TrainerSeeFunc)(u8, struct Task *, struct ObjectEvent *);
|
typedef bool8 (*TrainerSeeFunc)(u8, struct Task *, struct ObjectEvent *);
|
||||||
@@ -93,12 +94,9 @@ bool8 CheckForTrainersWantingBattle(void)
|
|||||||
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
|
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
|
||||||
{
|
{
|
||||||
if (gObjectEvents[i].active
|
if (gObjectEvents[i].active
|
||||||
&& (
|
&& (gObjectEvents[i].trainerType == TRAINER_TYPE_NORMAL
|
||||||
gObjectEvents[i].trainerType == 1
|
|| gObjectEvents[i].trainerType == TRAINER_TYPE_BURIED)
|
||||||
|| gObjectEvents[i].trainerType == 3
|
&& CheckTrainer(i))
|
||||||
)
|
|
||||||
&& CheckTrainer(i)
|
|
||||||
)
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -129,12 +127,12 @@ static u8 GetTrainerApproachDistance(struct ObjectEvent *trainerObj)
|
|||||||
u8 approachDistance;
|
u8 approachDistance;
|
||||||
|
|
||||||
PlayerGetDestCoords(&x, &y);
|
PlayerGetDestCoords(&x, &y);
|
||||||
if (trainerObj->trainerType == 1) // can only see in one direction
|
if (trainerObj->trainerType == TRAINER_TYPE_NORMAL) // can only see in one direction
|
||||||
{
|
{
|
||||||
approachDistance = sDirectionalApproachDistanceFuncs[trainerObj->facingDirection - 1](trainerObj, trainerObj->trainerRange_berryTreeId, x, y);
|
approachDistance = sDirectionalApproachDistanceFuncs[trainerObj->facingDirection - 1](trainerObj, trainerObj->trainerRange_berryTreeId, x, y);
|
||||||
return CheckPathBetweenTrainerAndPlayer(trainerObj, approachDistance, trainerObj->facingDirection);
|
return CheckPathBetweenTrainerAndPlayer(trainerObj, approachDistance, trainerObj->facingDirection);
|
||||||
}
|
}
|
||||||
else // can see in all directions
|
else // TRAINER_TYPE_SEE_ALL_DIRECTIONS, TRAINER_TYPE_BURIED
|
||||||
{
|
{
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
+6
-9
@@ -638,14 +638,11 @@ void VsSeekerResetObjectMovementAfterChargeComplete(void)
|
|||||||
|
|
||||||
for (i = 0; i < gMapHeader.events->objectEventCount; i++)
|
for (i = 0; i < gMapHeader.events->objectEventCount; i++)
|
||||||
{
|
{
|
||||||
if ((
|
if ((templates[i].objUnion.normal.trainerType == TRAINER_TYPE_NORMAL
|
||||||
templates[i].objUnion.normal.trainerType == TRAINER_TYPE_NORMAL
|
|| templates[i].objUnion.normal.trainerType == TRAINER_TYPE_BURIED)
|
||||||
|| templates[i].objUnion.normal.trainerType == TRAINER_TYPE_BURIED
|
&& (templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_VS_SEEKER_4D
|
||||||
) && (
|
|| templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_VS_SEEKER_4E
|
||||||
templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_VS_SEEKER_4D
|
|| templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_VS_SEEKER_4F))
|
||||||
|| templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_VS_SEEKER_4E
|
|
||||||
|| templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_VS_SEEKER_4F
|
|
||||||
))
|
|
||||||
{
|
{
|
||||||
movementType = GetRandomFaceDirectionMovementType();
|
movementType = GetRandomFaceDirectionMovementType();
|
||||||
TryGetObjectEventIdByLocalIdAndMap(templates[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objEventId);
|
TryGetObjectEventIdByLocalIdAndMap(templates[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objEventId);
|
||||||
@@ -808,7 +805,7 @@ static void GatherNearbyTrainerInfo(void)
|
|||||||
|
|
||||||
for (objectEventIdx = 0; objectEventIdx < gMapHeader.events->objectEventCount; objectEventIdx++)
|
for (objectEventIdx = 0; objectEventIdx < gMapHeader.events->objectEventCount; objectEventIdx++)
|
||||||
{
|
{
|
||||||
if (templates[objectEventIdx].objUnion.normal.trainerType == 1 || templates[objectEventIdx].objUnion.normal.trainerType == 3)
|
if (templates[objectEventIdx].objUnion.normal.trainerType == TRAINER_TYPE_NORMAL || templates[objectEventIdx].objUnion.normal.trainerType == TRAINER_TYPE_BURIED)
|
||||||
{
|
{
|
||||||
sVsSeeker->trainerInfo[vsSeekerObjectIdx].script = templates[objectEventIdx].script;
|
sVsSeeker->trainerInfo[vsSeekerObjectIdx].script = templates[objectEventIdx].script;
|
||||||
sVsSeeker->trainerInfo[vsSeekerObjectIdx].trainerIdx = GetTrainerFlagFromScript(templates[objectEventIdx].script);
|
sVsSeeker->trainerInfo[vsSeekerObjectIdx].trainerIdx = GetTrainerFlagFromScript(templates[objectEventIdx].script);
|
||||||
|
|||||||
@@ -182,7 +182,7 @@ static u16 GetCurrentMapWildMonHeaderId(void)
|
|||||||
for (i = 0; ; i++)
|
for (i = 0; ; i++)
|
||||||
{
|
{
|
||||||
const struct WildPokemonHeader * wildHeader = &gWildMonHeaders[i];
|
const struct WildPokemonHeader * wildHeader = &gWildMonHeaders[i];
|
||||||
if (wildHeader->mapGroup == 0xFF)
|
if (wildHeader->mapGroup == MAP_GROUP(UNDEFINED))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (gWildMonHeaders[i].mapGroup == gSaveBlock1Ptr->location.mapGroup &&
|
if (gWildMonHeaders[i].mapGroup == gSaveBlock1Ptr->location.mapGroup &&
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include "overworld.h"
|
#include "overworld.h"
|
||||||
#include "pokedex_area_markers.h"
|
#include "pokedex_area_markers.h"
|
||||||
#include "constants/region_map_sections.h"
|
#include "constants/region_map_sections.h"
|
||||||
|
#include "constants/maps.h"
|
||||||
|
|
||||||
struct SeviiDexArea
|
struct SeviiDexArea
|
||||||
{
|
{
|
||||||
@@ -181,7 +182,7 @@ s32 BuildPokedexAreaSubspriteBuffer(u16 species, struct Subsprite * subsprites)
|
|||||||
alteringCaveNum = VarGet(VAR_ALTERING_CAVE_WILD_SET);
|
alteringCaveNum = VarGet(VAR_ALTERING_CAVE_WILD_SET);
|
||||||
if (alteringCaveNum > 8)
|
if (alteringCaveNum > 8)
|
||||||
alteringCaveNum = 0;
|
alteringCaveNum = 0;
|
||||||
for (i = 0, areaCount = 0; gWildMonHeaders[i].mapGroup != 0xFF; i++)
|
for (i = 0, areaCount = 0; gWildMonHeaders[i].mapGroup != MAP_GROUP(UNDEFINED); i++)
|
||||||
{
|
{
|
||||||
mapSecId = GetMapSecIdFromWildMonHeader(&gWildMonHeaders[i]);
|
mapSecId = GetMapSecIdFromWildMonHeader(&gWildMonHeaders[i]);
|
||||||
if (mapSecId == MAPSEC_ALTERING_CAVE)
|
if (mapSecId == MAPSEC_ALTERING_CAVE)
|
||||||
|
|||||||
Reference in New Issue
Block a user