diff --git a/audio/engine.asm b/audio/engine.asm index 40e8421..b99756c 100644 --- a/audio/engine.asm +++ b/audio/engine.asm @@ -2221,9 +2221,10 @@ Music_Transpose: ret Music_StereoPanning: - ld a, [wce5f] - bit 5, a + ld a, [wOptions] + bit STEREO_F, a ret z + ; fallthrough Music_ForceStereoPanning: call SetLRTracks @@ -2619,8 +2620,8 @@ _PlayCryHeader:: and a jr z, .next - ld a, [wce5f] - bit 5, a + ld a, [wOptions] + bit STEREO_F, a jr z, .next ld hl, CHANNEL_TRACKS @@ -2688,8 +2689,8 @@ _PlaySFX:: ret PlayStereoSFX:: - ld a, [wce5f] - bit 5, a ; Stereo flag? + ld a, [wOptions] + bit STEREO_F, a jr z, _PlaySFX ld hl, wMusicID diff --git a/constants.asm b/constants.asm index 1beb2ac..1c7cb2c 100644 --- a/constants.asm +++ b/constants.asm @@ -18,6 +18,7 @@ INCLUDE "macros/battle_commands.asm" INCLUDE "macros/oam_anims.asm" INCLUDE "macros/battle_anims.asm" INCLUDE "macros/asserts.asm" +INCLUDE "macros/scripts/movement.asm" INCLUDE "constants/audio_constants.asm" INCLUDE "constants/gfx_constants.asm" @@ -62,7 +63,6 @@ INCLUDE "constants/wram_constants.asm" INCLUDE "constants/sgb_constants.asm" INCLUDE "constants/map_object_constants.asm" INCLUDE "constants/start_menu_constants.asm" -INCLUDE "constants/movement_constants.asm" INCLUDE "constants/flypoint_constants.asm" INCLUDE "constants/spawnpoint_constants.asm" diff --git a/constants/collision_constants.asm b/constants/collision_constants.asm index eebdc50..e4bdc94 100644 --- a/constants/collision_constants.asm +++ b/constants/collision_constants.asm @@ -27,10 +27,9 @@ DEF COLLISION_FLAG EQU $08 ; old collision constants -DEF OLD_COLLISION_TYPE_REGULAR EQU $00 -DEF OLD_COLLISION_TYPE_SCENERY EQU $10 -DEF OLD_COLLISION_TYPE_WATER EQU $20 -DEF OLD_COLLISION_TYPE_WATER2 EQU $40 +DEF OLD_HI_NYBBLE_TALL_GRASS EQU $10 +DEF OLD_HI_NYBBLE_WATER EQU $20 +DEF OLD_HI_NYBBLE_WATER_ALT EQU $40 DEF OLD_COLLISION_WALKABLE EQU $00 DEF OLD_COLLISION_SOLID EQU $01 @@ -56,18 +55,6 @@ DEF OLD_COLLISION_GRASS EQU $82 ; new collision constants -DEF COLLISION_TYPE_REGULAR EQU $00 -DEF COLLISION_TYPE_SCENERY EQU $10 -DEF COLLISION_TYPE_WATER EQU $20 -DEF COLLISION_TYPE_WATER2 EQU $30 -DEF COLLISION_TYPE_LAND EQU $40 -DEF COLLISION_TYPE_LAND2 EQU $50 -DEF COLLISION_TYPE_UNK EQU $60 -DEF COLLISION_TYPE_WARPS EQU $70 -DEF COLLISION_TYPE_UNKN2 EQU $80 -DEF COLLISION_TYPE_SPECIAL EQU $90 -DEF COLLISION_TYPE_JUMP EQU $A0 - DEF COLLISION_WALKABLE EQU $00 DEF COLLISION_SOLID EQU $07 DEF COLLISION_CUT_TREE EQU $12 @@ -114,6 +101,8 @@ DEF COLLISION_PC EQU $93 DEF COLLISION_RADIO EQU $94 DEF COLLISION_SIGNPOST EQU $95 DEF COLLISION_STRAIGHT_SIGNPOST EQU $97 +DEF COLLISION_COUNTER_98 EQU $98 + ; jump collisions ; perform jump in marked direction, else @@ -130,3 +119,14 @@ DEF COLLISION_JUMP_NW EQU $a7 DEF NEVER_SOLID EQU 0 DEF SOMETIMES_SOLID EQU 1 DEF ALWAYS_SOLID EQU 15 + +; collision data type nybbles +DEF LO_NYBBLE_GRASS EQU $07 +DEF HI_NYBBLE_TALL_GRASS EQU $10 +DEF HI_NYBBLE_WATER EQU $20 +DEF HI_NYBBLE_WATER_ALT EQU $30 ; HI_NYBBLE_CURRENT in final +DEF HI_NYBBLE_WALK EQU $40 +DEF HI_NYBBLE_WALK_ALT EQU $50 +DEF HI_NYBBLE_WARPS EQU $70 +DEF HI_NYBBLE_SPECIAL EQU $90 +DEF HI_NYBBLE_LEDGES EQU $a0 diff --git a/constants/map_object_constants.asm b/constants/map_object_constants.asm index 157ed38..9cc1497 100644 --- a/constants/map_object_constants.asm +++ b/constants/map_object_constants.asm @@ -13,7 +13,7 @@ DEF OBJECT_ACTION rb ; 0a DEF OBJECT_STEP_FRAME rb ; 0b DEF OBJECT_0C rb ; 0c DEF OBJECT_FACING rb ; 0d -DEF OBJECT_TILE rb ; 0e +DEF OBJECT_TILE_COLLISION rb ; 0e DEF OBJECT_LAST_TILE rb ; 0f DEF OBJECT_MAP_X rb ; 10 DEF OBJECT_MAP_Y rb ; 11 @@ -28,20 +28,119 @@ DEF OBJECT_SPRITE_Y rb ; 19 DEF OBJECT_SPRITE_X_OFFSET rb ; 1a DEF OBJECT_SPRITE_Y_OFFSET rb ; 1b DEF OBJECT_MOVEMENT_INDEX rb ; 1c -DEF OBJECT_1D rb ; 1d +DEF OBJECT_JUMPTABLE_INDEX rb ; 1d DEF OBJECT_1E rb ; 1e -DEF OBJECT_1F rb ; 1f +DEF OBJECT_JUMP_HEIGHT rb ; 1f DEF OBJECT_RANGE rb ; 20 DEF OBJECT_21 rb ; 21 rb_skip 6 DEF OBJECT_LENGTH EQU _RS DEF NUM_OBJECT_STRUCTS EQU 10 +DEF UNKNOWN_STRUCT EQU 0 DEF PLAYER_STRUCT EQU 1 DEF FOLLOWER_STRUCT EQU 2 +; object_struct OBJECT_DIRECTION values +DEF OW_DOWN EQU DOWN << 2 +DEF OW_UP EQU UP << 2 +DEF OW_LEFT EQU LEFT << 2 +DEF OW_RIGHT EQU RIGHT << 2 + +; object_struct OBJECT_FLAGS1 bit flags + const_def + shift_const INVISIBLE ; 0 + shift_const WONT_DELETE ; 1 + shift_const FIXED_FACING ; 2 + shift_const SLIDING ; 3 + shift_const COLLISION_TILES ; 4 + shift_const NOCLIP_NOT_SET ; 5 + shift_const COLLISION_OBJS ; 6 + shift_const CENTERED_OBJECT ; 7 + +; object_struct OBJECT_FLAGS2 bit flags + const_def + shift_const LOW_PRIORITY ; 0 + shift_const HIGH_PRIORITY ; 1 + shift_const BOULDER_MOVING ; 2 + shift_const OVERHEAD ; 3 + shift_const USE_OBP1 ; 4 + shift_const FROZEN ; 5 + shift_const OFF_SCREEN ; 6 + shift_const OBJ_FLAGS2_7 ; 7 + +; facing attribute bit flags + const_def + shift_const FACING_DONE ; 0 + shift_const RELATIVE_ATTRIBUTES ; 1 + +; Minor object struct rsreset -DEF CMDQUEUE_UNK0 rb 16 -DEF CMDQUEUE_ENTRY_SIZE EQU _RS +DEF MINOR_OBJECT_PARENT_OBJECT rb ; 00 +DEF MINOR_OBJECT_TYPE rb ; 01 +DEF MINOR_OBJECT_ANIM rb ; 02 +DEF MINOR_OBJECT_SPRITE_TILE rb ; 03 +DEF MINOR_OBJECT_X_POS rb ; 04 +DEF MINOR_OBJECT_Y_POS rb ; 05 +DEF MINOR_OBJECT_X_OFFSET rb ; 06 +DEF MINOR_OBJECT_Y_OFFSET rb ; 07 +DEF MINOR_OBJECT_08 rb ; 08 +DEF MINOR_OBJECT_ANIM_TIMER rb ; 09 +DEF MINOR_OBJECT_JUMPTABLE_INDEX rb ; 0a +DEF MINOR_OBJECT_TIMER rb ; 0b +DEF MINOR_OBJECT_FRAME rb ; 0c +DEF MINOR_OBJECT_VAR1 rb ; 0d +DEF MINOR_OBJECT_VAR2 rb ; 0e +DEF MINOR_OBJECT_VAR3 rb ; 0f +DEF MINOR_OBJECT_LENGTH EQU _RS +DEF NUM_MINOR_OBJECTS EQU 4 + +; MinorObject types + const_def + const MINOR_OBJECT_TYPE_NULL ; 0 + const MINOR_OBJECT_TYPE_SHADOW ; 1 + const MINOR_OBJECT_TYPE_EMOTE ; 2 + const MINOR_OBJECT_TYPE_03 ; 3 + const MINOR_OBJECT_TYPE_04 ; 4 + const MINOR_OBJECT_TYPE_BOULDER_DUST ; 5 +DEF NUM_MINOR_OBJECT_TYPES EQU const_value + +; MinorObject animations + const_def + const MINOR_OBJECT_ANIM_NULL ; 0 + const MINOR_OBJECT_ANIM_SHADOW ; 1 + const MINOR_OBJECT_ANIM_EMOTE ; 2 + const MINOR_OBJECT_ANIM_03 ; 3 + const MINOR_OBJECT_ANIM_BOULDER_DUST ; 4 +DEF NUM_MINOR_OBJECT_ANIMATIONS EQU const_value + +; MinorObjectSpriteTiles indexes + const_def + const MINOR_OBJECT_SPRITE_NULL ; 0 + const MINOR_OBJECT_SPRITE_EMOTE ; 1 + const MINOR_OBJECT_SPRITE_SHADOW ; 2 + const MINOR_OBJECT_SPRITE_BOULDER_DUST_1 ; 3 + const MINOR_OBJECT_SPRITE_BOULDER_DUST_2 ; 4 +DEF NUM_MINOR_OBJECT_SPRITES EQU const_value + +; MinorObjectGFX indexes (see _LoadMinorObjectGFX) + const_def + const MINOR_OBJECT_GFX_NULL ; 0 + const MINOR_OBJECT_GFX_SHADOW ; 1 + const MINOR_OBJECT_GFX_UNKNOWN_BOUNCING_ORB ; 2 + const MINOR_OBJECT_GFX_SHOCK_EMOTE ; 3 + const MINOR_OBJECT_GFX_QUESTION_EMOTE ; 4 + const MINOR_OBJECT_GFX_HAPPY_EMOTE ; 5 + const MINOR_OBJECT_GFX_BOULDER_DUST ; 6 + const MINOR_OBJECT_GFX_GRAMPS_STAND_1 ; 7 + const MINOR_OBJECT_GFX_GRAMPS_STAND_2 ; 8 + const MINOR_OBJECT_GFX_GRAMPS_WALK_1 ; 9 + const MINOR_OBJECT_GFX_GRAMPS_WALK_2 ; a + const MINOR_OBJECT_GFX_CLEFAIRY_STAND_1 ; b + const MINOR_OBJECT_GFX_CLEFAIRY_STAND_2 ; c + const MINOR_OBJECT_GFX_CLEFAIRY_WALK_1 ; d + const MINOR_OBJECT_GFX_CLEFAIRY_WALK_2 ; e +DEF NUM_MINOR_OBJECT_GFX_ENTRIES EQU const_value + rsreset DEF MAPOBJECT_OBJECT_STRUCT_ID rb ; 0 @@ -64,6 +163,52 @@ DEF PLAYER_OBJECT EQU 0 DEF MAPOBJECT_SCREEN_WIDTH EQU (SCREEN_WIDTH / 2) + 2 DEF MAPOBJECT_SCREEN_HEIGHT EQU (SCREEN_HEIGHT / 2) + 2 +; StepFunction_FromMovement.Pointers indexes (see engine/overworld/map_objects.asm) + const_def + const SPRITEMOVEFN_00 ; 00 + const SPRITEMOVEFN_RANDOM_WALK_XY ; 01 + const SPRITEMOVEFN_RANDOM_SPIN ; 02 + const SPRITEMOVEFN_RANDOM_WALK_Y ; 03 + const SPRITEMOVEFN_RANDOM_WALK_X ; 04 + const SPRITEMOVEFN_TURN_DOWN ; 05 + const SPRITEMOVEFN_TURN_UP ; 06 + const SPRITEMOVEFN_TURN_LEFT ; 07 + const SPRITEMOVEFN_TURN_RIGHT ; 08 + const_skip 7 ; 09-0f + const SPRITEMOVEFN_OBEY_DPAD ; 10 + const SPRITEMOVEFN_INDEXED_1 ; 11 + const SPRITEMOVEFN_INDEXED_2 ; 12 + const SPRITEMOVEFN_FOLLOW_1 ; 13 + const SPRITEMOVEFN_14 ; 14 + const SPRITEMOVEFN_15 ; 15 + const SPRITEMOVEFN_16 ; 16 + const SPRITEMOVEFN_17 ; 17, used by debug cursor + const SPRITEMOVEFN_FOLLOW_2 ; 18 + const SPRITEMOVEFN_SCRIPTED ; 19 + const SPRITEMOVEFN_1A ; 1a +DEF NUM_SPRITEMOVEFN EQU const_value + +; StepTypesJumptable indexes (see engine/overworld/map_objects.asm) + const_def + const STEP_TYPE_RESET ; 00 + const STEP_TYPE_FROM_MOVEMENT ; 01 + const STEP_TYPE_NPC_WALK ; 02 + const STEP_TYPE_SLEEP ; 03 + const STEP_TYPE_STANDING ; 04 + const STEP_TYPE_PLAYER_WALK ; 05 + const STEP_TYPE_CONTINUE_WALK ; 06 + const STEP_TYPE_OBEY_DPAD ; 07 + const STEP_TYPE_INDEXED_1 ; 08 + const STEP_TYPE_INDEXED_2 ; 09 + const STEP_TYPE_FOLLOW ; 0a + const_skip 4 ; 0b-0e + const STEP_TYPE_NPC_JUMP ; 0f + const STEP_TYPE_PLAYER_JUMP ; 10 + const STEP_TYPE_TELEPORT_FROM ; 11 + const STEP_TYPE_TELEPORT_TO ; 12 + const STEP_TYPE_13 ; 13 +DEF NUM_STEP_TYPES EQU const_value + rsreset DEF MAPOBJECTTEMPLATE_SPRITE rb 1 ; 0 DEF MAPOBJECTTEMPLATE_Y_COORD rb 1 ; 1 @@ -79,5 +224,28 @@ DEF MAPOBJECTTEMPLATE_POINTER_HI rb 1 ; a DEF MAPOBJECTTEMPLATE_EVENT_FLAG rw 1 ; b DEF MAP_OBJECT_TEMPLATE_LENGTH EQU _RS +DEF SPRITE_GFX_LIST_CAPACITY EQU 12 ; see wUsedSprites + DEF PLAYER_OBJECT_INDEX EQU 1 -DEF COMPANION_OBJECT_INDEX EQU 2 +DEF FOLLOWER_OBJECT_INDEX EQU 2 + +; ObjectActionPairPointers indexes (see engine/overworld/map_object_action.asm) + const_def + const OBJECT_ACTION_00 ; 00 + const OBJECT_ACTION_STEP ; 01 + const OBJECT_ACTION_STAND ; 02 + const OBJECT_ACTION_SPIN ; 03 +DEF NUM_OBJECT_ACTIONS EQU const_value + + +; DoPlayerMovement.DoStep arguments (see engine/overworld/player_movement.asm) + const_def + const STEP_SLOW ; 0 + const STEP_WALK ; 1 + const STEP_BIKE ; 2 + const STEP_FASTEST ; 3 + const STEP_ICE ; 4 + const STEP_TURN ; 5 + const STEP_BACK_LEDGE ; 6 + const STEP_WALK_IN_PLACE ; 7 +DEF NUM_STEPS EQU const_value diff --git a/constants/menu_constants.asm b/constants/menu_constants.asm index f2757ad..f0f3a3c 100644 --- a/constants/menu_constants.asm +++ b/constants/menu_constants.asm @@ -111,3 +111,15 @@ DEF HMENURETURN_ASM EQU %11111111 const_def 1 const SCROLLINGMENU_ITEMS_NORMAL const SCROLLINGMENU_ITEMS_QUANTITY + +; Naming types (see engine/menus/naming_screen.asm) + const_def + const NAME_MON + const NAME_PLAYER + const NAME_RIVAL + const NAME_MOM + const NAME_BOX + const NAME_5 ; duplicate of NAME_MON + const NAME_6 ; duplicate of NAME_MON + const NAME_7 ; duplicate of NAME_MON +DEF NUM_NAME_TYPES EQU const_value diff --git a/constants/movement_constants.asm b/constants/movement_constants.asm deleted file mode 100644 index ff920a0..0000000 --- a/constants/movement_constants.asm +++ /dev/null @@ -1,53 +0,0 @@ - const_def - const FACE_DOWN ; $00 - const FACE_UP ; $01 - const FACE_LEFT ; $02 - const FACE_RIGHT ; $03 - const SLOW_STEP_DOWN ; $04 - const SLOW_STEP_UP ; $05 - const SLOW_STEP_LEFT ; $06 - const SLOW_STEP_RIGHT ; $07 - const STEP_DOWN ; $08 - const STEP_UP ; $09 - const STEP_LEFT ; $0a - const STEP_RIGHT ; $0b - const FAST_STEP_DOWN ; $0c - const FAST_STEP_UP ; $0d - const FAST_STEP_LEFT ; $0e - const FAST_STEP_RIGHT ; $0f - const FAST_STEP_DOWN2 ; $10 - const FAST_STEP_UP2 ; $11 - const FAST_STEP_LEFT2 ; $12 - const FAST_STEP_RIGHT2 ; $13 - const SLOW_JUMP_DOWN ; $14 - const SLOW_JUMP_UP ; $15 - const SLOW_JUMP_LEFT ; $16 - const SLOW_JUMP_RIGHT ; $17 - const JUMP_DOWN ; $18 - const JUMP_UP ; $19 - const JUMP_LEFT ; $1a - const JUMP_RIGHT ; $1b - const FAST_JUMP_DOWN ; $1c - const FAST_JUMP_UP ; $1d - const FAST_JUMP_LEFT ; $1e - const FAST_JUMP_RIGHT ; $1f - const FAST_JUMP_DOWN2 ; $20 - const FAST_JUMP_UP2 ; $21 - const FAST_JUMP_LEFT2 ; $22 - const FAST_JUMP_RIGHT2 ; $23 - const MOVEMENT_24 ; $24 - const MOVEMENT_25 ; $25 - const MOVEMENT_26 ; $26 - const MOVEMENT_27 ; $27 - const MOVEMENT_28 ; $28 - const MOVEMENT_29 ; $29 - const NO_MOVEMENT ; $2a - const MOVEMENT_2B ; $2b - const MOVEMENT_2C ; $2c - const MOVEMENT_2D ; $2d - const MOVEMENT_2E ; $2e - const MOVEMENT_2F ; $2f - const MOVEMENT_30 ; $30 - const MOVEMENT_31 ; $31 - const MOVEMENT_32 ; $32 - const MOVEMENT_33 ; $33 diff --git a/constants/name_constants.asm b/constants/name_constants.asm index f5621b4..f91307f 100755 --- a/constants/name_constants.asm +++ b/constants/name_constants.asm @@ -1,2 +1,5 @@ ; Name Lists +DEF MON_NAME EQU 1 DEF ITEM_NAME EQU 4 +DEF PARTY_OT_NAME EQU 5 +DEF ENEMY_OT_NAME EQU 6 diff --git a/constants/pokedex_constants.asm b/constants/pokedex_constants.asm index b6595d9..31d7998 100644 --- a/constants/pokedex_constants.asm +++ b/constants/pokedex_constants.asm @@ -152,6 +152,7 @@ const DEX_DRAGONITE ; 95 const DEX_MEWTWO ; 96 const DEX_MEW ; 97 +DEF NUM_KANTO_POKEMON EQU const_value - 1 const DEX_HAPPA ; 98 CHIKORITA const DEX_HANAMOGURA ; 99 BAYLEEF const DEX_HANARYU ; 9a MEGANIUM diff --git a/constants/script_constants.asm b/constants/script_constants.asm index 477e72d..3d0198f 100755 --- a/constants/script_constants.asm +++ b/constants/script_constants.asm @@ -1,6 +1,7 @@ ; object constants -DEF PLAYER EQU 0 -DEF FOLLOWER EQU 1 +DEF PLAYER EQU 0 +DEF FOLLOWER EQU 1 +DEF MAP_VIEWER_CURSOR EQU FOLLOWER DEF STRING_BUFFER_LENGTH EQU 10 diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm index 4a3f1e4..fbfe342 100644 --- a/constants/wram_constants.asm +++ b/constants/wram_constants.asm @@ -1,15 +1,33 @@ +; wOptions DEF TEXT_DELAY_MASK EQU %111 const_def 3 - const SGB_BORDER ; 3 - const NO_TEXT_SCROLL ; 4 - const STEREO ; 5 - const BATTLE_SHIFT ; 6 - const BATTLE_SCENE ; 7 + shift_const SGB_BORDER ; 3 + shift_const NO_TEXT_SCROLL ; 4 + shift_const STEREO ; 5 + shift_const BATTLE_SHIFT ; 6 + shift_const BATTLE_SCENE ; 7 DEF TEXT_DELAY_FAST EQU %001 ; 1 DEF TEXT_DELAY_MED EQU %011 ; 3 DEF TEXT_DELAY_SLOW EQU %101 ; 5 +DEF START_MONEY EQU 3000 + +; wStateFlags +DEF SPRITE_UPDATES_DISABLED_F EQU 0 +DEF SCRIPTED_MOVEMENT_STATE_F EQU 7 + +; wSpriteFlags:: +DEF SPRITES_SKIP_WALKING_GFX_F EQU 6 +DEF SPRITES_SKIP_STANDING_GFX_F EQU 7 + +; wPlayerStepFlags:: + const_def 4 + const PLAYERSTEP_MIDAIR_F ; 4 + const PLAYERSTEP_CONTINUE_F ; 5 + const PLAYERSTEP_STOP_F ; 6 + const PLAYERSTEP_START_F ; 7 + ; wTextboxFrame:: const_def const FRAME_1 ; 0 @@ -22,6 +40,11 @@ DEF TEXT_DELAY_SLOW EQU %101 ; 5 const FRAME_8 ; 7 DEF NUM_FRAMES EQU const_value +; wTextboxFlags:: + const_def + const FAST_TEXT_DELAY_F ; 0 + const TEXT_DELAY_F ; 1 + ; wMonType:: const_def const PARTYMON ; 0 diff --git a/data/maps/objects/Baadon.asm b/data/maps/objects/Baadon.asm index f17352d..678c745 100644 --- a/data/maps/objects/Baadon.asm +++ b/data/maps/objects/Baadon.asm @@ -28,9 +28,9 @@ Baadon_MapEvents:: bg_event 6, 14, 4 def_object_events - object_event 14, 8, SPRITE_SUPER_NERD, FACE_UP, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 9, SPRITE_YOUNGSTER, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 14, SPRITE_TWIN, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 8, SPRITE_SUPER_NERD, SPRITEMOVEFN_RANDOM_WALK_XY, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 9, SPRITE_YOUNGSTER, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 14, SPRITE_TWIN, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 Baadon_Blocks:: INCBIN "maps/Baadon.blk" diff --git a/data/maps/objects/BaadonHouse1.asm b/data/maps/objects/BaadonHouse1.asm index 03cced9..24aa067 100644 --- a/data/maps/objects/BaadonHouse1.asm +++ b/data/maps/objects/BaadonHouse1.asm @@ -14,7 +14,7 @@ BaadonHouse1_MapEvents:: def_bg_events def_object_events - object_event 2, 3, SPRITE_ELDER, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 3, SPRITE_ELDER, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 BaadonHouse1_Blocks:: INCBIN "maps/BaadonHouse1.blk" diff --git a/data/maps/objects/BaadonHouse2.asm b/data/maps/objects/BaadonHouse2.asm index 0976134..37df2c7 100644 --- a/data/maps/objects/BaadonHouse2.asm +++ b/data/maps/objects/BaadonHouse2.asm @@ -14,7 +14,7 @@ BaadonHouse2_MapEvents:: def_bg_events def_object_events - object_event 7, 5, SPRITE_GRANNY, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 5, SPRITE_GRANNY, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 BaadonHouse2_Blocks:: INCBIN "maps/BaadonHouse2.blk" diff --git a/data/maps/objects/BaadonLeague1F.asm b/data/maps/objects/BaadonLeague1F.asm index 9f28576..2890efb 100644 --- a/data/maps/objects/BaadonLeague1F.asm +++ b/data/maps/objects/BaadonLeague1F.asm @@ -15,11 +15,11 @@ BaadonLeague1F_MapEvents:: def_bg_events def_object_events - object_event 2, 5, SPRITE_YOUNGSTER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 7, SPRITE_LASS, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 1, SPRITE_24, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 6, SPRITE_COOLTRAINER_F, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 7, SPRITE_LASS, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 1, SPRITE_24, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 BaadonLeague1F_Blocks:: INCBIN "maps/BaadonLeague1F.blk" diff --git a/data/maps/objects/BaadonLeague2F.asm b/data/maps/objects/BaadonLeague2F.asm index c881c53..ce409e5 100644 --- a/data/maps/objects/BaadonLeague2F.asm +++ b/data/maps/objects/BaadonLeague2F.asm @@ -13,11 +13,11 @@ BaadonLeague2F_MapEvents:: def_bg_events def_object_events - object_event 4, 1, SPRITE_YOUNGSTER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 2, SPRITE_24, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 1, SPRITE_COOLTRAINER_F, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 9, SPRITE_24, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 11, SPRITE_COOLTRAINER_F, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 2, SPRITE_24, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 1, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 9, SPRITE_24, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 11, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 BaadonLeague2F_Blocks:: INCBIN "maps/BaadonLeague2F.blk" diff --git a/data/maps/objects/BaadonMart.asm b/data/maps/objects/BaadonMart.asm index f8452cf..26f24e2 100644 --- a/data/maps/objects/BaadonMart.asm +++ b/data/maps/objects/BaadonMart.asm @@ -14,9 +14,9 @@ BaadonMart_MapEvents:: def_bg_events def_object_events - object_event 1, 3, SPRITE_CLERK, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 5, SPRITE_YOUNGSTER, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_TEACHER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 3, SPRITE_CLERK, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 5, SPRITE_YOUNGSTER, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_TEACHER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 BaadonMart_Blocks:: INCBIN "maps/BaadonMart.blk" diff --git a/data/maps/objects/BaadonPokecenter1F.asm b/data/maps/objects/BaadonPokecenter1F.asm index ded5a29..bf53c4e 100644 --- a/data/maps/objects/BaadonPokecenter1F.asm +++ b/data/maps/objects/BaadonPokecenter1F.asm @@ -15,9 +15,9 @@ BaadonPokecenter1F_MapEvents:: def_bg_events def_object_events - object_event 14, 6, SPRITE_FISHER, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_GENTLEMAN, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_POKEFAN_M, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_FISHER, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 BaadonPokecenter1F_Blocks:: INCBIN "maps/BaadonPokecenter1F.blk" diff --git a/data/maps/objects/BaadonPokecenter2F.asm b/data/maps/objects/BaadonPokecenter2F.asm index 4471b52..329cbe2 100644 --- a/data/maps/objects/BaadonPokecenter2F.asm +++ b/data/maps/objects/BaadonPokecenter2F.asm @@ -13,9 +13,9 @@ BaadonPokecenter2F_MapEvents:: def_bg_events def_object_events - object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 7, SPRITE_FISHING_GURU, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 7, SPRITE_FISHING_GURU, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 BaadonPokecenter2F_Blocks:: INCBIN "maps/BaadonPokecenter2F.blk" diff --git a/data/maps/objects/BullForest.asm b/data/maps/objects/BullForest.asm index b7aa6f2..7890c50 100644 --- a/data/maps/objects/BullForest.asm +++ b/data/maps/objects/BullForest.asm @@ -26,11 +26,11 @@ BullForest_MapEvents:: bg_event 14, 18, 3 def_object_events - object_event 21, 9, SPRITE_TWIN, SLOW_STEP_DOWN, 3, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 11, 12, SPRITE_YOUNGSTER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 7, 16, SPRITE_GRANNY, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 20, 19, SPRITE_TEACHER, FACE_UP, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 20, 29, SPRITE_BUG_CATCHER_BOY, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 21, 9, SPRITE_TWIN, SPRITEMOVEFN_RANDOM_WALK_X, 3, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 11, 12, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 16, SPRITE_GRANNY, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 20, 19, SPRITE_TEACHER, SPRITEMOVEFN_RANDOM_WALK_XY, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 20, 29, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 BullForest_Blocks:: INCBIN "maps/BullForest.blk" diff --git a/data/maps/objects/BullForestRoute1House.asm b/data/maps/objects/BullForestRoute1House.asm index 56e1c13..89ec35b 100644 --- a/data/maps/objects/BullForestRoute1House.asm +++ b/data/maps/objects/BullForestRoute1House.asm @@ -14,7 +14,7 @@ BullForestRoute1House_MapEvents:: def_bg_events def_object_events - object_event 1, 5, SPRITE_COOLTRAINER_F, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 5, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 BullForestRoute1House_Blocks:: INCBIN "maps/BullForestRoute1House.blk" diff --git a/data/maps/objects/BullHouse1.asm b/data/maps/objects/BullHouse1.asm index 1b4636a..29956ae 100644 --- a/data/maps/objects/BullHouse1.asm +++ b/data/maps/objects/BullHouse1.asm @@ -14,7 +14,7 @@ BullHouse1_MapEvents:: def_bg_events def_object_events - object_event 2, 3, SPRITE_KIKUKO, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 3, SPRITE_KIKUKO, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 BullHouse1_Blocks:: INCBIN "maps/BullHouse1.blk" diff --git a/data/maps/objects/BullHouse2.asm b/data/maps/objects/BullHouse2.asm index 6be8e42..ec3a78a 100644 --- a/data/maps/objects/BullHouse2.asm +++ b/data/maps/objects/BullHouse2.asm @@ -14,7 +14,7 @@ BullHouse2_MapEvents:: def_bg_events def_object_events - object_event 8, 4, SPRITE_GRANNY, FACE_RIGHT, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 4, SPRITE_GRANNY, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0 BullHouse2_Blocks:: INCBIN "maps/BullHouse2.blk" diff --git a/data/maps/objects/BullHouse3.asm b/data/maps/objects/BullHouse3.asm index 98e93d4..59655e8 100644 --- a/data/maps/objects/BullHouse3.asm +++ b/data/maps/objects/BullHouse3.asm @@ -14,7 +14,7 @@ BullHouse3_MapEvents:: def_bg_events def_object_events - object_event 4, 3, SPRITE_GRAMPS, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 3, SPRITE_GRAMPS, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 BullHouse3_Blocks:: INCBIN "maps/BullHouse3.blk" diff --git a/data/maps/objects/BullLeague1F.asm b/data/maps/objects/BullLeague1F.asm index 1a53389..fff93de 100644 --- a/data/maps/objects/BullLeague1F.asm +++ b/data/maps/objects/BullLeague1F.asm @@ -15,11 +15,11 @@ BullLeague1F_MapEvents:: def_bg_events def_object_events - object_event 2, 5, SPRITE_YOUNGSTER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 7, SPRITE_LASS, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 1, SPRITE_24, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 6, SPRITE_COOLTRAINER_F, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 7, SPRITE_LASS, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 1, SPRITE_24, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 BullLeague1F_Blocks:: INCBIN "maps/BullLeague1F.blk" diff --git a/data/maps/objects/BullLeague2F.asm b/data/maps/objects/BullLeague2F.asm index a3282c6..92048d9 100644 --- a/data/maps/objects/BullLeague2F.asm +++ b/data/maps/objects/BullLeague2F.asm @@ -13,11 +13,11 @@ BullLeague2F_MapEvents:: def_bg_events def_object_events - object_event 4, 4, SPRITE_LASS, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 9, SPRITE_COOLTRAINER_F, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 9, SPRITE_COOLTRAINER_F, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 11, SPRITE_COOLTRAINER_F, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 7, 11, SPRITE_COOLTRAINER_F, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 4, SPRITE_LASS, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 9, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 9, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 11, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 11, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 BullLeague2F_Blocks:: INCBIN "maps/BullLeague2F.blk" diff --git a/data/maps/objects/BullMart.asm b/data/maps/objects/BullMart.asm index bc37eae..85c3d01 100644 --- a/data/maps/objects/BullMart.asm +++ b/data/maps/objects/BullMart.asm @@ -14,9 +14,9 @@ BullMart_MapEvents:: def_bg_events def_object_events - object_event 1, 3, SPRITE_CLERK, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 5, SPRITE_FISHER, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_YOUNGSTER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 3, SPRITE_CLERK, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 5, SPRITE_FISHER, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 BullMart_Blocks:: INCBIN "maps/BullMart.blk" diff --git a/data/maps/objects/BullPokecenter1F.asm b/data/maps/objects/BullPokecenter1F.asm index 3c2396b..edae210 100644 --- a/data/maps/objects/BullPokecenter1F.asm +++ b/data/maps/objects/BullPokecenter1F.asm @@ -15,10 +15,10 @@ BullPokecenter1F_MapEvents:: def_bg_events def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_YOUNGSTER, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_24, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_GRANNY, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_YOUNGSTER, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_24, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_GRANNY, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 BullPokecenter1F_Blocks:: INCBIN "maps/BullPokecenter1F.blk" diff --git a/data/maps/objects/BullPokecenter2F.asm b/data/maps/objects/BullPokecenter2F.asm index 73d4988..0aecfab 100644 --- a/data/maps/objects/BullPokecenter2F.asm +++ b/data/maps/objects/BullPokecenter2F.asm @@ -13,9 +13,9 @@ BullPokecenter2F_MapEvents:: def_bg_events def_object_events - object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 7, SPRITE_FISHING_GURU, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 7, SPRITE_FISHING_GURU, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 BullPokecenter2F_Blocks:: INCBIN "maps/BullPokecenter2F.blk" diff --git a/data/maps/objects/Fonto.asm b/data/maps/objects/Fonto.asm index 69c1cd2..2241c5b 100644 --- a/data/maps/objects/Fonto.asm +++ b/data/maps/objects/Fonto.asm @@ -25,10 +25,10 @@ Fonto_MapEvents:: bg_event 10, 12, 5 def_object_events - object_event 2, 4, SPRITE_36, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_RHYDON, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 14, SPRITE_YOUNGSTER, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 16, 8, SPRITE_TWIN, FACE_UP, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 4, SPRITE_36, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_RHYDON, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 14, SPRITE_YOUNGSTER, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 16, 8, SPRITE_TWIN, SPRITEMOVEFN_RANDOM_WALK_XY, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 Fonto_Blocks:: INCBIN "maps/Fonto.blk" diff --git a/data/maps/objects/FontoHouse.asm b/data/maps/objects/FontoHouse.asm index 4e49ff2..43486d6 100644 --- a/data/maps/objects/FontoHouse.asm +++ b/data/maps/objects/FontoHouse.asm @@ -14,7 +14,7 @@ FontoHouse_MapEvents:: def_bg_events def_object_events - object_event 8, 4, SPRITE_GENTLEMAN, FACE_RIGHT, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 4, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0 FontoHouse_Blocks:: INCBIN "maps/FontoHouse.blk" diff --git a/data/maps/objects/FontoLab.asm b/data/maps/objects/FontoLab.asm index 30a7cac..4e4f876 100644 --- a/data/maps/objects/FontoLab.asm +++ b/data/maps/objects/FontoLab.asm @@ -14,8 +14,8 @@ FontoLab_MapEvents:: def_bg_events def_object_events - object_event 2, 2, SPRITE_SCIENTIST, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 8, 5, SPRITE_SCIENTIST, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 2, SPRITE_SCIENTIST, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 5, SPRITE_SCIENTIST, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 FontoLab_Blocks:: INCBIN "maps/FontoLab.blk" diff --git a/data/maps/objects/FontoMart.asm b/data/maps/objects/FontoMart.asm index 8e8ffe9..992256f 100644 --- a/data/maps/objects/FontoMart.asm +++ b/data/maps/objects/FontoMart.asm @@ -14,9 +14,9 @@ FontoMart_MapEvents:: def_bg_events def_object_events - object_event 1, 3, SPRITE_CLERK, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 5, SPRITE_GIRL, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_POKEFAN_M, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 3, SPRITE_CLERK, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 5, SPRITE_GIRL, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 FontoMart_Blocks:: INCBIN "maps/FontoMart.blk" diff --git a/data/maps/objects/FontoPokecenter1F.asm b/data/maps/objects/FontoPokecenter1F.asm index 67fe8f2..806dead 100644 --- a/data/maps/objects/FontoPokecenter1F.asm +++ b/data/maps/objects/FontoPokecenter1F.asm @@ -15,10 +15,10 @@ FontoPokecenter1F_MapEvents:: def_bg_events def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_GENTLEMAN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_24, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_YOUNGSTER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_24, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 FontoPokecenter1F_Blocks:: INCBIN "maps/FontoPokecenter1F.blk" diff --git a/data/maps/objects/FontoPokecenter2F.asm b/data/maps/objects/FontoPokecenter2F.asm index 5ae6d4f..f095d8c 100644 --- a/data/maps/objects/FontoPokecenter2F.asm +++ b/data/maps/objects/FontoPokecenter2F.asm @@ -13,9 +13,9 @@ FontoPokecenter2F_MapEvents:: def_bg_events def_object_events - object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 7, SPRITE_FISHING_GURU, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 7, SPRITE_FISHING_GURU, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 FontoPokecenter2F_Blocks:: INCBIN "maps/FontoPokecenter2F.blk" diff --git a/data/maps/objects/FontoRocketHouse.asm b/data/maps/objects/FontoRocketHouse.asm index 1f45e0d..8bfe39a 100644 --- a/data/maps/objects/FontoRocketHouse.asm +++ b/data/maps/objects/FontoRocketHouse.asm @@ -14,10 +14,10 @@ FontoRocketHouse_MapEvents:: def_bg_events def_object_events - object_event 5, 4, SPRITE_36, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 2, SPRITE_ROCKET_F, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 2, SPRITE_36, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 12, 2, SPRITE_PIDGEY, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 4, SPRITE_36, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 2, SPRITE_ROCKET_F, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 2, SPRITE_36, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 12, 2, SPRITE_PIDGEY, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 FontoRocketHouse_Blocks:: INCBIN "maps/FontoRocketHouse.blk" diff --git a/data/maps/objects/Haiteku.asm b/data/maps/objects/Haiteku.asm index 7195303..04ceb7c 100644 --- a/data/maps/objects/Haiteku.asm +++ b/data/maps/objects/Haiteku.asm @@ -30,11 +30,11 @@ Haiteku_MapEvents:: bg_event 24, 28, 8 def_object_events - object_event 22, 15, SPRITE_TWIN, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 23, 14, SPRITE_CLEFAIRY, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 23, 24, SPRITE_SAILOR, FACE_UP, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 26, 10, SPRITE_SAILOR, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 14, SPRITE_GENTLEMAN, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 22, 15, SPRITE_TWIN, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 23, 14, SPRITE_CLEFAIRY, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 23, 24, SPRITE_SAILOR, SPRITEMOVEFN_RANDOM_WALK_XY, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 26, 10, SPRITE_SAILOR, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 14, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 Haiteku_Blocks:: INCBIN "maps/Haiteku.blk" diff --git a/data/maps/objects/HaitekuAquarium1F.asm b/data/maps/objects/HaitekuAquarium1F.asm index ce088f3..e3564ab 100644 --- a/data/maps/objects/HaitekuAquarium1F.asm +++ b/data/maps/objects/HaitekuAquarium1F.asm @@ -15,9 +15,9 @@ HaitekuAquarium1F_MapEvents:: def_bg_events def_object_events - object_event 15, 5, SPRITE_RECEPTIONIST, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 12, 2, SPRITE_YOUNGSTER, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 5, SPRITE_LASS, FACE_UP, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 15, 5, SPRITE_RECEPTIONIST, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 12, 2, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 5, SPRITE_LASS, SPRITEMOVEFN_RANDOM_WALK_XY, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 HaitekuAquarium1F_Blocks:: INCBIN "maps/HaitekuAquarium1F.blk" diff --git a/data/maps/objects/HaitekuAquarium2F.asm b/data/maps/objects/HaitekuAquarium2F.asm index 00ebacd..f0802df 100644 --- a/data/maps/objects/HaitekuAquarium2F.asm +++ b/data/maps/objects/HaitekuAquarium2F.asm @@ -13,8 +13,8 @@ HaitekuAquarium2F_MapEvents:: def_bg_events def_object_events - object_event 7, 6, SPRITE_POKEFAN_M, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 4, SPRITE_TEACHER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 6, SPRITE_POKEFAN_M, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 4, SPRITE_TEACHER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 HaitekuAquarium2F_Blocks:: INCBIN "maps/HaitekuAquarium2F.blk" diff --git a/data/maps/objects/HaitekuHouse1.asm b/data/maps/objects/HaitekuHouse1.asm index cb1af15..4b6c152 100644 --- a/data/maps/objects/HaitekuHouse1.asm +++ b/data/maps/objects/HaitekuHouse1.asm @@ -14,7 +14,7 @@ HaitekuHouse1_MapEvents:: def_bg_events def_object_events - object_event 7, 3, SPRITE_FISHING_GURU, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 3, SPRITE_FISHING_GURU, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 HaitekuHouse1_Blocks:: INCBIN "maps/HaitekuHouse1.blk" diff --git a/data/maps/objects/HaitekuHouse2.asm b/data/maps/objects/HaitekuHouse2.asm index ed3b166..f62da98 100644 --- a/data/maps/objects/HaitekuHouse2.asm +++ b/data/maps/objects/HaitekuHouse2.asm @@ -14,7 +14,7 @@ HaitekuHouse2_MapEvents:: def_bg_events def_object_events - object_event 7, 3, SPRITE_SAILOR, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 3, SPRITE_SAILOR, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 HaitekuHouse2_Blocks:: INCBIN "maps/HaitekuHouse2.blk" diff --git a/data/maps/objects/HaitekuImposterOakHouse.asm b/data/maps/objects/HaitekuImposterOakHouse.asm index 42cd58c..08dd1cd 100644 --- a/data/maps/objects/HaitekuImposterOakHouse.asm +++ b/data/maps/objects/HaitekuImposterOakHouse.asm @@ -14,8 +14,8 @@ HaitekuImposterOakHouse_MapEvents:: def_bg_events def_object_events - object_event 7, 3, SPRITE_EVIL_OKIDO, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 2, SPRITE_POKEFAN_F, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 3, SPRITE_EVIL_OKIDO, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 2, SPRITE_POKEFAN_F, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 HaitekuImposterOakHouse_Blocks:: INCBIN "maps/HaitekuImposterOakHouse.blk" diff --git a/data/maps/objects/HaitekuLeague1F.asm b/data/maps/objects/HaitekuLeague1F.asm index 08a5e29..9ab3698 100644 --- a/data/maps/objects/HaitekuLeague1F.asm +++ b/data/maps/objects/HaitekuLeague1F.asm @@ -15,11 +15,11 @@ HaitekuLeague1F_MapEvents:: def_bg_events def_object_events - object_event 2, 5, SPRITE_YOUNGSTER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 7, SPRITE_LASS, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 1, SPRITE_24, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 6, SPRITE_COOLTRAINER_F, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 7, SPRITE_LASS, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 1, SPRITE_24, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 HaitekuLeague1F_Blocks:: INCBIN "maps/HaitekuLeague1F.blk" diff --git a/data/maps/objects/HaitekuLeague2F.asm b/data/maps/objects/HaitekuLeague2F.asm index 0e5667a..ab64d62 100644 --- a/data/maps/objects/HaitekuLeague2F.asm +++ b/data/maps/objects/HaitekuLeague2F.asm @@ -13,11 +13,11 @@ HaitekuLeague2F_MapEvents:: def_bg_events def_object_events - object_event 4, 1, SPRITE_LASS, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 6, SPRITE_24, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 8, 12, SPRITE_COOLTRAINER_F, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 10, SPRITE_24, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 7, 7, SPRITE_COOLTRAINER_F, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_LASS, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 6, SPRITE_24, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 12, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 10, SPRITE_24, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 7, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 HaitekuLeague2F_Blocks:: INCBIN "maps/HaitekuLeague2F.blk" diff --git a/data/maps/objects/HaitekuMart.asm b/data/maps/objects/HaitekuMart.asm index e08b681..ed4c9e6 100644 --- a/data/maps/objects/HaitekuMart.asm +++ b/data/maps/objects/HaitekuMart.asm @@ -14,9 +14,9 @@ HaitekuMart_MapEvents:: def_bg_events def_object_events - object_event 1, 3, SPRITE_CLERK, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 5, SPRITE_POKEFAN_M, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_SAILOR, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 3, SPRITE_CLERK, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 5, SPRITE_POKEFAN_M, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_SAILOR, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 HaitekuMart_Blocks:: INCBIN "maps/HaitekuMart.blk" diff --git a/data/maps/objects/HaitekuPokecenter1F.asm b/data/maps/objects/HaitekuPokecenter1F.asm index 1f776a7..e12c19c 100644 --- a/data/maps/objects/HaitekuPokecenter1F.asm +++ b/data/maps/objects/HaitekuPokecenter1F.asm @@ -15,10 +15,10 @@ HaitekuPokecenter1F_MapEvents:: def_bg_events def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_GENTLEMAN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_FISHER, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_SAILOR, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_FISHER, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_SAILOR, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 HaitekuPokecenter1F_Blocks:: INCBIN "maps/HaitekuPokecenter1F.blk" diff --git a/data/maps/objects/HaitekuPokecenter2F.asm b/data/maps/objects/HaitekuPokecenter2F.asm index 3b24a1d..a182feb 100644 --- a/data/maps/objects/HaitekuPokecenter2F.asm +++ b/data/maps/objects/HaitekuPokecenter2F.asm @@ -13,9 +13,9 @@ HaitekuPokecenter2F_MapEvents:: def_bg_events def_object_events - object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 7, SPRITE_FISHING_GURU, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 7, SPRITE_FISHING_GURU, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 HaitekuPokecenter2F_Blocks:: INCBIN "maps/HaitekuPokecenter2F.blk" diff --git a/data/maps/objects/KantoCeladonMart1F.asm b/data/maps/objects/KantoCeladonMart1F.asm index 6216621..d978917 100644 --- a/data/maps/objects/KantoCeladonMart1F.asm +++ b/data/maps/objects/KantoCeladonMart1F.asm @@ -16,7 +16,7 @@ KantoCeladonMart1F_MapEvents:: def_bg_events def_object_events - object_event 7, 1, SPRITE_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 1, SPRITE_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoCeladonMart1F_Blocks:: INCBIN "maps/KantoCeladonMart1F.blk" diff --git a/data/maps/objects/KantoCeladonMart2F.asm b/data/maps/objects/KantoCeladonMart2F.asm index fd1a7ba..56ad11c 100644 --- a/data/maps/objects/KantoCeladonMart2F.asm +++ b/data/maps/objects/KantoCeladonMart2F.asm @@ -15,8 +15,8 @@ KantoCeladonMart2F_MapEvents:: def_bg_events def_object_events - object_event 14, 5, SPRITE_CLERK, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 5, SPRITE_LASS, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 5, SPRITE_CLERK, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 5, SPRITE_LASS, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoCeladonMart2F_Blocks:: INCBIN "maps/KantoCeladonMart2F.blk" diff --git a/data/maps/objects/KantoCeladonMart3F.asm b/data/maps/objects/KantoCeladonMart3F.asm index 291b565..44ea64a 100644 --- a/data/maps/objects/KantoCeladonMart3F.asm +++ b/data/maps/objects/KantoCeladonMart3F.asm @@ -15,8 +15,8 @@ KantoCeladonMart3F_MapEvents:: def_bg_events def_object_events - object_event 6, 1, SPRITE_CLERK, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 5, SPRITE_GIRL, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 1, SPRITE_CLERK, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 5, SPRITE_GIRL, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoCeladonMart3F_Blocks:: INCBIN "maps/KantoCeladonMart3F.blk" diff --git a/data/maps/objects/KantoCeladonMart4F.asm b/data/maps/objects/KantoCeladonMart4F.asm index 11de06c..c365dae 100644 --- a/data/maps/objects/KantoCeladonMart4F.asm +++ b/data/maps/objects/KantoCeladonMart4F.asm @@ -15,9 +15,9 @@ KantoCeladonMart4F_MapEvents:: def_bg_events def_object_events - object_event 14, 5, SPRITE_MEDIUM, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 8, 5, SPRITE_MEDIUM, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_MEDIUM, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 5, SPRITE_MEDIUM, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 5, SPRITE_MEDIUM, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_MEDIUM, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoCeladonMart4F_Blocks:: INCBIN "maps/KantoCeladonMart4F.blk" diff --git a/data/maps/objects/KantoCeladonMart5F.asm b/data/maps/objects/KantoCeladonMart5F.asm index fd7d46f..33dca71 100644 --- a/data/maps/objects/KantoCeladonMart5F.asm +++ b/data/maps/objects/KantoCeladonMart5F.asm @@ -14,9 +14,9 @@ KantoCeladonMart5F_MapEvents:: def_bg_events def_object_events - object_event 14, 5, SPRITE_CLERK, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 8, 3, SPRITE_RHYDON, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_PIDGEY, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 5, SPRITE_CLERK, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 3, SPRITE_RHYDON, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_PIDGEY, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoCeladonMart5F_Blocks:: INCBIN "maps/KantoCeladonMart5F.blk" diff --git a/data/maps/objects/KantoCeruleanHouse.asm b/data/maps/objects/KantoCeruleanHouse.asm index 2a3735f..c800af2 100644 --- a/data/maps/objects/KantoCeruleanHouse.asm +++ b/data/maps/objects/KantoCeruleanHouse.asm @@ -14,7 +14,7 @@ KantoCeruleanHouse_MapEvents:: def_bg_events def_object_events - object_event 3, 3, SPRITE_FISHER, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 3, SPRITE_FISHER, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoCeruleanHouse_Blocks:: INCBIN "maps/KantoCeruleanHouse.blk" diff --git a/data/maps/objects/KantoEldersHouse.asm b/data/maps/objects/KantoEldersHouse.asm index 7cde195..4bd3f0d 100644 --- a/data/maps/objects/KantoEldersHouse.asm +++ b/data/maps/objects/KantoEldersHouse.asm @@ -14,8 +14,8 @@ KantoEldersHouse_MapEvents:: def_bg_events def_object_events - object_event 7, 3, SPRITE_GRAMPS, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 5, SPRITE_GRANNY, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 3, SPRITE_GRAMPS, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 5, SPRITE_GRANNY, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoEldersHouse_Blocks:: INCBIN "maps/KantoEldersHouse.blk" diff --git a/data/maps/objects/KantoFishingGuru.asm b/data/maps/objects/KantoFishingGuru.asm index 6aecf66..896204e 100644 --- a/data/maps/objects/KantoFishingGuru.asm +++ b/data/maps/objects/KantoFishingGuru.asm @@ -14,7 +14,7 @@ KantoFishingGuru_MapEvents:: def_bg_events def_object_events - object_event 4, 3, SPRITE_FISHING_GURU, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 3, SPRITE_FISHING_GURU, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoFishingGuru_Blocks:: INCBIN "maps/KantoFishingGuru.blk" diff --git a/data/maps/objects/KantoGameCorner.asm b/data/maps/objects/KantoGameCorner.asm index 4e09abe..e9b231e 100644 --- a/data/maps/objects/KantoGameCorner.asm +++ b/data/maps/objects/KantoGameCorner.asm @@ -16,16 +16,16 @@ KantoGameCorner_MapEvents:: def_bg_events def_object_events - object_event 3, 1, SPRITE_CLERK, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 6, SPRITE_POKEFAN_M, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 7, SPRITE_TWIN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 8, SPRITE_ROCKER, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 11, 6, SPRITE_GIRL, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 11, 8, SPRITE_GRAMPS, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_FISHER, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 17, 9, SPRITE_POKEFAN_M, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 13, 2, SPRITE_ROCKER, SLOW_STEP_DOWN, 3, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 1, SPRITE_CLERK, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 6, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 7, SPRITE_TWIN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 8, SPRITE_ROCKER, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 11, 6, SPRITE_GIRL, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 11, 8, SPRITE_GRAMPS, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_FISHER, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 17, 9, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 13, 2, SPRITE_ROCKER, SPRITEMOVEFN_RANDOM_WALK_X, 3, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoGameCorner_Blocks:: INCBIN "maps/KantoGameCorner.blk" diff --git a/data/maps/objects/KantoGameCornerPrizes.asm b/data/maps/objects/KantoGameCornerPrizes.asm index 7393049..d020e7a 100644 --- a/data/maps/objects/KantoGameCornerPrizes.asm +++ b/data/maps/objects/KantoGameCornerPrizes.asm @@ -14,9 +14,9 @@ KantoGameCornerPrizes_MapEvents:: def_bg_events def_object_events - object_event 2, 1, SPRITE_CLERK, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_CLERK, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 1, SPRITE_CLERK, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 1, SPRITE_CLERK, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_CLERK, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 1, SPRITE_CLERK, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoGameCornerPrizes_Blocks:: INCBIN "maps/KantoGameCornerPrizes.blk" diff --git a/data/maps/objects/KantoGamefreakHQ1.asm b/data/maps/objects/KantoGamefreakHQ1.asm index 070561b..b37e697 100644 --- a/data/maps/objects/KantoGamefreakHQ1.asm +++ b/data/maps/objects/KantoGamefreakHQ1.asm @@ -17,10 +17,10 @@ KantoGamefreakHQ1_MapEvents:: def_bg_events def_object_events - object_event 1, 5, SPRITE_GRANNY, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 5, SPRITE_RHYDON, FACE_RIGHT, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 0, 8, SPRITE_CLEFAIRY, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 7, SPRITE_PIDGEY, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 5, SPRITE_GRANNY, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 5, SPRITE_RHYDON, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 0, 8, SPRITE_CLEFAIRY, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 7, SPRITE_PIDGEY, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoGamefreakHQ1_Blocks:: INCBIN "maps/KantoGamefreakHQ1.blk" diff --git a/data/maps/objects/KantoGamefreakHQ2.asm b/data/maps/objects/KantoGamefreakHQ2.asm index ba8687a..a4478a4 100644 --- a/data/maps/objects/KantoGamefreakHQ2.asm +++ b/data/maps/objects/KantoGamefreakHQ2.asm @@ -16,7 +16,7 @@ KantoGamefreakHQ2_MapEvents:: def_bg_events def_object_events - object_event 2, 4, SPRITE_CLERK, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 4, SPRITE_CLERK, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoGamefreakHQ2_Blocks:: INCBIN "maps/KantoGamefreakHQ2.blk" diff --git a/data/maps/objects/KantoGamefreakHQ3.asm b/data/maps/objects/KantoGamefreakHQ3.asm index 4797f26..69fbc87 100644 --- a/data/maps/objects/KantoGamefreakHQ3.asm +++ b/data/maps/objects/KantoGamefreakHQ3.asm @@ -16,9 +16,9 @@ KantoGamefreakHQ3_MapEvents:: def_bg_events def_object_events - object_event 0, 5, SPRITE_GYM_GUY, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 0, 7, SPRITE_BURGLAR, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 7, SPRITE_FISHER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 0, 5, SPRITE_GYM_GUY, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 0, 7, SPRITE_BURGLAR, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 7, SPRITE_FISHER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoGamefreakHQ3_Blocks:: INCBIN "maps/KantoGamefreakHQ3.blk" diff --git a/data/maps/objects/KantoGreensHouse1F.asm b/data/maps/objects/KantoGreensHouse1F.asm index 8bd2800..1b49856 100644 --- a/data/maps/objects/KantoGreensHouse1F.asm +++ b/data/maps/objects/KantoGreensHouse1F.asm @@ -15,7 +15,7 @@ KantoGreensHouse1F_MapEvents:: def_bg_events def_object_events - object_event 5, 3, SPRITE_0F, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 3, SPRITE_0F, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoGreensHouse1F_Blocks:: INCBIN "maps/KantoGreensHouse1F.blk" diff --git a/data/maps/objects/KantoHospital.asm b/data/maps/objects/KantoHospital.asm index 7a3c871..7e95f94 100644 --- a/data/maps/objects/KantoHospital.asm +++ b/data/maps/objects/KantoHospital.asm @@ -14,9 +14,9 @@ KantoHospital_MapEvents:: def_bg_events def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 6, SPRITE_ROCKER, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 12, 6, SPRITE_GIRL, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 6, SPRITE_ROCKER, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 12, 6, SPRITE_GIRL, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoHospital_Blocks:: INCBIN "maps/KantoHospital.blk" diff --git a/data/maps/objects/KantoLavenderHouse.asm b/data/maps/objects/KantoLavenderHouse.asm index ad8ea25..acde9b5 100644 --- a/data/maps/objects/KantoLavenderHouse.asm +++ b/data/maps/objects/KantoLavenderHouse.asm @@ -14,8 +14,8 @@ KantoLavenderHouse_MapEvents:: def_bg_events def_object_events - object_event 7, 3, SPRITE_POKEFAN_M, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 5, SPRITE_POKEFAN_F, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 3, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 5, SPRITE_POKEFAN_F, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoLavenderHouse_Blocks:: INCBIN "maps/KantoLavenderHouse.blk" diff --git a/data/maps/objects/KantoLeague1F.asm b/data/maps/objects/KantoLeague1F.asm index e583d6a..f7e4e2d 100644 --- a/data/maps/objects/KantoLeague1F.asm +++ b/data/maps/objects/KantoLeague1F.asm @@ -15,11 +15,11 @@ KantoLeague1F_MapEvents:: def_bg_events def_object_events - object_event 2, 5, SPRITE_YOUNGSTER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 7, SPRITE_LASS, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 1, SPRITE_24, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 6, SPRITE_COOLTRAINER_F, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 7, SPRITE_LASS, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 1, SPRITE_24, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 KantoLeague1F_Blocks:: INCBIN "maps/KantoLeague1F.blk" diff --git a/data/maps/objects/KantoLeague21F.asm b/data/maps/objects/KantoLeague21F.asm index 01152fb..6a419be 100644 --- a/data/maps/objects/KantoLeague21F.asm +++ b/data/maps/objects/KantoLeague21F.asm @@ -15,11 +15,11 @@ KantoLeague21F_MapEvents:: def_bg_events def_object_events - object_event 2, 5, SPRITE_YOUNGSTER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 7, SPRITE_LASS, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 1, SPRITE_24, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 6, SPRITE_COOLTRAINER_F, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 7, SPRITE_LASS, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 1, SPRITE_24, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 KantoLeague21F_Blocks:: INCBIN "maps/KantoLeague21F.blk" diff --git a/data/maps/objects/KantoLeague22F.asm b/data/maps/objects/KantoLeague22F.asm index 20d0d5b..fce05aa 100644 --- a/data/maps/objects/KantoLeague22F.asm +++ b/data/maps/objects/KantoLeague22F.asm @@ -13,11 +13,11 @@ KantoLeague22F_MapEvents:: def_bg_events def_object_events - object_event 4, 7, SPRITE_POKEFAN_M, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_24, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 0, 6, SPRITE_COOLTRAINER_F, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 6, SPRITE_24, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 1, SPRITE_COOLTRAINER_F, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 7, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_24, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 0, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 6, SPRITE_24, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoLeague22F_Blocks:: INCBIN "maps/KantoLeague22F.blk" diff --git a/data/maps/objects/KantoLeague2F.asm b/data/maps/objects/KantoLeague2F.asm index fb54ef0..1e10c26 100644 --- a/data/maps/objects/KantoLeague2F.asm +++ b/data/maps/objects/KantoLeague2F.asm @@ -13,11 +13,11 @@ KantoLeague2F_MapEvents:: def_bg_events def_object_events - object_event 4, 7, SPRITE_RED, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_24, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 0, 6, SPRITE_COOLTRAINER_F, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 6, SPRITE_24, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 1, SPRITE_COOLTRAINER_F, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 7, SPRITE_RED, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_24, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 0, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 6, SPRITE_24, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoLeague2F_Blocks:: INCBIN "maps/KantoLeague2F.blk" diff --git a/data/maps/objects/KantoMart.asm b/data/maps/objects/KantoMart.asm index 82fcc26..23ee8fd 100644 --- a/data/maps/objects/KantoMart.asm +++ b/data/maps/objects/KantoMart.asm @@ -14,9 +14,9 @@ KantoMart_MapEvents:: def_bg_events def_object_events - object_event 1, 3, SPRITE_CLERK, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 5, SPRITE_TWIN, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_GRAMPS, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 3, SPRITE_CLERK, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 5, SPRITE_TWIN, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_GRAMPS, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoMart_Blocks:: INCBIN "maps/KantoMart.blk" diff --git a/data/maps/objects/KantoOaksLab.asm b/data/maps/objects/KantoOaksLab.asm index 05e927c..0755d76 100644 --- a/data/maps/objects/KantoOaksLab.asm +++ b/data/maps/objects/KantoOaksLab.asm @@ -14,7 +14,7 @@ KantoOaksLab_MapEvents:: def_bg_events def_object_events - object_event 3, 2, SPRITE_NANAMI, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 2, SPRITE_NANAMI, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoOaksLab_Blocks:: INCBIN "maps/KantoOaksLab.blk" diff --git a/data/maps/objects/KantoPokecenter1F.asm b/data/maps/objects/KantoPokecenter1F.asm index 7bc25fa..baec7c4 100644 --- a/data/maps/objects/KantoPokecenter1F.asm +++ b/data/maps/objects/KantoPokecenter1F.asm @@ -15,10 +15,10 @@ KantoPokecenter1F_MapEvents:: def_bg_events def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_YOUNGSTER, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_24, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_GRANNY, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_YOUNGSTER, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_24, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_GRANNY, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoPokecenter1F_Blocks:: INCBIN "maps/KantoPokecenter1F.blk" diff --git a/data/maps/objects/KantoPokecenter21F.asm b/data/maps/objects/KantoPokecenter21F.asm index f75c7e1..1481caf 100644 --- a/data/maps/objects/KantoPokecenter21F.asm +++ b/data/maps/objects/KantoPokecenter21F.asm @@ -15,10 +15,10 @@ KantoPokecenter21F_MapEvents:: def_bg_events def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_GENTLEMAN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_24, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_YOUNGSTER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_24, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoPokecenter21F_Blocks:: INCBIN "maps/KantoPokecenter21F.blk" diff --git a/data/maps/objects/KantoPokecenter22F.asm b/data/maps/objects/KantoPokecenter22F.asm index 57c1396..5d65cf9 100644 --- a/data/maps/objects/KantoPokecenter22F.asm +++ b/data/maps/objects/KantoPokecenter22F.asm @@ -13,9 +13,9 @@ KantoPokecenter22F_MapEvents:: def_bg_events def_object_events - object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 7, SPRITE_FISHING_GURU, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 7, SPRITE_FISHING_GURU, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoPokecenter22F_Blocks:: INCBIN "maps/KantoPokecenter22F.blk" diff --git a/data/maps/objects/KantoPokecenter2F.asm b/data/maps/objects/KantoPokecenter2F.asm index 78ee08c..d836a25 100644 --- a/data/maps/objects/KantoPokecenter2F.asm +++ b/data/maps/objects/KantoPokecenter2F.asm @@ -13,9 +13,9 @@ KantoPokecenter2F_MapEvents:: def_bg_events def_object_events - object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 7, SPRITE_FISHING_GURU, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 7, SPRITE_FISHING_GURU, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoPokecenter2F_Blocks:: INCBIN "maps/KantoPokecenter2F.blk" diff --git a/data/maps/objects/KantoRedsHouse.asm b/data/maps/objects/KantoRedsHouse.asm index b9ab05e..49375f3 100644 --- a/data/maps/objects/KantoRedsHouse.asm +++ b/data/maps/objects/KantoRedsHouse.asm @@ -14,8 +14,8 @@ KantoRedsHouse_MapEvents:: def_bg_events def_object_events - object_event 7, 3, SPRITE_SUPER_NERD, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 5, SPRITE_TEACHER, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 3, SPRITE_SUPER_NERD, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 5, SPRITE_TEACHER, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoRedsHouse_Blocks:: INCBIN "maps/KantoRedsHouse.blk" diff --git a/data/maps/objects/KantoSchool.asm b/data/maps/objects/KantoSchool.asm index ec3c000..1a6f6f1 100644 --- a/data/maps/objects/KantoSchool.asm +++ b/data/maps/objects/KantoSchool.asm @@ -14,11 +14,11 @@ KantoSchool_MapEvents:: def_bg_events def_object_events - object_event 2, 5, SPRITE_YOUNGSTER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 7, SPRITE_LASS, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 1, SPRITE_24, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 6, SPRITE_COOLTRAINER_F, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 7, SPRITE_LASS, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 1, SPRITE_24, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 KantoSchool_Blocks:: INCBIN "maps/KantoSchool.blk" diff --git a/data/maps/objects/KantoSilphCo.asm b/data/maps/objects/KantoSilphCo.asm index 65049c9..7367b9e 100644 --- a/data/maps/objects/KantoSilphCo.asm +++ b/data/maps/objects/KantoSilphCo.asm @@ -14,8 +14,8 @@ KantoSilphCo_MapEvents:: def_bg_events def_object_events - object_event 2, 2, SPRITE_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 22, 1, SPRITE_OFFICER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 2, SPRITE_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 22, 1, SPRITE_OFFICER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoSilphCo_Blocks:: INCBIN "maps/KantoSilphCo.blk" diff --git a/data/maps/objects/KantoViridianHouse.asm b/data/maps/objects/KantoViridianHouse.asm index f30f726..e77eee2 100644 --- a/data/maps/objects/KantoViridianHouse.asm +++ b/data/maps/objects/KantoViridianHouse.asm @@ -14,8 +14,8 @@ KantoViridianHouse_MapEvents:: def_bg_events def_object_events - object_event 7, 3, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 5, SPRITE_TWIN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 3, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 5, SPRITE_TWIN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 KantoViridianHouse_Blocks:: INCBIN "maps/KantoViridianHouse.blk" diff --git a/data/maps/objects/Newtype.asm b/data/maps/objects/Newtype.asm index 6d2c8bb..2f7991a 100644 --- a/data/maps/objects/Newtype.asm +++ b/data/maps/objects/Newtype.asm @@ -33,10 +33,10 @@ Newtype_MapEvents:: bg_event 30, 21, 5 def_object_events - object_event 5, 10, SPRITE_SILVER, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 24, 26, SPRITE_FISHER, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 24, 9, SPRITE_ROCKER, FACE_UP, 2, 1, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 30, SPRITE_GIRL, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 10, SPRITE_SILVER, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 24, 26, SPRITE_FISHER, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 24, 9, SPRITE_ROCKER, SPRITEMOVEFN_RANDOM_WALK_XY, 2, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 30, SPRITE_GIRL, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 Newtype_Blocks:: INCBIN "maps/Newtype.blk" diff --git a/data/maps/objects/NewtypeDiner.asm b/data/maps/objects/NewtypeDiner.asm index 6940910..7de94ea 100644 --- a/data/maps/objects/NewtypeDiner.asm +++ b/data/maps/objects/NewtypeDiner.asm @@ -14,10 +14,10 @@ NewtypeDiner_MapEvents:: def_bg_events def_object_events - object_event 2, 1, SPRITE_CLERK, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 3, SPRITE_GIRL, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 3, SPRITE_SAILOR, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 1, SPRITE_TEACHER, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 1, SPRITE_CLERK, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 3, SPRITE_GIRL, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 3, SPRITE_SAILOR, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_TEACHER, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 NewtypeDiner_Blocks:: INCBIN "maps/NewtypeDiner.blk" diff --git a/data/maps/objects/NewtypeDojo.asm b/data/maps/objects/NewtypeDojo.asm index 4969564..fffb5ad 100644 --- a/data/maps/objects/NewtypeDojo.asm +++ b/data/maps/objects/NewtypeDojo.asm @@ -14,11 +14,11 @@ NewtypeDojo_MapEvents:: def_bg_events def_object_events - object_event 3, 2, SPRITE_BLACKBELT, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 6, SPRITE_BLACKBELT, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 6, SPRITE_BLACKBELT, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 10, SPRITE_BLACKBELT, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 10, SPRITE_BLACKBELT, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 2, SPRITE_BLACKBELT, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 6, SPRITE_BLACKBELT, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 6, SPRITE_BLACKBELT, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 10, SPRITE_BLACKBELT, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 10, SPRITE_BLACKBELT, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 NewtypeDojo_Blocks:: INCBIN "maps/NewtypeDojo.blk" diff --git a/data/maps/objects/NewtypeHouse1.asm b/data/maps/objects/NewtypeHouse1.asm index 3465429..9c11eb9 100644 --- a/data/maps/objects/NewtypeHouse1.asm +++ b/data/maps/objects/NewtypeHouse1.asm @@ -14,7 +14,7 @@ NewtypeHouse1_MapEvents:: def_bg_events def_object_events - object_event 7, 3, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 3, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 NewtypeHouse1_Blocks:: INCBIN "maps/NewtypeHouse1.blk" diff --git a/data/maps/objects/NewtypeHouse2.asm b/data/maps/objects/NewtypeHouse2.asm index b7af1b1..5c7abc4 100644 --- a/data/maps/objects/NewtypeHouse2.asm +++ b/data/maps/objects/NewtypeHouse2.asm @@ -14,7 +14,7 @@ NewtypeHouse2_MapEvents:: def_bg_events def_object_events - object_event 4, 3, SPRITE_GENTLEMAN, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 3, SPRITE_GENTLEMAN, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 NewtypeHouse2_Blocks:: INCBIN "maps/NewtypeHouse2.blk" diff --git a/data/maps/objects/NewtypeHouse3.asm b/data/maps/objects/NewtypeHouse3.asm index 5ddfc28..71e1d60 100644 --- a/data/maps/objects/NewtypeHouse3.asm +++ b/data/maps/objects/NewtypeHouse3.asm @@ -14,7 +14,7 @@ NewtypeHouse3_MapEvents:: def_bg_events def_object_events - object_event 4, 3, SPRITE_GRAMPS, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 3, SPRITE_GRAMPS, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 NewtypeHouse3_Blocks:: INCBIN "maps/NewtypeHouse3.blk" diff --git a/data/maps/objects/NewtypeLeague1F.asm b/data/maps/objects/NewtypeLeague1F.asm index f9ece9d..f63645c 100644 --- a/data/maps/objects/NewtypeLeague1F.asm +++ b/data/maps/objects/NewtypeLeague1F.asm @@ -15,11 +15,11 @@ NewtypeLeague1F_MapEvents:: def_bg_events def_object_events - object_event 2, 5, SPRITE_YOUNGSTER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 7, SPRITE_LASS, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 1, SPRITE_24, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 6, SPRITE_COOLTRAINER_F, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 7, SPRITE_LASS, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 1, SPRITE_24, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 NewtypeLeague1F_Blocks:: INCBIN "maps/NewtypeLeague1F.blk" diff --git a/data/maps/objects/NewtypeLeague2F.asm b/data/maps/objects/NewtypeLeague2F.asm index b47b767..6179dac 100644 --- a/data/maps/objects/NewtypeLeague2F.asm +++ b/data/maps/objects/NewtypeLeague2F.asm @@ -13,11 +13,11 @@ NewtypeLeague2F_MapEvents:: def_bg_events def_object_events - object_event 5, 5, SPRITE_YOUNGSTER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 0, 0, SPRITE_24, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 0, SPRITE_COOLTRAINER_F, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 0, 11, SPRITE_24, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 11, SPRITE_COOLTRAINER_F, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 5, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 0, 0, SPRITE_24, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 0, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 0, 11, SPRITE_24, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 11, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 NewtypeLeague2F_Blocks:: INCBIN "maps/NewtypeLeague2F.blk" diff --git a/data/maps/objects/NewtypeMart.asm b/data/maps/objects/NewtypeMart.asm index f1276e4..c08e38c 100644 --- a/data/maps/objects/NewtypeMart.asm +++ b/data/maps/objects/NewtypeMart.asm @@ -14,9 +14,9 @@ NewtypeMart_MapEvents:: def_bg_events def_object_events - object_event 1, 3, SPRITE_CLERK, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 5, SPRITE_POKEFAN_F, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_POKEFAN_M, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 3, SPRITE_CLERK, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 5, SPRITE_POKEFAN_F, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 NewtypeMart_Blocks:: INCBIN "maps/NewtypeMart.blk" diff --git a/data/maps/objects/NewtypePokecenter1F.asm b/data/maps/objects/NewtypePokecenter1F.asm index 7eb0c9d..7a7a792 100644 --- a/data/maps/objects/NewtypePokecenter1F.asm +++ b/data/maps/objects/NewtypePokecenter1F.asm @@ -15,10 +15,10 @@ NewtypePokecenter1F_MapEvents:: def_bg_events def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_GENTLEMAN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_COOLTRAINER_F, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_LASS, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_LASS, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 NewtypePokecenter1F_Blocks:: INCBIN "maps/NewtypePokecenter1F.blk" diff --git a/data/maps/objects/NewtypePokecenter2F.asm b/data/maps/objects/NewtypePokecenter2F.asm index 94d7953..20c5cd3 100644 --- a/data/maps/objects/NewtypePokecenter2F.asm +++ b/data/maps/objects/NewtypePokecenter2F.asm @@ -13,9 +13,9 @@ NewtypePokecenter2F_MapEvents:: def_bg_events def_object_events - object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 7, SPRITE_FISHING_GURU, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 7, SPRITE_FISHING_GURU, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 NewtypePokecenter2F_Blocks:: INCBIN "maps/NewtypePokecenter2F.blk" diff --git a/data/maps/objects/NewtypeSailorHouse.asm b/data/maps/objects/NewtypeSailorHouse.asm index 150c85f..0137506 100644 --- a/data/maps/objects/NewtypeSailorHouse.asm +++ b/data/maps/objects/NewtypeSailorHouse.asm @@ -14,7 +14,7 @@ NewtypeSailorHouse_MapEvents:: def_bg_events def_object_events - object_event 6, 3, SPRITE_47, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 3, SPRITE_47, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 NewtypeSailorHouse_Blocks:: INCBIN "maps/NewtypeSailorHouse.blk" diff --git a/data/maps/objects/North.asm b/data/maps/objects/North.asm index f4aa424..46f13c6 100644 --- a/data/maps/objects/North.asm +++ b/data/maps/objects/North.asm @@ -21,9 +21,9 @@ North_MapEvents:: bg_event 8, 12, 4 def_object_events - object_event 9, 6, SPRITE_GRANNY, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 9, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 9, SPRITE_TWIN, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 6, SPRITE_GRANNY, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 9, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 9, SPRITE_TWIN, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 North_Blocks:: INCBIN "maps/North.blk" diff --git a/data/maps/objects/NorthHouse1.asm b/data/maps/objects/NorthHouse1.asm index ca1ac90..a69ca7b 100644 --- a/data/maps/objects/NorthHouse1.asm +++ b/data/maps/objects/NorthHouse1.asm @@ -14,7 +14,7 @@ NorthHouse1_MapEvents:: def_bg_events def_object_events - object_event 2, 3, SPRITE_TWIN, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 3, SPRITE_TWIN, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 NorthHouse1_Blocks:: INCBIN "maps/NorthHouse1.blk" diff --git a/data/maps/objects/NorthHouse2.asm b/data/maps/objects/NorthHouse2.asm index 5703871..16e3d5e 100644 --- a/data/maps/objects/NorthHouse2.asm +++ b/data/maps/objects/NorthHouse2.asm @@ -14,7 +14,7 @@ NorthHouse2_MapEvents:: def_bg_events def_object_events - object_event 2, 3, SPRITE_TWIN, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 3, SPRITE_TWIN, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 NorthHouse2_Blocks:: INCBIN "maps/NorthHouse2.blk" diff --git a/data/maps/objects/NorthMart.asm b/data/maps/objects/NorthMart.asm index e0fc425..1b7afbe 100644 --- a/data/maps/objects/NorthMart.asm +++ b/data/maps/objects/NorthMart.asm @@ -14,9 +14,9 @@ NorthMart_MapEvents:: def_bg_events def_object_events - object_event 1, 3, SPRITE_CLERK, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 5, SPRITE_GIRL, FACE_RIGHT, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_POKEFAN_M, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 3, SPRITE_CLERK, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 5, SPRITE_GIRL, SPRITEMOVEFN_RANDOM_WALK_Y, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 NorthMart_Blocks:: INCBIN "maps/NorthMart.blk" diff --git a/data/maps/objects/NorthPokecenter1F.asm b/data/maps/objects/NorthPokecenter1F.asm index ec9efa4..91fb0af 100644 --- a/data/maps/objects/NorthPokecenter1F.asm +++ b/data/maps/objects/NorthPokecenter1F.asm @@ -15,10 +15,10 @@ NorthPokecenter1F_MapEvents:: def_bg_events def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_GENTLEMAN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_24, FACE_RIGHT, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_YOUNGSTER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_24, SPRITEMOVEFN_RANDOM_WALK_Y, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 NorthPokecenter1F_Blocks:: INCBIN "maps/NorthPokecenter1F.blk" diff --git a/data/maps/objects/NorthPokecenter2F.asm b/data/maps/objects/NorthPokecenter2F.asm index 22bf2b2..e7f146b 100644 --- a/data/maps/objects/NorthPokecenter2F.asm +++ b/data/maps/objects/NorthPokecenter2F.asm @@ -13,9 +13,9 @@ NorthPokecenter2F_MapEvents:: def_bg_events def_object_events - object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 7, SPRITE_FISHING_GURU, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 7, SPRITE_FISHING_GURU, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 NorthPokecenter2F_Blocks:: INCBIN "maps/NorthPokecenter2F.blk" diff --git a/data/maps/objects/OldCity.asm b/data/maps/objects/OldCity.asm index ac0e513..a3ce59a 100644 --- a/data/maps/objects/OldCity.asm +++ b/data/maps/objects/OldCity.asm @@ -40,11 +40,11 @@ OldCity_MapEvents:: bg_event 5, 14, 11 def_object_events - object_event 8, 30, SPRITE_TWIN, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 20, SPRITE_SUPER_NERD, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 26, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 21, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 17, 19, SPRITE_POKE_BALL, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 30, SPRITE_TWIN, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 20, SPRITE_SUPER_NERD, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 26, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 21, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 17, 19, SPRITE_POKE_BALL, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 OldCity_Blocks:: INCBIN "maps/OldCity.blk" diff --git a/data/maps/objects/OldCityBillsHouse.asm b/data/maps/objects/OldCityBillsHouse.asm index c39136d..1fee645 100644 --- a/data/maps/objects/OldCityBillsHouse.asm +++ b/data/maps/objects/OldCityBillsHouse.asm @@ -20,7 +20,7 @@ OldCityBillsHouse_MapEvents:: bg_event 1, 1, 6 def_object_events - object_event 5, 4, SPRITE_MASAKI, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 4, SPRITE_MASAKI, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 OldCityBillsHouse_Blocks:: INCBIN "maps/OldCityBillsHouse.blk" diff --git a/data/maps/objects/OldCityGym.asm b/data/maps/objects/OldCityGym.asm index 77b19a2..bf722e4 100644 --- a/data/maps/objects/OldCityGym.asm +++ b/data/maps/objects/OldCityGym.asm @@ -16,12 +16,12 @@ OldCityGym_MapEvents:: bg_event 6, 15, 1 def_object_events - object_event 4, 5, SPRITE_HAYATO, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 8, 9, SPRITE_YOUNGSTER, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0 - object_event 8, 1, SPRITE_LASS, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0 - object_event 1, 1, SPRITE_SUPER_NERD, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0 - object_event 1, 9, SPRITE_YOUNGSTER, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0 - object_event 7, 15, SPRITE_GYM_GUY, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0 + object_event 4, 5, SPRITE_HAYATO, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 9, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0 + object_event 8, 1, SPRITE_LASS, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0 + object_event 1, 1, SPRITE_SUPER_NERD, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0 + object_event 1, 9, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0 + object_event 7, 15, SPRITE_GYM_GUY, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0 OldCityGym_Blocks:: INCBIN "maps/OldCityGym.blk" diff --git a/data/maps/objects/OldCityHouse.asm b/data/maps/objects/OldCityHouse.asm index 83aeaa9..53e5420 100644 --- a/data/maps/objects/OldCityHouse.asm +++ b/data/maps/objects/OldCityHouse.asm @@ -18,9 +18,9 @@ OldCityHouse_MapEvents:: bg_event 7, 1, 4 def_object_events - object_event 2, 3, SPRITE_POKEFAN_M, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 0, 6, SPRITE_LASS, FACE_RIGHT, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 1, SPRITE_YOUNGSTER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 3, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 0, 6, SPRITE_LASS, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 OldCityHouse_Blocks:: INCBIN "maps/OldCityHouse.blk" diff --git a/data/maps/objects/OldCityKurtsHouse.asm b/data/maps/objects/OldCityKurtsHouse.asm index 9a679ca..4c19e47 100644 --- a/data/maps/objects/OldCityKurtsHouse.asm +++ b/data/maps/objects/OldCityKurtsHouse.asm @@ -19,7 +19,7 @@ OldCityKurtsHouse_MapEvents:: bg_event 15, 0, 4 def_object_events - object_event 2, 2, SPRITE_GANTETSU, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 2, SPRITE_GANTETSU, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 OldCityKurtsHouse_Blocks:: INCBIN "maps/OldCityKurtsHouse.blk" diff --git a/data/maps/objects/OldCityMart.asm b/data/maps/objects/OldCityMart.asm index a3e880f..2933c5f 100644 --- a/data/maps/objects/OldCityMart.asm +++ b/data/maps/objects/OldCityMart.asm @@ -15,9 +15,9 @@ OldCityMart_MapEvents:: bg_event 0, 7, 1 def_object_events - object_event 1, 3, SPRITE_CLERK, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 5, SPRITE_YOUNGSTER, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_24, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 3, SPRITE_CLERK, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 5, SPRITE_YOUNGSTER, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_24, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 OldCityMart_Blocks:: INCBIN "maps/OldCityMart.blk" diff --git a/data/maps/objects/OldCityMuseum.asm b/data/maps/objects/OldCityMuseum.asm index 494dfeb..b5ac6ae 100644 --- a/data/maps/objects/OldCityMuseum.asm +++ b/data/maps/objects/OldCityMuseum.asm @@ -18,8 +18,8 @@ OldCityMuseum_MapEvents:: bg_event 13, 4, 4 def_object_events - object_event 1, 5, SPRITE_FISHER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 13, 4, SPRITE_EGG, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 5, SPRITE_FISHER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 13, 4, SPRITE_EGG, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 OldCityMuseum_Blocks:: INCBIN "maps/OldCityMuseum.blk" diff --git a/data/maps/objects/OldCityPokecenter1F.asm b/data/maps/objects/OldCityPokecenter1F.asm index deaff19..83e9943 100644 --- a/data/maps/objects/OldCityPokecenter1F.asm +++ b/data/maps/objects/OldCityPokecenter1F.asm @@ -16,10 +16,10 @@ OldCityPokecenter1F_MapEvents:: bg_event 13, 1, 1 def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_GENTLEMAN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_YOUNGSTER, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_35, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_YOUNGSTER, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_35, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 OldCityPokecenter1F_Blocks:: INCBIN "maps/OldCityPokecenter1F.blk" diff --git a/data/maps/objects/OldCityPokecenter2F.asm b/data/maps/objects/OldCityPokecenter2F.asm index e32eb35..698b081 100644 --- a/data/maps/objects/OldCityPokecenter2F.asm +++ b/data/maps/objects/OldCityPokecenter2F.asm @@ -17,10 +17,10 @@ OldCityPokecenter2F_MapEvents:: bg_event 1, 1, 1 def_object_events - object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 3, SPRITE_GRAMPS, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 13, 3, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 3, SPRITE_GRAMPS, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 13, 3, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 OldCityPokecenter2F_Blocks:: INCBIN "maps/OldCityPokecenter2F.blk" diff --git a/data/maps/objects/OldCityPokecenterBattle.asm b/data/maps/objects/OldCityPokecenterBattle.asm index 452bc3c..b6b9bb9 100644 --- a/data/maps/objects/OldCityPokecenterBattle.asm +++ b/data/maps/objects/OldCityPokecenterBattle.asm @@ -14,7 +14,7 @@ OldCityPokecenterBattle_MapEvents:: def_bg_events def_object_events - object_event 3, 3, SPRITE_GOLD, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 3, SPRITE_GOLD, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 OldCityPokecenterBattle_Blocks:: INCBIN "maps/OldCityPokecenterBattle.blk" diff --git a/data/maps/objects/OldCityPokecenterTimeMachine.asm b/data/maps/objects/OldCityPokecenterTimeMachine.asm index bebb729..c373274 100644 --- a/data/maps/objects/OldCityPokecenterTimeMachine.asm +++ b/data/maps/objects/OldCityPokecenterTimeMachine.asm @@ -15,7 +15,7 @@ OldCityPokecenterTimeMachine_MapEvents:: bg_event 15, 3, 1 def_object_events - object_event 13, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 13, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 OldCityPokecenterTimeMachine_Blocks:: INCBIN "maps/OldCityPokecenterTimeMachine.blk" diff --git a/data/maps/objects/OldCityPokecenterTrade.asm b/data/maps/objects/OldCityPokecenterTrade.asm index 9f73384..818a995 100644 --- a/data/maps/objects/OldCityPokecenterTrade.asm +++ b/data/maps/objects/OldCityPokecenterTrade.asm @@ -14,7 +14,7 @@ OldCityPokecenterTrade_MapEvents:: def_bg_events def_object_events - object_event 3, 3, SPRITE_GOLD, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 3, SPRITE_GOLD, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 OldCityPokecenterTrade_Blocks:: INCBIN "maps/OldCityPokecenterTrade.blk" diff --git a/data/maps/objects/OldCitySchool.asm b/data/maps/objects/OldCitySchool.asm index 1bd8c0a..fba5a96 100644 --- a/data/maps/objects/OldCitySchool.asm +++ b/data/maps/objects/OldCitySchool.asm @@ -18,12 +18,12 @@ OldCitySchool_MapEvents:: bg_event 4, 0, 2 def_object_events - object_event 2, 5, SPRITE_GIRL, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 7, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 9, SPRITE_24, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 1, SPRITE_ROCKER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 6, SPRITE_TEACHER, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 11, SPRITE_YOUNGSTER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_GIRL, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 7, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 9, SPRITE_24, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 1, SPRITE_ROCKER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 6, SPRITE_TEACHER, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 11, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 OldCitySchool_Blocks:: INCBIN "maps/OldCitySchool.blk" diff --git a/data/maps/objects/OldCityTower1F.asm b/data/maps/objects/OldCityTower1F.asm index 397abae..ea25f86 100644 --- a/data/maps/objects/OldCityTower1F.asm +++ b/data/maps/objects/OldCityTower1F.asm @@ -18,10 +18,10 @@ OldCityTower1F_MapEvents:: bg_event 4, 1, 3 def_object_events - object_event 0, 2, SPRITE_SAGE, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 3, 0, 0 - object_event 1, 5, SPRITE_SAGE, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 - object_event 5, 1, SPRITE_SAGE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 - object_event 6, 4, SPRITE_SAGE, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 4, 0, 0 + object_event 0, 2, SPRITE_SAGE, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 3, 0, 0 + object_event 1, 5, SPRITE_SAGE, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 + object_event 5, 1, SPRITE_SAGE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 + object_event 6, 4, SPRITE_SAGE, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 4, 0, 0 OldCityTower1F_Blocks:: INCBIN "maps/OldCityTower1F.blk" diff --git a/data/maps/objects/OldCityTower2F.asm b/data/maps/objects/OldCityTower2F.asm index 8c0c3fa..92f5fed 100644 --- a/data/maps/objects/OldCityTower2F.asm +++ b/data/maps/objects/OldCityTower2F.asm @@ -16,10 +16,10 @@ OldCityTower2F_MapEvents:: bg_event 4, 1, 2 def_object_events - object_event 2, 3, SPRITE_MEDIUM, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 - object_event 5, 3, SPRITE_MEDIUM, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 - object_event 2, 6, SPRITE_MEDIUM, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 - object_event 5, 6, SPRITE_MEDIUM, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 + object_event 2, 3, SPRITE_MEDIUM, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 + object_event 5, 3, SPRITE_MEDIUM, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 + object_event 2, 6, SPRITE_MEDIUM, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 + object_event 5, 6, SPRITE_MEDIUM, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 OldCityTower2F_Blocks:: INCBIN "maps/OldCityTower2F.blk" diff --git a/data/maps/objects/OldCityTower3F.asm b/data/maps/objects/OldCityTower3F.asm index 09117b3..949a8e8 100644 --- a/data/maps/objects/OldCityTower3F.asm +++ b/data/maps/objects/OldCityTower3F.asm @@ -16,10 +16,10 @@ OldCityTower3F_MapEvents:: bg_event 4, 1, 2 def_object_events - object_event 2, 3, SPRITE_SAGE, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 - object_event 3, 4, SPRITE_SAGE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 3, 0, 0 - object_event 4, 4, SPRITE_SAGE, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 - object_event 5, 5, SPRITE_SAGE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 + object_event 2, 3, SPRITE_SAGE, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 + object_event 3, 4, SPRITE_SAGE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 3, 0, 0 + object_event 4, 4, SPRITE_SAGE, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 + object_event 5, 5, SPRITE_SAGE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 OldCityTower3F_Blocks:: INCBIN "maps/OldCityTower3F.blk" diff --git a/data/maps/objects/OldCityTower4F.asm b/data/maps/objects/OldCityTower4F.asm index 69d9950..acd7dba 100644 --- a/data/maps/objects/OldCityTower4F.asm +++ b/data/maps/objects/OldCityTower4F.asm @@ -16,10 +16,10 @@ OldCityTower4F_MapEvents:: bg_event 4, 1, 2 def_object_events - object_event 3, 2, SPRITE_SAGE, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 3, 0, 0 - object_event 4, 7, SPRITE_SAGE, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 5, 0, 0 - object_event 6, 7, SPRITE_SAGE, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 5, 0, 0 - object_event 7, 1, SPRITE_SAGE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 4, 0, 0 + object_event 3, 2, SPRITE_SAGE, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 3, 0, 0 + object_event 4, 7, SPRITE_SAGE, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 5, 0, 0 + object_event 6, 7, SPRITE_SAGE, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 5, 0, 0 + object_event 7, 1, SPRITE_SAGE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 4, 0, 0 OldCityTower4F_Blocks:: INCBIN "maps/OldCityTower4F.blk" diff --git a/data/maps/objects/OldCityTower5F.asm b/data/maps/objects/OldCityTower5F.asm index 21da9c3..5784cc1 100644 --- a/data/maps/objects/OldCityTower5F.asm +++ b/data/maps/objects/OldCityTower5F.asm @@ -16,7 +16,7 @@ OldCityTower5F_MapEvents:: bg_event 4, 1, 3 def_object_events - object_event 2, 3, SPRITE_SAGE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 3, SPRITE_SAGE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 OldCityTower5F_Blocks:: INCBIN "maps/OldCityTower5F.blk" diff --git a/data/maps/objects/PlayerHouse1F.asm b/data/maps/objects/PlayerHouse1F.asm index bb2e245..ec5f0ab 100644 --- a/data/maps/objects/PlayerHouse1F.asm +++ b/data/maps/objects/PlayerHouse1F.asm @@ -20,7 +20,7 @@ PlayerHouse1F_MapEvents:: bg_event 5, 1, 5 def_object_events - object_event 7, 3, SPRITE_MOM, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 3, SPRITE_MOM, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 PlayerHouse1F_Blocks:: INCBIN "maps/PlayerHouse1F.blk" diff --git a/data/maps/objects/PlayerHouse2F.asm b/data/maps/objects/PlayerHouse2F.asm index 84c9ffb..dae537f 100644 --- a/data/maps/objects/PlayerHouse2F.asm +++ b/data/maps/objects/PlayerHouse2F.asm @@ -18,8 +18,8 @@ PlayerHouse2F_MapEvents:: bg_event 7, 2, 5 def_object_events - object_event 8, 1, SPRITE_ROCKER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 1, SPRITE_CLEFAIRY, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 1, SPRITE_ROCKER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 1, SPRITE_CLEFAIRY, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 PlayerHouse2F_Blocks:: INCBIN "maps/PlayerHouse2F.blk" diff --git a/data/maps/objects/Route15Pokecenter1F.asm b/data/maps/objects/Route15Pokecenter1F.asm index 2f48fb0..d996725 100644 --- a/data/maps/objects/Route15Pokecenter1F.asm +++ b/data/maps/objects/Route15Pokecenter1F.asm @@ -15,10 +15,10 @@ Route15Pokecenter1F_MapEvents:: def_bg_events def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_GENTLEMAN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_COOLTRAINER_F, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_LASS, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_LASS, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 Route15Pokecenter1F_Blocks:: INCBIN "maps/Route15Pokecenter1F.blk" diff --git a/data/maps/objects/Route18Pokecenter1F.asm b/data/maps/objects/Route18Pokecenter1F.asm index 584b751..ba1fa8f 100644 --- a/data/maps/objects/Route18Pokecenter1F.asm +++ b/data/maps/objects/Route18Pokecenter1F.asm @@ -15,10 +15,10 @@ Route18Pokecenter1F_MapEvents:: def_bg_events def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_GENTLEMAN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_COOLTRAINER_F, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_LASS, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_LASS, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 Route18Pokecenter1F_Blocks:: INCBIN "maps/Route18Pokecenter1F.blk" diff --git a/data/maps/objects/Route1Gate1F.asm b/data/maps/objects/Route1Gate1F.asm index 3d4afc9..cbc7218 100644 --- a/data/maps/objects/Route1Gate1F.asm +++ b/data/maps/objects/Route1Gate1F.asm @@ -17,8 +17,8 @@ Route1Gate1F_MapEvents:: def_bg_events def_object_events - object_event 6, 1, SPRITE_YOUNGSTER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 6, SPRITE_COOLTRAINER_F, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 1, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 Route1Gate1F_Blocks:: INCBIN "maps/Route1Gate1F.blk" diff --git a/data/maps/objects/Route1Gate2F.asm b/data/maps/objects/Route1Gate2F.asm index da89d52..d8c64c9 100644 --- a/data/maps/objects/Route1Gate2F.asm +++ b/data/maps/objects/Route1Gate2F.asm @@ -15,8 +15,8 @@ Route1Gate2F_MapEvents:: bg_event 3, 0, 2 def_object_events - object_event 3, 3, SPRITE_LASS, FACE_UP, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 4, SPRITE_TWIN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 3, SPRITE_LASS, SPRITEMOVEFN_RANDOM_WALK_XY, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 4, SPRITE_TWIN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 Route1Gate2F_Blocks:: INCBIN "maps/Route1Gate2F.blk" diff --git a/data/maps/objects/Route1P1.asm b/data/maps/objects/Route1P1.asm index 25d46c7..a757da2 100644 --- a/data/maps/objects/Route1P1.asm +++ b/data/maps/objects/Route1P1.asm @@ -18,8 +18,8 @@ Route1P1_MapEvents:: bg_event 20, 8, 2 def_object_events - object_event 20, 5, SPRITE_SUPER_NERD, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 18, 12, SPRITE_YOUNGSTER, FACE_UP, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 20, 5, SPRITE_SUPER_NERD, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 18, 12, SPRITE_YOUNGSTER, SPRITEMOVEFN_RANDOM_WALK_XY, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 Route1P1_Blocks:: INCBIN "maps/Route1P1.blk" diff --git a/data/maps/objects/Route1P2.asm b/data/maps/objects/Route1P2.asm index 1949ed9..7cab0ae 100644 --- a/data/maps/objects/Route1P2.asm +++ b/data/maps/objects/Route1P2.asm @@ -19,8 +19,8 @@ Route1P2_MapEvents:: bg_event 10, 20, 1 def_object_events - object_event 8, 6, SPRITE_SILVER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 7, 15, SPRITE_TEACHER, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 3, 0, 0 + object_event 8, 6, SPRITE_SILVER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 15, SPRITE_TEACHER, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 3, 0, 0 Route1P2_Blocks:: INCBIN "maps/Route1P2.blk" diff --git a/data/maps/objects/Route2.asm b/data/maps/objects/Route2.asm index be556b7..265321d 100644 --- a/data/maps/objects/Route2.asm +++ b/data/maps/objects/Route2.asm @@ -19,9 +19,9 @@ Route2_MapEvents:: bg_event 24, 10, 2 def_object_events - object_event 19, 11, SPRITE_YOUNGSTER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 5, 0, 0 - object_event 15, 7, SPRITE_YOUNGSTER, FACE_UP, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 8, SPRITE_YOUNGSTER, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 3, 0, 0 + object_event 19, 11, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 5, 0, 0 + object_event 15, 7, SPRITE_YOUNGSTER, SPRITEMOVEFN_RANDOM_WALK_XY, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 8, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 3, 0, 0 Route2_Blocks:: INCBIN "maps/Route2.blk" diff --git a/data/maps/objects/Route2Gate1F.asm b/data/maps/objects/Route2Gate1F.asm index 8719634..d61685f 100644 --- a/data/maps/objects/Route2Gate1F.asm +++ b/data/maps/objects/Route2Gate1F.asm @@ -17,8 +17,8 @@ Route2Gate1F_MapEvents:: def_bg_events def_object_events - object_event 8, 3, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 0, 1, SPRITE_YOUNGSTER, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 3, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 0, 1, SPRITE_YOUNGSTER, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 Route2Gate1F_Blocks:: INCBIN "maps/Route2Gate1F.blk" diff --git a/data/maps/objects/Route2Gate2F.asm b/data/maps/objects/Route2Gate2F.asm index d7acb82..be34017 100644 --- a/data/maps/objects/Route2Gate2F.asm +++ b/data/maps/objects/Route2Gate2F.asm @@ -15,8 +15,8 @@ Route2Gate2F_MapEvents:: bg_event 3, 0, 2 def_object_events - object_event 2, 2, SPRITE_LASS, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 4, SPRITE_TWIN, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 2, SPRITE_LASS, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 4, SPRITE_TWIN, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 Route2Gate2F_Blocks:: INCBIN "maps/Route2Gate2F.blk" diff --git a/data/maps/objects/Route2House.asm b/data/maps/objects/Route2House.asm index d16a85c..b05e57d 100644 --- a/data/maps/objects/Route2House.asm +++ b/data/maps/objects/Route2House.asm @@ -20,7 +20,7 @@ Route2House_MapEvents:: bg_event 4, 3, 3 def_object_events - object_event 6, 6, SPRITE_SCIENTIST, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 6, SPRITE_SCIENTIST, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 Route2House_Blocks:: INCBIN "maps/Route2House.blk" diff --git a/data/maps/objects/ShizukanaOka.asm b/data/maps/objects/ShizukanaOka.asm index 8e6d4fd..2c62398 100644 --- a/data/maps/objects/ShizukanaOka.asm +++ b/data/maps/objects/ShizukanaOka.asm @@ -24,12 +24,12 @@ ShizukanaOka_MapEvents:: bg_event 47, 28, 2 def_object_events - object_event 41, 28, SPRITE_ROCKER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 7, SPRITE_YOUNGSTER, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 5, 0, 0 - object_event 41, 19, SPRITE_YOUNGSTER, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 4, 0, 0 - object_event 27, 14, SPRITE_FISHER, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 - object_event 36, 16, SPRITE_TEACHER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 5, 0, 0 - object_event 9, 25, SPRITE_YOUNGSTER, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 4, 0, 0 + object_event 41, 28, SPRITE_ROCKER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 7, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 5, 0, 0 + object_event 41, 19, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 4, 0, 0 + object_event 27, 14, SPRITE_FISHER, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 + object_event 36, 16, SPRITE_TEACHER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 5, 0, 0 + object_event 9, 25, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 4, 0, 0 ShizukanaOka_Blocks:: INCBIN "maps/ShizukanaOka.blk" diff --git a/data/maps/objects/SilentHill.asm b/data/maps/objects/SilentHill.asm index a2850ad..bdab8cb 100644 --- a/data/maps/objects/SilentHill.asm +++ b/data/maps/objects/SilentHill.asm @@ -25,10 +25,10 @@ SilentHill_MapEvents:: bg_event 6, 12, 5 def_object_events - object_event 6, 10, SPRITE_SILVER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 9, SPRITE_BLUE, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 8, 6, SPRITE_TEACHER, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 13, SPRITE_SUPER_NERD, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 10, SPRITE_SILVER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 9, SPRITE_BLUE, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 6, SPRITE_TEACHER, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 13, SPRITE_SUPER_NERD, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 SilentHill_Blocks:: INCBIN "maps/SilentHill.blk" diff --git a/data/maps/objects/SilentHillHouse.asm b/data/maps/objects/SilentHillHouse.asm index 6f28ce5..0583515 100644 --- a/data/maps/objects/SilentHillHouse.asm +++ b/data/maps/objects/SilentHillHouse.asm @@ -20,8 +20,8 @@ SilentHillHouse_MapEvents:: bg_event 2, 0, 6 def_object_events - object_event 5, 3, SPRITE_SILVERS_MOM, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 4, SPRITE_ROCKER, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 3, SPRITE_SILVERS_MOM, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 4, SPRITE_ROCKER, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 SilentHillHouse_Blocks:: INCBIN "maps/SilentHillHouse.blk" diff --git a/data/maps/objects/SilentHillLabBack.asm b/data/maps/objects/SilentHillLabBack.asm index 0601f56..2d405da 100644 --- a/data/maps/objects/SilentHillLabBack.asm +++ b/data/maps/objects/SilentHillLabBack.asm @@ -19,11 +19,11 @@ SilentHillLabBack_MapEvents:: bg_event 6, 0, 5 def_object_events - object_event 4, 2, SPRITE_OKIDO, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 4, SPRITE_SILVER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 2, SPRITE_POKE_BALL, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 2, SPRITE_POKE_BALL, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 7, 2, SPRITE_POKE_BALL, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 2, SPRITE_OKIDO, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 4, SPRITE_SILVER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_POKE_BALL, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 2, SPRITE_POKE_BALL, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 2, SPRITE_POKE_BALL, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 SilentHillLabBack_Blocks:: INCBIN "maps/SilentHillLabBack.blk" diff --git a/data/maps/objects/SilentHillLabFront.asm b/data/maps/objects/SilentHillLabFront.asm index e890fe7..fe4e542 100644 --- a/data/maps/objects/SilentHillLabFront.asm +++ b/data/maps/objects/SilentHillLabFront.asm @@ -30,17 +30,17 @@ SilentHillLabFront_MapEvents:: bg_event 4, 0, 15 def_object_events - object_event 4, 2, SPRITE_OKIDO, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 0, SPRITE_OKIDO, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 4, SPRITE_SILVER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 0, SPRITE_SILVER, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 14, SPRITE_BLUE, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 3, SPRITE_BLUE, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 13, SPRITE_NANAMI, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 8, SPRITE_SCIENTIST, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 12, SPRITE_SCIENTIST, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 0, 1, SPRITE_POKEDEX, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 1, SPRITE_POKEDEX, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 2, SPRITE_OKIDO, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 0, SPRITE_OKIDO, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 4, SPRITE_SILVER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 0, SPRITE_SILVER, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 14, SPRITE_BLUE, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 3, SPRITE_BLUE, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 13, SPRITE_NANAMI, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 8, SPRITE_SCIENTIST, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 12, SPRITE_SCIENTIST, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 0, 1, SPRITE_POKEDEX, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 1, SPRITE_POKEDEX, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 SilentHillLabFront_Blocks:: INCBIN "maps/SilentHillLabFront.blk" diff --git a/data/maps/objects/SilentHillPokecenter.asm b/data/maps/objects/SilentHillPokecenter.asm index 63608fd..baadf69 100644 --- a/data/maps/objects/SilentHillPokecenter.asm +++ b/data/maps/objects/SilentHillPokecenter.asm @@ -15,11 +15,11 @@ SilentHillPokecenter_MapEvents:: bg_event 13, 1, 1 def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_GENTLEMAN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 4, SPRITE_24, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 1, SPRITE_YOUNGSTER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_RHYDON, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 4, SPRITE_24, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 1, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_RHYDON, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 SilentHillPokecenter_Blocks:: INCBIN "maps/SilentHillPokecenter.blk" diff --git a/data/maps/objects/South.asm b/data/maps/objects/South.asm index 18e7f6e..2a189be 100644 --- a/data/maps/objects/South.asm +++ b/data/maps/objects/South.asm @@ -29,10 +29,10 @@ South_MapEvents:: bg_event 20, 22, 5 def_object_events - object_event 25, 21, SPRITE_TWIN, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 24, 21, SPRITE_CLEFAIRY, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 22, 16, SPRITE_ROCKER, SLOW_STEP_DOWN, 3, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 30, 11, SPRITE_FISHING_GURU, FACE_UP, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 25, 21, SPRITE_TWIN, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 24, 21, SPRITE_CLEFAIRY, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 22, 16, SPRITE_ROCKER, SPRITEMOVEFN_RANDOM_WALK_X, 3, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 30, 11, SPRITE_FISHING_GURU, SPRITEMOVEFN_RANDOM_WALK_XY, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 South_Blocks:: INCBIN "maps/South.blk" diff --git a/data/maps/objects/SouthHouse1.asm b/data/maps/objects/SouthHouse1.asm index ed0a313..02ce1a3 100644 --- a/data/maps/objects/SouthHouse1.asm +++ b/data/maps/objects/SouthHouse1.asm @@ -14,7 +14,7 @@ SouthHouse1_MapEvents:: def_bg_events def_object_events - object_event 2, 3, SPRITE_GRANNY, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 3, SPRITE_GRANNY, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 SouthHouse1_Blocks:: INCBIN "maps/SouthHouse1.blk" diff --git a/data/maps/objects/SouthHouse2.asm b/data/maps/objects/SouthHouse2.asm index a015a49..c64e9ec 100644 --- a/data/maps/objects/SouthHouse2.asm +++ b/data/maps/objects/SouthHouse2.asm @@ -14,7 +14,7 @@ SouthHouse2_MapEvents:: def_bg_events def_object_events - object_event 1, 2, SPRITE_FISHER, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 2, SPRITE_FISHER, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 SouthHouse2_Blocks:: INCBIN "maps/SouthHouse2.blk" diff --git a/data/maps/objects/SouthMart.asm b/data/maps/objects/SouthMart.asm index 7b5e40c..833edb4 100644 --- a/data/maps/objects/SouthMart.asm +++ b/data/maps/objects/SouthMart.asm @@ -14,9 +14,9 @@ SouthMart_MapEvents:: def_bg_events def_object_events - object_event 1, 3, SPRITE_CLERK, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 5, SPRITE_GIRL, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_POKEFAN_M, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 3, SPRITE_CLERK, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 5, SPRITE_GIRL, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 SouthMart_Blocks:: INCBIN "maps/SouthMart.blk" diff --git a/data/maps/objects/SouthPokecenter1F.asm b/data/maps/objects/SouthPokecenter1F.asm index 7167e61..790c1a1 100644 --- a/data/maps/objects/SouthPokecenter1F.asm +++ b/data/maps/objects/SouthPokecenter1F.asm @@ -15,10 +15,10 @@ SouthPokecenter1F_MapEvents:: def_bg_events def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_GENTLEMAN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_24, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_YOUNGSTER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_24, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 SouthPokecenter1F_Blocks:: INCBIN "maps/SouthPokecenter1F.blk" diff --git a/data/maps/objects/SouthPokecenter2F.asm b/data/maps/objects/SouthPokecenter2F.asm index 063b8a8..3da74b2 100644 --- a/data/maps/objects/SouthPokecenter2F.asm +++ b/data/maps/objects/SouthPokecenter2F.asm @@ -13,9 +13,9 @@ SouthPokecenter2F_MapEvents:: def_bg_events def_object_events - object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 7, SPRITE_FISHING_GURU, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 7, SPRITE_FISHING_GURU, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 SouthPokecenter2F_Blocks:: INCBIN "maps/SouthPokecenter2F.blk" diff --git a/data/maps/objects/Stand.asm b/data/maps/objects/Stand.asm index 477e781..88dff82 100644 --- a/data/maps/objects/Stand.asm +++ b/data/maps/objects/Stand.asm @@ -34,15 +34,15 @@ Stand_MapEvents:: bg_event 32, 35, 10 def_object_events - object_event 10, 10, SPRITE_POKEFAN_M, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 17, SPRITE_TWIN, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 28, 19, SPRITE_ROCKER, FACE_RIGHT, 0, 3, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 30, 31, SPRITE_TEACHER, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 21, 8, SPRITE_RHYDON, FACE_UP, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 13, 6, SPRITE_CLEFAIRY, FACE_UP, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 6, SPRITE_RHYDON, FACE_UP, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 15, SPRITE_PIDGEY, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 21, SPRITE_RHYDON, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 10, SPRITE_POKEFAN_M, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 17, SPRITE_TWIN, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 28, 19, SPRITE_ROCKER, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 3, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 30, 31, SPRITE_TEACHER, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 21, 8, SPRITE_RHYDON, SPRITEMOVEFN_RANDOM_WALK_XY, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 13, 6, SPRITE_CLEFAIRY, SPRITEMOVEFN_RANDOM_WALK_XY, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 6, SPRITE_RHYDON, SPRITEMOVEFN_RANDOM_WALK_XY, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 15, SPRITE_PIDGEY, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 21, SPRITE_RHYDON, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 Stand_Blocks:: INCBIN "maps/Stand.blk" diff --git a/data/maps/objects/StandHouse.asm b/data/maps/objects/StandHouse.asm index bd5f043..71064fa 100644 --- a/data/maps/objects/StandHouse.asm +++ b/data/maps/objects/StandHouse.asm @@ -14,7 +14,7 @@ StandHouse_MapEvents:: def_bg_events def_object_events - object_event 2, 3, SPRITE_SUPER_NERD, FACE_RIGHT, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 3, SPRITE_SUPER_NERD, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 1, -1, -1, 0, 0, 0, 0, 0, 0 StandHouse_Blocks:: INCBIN "maps/StandHouse.blk" diff --git a/data/maps/objects/StandLab.asm b/data/maps/objects/StandLab.asm index cae7733..1712e53 100644 --- a/data/maps/objects/StandLab.asm +++ b/data/maps/objects/StandLab.asm @@ -14,7 +14,7 @@ StandLab_MapEvents:: def_bg_events def_object_events - object_event 2, 3, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 3, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 StandLab_Blocks:: INCBIN "maps/StandLab.blk" diff --git a/data/maps/objects/StandLeague1F.asm b/data/maps/objects/StandLeague1F.asm index c12de25..7fe9471 100644 --- a/data/maps/objects/StandLeague1F.asm +++ b/data/maps/objects/StandLeague1F.asm @@ -15,11 +15,11 @@ StandLeague1F_MapEvents:: def_bg_events def_object_events - object_event 2, 5, SPRITE_YOUNGSTER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 7, SPRITE_LASS, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 1, SPRITE_24, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 6, SPRITE_COOLTRAINER_F, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_YOUNGSTER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 7, SPRITE_LASS, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 9, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 1, SPRITE_24, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 StandLeague1F_Blocks:: INCBIN "maps/StandLeague1F.blk" diff --git a/data/maps/objects/StandLeague2F.asm b/data/maps/objects/StandLeague2F.asm index ca3d5c6..f8815a9 100644 --- a/data/maps/objects/StandLeague2F.asm +++ b/data/maps/objects/StandLeague2F.asm @@ -13,11 +13,11 @@ StandLeague2F_MapEvents:: def_bg_events def_object_events - object_event 4, 7, SPRITE_POKEFAN_M, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_24, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 0, 6, SPRITE_COOLTRAINER_F, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 6, SPRITE_24, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 1, SPRITE_COOLTRAINER_F, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 7, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_24, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 0, 6, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 6, SPRITE_24, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 StandLeague2F_Blocks:: INCBIN "maps/StandLeague2F.blk" diff --git a/data/maps/objects/StandMart.asm b/data/maps/objects/StandMart.asm index faf08d7..570bc4f 100644 --- a/data/maps/objects/StandMart.asm +++ b/data/maps/objects/StandMart.asm @@ -14,9 +14,9 @@ StandMart_MapEvents:: def_bg_events def_object_events - object_event 1, 3, SPRITE_CLERK, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 5, SPRITE_GIRL, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_POKEFAN_M, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 3, SPRITE_CLERK, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 5, SPRITE_GIRL, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 StandMart_Blocks:: INCBIN "maps/StandMart.blk" diff --git a/data/maps/objects/StandOffice.asm b/data/maps/objects/StandOffice.asm index d74f09a..b2f7443 100644 --- a/data/maps/objects/StandOffice.asm +++ b/data/maps/objects/StandOffice.asm @@ -14,9 +14,9 @@ StandOffice_MapEvents:: def_bg_events def_object_events - object_event 13, 4, SPRITE_ROCKER, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 6, SPRITE_SUPER_NERD, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 7, SPRITE_POKEFAN_M, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 13, 4, SPRITE_ROCKER, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 6, SPRITE_SUPER_NERD, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 7, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 StandOffice_Blocks:: INCBIN "maps/StandOffice.blk" diff --git a/data/maps/objects/StandPokecenter1F.asm b/data/maps/objects/StandPokecenter1F.asm index 6c6ea43..0d934b5 100644 --- a/data/maps/objects/StandPokecenter1F.asm +++ b/data/maps/objects/StandPokecenter1F.asm @@ -15,10 +15,10 @@ StandPokecenter1F_MapEvents:: def_bg_events def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_GIRL, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_GENTLEMAN, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_LASS, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_GIRL, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_LASS, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 StandPokecenter1F_Blocks:: INCBIN "maps/StandPokecenter1F.blk" diff --git a/data/maps/objects/StandPokecenter2F.asm b/data/maps/objects/StandPokecenter2F.asm index e01d9bb..d9d51de 100644 --- a/data/maps/objects/StandPokecenter2F.asm +++ b/data/maps/objects/StandPokecenter2F.asm @@ -13,9 +13,9 @@ StandPokecenter2F_MapEvents:: def_bg_events def_object_events - object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 7, SPRITE_FISHING_GURU, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 7, SPRITE_FISHING_GURU, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 StandPokecenter2F_Blocks:: INCBIN "maps/StandPokecenter2F.blk" diff --git a/data/maps/objects/StandRocketHouse1F.asm b/data/maps/objects/StandRocketHouse1F.asm index 369dc31..4e7c5b6 100644 --- a/data/maps/objects/StandRocketHouse1F.asm +++ b/data/maps/objects/StandRocketHouse1F.asm @@ -15,7 +15,7 @@ StandRocketHouse1F_MapEvents:: def_bg_events def_object_events - object_event 11, 4, SPRITE_36, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 11, 4, SPRITE_36, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 StandRocketHouse1F_Blocks:: INCBIN "maps/StandRocketHouse1F.blk" diff --git a/data/maps/objects/StandRocketHouse2F.asm b/data/maps/objects/StandRocketHouse2F.asm index 8dce9cd..f0f8024 100644 --- a/data/maps/objects/StandRocketHouse2F.asm +++ b/data/maps/objects/StandRocketHouse2F.asm @@ -13,7 +13,7 @@ StandRocketHouse2F_MapEvents:: def_bg_events def_object_events - object_event 5, 4, SPRITE_ROCKET_F, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 4, SPRITE_ROCKET_F, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 StandRocketHouse2F_Blocks:: INCBIN "maps/StandRocketHouse2F.blk" diff --git a/data/maps/objects/Sugar.asm b/data/maps/objects/Sugar.asm index 6b7cacd..78ea1c7 100644 --- a/data/maps/objects/Sugar.asm +++ b/data/maps/objects/Sugar.asm @@ -21,9 +21,9 @@ Sugar_MapEvents:: bg_event 10, 14, 4 def_object_events - object_event 8, 12, SPRITE_TWIN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 6, SPRITE_GRANNY, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 13, 11, SPRITE_GRAMPS, FACE_UP, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 12, SPRITE_TWIN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 6, SPRITE_GRANNY, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 13, 11, SPRITE_GRAMPS, SPRITEMOVEFN_RANDOM_WALK_XY, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 Sugar_Blocks:: INCBIN "maps/Sugar.blk" diff --git a/data/maps/objects/SugarHouse.asm b/data/maps/objects/SugarHouse.asm index ce96dc0..ba73361 100644 --- a/data/maps/objects/SugarHouse.asm +++ b/data/maps/objects/SugarHouse.asm @@ -14,9 +14,9 @@ SugarHouse_MapEvents:: def_bg_events def_object_events - object_event 3, 5, SPRITE_BUG_CATCHER_BOY, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 5, SPRITE_TWIN, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 1, SPRITE_GRAMPS, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 5, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 5, SPRITE_TWIN, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 1, SPRITE_GRAMPS, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 SugarHouse_Blocks:: INCBIN "maps/SugarHouse.blk" diff --git a/data/maps/objects/SugarHouse2.asm b/data/maps/objects/SugarHouse2.asm index 43b0ee7..bcd7a82 100644 --- a/data/maps/objects/SugarHouse2.asm +++ b/data/maps/objects/SugarHouse2.asm @@ -14,7 +14,7 @@ SugarHouse2_MapEvents:: def_bg_events def_object_events - object_event 2, 3, SPRITE_FISHING_GURU, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 3, SPRITE_FISHING_GURU, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 SugarHouse2_Blocks:: INCBIN "maps/SugarHouse2.blk" diff --git a/data/maps/objects/SugarMart.asm b/data/maps/objects/SugarMart.asm index ae68fe8..eff2a21 100644 --- a/data/maps/objects/SugarMart.asm +++ b/data/maps/objects/SugarMart.asm @@ -14,9 +14,9 @@ SugarMart_MapEvents:: def_bg_events def_object_events - object_event 1, 3, SPRITE_CLERK, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 5, SPRITE_GIRL, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_POKEFAN_M, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 3, SPRITE_CLERK, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 5, SPRITE_GIRL, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 SugarMart_Blocks:: INCBIN "maps/SugarMart.blk" diff --git a/data/maps/objects/SugarPokecenter1F.asm b/data/maps/objects/SugarPokecenter1F.asm index 5180dc2..4714e3a 100644 --- a/data/maps/objects/SugarPokecenter1F.asm +++ b/data/maps/objects/SugarPokecenter1F.asm @@ -15,10 +15,10 @@ SugarPokecenter1F_MapEvents:: def_bg_events def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_YOUNGSTER, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_24, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_GRANNY, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_YOUNGSTER, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_24, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_GRANNY, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 SugarPokecenter1F_Blocks:: INCBIN "maps/SugarPokecenter1F.blk" diff --git a/data/maps/objects/SugarPokecenter2F.asm b/data/maps/objects/SugarPokecenter2F.asm index b17c518..36c2a25 100644 --- a/data/maps/objects/SugarPokecenter2F.asm +++ b/data/maps/objects/SugarPokecenter2F.asm @@ -13,9 +13,9 @@ SugarPokecenter2F_MapEvents:: def_bg_events def_object_events - object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 7, SPRITE_FISHING_GURU, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 7, SPRITE_FISHING_GURU, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 SugarPokecenter2F_Blocks:: INCBIN "maps/SugarPokecenter2F.blk" diff --git a/data/maps/objects/West.asm b/data/maps/objects/West.asm index a8036ac..f4897a1 100644 --- a/data/maps/objects/West.asm +++ b/data/maps/objects/West.asm @@ -33,13 +33,13 @@ West_MapEvents:: bg_event 18, 20, 6 def_object_events - object_event 6, 8, SPRITE_SAILOR, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 12, 7, SPRITE_ROCKER, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 26, 10, SPRITE_ROCKER, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 30, 14, SPRITE_LASS, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 29, 14, SPRITE_CLEFAIRY, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 22, 19, SPRITE_COOLTRAINER_F, FACE_UP, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 18, 13, SPRITE_36, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 8, SPRITE_SAILOR, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 12, 7, SPRITE_ROCKER, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 26, 10, SPRITE_ROCKER, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 30, 14, SPRITE_LASS, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 29, 14, SPRITE_CLEFAIRY, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 22, 19, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_WALK_XY, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 18, 13, SPRITE_36, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 West_Blocks:: INCBIN "maps/West.blk" diff --git a/data/maps/objects/WestGym.asm b/data/maps/objects/WestGym.asm index 74e9be9..2a242d3 100644 --- a/data/maps/objects/WestGym.asm +++ b/data/maps/objects/WestGym.asm @@ -16,12 +16,12 @@ WestGym_MapEvents:: bg_event 6, 15, 1 def_object_events - object_event 4, 4, SPRITE_TSUKUSHI, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 7, SPRITE_LASS, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 3, 0, 0 - object_event 3, 11, SPRITE_COOLTRAINER_F, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 3, 0, 0 - object_event 5, 9, SPRITE_LASS, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 - object_event 4, 6, SPRITE_TWIN, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 - object_event 7, 15, SPRITE_GYM_GUY, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 4, SPRITE_TSUKUSHI, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 7, SPRITE_LASS, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 3, 0, 0 + object_event 3, 11, SPRITE_COOLTRAINER_F, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 3, 0, 0 + object_event 5, 9, SPRITE_LASS, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 + object_event 4, 6, SPRITE_TWIN, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 2, 0, 0 + object_event 7, 15, SPRITE_GYM_GUY, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestGym_Blocks:: INCBIN "maps/WestGym.blk" diff --git a/data/maps/objects/WestHouse1.asm b/data/maps/objects/WestHouse1.asm index 306a9b8..6507fe4 100644 --- a/data/maps/objects/WestHouse1.asm +++ b/data/maps/objects/WestHouse1.asm @@ -18,9 +18,9 @@ WestHouse1_MapEvents:: bg_event 8, 0, 4 def_object_events - object_event 7, 3, SPRITE_GRAMPS, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 6, SPRITE_YOUNGSTER, FACE_UP, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 4, SPRITE_PIDGEY, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 3, SPRITE_GRAMPS, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 6, SPRITE_YOUNGSTER, SPRITEMOVEFN_RANDOM_WALK_XY, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 4, SPRITE_PIDGEY, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestHouse1_Blocks:: INCBIN "maps/WestHouse1.blk" diff --git a/data/maps/objects/WestHouse2.asm b/data/maps/objects/WestHouse2.asm index 49337e6..a96439f 100644 --- a/data/maps/objects/WestHouse2.asm +++ b/data/maps/objects/WestHouse2.asm @@ -18,9 +18,9 @@ WestHouse2_MapEvents:: bg_event 8, 0, 4 def_object_events - object_event 7, 3, SPRITE_GRAMPS, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 8, 6, SPRITE_YOUNGSTER, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 5, SPRITE_BUG_CATCHER_BOY, FACE_UP, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 3, SPRITE_GRAMPS, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 6, SPRITE_YOUNGSTER, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 5, SPRITE_BUG_CATCHER_BOY, SPRITEMOVEFN_RANDOM_WALK_XY, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0 WestHouse2_Blocks:: INCBIN "maps/WestHouse2.blk" diff --git a/data/maps/objects/WestMart1F.asm b/data/maps/objects/WestMart1F.asm index 7d5a3ba..f1c1126 100644 --- a/data/maps/objects/WestMart1F.asm +++ b/data/maps/objects/WestMart1F.asm @@ -18,7 +18,7 @@ WestMart1F_MapEvents:: bg_event 3, 0, 2 def_object_events - object_event 7, 1, SPRITE_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 1, SPRITE_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestMart1F_Blocks:: INCBIN "maps/WestMart1F.blk" diff --git a/data/maps/objects/WestMart2F.asm b/data/maps/objects/WestMart2F.asm index d453525..7177eb9 100644 --- a/data/maps/objects/WestMart2F.asm +++ b/data/maps/objects/WestMart2F.asm @@ -31,10 +31,10 @@ WestMart2F_MapEvents:: bg_event 9, 1, 3 def_object_events - object_event 14, 5, SPRITE_CLERK, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 6, SPRITE_LASS, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 5, SPRITE_BURGLAR, FACE_UP, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 2, SPRITE_ROCKET_M, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 5, SPRITE_CLERK, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 6, SPRITE_LASS, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 5, SPRITE_BURGLAR, SPRITEMOVEFN_RANDOM_WALK_XY, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 2, SPRITE_ROCKET_M, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestMart2F_Blocks:: INCBIN "maps/WestMart2F.blk" diff --git a/data/maps/objects/WestMart3F.asm b/data/maps/objects/WestMart3F.asm index c104329..77909e7 100644 --- a/data/maps/objects/WestMart3F.asm +++ b/data/maps/objects/WestMart3F.asm @@ -29,9 +29,9 @@ WestMart3F_MapEvents:: bg_event 9, 7, 3 def_object_events - object_event 6, 1, SPRITE_CLERK, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 13, 4, SPRITE_GENTLEMAN, FACE_UP, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 5, SPRITE_SUPER_NERD, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 1, SPRITE_CLERK, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 13, 4, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_WALK_XY, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 5, SPRITE_SUPER_NERD, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestMart3F_Blocks:: INCBIN "maps/WestMart3F.blk" diff --git a/data/maps/objects/WestMart4F.asm b/data/maps/objects/WestMart4F.asm index 101a3fe..eb74212 100644 --- a/data/maps/objects/WestMart4F.asm +++ b/data/maps/objects/WestMart4F.asm @@ -29,9 +29,9 @@ WestMart4F_MapEvents:: bg_event 9, 1, 3 def_object_events - object_event 13, 5, SPRITE_CLERK, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 8, 6, SPRITE_24, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 7, 2, SPRITE_ROCKER, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 13, 5, SPRITE_CLERK, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 6, SPRITE_24, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 2, SPRITE_ROCKER, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestMart4F_Blocks:: INCBIN "maps/WestMart4F.blk" diff --git a/data/maps/objects/WestMart5F.asm b/data/maps/objects/WestMart5F.asm index fa955ce..39b27d6 100644 --- a/data/maps/objects/WestMart5F.asm +++ b/data/maps/objects/WestMart5F.asm @@ -17,9 +17,9 @@ WestMart5F_MapEvents:: bg_event 3, 0, 2 def_object_events - object_event 8, 5, SPRITE_GYM_GUY, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 13, 5, SPRITE_YOUNGSTER, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 13, 4, SPRITE_POLIWRATH, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 5, SPRITE_GYM_GUY, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 13, 5, SPRITE_YOUNGSTER, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 13, 4, SPRITE_POLIWRATH, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestMart5F_Blocks:: INCBIN "maps/WestMart5F.blk" diff --git a/data/maps/objects/WestMart6F.asm b/data/maps/objects/WestMart6F.asm index 8c44311..c424a91 100644 --- a/data/maps/objects/WestMart6F.asm +++ b/data/maps/objects/WestMart6F.asm @@ -18,9 +18,9 @@ WestMart6F_MapEvents:: bg_event 14, 0, 5 def_object_events - object_event 12, 3, SPRITE_OFFICER, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 4, SPRITE_RHYDON, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 6, SPRITE_PIDGEY, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 12, 3, SPRITE_OFFICER, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 4, SPRITE_RHYDON, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 6, SPRITE_PIDGEY, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestMart6F_Blocks:: INCBIN "maps/WestMart6F.blk" diff --git a/data/maps/objects/WestPokecenter1F.asm b/data/maps/objects/WestPokecenter1F.asm index c00e631..b887388 100644 --- a/data/maps/objects/WestPokecenter1F.asm +++ b/data/maps/objects/WestPokecenter1F.asm @@ -16,10 +16,10 @@ WestPokecenter1F_MapEvents:: bg_event 13, 1, 1 def_object_events - object_event 5, 1, SPRITE_NURSE, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 14, 6, SPRITE_GENTLEMAN, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 5, SPRITE_LASS, FACE_RIGHT, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 10, 1, SPRITE_ROCKET_M, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_NURSE, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 14, 6, SPRITE_GENTLEMAN, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 5, SPRITE_LASS, SPRITEMOVEFN_RANDOM_WALK_Y, 0, 2, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 10, 1, SPRITE_ROCKET_M, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestPokecenter1F_Blocks:: INCBIN "maps/WestPokecenter1F.blk" diff --git a/data/maps/objects/WestPokecenter2F.asm b/data/maps/objects/WestPokecenter2F.asm index 3742823..4e9b102 100644 --- a/data/maps/objects/WestPokecenter2F.asm +++ b/data/maps/objects/WestPokecenter2F.asm @@ -14,9 +14,9 @@ WestPokecenter2F_MapEvents:: bg_event 1, 1, 1 def_object_events - object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 13, 3, SPRITE_LINK_RECEPTIONIST, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 9, 2, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 13, 3, SPRITE_LINK_RECEPTIONIST, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestPokecenter2F_Blocks:: INCBIN "maps/WestPokecenter2F.blk" diff --git a/data/maps/objects/WestRadioTower1F.asm b/data/maps/objects/WestRadioTower1F.asm index d7bbd83..17b244f 100644 --- a/data/maps/objects/WestRadioTower1F.asm +++ b/data/maps/objects/WestRadioTower1F.asm @@ -17,9 +17,9 @@ WestRadioTower1F_MapEvents:: bg_event 0, 1, 2 def_object_events - object_event 6, 6, SPRITE_RECEPTIONIST, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 3, SPRITE_SUPER_NERD, FACE_UP, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 7, 4, SPRITE_ROCKER, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 6, SPRITE_RECEPTIONIST, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 3, SPRITE_SUPER_NERD, SPRITEMOVEFN_RANDOM_WALK_XY, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 4, SPRITE_ROCKER, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestRadioTower1F_Blocks:: INCBIN "maps/WestRadioTower1F.blk" diff --git a/data/maps/objects/WestRadioTower2F.asm b/data/maps/objects/WestRadioTower2F.asm index 19d3f3f..a9b86e3 100644 --- a/data/maps/objects/WestRadioTower2F.asm +++ b/data/maps/objects/WestRadioTower2F.asm @@ -15,13 +15,13 @@ WestRadioTower2F_MapEvents:: bg_event 5, 0, 1 def_object_events - object_event 4, 6, SPRITE_GYM_GUY, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 7, 5, SPRITE_ROCKER, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 5, SPRITE_SUPER_NERD, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 2, SPRITE_GIRL, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 1, SPRITE_36, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 6, SPRITE_36, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 7, SPRITE_36, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 6, SPRITE_GYM_GUY, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 5, SPRITE_ROCKER, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 5, SPRITE_SUPER_NERD, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_GIRL, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 1, SPRITE_36, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 6, SPRITE_36, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 7, SPRITE_36, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestRadioTower2F_Blocks:: INCBIN "maps/WestRadioTower2F.blk" diff --git a/data/maps/objects/WestRadioTower3F.asm b/data/maps/objects/WestRadioTower3F.asm index bd58ed9..c9aad66 100644 --- a/data/maps/objects/WestRadioTower3F.asm +++ b/data/maps/objects/WestRadioTower3F.asm @@ -15,14 +15,14 @@ WestRadioTower3F_MapEvents:: bg_event 5, 0, 1 def_object_events - object_event 4, 6, SPRITE_SUPER_NERD, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 6, SPRITE_ROCKER, FACE_UP, 2, 1, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 1, SPRITE_TEACHER, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 5, SPRITE_GIRL, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 2, SPRITE_36, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 3, SPRITE_36, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 7, SPRITE_36, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 7, 6, SPRITE_36, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 6, SPRITE_SUPER_NERD, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 6, SPRITE_ROCKER, SPRITEMOVEFN_RANDOM_WALK_XY, 2, 1, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 1, SPRITE_TEACHER, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 5, SPRITE_GIRL, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_36, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 3, SPRITE_36, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 7, SPRITE_36, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 6, SPRITE_36, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestRadioTower3F_Blocks:: INCBIN "maps/WestRadioTower3F.blk" diff --git a/data/maps/objects/WestRadioTower4F.asm b/data/maps/objects/WestRadioTower4F.asm index 3eaca67..16a4b38 100644 --- a/data/maps/objects/WestRadioTower4F.asm +++ b/data/maps/objects/WestRadioTower4F.asm @@ -15,15 +15,15 @@ WestRadioTower4F_MapEvents:: bg_event 5, 0, 1 def_object_events - object_event 2, 6, SPRITE_SUPER_NERD, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 2, SPRITE_ROCKER, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 7, 5, SPRITE_BURGLAR, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 7, 6, SPRITE_ROCKER, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 0, 5, SPRITE_GIRL, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 5, SPRITE_36, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 4, SPRITE_36, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 1, SPRITE_36, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 2, SPRITE_36, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 6, SPRITE_SUPER_NERD, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 2, SPRITE_ROCKER, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 5, SPRITE_BURGLAR, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 6, SPRITE_ROCKER, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 0, 5, SPRITE_GIRL, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 5, SPRITE_36, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 4, SPRITE_36, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 1, SPRITE_36, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 2, SPRITE_36, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestRadioTower4F_Blocks:: INCBIN "maps/WestRadioTower4F.blk" diff --git a/data/maps/objects/WestRadioTower5F.asm b/data/maps/objects/WestRadioTower5F.asm index d1a6294..7e7bdc6 100644 --- a/data/maps/objects/WestRadioTower5F.asm +++ b/data/maps/objects/WestRadioTower5F.asm @@ -16,14 +16,14 @@ WestRadioTower5F_MapEvents:: bg_event 7, 4, 2 def_object_events - object_event 6, 6, SPRITE_SCIENTIST, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 5, 2, SPRITE_TEACHER, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 6, SPRITE_CLEFAIRY, SLOW_STEP_DOWN, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 5, SPRITE_CLEFAIRY, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 7, SPRITE_SAKAKI, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 4, 2, SPRITE_36, SLOW_STEP_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 2, 4, SPRITE_36, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 6, 7, SPRITE_TEACHER, SLOW_STEP_DOWN, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 6, SPRITE_SCIENTIST, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 5, 2, SPRITE_TEACHER, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 6, SPRITE_CLEFAIRY, SPRITEMOVEFN_RANDOM_WALK_X, 2, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 5, SPRITE_CLEFAIRY, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 7, SPRITE_SAKAKI, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 4, 2, SPRITE_36, SPRITEMOVEFN_TURN_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 2, 4, SPRITE_36, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 6, 7, SPRITE_TEACHER, SPRITEMOVEFN_RANDOM_WALK_X, 1, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestRadioTower5F_Blocks:: INCBIN "maps/WestRadioTower5F.blk" diff --git a/data/maps/objects/WestRocketRaidedHouse.asm b/data/maps/objects/WestRocketRaidedHouse.asm index b72e447..3d0cd6a 100644 --- a/data/maps/objects/WestRocketRaidedHouse.asm +++ b/data/maps/objects/WestRocketRaidedHouse.asm @@ -21,11 +21,11 @@ WestRocketRaidedHouse_MapEvents:: bg_event 8, 0, 6 def_object_events - object_event 8, 1, SPRITE_36, SLOW_STEP_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 7, 5, SPRITE_36, FACE_LEFT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 3, 4, SPRITE_POKEFAN_M, STEP_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 1, 3, SPRITE_POKEFAN_F, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 - object_event 7, 2, SPRITE_POKE_BALL, SLOW_STEP_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 8, 1, SPRITE_36, SPRITEMOVEFN_TURN_UP, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 5, SPRITE_36, SPRITEMOVEFN_RANDOM_SPIN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 3, 4, SPRITE_POKEFAN_M, SPRITEMOVEFN_TURN_RIGHT, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 1, 3, SPRITE_POKEFAN_F, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 + object_event 7, 2, SPRITE_POKE_BALL, SPRITEMOVEFN_TURN_DOWN, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0 WestRocketRaidedHouse_Blocks:: INCBIN "maps/WestRocketRaidedHouse.blk" diff --git a/data/predef_pointers.inc b/data/predef_pointers.inc index 99c7e61..7559c6c 100644 --- a/data/predef_pointers.inc +++ b/data/predef_pointers.inc @@ -11,10 +11,10 @@ PredefPointers:: ; Please be a peach and nuke the hell out of these: ; WE NEED LABELS! ; Thank youu~ - add_predef Function6445 ; 0 + add_predef LearnMove ; 0 add_predef IntroDisplayPicCenteredOrUpperRight - add_predef Function6713 - add_predef Function66b1 + add_predef AskName_Old + add_predef GetItemPrice_Old add_predef DebugMenu add_predef GetItemAmount add_predef HealParty diff --git a/data/sprites/facings.asm b/data/sprites/facings.asm new file mode 100644 index 0000000..9004f2d --- /dev/null +++ b/data/sprites/facings.asm @@ -0,0 +1,92 @@ +INCLUDE "constants.asm" + +SECTION "data/sprites/facings.asm", ROMX + +INCLUDE "data/sprites/old_facings.inc" + +Facings: + dw FacingStepDown0 + dw FacingStepDown1 + dw FacingStepDown2 + dw FacingStepDown3 + + dw FacingStepUp0 + dw FacingStepUp1 + dw FacingStepUp2 + dw FacingStepUp3 + + dw FacingStepLeft0 + dw FacingStepLeft1 + dw FacingStepLeft2 + dw FacingStepLeft3 + + dw FacingStepRight0 + dw FacingStepRight1 + dw FacingStepRight2 + dw FacingStepRight3 + +FacingStepDown0: +FacingStepDown2: ; standing down + db 0, 0, $00, $00 + db 0, 8, $01, $00 + db 8, 0, $02, RELATIVE_ATTRIBUTES + db 8, 8, $03, RELATIVE_ATTRIBUTES | FACING_DONE + +FacingStepDown1: ; walking down 1 + db 0, 0, $80, $00 + db 0, 8, $81, $00 + db 8, 0, $82, RELATIVE_ATTRIBUTES + db 8, 8, $83, RELATIVE_ATTRIBUTES | FACING_DONE + +FacingStepDown3: ; walking down 2 + db 0, 8, $80, X_FLIP + db 0, 0, $81, X_FLIP + db 8, 8, $82, RELATIVE_ATTRIBUTES | X_FLIP + db 8, 0, $83, RELATIVE_ATTRIBUTES | X_FLIP | FACING_DONE + +FacingStepUp0: +FacingStepUp2: ; standing up + db 0, 0, $04, $00 + db 0, 8, $05, $00 + db 8, 0, $06, RELATIVE_ATTRIBUTES + db 8, 8, $07, RELATIVE_ATTRIBUTES | FACING_DONE + +FacingStepUp1: ; walking up 1 + db 0, 0, $84, $00 + db 0, 8, $85, $00 + db 8, 0, $86, RELATIVE_ATTRIBUTES + db 8, 8, $87, RELATIVE_ATTRIBUTES | FACING_DONE + +FacingStepUp3: ; walking up 2 + db 0, 8, $84, X_FLIP + db 0, 0, $85, X_FLIP + db 8, 8, $86, RELATIVE_ATTRIBUTES | X_FLIP + db 8, 0, $87, RELATIVE_ATTRIBUTES | X_FLIP | FACING_DONE + +FacingStepLeft0: +FacingStepLeft2: ; standing left + db 0, 0, $08, $00 + db 0, 8, $09, $00 + db 8, 0, $0a, RELATIVE_ATTRIBUTES + db 8, 8, $0b, RELATIVE_ATTRIBUTES | FACING_DONE + +FacingStepRight0: +FacingStepRight2: ; standing right + db 0, 8, $08, X_FLIP + db 0, 0, $09, X_FLIP + db 8, 8, $0a, RELATIVE_ATTRIBUTES | X_FLIP + db 8, 0, $0b, RELATIVE_ATTRIBUTES | X_FLIP | FACING_DONE + +FacingStepLeft1: +FacingStepLeft3: ; walking left + db 0, 0, $88, $00 + db 0, 8, $89, $00 + db 8, 0, $8a, RELATIVE_ATTRIBUTES + db 8, 8, $8b, RELATIVE_ATTRIBUTES | FACING_DONE + +FacingStepRight1: +FacingStepRight3: ; walking right + db 0, 8, $88, X_FLIP + db 0, 0, $89, X_FLIP + db 8, 8, $8a, RELATIVE_ATTRIBUTES | X_FLIP + db 8, 0, $8b, RELATIVE_ATTRIBUTES | X_FLIP | FACING_DONE diff --git a/data/sprites/minor_object_sprites.inc b/data/sprites/minor_object_sprites.inc new file mode 100644 index 0000000..fb164d4 --- /dev/null +++ b/data/sprites/minor_object_sprites.inc @@ -0,0 +1,37 @@ +; Format: +; Y offset, X offset, vTile offset, tile properties +MinorObjectSpriteTiles: + dw .Null + dw .Emote + dw .Shadow + dw .BoulderDust1 + dw .BoulderDust2 + +.Null: + db 0 ; tiles + +.Emote: + db 4 ; tiles + db 0, 0, $00, 0 + db 0, 8, $01, 0 + db 8, 0, $02, 0 + db 8, 8, $03, 0 + +.Shadow: + db 2 ; tiles + db 0, 0, $00, 0 + db 0, 8, $00, X_FLIP + +.BoulderDust1: + db 4 ; tiles + db 0, 0, $00, 0 + db 0, 8, $00, 0 + db 8, 0, $00, 0 + db 8, 8, $00, 0 + +.BoulderDust2: + db 4 ; tiles + db 0, 0, $00, Y_FLIP + db 0, 8, $00, Y_FLIP + db 8, 0, $00, Y_FLIP + db 8, 8, $00, Y_FLIP diff --git a/data/sprites/old_facings.inc b/data/sprites/old_facings.inc new file mode 100644 index 0000000..0016ef8 --- /dev/null +++ b/data/sprites/old_facings.inc @@ -0,0 +1,69 @@ +; Unreferenced overworld sprite table leftover from Generation I. +; Pseudo-OAM flags originally used by game logic + const_def + const BIT_END_OF_OAM_DATA ; 0 + const BIT_SPRITE_UNDER_GRASS ; 1 + +; Used in SpriteFacingAndAnimationTable +DEF FACING_END EQU 1 << BIT_END_OF_OAM_DATA +DEF UNDER_GRASS EQU 1 << BIT_SPRITE_UNDER_GRASS + +Unreferenced_OldSpriteFacingAndAnimationTable: +; This table is used for overworld sprites $1-$9. + dw .StandingDown, .NormalOAM ; facing down, walk animation frame 0 + dw .WalkingDown, .NormalOAM ; facing down, walk animation frame 1 + dw .StandingDown, .NormalOAM ; facing down, walk animation frame 2 + dw .WalkingDown, .FlippedOAM ; facing down, walk animation frame 3 + dw .StandingUp, .NormalOAM ; facing up, walk animation frame 0 + dw .WalkingUp, .NormalOAM ; facing up, walk animation frame 1 + dw .StandingUp, .NormalOAM ; facing up, walk animation frame 2 + dw .WalkingUp, .FlippedOAM ; facing up, walk animation frame 3 + dw .StandingLeft, .NormalOAM ; facing left, walk animation frame 0 + dw .WalkingLeft, .NormalOAM ; facing left, walk animation frame 1 + dw .StandingLeft, .NormalOAM ; facing left, walk animation frame 2 + dw .WalkingLeft, .NormalOAM ; facing left, walk animation frame 3 + dw .StandingLeft, .FlippedOAM ; facing right, walk animation frame 0 + dw .WalkingLeft, .FlippedOAM ; facing right, walk animation frame 1 + dw .StandingLeft, .FlippedOAM ; facing right, walk animation frame 2 + dw .WalkingLeft, .FlippedOAM ; facing right, walk animation frame 3 +; The rest of this table is used for sprites $a and $b. +; All orientation and animation parameters lead to the same result. +; Used for immobile sprites like items on the ground. + dw .StandingDown, .NormalOAM ; facing down, walk animation frame 0 + dw .StandingDown, .NormalOAM ; facing down, walk animation frame 1 + dw .StandingDown, .NormalOAM ; facing down, walk animation frame 2 + dw .StandingDown, .NormalOAM ; facing down, walk animation frame 3 + dw .StandingDown, .NormalOAM ; facing up, walk animation frame 0 + dw .StandingDown, .NormalOAM ; facing up, walk animation frame 1 + dw .StandingDown, .NormalOAM ; facing up, walk animation frame 2 + dw .StandingDown, .NormalOAM ; facing up, walk animation frame 3 + dw .StandingDown, .NormalOAM ; facing left, walk animation frame 0 + dw .StandingDown, .NormalOAM ; facing left, walk animation frame 1 + dw .StandingDown, .NormalOAM ; facing left, walk animation frame 2 + dw .StandingDown, .NormalOAM ; facing left, walk animation frame 3 + dw .StandingDown, .NormalOAM ; facing right, walk animation frame 0 + dw .StandingDown, .NormalOAM ; facing right, walk animation frame 1 + dw .StandingDown, .NormalOAM ; facing right, walk animation frame 2 + dw .StandingDown, .NormalOAM ; facing right, walk animation frame 3 + +; four tile ids compose an overworld sprite +.StandingDown: db $00, $01, $02, $03 +.WalkingDown: db $80, $81, $82, $83 +.StandingUp: db $04, $05, $06, $07 +.WalkingUp: db $84, $85, $86, $87 +.StandingLeft: db $08, $09, $0a, $0b +.WalkingLeft: db $88, $89, $8a, $8b + +.NormalOAM: + ; y, x, attributes + db 0, 0, $00 ; top left + db 0, 8, $00 ; top right + db 8, 0, UNDER_GRASS ; bottom left + db 8, 8, UNDER_GRASS | FACING_END ; bottom right + +.FlippedOAM: + ; y, x, attributes + db 0, 8, X_FLIP ; top left + db 0, 0, X_FLIP ; top right + db 8, 8, X_FLIP | UNDER_GRASS ; bottom left + db 8, 0, X_FLIP | UNDER_GRASS | FACING_END ; bottom right diff --git a/engine/battle_anims/anim_commands.asm b/engine/battle_anims/anim_commands.asm index 75ca252..88f68ad 100644 --- a/engine/battle_anims/anim_commands.asm +++ b/engine/battle_anims/anim_commands.asm @@ -30,7 +30,7 @@ PlayBattleAnim: RunBattleAnimScript_User: ld a, [wOptions] - bit BATTLE_SCENE, a + bit BATTLE_SCENE_F, a jr z, .enabled ; If high byte doesn't equal 0, go ahead and skip to the animation-playing part. diff --git a/engine/debug/debug_menu.asm b/engine/debug/debug_menu.asm index a268f55..4bc00cc 100644 --- a/engine/debug/debug_menu.asm +++ b/engine/debug/debug_menu.asm @@ -25,8 +25,8 @@ DebugMenu:: call OpenMenu call CloseWindow jp c, TitleSequenceStart - ld a, $41 - ld [wce5f], a + ld a, BATTLE_SHIFT | TEXT_DELAY_FAST + ld [wOptions], a ld a, [wMenuSelection] ld hl, DebugJumpTable jp CallJumptable @@ -105,7 +105,7 @@ DebugMenuOptionMonsterTest:: ld a, %11100100 ldh [rBGP], a -Function40eb:: +OpenDebugMenu:: jp DebugMenu DebugMenuOptionName:: @@ -114,6 +114,43 @@ DebugMenuOptionName:: ldh [rBGP], a jp DebugMenu +SetDemoEventFlags: + ld hl, wd41a + set 5, [hl] + ld hl, wd41a + set 7, [hl] ; talked to blue + ld hl, wd41a + set 0, [hl] ; read email + ld hl, wd41a + set 3, [hl] + ld hl, wd41a + set 6, [hl] + ld hl, wd41a + set 6, [hl] + ld hl, wd41e + set 5, [hl] + ld hl, wd41b + set 1, [hl] ; followed oak to back room + ld hl, wd41c + set 4, [hl] ; received pokedexes + ld hl, wd41d + set 2, [hl] ; beat rival in lab + ld hl, wd41b + set 2, [hl] ; chose a starter + ld a, %1 + ld [wd29a], a + ld a, %1 + ld [wd29b], a + ld a, %110 + ld [wd29c], a + ld a, %10010 + ld [wd29d], a + ld a, %110 + ld [wd29e], a + ld a, %10 + ld [wd2a0], a + ret + SECTION "engine/menu/debug_menu.asm@Sound Test", ROMX _DebugMenuSoundTest:: diff --git a/engine/debug/field/change_transportation.inc b/engine/debug/field/change_transportation.inc index b98a6f5..88c8780 100644 --- a/engine/debug/field/change_transportation.inc +++ b/engine/debug/field/change_transportation.inc @@ -135,9 +135,9 @@ FieldDebug_CheckFacingSurfable: push af call GetFacingTileCoord and COLLISION_TYPE_MASK - cp OLD_COLLISION_TYPE_WATER ; happens to match COLLISION_TYPE_WATER + cp OLD_HI_NYBBLE_WATER ; happens to match HI_NYBBLE_WATER jr z, .surfable - cp OLD_COLLISION_TYPE_WATER2 + cp OLD_HI_NYBBLE_WATER_ALT jr z, .surfable ; not surfable pop af @@ -161,8 +161,8 @@ FieldDebug_SetSurfDirection: ret .Directions: - db SLOW_STEP_DOWN - db SLOW_STEP_UP - db SLOW_STEP_LEFT - db SLOW_STEP_RIGHT + slow_step DOWN + slow_step UP + slow_step LEFT + slow_step RIGHT diff --git a/engine/debug/field/follow_npc_test.inc b/engine/debug/field/follow_npc_test.inc index 1e6b855..2b212e1 100644 --- a/engine/debug/field/follow_npc_test.inc +++ b/engine/debug/field/follow_npc_test.inc @@ -38,7 +38,7 @@ FieldDebug_FollowNPCTest: .asm_fc9a5: callfar SetFollowerDefaultAttributes ld a, 1 - call Function15ed + call CopyMapObjectToReservedObjectStruct ld a, 1 ld hl, .MovementData call LoadMovementDataPointer @@ -48,7 +48,7 @@ FieldDebug_FollowNPCTest: ret .asm_fc9c2: - call Function18cc + call UnfreezePlayer ld a, 1 call DeleteMapObject ret @@ -71,20 +71,20 @@ FieldDebug_FollowNPCTest: prompt .MovementData: - db FACE_UP - db SLOW_STEP_UP - db STEP_UP - db STEP_RIGHT - db FAST_STEP_RIGHT - db JUMP_DOWN - db FAST_STEP_DOWN - db FAST_STEP_DOWN - db STEP_DOWN - db STEP_LEFT - db STEP_LEFT - db JUMP_UP - db SLOW_STEP_UP - db MOVEMENT_33 + turn_head UP + slow_step UP + step UP + step RIGHT + big_step RIGHT + jump_step DOWN + big_step DOWN + big_step DOWN + step DOWN + step LEFT + step LEFT + jump_step UP + slow_step UP + remove_object MenuHeaderfca01: ; unreferenced? db MENU_BACKUP_TILES diff --git a/engine/debug/field/item_test.inc b/engine/debug/field/item_test.inc index 9188c77..7ff5b4b 100644 --- a/engine/debug/field/item_test.inc +++ b/engine/debug/field/item_test.inc @@ -48,14 +48,14 @@ ItemTest_KeyItemMenu: FieldDebug_ItemTest: call ClearSprites - ld hl, wVramState - res 0, [hl] + ld hl, wStateFlags + res SPRITE_UPDATES_DISABLED_F, [hl] call LoadStandardMenuHeader call ClearTileMap call UpdateSprites call .DoItemTest - ld hl, wVramState - set 0, [hl] + ld hl, wStateFlags + set SPRITE_UPDATES_DISABLED_F, [hl] call CloseWindow ret ; unused @@ -257,7 +257,7 @@ FieldDebug_ItemTest: .use_item2 call UseItem call ClearBGPalettes - call Function360b + call RestoreScreenAndReloadTiles jp .restart ItemTest_FindUsableItem: diff --git a/engine/debug/field/map_viewer.inc b/engine/debug/field/map_viewer.inc index c73d66b..3cbb95a 100644 --- a/engine/debug/field/map_viewer.inc +++ b/engine/debug/field/map_viewer.inc @@ -57,7 +57,7 @@ DebugMapViewer:: jr c, .continue call Function2c4a jr nc, .loop - callfar Function824c + callfar CheckObjectEnteringVisibleRange jr .loop .continue @@ -99,10 +99,10 @@ DebugMapViewer:: ret .Init: - call Function18b4 + call FreezePlayer call DebugMapViewer_LoadCursorSprite call DebugMapViewer_ReplacePlayerObject - ld a, $2a + ld a, movement_step_sleep ld [wMovementObject], a ld a, DEBUGMAPVIEWER_CONTROL_CURSOR ldh [hDebugMapViewerJumptable], a @@ -124,32 +124,32 @@ DebugMapViewer:: jr .apply_movement .start_pressed call DebugMapViewer_ShowViewerPrompt - ld a, $2a + ld a, movement_step_sleep jr .apply_movement .a_pressed call DebugMapViewer_ShowSelectedDetails - ld a, $2a + ld a, movement_step_sleep .apply_movement ld [wMovementObject], a and a ret .MoveCursorToPlayer: - ld a, 1 + ld a, MAP_VIEWER_CURSOR ld hl, wMovementBuffer call LoadMovementDataPointer - ld d, 2 - ld b, 1 - ld c, 0 - callfar Function83a2 + ld d, STEP_BIKE + ld b, MAP_VIEWER_CURSOR + ld c, PLAYER + callfar ObjectWalkToPlayer ld a, DEBUGMAPVIEWER_WAIT_FINISHED_MOVING ldh [hDebugMapViewerJumptable], a and a ret .WaitFinishedMoving: - ld hl, wVramState - bit 7, [hl] + ld hl, wStateFlags + bit SCRIPTED_MOVEMENT_STATE_F, [hl] jr nz, .skip ld a, DEBUGMAPVIEWER_CLEANUP ldh [hDebugMapViewerJumptable], a @@ -158,11 +158,11 @@ DebugMapViewer:: ret .Cleanup: - ld a, 1 + ld a, MAP_VIEWER_CURSOR call DeleteMapObject - call Function18cc - ld a, 0 - call Function1908 + call UnfreezePlayer + ld a, PLAYER + call CenterObject xor a ldh [hDebugMapViewerJumptable], a scf @@ -190,7 +190,7 @@ DebugMapViewer_ShowSelectedDetails: ld a, 0 ldh [hTextBoxCursorBlinkInterval], a ld bc, wObjectStructs - callfar Function77a1 + callfar WillObjectBumpIntoSomeoneElse jr nc, .skip call RefreshScreen call .DisplayActorCastID @@ -208,7 +208,7 @@ DebugMapViewer_ShowSelectedDetails: ; (referred to as "actor number") ld de, hEventID hlcoord 10, 14 - ld bc, $0102 + lb bc, 1, 2 call PrintNumber ; Display index of selected object from visible objects @@ -218,12 +218,12 @@ DebugMapViewer_ShowSelectedDetails: ld hl, OBJECT_MAP_OBJECT_INDEX add hl, bc ld a, [hl] - cp $10 + cp NUM_OBJECTS jr nc, .invalid_index ld d, h ld e, l hlcoord 10, 16 - ld bc, $0102 + lb bc, 1, 2 call PrintNumber jr .wait @@ -259,7 +259,7 @@ DebugMapViewer_DoMovement: bit D_RIGHT_F, a jr nz, .right .done - ld a, $2a + ld a, movement_step_sleep ret .down @@ -324,19 +324,20 @@ DebugMapViewer_DoMovement: DebugMapViewer_ReplacePlayerObject: callfar DebugMapViewer_SetupCursor - ld a, 1 - call Function15ed - ld a, 1 - call Function1908 - ld bc, wObjectStructs + ld a, MAP_VIEWER_CURSOR + call CopyMapObjectToReservedObjectStruct + ld a, MAP_VIEWER_CURSOR + call CenterObject + ld bc, wReservedObjectStruct ld hl, OBJECT_FLAGS1 add hl, bc - set 3, [hl] - set 2, [hl] - set 1, [hl] + set SLIDING_F, [hl] + set FIXED_FACING_F, [hl] + set WONT_DELETE_F, [hl] ret -Datafd044: +; Already handled by DebugMapViewer_SetupCursor +.Unreferenced_CursorObjectTemplate: object_event -4, -4, SPRITE_GOLD, $17, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0 ds 2 @@ -348,8 +349,8 @@ DebugMapViewer_LoadCursorSprite: xor a ldh [hBGMapMode], a ld de, TownMapCursorGFX - ld hl, $80c0 - ld bc, $3f04 + ld hl, vChars0 tile $0c + lb bc, BANK(TownMapCursorGFX), 4 call Get2bpp pop af ldh [hMapAnims], a diff --git a/engine/debug/field/minigames.inc b/engine/debug/field/minigames.inc index 95c6b9d..55d867a 100644 --- a/engine/debug/field/minigames.inc +++ b/engine/debug/field/minigames.inc @@ -40,18 +40,18 @@ FieldDebug_Minigames: push af xor a ldh [hMapAnims], a - ld hl, wVramState - res 0, [hl] + ld hl, wStateFlags + res SPRITE_UPDATES_DISABLED_F, [hl] call ClearSprites call ClearTileMap call WaitBGMap ld hl, wQueuedScriptBank call CallFar_atHL call ClearPalettes - call Function3657 + call ReloadSpritesAndFont call LoadTilesetGFX - ld hl, wVramState - set 0, [hl] + ld hl, wStateFlags + set SPRITE_UPDATES_DISABLED_F, [hl] call CloseWindow pop af ldh [hMapAnims], a diff --git a/engine/debug/field/move_to_entrance.inc b/engine/debug/field/move_to_entrance.inc index b267d02..2be15b6 100644 --- a/engine/debug/field/move_to_entrance.inc +++ b/engine/debug/field/move_to_entrance.inc @@ -30,10 +30,10 @@ FieldDebug_MoveToRoute1Entrance: call FieldDebug_ShowTextboxAndExit ld d, $d ld e, $d - ld b, 0 - ld c, 1 - callfar Function833a - ld a, 0 + ld b, PLAYER_OBJECT + ld c, STEP_WALK + callfar ComputeObjectPathToCoords_Invisible + ld a, PLAYER_OBJECT ld hl, wMovementBuffer call LoadMovementDataPointer call Function1fea diff --git a/engine/debug/field/npc_movement_test.inc b/engine/debug/field/npc_movement_test.inc index ea54cb0..7e3f267 100644 --- a/engine/debug/field/npc_movement_test.inc +++ b/engine/debug/field/npc_movement_test.inc @@ -23,23 +23,23 @@ FieldDebug_NPCMovementTest: ret .MovementData: - db FACE_UP - db MOVEMENT_2F - db SLOW_STEP_UP - db SLOW_STEP_RIGHT - db SLOW_JUMP_RIGHT - db SLOW_STEP_RIGHT - db STEP_DOWN - db STEP_DOWN - db STEP_DOWN - db STEP_DOWN - db STEP_LEFT - db SLOW_JUMP_LEFT - db STEP_LEFT - db SLOW_STEP_UP - db SLOW_STEP_UP - db SLOW_STEP_UP - db MOVEMENT_32 + turn_head UP + step_sleep 6 + slow_step UP + slow_step RIGHT + slow_jump_step RIGHT + slow_step RIGHT + step DOWN + step DOWN + step DOWN + step DOWN + step LEFT + slow_jump_step LEFT + step LEFT + slow_step UP + slow_step UP + slow_step UP + step_end .not_here ld de, SFX_COLLISION diff --git a/engine/debug/field/pokemart_menu.inc b/engine/debug/field/pokemart_menu.inc index da483ae..e2e1b4e 100644 --- a/engine/debug/field/pokemart_menu.inc +++ b/engine/debug/field/pokemart_menu.inc @@ -300,12 +300,12 @@ DebugMart_LoadItems: ld [wCurItem], a callfar GetItemPrice ld a, d - ld [wcdc3], a + ld [wMiscStringBuffer], a ld a, e - ld [wcdc3 + 1], a + ld [wMiscStringBuffer + 1], a ld hl, wStringBuffer1 - ld de, wcdc3 - ld bc, $8206 + ld de, wMiscStringBuffer + lb bc, PRINTNUM_LEADINGZEROS | 2, 6 call PrintNumber pop hl ld de, wStringBuffer1 diff --git a/engine/debug/field/sprite_viewer.inc b/engine/debug/field/sprite_viewer.inc index 8077aa7..5b4ede6 100644 --- a/engine/debug/field/sprite_viewer.inc +++ b/engine/debug/field/sprite_viewer.inc @@ -13,15 +13,15 @@ FieldDebug_SpriteViewer: call LoadStandardMenuHeader call ClearTileMap call HideSprites - ld hl, wVramState - res 0, [hl] + ld hl, wStateFlags + res SPRITE_UPDATES_DISABLED_F, [hl] call .Init call .DoSpriteViewer push af - ld hl, wVramState - set 0, [hl] + ld hl, wStateFlags + set SPRITE_UPDATES_DISABLED_F, [hl] call ClearPalettes - call Function360b + call RestoreScreenAndReloadTiles call CloseWindow call UpdateTimePals pop af @@ -36,7 +36,7 @@ FieldDebug_SpriteViewer: ld [wSpriteViewerMenuStartingItem], a ld a, 1 ldh [hTextBoxCursorBlinkInterval], a - callfar Function77ad + callfar IsObjectFacingSomeoneElse ret nc ldh a, [hEventID] call GetObjectStruct @@ -259,8 +259,8 @@ FieldDebug_SpriteViewer: call PlaceString call .SetStartingPoint ld c, a - callfar Function14144 - ld hl, vSprites + $c0 + callfar LoadOverworldSprite_PlayerSlot + ld hl, vSprites tile $0c ld de, vFont ld bc, 12 call Get2bpp @@ -355,7 +355,7 @@ FieldDebug_SpriteViewer: ret .set_following call .SetStartingPoint - ld [wd646], a + ld [wUsedSprites + FOLLOWER], a ld a, SPRITEVIEWER_SET_FOLLOWING ld [wSpriteViewerJumptableIndex], a ret diff --git a/engine/debug/field/toggle_npc_movement.inc b/engine/debug/field/toggle_npc_movement.inc index 1dba049..bfbc8f0 100644 --- a/engine/debug/field/toggle_npc_movement.inc +++ b/engine/debug/field/toggle_npc_movement.inc @@ -15,12 +15,12 @@ FieldDebug_ToggleNPCMovement: cp 1 jr nz, .move ; stop NPCs - ld a, 0 - call Function17f9 + ld a, PLAYER_OBJECT + call FreezeAllOtherObjects jr .done .move - call Function1848 + call UnfreezeAllObjects .done and a ret diff --git a/engine/debug/field/unused_priority_menu.inc b/engine/debug/field/unused_priority_menu.inc index 8e20a12..defbfa9 100644 --- a/engine/debug/field/unused_priority_menu.inc +++ b/engine/debug/field/unused_priority_menu.inc @@ -6,12 +6,12 @@ FieldDebug_UnusedSetPriority: cp 1 jr nz, .skip ld a, 0 - call Function19aa + call SetObjFlags2_7_IfVisible jr .done .skip ld a, 0 - call Function19b5 + call ResetObjFlags2_7_IfVisible .done ld a, FIELDDEBUG_RETURN_REOPEN ret diff --git a/engine/debug/field/vram_viewer.inc b/engine/debug/field/vram_viewer.inc index e1bb4b1..506cff3 100644 --- a/engine/debug/field/vram_viewer.inc +++ b/engine/debug/field/vram_viewer.inc @@ -180,7 +180,7 @@ FieldDebug_DoVRAMViewer: call LoadTilesetGFX ld a, 1 ldh [hMapAnims], a - callfar LoadUsedSpritesGfx + callfar LoadUsedSpritesGFX call LoadFontExtra call EnableLCD ret diff --git a/engine/debug/field/warp.inc b/engine/debug/field/warp.inc index b84ba2b..1151897 100644 --- a/engine/debug/field/warp.inc +++ b/engine/debug/field/warp.inc @@ -7,8 +7,8 @@ FieldDebug_Warp: .do_warp ld a, [wMenuSelection] ld [wDefaultSpawnPoint], a - ld hl, wVramState - set 6, [hl] + ld hl, wStateFlags + set 6, [hl] ; TODO: ??? ldh a, [hROMBank] ld hl, FieldDebug_ShowWarpToText call QueueScript @@ -22,7 +22,7 @@ SECTION "engine/debug/field/warp.inc@FieldDebug_ShowWarpToText", ROMX FieldDebug_ShowWarpToText: call .ShowText - call Functionfcc24 + call DoTeleportAnimation ld a, MAPSETUP_TELEPORT ldh [hMapEntryMethod], a scf @@ -44,30 +44,31 @@ FieldDebug_ShowWarpToText: line "ワープします!" done -Functionfcc24: - ld a, 0 - call Function17f9 - ld a, 0 - ld hl, .MovementDatafcc49 +DoTeleportAnimation: + ld a, PLAYER_OBJECT + call FreezeAllOtherObjects + ld a, PLAYER_OBJECT + ld hl, .TeleportFrom call LoadMovementDataPointer - ld hl, wVramState - set 7, [hl] + ld hl, wStateFlags + set SCRIPTED_MOVEMENT_STATE_F, [hl] -.asm_fcc36 +.loop call Function2c4a - ld a, [wVramState] - bit 7, a - jr nz, .asm_fcc36 - ld a, 0 - ld hl, .MovementDatafcc4b - call Function16fb + ld a, [wStateFlags] + bit SCRIPTED_MOVEMENT_STATE_F, a + jr nz, .loop + ld a, PLAYER_OBJECT + ld hl, .TeleportTo + call LoadMovementDataPointer_KeepStateFlags ret -.MovementDatafcc49: - db $36 - db $32 +.TeleportFrom: + teleport_from + step_end + -.MovementDatafcc4b: - db $37 - db $32 +.TeleportTo: + teleport_to + step_end diff --git a/engine/debug/field_debug_menu.asm b/engine/debug/field_debug_menu.asm index 6dd6a0e..9ff7426 100644 --- a/engine/debug/field_debug_menu.asm +++ b/engine/debug/field_debug_menu.asm @@ -187,7 +187,7 @@ FieldDebug_TownMap: call ClearSprites callfar FlyMap call ClearPalettes - call Function3657 + call ReloadSpritesAndFont call LoadFontExtra call CloseWindow call GetMemSGBLayout @@ -208,8 +208,8 @@ FieldDebug_NamePlayer: call ClearSprites call GetMemSGBLayout call SetPalettes - ld hl, wce5f - res 4, [hl] + ld hl, wOptions + res NO_TEXT_SCROLL_F, [hl] call LoadFontExtra ld a, FIELDDEBUG_RETURN_REOPEN ret diff --git a/engine/dumps/bank01.asm b/engine/dumps/bank01.asm deleted file mode 100755 index 0f6edc8..0000000 --- a/engine/dumps/bank01.asm +++ /dev/null @@ -1,4080 +0,0 @@ -INCLUDE "constants.asm" - -SECTION "engine/dumps/bank01.asm@Function40fd", ROMX - -Function40fd: - ld hl, wd41a - set 5, [hl] - ld hl, wd41a - set 7, [hl] - ld hl, wd41a - set 0, [hl] - ld hl, wd41a - set 3, [hl] - ld hl, wd41a - set 6, [hl] - ld hl, wd41a - set 6, [hl] - ld hl, wd41e - set 5, [hl] - ld hl, wd41b - set 1, [hl] - ld hl, wd41c - set 4, [hl] - ld hl, wd41d - set 2, [hl] - ld hl, wd41b - set 2, [hl] - ld a, $01 - ld [wd29a], a - ld a, $01 - ld [wd29b], a - ld a, $06 - ld [wd29c], a - ld a, $12 - ld [wd29d], a - ld a, $06 - ld [wd29e], a - ld a, $02 - ld [wd2a0], a - ret - -SECTION "engine/dumps/bank01.asm@Table416b", ROMX - -Table416b: - dw Unknown41eb - dw Unknown4203 - dw Unknown41ef - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41ef - dw Unknown420f - dw Unknown41f3 - dw Unknown4203 - dw Unknown41f7 - dw Unknown4203 - dw Unknown41f3 - dw Unknown4203 - dw Unknown41f7 - dw Unknown420f - dw Unknown41fb - dw Unknown4203 - dw Unknown41ff - dw Unknown4203 - dw Unknown41fb - dw Unknown4203 - dw Unknown41ff - dw Unknown4203 - dw Unknown41fb - dw Unknown420f - dw Unknown41ff - dw Unknown420f - dw Unknown41fb - dw Unknown420f - dw Unknown41ff - dw Unknown420f - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - dw Unknown41eb - dw Unknown4203 - -Unknown41eb: - db $00, $01, $02, $03 - -Unknown41ef: - db $80, $81, $82, $83 - -Unknown41f3: - db $04, $05, $06, $07 - -Unknown41f7: - db $84, $85, $86, $87 - -Unknown41fb: - db $08, $09, $0a, $0b - -Unknown41ff: - db $88, $89, $8a, $8b - -Unknown4203: - db $00, $00, $00, $00 - db $08, $00, $08, $00 - db $02, $08, $08, $03 - -Unknown420f: - db $00, $08, $20, $00 - db $00, $20, $08, $08 - db $22, $08, $00, $23 - -Table421b: - dw Unknown423b - dw Unknown424b - dw Unknown423b - dw Unknown425b - dw Unknown426b - dw Unknown427b - dw Unknown426b - dw Unknown428b - dw Unknown429b - dw Unknown42bb - dw Unknown429b - dw Unknown42bb - dw Unknown42ab - dw Unknown42cb - dw Unknown42ab - dw Unknown42cb - -Unknown423b: - db $00, $00, $00, $00 - db $00, $08, $01, $00 - db $08, $00, $02, $02 - db $08, $08, $03, $03 - -Unknown424b: - db $00, $00, $80, $00 - db $00, $08, $81, $00 - db $08, $00, $82, $02 - db $08, $08, $83, $03 - -Unknown425b: - db $00, $08, $80, $20 - db $00, $00, $81, $20 - db $08, $08, $82, $22 - db $08, $00, $83, $23 - -Unknown426b: - db $00, $00, $04, $00 - db $00, $08, $05, $00 - db $08, $00, $06, $02 - db $08, $08, $07, $03 - -Unknown427b: - db $00, $00, $84, $00 - db $00, $08, $85, $00 - db $08, $00, $86, $02 - db $08, $08, $87, $03 - -Unknown428b: - db $00, $08, $84, $20 - db $00, $00, $85, $20 - db $08, $08, $86, $22 - db $08, $00, $87, $23 - -Unknown429b: - db $00, $00, $08, $00 - db $00, $08, $09, $00 - db $08, $00, $0a, $02 - db $08, $08, $0b, $03 - -Unknown42ab: - db $00, $08, $08, $20 - db $00, $00, $09, $20 - db $08, $08, $0a, $22 - db $08, $00, $0b, $23 - -Unknown42bb: - db $00, $00, $88, $00 - db $00, $08, $89, $00 - db $08, $00, $8a, $02 - db $08, $08, $8b, $03 - -Unknown42cb: - db $00, $08, $88, $20 - db $00, $00, $89, $20 - db $08, $08, $8a, $22 - db $08, $00, $8b, $23 - -Function42db: - ld bc, wCmdQueue - ld a, $01 -.sub_42e0 - ldh [hConnectedMapWidth], a - ld hl, $0000 - add hl, bc - ld a, [hl] - and a - jr z, .sub_42ed - call .sub_42fb -.sub_42ed - ld hl, $0010 - add hl, bc - ld b, h - ld c, l - ldh a, [hConnectedMapWidth] - inc a - cp $05 - jr nz, .sub_42e0 - ret -.sub_42fb - ld hl, $0001 - add hl, bc - ld a, [hl] - ld hl, Table431d - call CallJumptable - ld hl, $0000 - add hl, bc - ld a, [hl] - and a - ret z - ld hl, $0002 - add hl, bc - ld e, [hl] - ld d, $00 - ld hl, Table4329 - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -Table431d:: - dw Function4333 - dw Function439e - dw Function4430 - dw Function4374 - dw Function4374 - dw Function43c9 - -Table4329:: - dw Function4334 - dw Function4452 - dw Function4459 - dw Function446c - dw Function4495 - -Function4333: - ret - -Function4334: - ret - -Function4335: - push bc - ld h, b - ld l, c - ld bc, $0010 - xor a - call ByteFill - pop bc - ret - -Function4341: - ld hl, $000a - add hl, bc - inc [hl] - ret - -Function4347: - pop hl - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $000a - add hl, bc - ld l, [hl] - ld h, $00 - add hl, hl - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -Function4358: - ld hl, $000a - add hl, bc - ld a, [hl] - add a - ld l, a - ld h, $00 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -Function4366: - push bc - ld hl, $0000 - add hl, bc - ld a, [hl] - dec a - call GetObjectStruct - ld d, b - ld e, c - pop bc - ret - -Function4374: - ld de, Table437a - jp Function4358 - -Table437a: - dw Function437e - dw Function439b - -Function437e: - call Function4341 - ld hl, $000e - add hl, bc - ld a, [hl] - ld hl, $000b - add hl, bc - ld [hl], a - ld hl, $0006 - add hl, bc - ld [hl], $00 - ld hl, $000f - add hl, bc - ld a, [hl] - ld hl, $0007 - add hl, bc - ld [hl], a - -Function439b: - jp Function4402 - -Function439e: - ld de, Table43a4 - jp Function4358 - -Table43a4: - dw Function43a8 - dw Function43c6 - -Function43a8: - call Function4341 - call Function4366 - ld hl, $0009 - add hl, de - ld a, [hl] - add a - dec a - ld hl, $000b - add hl, bc - ld [hl], a - ld hl, $0006 - add hl, bc - ld [hl], $00 - ld hl, $0007 - add hl, bc - ld [hl], $08 - -Function43c6: - jp Function4402 - -Function43c9: - ld de, Table43cf - jp Function4358 - -Table43cf: - dw Function43d3 - dw Function43ff - -Function43d3: - call Function4366 - ld hl, $0009 - add hl, de - ld a, [hl] - add $01 - ld hl, $000b - add hl, bc - ld [hl], a - ld hl, $000e - add hl, bc - ld a, [hl] - ld hl, $0006 - add hl, bc - ld [hl], a - ld hl, $000f - add hl, bc - ld a, [hl] - ld hl, $0007 - add hl, bc - ld [hl], a - ld hl, $000d - add hl, bc - ldh a, [rOBP1] - ld [hl], a - ldh [rOBP1], a - -Function43ff: - jp Function4402 - -Function4402: - ld hl, $000b - add hl, bc - ld a, [hl] - and a - jr z, .sub_440e - dec [hl] - jp z, Function4335 -.sub_440e - call Function4366 - ld hl, $0018 - add hl, de - ld a, [hl] - ld hl, $0006 - add hl, bc - add [hl] - ld hl, $0004 - add hl, bc - ld [hl], a - ld hl, $0019 - add hl, de - ld a, [hl] - ld hl, $0007 - add hl, bc - add [hl] - ld hl, $0005 - add hl, bc - ld [hl], a - ret - -Function4430: - ld hl, Table4436 - jp Function4358 - -Table4436: - dw Function443a - dw Function444f - -Function443a: - call Function4341 - ld hl, $000b - add hl, bc - ld [hl], $31 - ld hl, $0006 - add hl, bc - ld [hl], $00 - ld hl, $0007 - add hl, bc - ld [hl], $f0 - -Function444f: - jp Function4402 - -Function4452: - ld hl, $000c - add hl, bc - ld [hl], $02 - ret - -Function4459: - ld hl, $000b - add hl, bc - ld a, [hl] - cp $30 - ld a, $01 - jr c, .sub_4466 - ld a, $00 -.sub_4466 - ld hl, $000c - add hl, bc - ld [hl], a - ret - -Function446c: - ld hl, $0009 - add hl, bc - inc [hl] - ld a, [hl] - cp $05 - jr c, .sub_4480 - xor a - ld [hl], a - ld hl, $0008 - add hl, bc - ld a, [hl] - xor $01 - ld [hl], a -.sub_4480 - ld hl, $0008 - add hl, bc - ld a, $00 - bit 0, [hl] - jr z, .sub_448f - ld hl, $000d - add hl, bc - ld a, [hl] -.sub_448f - ld hl, $000c - add hl, bc - ld [hl], a - ret - -Function4495: - ld hl, $0009 - add hl, bc - inc [hl] - ld a, [hl] - cp $03 - ld a, $03 - jr nz, .sub_44a5 - xor a - ld [hl], a - ld a, $04 -.sub_44a5 - ld hl, $000c - add hl, bc - ld [hl], a - ret - -Table44ab: - dw Unknown44b5 - dw Unknown44b6 - dw Unknown44c7 - dw Unknown44d0 - dw Unknown44e1 - -Unknown44b5: - db $00 - -Unknown44b6: - db $04, $00, $00, $00 - db $00, $00, $08, $01 - db $00, $08, $00, $02 - db $00, $08, $08, $03, $00 - -Unknown44c7: - db $02, $00, $00, $00 - db $00, $00, $08, $00, $20 - -Unknown44d0: - db $04, $00, $00, $00 - db $00, $00, $08, $00 - db $00, $08, $00, $00 - db $00, $08, $08, $00, $00 - -Unknown44e1: - db $04, $00, $00, $00 - db $40, $00, $08, $00 - db $40, $08, $00, $00 - db $40, $08, $08, $00, $40 - -Function44f2: - ld hl, $0008 - add hl, bc - ld a, [hl] - and a - jr nz, .sub_44fd - call Function486a -.sub_44fd - ld e, a - ld d, $00 - ld hl, Function4545 - push hl - ld hl, $0005 - add hl, bc - bit 5, [hl] - jp nz, Function453e - ld hl, Table4516 - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -Table4516:: - dw Function486a - dw Function47b8 - dw Function4b88 - dw Function4b65 - dw Function4b78 - dw Function4bc9 - dw Function4baa - dw Function484d - dw Function4856 - dw Function4859 - dw Function485c - dw Function485f - dw Function485f - dw Function485f - dw Function485f - dw Function4ed5 - dw Function4f14 - dw Function4a05 - dw Function4a8b - dw Function4869 - -Function453e: - ld hl, $000a - add hl, bc - ld [hl], $02 - ret - -Function4545: - ld hl, $0005 - add hl, bc - bit 6, [hl] - jr nz, Function4560 - ld hl, $000a - add hl, bc - ld a, [hl] - ld hl, Table4558 - jp CallJumptable - -Table4558: - dw Function4560 - dw Function4567 - dw Function4593 - dw Function45a0 - -Function4560: - ld hl, $000d - add hl, bc - ld [hl], $ff - ret - -Function4567: - ld hl, $0004 - add hl, bc - bit 3, [hl] - jr nz, Function4593 - ld hl, $0005 - add hl, bc - bit 5, [hl] - jr nz, Function4593 - ld hl, $000b - add hl, bc - ld a, [hl] - inc a - and $0f - ld [hl], a - rrca - rrca - and $03 - ld d, a - ld hl, $0007 - add hl, bc - ld a, [hl] - and $0c - or d - ld hl, $000d - add hl, bc - ld [hl], a - ret - -Function4593: - ld hl, $0007 - add hl, bc - ld a, [hl] - and $0c - ld hl, $000d - add hl, bc - ld [hl], a - ret - -Function45a0: - ld hl, $000b - add hl, bc - ld a, [hl] - and $f0 - ld e, a - ld a, [hl] - inc a - and $0f - ld d, a - cp $04 - jr c, .sub_45b9 - ld d, $00 - ld a, e - add $10 - and $30 - ld e, a -.sub_45b9 - ld a, d - or e - ld [hl], a - swap e - ld d, $00 - ld hl, Unknown45d0 - add hl, de - ld a, [hl] - ld hl, $0007 - add hl, bc - ld [hl], a - ld hl, $000d - add hl, bc - ld [hl], a - ret - -Unknown45d0: - db $00, $0C, $04, $08 - -Function45d4: - ld hl, $0010 - add hl, bc - ld a, [hl] - ld hl, $0012 - add hl, bc - ld [hl], a - ld hl, $0011 - add hl, bc - ld a, [hl] - ld hl, $0013 - add hl, bc - ld [hl], a - ld hl, $000e - add hl, bc - ld a, [hl] - ld hl, $000f - add hl, bc - ld [hl], a - call Function464c - ld hl, $000e - add hl, bc - ld a, [hl] - call Function4636 - ret - -Function45fe: - ld hl, $0012 - add hl, bc - ld a, [hl] - ld hl, $0010 - add hl, bc - ld [hl], a - ld hl, $0013 - add hl, bc - ld a, [hl] - ld hl, $0011 - add hl, bc - ld [hl], a - ret - -Function4613: - ld hl, $0005 - add hl, bc - bit 3, [hl] - jr z, .sub_4623 - ld hl, $000e - add hl, bc - ld a, [hl] - call Function464c -.sub_4623 - nop - ld hl, $000e - add hl, bc - ld a, [hl] - call Function4636 - ret c - ld hl, $000f - add hl, bc - ld a, [hl] - call Function4636 - ret - -Function4636: - and $f0 - cp $70 - nop - nop - ld hl, $0005 - add hl, bc - res 7, [hl] - and a - ret - -Function4644: - ld hl, $0005 - add hl, bc - set 7, [hl] - scf - ret - -Function464c: - call .sub_465f - jr c, .sub_4658 - ld hl, $0005 - add hl, bc - set 3, [hl] - ret -.sub_4658 - ld hl, $0005 - add hl, bc - res 3, [hl] - ret -.sub_465f - ld d, a - and $f0 - cp $10 - jr z, .sub_466c - cp $20 - jr z, .sub_4672 - scf - ret -.sub_466c - ld a, d - and $07 - ret z - scf - ret -.sub_4672 - ld a, d - and $07 - ret z - scf - ret - -Function4678: - xor a - ld hl, $000a - add hl, bc - ld [hl], a - ld hl, $000b - add hl, bc - ld [hl], a - ld hl, $0006 - add hl, bc - ld [hl], $ff - ret - -Function468a: - and $0f - ld hl, $0006 - add hl, bc - ld [hl], a - ld hl, $0004 - add hl, bc - bit 2, [hl] - jr nz, Function46a2 - ld hl, $0007 - add hl, bc - add a - add a - and $0c - ld [hl], a - -Function46a2: - call Function46e5 - ld hl, $0009 - add hl, bc - ld [hl], a - ld a, d - call Function4748 - ld hl, $0012 - add hl, bc - add [hl] - ld hl, $0010 - add hl, bc - ld [hl], a - ld d, a - ld a, e - call Function4748 - ld hl, $0013 - add hl, bc - add [hl] - ld hl, $0011 - add hl, bc - ld [hl], a - ld e, a - push bc - call GetCoordTile - pop bc - ld hl, $000e - add hl, bc - ld [hl], a - ret - -Function46d3: - call Function46e5 - ld hl, $0018 - add hl, bc - ld a, [hl] - add d - ld [hl], a - ld hl, $0019 - add hl, bc - ld a, [hl] - add e - ld [hl], a - ret - -Function46e5: - ld hl, $0006 - add hl, bc - ld l, [hl] - ld h, $00 - add hl, hl - add hl, hl - ld de, Table4708 - add hl, de - ld d, [hl] - inc hl - ld e, [hl] - inc hl - ld a, [hli] - ld h, [hl] - ret - -Function46f9: - ld hl, $0006 - add hl, bc - ld l, [hl] - ld h, $00 - add hl, hl - add hl, hl - ld de, Table470b - add hl, de - ld a, [hl] - ret - -Table4708: - db $00, $01, $10 - -Table470b: - db $01, $00, $ff - db $10, $01, $ff - db $00, $10, $01 - db $01, $00, $10 - db $01, $00, $02 - db $08, $02, $00 - db $fe, $08, $02 - db $fe, $00, $08 - db $02, $02, $00 - db $08, $02, $00 - db $04, $04, $04 - db $00, $fc, $04 - db $04, $fc, $00 - db $04, $04, $04 - db $00, $04, $04 - db $00, $08, $02 - db $08, $00, $f8 - db $02, $08, $f8 - db $00, $02, $08 - db $08, $00, $02 - db $08 - -Function4748: - add a - ret z - ld a, $01 - ret nc - ld a, $ff - ret - -Function4750: - ld hl, $0006 - add hl, bc - ld a, [hl] - and $03 - ld [wPlayerStepDirection], a - call Function46e5 - ld a, d - ld [wcb6c], a - ld a, e - ld [wcb6d], a - ld hl, wcb6e - set 5, [hl] - ret - -Function476b: - ld a, [wXCoord] - ld d, a - ld hl, $0010 - add hl, bc - ld a, [hl] - sub d - and $0f - swap a - ld hl, $0018 - add hl, bc - ld [hl], a - ld a, [wYCoord] - ld e, a - ld hl, $0011 - add hl, bc - ld a, [hl] - sub e - and $0f - swap a - ld hl, $0019 - add hl, bc - ld [hl], a - ret - -Function4792: - ld hl, $001d - add hl, bc - ld [hl], $00 - ret - -Function4799: - ld hl, $001d - add hl, bc - inc [hl] - ret - -Function479f: - ld hl, $001d - add hl, bc - ld a, [hl] - ret - -Function47a5: - ld hl, $001d - add hl, bc - ld [hl], a - ret - -Function47ab: - ld hl, $001d - add hl, bc - ld l, [hl] - ld h, $00 - add hl, hl - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -Function47b8: - ld hl, $0003 - add hl, bc - ld a, [hl] - and $1f - ld hl, Table47c5 - jp CallJumptable - -Table47c5: - dw Function47fb - dw Function4812 - dw Function481c - dw Function47fc - dw Function4806 - dw Function482b - dw Function482f - dw Function4833 - dw Function4837 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw $0000 - dw Function484d - dw Function4856 - dw Function4859 - dw Function485c - dw Function485f - dw Function485f - dw Function485f - dw Function485f - dw Function4862 - dw Function4865 - dw Function4868 - -Function47fb: - ret - -Function47fc: - call Random - ldh a, [hRandomAdd] - and $01 - jp Function48a9 - -Function4806: - call Random - ldh a, [hRandomAdd] - and $01 - or $02 - jp Function48a9 - -Function4812: - call Random - ldh a, [hRandomAdd] - and $03 - jp Function48a9 - -Function481c: - call Random - ldh a, [hRandomAdd] - and $0c - ld hl, $0007 - add hl, bc - ld [hl], a - jp Function48da - -Function482b: - ld a, $00 - jr Function4839 - -Function482f: - ld a, $04 - jr Function4839 - -Function4833: - ld a, $08 - jr Function4839 - -Function4837: - ld a, $0c - -Function4839: - ld hl, $0007 - add hl, bc - ld [hl], a - call Function45fe - call Function4678 - ld hl, $0008 - add hl, bc - ld [hl], $04 - jp Function4b78 - -Function484d: - ld hl, $0008 - add hl, bc - ld [hl], $07 - jp Function4bed - -Function4856: - jp Function4bf9 - -Function4859: - jp Function4c0c - -Function485c: - jp Function4fbc - -Function485f: - jp Function4bf3 - -Function4862: - jp Function4fbc - -Function4865: - jp Function4c1f - -Function4868: - ret - -Function4869: - ret - -Function486a: - ld hl, $0010 - add hl, bc - ld d, [hl] - ld hl, $0011 - add hl, bc - ld e, [hl] - push bc - call GetCoordTile - pop bc - ld hl, $000e - add hl, bc - ld [hl], a - call Function45d4 - call Function4678 - ld a, $01 - ld hl, $0008 - add hl, bc - ld [hl], a - ret - -Function488c: - call Function468a - call Function771e - jr c, Function48d4 - call Function4613 - ldh a, [hConnectionStripLength] - ld d, a - ld a, [wCenteredObject] - cp d - jr z, Function48c6 - ld hl, $0008 - add hl, bc - ld [hl], $02 - jp Function4b88 - -Function48a9: - call Function468a - call Function771e - jr c, Function48d4 - call Function4613 - ldh a, [hConnectionStripLength] - ld d, a - ld a, [wCenteredObject] - cp d - jr z, Function48c6 - ld hl, $0008 - add hl, bc - ld [hl], $06 - jp Function4baa - -Function48c6: - ld hl, $0008 - add hl, bc - ld [hl], $05 - ld hl, wcb6e - set 7, [hl] - jp Function4bc9 - -Function48d4: - call Function4678 - call Function45fe - -Function48da: - ld hl, $0006 - add hl, bc - ld [hl], $ff - ld hl, $0008 - add hl, bc - ld [hl], $03 - call Random - ldh a, [hRandomAdd] - and $7f - ld hl, $0009 - add hl, bc - ld [hl], a - jp Function4b65 - -Function48f5: - ld hl, $0008 - add hl, bc - ld [hl], $01 - ld hl, $001c - add hl, bc - ld a, [hl] - and $07 - cp $04 - ld a, $07 - jr nc, .sub_490a - ld a, $06 -.sub_490a - call Function468a - call Function771e - jr c, .sub_4920 - ld hl, $0008 - add hl, bc - ld [hl], $02 - ld hl, $001c - add hl, bc - inc [hl] - jp Function4b88 -.sub_4920 - ld hl, $0006 - add hl, bc - ld [hl], $ff - ld hl, $000a - add hl, bc - ld [hl], $01 - call Function45fe - ret - -Function4930: - ld a, [wPlayerMapX] - ld d, a - ld a, [wPlayerMapY] - ld e, a - ld hl, $0010 - add hl, bc - ld a, d - sub [hl] - ld d, a - ld hl, $0011 - add hl, bc - ld a, e - sub [hl] - ld e, a - jr z, .sub_495b - ld a, d - and a - jr z, .sub_4965 - push de - ld a, d - call .sub_4973 - ld d, a - ld a, e - call .sub_4973 - ld e, a - cp d - pop de - jr nc, .sub_4965 -.sub_495b - ld a, $08 - bit 7, d - jr nz, .sub_496d - ld a, $0c - jr .sub_496d -.sub_4965 - ld a, $04 - bit 7, e - jr nz, .sub_496d - ld a, $00 -.sub_496d - ld hl, $0007 - add hl, bc - ld [hl], a - ret -.sub_4973 - bit 7, a - ret z - dec a - cpl - ret - -Function4979: - ret - -Function497a: - ld hl, $001e - add hl, bc - inc [hl] - ld a, [hl] - srl a - srl a - and $07 - ld l, a - ld h, $00 - ld de, Table4994 - add hl, de - ld a, [hl] - ld hl, $001b - add hl, bc - ld [hl], a - ret - -Table4994: - db $00, $FF, $FE, $FD - db $FC, $FD, $FE, $FF - -Function499c: - call Function46f9 - ld hl, $001f - add hl, bc - ld e, [hl] - add e - ld [hl], a - ld d, $00 - ld hl, Unknown49dc - add hl, de - ld a, [hl] - ld hl, $001b - add hl, bc - ld [hl], a - ldh a, [hConnectionStripLength] - cp $01 - ret nz - ldh a, [hJoypadState] - and $f0 - ret z - ld d, $00 - bit 7, a - jr nz, .sub_49d0 - ld d, $04 - bit 6, a - jr nz, .sub_49d0 - ld d, $08 - bit 5, a - jr nz, .sub_49d0 - ld d, $0c -.sub_49d0 - ld hl, $0007 - add hl, bc - ld [hl], d - ld hl, $000a - add hl, bc - ld [hl], $02 - ret - -Unknown49dc: - db $FC, $FB, $FA, $F9 - db $F8, $F7, $F6, $F5 - db $F5, $F5, $F4, $F4 - db $F4, $F4, $F4, $F4 - db $F5, $F5, $F6, $F6 - db $F7, $F7, $F8, $F8 - db $FA, $FB, $FC, $FE - db $FF, $00, $00, $00 - -Function49fc: - ld hl, $0008 - add hl, bc - ld [hl], $11 - call Function4792 - -Function4a05: - ld de, Table4a0b - jp Function47ab - -Table4a0b: - dw Function4a13 - dw Function4a28 - dw Function4a38 - dw Function4a53 - -Function4a13: - ld hl, $001e - add hl, bc - ld [hl], $04 - ld hl, $000b - add hl, bc - ld [hl], $00 - ld hl, $0009 - add hl, bc - ld [hl], $10 - call Function4799 - -Function4a28: - ld hl, $000a - add hl, bc - ld [hl], $03 - ld hl, $0009 - add hl, bc - dec [hl] - ret nz - call Function4799 - ret - -Function4a38: - ld hl, $001e - add hl, bc - ld [hl], $04 - ld hl, $000b - add hl, bc - ld [hl], $00 - ld hl, $001f - add hl, bc - ld [hl], $10 - ld hl, $0009 - add hl, bc - ld [hl], $10 - call Function4799 - -Function4a53: - ld hl, $000a - add hl, bc - ld [hl], $03 - ld hl, $001f - add hl, bc - inc [hl] - ld a, [hl] - ld d, $60 - call Function17cd - ld a, h - sub $60 - ld hl, $001b - add hl, bc - ld [hl], a - ld hl, $0009 - add hl, bc - dec [hl] - ret nz - ld hl, $0008 - add hl, bc - ld [hl], $01 - ld hl, $000b - add hl, bc - ld [hl], $00 - call Function4792 - ret - -Function4a82: - ld hl, $0008 - add hl, bc - ld [hl], $12 - call Function4792 - -Function4a8b: - ld de, Table4a91 - jp Function47ab - -Table4a91: - dw Function4a9f - dw Function4aaf - dw Function4ab8 - dw Function4ad4 - dw Function4af6 - dw Function4b00 - dw Function4b0c - -Function4a9f: - ld hl, $000a - add hl, bc - ld [hl], $00 - ld hl, $0009 - add hl, bc - ld [hl], $10 - call Function4799 - ret - -Function4aaf: - ld hl, $0009 - add hl, bc - dec [hl] - ret nz - call Function4799 - -Function4ab8: - ld hl, $000b - add hl, bc - ld [hl], $00 - ld hl, $001e - add hl, bc - ld [hl], $04 - ld hl, $001f - add hl, bc - ld [hl], $00 - ld hl, $0009 - add hl, bc - ld [hl], $10 - call Function4799 - ret - -Function4ad4: - ld hl, $000a - add hl, bc - ld [hl], $03 - ld hl, $001f - add hl, bc - inc [hl] - ld a, [hl] - ld d, $60 - call Function17cd - ld a, h - sub $60 - ld hl, $001b - add hl, bc - ld [hl], a - ld hl, $0009 - add hl, bc - dec [hl] - ret nz - call Function4799 - -Function4af6: - ld hl, $0009 - add hl, bc - ld [hl], $10 - call Function4799 - ret - -Function4b00: - ld hl, $000a - add hl, bc - ld [hl], $03 - ld hl, $0009 - add hl, bc - dec [hl] - ret nz - -Function4b0c: - ld hl, $0008 - add hl, bc - ld [hl], $01 - ld hl, $000b - add hl, bc - ld [hl], $00 - ld hl, $001b - add hl, bc - ld [hl], $00 - call Function4792 - ret - -Function4b22: - call Function4792 - -Function4b25: - ret - -Function4b26: - ld a, $01 - ld [wcb70], a - push bc - ld de, Unknown4b42 - call PushToCmdQueue - ld d, b - ld e, c - pop bc - ld hl, $0009 - add hl, bc - ld a, [hl] - add a - dec a - ld hl, $000e - add hl, de - ld [hl], a - ret - -Unknown4b42: - db $01, $01, $FC, $02, $00, $08 - -Function4b48: - ld e, a - add a - add e - ld e, a - ld d, $00 - ld hl, Unknown4b5f - add hl, de - ld d, h - ld e, l - push bc - call PushToCmdQueue - pop bc - ld a, $06 - ld [wcb70], a - ret - -Unknown4b5f: - db $05, $04, $FC, $02, $02, $08 - -Function4b65: - ld hl, $000a - add hl, bc - ld [hl], $02 - ld hl, $0009 - add hl, bc - dec [hl] - ret nz - ld hl, $0008 - add hl, bc - ld [hl], $01 - ret - -Function4b78: - call Function4979 - ld hl, $000a - add hl, bc - ld [hl], $02 - ld hl, $0006 - add hl, bc - ld [hl], $ff - ret - -Function4b88: - call Function4979 - ld hl, $000a - add hl, bc - ld [hl], $01 - call Function46d3 - ld hl, $0009 - add hl, bc - dec [hl] - ret nz - call Function45d4 - ld hl, $0008 - add hl, bc - ld [hl], $01 - ld hl, $0006 - add hl, bc - ld [hl], $ff - ret - -Function4baa: - ld hl, $000a - add hl, bc - ld [hl], $01 - call Function46d3 - ld hl, $0009 - add hl, bc - dec [hl] - ret nz - call Function45d4 - ld hl, $0006 - add hl, bc - ld [hl], $ff - ld hl, $0008 - add hl, bc - ld [hl], $01 - ret - -Function4bc9: - ld hl, $000a - add hl, bc - ld [hl], $01 - call Function4750 - ld hl, $0009 - add hl, bc - dec [hl] - ret nz - ld hl, wcb6e - set 6, [hl] - call Function45d4 - ld hl, $0008 - add hl, bc - ld [hl], $01 - ld hl, $0006 - add hl, bc - ld [hl], $ff - ret - -Function4bed: - ld a, [wPlayerMovement] - jp Function4c37 - -Function4bf3: - ld a, [wMovementObject] - jp Function4c37 - -Function4bf9: - ld hl, $001c - add hl, bc - ld e, [hl] - inc [hl] - ld d, $00 - ld hl, wMovementObject - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - ld a, [hl] - jp Function4c37 - -Function4c0c: - ld hl, $001c - add hl, bc - ld e, [hl] - inc [hl] - ld d, $00 - ld hl, wcb7c - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - ld a, [hl] - jp Function4c37 - -Function4c1f: - ld hl, $001c - add hl, bc - ld e, [hl] - inc [hl] - ld d, $00 - ld hl, wMovementDataAddr - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - ld a, [wMovementDataBank] - call GetFarByte - jp Function4c37 - -Function4c37: - push af - call Function4f86 - pop af - ld l, a - ld h, $00 - add hl, hl - ld de, Table4c48 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -Table4c48: - dw Function4d94 - dw Function4d98 - dw Function4d9c - dw Function4da0 - dw Function4db6 - dw Function4dbb - dw Function4dc0 - dw Function4dc5 - dw Function4dca - dw Function4dcf - dw Function4dd4 - dw Function4dd9 - dw Function4dde - dw Function4de3 - dw Function4de8 - dw Function4ded - dw Function4df2 - dw Function4df7 - dw Function4dfc - dw Function4e01 - dw Function4e06 - dw Function4e0b - dw Function4e10 - dw Function4e15 - dw Function4e1a - dw Function4e1f - dw Function4e24 - dw Function4e29 - dw Function4e2e - dw Function4e33 - dw Function4e38 - dw Function4e3d - dw Function4e42 - dw Function4e47 - dw Function4e4c - dw Function4e51 - dw Function4d5e - dw Function4d67 - dw Function4d70 - dw Function4d79 - dw Function4d82 - dw Function4d8b - dw Function4d2c - dw Function4d30 - dw Function4d34 - dw Function4d38 - dw Function4d3c - dw Function4d40 - dw Function4d44 - dw Function4d48 - dw Function4cc1 - dw Function4cef - dw Function4cb8 - dw Function4d1a - dw Function49fc - dw Function4a82 - -Function4cb8: - ld hl, $001c - add hl, bc - ld [hl], $00 - jp Function47b8 - -Function4cc1: - ld hl, $0001 - add hl, bc - ld a, [hl] - cp $ff - jr nz, .sub_4cce - ld a, $05 - jr .sub_4cd8 -.sub_4cce - push bc - call GetMapObject - ld hl, $0004 - add hl, bc - ld a, [hl] - pop bc -.sub_4cd8 - ld hl, $0003 - add hl, bc - ld [hl], a - ld hl, $0008 - add hl, bc - ld [hl], $01 - ld hl, $001c - add hl, bc - ld [hl], $00 - ld hl, wVramState - res 7, [hl] - ret - -Function4cef: - push bc - ld hl, $0001 - add hl, bc - ld a, [hl] - push af - ld h, b - ld l, c - ld bc, $0028 - xor a - call ByteFill - pop af - call GetMapObject - ld hl, $0000 - add hl, bc - ld [hl], $ff - pop bc - ld hl, wObjectFollow_Leader - ldh a, [hConnectionStripLength] - cp [hl] - jr nz, .sub_4d14 - ld [hl], $ff -.sub_4d14 - ld hl, wVramState - res 7, [hl] - ret - -Function4d1a: - ld hl, $000a - add hl, bc - ld [hl], $02 - ld hl, $0008 - add hl, bc - ld [hl], $04 - ld hl, wVramState - res 7, [hl] - ret - -Function4d2c: - ld a, $01 - jr Function4d4a - -Function4d30: - ld a, $02 - jr Function4d4a - -Function4d34: - ld a, $03 - jr Function4d4a - -Function4d38: - ld a, $04 - jr Function4d4a - -Function4d3c: - ld a, $05 - jr Function4d4a - -Function4d40: - ld a, $06 - jr Function4d4a - -Function4d44: - ld a, $07 - jr Function4d4a - -Function4d48: - ld a, $08 - -Function4d4a: - ld hl, $0009 - add hl, bc - ld [hl], a - ld hl, $0008 - add hl, bc - ld [hl], $03 - ld hl, $0006 - add hl, bc - ld [hl], $ff - jp Function4b65 - -Function4d5e: - ld hl, $0004 - add hl, bc - res 3, [hl] - jp Function47b8 - -Function4d67: - ld hl, $0004 - add hl, bc - set 3, [hl] - jp Function47b8 - -Function4d70: - ld hl, $0004 - add hl, bc - res 2, [hl] - jp Function47b8 - -Function4d79: - ld hl, $0004 - add hl, bc - set 2, [hl] - jp Function47b8 - -Function4d82: - ld hl, $0005 - add hl, bc - res 0, [hl] - jp Function47b8 - -Function4d8b: - ld hl, $0005 - add hl, bc - set 0, [hl] - jp Function47b8 - -Function4d94: - ld a, $00 - jr Function4da4 - -Function4d98: - ld a, $04 - jr Function4da4 - -Function4d9c: - ld a, $08 - jr Function4da4 - -Function4da0: - ld a, $0c - jr Function4da4 - -Function4da4: - ld hl, $0007 - add hl, bc - ld [hl], a - ld hl, $000a - add hl, bc - ld [hl], $02 - ld hl, $0006 - add hl, bc - ld [hl], $ff - ret - -Function4db6: - ld a, $00 - jp Function4e56 - -Function4dbb: - ld a, $01 - jp Function4e56 - -Function4dc0: - ld a, $02 - jp Function4e56 - -Function4dc5: - ld a, $03 - jp Function4e56 - -Function4dca: - ld a, $04 - jp Function4e56 - -Function4dcf: - ld a, $05 - jp Function4e56 - -Function4dd4: - ld a, $06 - jp Function4e56 - -Function4dd9: - ld a, $07 - jp Function4e56 - -Function4dde: - ld a, $08 - jp Function4e56 - -Function4de3: - ld a, $09 - jp Function4e56 - -Function4de8: - ld a, $0a - jp Function4e56 - -Function4ded: - ld a, $0b - jp Function4e56 - -Function4df2: - ld a, $0c - jp Function4e56 - -Function4df7: - ld a, $0d - jp Function4e56 - -Function4dfc: - ld a, $0e - jp Function4e56 - -Function4e01: - ld a, $0f - jp Function4e56 - -Function4e06: - ld a, $00 - jp Function4e7c - -Function4e0b: - ld a, $01 - jp Function4e7c - -Function4e10: - ld a, $02 - jp Function4e7c - -Function4e15: - ld a, $03 - jp Function4e7c - -Function4e1a: - ld a, $04 - jp Function4e7c - -Function4e1f: - ld a, $05 - jp Function4e7c - -Function4e24: - ld a, $06 - jp Function4e7c - -Function4e29: - ld a, $07 - jp Function4e7c - -Function4e2e: - ld a, $08 - jp Function4e7c - -Function4e33: - ld a, $09 - jp Function4e7c - -Function4e38: - ld a, $0a - jp Function4e7c - -Function4e3d: - ld a, $0b - jp Function4e7c - -Function4e42: - ld a, $0c - jp Function4e7c - -Function4e47: - ld a, $0d - jp Function4e7c - -Function4e4c: - ld a, $0e - jp Function4e7c - -Function4e51: - ld a, $0f - jp Function4e7c - -Function4e56: - call Function468a - call Function4613 - ld a, [wCenteredObject] - ld d, a - ldh a, [hConnectionStripLength] - cp d - jr z, .sub_4e6e - ld hl, $0008 - add hl, bc - ld [hl], $02 - jp Function4b88 -.sub_4e6e - ld hl, wcb6e - set 7, [hl] - ld hl, $0008 - add hl, bc - ld [hl], $05 - jp Function4bc9 - -Function4e7c: - call Function468a - ld hl, $001f - add hl, bc - ld [hl], $00 - ld hl, $0005 - add hl, bc - res 3, [hl] - call Function4792 - ld hl, $000a - add hl, bc - ld [hl], $02 - call Function4b26 - ld a, [wCenteredObject] - ld d, a - ldh a, [hConnectionStripLength] - cp d - jr z, .sub_4ea9 - ld hl, $0008 - add hl, bc - ld [hl], $0f - jp Function4ed5 -.sub_4ea9 - ld hl, wcb6e - set 7, [hl] - ld hl, $0008 - add hl, bc - ld [hl], $10 - jp Function4f14 - -Function4eb7: - call Function468a - ld hl, $0008 - add hl, bc - ld [hl], $0f - ld hl, $000a - add hl, bc - ld [hl], $02 - ld hl, $0005 - add hl, bc - res 3, [hl] - ld hl, $001f - add hl, bc - ld [hl], $00 - call Function4792 - -Function4ed5: - ld de, Table4edb - jp Function47ab - -Table4edb: - dw Function4edf - dw Function4efb - -Function4edf: - call Function46d3 - call Function499c - ld hl, $0009 - add hl, bc - dec [hl] - ret nz - call Function4799 - call Function45d4 - call Function46a2 - ld hl, $0005 - add hl, bc - res 3, [hl] - ret - -Function4efb: - call Function46d3 - call Function499c - ld hl, $0009 - add hl, bc - dec [hl] - ret nz - ld hl, $0008 - add hl, bc - ld [hl], $01 - call Function45d4 - call Function4792 - ret - -Function4f14: - ld de, Table4f1a - jp Function47ab - -Table4f1a: - dw Function4f20 - dw Function4f40 - dw Function4f4b - -Function4f20: - call Function499c - call Function4750 - ld hl, $0009 - add hl, bc - dec [hl] - ret nz - call Function45d4 - ld hl, $0005 - add hl, bc - res 3, [hl] - ld hl, wcb6e - set 6, [hl] - set 4, [hl] - call Function4799 - ret - -Function4f40: - call Function46a2 - ld hl, wcb6e - set 7, [hl] - call Function4799 - -Function4f4b: - call Function499c - call Function4750 - ld hl, $0009 - add hl, bc - dec [hl] - ret nz - ld hl, $0008 - add hl, bc - ld [hl], $01 - call Function45d4 - ld hl, wcb6e - set 6, [hl] - call Function4792 - ldh a, [hConnectionStripLength] - cp $01 - jp z, .sub_4f70 - ret -.sub_4f70 - ld hl, $0007 - add hl, bc - ld a, [hl] - rra - rra - and $03 - ld d, a - ld hl, $0006 - add hl, bc - ld a, [hl] - and $03 - cp d - ret z - jp Function4b25 - -Function4f86: - ld e, a - ld a, [wObjectFollow_Follower] - and a - ret z - cp $ff - ret z - ld a, [wObjectFollow_Leader] - ld d, a - ldh a, [hConnectionStripLength] - cp d - ret nz - ld a, e - cp $2a - ret z - cp $00 - ret z - cp $01 - ret z - cp $02 - ret z - cp $03 - ret z - cp $32 - ret z - cp $35 - ret z - push af - ld hl, wFollowerMovementQueueLength - inc [hl] - ld e, [hl] - ld d, $00 - ld hl, wFollowMovementQueue - add hl, de - pop af - ld [hl], a - ret - -Function4fbc: - call .sub_4fc5 - ld hl, Table4c48 - jp CallJumptable -.sub_4fc5 - ld hl, wFollowerMovementQueueLength - ld a, [hl] - and a - jr z, .sub_4fe2 - cp $ff - jr z, .sub_4fe2 - ld e, a - dec [hl] - ld d, $00 - ld hl, wFollowMovementQueue - add hl, de - inc e - ld a, $ff -.sub_4fdb - ld d, [hl] - ld [hld], a - ld a, d - dec e - jr nz, .sub_4fdb - ret -.sub_4fe2 - call .sub_4fe9 - ret c - ld a, $2a - ret -.sub_4fe9 - ld a, [wObjectFollow_Leader] - cp $ff - jr z, .sub_4fff - push bc - call GetObjectStruct - ld hl, $0000 - add hl, bc - ld a, [hl] - pop bc - and a - jr z, .sub_4fff - and a - ret -.sub_4fff - xor a - ld [wObjectFollow_Follower], a - ld a, $32 - scf - ret - -Function5007: - ld bc, wObjectStructs - xor a -.sub_500b - ldh [hConnectionStripLength], a - ld hl, $0000 - add hl, bc - ld a, [hl] - and a - jr z, .sub_5034 - ld hl, $000a - add hl, bc - ld a, [hl] - and a - ld a, $ff - jr z, .sub_502f - push bc - call .sub_5042 - pop bc - ld a, $ff - jr c, .sub_502f - ld hl, $0007 - add hl, bc - ld a, [hl] - and $0c -.sub_502f - ld hl, $000d - add hl, bc - ld [hl], a -.sub_5034 - ld hl, $0028 - add hl, bc - ld b, h - ld c, l - ldh a, [hConnectionStripLength] - inc a - cp $0a - jr nz, .sub_500b - ret -.sub_5042 - ld hl, $0010 - add hl, bc - ld d, [hl] - ld hl, $0011 - add hl, bc - ld e, [hl] - ld a, [wXCoord] - cp d - jr z, .sub_5059 - jr nc, .sub_50b7 - add $09 - cp d - jr c, .sub_50b7 -.sub_5059 - ld a, [wYCoord] - cp e - jr z, .sub_5066 - jr nc, .sub_50b7 - add $08 - cp e - jr c, .sub_50b7 -.sub_5066 - ld hl, $0018 - add hl, bc - ld a, [hl] - and $07 - ld d, $02 - jr z, .sub_5073 - ld d, $03 -.sub_5073 - ld a, d - ldh [hFFC9], a - ld a, [hl] - srl a - srl a - srl a - ldh [hFFC7], a - ld hl, $0019 - add hl, bc - ld a, [hl] - and $07 - ld e, $02 - jr z, .sub_508c - ld e, $03 -.sub_508c - ld a, [hl] - srl a - srl a - srl a - ldh [hFFC8], a - ldh a, [hFFC7] - ld c, a - ldh a, [hFFC8] - ld b, a - call Coord2Tile - ld bc, $0014 -.sub_50a1 - push hl - ldh a, [hFFC9] - ld d, a -.sub_50a5 - ld a, [hli] - cp $60 - jr nc, .sub_50b4 - dec d - jr nz, .sub_50a5 - pop hl - add hl, bc - dec e - jr nz, .sub_50a1 - and a - ret -.sub_50b4 - pop hl - jr .sub_50b7 -.sub_50b7 - scf - ret - -Function50b9: - call .sub_50c3 - call .sub_50d3 - call Function42db - ret -.sub_50c3 - xor a - ld [wcb6c], a - ld [wcb6d], a - ld [wcb6e], a - ld a, $ff - ld [wPlayerStepDirection], a - ret -.sub_50d3 - ld bc, wObjectStructs - xor a -.sub_50d7 - ldh [hConnectionStripLength], a - ld hl, $0000 - add hl, bc - ld a, [hl] - and a - jr z, .sub_50e9 - call .sub_50f7 - jr c, .sub_50e9 - call Function44f2 -.sub_50e9 - ld hl, $0028 - add hl, bc - ld b, h - ld c, l - ldh a, [hConnectionStripLength] - inc a - cp $0a - jr nz, .sub_50d7 - ret -.sub_50f7 - ld hl, $0005 - add hl, bc - res 6, [hl] - ld a, [wXCoord] - ld e, a - ld hl, $0010 - add hl, bc - ld a, [hl] - add $01 - sub e - jr c, .sub_5123 - cp $0c - jr nc, .sub_5123 - ld a, [wYCoord] - ld e, a - ld hl, $0011 - add hl, bc - ld a, [hl] - add $01 - sub e - jr c, .sub_5123 - cp $0b - jr nc, .sub_5123 - jr .sub_514d -.sub_5123 - ld hl, $0005 - add hl, bc - set 6, [hl] - ld a, [wXCoord] - ld e, a - ld hl, $0014 - add hl, bc - ld a, [hl] - add $01 - sub e - jr c, .sub_514f - cp $0c - jr nc, .sub_514f - ld a, [wYCoord] - ld e, a - ld hl, $0015 - add hl, bc - ld a, [hl] - add $01 - sub e - jr c, .sub_514f - cp $0b - jr nc, .sub_514f -.sub_514d - and a - ret -.sub_514f - ldh a, [hConnectionStripLength] - cp $01 - jr z, .sub_5162 - ld hl, $0004 - add hl, bc - bit 1, [hl] - jr nz, .sub_5162 - call .sub_516a - scf - ret -.sub_5162 - ld hl, $0005 - add hl, bc - set 6, [hl] - and a - ret -.sub_516a - push bc - ld hl, $0001 - add hl, bc - ld a, [hl] - push af - ld h, b - ld l, c - ld bc, $0028 - xor a - call ByteFill - pop af - cp $ff - jr z, .sub_518e - ld hl, wMapObjects - ld bc, $0010 - call AddNTimes - ld bc, $0000 - add hl, bc - ld [hl], $ff -.sub_518e - pop bc - ret - -_UpdateSprites: - ld a, [wVramState] - bit 0, a - ret z - xor a - ldh [hFFC7], a - call .sub_51a3 - call .sub_5258 - call .sub_5243 - ret -.sub_51a3 - xor a - ld bc, wObjectStructs -.sub_51a7 - push af - push bc - ld hl, $0000 - add hl, bc - ld a, [hl] - and a - jp z, .sub_5234 - ld hl, $0005 - add hl, bc - bit 0, [hl] - jp nz, .sub_5234 - xor a - bit 7, [hl] - jr z, .sub_51c2 - add $80 -.sub_51c2 - bit 4, [hl] - jr z, .sub_51c8 - add $10 -.sub_51c8 - ld d, a - xor a - bit 3, [hl] - jr z, .sub_51d0 - or $80 -.sub_51d0 - ldh [hFFCC], a - ld hl, $0002 - add hl, bc - ld a, [hl] - ldh [hFFCB], a - ld hl, $0018 - add hl, bc - ld a, [hl] - ld hl, $001a - add hl, bc - add [hl] - add $08 - ldh [hFFC9], a - ld hl, $0019 - add hl, bc - ld a, [hl] - ld hl, $001b - add hl, bc - add [hl] - add $10 - ldh [hFFCA], a - ld hl, $000d - add hl, bc - ld a, [hl] - cp $ff - jp z, .sub_5234 - ld l, a - ld h, $00 - add hl, hl - ld bc, Table421b - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ldh a, [hFFC7] - ld c, a - ld b, $c2 -.sub_520f - ldh a, [hFFCA] - add [hl] - inc hl - ld [bc], a - inc c - ldh a, [hFFC9] - add [hl] - inc hl - ld [bc], a - inc c - ldh a, [hFFCB] - add [hl] - inc hl - ld [bc], a - inc c - ld a, [hl] - bit 1, a - jr z, .sub_5229 - ldh a, [hFFCC] - or [hl] -.sub_5229 - inc hl - or d - ld [bc], a - inc c - bit 0, a - jr z, .sub_520f - ld a, c - ldh [hFFC7], a -.sub_5234 - pop bc - ld hl, $0028 - add hl, bc - ld b, h - ld c, l - pop af - inc a - cp $0a - jp nz, .sub_51a7 - ret -.sub_5243 - ld b, $a0 - ldh a, [hFFC7] - cp b - ret nc - ld l, a - ld h, $c2 - ld de, $0004 - ld a, b - ld c, $a0 -.sub_5252 - ld [hl], c - add hl, de - cp l - jr nz, .sub_5252 - ret -.sub_5258 - ld bc, wCmdQueue - ld a, $04 -.sub_525d - push af - ld hl, $0000 - add hl, bc - ld a, [hl] - and a - jr z, .sub_52cf - ld hl, $0004 - add hl, bc - ld a, [hl] - ld hl, $0006 - add hl, bc - add [hl] - add $08 - ldh [hFFC9], a - ld hl, $0005 - add hl, bc - ld a, [hl] - ld hl, $0007 - add hl, bc - add [hl] - add $10 - ldh [hFFCA], a - ld hl, $0003 - add hl, bc - ld a, [hl] - ldh [hFFCB], a - ld hl, $000c - add hl, bc - ld a, [hl] - and a - jr z, .sub_52cf - ld e, a - ld d, $00 - ld hl, Table44ab - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ldh a, [hFFC7] - ld d, a - ld a, [hl] - and a - jr z, .sub_52cf - add a - add a - add d - cp $a0 - jr nc, .sub_52da - ldh a, [hFFC7] - ld e, a - ld d, $c2 - ld a, [hli] -.sub_52b0 - ldh [hFFC8], a - ldh a, [hFFCA] - add [hl] - ld [de], a - inc hl - inc de - ldh a, [hFFC9] - add [hl] - ld [de], a - inc hl - inc de - ldh a, [hFFCB] - add [hl] - ld [de], a - inc hl - inc de - ld a, [hli] - ld [de], a - inc de - ldh a, [hFFC8] - dec a - jr nz, .sub_52b0 - ld a, e - ldh [hFFC7], a -.sub_52cf - ld hl, $0010 - add hl, bc - ld b, h - ld c, l - pop af - dec a - jr nz, .sub_525d - ret -.sub_52da - pop af - ret - -Function52dc: - call MenuBoxCoord2Tile - push hl - ld de, $005a - add hl, de - call PrintNumBadges - pop hl - push hl - ld de, $0081 - add hl, de - call PrintNumOwnedMons - pop hl - ld de, $00a8 - add hl, de - call PrintPlayTime - ret - -SECTION "engine/dumps/bank01.asm@Function5388", ROMX - -Function5388: - ld a, $00 - call OpenSRAM - ld a, [s0_a600] - ld [wce60], a - call CloseSRAM - ret - -Function5397: - ld a, $00 - call OpenSRAM - ld hl, s0_a600 - ld a, [hli] - ld [wce5f], a - inc hl - ld a, [hli] - ld [wActiveFrame], a - ld a, [hl] - ld [wTextBoxFlags], a - call CloseSRAM - ret - -Function53b0: - ld a, $00 - call OpenSRAM - ld hl, wDebugFlags - ld a, [hli] - ld [wDebugFlags], a - ld a, [hli] - ld [wce64], a - ld a, [hli] - ld [wce65], a - ld a, [hl] - ld [wce66], a - call CloseSRAM - ret - -SECTION "engine/dumps/bank01.asm@ReanchorBGMap_NoOAMUpdate", ROMX - -ReanchorBGMap_NoOAMUpdate: - xor a - ldh [hLCDCPointer], a - ld hl, wToolgearFlags - set 7, [hl] - res 2, [hl] - ld a, $90 - ldh [hWY], a - xor a - ldh [hBGMapMode], a - xor a - ldh [hBGMapAddress], a - ld a, HIGH(vBGMap1) - ldh [hBGMapAddress+1], a - call LoadMapPart - call WaitBGMap - xor a - ldh [hBGMapMode], a - ldh [hWY], a - call .sub_6412 - xor a ; LOW(vBGMap0) - ld [wBGMapAnchor], a - ld a, HIGH(vBGMap0) - ldh [hBGMapAddress+1], a - ld [wBGMapAnchor+1], a - xor a - ldh [hSCX], a - ldh [hSCY], a - call WaitBGMap - ret -.sub_6412 - ld a, $60 - ld hl, wTileMapBackup - ld bc, $0080 - call ByteFill - ld hl, vBGMap0 - ld c, $08 -.sub_6422 - push bc - push hl - ld de, wTileMapBackup - ld bc, $0008 - call Request2bpp - pop hl - ld bc, $0080 - add hl, bc - pop bc - dec c - jr nz, .sub_6422 - ret - -LoadFonts_NoOAMUpdate: - call UpdateSprites - call LoadFont - call LoadFontExtra - ld a, $90 - ldh [hWY], a - ret - - -Function6445: - call BackUpTilesToBuffer - ld a, [wCurPartyMon] - ld hl, wPartyMonNicknames - call GetNick - ld hl, wStringBuffer1 - ld de, wcd11 - ld bc, $0006 - call CopyBytes -.sub_645d - ld hl, wPartyMon1Moves - ld bc, PARTYMON_STRUCT_LENGTH - ld a, [wCurPartyMon] - call AddNTimes - ld d, h - ld e, l - ld b, $04 -.sub_646d - ld a, [hl] - and a - jr z, .sub_648d - inc hl - dec b - jr nz, .sub_646d - push de - call ForgetMove - pop de - jp c, .sub_64d6 - push hl - push de - ld [wce37], a - call Unreferenced_GetMoveName - ld hl, Text664b - call PrintText - pop de - pop hl -.sub_648d - ld a, [wce32] - ld [hl], a - ld bc, $0015 - add hl, bc - push hl - push de - dec a - ld hl, Moves + MOVE_PP - ld bc, MOVE_LENGTH - call AddNTimes - ld a, BANK(Moves) - call GetFarByte - pop de - pop hl - ld [hl], a - ld a, [wBattleMode] - and a - jp z, .sub_64eb - ld a, [wCurPartyMon] - ld b, a - ld a, [wCurBattleMon] - cp b - jp nz, .sub_64eb - ld h, d - ld l, e - ld de, wBattleMonMoves - ld bc, $0004 - call CopyBytes - ld bc, $0011 - add hl, bc - ld de, wBattleMonPP - ld bc, $0004 - call CopyBytes - jp .sub_64eb -.sub_64d6 - ld hl, Text65b9 - call PrintText - call YesNoBox - jp c, .sub_645d - ld hl, Text65d7 - call PrintText - ld b, $00 - ret -.sub_64eb - ld hl, Text658c - call PrintText - ld b, $01 - ret - -ForgetMove:: - push hl - ld hl, AskForgetMoveText - call PrintText - call YesNoBox - pop hl - ret c - ld bc, -NUM_MOVES - add hl, bc - push hl - ld de, wListMoves_MoveIndicesBuffer - ld bc, NUM_MOVES - call CopyBytes - pop hl -.sub_650f - push hl - ld hl, MoveAskForgetText - call PrintText - coord hl, 10, 8 - ld b, $08 - ld c, $08 - call DrawTextBox - coord hl, 12, 10 - ld a, SCREEN_WIDTH*2 - ld [wListMovesLineSpacing], a - predef ListMoves - ld a, $0a - ld [w2DMenuCursorInitY], a - ld a, $0b - ld [w2DMenuCursorInitX], a - ld a, [wNumMoves] - inc a - ld [w2DMenuNumRows], a - ld a, $01 - ld [w2DMenuNumCols], a - ld [w2DMenuDataEnd], a - ld [wMenuCursorX], a - ld a, $03 - ld [wMenuJoypadFilter], a - ld a, $20 - ld [w2DMenuFlags], a - xor a - ld [w2DMenuFlags+1], a - ld a, $20 - ld [w2DMenuCursorOffsets], a - call Get2DMenuJoypad - push af - call ReloadTilesFromBuffer - pop af - pop hl - bit 1, a - jr nz, .sub_658a - push hl - ld a, [w2DMenuDataEnd] - dec a - ld c, a - ld b, $00 - add hl, bc - ld a, [hl] - push af - push bc - call IsHMMove - pop bc - pop de - ld a, d - jr c, .sub_6581 - pop hl - add hl, bc - and a - ret -.sub_6581 - ld hl, Text6691 - call PrintText - pop hl - jr .sub_650f -.sub_658a - scf - ret - -Text658c: - text_from_ram wcd11 - text "は あたらしく" - line "" - text_end - -Text6599: - text_from_ram wStringBuffer2 - text "を おぼえた!" - text_end - -Text65a5: - sound_dex_fanfare_50_79 - text_waitbutton - text_end - -MoveAskForgetText: - text "どの わざを" - next "わすれさせたい?" - done - -Text65b9: - text "それでは<⋯⋯> " - text_end - -Text65c1: - text_from_ram wStringBuffer2 - text "を" - line "おぼえるのを あきらめますか?" - done - -Text65d7: - text_from_ram wcd11 - text "は " - text_end - -Text65de: - text_from_ram wStringBuffer2 - text "を" - line "おぼえずに おわった!" - prompt - -AskForgetMoveText: - text_from_ram wcd11 - text "は あたらしく" - line "" - text_end - text_from_ram wStringBuffer2 - text "を おぼえたい<⋯⋯>!" - para "しかし " - text_end - text_from_ram wcd11 - text "は わざを 4つ" - line "おぼえるので せいいっぱいだ!" - para "" - text_end - text_from_ram wStringBuffer2 - text "の かわりに" - line "ほかの わざを わすれさせますか?" - done - -Text664b: - text "1 2の <⋯⋯>" - text_end - -Text6653: - text_exit - start_asm - push de - ld de, SFX_SWITCH_POKEMON - call PlaySFX - pop de - ld hl, Text6661 - ret - -Text6661: - text " ポカン!" - text_end - -Text6668: - text_exit - text "" - para "" - text_end - -Text666c: - text_from_ram wcd11 - text "は " - text_end - -Text6673: - text_from_ram wStringBuffer1 - text "の" - line "つかいかたを きれいに わすれた!" - para "そして<⋯⋯>!" - prompt - -Text6691: - text "それは たいせつなわざです" - line "わすれさせることは できません!" - prompt - -Function66b1: - ld hl, wcd74 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wCurItem] - cp $c4 - jr nc, .sub_66d2 - dec a - ld c, a - ld b, $00 - add hl, bc - add hl, bc - add hl, bc - add hl, bc - inc hl - ld a, [hld] - ldh [hSpriteOffset], a - ld a, [hld] - ldh [hConnectedMapWidth], a - ld a, [hl] - ldh [hConnectionStripLength], a - jr .sub_66d5 -.sub_66d2 - call .sub_66d9 -.sub_66d5 - ld de, hConnectionStripLength - ret -.sub_66d9 - ld a, [wCurItem] - sub $c9 - ret c - ld d, a - ld hl, Table66fa - srl a - ld c, a - ld b, $00 - add hl, bc - ld a, [hl] - srl d - jr nc, .sub_66f0 - swap a -.sub_66f0 - and $f0 - ldh [hConnectedMapWidth], a - xor a - ldh [hConnectionStripLength], a - ldh [hSpriteOffset], a - ret - -Table66fa: - db $32, $21, $34, $24 - db $34, $21, $45, $55 - db $32, $32, $55, $52 - db $54, $52, $41, $21 - db $12, $42, $25, $24 - db $22, $52, $24, $34 - db $42 - -Function6713: - push hl - call LoadStandardMenuHeader - ld a, [wBattleMode] - dec a - coord hl, 1, 0 - ld b, $04 - ld c, $0a - call z, ClearBox - ld a, [wCurPartySpecies] - ld [wce37], a - call GetPokemonName - ld a, [wDebugFlags] - bit 1, a - pop hl - push hl - ld hl, Text6788 - call PrintText - call YesNoBox - pop hl - jr c, .sub_6779 - push hl - ld e, l - ld d, h - ld a, BANK(NamingScreen) - ld b, $00 - ld hl, NamingScreen - call FarCall_hl - call ClearBGPalettes - call ClearTileMap - call ClearSprites - call GetMemSGBLayout - call SetPalettes - ld a, [wBattleMode] - and a - jr nz, .sub_676b - call LoadFontExtra - call Function3657 - jr .sub_6773 -.sub_676b - callfar _LoadHPBar -.sub_6773 - pop hl - ld a, [hl] - cp $50 - jr nz, .sub_6784 -.sub_6779 - ld d, h - ld e, l - ld hl, wStringBuffer1 - ld bc, $0006 - call CopyBytes -.sub_6784 - call CloseWindow - ret - -Text6788: - text_from_ram wStringBuffer1 - text "に" - line "ニックネームを つけますか?" - done - -Function679d: - ld de, wFieldMoveScriptID - push de - ld hl, NamingScreen - ld b, $00 - ld a, BANK(NamingScreen) - call FarCall_hl - call ClearBGPalettes - call Function360b - call UpdateTimePals - pop de - ld a, [de] - cp $50 - jr z, .sub_67d3 - ld hl, wPartyMonNicknames - ld bc, $0006 - ld a, [wCurPartyMon] - call AddNTimes - ld e, l - ld d, h - ld hl, wFieldMoveScriptID - ld bc, $0006 - call CopyBytes - and a - ret -.sub_67d3 - scf - ret - -CorrectNickErrors: - push bc - push de - ld b, $06 -.sub_67d9 - ld a, [de] - cp $50 - jr z, .sub_6802 - ld hl, Table6805 - dec hl -.sub_67e2 - inc hl - ld a, [hl] - cp $ff - jr z, .sub_67f5 - ld a, [de] - cp [hl] - inc hl - jr c, .sub_67e2 - cp [hl] - jr nc, .sub_67e2 - ld a, $e6 - ld [de], a - jr .sub_67e2 -.sub_67f5 - inc de - dec b - jr nz, .sub_67d9 - pop de - push de - ld a, $e6 - ld [de], a - inc de - ld a, $50 - ld [de], a -.sub_6802 - pop de - pop bc - ret - -Table6805:: - db $00, $05, $14, $19, $1d - db $26, $35, $3a, $49, $7f - db $ff - -SECTION "engine/dumps/bank01.asm@Function771e", ROMX - -Function771e: - ld hl, $0004 - add hl, bc - bit 4, [hl] - jr z, .sub_772c - push hl - call _IsObjectCollisionTileSolid - pop hl - ret c -.sub_772c - bit 6, [hl] - jr z, .sub_7738 - push hl - push bc - call Function77a1 - pop bc - pop hl - ret c -.sub_7738 - bit 5, [hl] - jr z, .sub_7748 - push hl - call Function782c - pop hl - ret c - push hl - call Function786e - pop hl - ret c -.sub_7748 - and a - ret - -SECTION "engine/dumps/bank01.asm@Function776e", ROMX - -Function776e: - call GetFacingTileCoord - cp $90 - jr z, .sub_7779 - cp $98 - jr nz, .sub_7789 -.sub_7779 - ld a, [wPlayerMapX] - sub d - cpl - inc a - add d - ld d, a - ld a, [wPlayerMapY] - sub e - cpl - inc a - add e - ld e, a -.sub_7789 - ld bc, wPlayerSprite - ld a, $01 - ldh [hConnectionStripLength], a - call _CheckObjectCollision - ret nc - ld hl, $0006 - add hl, bc - ld a, [hl] - cp $ff - jr z, .sub_779f - xor a - ret -.sub_779f - scf - ret - -Function77a1: - ld hl, $0010 - add hl, bc - ld d, [hl] - ld hl, $0011 - add hl, bc - ld e, [hl] - jr _CheckObjectCollision - -Function77ad: - ldh a, [hConnectionStripLength] - call GetObjectStruct - call .sub_77b9 - call _CheckObjectCollision - ret -.sub_77b9 - ld hl, $0010 - add hl, bc - ld d, [hl] - ld hl, $0011 - add hl, bc - ld e, [hl] - ld hl, $0007 - add hl, bc - ld a, [hl] - and $0c - and a - jr z, .sub_77d7 - cp $04 - jr z, .sub_77d9 - cp $08 - jr z, .sub_77db - inc d - ret -.sub_77d7 - inc e - ret -.sub_77d9 - dec e - ret -.sub_77db - dec d - ret - -SECTION "engine/dumps/bank01.asm@Function782c", ROMX - -Function782c: - ld hl, $0016 - add hl, bc - ld a, [hl] - and a - jr z, .sub_784b - ld e, a - ld d, a - ld hl, $0014 - add hl, bc - ld a, [hl] - sub d - ld d, a - ld a, [hl] - add e - ld e, a - ld hl, $0010 - add hl, bc - ld a, [hl] - cp d - jr z, .sub_786c - cp e - jr z, .sub_786c -.sub_784b - ld hl, $0017 - add hl, bc - ld a, [hl] - and a - jr z, .sub_786a - ld e, a - ld d, a - ld hl, $0015 - add hl, bc - ld a, [hl] - sub d - ld d, a - ld a, [hl] - add e - ld e, a - ld hl, $0011 - add hl, bc - ld a, [hl] - cp d - jr z, .sub_786c - cp e - jr z, .sub_786c -.sub_786a - and a - ret -.sub_786c - scf - ret - -Function786e: - ld hl, $0010 - add hl, bc - ld a, [wXCoord] - cp [hl] - jr z, .sub_787f - jr nc, .sub_7892 - add $09 - cp [hl] - jr c, .sub_7892 -.sub_787f - ld hl, $0011 - add hl, bc - ld a, [wYCoord] - cp [hl] - jr z, .sub_7890 - jr nc, .sub_7892 - add $08 - cp [hl] - jr c, .sub_7892 -.sub_7890 - and a - ret -.sub_7892 - scf - ret - -SECTION "engine/dumps/bank01.asm@SettingsScreen", ROMX - -SettingsScreen: - ld a, [wVramState] - push af - xor a - ld [wVramState], a - -Function78ed: - call Function7a93 - -Function78f0: - call Function7a41 - ld [hl], $ed - call Function7a55 - call WaitBGMap -.sub_78fb - call DelayFrame - call GetJoypadDebounced - ldh a, [hJoySum] - ld b, a - and a - jr z, .sub_78fb - ld a, b - and $0a - jr nz, .sub_7924 - ld a, b - and $04 - jr nz, .sub_7939 - ld a, b - and $01 - jr z, Function7977 - ld a, [wc409] - cp $10 - jr nz, Function78f0 - ld a, [wTileMapBackup] - cp $07 - jr z, .sub_7956 -.sub_7924 - push de - ld de, SFX_READ_TEXT_2 - call PlaySFX - pop de - pop af - ld [wVramState], a - ld hl, wd4a9 - bit 0, [hl] - jp z, TitleSequenceStart - ret -.sub_7939 - ld hl, wce5f - ld a, [hl] - xor $08 - ld [hl], a - callfar UpdateSGBBorder - call LoadFont - call LoadFontExtra - ld c, $70 - call DelayFrames - jp Function78ed -.sub_7956 - ld a, [wActiveFrame] - inc a - and $07 - ld [wActiveFrame], a - coord hl, 17, 16 - add $f7 - ld [hl], a - call LoadFontExtra - jr Function78f0 - -Function796a: - push af - call Function7a41 - ld [hl], $7f - pop af - ld [wTileMapBackup], a - jp Function78f0 - -Function7977: - ld a, [wc409] - bit 7, b - jr nz, .sub_799e - bit 6, b - jr nz, .sub_79c1 - cp $07 - jp z, .sub_7a10 - cp $0b - jp z, .sub_7a1b - cp $0d - jp z, .sub_7a26 - cp $10 - jp z, .sub_7a31 - bit 5, b - jp nz, .sub_79f6 - jp .sub_7a01 -.sub_799e - cp $10 - ld b, $f3 - ld hl, wc40a - jr z, .sub_79e2 - cp $03 - ld b, $04 - inc hl - jr z, .sub_79e2 - cp $07 - ld b, $04 - inc hl - jr z, .sub_79e2 - cp $0b - ld b, $02 - inc hl - jr z, .sub_79e2 - ld b, $03 - inc hl - jr .sub_79e2 -.sub_79c1 - cp $07 - ld b, $fc - ld hl, wc40a - jr z, .sub_79e2 - cp $0b - ld b, $fc - inc hl - jr z, .sub_79e2 - cp $0d - ld b, $fe - inc hl - jr z, .sub_79e2 - cp $10 - ld b, $fd - inc hl - jr z, .sub_79e2 - ld b, $0d - inc hl -.sub_79e2 - add b - push af - ld a, [hl] - push af - call Function7a41 - ld [hl], $ec - pop af - ld [wTileMapBackup], a - pop af - ld [wc409], a - jp Function78f0 -.sub_79f6 - ld a, [wc40a] - cp $01 - jr z, .sub_7a0a - sub $07 - jr .sub_7a0a -.sub_7a01 - ld a, [wc40a] - cp $0f - jr z, .sub_7a0a - add $07 -.sub_7a0a - ld [wc40a], a - jp Function796a -.sub_7a10 - ld a, [wWhichPicTest] - xor $0b - ld [wWhichPicTest], a - jp Function796a -.sub_7a1b - ld a, [wc40c] - xor $0b - ld [wc40c], a - jp Function796a -.sub_7a26 - ld a, [wc40d] - xor $0b - ld [wc40d], a - jp Function796a -.sub_7a31 - call Function7a41 - ld [hl], $ec - ld a, [wTileMapBackup] - xor $06 - ld [wTileMapBackup], a - jp Function78f0 - -Function7a41: - ld a, [wc409] - ld hl, wTileMap - ld bc, $0014 - call AddNTimes - ld a, [wTileMapBackup] - ld b, $00 - ld c, a - add hl, bc - ret - -Function7a55: - ld hl, Table7c22 - ld a, [wc40a] - ld c, a -.sub_7a5c - ld a, [hli] - cp c - jr z, .sub_7a63 - inc hl - jr .sub_7a5c -.sub_7a63 - ld a, [hl] - ld d, a - ld a, [wWhichPicTest] - dec a - jr z, .sub_7a6f - set 7, d - jr .sub_7a71 -.sub_7a6f - res 7, d -.sub_7a71 - ld a, [wc40c] - dec a - jr z, .sub_7a7b - set 6, d - jr .sub_7a7d -.sub_7a7b - res 6, d -.sub_7a7d - ld a, [wc40d] - dec a - jr z, .sub_7a87 - set 5, d - jr .sub_7a89 -.sub_7a87 - res 5, d -.sub_7a89 - ld a, [wce5f] - and $08 - or d - ld [wce5f], a - ret - -Function7a93: - call ClearBGPalettes - call DisableLCD - xor a - ldh [hBGMapMode], a - call .sub_7b26 - xor a - ld hl, wc40a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a - inc a - ld [wTextBoxFlags], a - ld hl, Table7c23 - ld a, [wce5f] - ld c, a - and $07 - push bc - ld de, $0002 - call FindItemInTable - pop bc - dec hl - ld a, [hl] - ld [wc40a], a - coord hl, 0, 3 - call .sub_7b1f - sla c - ld a, $01 - jr nc, .sub_7ad0 - ld a, $0a -.sub_7ad0 - ld [wWhichPicTest], a - coord hl, 0, 7 - call .sub_7b1f - sla c - ld a, $01 - jr nc, .sub_7ae1 - ld a, $0a -.sub_7ae1 - ld [wc40c], a - coord hl, 0, 11 - call .sub_7b1f - sla c - ld a, $01 - jr nc, .sub_7af2 - ld a, $0a -.sub_7af2 - ld [wc40d], a - coord hl, 0, 13 - call .sub_7b1f - ld a, $01 - ld [wc40e], a - coord hl, 1, 16 - ld [hl], $ec - coord hl, 7, 16 - ld [hl], $ec - ld a, [wc40a] - ld [wTileMapBackup], a - ld a, $03 - ld [wc409], a - call EnableLCD - call WaitBGMap - call SetPalettes - ret -.sub_7b1f - ld e, a - ld d, $00 - add hl, de - ld [hl], $ec - ret -.sub_7b26 - ld de, vChars1 + $0700 - ld hl, TrainerCardGFX - ld bc, $0010 - ld a, BANK(TrainerCardGFX) - call FarCopyData - ld hl, wTileMap - ld bc, $0168 - ld a, $f0 - call ByteFill - coord hl, 1, 1 - lb bc, 3, 18 - call ClearBox - coord hl, 1, 5 - lb bc, 3, 18 - call ClearBox - coord hl, 1, 9 - lb bc, 3, 18 - call ClearBox - coord hl, 1, 13 - lb bc, 1, 18 - call ClearBox - coord hl, 1, 1 - ld de, Text7bad - call PlaceString - coord hl, 1, 5 - ld de, Text7bc9 - call PlaceString - coord hl, 1, 9 - ld de, Text7be8 - call PlaceString - coord hl, 1, 13 - ld de, Text7c03 - call PlaceString - coord hl, 1, 16 - ld de, Text7c12 - call PlaceString - coord hl, 6, 15 - ld b, $01 - ld c, $0b - call DrawTextBox - coord hl, 7, 16 - ld de, Text7c17 - call PlaceString - ld a, [wActiveFrame] - coord hl, 17, 16 - add $f7 - ld [hl], a - ret - -Text7bad: - db "はなしの はやさ" - next " はやい    ふつう    おそい" - text_end - -Text7bc9: - db "せんとう アニメーション" - next " じっくり みる  とばして みる" - text_end - -Text7be8: - db "しあいの ルール" - next " いれかえタイプ  かちぬきタイプ" - text_end - -Text7c03: - db " モノラル     ステレオ" - text_end - -Text7c12: - db " おわり" - text_end - -Text7c17: - db " わく を かえる " - text_end - -Table7c22: - db $0F - -Table7c23: - db $05, $08, $03 - db $01, $01, $08 - db $FF - -Unknown7c2a: -rept 491 - db $39, $00 -endr diff --git a/engine/dumps/bank02.asm b/engine/dumps/bank02.asm index d5803ae..6d7162c 100755 --- a/engine/dumps/bank02.asm +++ b/engine/dumps/bank02.asm @@ -1,8 +1,8 @@ INCLUDE "constants.asm" -SECTION "engine/dumps/bank02.asm@SpawnPlayer", ROMX +SECTION "engine/dumps/bank02.asm@_SpawnPlayer", ROMX -SpawnPlayer: +_SpawnPlayer:: ld a, PLAYER ld hl, PlayerObjectTemplate call CopyPlayerObjectTemplate @@ -15,25 +15,25 @@ SpawnPlayer: ld bc, wMapObjects call CopyMapObjectToObjectStruct ld a, PLAYER_OBJECT - call Function1908 + call CenterObject ret PlayerObjectTemplate: - object_event -4, -4, SPRITE_GOLD, $10, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0 + object_event -4, -4, SPRITE_GOLD, SPRITEMOVEFN_OBEY_DPAD, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0 db $00, $00 -SpawnFollower: +SpawnFollower:: call SetFollowerDefaultAttributes - ld a, [wUsedSprites+1] + ld a, [wUsedSprites + 1] ld [wMap1ObjectSprite], a ld a, FOLLOWER - call Function1602 + call CopyMapObjectToFollowerObjectStruct ld b, PLAYER ld c, FOLLOWER call StartFollow ret -SetFollowerDefaultAttributes: +SetFollowerDefaultAttributes:: ld a, FOLLOWER ld hl, FollowerObjectTemplate call CopyPlayerObjectTemplate @@ -45,35 +45,35 @@ SetFollowerDefaultAttributes: ret FollowerObjectTemplate: - object_event -4, -4, SPRITE_RHYDON, $18, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0 + object_event -4, -4, SPRITE_RHYDON, SPRITEMOVEFN_FOLLOW_2, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0 db $00, $00 -DeleteFollower: +DeleteFollower:: ld a, FOLLOWER call DeleteMapObject xor a ld [wObjectFollow_Follower], a - ld a, $ff + ld a, -1 ld [wObjectFollow_Leader], a ret -DebugMapViewer_SetupCursor: - ld a, $01 - ld hl, Data8089 +DebugMapViewer_SetupCursor:: + ld a, MAP_VIEWER_CURSOR ; Temporarily overwrites the follower's map object + ld hl, .CursorObjectTemplate call CopyPlayerObjectTemplate - ld a, $01 + ld a, MAP_VIEWER_CURSOR call Spawn_ConvertCoords ret -Data8089: +.CursorObjectTemplate: object_event -4, -4, SPRITE_GOLD, $17, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0 db $00, $00 -_InitializeVisibleSprites: +_InitializeVisibleSprites:: ld bc, wMap2Object ld a, 2 .loop - ldh [hConnectionStripLength], a + ldh [hMapObjectIndex], a ld hl, MAPOBJECT_SPRITE add hl, bc ld a, [hl] @@ -112,7 +112,7 @@ _InitializeVisibleSprites: jr nc, .next push bc - call Function80eb + call CopyObjectStruct pop bc jp c, .ret @@ -121,7 +121,7 @@ _InitializeVisibleSprites: add hl, bc ld b, h ld c, l - ldh a, [hConnectionStripLength] + ldh a, [hMapObjectIndex] inc a cp NUM_OBJECTS jr nz, .loop @@ -130,21 +130,21 @@ _InitializeVisibleSprites: .ret: ret -Function80eb: - call Function811a +CopyObjectStruct:: + call CheckObjectMask and a ret nz ; masked - ld hl, wObject1StructEnd - ld a, $03 + ld hl, wObjectStructs + OBJECT_LENGTH * 3 + ld a, 3 ld de, OBJECT_LENGTH .loop - ldh [hConnectedMapWidth], a + ldh [hObjectStructIndex], a ld a, [hl] and a jr z, .done add hl, de - ldh a, [hConnectedMapWidth] + ldh a, [hObjectStructIndex] inc a cp NUM_OBJECT_STRUCTS jr nz, .loop @@ -155,43 +155,43 @@ Function80eb: ld d, h ld e, l call CopyMapObjectToObjectStruct - ld a, [wVramState] - bit 7, a + ld a, [wStateFlags] + bit SCRIPTED_MOVEMENT_STATE_F, a ret z ld hl, OBJECT_FLAGS2 add hl, de - set 5, [hl] + set FROZEN_F, [hl] ret -Function811a: - ldh a, [hConnectionStripLength] +CheckObjectMask:: + ldh a, [hMapObjectIndex] ld e, a - ld d, $00 - ld hl, wUnknownWordcc9c + ld d, 0 + ld hl, wObjectMasks add hl, de ld a, [hl] ret -Function8125: - ldh a, [hConnectionStripLength] - ld e, a - ld d, $00 - ld hl, wUnknownWordcc9c - add hl, de - ld [hl], $ff - ret - -Function8131: +MaskObject:: ldh a, [hMapObjectIndex] ld e, a - ld d, $00 - ld hl, wUnknownWordcc9c + ld d, 0 + ld hl, wObjectMasks add hl, de - ld [hl], $00 + ld [hl], -1 ; masked ret -CopyMapObjectToObjectStruct: +UnmaskObject:: + ldh a, [hMapObjectIndex] + ld e, a + ld d, 0 + ld hl, wObjectMasks + add hl, de + ld [hl], 0 ; unmasked + ret + +CopyMapObjectToObjectStruct:: ldh a, [hMapObjectIndex] ld hl, OBJECT_MAP_OBJECT_INDEX add hl, de @@ -270,7 +270,7 @@ CopyMapObjectToObjectStruct: add hl, de ld [hl], a - call Function820d + call GetSpriteVTile ld hl, OBJECT_SPRITE_TILE add hl, de ld [hl], a @@ -289,336 +289,356 @@ CopyMapObjectToObjectStruct: and a ret -InitObjectFlags: +InitObjectFlags:: ld hl, OBJECT_FLAGS1 add hl, de - ld [hl], $70 + ld [hl], COLLISION_OBJS | NOCLIP_NOT_SET | COLLISION_TILES ldh a, [hObjectStructIndex] push hl ld hl, wCenteredObject cp [hl] pop hl - jr nz, .sub_81e0 - set 7, [hl] -.sub_81e0 - cp $01 - jr z, .sub_81e8 - cp $02 - jr nz, .sub_81ea -.sub_81e8 - set 1, [hl] -.sub_81ea + jr nz, .not_centered + set CENTERED_OBJECT_F, [hl] + +.not_centered + cp PLAYER_OBJECT_INDEX + jr z, .wont_delete + cp FOLLOWER_OBJECT_INDEX + jr nz, .will_delete + +.wont_delete + set WONT_DELETE_F, [hl] +.will_delete ld hl, OBJECT_FLAGS2 add hl, de - ld [hl], $00 + ld [hl], 0 ldh a, [hObjectStructIndex] - cp $01 + cp PLAYER_OBJECT_INDEX ret z - set 4, [hl] + set COLLISION_TILES_F, [hl] ret CopyMapObject_Radius: push af swap a - and $0f + and $f inc a ld hl, OBJECT_RADIUS_X add hl, de ld [hl], a pop af - and $0f + and $f inc a ld hl, OBJECT_RADIUS_Y add hl, de ld [hl], a ret -Function820d: +GetSpriteVTile: push af ldh a, [hMapObjectIndex] cp PLAYER_OBJECT jr nz, .not_player pop af - ld a, $00 + ld a, $0 ; offset of player tiles ret .not_player - cp $01 - jr nz, .sub_8220 + cp FOLLOWER + jr nz, .not_follower pop af - ld a, $0c + ld a, $c ; offset of follower's tiles ret -.sub_8220 + +.not_follower pop af push hl push de ld d, a - ld e, $00 - ld hl, wUsedNPCSprites -.sub_8229 + ld e, 0 + ld hl, wUsedSprites + 2 +.loop ld a, [hli] cp d - jr z, .sub_8238 + jr z, .found + inc e ld a, e - cp $0a - jr nz, .sub_8229 - ld a, $00 + cp SPRITE_GFX_LIST_CAPACITY - 2 + jr nz, .loop + ld a, 0 scf - jr .sub_823f -.sub_8238 - ld hl, Data8242 + jr .done + +.found + ld hl, .VTileOffsets ld d, $00 add hl, de ld a, [hl] -.sub_823f +.done pop de pop hl ret -Data8242: - db $18, $24, $30, $3c, $48, $54, $60, $6c - db $78, $7c +.VTileOffsets: + db $18, $24, $30, $3c, $48, $54, $60, $6c, $78, $7c -Function824c: +CheckObjectEnteringVisibleRange:: nop ld a, [wPlayerStepDirection] - cp $ff + cp STANDING ret z - ld hl, Table8259 + ld hl, .dw jp CallJumptable -Table8259: - dw Function8299 - dw Function8292 - dw Function82e6 - dw Function82ed +.dw: + dw CheckVisibleRange_Down + dw CheckVisibleRange_Up + dw CheckVisibleRange_Left + dw CheckVisibleRange_Right -Function8261: +EmptyFunction8261: ret -Function8262: +Unreferenced_CheckObjectEnteringVisibleRange_Alternate:: ld a, [wPlayerStepDirection] - cp $ff + cp STANDING ret z - ld hl, Table826e + ld hl, .dw jp CallJumptable -Table826e: - dw Function827d - dw Function8276 - dw Function8284 - dw Function828b +.dw: + dw CheckVisibleRange_DownAlt + dw CheckVisibleRange_UpAlt + dw CheckVisibleRange_LeftAlt + dw CheckVisibleRange_RightAlt -Function8276: +CheckVisibleRange_UpAlt: ld a, [wYCoord] - sub $02 - jr Function829e + sub 2 + jr CheckVisibleRange_Vertical -Function827d: +CheckVisibleRange_DownAlt: ld a, [wYCoord] - add $0a - jr Function829e + add 10 + jr CheckVisibleRange_Vertical -Function8284: +CheckVisibleRange_LeftAlt: ld a, [wXCoord] - sub $02 - jr Function82f2 + sub 2 + jr CheckVisibleRange_Horizontal -Function828b: +CheckVisibleRange_RightAlt: ld a, [wXCoord] - add $0b - jr Function82f2 + add 11 + jr CheckVisibleRange_Horizontal -Function8292: +CheckVisibleRange_Up:: ld a, [wYCoord] - sub $01 - jr Function829e + sub 1 + jr CheckVisibleRange_Vertical -Function8299: +CheckVisibleRange_Down:: ld a, [wYCoord] - add $09 - -Function829e: + add 9 +CheckVisibleRange_Vertical:: ld d, a ld a, [wXCoord] ld e, a ld bc, wMap2Object - ld a, $02 -.sub_82a8 - ldh [hConnectionStripLength], a - ld hl, $0001 + ld a, 2 +.loop_v + ldh [hMapObjectIndex], a + ld hl, MAPOBJECT_SPRITE add hl, bc ld a, [hl] and a - jr z, .sub_82d8 - ld hl, $0002 + jr z, .next_v + + ld hl, MAPOBJECT_Y_COORD add hl, bc ld a, d cp [hl] - jr nz, .sub_82d8 - ld hl, $0000 + jr nz, .next_v + + ld hl, MAPOBJECT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] - cp $ff - jr nz, .sub_82d8 - ld hl, $0003 + cp -1 + jr nz, .next_v + + ld hl, MAPOBJECT_X_COORD add hl, bc ld a, [hl] - add $01 + add 1 sub e - jr c, .sub_82d8 - cp $0c - jr nc, .sub_82d8 + jr c, .next_v + + cp MAPOBJECT_SCREEN_WIDTH + jr nc, .next_v + push de push bc - call Function80eb + call CopyObjectStruct pop bc pop de -.sub_82d8 - ld hl, $0010 +.next_v + ld hl, MAPOBJECT_LENGTH add hl, bc ld b, h ld c, l - ldh a, [hConnectionStripLength] + ldh a, [hMapObjectIndex] inc a - cp $10 - jr nz, .sub_82a8 + cp NUM_OBJECTS + jr nz, .loop_v ret -Function82e6: +CheckVisibleRange_Left:: ld a, [wXCoord] - sub $01 - jr Function82f2 + sub 1 + jr CheckVisibleRange_Horizontal -Function82ed: +CheckVisibleRange_Right:: ld a, [wXCoord] - add $0a - -Function82f2: + add 10 +CheckVisibleRange_Horizontal:: ld e, a ld a, [wYCoord] ld d, a ld bc, wMap2Object - ld a, $02 -.sub_82fc + ld a, 2 +.loop_h ldh [hConnectionStripLength], a - ld hl, $0001 + ld hl, MAPOBJECT_SPRITE add hl, bc ld a, [hl] and a - jr z, .sub_832c - ld hl, $0003 + jr z, .next_h + + ld hl, MAPOBJECT_X_COORD add hl, bc ld a, e cp [hl] - jr nz, .sub_832c - ld hl, $0000 + jr nz, .next_h + + ld hl, MAPOBJECT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] - cp $ff - jr nz, .sub_832c - ld hl, $0002 + cp -1 + jr nz, .next_h + + ld hl, MAPOBJECT_Y_COORD add hl, bc ld a, [hl] add $01 sub d - jr c, .sub_832c - cp $0b - jr nc, .sub_832c + jr c, .next_h + + cp MAPOBJECT_SCREEN_HEIGHT + jr nc, .next_h + push de push bc - call Function80eb + call CopyObjectStruct pop bc pop de -.sub_832c - ld hl, $0010 +.next_h + ld hl, MAPOBJECT_LENGTH add hl, bc ld b, h ld c, l - ldh a, [hConnectionStripLength] + ldh a, [hMapObjectIndex] inc a - cp $10 - jr nz, .sub_82fc + cp NUM_OBJECTS + jr nz, .loop_h ret -Function833a: +; Determines path of object 'b' to map coordinates 'de' at speed 'c'. +; Makes the object invisible for the duration of the path. +ComputeObjectPathToCoords_Invisible:: ld a, c push af call InitMovementBuffer - ld a, $29 + ld a, movement_hide_object call AppendToMovementBuffer + ld a, b call GetMapObject - ld hl, $0000 + ld hl, MAPOBJECT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] - cp $ff - jr z, .sub_8361 + cp -1 + jr z, .not_loaded + call GetObjectStruct - ld hl, $0011 + ld hl, OBJECT_MAP_Y add hl, bc ld a, [hl] - ld hl, $0010 + ld hl, OBJECT_MAP_X add hl, bc ld b, [hl] ld c, a - jr .sub_836c -.sub_8361 - ld hl, $0002 + jr .done + +.not_loaded + ld hl, MAPOBJECT_Y_COORD add hl, bc ld a, [hl] - ld hl, $0003 + ld hl, MAPOBJECT_X_COORD add hl, bc ld b, [hl] ld c, a -.sub_836c +.done pop af - call ComputePathToWalkToPlayer - ld a, $28 + call ComputePathToWalkToDestination + ld a, movement_show_object call AppendToMovementBuffer - ld a, $32 + ld a, movement_step_end call AppendToMovementBuffer xor a ret -Function837c: +; Determines path of object 'b' to map coordinates 'de' at speed 'c'. +Unreferenced_ComputeObjectPathToCoords:: call InitMovementBuffer push bc ld a, b call GetMapObject - ld hl, $0000 + ld hl, MAPOBJECTTEMPLATE_SPRITE add hl, bc ld a, [hl] call GetObjectStruct - ld hl, $0010 + ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] - ld hl, $0011 + ld hl, OBJECT_MAP_Y add hl, bc ld c, [hl] ld b, a pop hl ld a, l - call ComputePathToWalkToPlayer - ld a, $32 + call ComputePathToWalkToDestination + ld a, movement_step_end call AppendToMovementBuffer ret -Function83a2: +; Creates a path from object 'b' to object 'c' in wMovementBuffer at speed 'd'. +; Unlike the final game's TrainerWalkToPlayer, the final step isn't removed, so they walk on top of the target instead of in front. +ObjectWalkToPlayer:: push de call InitMovementBuffer pop de - call Function83b0 - ld a, $32 + call .GetPathToPlayer + ld a, movement_step_end call AppendToMovementBuffer ret -Function83b0: +.GetPathToPlayer: push de push bc ld a, c call GetMapObject - ld hl, $0000 + ld hl, MAPOBJECT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] call GetObjectStruct @@ -627,35 +647,35 @@ Function83b0: pop bc ld a, b call GetMapObject - ld hl, $0000 + ld hl, MAPOBJECT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] call GetObjectStruct - ld hl, $0010 + ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] - ld hl, $0011 + ld hl, OBJECT_MAP_Y add hl, bc ld c, [hl] ld b, a - ld hl, $0010 + ld hl, OBJECT_MAP_X add hl, de ld a, [hl] - ld hl, $0011 + ld hl, OBJECT_MAP_Y add hl, de ld e, [hl] ld d, a pop af - call ComputePathToWalkToPlayer + call ComputePathToWalkToDestination ret -Function83e8: - ld hl, wcb70 +_LoadMinorObjectGFX:: + ld hl, wQueuedMinorObjectGFX push hl ld a, [hl] ld l, a - ld h, $00 - ld de, .Table83fb + ld h, 0 + ld de, .MinorObjectGFX add hl, hl add hl, de ld e, [hl] @@ -665,8 +685,8 @@ Function83e8: push de ret -.Table83fb: - dw .LoadDone +.MinorObjectGFX: + dw .LoadNull dw .LoadJumpShadow dw .LoadUnknownBouncingOrb dw .LoadShockEmote @@ -699,7 +719,7 @@ Function83e8: ld [wVBCopyFarSize], a ret -.LoadDone: +.LoadNull: ret .LoadShockEmote: @@ -711,7 +731,7 @@ Function83e8: .LoadHappyEmote: ld hl, HappyEmoteGFX .load_emote: - ld de, vChars1 + $780 + ld de, vChars1 tile $78 ld b, (HappyEmoteGFX.end - HappyEmoteGFX) / LEN_2BPP_TILE ld c, BANK(EmoteGFX) jp .FarCopy @@ -719,7 +739,7 @@ Function83e8: .LoadJumpShadow: ld [hl], $00 ld hl, JumpShadowGFX - ld de, vChars1 + $7c0 + ld de, vChars1 tile $7c ld b, (JumpShadowGFX.end - JumpShadowGFX) / LEN_2BPP_TILE ld c, BANK(JumpShadowGFX) jp .FarCopy @@ -727,7 +747,7 @@ Function83e8: .LoadUnknownBouncingOrb: ld [hl], $00 ld hl, UnknownBouncingOrbGFX - ld de, vChars1 + $7c0 + ld de, vChars1 tile $7c ld b, (UnknownBouncingOrbGFX.end - UnknownBouncingOrbGFX) / LEN_2BPP_TILE ld c, BANK(UnknownBouncingOrbGFX) jp .FarCopy @@ -735,7 +755,7 @@ Function83e8: .LoadBoulderDust: ld [hl], $00 ld hl, BoulderDustGFX - ld de, vChars1 + $7c0 + ld de, vChars1 tile $7c ld b, (BoulderDustGFX.end - BoulderDustGFX) / LEN_2BPP_TILE ld c, BANK(BoulderDustGFX) jp .FarCopy @@ -790,222 +810,150 @@ Function83e8: SECTION "engine/dumps/bank02.asm@QueueFollowerFirstStep", ROMX -QueueFollowerFirstStep: - call Function85f2 - jr c, .sub_85ec +QueueFollowerFirstStep:: + call .QueueFirstStep + jr c, .same ld [wFollowMovementQueue], a xor a ld [wFollowerMovementQueueLength], a ret -.sub_85ec - ld a, $ff + +.same + ld a, -1 ld [wFollowerMovementQueueLength], a ret -Function85f2: +.QueueFirstStep: ld a, [wObjectFollow_Leader] call GetObjectStruct - ld hl, $0010 + ld hl, OBJECT_MAP_X add hl, bc ld d, [hl] - ld hl, $0011 + ld hl, OBJECT_MAP_Y add hl, bc ld e, [hl] ld a, [wObjectFollow_Follower] call GetObjectStruct - ld hl, $0010 + ld hl, OBJECT_MAP_X add hl, bc ld a, d cp [hl] - jr z, .sub_861a - jr c, .sub_8616 + jr z, .check_y + jr c, .left and a - ld a, $0b + ld a, movement_step + RIGHT ret -.sub_8616 + +.left and a - ld a, $0a + ld a, movement_step + LEFT ret -.sub_861a - ld hl, $0011 + +.check_y + ld hl, OBJECT_MAP_Y add hl, bc ld a, e cp [hl] - jr z, .sub_862c - jr c, .sub_8628 + jr z, .same_xy + jr c, .up and a - ld a, $08 + ld a, movement_step + DOWN ret -.sub_8628 + +.up and a - ld a, $09 + ld a, movement_step + UP ret -.sub_862c + +.same_xy scf ret -Function862e: +; a = d * sin(e * pi/32) +_Sine:: ld a, e - and $3f - cp $20 - jr nc, .sub_863a - call Function8644 - ld a, h - ret -.sub_863a - and $1f - call Function8644 - ld a, h - xor $ff - inc a - ret + calc_sine_wave -Function8644: - ld e, a - ld a, d - ld d, $00 - ld hl, Data8660 - add hl, de - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $0000 -.sub_8653 - srl a - jr nc, .sub_8658 - add hl, de -.sub_8658 - sla e - rl d - and a - jr nz, .sub_8653 - ret - -Data8660: - dw $00 - dw $19 - dw $32 - dw $4a - dw $62 - dw $79 - dw $8e - dw $a2 - dw $b5 - dw $c6 - dw $d5 - dw $e2 - dw $ed - dw $f5 - dw $fb - dw $ff - dw $100 - dw $ff - dw $fb - dw $f5 - dw $ed - dw $e2 - dw $d5 - dw $c6 - dw $b5 - dw $a2 - dw $8e - dw $79 - dw $62 - dw $4a - dw $32 - dw $19 - -Function86a0: +TownMap:: call InitTownMap - ld hl, ClearSpriteAnims - ld a, BANK(ClearSpriteAnims) - call FarCall_hl - call PlaceGoldInMap + callfar ClearSpriteAnims + call TownMap_InitPlayerIcon call WaitBGMap call SetPalettes -.sub_86b4 +.loop call DelayFrame call GetJoypadDebounced - ld hl, PlaySpriteAnimations - ld a, BANK(PlaySpriteAnimations) - call FarCall_hl + callfar PlaySpriteAnimations ld hl, hJoyDown ld a, [hl] - and $03 - jr z, .sub_86b4 + and A_BUTTON | B_BUTTON + jr z, .loop ret -FlyMap: +FlyMap:: ld hl, hInMenu ld a, [hl] push af - ld [hl], $01 + ld [hl], 1 call InitTownMap - ld hl, ClearSpriteAnims - ld a, BANK(ClearSpriteAnims) - call FarCall_hl - call PlaceGoldInMap - call Function88b3 - ld hl, wcb60 + callfar ClearSpriteAnims + call TownMap_InitPlayerIcon + call FlyMap_InitPidgeyIcon + ld hl, wFlyIconAnimStructPointer ld [hl], c inc hl ld [hl], b - coord hl, 1, 15 - ld de, Text8776 + hlcoord 1, 15 + ld de, ChooseADestinationText call PlaceString call WaitBGMap call SetPalettes xor a ld [wFlyDestination], a -.sub_86fc +.loop call DelayFrame call GetJoypadDebounced - callfar PlaySpriteAnimations - ld hl, hJoyDown ld a, [hl] - and $02 - jr nz, .sub_873e + and B_BUTTON + jr nz, .cancel ld a, [hl] - and $01 - jr nz, .sub_8743 - call Function8747 - + and A_BUTTON + jr nz, .fly + call .HandleDPad callfar GetFlyPointMapLocation - - ld d, $00 + ld d, 0 ld hl, LandmarkPositions add hl, de add hl, de ld d, [hl] inc hl ld e, [hl] - ld hl, wcb60 + ld hl, wFlyIconAnimStructPointer ld c, [hl] inc hl ld b, [hl] - ld hl, $0004 + ld hl, SPRITEANIMSTRUCT_XCOORD add hl, bc ld [hl], e - ld hl, $0005 + ld hl, SPRITEANIMSTRUCT_YCOORD add hl, bc ld [hl], d - jr .sub_86fc -.sub_873e - ld a, $ff + jr .loop + +.cancel + ld a, -1 ld [wFlyDestination], a -.sub_8743 +.fly pop af ldh [hInMenu], a ret -; Choose fly destination based on D-Pad input -Function8747: +.HandleDPad: ld a, [wFlyDestination] ld l, a - ld h, $00 + ld h, 0 add hl, hl add hl, hl ld de, FlyPointPaths @@ -1013,28 +961,28 @@ Function8747: ld de, hJoySum ld a, [de] and D_UP - jr nz, .sub_876e + jr nz, .get_point inc hl ld a, [de] and D_DOWN - jr nz, .sub_876e + jr nz, .get_point inc hl ld a, [de] and D_LEFT - jr nz, .sub_876e + jr nz, .get_point inc hl ld a, [de] and D_RIGHT - jr nz, .sub_876e + jr nz, .get_point ret -.sub_876e +.get_point ld a, [hl] - cp $ff + cp -1 ret z ld [wFlyDestination], a ret -Text8776: +ChooseADestinationText: db "とびさき を えらんでください@" Pokedex_GetArea: @@ -1045,7 +993,7 @@ Pokedex_GetArea: call InitTownMap ld de, PokedexNestIconGFX - ld hl, vChars0 + 127 tiles + ld hl, vChars0 tile $7f lb bc, BANK(PokedexNestIconGFX), 1 call Request1bpp @@ -1179,14 +1127,14 @@ DecompTownMapTilemap: inc de jr .loop -PlaceGoldInMap: +TownMap_InitPlayerIcon: ld de, GoldSpriteGFX ld hl, vChars0 lb bc, BANK(GoldSpriteGFX), $04 call Request2bpp ld de, GoldSpriteGFX + 12 tiles - ld hl, vChars0 + $40 + ld hl, vChars0 tile $04 lb bc, BANK(GoldSpriteGFX), $04 call Request2bpp @@ -1222,14 +1170,14 @@ PlaceGoldInMap: ld [hl], d ret -Function88b3: +FlyMap_InitPidgeyIcon: ld de, PidgeySpriteGFX - ld hl, vChars0 + 8 tiles + ld hl, vChars0 tile $08 lb bc, BANK(PidgeySpriteGFX), 4 call Request2bpp ld de, PidgeySpriteGFX + 12 tiles - ld hl, vChars0 + 12 tiles + ld hl, vChars0 tile $0c lb bc, BANK(PidgeySpriteGFX), 4 call Request2bpp diff --git a/engine/dumps/bank03.asm b/engine/dumps/bank03.asm index 7cd92f0..e5963f2 100755 --- a/engine/dumps/bank03.asm +++ b/engine/dumps/bank03.asm @@ -10,7 +10,7 @@ GetFlyPointMapLocation: add hl, hl ld de, SpawnPoints add hl, de - ld b, [hl] ; SpawnPoints + (wFlyDestination * 4) + ld b, [hl] ; SpawnPoints + (wFlyDestination * 4) inc hl ld c, [hl] call GetWorldMapLocation @@ -272,14 +272,14 @@ Functiond4b2: ret Functiond4e6: - ld a, [wcb6e] + ld a, [wPlayerStepFlags] and a ret z - bit 7, a + bit PLAYERSTEP_START_F, a jr nz, .sub_d4f8 - bit 6, a + bit PLAYERSTEP_STOP_F, a jr nz, Functiond519 - bit 5, a + bit PLAYERSTEP_CONTINUE_F, a jr nz, Functiond543 ret .sub_d4f8 @@ -287,9 +287,7 @@ Functiond4e6: Functiond4fa: call Functiond51e - ld hl, Function8261 - ld a, BANK(Function8261) - call FarCall_hl + callfar EmptyFunction8261 Functiond505: ld a, $04 @@ -335,9 +333,9 @@ Functiond51e: Functiond543: call .sub_d5bf - ld a, [wcb6c] + ld a, [wPlayerStepVectorX] ld d, a - ld a, [wcb6d] + ld a, [wPlayerStepVectorY] ld e, a call .sub_d55f call .sub_d591 @@ -383,7 +381,7 @@ Functiond543: jr nz, .sub_d563 ret .sub_d591 - ld bc, wCmdQueue + ld bc, wMinorObjects ld a, $01 .sub_d596 ldh [hConnectionStripLength], a @@ -603,14 +601,14 @@ Functiond6bb: ret Functiond6e4: - ld a, [wcb6e] + ld a, [wPlayerStepFlags] and a ret z - bit 7, a + bit PLAYERSTEP_START_F, a jr nz, .sub_d6f7 - bit 6, a + bit PLAYERSTEP_STOP_F, a jr nz, .sub_d702 - bit 5, a + bit PLAYERSTEP_CONTINUE_F, a jp nz, Functiond543 ret .sub_d6f7 @@ -2097,7 +2095,7 @@ Function60a0: pop de jr c, .sub_e155 push de - ld b, $00 + ld b, NAME_MON farcall NamingScreen pop de ld a, [de] @@ -2111,8 +2109,8 @@ Function60a0: ld hl, wSpriteFlags ld a, [hl] push af - res 7, [hl] - set 6, [hl] + res SPRITES_SKIP_STANDING_GFX_F, [hl] + set SPRITES_SKIP_WALKING_GFX_F, [hl] call RedrawPlayerSprite pop af ld [wSpriteFlags], a @@ -2170,7 +2168,7 @@ _BillsPC: call LoadStandardMenuHeader call ClearTileMap call LoadFontsBattleExtra - ld hl, vChars2 + $780 + ld hl, vChars2 tile $78 ld de, PokeBallsGFX lb bc, BANK(PokeBallsGFX), $01 call Request2bpp @@ -2192,7 +2190,7 @@ _BillsPC: call CloseWindow call CloseWindow call LoadTilesetGFX - call Function360b + call RestoreScreenAndReloadTiles call LoadFontExtra call CloseWindow ret @@ -2573,7 +2571,7 @@ WhenYouChangeBoxText: done ChangeBoxName: - ld b, $04 + ld b, NAME_BOX ld de, wMovementBufferCount ld a, BANK(NamingScreen) ld hl, NamingScreen @@ -2644,7 +2642,7 @@ Functione5d3: call ExitMenu ret .sub_e62a - ld hl, wce5f + ld hl, wOptions ld a, [hl] push af set 4, [hl] @@ -2681,7 +2679,7 @@ Functione5d3: ld hl, WhichOneWouldYouLikeToSeeText call PrintText pop af - ld [wce5f], a + ld [wOptions], a ret CurrentBoxText: @@ -2696,14 +2694,14 @@ WhichOneWouldYouLikeToSeeText: Functione6a4: ; has something to do with releasing mon from PC ld a, l - ld [wcd70], a + ld [wListPointer], a ld a, h - ld [wcd71], a + ld [wListPointer + 1], a coord hl, 4, 2 ld b, $09 ld c, $0e call DrawTextBox - ld hl, wcd70 + ld hl, wListPointer ld a, [hli] ld h, [hl] ld l, a @@ -2771,8 +2769,8 @@ Function6734: push af xor a ldh [hMapAnims], a - ld hl, wVramState - res 0, [hl] + ld hl, wStateFlags + res SPRITE_UPDATES_DISABLED_F, [hl] call ClearBGPalettes call ClearSprites call LoadStandardMenuHeader @@ -2784,11 +2782,11 @@ Function6734: ld a, BANK(_NewPokedexEntry) call FarCall_hl call ClearBGPalettes - ld hl, wVramState - set 0, [hl] + ld hl, wStateFlags + set SPRITE_UPDATES_DISABLED_F, [hl] call ExitMenu call LoadTilesetGFX_LCDOff - call Function360b + call RestoreScreenAndReloadTiles call UpdateTimePals pop af ldh [hMapAnims], a @@ -2818,12 +2816,12 @@ _UseItem: jp hl Tablee7a5: - dw PokeBallEffect ; ITEM_MASTER_BALL - dw PokeBallEffect ; ITEM_ULTRA_BALL + dw PokeBallEffect ; ITEM_MASTER_BALL + dw PokeBallEffect ; ITEM_ULTRA_BALL dw Functionf66f - dw PokeBallEffect ; ITEM_GREAT_BALL - dw PokeBallEffect ; ITEM_POKE_BALL - dw Functionec95 + dw PokeBallEffect ; ITEM_GREAT_BALL + dw PokeBallEffect ; ITEM_POKE_BALL + dw TownMapEffect ; ITEM_TOWN_MAP dw Functioneca4 dw Functioned00 dw Functionef02 @@ -3263,11 +3261,11 @@ PokeBallEffect: ld a, [wPartyCount] dec a ld hl, wPartyMonNicknames - ld bc, $0006 + ld bc, MON_NAME_LENGTH call AddNTimes ld d, h ld e, l - ld b, $00 + ld b, NAME_MON ld a, BANK(NamingScreen) ld hl, NamingScreen push de @@ -3275,10 +3273,10 @@ PokeBallEffect: call GBFadeOutToWhite pop de ld a, [de] - cp $50 + cp "@" jr nz, .sub_eb5f ld hl, wStringBuffer1 - ld bc, $0006 + ld bc, MON_NAME_LENGTH call CopyBytes jr .sub_eb5f .sub_eb13 @@ -3289,17 +3287,17 @@ PokeBallEffect: call YesNoBox jr c, .sub_eb47 ld de, wBoxMonNicknames - ld b, $00 + ld b, NAME_MON ld a, BANK(NamingScreen) ld hl, NamingScreen call FarCall_hl call GBFadeOutToWhite ld de, wBoxMonNicknames ld a, [de] - cp $50 + cp "@" jr nz, .sub_eb47 ld hl, wStringBuffer1 - ld bc, $0006 + ld bc, MON_NAME_LENGTH call CopyBytes .sub_eb47 ld hl, Textec0e @@ -3409,13 +3407,11 @@ ReturnToBattle_UseBall: call SetPalettes ret -Functionec95: +TownMapEffect: ld a, [wBattleMode] and a jp nz, IsntTheTimeMessage - ld a, BANK(Function86a0) - ld hl, Function86a0 - jp FarCall_hl + farjp TownMap Functioneca4: xor a @@ -4591,7 +4587,7 @@ Functionf4d1: push hl ld a, [hl] ld [wce37], a - call Unreferenced_GetMoveName + call GetMoveName call CopyStringToStringBuffer2 pop hl ld a, [wMovementBufferCount] @@ -4784,8 +4780,8 @@ Functionf678: ld [wce37], a predef GetTMHMMove ld a, [wce37] - ld [wce32], a - call Unreferenced_GetMoveName + ld [wPutativeTMHMMove], a + call GetMoveName call CopyStringToStringBuffer2 pop af ld hl, Textf723 @@ -4802,13 +4798,13 @@ Functionf678: ret .sub_f6bb ld hl, wHPBarTempHP - ld de, wcd11 + ld de, wMonOrItemNameBuffer ld bc, $0008 call CopyBytes ld a, PARTYMENUACTION_TEACH_TMHM call Functionf0cf push af - ld hl, wcd11 + ld hl, wMonOrItemNameBuffer ld de, wHPBarTempHP ld bc, $0008 call CopyBytes @@ -4838,7 +4834,7 @@ Functionf678: .sub_f70c call Functionfdab jr c, .sub_f6bb - predef Function6445 + predef LearnMove ld a, b and a ret z @@ -5322,7 +5318,7 @@ Functionfaba: Functionfbde: call ClearBGPalettes - call Function360b + call RestoreScreenAndReloadTiles call GetMemSGBLayout jp ReloadFontAndTileset @@ -5516,7 +5512,7 @@ WobbleProbabilities: Functionfdab: ld a, $02 call GetPartyParamLocation - ld a, [wce32] + ld a, [wPutativeTMHMMove] ld b, a ld c, $04 .sub_fdb6 @@ -5556,7 +5552,7 @@ Datafdf1: db $28, $3c Functionfdf3: - ld a, [wce32] + ld a, [wPutativeTMHMMove] ld b, a ld c, $04 .sub_fdf9 diff --git a/engine/dumps/bank09.asm b/engine/dumps/bank09.asm index 9d52ff4..97a1bc8 100644 --- a/engine/dumps/bank09.asm +++ b/engine/dumps/bank09.asm @@ -396,8 +396,8 @@ _InitScrollingMenu:: ldh [hBGMapMode], a inc a ldh [hInMenu], a - ld hl, wce5f - set 4, [hl] + ld hl, wOptions + set NO_TEXT_SCROLL_F, [hl] call asm_243c3 call asm_243fc ld c, $0a @@ -416,8 +416,8 @@ _ScrollingMenu:: ld [wMenuJoypad], a ld a, $00 ldh [hInMenu], a - ld hl, wce5f - res 4, [hl] + ld hl, wOptions + res NO_TEXT_SCROLL_F, [hl] ret Function242a3: @@ -511,7 +511,7 @@ Function24342: ret asm_2434e: - ld hl, w2DMenuFlags + 1 + ld hl, w2DMenuFlags2 bit 7, [hl] jp z, SetFFInAccumulator ld a, [wMenuDataHeaderEnd] @@ -522,7 +522,7 @@ asm_2434e: ret asm_24362: - ld hl, w2DMenuFlags + 1 + ld hl, w2DMenuFlags2 bit 7, [hl] jp z, SetFFInAccumulator ld a, [wMenuDataHeaderEnd] @@ -533,7 +533,7 @@ asm_24362: ret asm_24376: - ld hl, w2DMenuFlags + 1 + ld hl, w2DMenuFlags2 bit 7, [hl] jp z, ClearAccumulator ld hl, wMenuScrollPosition @@ -544,7 +544,7 @@ asm_24376: jp ClearAccumulator asm_2438a: - ld hl, w2DMenuFlags + 1 + ld hl, w2DMenuFlags2 bit 7, [hl] jp z, ClearAccumulator ld hl, wMenuScrollPosition @@ -642,9 +642,9 @@ asm_2442e: jr z, asm_24434 set 1, a asm_24434: - ld [w2DMenuFlags], a + ld [w2DMenuFlags1], a xor a - ld [w2DMenuFlags + 1], a + ld [w2DMenuFlags2], a ld a, $20 ld [w2DMenuCursorOffsets], a ld a, $c3 @@ -1426,7 +1426,7 @@ MonMenuLoop: ld [wMenuDataItems], a call InitVerticalMenuCursor - ld hl, w2DMenuFlags + ld hl, w2DMenuFlags1 set _2DMENU_ENABLE_SPRITE_ANIMS_F, [hl] call Get2DMenuJoypad @@ -1486,7 +1486,7 @@ GetMonMenuString: inc hl ld a, [hl] ld [wNamedObjectIndexBuffer], a - call Unreferenced_GetMoveName + call GetMoveName ret .NotMove: @@ -1635,7 +1635,7 @@ BattleMonMenu: bit STATICMENU_CURSOR_F, a jr z, .set_carry call InitVerticalMenuCursor - ld hl, w2DMenuFlags + ld hl, w2DMenuFlags1 set _2DMENU_ENABLE_SPRITE_ANIMS_F, [hl] call Get2DMenuJoypad bit B_BUTTON_F, a @@ -1822,7 +1822,7 @@ asm_24bee: jr z, asm_24c12 ld a, $30 asm_24c12: - ld [w2DMenuFlags], a + ld [w2DMenuFlags1], a ld a, [wMenuDataIndicesPointer] or $20 ld [w2DMenuCursorOffsets], a diff --git a/engine/dumps/bank0b.asm b/engine/dumps/bank0b.asm index 139ad8d..9f8b40a 100644 --- a/engine/dumps/bank0b.asm +++ b/engine/dumps/bank0b.asm @@ -37,8 +37,8 @@ Function2d2fc: ld a, $1b call Predef ld a, [wce37] - ld [wce32], a - call Unreferenced_GetMoveName + ld [wPutativeTMHMMove], a + call GetMoveName call CopyStringToStringBuffer2 ld hl, text_2d3bf call PrintText @@ -52,8 +52,8 @@ asm_2d33e: ld de, wcd1d ld bc, $8 call CopyBytes - ld hl, wVramState - res 0, [hl] + ld hl, wStateFlags + res SPRITE_UPDATES_DISABLED_F, [hl] ld a, $3 ld [wPartyMenuActionText], a ld a, $36 @@ -104,9 +104,9 @@ asm_2d3a8: asm_2d3ad: call ClearBGPalettes call ClearSprites - ld hl, wVramState - set 0, [hl] - call Function360b + ld hl, wStateFlags + set SPRITE_UPDATES_DISABLED_F, [hl] + call RestoreScreenAndReloadTiles call GetMemSGBLayout ret @@ -160,9 +160,9 @@ sub_2d436: asm_2d454: ld [w2DMenuNumRows], a ld a, $c - ld [w2DMenuFlags], a + ld [w2DMenuFlags1], a xor a - ld [w2DMenuFlags + 1], a + ld [w2DMenuFlags2], a ld a, $20 ld [w2DMenuCursorOffsets], a ld a, $c3 @@ -188,7 +188,7 @@ asm_2d47b: ld [wcd42], a xor a ldh [hBGMapMode], a - ld a, [w2DMenuFlags + 1] + ld a, [w2DMenuFlags2] bit 7, a jp nz, asm_2d537 ld a, b @@ -340,8 +340,8 @@ asm_2d586: ld a, $1b call Predef ld a, [wce37] - ld [wce32], a - call Unreferenced_GetMoveName + ld [wPutativeTMHMMove], a + call GetMoveName pop hl ld bc, $3 add hl, bc diff --git a/engine/dumps/bank0d.asm b/engine/dumps/bank0d.asm index d98c1d4..df04d4d 100644 --- a/engine/dumps/bank0d.asm +++ b/engine/dumps/bank0d.asm @@ -813,7 +813,7 @@ MoveDisabled: ld a, [hl] ld [wNamedObjectIndexBuffer], a - call Unreferenced_GetMoveName + call GetMoveName ld hl, DisabledMoveText jp PrintText @@ -3875,7 +3875,7 @@ BattleCommand_Sketch: ld [hl], a ld [wNamedObjectIndexBuffer], a - call Unreferenced_GetMoveName + call GetMoveName call LoadMoveAnim ld hl, SketchedText jp PrintText @@ -4048,7 +4048,7 @@ BattleCommand_Spite: jr z, .failed push bc push de - call Unreferenced_GetMoveName + call GetMoveName pop de call BattleRandom @@ -4410,7 +4410,7 @@ UpdateMoveData: ld [wNamedObjectIndexBuffer], a .get_move_name: - call Unreferenced_GetMoveName + call GetMoveName jp CopyStringToStringBuffer2 ; Unreferenced. Seems to be early sleep code leftover from Gen 1. @@ -6739,7 +6739,7 @@ BattleCommand_Mimic: ld a, [de] ld [hl], a ld [wNamedObjectIndexBuffer], a - call Unreferenced_GetMoveName + call GetMoveName call LoadMoveAnim ld hl, MimicLearnedMoveText jp PrintText @@ -6870,7 +6870,7 @@ BattleCommand_Disable: .got_disabled_move_pointer ld a, [wNamedObjectIndexBuffer] ld [hl], a - call Unreferenced_GetMoveName + call GetMoveName ld hl, MoveDisabledText jp PrintText @@ -7484,7 +7484,7 @@ BattleCommand_MirrorMove: call FarCopyBytes call IncrementMovePP - call Unreferenced_GetMoveName + call GetMoveName call CopyStringToStringBuffer2 call BattleCommand_MoveDelay ldh a, [hBattleTurn] diff --git a/engine/dumps/bank0f.asm b/engine/dumps/bank0f.asm index e06a2be..6f971aa 100644 --- a/engine/dumps/bank0f.asm +++ b/engine/dumps/bank0f.asm @@ -2032,7 +2032,7 @@ LoadEnemyMonToSwitchTo: jr nz, EnemySendOutFirstMon ld a, [wOptions] - bit BATTLE_SHIFT, a + bit BATTLE_SHIFT_F, a jr nz, EnemySendOutFirstMon callfar Battle_GetTrainerName @@ -3588,9 +3588,9 @@ asm_3db59: ld a, b ld [wMenuJoypadFilter], a ld a, c - ld [w2DMenuFlags], a + ld [w2DMenuFlags1], a xor a - ld [w2DMenuFlags + 1], a + ld [w2DMenuFlags2], a ld a, $20 ld [w2DMenuCursorOffsets], a @@ -3782,7 +3782,7 @@ sub_3dcb7: cp $fc ret nc ld [wNumSetBits], a - call Unreferenced_GetMoveName + call GetMoveName ld hl, $c401 jp PlaceString @@ -6021,10 +6021,10 @@ Function3ef19: InitBattleCommon: ld a, [wTimeOfDayPal] push af - ld hl, wTextBoxFlags + ld hl, wTextboxFlags ld a, [hl] push af - res 1, [hl] + res TEXT_DELAY_F, [hl] ldh a, [hMapAnims] ld [wce26], a call PlayBattleMusic @@ -6041,8 +6041,8 @@ InitBattleCommon: _InitBattleCommon: ld b, 0 call GetSGBLayout - ld hl, wVramState - res 0, [hl] + ld hl, wStateFlags + res SPRITE_UPDATES_DISABLED_F, [hl] call InitBattleDisplay call BattleStartMessage xor a @@ -6061,7 +6061,7 @@ _InitBattleCommon: call StartBattle call sub_3f13e pop af - ld [wTextBoxFlags], a + ld [wTextboxFlags], a pop af ld [wTimeOfDayPal], a ld a, [wce26] diff --git a/engine/dumps/bank10.asm b/engine/dumps/bank10.asm index d3c40e6..9fb8c49 100644 --- a/engine/dumps/bank10.asm +++ b/engine/dumps/bank10.asm @@ -47,17 +47,17 @@ Pokedex: ld hl, wOptions ld a, [hl] push af - set NO_TEXT_SCROLL, [hl] + set NO_TEXT_SCROLL_F, [hl] ldh a, [hMapAnims] push af xor a ldh [hMapAnims], a - ld a, [wVramState] + ld a, [wStateFlags] push af xor a - ld [wVramState], a + ld [wStateFlags], a ldh a, [hJoypadSum] push af @@ -71,7 +71,7 @@ Pokedex: pop af ldh [hJoypadSum], a pop af - ld [wVramState], a + ld [wStateFlags], a pop af ldh [hMapAnims], a pop af diff --git a/engine/dumps/bank14.asm b/engine/dumps/bank14.asm index 0f40e77..0dc21be 100644 --- a/engine/dumps/bank14.asm +++ b/engine/dumps/bank14.asm @@ -550,7 +550,7 @@ Function50340:: call PrintNumber call .CalcExpToNextLevel - ld de, wcdc3 + ld de, wExpToNextLevel hlcoord 10, 13 ld bc, $0307 call PrintNumber @@ -604,18 +604,18 @@ Function50340:: ldh a, [hQuotient + 3] sub [hl] dec hl - ld [wcdc5], a + ld [wExpToNextLevel + 2], a ldh a, [hQuotient + 2] sbc [hl] dec hl - ld [wcdc4], a + ld [wExpToNextLevel + 1], a ldh a, [hQuotient + 1] sbc [hl] - ld [wcdc3], a + ld [wExpToNextLevel], a ret .AlreadyAtMaxLevel - ld hl, wcdc3 + ld hl, wExpToNextLevel xor a ld [hli], a ld [hli], a @@ -1027,8 +1027,8 @@ ClearGraphicsForPartyMenu:: call ClearBGPalettes .asm_5075f - ld hl, wVramState - res 0, [hl] + ld hl, wStateFlags + res SPRITE_UPDATES_DISABLED_F, [hl] call ClearSprites xor a ldh [hBGMapMode], a @@ -1045,14 +1045,14 @@ PartyMenuInBattle:: xor a ldh [hMapAnims], a ld hl, wOptions - set NO_TEXT_SCROLL, [hl] + set NO_TEXT_SCROLL_F, [hl] call PartyMenuInBattle_SetMenuAttributes call Function5081f call Function507cf ld hl, wOptions - res NO_TEXT_SCROLL, [hl] + res NO_TEXT_SCROLL_F, [hl] pop bc ld a, b ldh [hMapAnims], a @@ -1241,7 +1241,7 @@ Function508c4:: dec hl dec hl dec hl - ld a, "▷" ; $ec + ld a, "▷" ld [hli], a inc hl inc hl @@ -1274,8 +1274,7 @@ Function508c4:: .asm_50922 push hl - ld a, $1a - call Predef + predef CanLearnTMHMMove pop hl ld de, .text_50948 ld a, c @@ -1386,11 +1385,11 @@ Function509d8:: ld b, $0a call GetSGBLayout Function509dd:: - ld hl, wce5f + ld hl, wOptions ld a, [hl] push af push hl - set 4, [hl] + set NO_TEXT_SCROLL_F, [hl] ld a, [wPartyMenuActionText] cp PARTYMENUTEXT_HEAL_PSN jr nc, .asm_509fc @@ -1703,7 +1702,7 @@ Function50c48:: jr nz, .asm_50c59 ld hl, wOTPartyCount ld de, wOTPartyMonOT - ld a, $06 + ld a, ENEMY_OT_NAME jr .asm_50c8b @@ -1712,7 +1711,7 @@ Function50c48:: jr nz, .asm_50c67 ld hl, wPartyCount ld de, wPartyMonOTs - ld a, $05 + ld a, PARTY_OT_NAME jr .asm_50c8b @@ -1721,7 +1720,7 @@ Function50c48:: jr nz, .asm_50c75 ld hl, wcd60 ld de, PokemonNames - ld a, $01 + ld a, MON_NAME jr .asm_50c8b @@ -1730,30 +1729,30 @@ Function50c48:: jr nz, .asm_50c83 ld hl, wItems - ld de, $6fec ; ItemNames? - ld a, $04 + ld de, ItemNames + ld a, ITEM_NAME jr .asm_50c8b .asm_50c83 ld hl, wcd60 - ld de, $6fec - ld a, $04 + ld de, ItemNames + ld a, ITEM_NAME .asm_50c8b ld [wNamedObjectTypeBuffer], a ld a, l - ld [wcd70], a + ld [wListPointer], a ld a, h - ld [wcd71], a + ld [wListPointer + 1], a ld a, e - ld [wcd72], a + ld [wNamesPointer], a ld a, d - ld [wcd72 + 1], a - ld bc, $68F3 ; ItemAttributes? + ld [wNamesPointer + 1], a + ld bc, ItemAttributes ld a, c - ld [wcd74], a + ld [wItemAttributesPointer], a ld a, b - ld [wcd75], a + ld [wItemAttributesPointer + 1], a ret Function50caa:: diff --git a/engine/events/field_moves.asm b/engine/events/field_moves.asm index 57335a8..98f36fe 100755 --- a/engine/events/field_moves.asm +++ b/engine/events/field_moves.asm @@ -375,7 +375,7 @@ Text_CantUseFlyHere: FlyScript: ld a, MAPSETUP_TELEPORT ldh [hMapEntryMethod], a - jpfar Functionfcc24 + jpfar DoTeleportAnimation DigFunction: @@ -441,7 +441,7 @@ DigScript: call CopyBytes ld a, MAPSETUP_WARP ldh [hMapEntryMethod], a - jpfar Functionfcc24 + jpfar DoTeleportAnimation EmptyFunctiond2da: ret @@ -534,7 +534,7 @@ TeleportScript: call Function1fea ld a, MAPSETUP_TELEPORT ldh [hMapEntryMethod], a - jpfar Functionfcc24 + jpfar DoTeleportAnimation Text_ReturnToLastMonCenter: text "さいごに たちよった" diff --git a/engine/events/pokecenter_pc.asm b/engine/events/pokecenter_pc.asm index f6d8348..99b72ec 100644 --- a/engine/events/pokecenter_pc.asm +++ b/engine/events/pokecenter_pc.asm @@ -300,8 +300,8 @@ PlayerTossItemMenu: call LoadStandardMenuHeader call ClearTileMap call ClearSprites - ld hl, wVramState - res 0, [hl] + ld hl, wStateFlags + res SPRITE_UPDATES_DISABLED_F, [hl] call UpdateSprites .loop call PCItemsJoypad @@ -310,8 +310,8 @@ PlayerTossItemMenu: callfar TryTossItem jr .loop .quit - ld hl, wVramState - set 0, [hl] + ld hl, wStateFlags + set SPRITE_UPDATES_DISABLED_F, [hl] call Call_ExitMenu and a ret @@ -333,8 +333,8 @@ PlayerDepositItemMenu: jr .loop .quit call ClearPalettes - ld hl, wVramState - set 0, [hl] + ld hl, wStateFlags + set SPRITE_UPDATES_DISABLED_F, [hl] call Call_ExitMenu and a ret diff --git a/engine/games/slot_machine_game.asm b/engine/games/slot_machine_game.asm index db3a514..f56896a 100644 --- a/engine/games/slot_machine_game.asm +++ b/engine/games/slot_machine_game.asm @@ -93,16 +93,16 @@ SlotMachineGame: inc hl ld [hl], LOW(SLOTS_STARTING_COINS) - ld hl, wce5f - set 4, [hl] + ld hl, wOptions + set NO_TEXT_SCROLL_F, [hl] call SlotMachineGame_Init call DelayFrame .loop call SlotsLoop jr nc, .loop - ld hl, wce5f - res 4, [hl] + ld hl, wOptions + res NO_TEXT_SCROLL_F, [hl] ld hl, rLCDC res rLCDC_SPRITE_SIZE, [hl] ret @@ -262,7 +262,7 @@ Slots_DisplayBiasValue: ret Slots_AnimateReelSpritesAfterSpin: - ld hl, wcb61 + ld hl, wSlotReelIconDelay ld a, [hl] inc [hl] and 7 @@ -1711,7 +1711,7 @@ Slots_InitBias: .done ld a, [hl] - ld [$C509], a + ld [wSlotBias], a ret .Biases: @@ -1792,7 +1792,7 @@ Slots_AskBet: jr .loop .Start: - ld hl, wCoins+1 + ld hl, wCoins + 1 ld a, [hl] sub c ld [hld], a diff --git a/engine/gfx/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm index c7323a1..10ab945 100644 --- a/engine/gfx/sgb_layouts.asm +++ b/engine/gfx/sgb_layouts.asm @@ -711,8 +711,8 @@ PushSGBBorder: ret .LoadSGBBorderPointers: - ld a, [wce5f] - bit 3, a + ld a, [wOptions] + bit SGB_BORDER_F, a jr nz, .spaceworld_border ; load alternate border diff --git a/engine/items/item_prices_old.asm b/engine/items/item_prices_old.asm new file mode 100644 index 0000000..b210d73 --- /dev/null +++ b/engine/items/item_prices_old.asm @@ -0,0 +1,115 @@ +INCLUDE "constants.asm" + +SECTION "engine/items/item_prices_old.asm", ROMX + +; This function is wildly out of date. It assumes wItemAttributesPointer uses either an early layout, +; or an updated version of Generation I's ItemPrices. The final game stores prices with the rest of +; the ItemAttributes anyway, so this function is pointless now. +; Stores item's price as BCD at hItemPrice_Old (3 bytes). +; Input: [wCurItem] = item id. +GetItemPrice_Old:: + ld hl, wItemAttributesPointer + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wCurItem] + cp ITEM_HM01_RED + jr nc, .get_tm_price + + dec a + ld c, a + ld b, 0 +rept 4 ; Appears to be an earlier length for ItemAttributes? + add hl, bc +endr + inc hl + ld a, [hld] + ldh [hItemPrice_Old + 2], a + ld a, [hld] + ldh [hItemPrice_Old + 1], a + ld a, [hl] + ldh [hItemPrice_Old], a + jr .done + +.get_tm_price + call GetMachinePrice_Old +.done + ld de, hItemPrice_Old + ret + +GetMachinePrice_Old: + ld a, [wCurItem] + sub ITEM_TM01_RED + ret c ; HMs are priceless + ld d, a + ld hl, TechnicalMachinePrices_Old + srl a + ld c, a + ld b, 0 + add hl, bc + ld a, [hl] + srl d + jr nc, .odd_numbered_machine + swap a +.odd_numbered_machine + and $f0 + ldh [hItemPrice_Old + 1], a + xor a + ldh [hItemPrice_Old], a + ldh [hItemPrice_Old + 2], a + ret + +; In thousands (nybbles). +TechnicalMachinePrices_Old: + nybble_array + nybble 3 ; TM01 + nybble 2 ; TM02 + nybble 2 ; TM03 + nybble 1 ; TM04 + nybble 3 ; TM05 + nybble 4 ; TM06 + nybble 2 ; TM07 + nybble 4 ; TM08 + nybble 3 ; TM09 + nybble 4 ; TM10 + nybble 2 ; TM11 + nybble 1 ; TM12 + nybble 4 ; TM13 + nybble 5 ; TM14 + nybble 5 ; TM15 + nybble 5 ; TM16 + nybble 3 ; TM17 + nybble 2 ; TM18 + nybble 3 ; TM19 + nybble 2 ; TM20 + nybble 5 ; TM21 + nybble 5 ; TM22 + nybble 5 ; TM23 + nybble 2 ; TM24 + nybble 5 ; TM25 + nybble 4 ; TM26 + nybble 5 ; TM27 + nybble 2 ; TM28 + nybble 4 ; TM29 + nybble 1 ; TM30 + nybble 2 ; TM31 + nybble 1 ; TM32 + nybble 1 ; TM33 + nybble 2 ; TM34 + nybble 4 ; TM35 + nybble 2 ; TM36 + nybble 2 ; TM37 + nybble 5 ; TM38 + nybble 2 ; TM39 + nybble 4 ; TM40 + nybble 2 ; TM41 + nybble 2 ; TM42 + nybble 5 ; TM43 + nybble 2 ; TM44 + nybble 2 ; TM45 + nybble 4 ; TM46 + nybble 3 ; TM47 + nybble 4 ; TM48 + nybble 4 ; TM49 + nybble 2 ; TM50 + end_nybble_array NUM_TMS diff --git a/engine/items/tmhm.asm b/engine/items/tmhm.asm index bb7daf2..b02f17c 100644 --- a/engine/items/tmhm.asm +++ b/engine/items/tmhm.asm @@ -3,7 +3,7 @@ INCLUDE "constants.asm" SECTION "engine/items/tmhm.asm", ROMX CanLearnTMHMMove: -; Gets the index of TM or HM with move ID wce32, +; Gets the index of TM or HM with move ID wPutativeTMHMMove, ; then checks the corresponding flag in wCurPartySpecies's learnset. ; Sets register c to 1 if TM/HM is in learnset OR if debug is enabled. ld a, [wDebugFlags] @@ -17,7 +17,7 @@ CanLearnTMHMMove: ld hl, wMonHLearnset push hl - ld a, [wce32] + ld a, [wPutativeTMHMMove] ld b, a ld c, 0 ld hl, TMHMMoves diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 567feb0..9395027 100644 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -13,9 +13,8 @@ INCLUDE "constants.asm" const PLAY_POKEMON const SET_TIME -SECTION "engine/menu/main_menu.asm@Initialize new game WRAM", ROMX -; TODO: Move this to another file when surrounding -; functions have been disassembled. +SECTION "engine/menu/main_menu.asm", ROMX + InitializeNewGameWRAM: ld a, [wSGB] push af @@ -23,12 +22,12 @@ InitializeNewGameWRAM: ; Clear a lot of in-game WRAM. ld hl, wShadowOAM - ld bc, (wcd3f + 1) - wShadowOAM + ld bc, (wcd3f) - wShadowOAM xor a call ByteFill ld hl, wPlayerName - ld bc, $1164 + ld bc, wBoxMonNicknamesEnd - wPlayerName xor a call ByteFill @@ -51,28 +50,30 @@ InitializeNewGameWRAM: ld [wPlayerID + 1], a ld hl, wPartyCount - call InitializeByteList + call .InitList ld hl, wBoxListLength - call InitializeByteList + call .InitList ld hl, wNumBagItems - call InitializeByteList + call .InitList ld hl, wNumKeyItems - call InitializeByteList + call .InitList ld hl, wUnknownListLengthd1ea - call InitializeByteList + call .InitList xor a ld [wMonType], a ld [wJohtoBadges], a ld [wKantoBadges], a ld [wCoins], a - ld [wd15c], a + ld [wCoins + 1], a + +if START_MONEY >= $10000 + ld a, HIGH(START_MONEY >> 8) +endc ld [wMoney], a - - ld a, $0B + ld a, HIGH(START_MONEY) ld [wMoney + 1], a - - ld a, $B8 + ld a, LOW(START_MONEY) ld [wMoney + 2], a ld hl, wUnknownListLengthd1ea @@ -89,16 +90,53 @@ InitializeNewGameWRAM: ret -; Initializes a $FF-terminated list preceded by a length to -; length 0, with an immediate terminator. -InitializeByteList: +; Loads 0 in the count and -1 in the first item or mon slot. +.InitList: xor a ld [hli], a dec a ld [hl], a ret -SECTION "engine/menu/main_menu.asm@MainMenu", ROMX +CheckIfSaveFileExists: + ld a, BANK(sOptions) + call OpenSRAM + ld a, [sOptions] + ld [wSaveFileExists], a + call CloseSRAM + ret + +LoadOptions: + ld a, BANK(sOptions) + call OpenSRAM + ld hl, sOptions + ld a, [hli] + ld [wOptions], a + inc hl + ld a, [hli] + ld [wActiveFrame], a + ld a, [hl] + ld [wTextboxFlags], a + call CloseSRAM + ret + +; Copies the contents of wDebugFlags - wce66 to... themselves. +; Presumably, the debug flags were originally saved to the save file (evidenced by SRAM being opened and closed), +; but the source address was dummied out. +Dummy_LoadDebugFlags: + ld a, BANK(s0_a600) + call OpenSRAM + ld hl, wDebugFlags + ld a, [hli] + ld [wDebugFlags], a + ld a, [hli] + ld [wce64], a + ld a, [hli] + ld [wce65], a + ld a, [hl] + ld [wce66], a + call CloseSRAM + ret MainMenu:: ld hl, wd4a9 @@ -108,8 +146,8 @@ MainMenu:: call LoadFontExtra call LoadFont call ClearWindowData - call Function5388 - ld hl, wce60 + call CheckIfSaveFileExists + ld hl, wSaveFileExists bit 0, [hl] jr nz, .setMenuContinue xor a @@ -208,8 +246,8 @@ MainMenuOptionContinue:: jp nz, MainMenu jr .loop .escape - call Function5397 - call Function53b0 + call LoadOptions + call Dummy_LoadDebugFlags ld hl, wDebugFlags res DEBUG_FIELD_F, [hl] set CONTINUED_F, [hl] diff --git a/engine/menu/options_menu.asm b/engine/menu/options_menu.asm new file mode 100644 index 0000000..f5c6f87 --- /dev/null +++ b/engine/menu/options_menu.asm @@ -0,0 +1,451 @@ +INCLUDE "constants.asm" + +SECTION "engine/menu_options_menu.asm", ROMX + +DEF OPT_TEXT_SPEED_ROW EQU 3 +DEF OPT_BATTLE_ANIM_ROW EQU 7 +DEF OPT_BATTLE_STYLE_ROW EQU 11 +DEF OPT_SOUND_ROW EQU 13 +DEF OPT_BOTTOM_ROW EQU 16 + +OptionsMenu:: + ld a, [wStateFlags] + push af + xor a + ld [wStateFlags], a +.ReinitDisplay: + call DisplayOptionsMenu +.Loop: + call GetOptionsMenuCursorPos + ld [hl], "▶" + call SetOptionsFromCursorPositions + call WaitBGMap +.wait_joy_loop + call DelayFrame + call GetJoypadDebounced + ldh a, [hJoySum] + ld b, a + and a + jr z, .wait_joy_loop + ld a, b + and START | B_BUTTON + jr nz, .ExitOptions + ld a, b + and SELECT + jr nz, .SwitchSGBBorder + ld a, b + and A_BUTTON + jr z, .CheckDPad + + ld a, [wOptionsMenuCursorY] + cp OPT_BOTTOM_ROW + jr nz, .Loop + + ld a, [wOptionsMenuCursorX] + cp 7 + jr z, .SwitchActiveFrame +.ExitOptions: + push de + ld de, SFX_READ_TEXT_2 + call PlaySFX + pop de + pop af + ld [wStateFlags], a + ld hl, wd4a9 + bit 0, [hl] + jp z, TitleSequenceStart + ret + +.SwitchSGBBorder: + ld hl, wOptions + ld a, [hl] + xor SGB_BORDER + ld [hl], a + callfar UpdateSGBBorder + call LoadFont + call LoadFontExtra + ld c, 112 + call DelayFrames + jp .ReinitDisplay + +.SwitchActiveFrame + ld a, [wActiveFrame] + inc a + and 7 + ld [wActiveFrame], a + hlcoord 17, 16 + add "1" + ld [hl], a + call LoadFontExtra + jr .Loop + +.ClearOldMenuCursor: + push af + call GetOptionsMenuCursorPos + ld [hl], " " + pop af + ld [wOptionsMenuCursorX], a + jp .Loop + +.CheckDPad: + ld a, [wOptionsMenuCursorY] + bit D_DOWN_F, b + jr nz, .down_pressed + bit D_UP_F, b + jr nz, .up_pressed + + cp OPT_BATTLE_ANIM_ROW + jp z, .Cursor_BattleAnimation + cp OPT_BATTLE_STYLE_ROW + jp z, .Cursor_BattleStyle + cp OPT_SOUND_ROW + jp z, .Cursor_Audio + cp OPT_BOTTOM_ROW + jp z, .Cursor_BottomRow + +.Cursor_TextSpeed: + bit D_LEFT_F, b + jp nz, .text_speed_left + jp .text_speed_right + +.down_pressed + cp OPT_BOTTOM_ROW + ld b, OPT_TEXT_SPEED_ROW - OPT_BOTTOM_ROW + ld hl, wOptionsTextSpeedCursorX + jr z, .update_cursor + + cp OPT_TEXT_SPEED_ROW + ld b, OPT_BATTLE_ANIM_ROW - OPT_TEXT_SPEED_ROW + inc hl ; wOptionsBattleAnimCursorX + jr z, .update_cursor + + cp OPT_BATTLE_ANIM_ROW + ld b, OPT_BATTLE_STYLE_ROW - OPT_BATTLE_ANIM_ROW + inc hl ; wOptionsBattleStyleCursorX + jr z, .update_cursor + + cp OPT_BATTLE_STYLE_ROW + ld b, OPT_SOUND_ROW - OPT_BATTLE_STYLE_ROW + inc hl ; wOptionsAudioSettingsCursorX + jr z, .update_cursor + + ld b, OPT_BOTTOM_ROW - OPT_SOUND_ROW + inc hl ; wOptionsBottomRowCursorX + jr .update_cursor + +.up_pressed + cp OPT_BATTLE_ANIM_ROW + ld b, OPT_TEXT_SPEED_ROW - OPT_BATTLE_ANIM_ROW + ld hl, wOptionsTextSpeedCursorX + jr z, .update_cursor + + cp OPT_BATTLE_STYLE_ROW + ld b, OPT_BATTLE_ANIM_ROW - OPT_BATTLE_STYLE_ROW + inc hl ; wOptionsBattleAnimCursorX + jr z, .update_cursor + + cp OPT_SOUND_ROW + ld b, OPT_BATTLE_STYLE_ROW - OPT_SOUND_ROW + inc hl ; wOptionsBattleStyleCursorX + jr z, .update_cursor + + cp OPT_BOTTOM_ROW + ld b, OPT_SOUND_ROW - OPT_BOTTOM_ROW + inc hl ; wOptionsAudioSettingsCursorX + jr z, .update_cursor + + ld b, OPT_BOTTOM_ROW - OPT_TEXT_SPEED_ROW + inc hl ; wOptionsBottomRowCursorX +.update_cursor + add b + push af + ld a, [hl] + push af + call GetOptionsMenuCursorPos + ld [hl], "▷" + pop af + ld [wOptionsMenuCursorX], a + pop af + ld [wOptionsMenuCursorY], a + jp .Loop + +.text_speed_left + ld a, [wOptionsTextSpeedCursorX] + cp 1 + jr z, .update_text_speed + sub 7 + jr .update_text_speed + +.text_speed_right + ld a, [wOptionsTextSpeedCursorX] + cp 15 + jr z, .update_text_speed + add 7 +.update_text_speed + ld [wOptionsTextSpeedCursorX], a + jp .ClearOldMenuCursor + +.Cursor_BattleAnimation: + ld a, [wOptionsBattleAnimCursorX] + xor %1011 ; 1 <-> 10 + ld [wOptionsBattleAnimCursorX], a + jp .ClearOldMenuCursor + +.Cursor_BattleStyle: + ld a, [wOptionsBattleStyleCursorX] + xor %1011 ; 1 <-> 10 + ld [wOptionsBattleStyleCursorX], a + jp .ClearOldMenuCursor + +.Cursor_Audio: + ld a, [wOptionsAudioSettingsCursorX] + xor %1011 ; 1 <-> 10 + ld [wOptionsAudioSettingsCursorX], a + jp .ClearOldMenuCursor + +.Cursor_BottomRow: + call GetOptionsMenuCursorPos + ld [hl], "▷" + ld a, [wOptionsMenuCursorX] + xor %110 ; 1 <-> 7 + ld [wOptionsMenuCursorX], a + jp .Loop + +GetOptionsMenuCursorPos: + ld a, [wOptionsMenuCursorY] + ld hl, wTileMap + ld bc, SCREEN_WIDTH + call AddNTimes + ld a, [wOptionsMenuCursorX] + ld b, 0 + ld c, a + add hl, bc + ret + +SetOptionsFromCursorPositions: + ld hl, TextSpeedOptionData + ld a, [wOptionsTextSpeedCursorX] + ld c, a +.loop + ld a, [hli] + cp c + jr z, .found + inc hl + jr .loop + +.found + ld a, [hl] + ld d, a + ld a, [wOptionsBattleAnimCursorX] + dec a + jr z, .battle_anim_off + set BATTLE_SCENE_F, d + jr .battle_anim_on + +.battle_anim_off + res BATTLE_SCENE_F, d +.battle_anim_on + ld a, [wOptionsBattleStyleCursorX] + dec a + jr z, .battle_shift_off + set BATTLE_SHIFT_F, d + jr .battle_shift_on + +.battle_shift_off + res BATTLE_SHIFT_F, d +.battle_shift_on + ld a, [wOptionsAudioSettingsCursorX] + dec a + jr z, .mono + set STEREO_F, d + jr .stereo + +.mono + res STEREO_F, d +.stereo + ld a, [wOptions] + and SGB_BORDER + or d + ld [wOptions], a + ret + +DisplayOptionsMenu: + call ClearBGPalettes + call DisableLCD + xor a + ldh [hBGMapMode], a + call .LoadGFX_DrawDisplay + xor a + ld hl, wOptionsTextSpeedCursorX + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + assert FAST_TEXT_DELAY_F == 0 + inc a ; 1 << FAST_TEXT_DELAY_F + ld [wTextboxFlags], a + ld hl, TextSpeedOptionData + 1 + ld a, [wOptions] + ld c, a + and TEXT_DELAY_MASK + push bc + ld de, 2 + call FindItemInTable + pop bc + dec hl + ld a, [hl] + ld [wOptionsTextSpeedCursorX], a ; + hlcoord 0, OPT_TEXT_SPEED_ROW + call .PlaceUnfilledRightArrow + sla c + ld a, 1 ; On + jr nc, .battle_anim + ld a, 10 ; Off +.battle_anim + ld [wOptionsBattleAnimCursorX], a + hlcoord 0, OPT_BATTLE_ANIM_ROW + call .PlaceUnfilledRightArrow + sla c + ld a, 1 ; Shift + jr nc, .battle_style + ld a, 10 ; Set +.battle_style + ld [wOptionsBattleStyleCursorX], a + hlcoord 0, OPT_BATTLE_STYLE_ROW + call .PlaceUnfilledRightArrow + sla c + ld a, 1 ; Mono + jr nc, .mono_stereo + ld a, 10 ; Stereo +.mono_stereo + ld [wOptionsAudioSettingsCursorX], a + hlcoord 0, OPT_SOUND_ROW + call .PlaceUnfilledRightArrow + ld a, 1 + ld [wOptionsBottomRowCursorX], a +; Cursor in front of "Cancel" + hlcoord 1, OPT_BOTTOM_ROW + ld [hl], "▷" +; Cursor in front of frame options + hlcoord 7, OPT_BOTTOM_ROW + ld [hl], "▷" + ld a, [wOptionsTextSpeedCursorX] + ld [wOptionsMenuCursorX], a + ld a, 3 + ld [wOptionsMenuCursorY], a + call EnableLCD + call WaitBGMap + call SetPalettes + ret + +.PlaceUnfilledRightArrow + ld e, a + ld d, 0 + add hl, de + ld [hl], "▷" + ret + +.LoadGFX_DrawDisplay + ld de, vChars1 tile $70 + ld hl, TrainerCardGFX + ld bc, 1 tiles + ld a, BANK(TrainerCardGFX) + call FarCopyData + ld hl, wTileMap + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, $f0 ; checkered square tile + call ByteFill +; Text Speed + hlcoord 1, OPT_TEXT_SPEED_ROW - 2 + lb bc, 3, 18 + call ClearBox +; Battle Scene + hlcoord 1, OPT_BATTLE_ANIM_ROW - 2 + lb bc, 3, 18 + call ClearBox +; Battle Style + hlcoord 1, OPT_BATTLE_STYLE_ROW - 2 + lb bc, 3, 18 + call ClearBox +; Sound + hlcoord 1, OPT_SOUND_ROW + lb bc, 1, 18 + call ClearBox + + hlcoord 1, OPT_TEXT_SPEED_ROW - 2 + ld de, .OptionsText_TextSpeed + call PlaceString + + hlcoord 1, OPT_BATTLE_ANIM_ROW - 2 + ld de, .OptionsText_BattleScene + call PlaceString + + hlcoord 1, OPT_BATTLE_STYLE_ROW - 2 + ld de, .OptionsText_BattleStyle + call PlaceString + + hlcoord 1, OPT_SOUND_ROW + ld de, .OptionsText_Sound + call PlaceString + + hlcoord 1, OPT_BOTTOM_ROW + ld de, .OptionsText_Cancel + call PlaceString +; Draw the text box for the frame options + hlcoord 6, OPT_BOTTOM_ROW - 1 + ld b, 1 + ld c, 11 + call DrawTextBox + + hlcoord 7, OPT_BOTTOM_ROW + ld de, .OptionsText_FrameType + call PlaceString +; Place # of active frame + ld a, [wActiveFrame] + hlcoord 17, 16 + add "1" + ld [hl], a + ret + +.OptionsText_TextSpeed: + db "はなしの はやさ" + next " はやい    ふつう    おそい" + text_end + +.OptionsText_BattleScene: + db "せんとう アニメーション" + next " じっくり みる  とばして みる" + text_end + +.OptionsText_BattleStyle: + db "しあいの ルール" + next " いれかえタイプ  かちぬきタイプ" + text_end + +.OptionsText_Sound: + db " モノラル     ステレオ" + text_end + +.OptionsText_Cancel: + db " おわり" + text_end + +.OptionsText_FrameType: + db " わく を かえる " + text_end + +; Table that indicates how the 3 text speed options affect frame delays. +; Format: +; 00: X coordinate of menu cursor. +; 01: delay after printing a letter (in frames). +TextSpeedOptionData: + db 15, TEXT_DELAY_SLOW + db 8, TEXT_DELAY_MED + db 1, TEXT_DELAY_FAST + db 8, -1 + +Unknown7c2a: +rept 491 + db $39, $00 +endr diff --git a/engine/menu/start_menu.asm b/engine/menu/start_menu.asm index 241c6ee..04d2677 100644 --- a/engine/menu/start_menu.asm +++ b/engine/menu/start_menu.asm @@ -238,7 +238,7 @@ StartMenu_Pokedex: call LoadStandardMenuHeader predef Pokedex call ClearPalettes - call Function360b + call RestoreScreenAndReloadTiles call ReloadFontAndTileset call Call_ExitMenu call GetMemSGBLayout @@ -337,8 +337,8 @@ CheckItemsQuantity: ret DrawBackpack: - ld hl, wVramState - res 0, [hl] + ld hl, wStateFlags + res SPRITE_UPDATES_DISABLED_F, [hl] call ClearSprites call ClearTileMap callfar LoadBackpackGraphics @@ -348,8 +348,8 @@ DrawBackpack: call DrawTextBox ret - ld hl, wVramState - set 0, [hl] + ld hl, wStateFlags + set SPRITE_UPDATES_DISABLED_F, [hl] call ExitMenu ret @@ -357,8 +357,8 @@ StartMenu_Backpack: call CheckItemsQuantity jr c, .NoItems call LoadStandardMenuHeader - ld hl, wVramState - res 0, [hl] + ld hl, wStateFlags + res SPRITE_UPDATES_DISABLED_F, [hl] call DrawBackpack xor a ld [wSelectedSwapPosition], a @@ -373,8 +373,8 @@ StartMenu_Backpack: ld a, 0 .skip push af - ld hl, wVramState - set 0, [hl] + ld hl, wStateFlags + set SPRITE_UPDATES_DISABLED_F, [hl] xor a ld [wSelectedSwapPosition], a call ClearPalettes @@ -826,12 +826,12 @@ StartMenuLoadSprites: call DisableLCD ld a, 6 call UpdateSoundNTimes - callfar Function140d9 + callfar LoadStandingSpritesGFX call LoadTilesetGFX call LoadFontExtra call ClearSprites - ld hl, wVramState - set 0, [hl] + ld hl, wStateFlags + set SPRITE_UPDATES_DISABLED_F, [hl] call UpdateSprites call EnableLCD call GetMemSGBLayout @@ -982,7 +982,7 @@ PartyHeldItem: jp c, .close call GetCurNick ld hl, wStringBuffer1 - ld de, wcd11 + ld de, wMonOrItemNameBuffer ld bc, $0006 call CopyBytes ld a, [wMenuCursorY] @@ -1125,7 +1125,7 @@ PartyHeldItem: ItemWasEquippedText: db 1 - dw wcd11 + dw wMonOrItemNameBuffer text "は そうび していた" line "@" @@ -1142,7 +1142,7 @@ ItemWasEquippedText: ItemPrompt66FA: db 1 - dw wcd11 + dw wMonOrItemNameBuffer text "は @" .UnusedText3 @@ -1153,7 +1153,7 @@ ItemPrompt66FA: PartyNoItemToRecieveText: db 1 - dw wcd11 + dw wMonOrItemNameBuffer text "は なにも" line "そうび していません!" @@ -1163,7 +1163,7 @@ PartyItemRecieveBagFullText: ItemPrompt673D: db 1 - dw wcd11 + dw wMonOrItemNameBuffer text "から @" .UnusedText4 @@ -1174,7 +1174,7 @@ ItemPrompt673D: ItemPrompt6753: db 1 - dw wcd11 + dw wMonOrItemNameBuffer text "は @" .UnusedText5: @@ -1455,13 +1455,13 @@ NeedNewBadgeText: line "まだ つかえません!" PartyPokemonSummary2: - ld hl, wce5f + ld hl, wOptions ld a, [hl] push af - set 4, [hl] + set NO_TEXT_SCROLL_F, [hl] call PokeSummary pop af - ld [wce5f], a + ld [wOptions], a call ClearBGPalettes jp HandleSelectedPokemon @@ -1542,7 +1542,7 @@ SummaryDrawPoke: ld b, 6 ld c, $12 call DrawTextBox - ld hl, w2DMenuFlags + ld hl, w2DMenuFlags1 set 6, [hl] jr PartySelectionInputs.PartySelectSkipInputs PartySelectionInputs: @@ -1693,7 +1693,7 @@ SwapEntries: PartySelectionBackOut: xor a ld [wSelectedSwapPosition], a - ld hl, w2DMenuFlags + ld hl, w2DMenuFlags1 res 6, [hl] call ClearSprites call ClearTileMap @@ -1824,8 +1824,8 @@ UseRegisteredItem: .overworld call RefreshScreen - ld hl, wVramState - res 0, [hl] + ld hl, wStateFlags + res SPRITE_UPDATES_DISABLED_F, [hl] call UseItem call ClearPalettes call StartMenuLoadSprites @@ -1853,10 +1853,10 @@ UseRegisteredItem: ret TrainerCardLoop: - ld a, [wVramState] + ld a, [wStateFlags] push af xor a - ld [wVramState], a + ld [wStateFlags], a call ClearTrainerCardJumptable .loop call UpdateTime @@ -1866,7 +1866,7 @@ TrainerCardLoop: jr .loop .escape pop af - ld [wVramState], a + ld [wStateFlags], a ret ClearTrainerCardJumptable: diff --git a/engine/menu/text_entry.asm b/engine/menu/text_entry.asm index fb91b34..0c94611 100644 --- a/engine/menu/text_entry.asm +++ b/engine/menu/text_entry.asm @@ -13,10 +13,10 @@ NamingScreen: ld [hl], d ld hl, wNamingScreenType ld [hl], b - ld hl, wce5f + ld hl, wOptions ld a, [hl] push af - set 4, [hl] + set NO_TEXT_SCROLL_F, [hl] ldh a, [hMapAnims] push af xor a @@ -36,7 +36,7 @@ NamingScreen: pop af ldh [hMapAnims], a pop af - ld [wce5f], a + ld [wOptions], a call ClearJoypad ret diff --git a/engine/movie/oak_speech.asm b/engine/movie/oak_speech.asm index 56e96d8..3390109 100644 --- a/engine/movie/oak_speech.asm +++ b/engine/movie/oak_speech.asm @@ -85,14 +85,14 @@ GameStart:: ld [wMusicFade], a ld de, MUSIC_NONE ld a, e - ld [wMusicFadeIDLow], a + ld [wMusicFadeID], a ld a, d - ld [wMusicFadeIDHigh], a + ld [wMusicFadeID + 1], a ld de, SFX_ESCAPE_ROPE call PlaySFX pop af call Bankswitch - ld c, $04 + ld c, 4 call DelayFrames IntroCleanup:: @@ -127,7 +127,7 @@ OverworldStart:: call SetUpGameEntry ld hl, wDebugFlags bit CONTINUED_F, [hl] - call z, Function15b5 + call z, SpawnPlayer ld hl, wd4a9 set 0, [hl] jp Function2a85 @@ -161,6 +161,7 @@ GameStartPlacement:: DebugSetUpPlayer:: call SetPlayerNamesDebug +; Set money to 999999 ld a, $0F ld [wMoney], a ld a, $42 @@ -182,7 +183,7 @@ DebugSetUpPlayer:: call DebugFillPokedex ld hl, wUnownDex ld [hl], $01 - call Function40fd + call SetDemoEventFlags ret DebugFillPokedex:: @@ -256,22 +257,23 @@ GiveRandomJohto:: ld b, a add a, a add a, b - add a, $98 ; maybe should be a constant - 152, aka the number of kanto pokes - ld b, $08 + add a, NUM_KANTO_POKEMON + 1 + ld b, 8 call GivePokemon - ld a, $8D + ld a, ITEM_BERRY ld [wPartyMon1 + 1], a ret +; Unreferenced GiveKantoStarters:: - ld a, $03 - ld b, $20 + ld a, DEX_VENUSAUR + ld b, 32 call GivePokemon - ld a, $06 - ld b, $24 + ld a, DEX_CHARIZARD + ld b, 36 call GivePokemon - ld a, $09 - ld b, $24 + ld a, DEX_BLASTOISE + ld b, 36 call GivePokemon ret @@ -279,8 +281,7 @@ GivePokemon:: ld [wCurPartySpecies], a ld a, b ld [wCurPartyLevel], a - ld a, $10 - call Predef + predef Functiond886 ret AddRandomPokemonToBox: @@ -292,7 +293,7 @@ AddRandomPokemonToBox: ld [wEnemySubStatus5], a call RandomUnder246 ld [wTempEnemyMonSpecies], a - ld a, $05 + ld a, 5 ld [wCurPartyLevel], a callfar LoadEnemyMon ld a, [wTempEnemyMonSpecies] @@ -308,16 +309,16 @@ RandomUnder246:: call Random and a jr z, .loop - cp $F6 + cp 246 jr nc, .loop ret FillTMs:: - ld b, $39 - ld a, $01 + ld b, NUM_TM_HM + ld a, 1 ld hl, wTMsHMs .loop - ld [hl+], a + ld [hli], a dec b jr nz, .loop ret @@ -351,19 +352,19 @@ DemoSetUpPlayer:: ld hl, wRivalName ld de, DemoRivalName call CopyString - call Function40fd + call SetDemoEventFlags ld de, DemoItemList call FillBagWithList call GiveRandomJohto ret DemoItemList:: - db ITEM_POKE_BALL, $05 - db ITEM_POTION, $0A - db ITEM_FULL_HEAL, $0A - db ITEM_STIMULUS_ORB, $01 - db ITEM_FOCUS_ORB, $01 - db $FF + db ITEM_POKE_BALL, 5 + db ITEM_POTION, 10 + db ITEM_FULL_HEAL, 10 + db ITEM_STIMULUS_ORB, 1 + db ITEM_FOCUS_ORB, 1 + db -1 DemoPlayerName:: db "サトシ@" @@ -492,7 +493,7 @@ ChoosePlayerName:: jr .farjump .loop - ld b, $01 + ld b, NAME_PLAYER ld de, wPlayerName farcall NamingScreen ld a, [wPlayerName] @@ -503,8 +504,8 @@ ChoosePlayerName:: call ClearTileMap call LoadFontExtra call WaitBGMap - ld de, $4D10 - ld bc, $1200 + ld de, ProtagonistPic + lb bc, BANK(ProtagonistPic), 0 call IntroDisplayPicCenteredOrUpperRight call GBFadeInFromWhite .farjump @@ -545,7 +546,7 @@ ChooseRivalName:: jr .farjump .loop - ld b, $02 + ld b, NAME_RIVAL ld de, wRivalName farcall NamingScreen ld a, [wRivalName] @@ -556,8 +557,8 @@ ChooseRivalName:: call ClearTileMap call LoadFontExtra call WaitBGMap - ld de, $4BD4 - ld bc, $1200 + ld de, OakPic + lb bc, BANK(OakPic), 0 call IntroDisplayPicCenteredOrUpperRight call GBFadeInFromWhite .farjump @@ -597,7 +598,7 @@ MomNamePrompt:: jr .escape .loop - ld b, $03 + ld b, NAME_MOM ld de, wMomsName farcall NamingScreen ld a, [wMomsName] @@ -606,7 +607,7 @@ MomNamePrompt:: call ClearPalettes call ClearTileMap - callfar Function140d9 + callfar LoadStandingSpritesGFX call LoadFontExtra call GetMemSGBLayout call WaitBGMap @@ -647,11 +648,11 @@ SaveCustomName:: PanPortraitRight:: hlcoord 5, 4 - ld d, $06 - ld e, $7E + ld d, 6 + ld e, (SCREEN_WIDTH * 6) + 6 ld b, d ld c, e - ld d, $00 + ld d, 0 add hl, de .loop xor a @@ -660,8 +661,8 @@ PanPortraitRight:: push bc .innerLoop ;pans all the tiles onscreen to the right one - ld a, [hl+] - ld [hl-], a + ld a, [hli] + ld [hld], a dec hl dec c jr nz, .innerLoop @@ -676,16 +677,16 @@ PanPortraitRight:: PanPortraitLeft:: hlcoord 12, 4 - ld b, $06 - ld c, $7E + ld b, 6 + ld c, (SCREEN_WIDTH * 6) + 6 .loop xor a ldh [hBGMapMode], a push hl push bc .innerloop - ld a, [hl-] - ld [hl+], a + ld a, [hld] + ld [hli], a inc hl dec c jr nz, .innerloop @@ -699,14 +700,14 @@ PanPortraitLeft:: ret MenuCallSettings:: - call SettingsScreen + call OptionsMenu ret FadeInIntroPic: ld hl, IntroFadePalettes ld b, 6 .next - ld a, [hl+] + ld a, [hli] ldh [rBGP], a ld c, 10 call DelayFrames @@ -763,7 +764,7 @@ IntroDisplayPicCenteredOrUpperRight:: pop hl xor a ldh [hGraphicStartTile], a - ld bc, $0707 + lb bc, 7, 7 predef PlaceGraphic ret @@ -778,15 +779,15 @@ LoadStartingSprites: .loop ld a, [de] inc de - ld [hl+], a + ld [hli], a ld a, [de] inc de - ld [hl+], a + ld [hli], a ld a, [de] inc de - ld [hl+], a + ld [hli], a xor a - ld [hl+], a + ld [hli], a dec c jr nz, .loop ret diff --git a/engine/movie/title.asm b/engine/movie/title.asm index 2cadbf3..4c672e2 100644 --- a/engine/movie/title.asm +++ b/engine/movie/title.asm @@ -77,13 +77,13 @@ TitleSequenceInit:: jr nz, .clear_loop ld hl, TitleScreenGFX - ld de, vChars2 + 65 tiles + ld de, vChars2 tile $41 ld bc, 13 tiles ld a, BANK(TitleScreenGFX) call FarCopyData ld hl, TitleScreenVersionGFX - ld de, vChars2 + 96 tiles + ld de, vChars2 tile $60 ld bc, 24 tiles ld a, BANK(TitleScreenVersionGFX) call FarCopyData @@ -101,7 +101,7 @@ TitleSequenceInit:: call FarCopyData ld hl, TitleScreenGoldLogoGFX - ld de, vChars0 + 186 tiles + ld de, vChars1 tile $3a ld bc, 20 tiles ld a, BANK(TitleScreenGoldLogoGFX) call FarCopyData @@ -563,7 +563,7 @@ IntroCopyRightInfo:: call ClearTileMap call LoadFontExtra ld de, TitleScreenGFX - ld hl, $9600 + ld hl, vChars2 tile $60 lb bc, BANK(TitleScreenGFX), $19 call Request2bpp @@ -627,10 +627,8 @@ SetTitleGfxNext:: jr nz, .loop ret -SECTION "engine/movie/title.asm@Title screen TEMPORARY", ROMX - GameInit:: call ClearWindowData - ld a, $23 - ld [wce5f], a + ld a, STEREO | TEXT_DELAY_MED + ld [wOptions], a jp IntroSequence diff --git a/engine/overworld/init_map.asm b/engine/overworld/init_map.asm new file mode 100644 index 0000000..9f6f0dd --- /dev/null +++ b/engine/overworld/init_map.asm @@ -0,0 +1,63 @@ +INCLUDE "constants.asm" + +SECTION "engine/overworld/init_map.asm", ROMX + +ReanchorBGMap_NoOAMUpdate:: + xor a + ldh [hLCDCPointer], a + ld hl, wToolgearFlags + set 7, [hl] ; hide toolgear + res 2, [hl] ; transfer toolgear to window + ld a, SCREEN_HEIGHT_PX + ldh [hWY], a + xor a + ldh [hBGMapMode], a + xor a + ldh [hBGMapAddress], a + ld a, HIGH(vBGMap1) + ldh [hBGMapAddress+1], a + call LoadMapPart + call WaitBGMap + xor a + ldh [hBGMapMode], a + ldh [hWY], a + call .Transfer + xor a ; LOW(vBGMap0) + ld [wBGMapAnchor], a + ld a, HIGH(vBGMap0) + ldh [hBGMapAddress+1], a + ld [wBGMapAnchor+1], a + xor a + ldh [hSCX], a + ldh [hSCY], a + call WaitBGMap + ret + +.Transfer + ld a, $60 ; blank tile? + ld hl, wTileMapBackup + ld bc, (SCREEN_WIDTH * 6) + 8 + call ByteFill + ld hl, vBGMap0 + ld c, 8 +.loop + push bc + push hl + ld de, wTileMapBackup + lb bc, BANK(wTileMapBackup), 8 + call Request2bpp + pop hl + ld bc, BG_MAP_WIDTH * 4 + add hl, bc + pop bc + dec c + jr nz, .loop + ret + +LoadFonts_NoOAMUpdate: + call UpdateSprites + call LoadFont + call LoadFontExtra + ld a, SCREEN_HEIGHT_PX + ldh [hWY], a + ret diff --git a/engine/overworld/map_objects.asm b/engine/overworld/map_objects.asm new file mode 100644 index 0000000..5b6b85f --- /dev/null +++ b/engine/overworld/map_objects.asm @@ -0,0 +1,2431 @@ +INCLUDE "constants.asm" + +SECTION "engine/overworld/map_objects.asm", ROMX + +HandleStepTypeAndAction: + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld a, [hl] + and a + jr nz, .not_zero + call StepFunction_Reset +.not_zero + ld e, a + ld d, 0 + ld hl, HandleObjectAction + push hl + ld hl, OBJECT_FLAGS2 + add hl, bc + bit FROZEN_F, [hl] + jp nz, .Frozen + ld hl, .StepTypesJumptable + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +; entries correspond to STEP_TYPE_* constants (see constants/map_object_constants.asm) +.StepTypesJumptable: + dw StepFunction_Reset + dw StepFunction_FromMovement + dw StepFunction_NPCWalk + dw StepFunction_Sleep + dw StepFunction_Standing + dw StepFunction_PlayerWalk + dw StepFunction_ContinueWalk + dw StepFunction_ObeyDPad + dw StepFunction_Indexed1 + dw StepFunction_Indexed2 + dw StepFunction_Follow1 + dw StepFunction_0b_0e + dw StepFunction_0b_0e + dw StepFunction_0b_0e + dw StepFunction_0b_0e + dw StepFunction_NPCJump + dw StepFunction_PlayerJump + dw StepFunction_TeleportFrom + dw StepFunction_TeleportTo + dw Stub_StepFunction_13 + +.Frozen: + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_STAND + ret + +HandleObjectAction: + ld hl, OBJECT_FLAGS2 + add hl, bc + bit OFF_SCREEN_F, [hl] + jr nz, SetFacingStanding + ld hl, OBJECT_ACTION + add hl, bc + ld a, [hl] + ld hl, ObjectActionPointers + jp CallJumptable + +ObjectActionPointers: + dw SetFacingStanding + dw SetFacingStepAction + dw SetFacingCurrent + dw CounterclockwiseSpinAction + +SetFacingStanding: + ld hl, OBJECT_FACING + add hl, bc + ld [hl], STANDING + ret + +SetFacingStepAction: + ld hl, OBJECT_FLAGS1 + add hl, bc + bit SLIDING_F, [hl] + jr nz, SetFacingCurrent + + ld hl, OBJECT_FLAGS2 + add hl, bc + bit FROZEN_F, [hl] + jr nz, SetFacingCurrent + + ld hl, OBJECT_STEP_FRAME + add hl, bc + ld a, [hl] + inc a + and %00001111 + ld [hl], a + + rrca + rrca + maskbits NUM_DIRECTIONS + ld d, a + + ld hl, OBJECT_DIRECTION + add hl, bc + ld a, [hl] + and %00001100 + or d + ld hl, OBJECT_FACING + add hl, bc + ld [hl], a + ret + +SetFacingCurrent: + ld hl, OBJECT_DIRECTION + add hl, bc + ld a, [hl] + and %00001100 + ld hl, OBJECT_FACING + add hl, bc + ld [hl], a + ret + +; Here, OBJECT_STEP_FRAME consists of two 2-bit components, +; using only Bits 0-1 and 4-5. +; Bits 0-1 is a timer (4 overworld frames). +; Bits 4-5 determines the facing - the direction is counterclockwise. +CounterclockwiseSpinAction: + ld hl, OBJECT_STEP_FRAME + add hl, bc + ld a, [hl] + and %11110000 + ld e, a + + ld a, [hl] + inc a + and %00001111 + ld d, a + cp 4 + jr c, .ok + + ld d, 0 + ld a, e + add $10 + and %00110000 + ld e, a + +.ok + ld a, d + or e + ld [hl], a + + swap e + ld d, 0 + ld hl, .facings + add hl, de + ld a, [hl] + ld hl, OBJECT_DIRECTION + add hl, bc + ld [hl], a + ld hl, OBJECT_FACING + add hl, bc + ld [hl], a + ret + +.facings: + db OW_DOWN + db OW_RIGHT + db OW_UP + db OW_LEFT + +CopyCoordsTileToLastCoordsTile: + ld hl, OBJECT_MAP_X + add hl, bc + ld a, [hl] + ld hl, OBJECT_LAST_MAP_X + add hl, bc + ld [hl], a + ld hl, OBJECT_MAP_Y + add hl, bc + ld a, [hl] + ld hl, OBJECT_LAST_MAP_Y + add hl, bc + ld [hl], a + ld hl, OBJECT_TILE_COLLISION + add hl, bc + ld a, [hl] + ld hl, OBJECT_LAST_TILE + add hl, bc + ld [hl], a + call SetTallGrassFlags + ld hl, OBJECT_TILE_COLLISION + add hl, bc + ld a, [hl] + call ResetObjFlags2_7 + ret + +CopyLastCoordsToCoords: + ld hl, OBJECT_LAST_MAP_X + add hl, bc + ld a, [hl] + ld hl, OBJECT_MAP_X + add hl, bc + ld [hl], a + ld hl, OBJECT_LAST_MAP_Y + add hl, bc + ld a, [hl] + ld hl, OBJECT_MAP_Y + add hl, bc + ld [hl], a + ret + +UpdateTallGrassFlags: + ld hl, OBJECT_FLAGS2 + add hl, bc + bit OVERHEAD_F, [hl] + jr z, .ok + + ld hl, OBJECT_TILE_COLLISION + add hl, bc + ld a, [hl] + call SetTallGrassFlags + +.ok + nop + ld hl, OBJECT_TILE_COLLISION + add hl, bc + ld a, [hl] + call ResetObjFlags2_7 + ret c + ld hl, OBJECT_LAST_TILE + add hl, bc + ld a, [hl] + call ResetObjFlags2_7 + ret + +; This entire function was blanked out for the final game. See 'UselessAndA' in pokegold. +ResetObjFlags2_7: +; This comparison is pointless because the instructions below it have been nop'd out. + and COLLISION_TYPE_MASK + cp HI_NYBBLE_WARPS + nop + nop + + ld hl, OBJECT_FLAGS2 + add hl, bc + res OBJ_FLAGS2_7_F, [hl] + and a + ret + +; Unused +SetObjFlags2_7: + ld hl, OBJECT_FLAGS2 + add hl, bc + set OBJ_FLAGS2_7_F, [hl] + scf + ret + +SetTallGrassFlags: + call CheckGrassTile + jr c, .reset + ld hl, OBJECT_FLAGS2 + add hl, bc + set OVERHEAD_F, [hl] + ret + +.reset + ld hl, OBJECT_FLAGS2 + add hl, bc + res OVERHEAD_F, [hl] + ret + +CheckGrassTile: + ld d, a + and $f0 + cp HI_NYBBLE_TALL_GRASS + jr z, .grass + cp HI_NYBBLE_WATER + jr z, .water + scf + ret + +.grass + ld a, d + and LO_NYBBLE_GRASS + ret z + scf + ret +; For some reason, the above code is duplicated down here. +.water + ld a, d + and LO_NYBBLE_GRASS + ret z + scf + ret + +EndSpriteMovement: + xor a + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], a + ld hl, OBJECT_STEP_FRAME + add hl, bc + ld [hl], a + ld hl, OBJECT_WALKING + add hl, bc + ld [hl], STANDING + ret + +InitStep: + and %00001111 + ld hl, OBJECT_WALKING + add hl, bc + ld [hl], a + + ld hl, OBJECT_FLAGS1 + add hl, bc + bit FIXED_FACING_F, [hl] + jr nz, GetNextTile + + ld hl, OBJECT_DIRECTION + add hl, bc + add a + add a + and %00001100 + ld [hl], a + ; fallthrough + +GetNextTile: + call GetStepVector + ld hl, OBJECT_STEP_DURATION + add hl, bc + ld [hl], a + ld a, d + call GetStepVectorSign + ld hl, OBJECT_LAST_MAP_X + add hl, bc + add [hl] + ld hl, OBJECT_MAP_X + add hl, bc + ld [hl], a + ld d, a + ld a, e + call GetStepVectorSign + ld hl, OBJECT_LAST_MAP_Y + add hl, bc + add [hl] + ld hl, OBJECT_MAP_Y + add hl, bc + ld [hl], a + ld e, a + push bc + call GetCoordTileCollision + pop bc + ld hl, OBJECT_TILE_COLLISION + add hl, bc + ld [hl], a + ret + +AddStepVector: + call GetStepVector + ld hl, OBJECT_SPRITE_X + add hl, bc + ld a, [hl] + add d + ld [hl], a + ld hl, OBJECT_SPRITE_Y + add hl, bc + ld a, [hl] + add e + ld [hl], a + ret + +; Return (x, y, duration, speed) in (d, e, a, h). +GetStepVector: + ld hl, OBJECT_WALKING + add hl, bc + ld l, [hl] + ld h, $00 + add hl, hl + add hl, hl + ld de, StepVectors + add hl, de + ld d, [hl] + inc hl + ld e, [hl] + inc hl + ld a, [hli] + ld h, [hl] + ret + +GetStepVectorSpeed: + ld hl, OBJECT_WALKING + add hl, bc + ld l, [hl] + ld h, $00 + add hl, hl + add hl, hl + ld de, StepVectors + 3 ; speed + add hl, de + ld a, [hl] + ret + +StepVectors: +; x, y, duration, speed + ; slow + db 0, 1, 16, 1 + db 0, -1, 16, 1 + db -1, 0, 16, 1 + db 1, 0, 16, 1 + ; normal + db 0, 2, 8, 2 + db 0, -2, 8, 2 + db -2, 0, 8, 2 + db 2, 0, 8, 2 + ; fast + db 0, 4, 4, 4 + db 0, -4, 4, 4 + db -4, 0, 4, 4 + db 4, 0, 4, 4 + ; even faster! + db 0, 8, 2, 8 + db 0, -8, 2, 8 + db -8, 0, 2, 8 + db 8, 0, 2, 8 + +GetStepVectorSign: + add a + ret z ; 0 or 128 (-128) + ld a, 1 + ret nc ; +1 to +127 + ld a, -1 + ret ; -127 to -1 + +UpdatePlayerStep: + ld hl, OBJECT_WALKING + add hl, bc + ld a, [hl] + maskbits NUM_DIRECTIONS + ld [wPlayerStepDirection], a + call GetStepVector + ld a, d + ld [wPlayerStepVectorX], a + ld a, e + ld [wPlayerStepVectorY], a + ld hl, wPlayerStepFlags + set PLAYERSTEP_CONTINUE_F, [hl] + ret + +Unreferenced_GetObjectSpritePos: + ld a, [wXCoord] + ld d, a + ld hl, OBJECT_MAP_X + add hl, bc + ld a, [hl] + sub d + and $f + swap a + ld hl, OBJECT_SPRITE_X + add hl, bc + ld [hl], a + ld a, [wYCoord] + ld e, a + ld hl, OBJECT_MAP_Y + add hl, bc + ld a, [hl] + sub e + and $f + swap a + ld hl, OBJECT_SPRITE_Y + add hl, bc + ld [hl], a + ret + +ClearObjectJumptableIndex: + ld hl, OBJECT_JUMPTABLE_INDEX + add hl, bc + ld [hl], 0 + ret + +Object_IncAnonJumptableIndex: + ld hl, OBJECT_JUMPTABLE_INDEX + add hl, bc + inc [hl] + ret + +GetObjectJumptableIndex: + ld hl, OBJECT_JUMPTABLE_INDEX + add hl, bc + ld a, [hl] + ret + +SetObjectJumptableIndex: + ld hl, OBJECT_JUMPTABLE_INDEX + add hl, bc + ld [hl], a + ret + +Object_AnonJumptable: + ld hl, OBJECT_JUMPTABLE_INDEX + add hl, bc + ld l, [hl] + ld h, $00 + add hl, hl + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +StepFunction_FromMovement: + ld hl, OBJECT_MOVEMENT_TYPE + add hl, bc + ld a, [hl] + and %00011111 + ld hl, .Pointers + jp CallJumptable + +.Pointers: + dw MovementFunction_Null + dw MovementFunction_RandomWalkXY + dw MovementFunction_RandomSpin + dw MovementFunction_RandomWalkY + dw MovementFunction_RandomWalkX + dw MovementFunction_TurnDown + dw MovementFunction_TurnUp + dw MovementFunction_TurnLeft + dw MovementFunction_TurnRight + dw NULL + dw NULL + dw NULL + dw NULL + dw NULL + dw NULL + dw NULL + dw MovementFunction_ObeyDPad + dw MovementFunction_Indexed1 + dw MovementFunction_Indexed2 + dw MovementFunction_Follow1 + dw MovementFunction_14_17 ; 14 + dw MovementFunction_14_17 ; 15 + dw MovementFunction_14_17 ; 16 + dw MovementFunction_14_17 ; 17 + dw MovementFunction_Follow2 + dw MovementFunction_GetFarMovementData ; 19 + dw Stub_MovementFunction_1a ; 1a + +MovementFunction_Null: + ret + +MovementFunction_RandomWalkY: + call Random + ldh a, [hRandomAdd] + and %1 + jp _RandomWalkContinue + +MovementFunction_RandomWalkX: + call Random + ldh a, [hRandomAdd] + and %1 + or %10 + jp _RandomWalkContinue + +MovementFunction_RandomWalkXY: + call Random + ldh a, [hRandomAdd] + and %11 + jp _RandomWalkContinue + +MovementFunction_RandomSpin: + call Random + ldh a, [hRandomAdd] + and %00001100 + ld hl, OBJECT_DIRECTION + add hl, bc + ld [hl], a + jp RandomSpinContinue + +MovementFunction_TurnDown: + ld a, OW_DOWN + jr TurnContinue + +MovementFunction_TurnUp: + ld a, OW_UP + jr TurnContinue + +MovementFunction_TurnLeft: + ld a, OW_LEFT + jr TurnContinue + +MovementFunction_TurnRight: + ld a, OW_RIGHT + ; fallthrough +TurnContinue: + ld hl, OBJECT_DIRECTION + add hl, bc + ld [hl], a + call CopyLastCoordsToCoords + call EndSpriteMovement + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_STANDING + jp StepFunction_Standing + +MovementFunction_ObeyDPad: +StepFunction_ObeyDPad: + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_OBEY_DPAD + jp GetPlayerMovement + +MovementFunction_Indexed1: +StepFunction_Indexed1: + jp GetIndexedMovementIndex1 + +MovementFunction_Indexed2: +StepFunction_Indexed2: + jp GetIndexedMovementIndex2 + +MovementFunction_Follow1: +StepFunction_Follow1: + jp _GetFollowerNextMovementIndex + +MovementFunction_14_17: +StepFunction_0b_0e: + jp GetMovementObject + +MovementFunction_Follow2: + jp _GetFollowerNextMovementIndex + +MovementFunction_GetFarMovementData: + jp GetFarMovementData + +Stub_MovementFunction_1a: + ret + +Stub_StepFunction_13: + ret + +StepFunction_Reset: + ld hl, OBJECT_MAP_X + add hl, bc + ld d, [hl] + ld hl, OBJECT_MAP_Y + add hl, bc + ld e, [hl] + push bc + call GetCoordTileCollision + pop bc + ld hl, OBJECT_TILE_COLLISION + add hl, bc + ld [hl], a + call CopyCoordsTileToLastCoordsTile + call EndSpriteMovement + ld a, STEP_TYPE_FROM_MOVEMENT + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], a + ret + +Unreferenced_RandomWalkContinue_Duplicate: + call InitStep + call CanObjectMoveInDirection + jr c, RandomWalk_NewDuration + call UpdateTallGrassFlags + ldh a, [hMapObjectIndex] + ld d, a + ld a, [wCenteredObject] + cp d + jr z, RandomWalk_Centered + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_NPC_WALK + jp StepFunction_NPCWalk + +_RandomWalkContinue: + call InitStep + call CanObjectMoveInDirection + jr c, RandomWalk_NewDuration + call UpdateTallGrassFlags + ldh a, [hConnectionStripLength] + ld d, a + ld a, [wCenteredObject] + cp d + jr z, RandomWalk_Centered + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_CONTINUE_WALK + jp StepFunction_ContinueWalk + +RandomWalk_Centered: + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_PLAYER_WALK + ld hl, wPlayerStepFlags + set PLAYERSTEP_START_F, [hl] + jp StepFunction_PlayerWalk + +RandomWalk_NewDuration: + call EndSpriteMovement + call CopyLastCoordsToCoords + +RandomSpinContinue: + ld hl, OBJECT_WALKING + add hl, bc + ld [hl], STANDING + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], OBJECT_ACTION_SPIN + call Random + ldh a, [hRandomAdd] + and $7f + ld hl, OBJECT_STEP_DURATION + add hl, bc + ld [hl], a + jp StepFunction_Sleep + +; Unreferenced. +; Runs back and forth every four tiles. If it hits a wall, or NPC, it will continue to try to move in that direction. +; Due to an oversight, OBJECT_MOVEMENT_INDEX is not reset upon loading a room, causing the exact range of the running to be effectively random. +MovementFunction_RunBackAndForth: + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_FROM_MOVEMENT + ld hl, OBJECT_MOVEMENT_INDEX + add hl, bc + ld a, [hl] + and %111 + cp 4 + ld a, STEP_WALK << 2 | RIGHT + jr nc, .right + ld a, STEP_WALK << 2 | LEFT +.right + call InitStep + call CanObjectMoveInDirection + jr c, .cant_move + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_NPC_WALK + ld hl, OBJECT_MOVEMENT_INDEX + add hl, bc + inc [hl] + jp StepFunction_NPCWalk + +.cant_move + ld hl, OBJECT_WALKING + add hl, bc + ld [hl], STANDING + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_STEP + call CopyLastCoordsToCoords + ret + +; Unreferenced. +; Makes the NPC turn to face the player in the direction that the player is closer to. +; In situations where Horiz. distance = Vert. distance, vertical directions take priority. +FacePlayerObject: + ld a, [wPlayerMapX] + ld d, a + ld a, [wPlayerMapY] + ld e, a + ld hl, OBJECT_MAP_X + add hl, bc + ld a, d + sub [hl] + ld d, a + ld hl, OBJECT_MAP_Y + add hl, bc + ld a, e + sub [hl] + ld e, a + jr z, .lined_up_vertical + ld a, d + and a + jr z, .lined_up_horizontal + push de + ld a, d + call .FlipNegativeToPositive + ld d, a + ld a, e + call .FlipNegativeToPositive + ld e, a + cp d + pop de + jr nc, .closer_horizontal +.lined_up_vertical +.closer_vertical + ld a, OW_LEFT + bit 7, d + jr nz, .done + ld a, OW_RIGHT + jr .done + +.lined_up_horizontal +.closer_horizontal + ld a, OW_UP + bit 7, e + jr nz, .done + ld a, OW_DOWN +.done + ld hl, OBJECT_DIRECTION + add hl, bc + ld [hl], a + ret + +.FlipNegativeToPositive: + bit 7, a + ret z + dec a + cpl + ret + +Stubbed_UpdateYOffset: +; dummied out + ret + ld hl, OBJECT_1E + add hl, bc + inc [hl] + ld a, [hl] + srl a + srl a + and %00000111 + ld l, a + ld h, 0 + ld de, .y_offsets + add hl, de + ld a, [hl] + ld hl, OBJECT_SPRITE_Y_OFFSET + add hl, bc + ld [hl], a + ret + +.y_offsets: + db 0, -1, -2, -3, -4, -3, -2, -1 + +UpdateJumpPosition: + call GetStepVectorSpeed + ld hl, OBJECT_JUMP_HEIGHT + add hl, bc + ld e, [hl] + add e + ld [hl], a + ld d, 0 + ld hl, .y_offsets + add hl, de + ld a, [hl] + ld hl, OBJECT_SPRITE_Y_OFFSET + add hl, bc + ld [hl], a + ldh a, [hMapObjectIndex] + cp PLAYER_OBJECT_INDEX + ret nz + ldh a, [hJoypadState] + and D_PAD + ret z + + ld d, OW_DOWN + bit D_DOWN_F, a + jr nz, .got_direction + + ld d, OW_UP + bit D_UP_F, a + jr nz, .got_direction + + ld d, OW_LEFT + bit D_LEFT_F, a + jr nz, .got_direction + + ; D_RIGHT_F + ld d, OW_RIGHT +.got_direction + ld hl, OBJECT_DIRECTION + add hl, bc + ld [hl], d + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_STAND + ret + +.y_offsets: + db -4, -5, -6, -7 + db -8, -9, -10, -11 + db -11, -11, -12, -12 + db -12, -12, -12, -12 + db -11, -11, -10, -10 + db -9, -9, -8, -8 + db -6, -5, -4, -2 + db -1, 0, 0, 0 + +Movement_teleport_from: + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_TELEPORT_FROM + call ClearObjectJumptableIndex + +StepFunction_TeleportFrom: + ld de, .anon_dw + jp Object_AnonJumptable + +.anon_dw: + dw .InitSpin + dw .DoSpin + dw .InitSpinRise + dw .DoSpinRise + +.InitSpin: + ld hl, OBJECT_1E + add hl, bc + ld [hl], 4 + ld hl, OBJECT_STEP_FRAME + add hl, bc + ld [hl], 0 + ld hl, OBJECT_STEP_DURATION + add hl, bc + ld [hl], 16 + call Object_IncAnonJumptableIndex +.DoSpin: + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_SPIN + ld hl, OBJECT_STEP_DURATION + add hl, bc + dec [hl] + ret nz + call Object_IncAnonJumptableIndex + ret + +.InitSpinRise: + ld hl, OBJECT_1E + add hl, bc + ld [hl], 4 + ld hl, OBJECT_STEP_FRAME + add hl, bc + ld [hl], 0 + ld hl, OBJECT_JUMP_HEIGHT + add hl, bc + ld [hl], 16 + ld hl, OBJECT_STEP_DURATION + add hl, bc + ld [hl], 16 + call Object_IncAnonJumptableIndex +.DoSpinRise: + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_SPIN + ld hl, OBJECT_JUMP_HEIGHT + add hl, bc + inc [hl] + ld a, [hl] + ld d, $60 + call Sine + ld a, h + sub $60 + ld hl, OBJECT_SPRITE_Y_OFFSET + add hl, bc + ld [hl], a + ld hl, OBJECT_STEP_DURATION + add hl, bc + dec [hl] + ret nz + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_FROM_MOVEMENT + ld hl, OBJECT_STEP_FRAME + add hl, bc + ld [hl], 0 + call ClearObjectJumptableIndex + ret + +Movement_teleport_to: + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_TELEPORT_TO + call ClearObjectJumptableIndex + +StepFunction_TeleportTo: + ld de, .anon_dw + jp Object_AnonJumptable + +.anon_dw: + dw .InitWait + dw .DoWait + dw .InitDescent + dw .DoDescent + dw .InitFinalSpin + dw .DoFinalSpin + dw .FinishStep + +.InitWait: + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_00 + ld hl, OBJECT_STEP_DURATION + add hl, bc + ld [hl], 16 + call Object_IncAnonJumptableIndex + ret + +.DoWait: + ld hl, OBJECT_STEP_DURATION + add hl, bc + dec [hl] + ret nz + call Object_IncAnonJumptableIndex +.InitDescent: + ld hl, OBJECT_STEP_FRAME + add hl, bc + ld [hl], 0 + ld hl, OBJECT_1E + add hl, bc + ld [hl], 4 + ld hl, OBJECT_JUMP_HEIGHT + add hl, bc + ld [hl], 0 + ld hl, OBJECT_STEP_DURATION + add hl, bc + ld [hl], 16 + call Object_IncAnonJumptableIndex + ret + +.DoDescent: + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_SPIN + ld hl, OBJECT_JUMP_HEIGHT + add hl, bc + inc [hl] + ld a, [hl] + ld d, $60 + call Sine + ld a, h + sub $60 + ld hl, OBJECT_SPRITE_Y_OFFSET + add hl, bc + ld [hl], a + ld hl, OBJECT_STEP_DURATION + add hl, bc + dec [hl] + ret nz + call Object_IncAnonJumptableIndex +.InitFinalSpin: + ld hl, OBJECT_STEP_DURATION + add hl, bc + ld [hl], 16 + call Object_IncAnonJumptableIndex + ret + +.DoFinalSpin: + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_SPIN + ld hl, OBJECT_STEP_DURATION + add hl, bc + dec [hl] + ret nz +.FinishStep: + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_FROM_MOVEMENT + ld hl, OBJECT_STEP_FRAME + add hl, bc + ld [hl], 0 + ld hl, OBJECT_SPRITE_Y_OFFSET + add hl, bc + ld [hl], 0 + call ClearObjectJumptableIndex + ret + +Unreferenced_Function4b22: + call ClearObjectJumptableIndex + ; fallthrough +Stub_Function4b25: + ret + +SpawnShadow: + ld a, MINOR_OBJECT_GFX_SHADOW + ld [wQueuedMinorObjectGFX], a + push bc + ld de, .ShadowObject + call SpawnMinorObject + ld d, b + ld e, c + pop bc + ld hl, OBJECT_STEP_DURATION + add hl, bc + ld a, [hl] + add a + dec a + ld hl, MINOR_OBJECT_VAR2 + add hl, de + ld [hl], a + ret + +.ShadowObject: + db MINOR_OBJECT_TYPE_SHADOW, MINOR_OBJECT_ANIM_SHADOW, $fc, 2, 0, 8 + +; Unreferenced in this build +SpawnStrengthBoulderDust: + ld e, a + add a + add e + ld e, a + ld d, 0 + ld hl, .BoulderDustObject + add hl, de + ld d, h + ld e, l + push bc + call SpawnMinorObject + pop bc + ld a, MINOR_OBJECT_GFX_BOULDER_DUST + ld [wQueuedMinorObjectGFX], a + ret + +.BoulderDustObject: + db MINOR_OBJECT_TYPE_BOULDER_DUST, MINOR_OBJECT_ANIM_BOULDER_DUST, $fc, 2, 2, 8 + +StepFunction_Sleep: + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_STAND + ld hl, OBJECT_STEP_DURATION + add hl, bc + dec [hl] + ret nz + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_FROM_MOVEMENT + ret + +StepFunction_Standing: + call Stubbed_UpdateYOffset + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_STAND + ld hl, OBJECT_WALKING + add hl, bc + ld [hl], STANDING + ret + +StepFunction_NPCWalk: + call Stubbed_UpdateYOffset + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_STEP + call AddStepVector + ld hl, OBJECT_STEP_DURATION + add hl, bc + dec [hl] + ret nz + call CopyCoordsTileToLastCoordsTile + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_FROM_MOVEMENT + ld hl, OBJECT_WALKING + add hl, bc + ld [hl], STANDING + ret + +StepFunction_ContinueWalk: + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_STEP + call AddStepVector + ld hl, OBJECT_STEP_DURATION + add hl, bc + dec [hl] + ret nz + call CopyCoordsTileToLastCoordsTile + ld hl, OBJECT_WALKING + add hl, bc + ld [hl], STANDING + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_FROM_MOVEMENT + ret + +StepFunction_PlayerWalk: + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_STEP + call UpdatePlayerStep + ld hl, OBJECT_STEP_DURATION + add hl, bc + dec [hl] + ret nz + ld hl, wPlayerStepFlags + set PLAYERSTEP_STOP_F, [hl] + call CopyCoordsTileToLastCoordsTile + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_FROM_MOVEMENT + ld hl, OBJECT_WALKING + add hl, bc + ld [hl], STANDING + ret + +GetPlayerMovement: + ld a, [wPlayerMovement] + jp DoMovementFunction + +GetMovementObject: + ld a, [wMovementObject] + jp DoMovementFunction + +GetIndexedMovementIndex1: + ld hl, OBJECT_MOVEMENT_INDEX + add hl, bc + ld e, [hl] + inc [hl] + ld d, 0 + ld hl, wMovementObject + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld a, [hl] + jp DoMovementFunction + +GetIndexedMovementIndex2: + ld hl, OBJECT_MOVEMENT_INDEX + add hl, bc + ld e, [hl] + inc [hl] + ld d, 0 + ld hl, wIndexedMovement2Pointer + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld a, [hl] + jp DoMovementFunction + +GetFarMovementData: + ld hl, OBJECT_MOVEMENT_INDEX + add hl, bc + ld e, [hl] + inc [hl] + ld d, 0 + ld hl, wMovementDataAddr + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld a, [wMovementDataBank] + call GetFarByte + jp DoMovementFunction + +DoMovementFunction: + push af + call ApplyMovementToFollower + pop af + ld l, a + ld h, 0 + add hl, hl + ld de, MovementPointers + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +MovementPointers: + dw Movement_turn_head_down ; 0 + dw Movement_turn_head_up ; 1 + dw Movement_turn_head_left ; 2 + dw Movement_turn_head_right ; 3 + dw Movement_slow_step_down ; 4 + dw Movement_slow_step_up ; 5 + dw Movement_slow_step_left ; 6 + dw Movement_slow_step_right ; 7 + dw Movement_step_down ; 8 + dw Movement_step_up ; 9 + dw Movement_step_left ; a + dw Movement_step_right ; b + dw Movement_fast_step_down ; c + dw Movement_fast_step_up ; d + dw Movement_fast_step_left ; e + dw Movement_fast_step_right ; f + dw Movement_fastest_step_down ; 10 + dw Movement_fastest_step_up ; 11 + dw Movement_fastest_step_left ; 12 + dw Movement_fastest_step_right ; 13 + dw Movement_slow_jump_step_down ; 14 + dw Movement_slow_jump_step_up ; 15 + dw Movement_slow_jump_step_left ; 16 + dw Movement_slow_jump_step_right ; 17 + dw Movement_jump_step_down ; 18 + dw Movement_jump_step_up ; 19 + dw Movement_jump_step_left ; 1a + dw Movement_jump_step_right ; 1b + dw Movement_fast_jump_step_down ; 1c + dw Movement_fast_jump_step_up ; 1d + dw Movement_fast_jump_step_left ; 1e + dw Movement_fast_jump_step_right ; 1f + dw Movement_fastest_jump_step_down ; 20 + dw Movement_fastest_jump_step_up ; 21 + dw Movement_fastest_jump_step_left ; 22 + dw Movement_fastest_jump_step_right ; 23 + dw Movement_remove_sliding ; 24 + dw Movement_set_sliding ; 25 + dw Movement_remove_fixed_facing ; 26 + dw Movement_fix_facing ; 27 + dw Movement_show_object ; 28 + dw Movement_hide_object ; 29 + dw Movement_step_sleep_1 ; 2a + dw Movement_step_sleep_2 ; 2b + dw Movement_step_sleep_3 ; 2c + dw Movement_step_sleep_4 ; 2d + dw Movement_step_sleep_5 ; 2e + dw Movement_step_sleep_6 ; 2f + dw Movement_step_sleep_7 ; 30 + dw Movement_step_sleep_8 ; 31 + dw Movement_step_end ; 32 + dw Movement_remove_object ; 33 + dw Movement_step_loop ; 34 + dw Movement_step_stop ; 35 + dw Movement_teleport_from ; 36 + dw Movement_teleport_to ; 37 + +Movement_step_loop: + ld hl, OBJECT_MOVEMENT_INDEX + add hl, bc + ld [hl], 0 + jp StepFunction_FromMovement + +Movement_step_end: + ld hl, OBJECT_MAP_OBJECT_INDEX + add hl, bc + ld a, [hl] + cp -1 + jr nz, .get_map_object + ld a, SPRITEMOVEFN_TURN_DOWN + jr .ok + +.get_map_object + push bc + call GetMapObject + ld hl, MAPOBJECT_MOVEMENT + add hl, bc + ld a, [hl] + pop bc +.ok + ld hl, OBJECT_MOVEMENT_TYPE + add hl, bc + ld [hl], a + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_FROM_MOVEMENT + ld hl, OBJECT_MOVEMENT_INDEX + add hl, bc + ld [hl], 0 + ld hl, wStateFlags + res SCRIPTED_MOVEMENT_STATE_F, [hl] + ret + +Movement_remove_object: + push bc + ld hl, OBJECT_MAP_OBJECT_INDEX + add hl, bc + ld a, [hl] + push af + ld h, b + ld l, c + ld bc, OBJECT_LENGTH + xor a + call ByteFill + pop af + call GetMapObject + ld hl, MAPOBJECT_OBJECT_STRUCT_ID + add hl, bc + ld [hl], -1 + pop bc + ld hl, wObjectFollow_Leader + ldh a, [hMapObjectIndex] + cp [hl] + jr nz, .not_leading + ld [hl], -1 +.not_leading + ld hl, wStateFlags + res SCRIPTED_MOVEMENT_STATE_F, [hl] + ret + +Movement_step_stop: + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_STAND + + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_STANDING + + ld hl, wStateFlags + res SCRIPTED_MOVEMENT_STATE_F, [hl] + ret + +Movement_step_sleep_1: + ld a, 1 + jr Movement_step_sleep_common + +Movement_step_sleep_2: + ld a, 2 + jr Movement_step_sleep_common + +Movement_step_sleep_3: + ld a, 3 + jr Movement_step_sleep_common + +Movement_step_sleep_4: + ld a, 4 + jr Movement_step_sleep_common + +Movement_step_sleep_5: + ld a, 5 + jr Movement_step_sleep_common + +Movement_step_sleep_6: + ld a, 6 + jr Movement_step_sleep_common + +Movement_step_sleep_7: + ld a, 7 + jr Movement_step_sleep_common + +Movement_step_sleep_8: + ld a, 8 + +Movement_step_sleep_common: + ld hl, OBJECT_STEP_DURATION + add hl, bc + ld [hl], a + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_SLEEP + ld hl, OBJECT_WALKING + add hl, bc + ld [hl], STANDING + jp StepFunction_Sleep + +Movement_remove_sliding: + ld hl, OBJECT_FLAGS1 + add hl, bc + res SLIDING_F, [hl] + jp StepFunction_FromMovement + +Movement_set_sliding: + ld hl, OBJECT_FLAGS1 + add hl, bc + set SLIDING_F, [hl] + jp StepFunction_FromMovement + +Movement_remove_fixed_facing: + ld hl, OBJECT_FLAGS1 + add hl, bc + res FIXED_FACING_F, [hl] + jp StepFunction_FromMovement + +Movement_fix_facing: + ld hl, OBJECT_FLAGS1 + add hl, bc + set FIXED_FACING_F, [hl] + jp StepFunction_FromMovement + +; LIKELY A BUG: Should be resetting/setting bits in OBJECT_FLAGS1, not OBJECT_FLAGS2. +Movement_show_object: + ld hl, OBJECT_FLAGS2 + add hl, bc + res INVISIBLE_F, [hl] + jp StepFunction_FromMovement + +Movement_hide_object: + ld hl, OBJECT_FLAGS2 + add hl, bc + set INVISIBLE_F, [hl] + jp StepFunction_FromMovement + +Movement_turn_head_down: + ld a, OW_DOWN + jr TurnHead + +Movement_turn_head_up: + ld a, OW_UP + jr TurnHead + +Movement_turn_head_left: + ld a, OW_LEFT + jr TurnHead + +Movement_turn_head_right: + ld a, OW_RIGHT + jr TurnHead + +TurnHead: + ld hl, OBJECT_DIRECTION + add hl, bc + ld [hl], a + + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_STAND + + ld hl, OBJECT_WALKING + add hl, bc + ld [hl], STANDING + ret + +Movement_slow_step_down: + ld a, STEP_SLOW << 2 | DOWN + jp NormalStep + +Movement_slow_step_up: + ld a, STEP_SLOW << 2 | UP + jp NormalStep + +Movement_slow_step_left: + ld a, STEP_SLOW << 2 | LEFT + jp NormalStep + +Movement_slow_step_right: + ld a, STEP_SLOW << 2 | RIGHT + jp NormalStep + +Movement_step_down: + ld a, STEP_WALK << 2 | DOWN + jp NormalStep + +Movement_step_up: + ld a, STEP_WALK << 2 | UP + jp NormalStep + +Movement_step_left: + ld a, STEP_WALK << 2 | LEFT + jp NormalStep + +Movement_step_right: + ld a, STEP_WALK << 2 | RIGHT + jp NormalStep + +Movement_fast_step_down: + ld a, STEP_BIKE << 2 | DOWN + jp NormalStep + +Movement_fast_step_up: + ld a, STEP_BIKE << 2 | UP + jp NormalStep + +Movement_fast_step_left: + ld a, STEP_BIKE << 2 | LEFT + jp NormalStep + +Movement_fast_step_right: + ld a, STEP_BIKE << 2 | RIGHT + jp NormalStep + +Movement_fastest_step_down: + ld a, STEP_FASTEST << 2 | DOWN + jp NormalStep + +Movement_fastest_step_up: + ld a, STEP_FASTEST << 2 | UP + jp NormalStep + +Movement_fastest_step_left: + ld a, STEP_FASTEST << 2 | LEFT + jp NormalStep + +Movement_fastest_step_right: + ld a, STEP_FASTEST << 2 | RIGHT + jp NormalStep + +Movement_slow_jump_step_down: + ld a, STEP_SLOW << 2 | DOWN + jp JumpStep + +Movement_slow_jump_step_up: + ld a, STEP_SLOW << 2 | UP + jp JumpStep + +Movement_slow_jump_step_left: + ld a, STEP_SLOW << 2 | LEFT + jp JumpStep + +Movement_slow_jump_step_right: + ld a, STEP_SLOW << 2 | RIGHT + jp JumpStep + +Movement_jump_step_down: + ld a, STEP_WALK << 2 | DOWN + jp JumpStep + +Movement_jump_step_up: + ld a, STEP_WALK << 2 | UP + jp JumpStep + +Movement_jump_step_left: + ld a, STEP_WALK << 2 | LEFT + jp JumpStep + +Movement_jump_step_right: + ld a, STEP_WALK << 2 | RIGHT + jp JumpStep + +Movement_fast_jump_step_down: + ld a, STEP_BIKE << 2 | DOWN + jp JumpStep + +Movement_fast_jump_step_up: + ld a, STEP_BIKE << 2 | UP + jp JumpStep + +Movement_fast_jump_step_left: + ld a, STEP_BIKE << 2 | LEFT + jp JumpStep + +Movement_fast_jump_step_right: + ld a, STEP_BIKE << 2 | RIGHT + jp JumpStep + +Movement_fastest_jump_step_down: + ld a, STEP_FASTEST << 2 | DOWN + jp JumpStep + +Movement_fastest_jump_step_up: + ld a, STEP_FASTEST << 2 | UP + jp JumpStep + +Movement_fastest_jump_step_left: + ld a, STEP_FASTEST << 2 | LEFT + jp JumpStep + +Movement_fastest_jump_step_right: + ld a, STEP_FASTEST << 2 | RIGHT + jp JumpStep + +NormalStep: + call InitStep + call UpdateTallGrassFlags + ld a, [wCenteredObject] + ld d, a + ldh a, [hMapObjectIndex] + cp d + jr z, .player + + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_NPC_WALK + jp StepFunction_NPCWalk + +.player + ld hl, wPlayerStepFlags + set PLAYERSTEP_START_F, [hl] + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_PLAYER_WALK + jp StepFunction_PlayerWalk + +JumpStep: + call InitStep + ld hl, OBJECT_JUMP_HEIGHT + add hl, bc + ld [hl], 0 + + ld hl, OBJECT_FLAGS2 + add hl, bc + res OVERHEAD_F, [hl] + + call ClearObjectJumptableIndex + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_STAND + call SpawnShadow + + ld a, [wCenteredObject] + ld d, a + ldh a, [hMapObjectIndex] + cp d + jr z, .player + + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_NPC_JUMP + jp StepFunction_NPCJump + +.player + ld hl, wPlayerStepFlags + set PLAYERSTEP_START_F, [hl] + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_PLAYER_JUMP + jp StepFunction_PlayerJump + +Unferenced_NPCJumpInit: + call InitStep + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_NPC_JUMP + ld hl, OBJECT_ACTION + add hl, bc + ld [hl], OBJECT_ACTION_STAND + ld hl, OBJECT_FLAGS2 + add hl, bc + res OVERHEAD_F, [hl] + ld hl, OBJECT_JUMP_HEIGHT + add hl, bc + ld [hl], 0 + call ClearObjectJumptableIndex + ; fallthrough +StepFunction_NPCJump: + ld de, .anon_dw + jp Object_AnonJumptable + +.anon_dw + dw .Jump + dw .Land + +.Jump: + call AddStepVector + call UpdateJumpPosition + ld hl, OBJECT_STEP_DURATION + add hl, bc + dec [hl] + ret nz + call Object_IncAnonJumptableIndex + call CopyCoordsTileToLastCoordsTile + call GetNextTile + ld hl, OBJECT_FLAGS2 + add hl, bc + res OVERHEAD_F, [hl] + ret + +.Land: + call AddStepVector + call UpdateJumpPosition + ld hl, OBJECT_STEP_DURATION + add hl, bc + dec [hl] + ret nz + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_FROM_MOVEMENT + call CopyCoordsTileToLastCoordsTile + call ClearObjectJumptableIndex + ret + +StepFunction_PlayerJump: + ld de, .anon_dw + jp Object_AnonJumptable + +.anon_dw + dw .StepJump + dw .InitLand + dw .StepLand + +.StepJump + call UpdateJumpPosition + call UpdatePlayerStep + ld hl, OBJECT_STEP_DURATION + add hl, bc + dec [hl] + ret nz + call CopyCoordsTileToLastCoordsTile + ld hl, OBJECT_FLAGS2 + add hl, bc + res OVERHEAD_F, [hl] + ld hl, wPlayerStepFlags + set PLAYERSTEP_STOP_F, [hl] + set PLAYERSTEP_MIDAIR_F, [hl] + call Object_IncAnonJumptableIndex + ret + +.InitLand + call GetNextTile + ld hl, wPlayerStepFlags + set PLAYERSTEP_START_F, [hl] + call Object_IncAnonJumptableIndex + +.StepLand + call UpdateJumpPosition + call UpdatePlayerStep + ld hl, OBJECT_STEP_DURATION + add hl, bc + dec [hl] + ret nz + ld hl, OBJECT_STEP_TYPE + add hl, bc + ld [hl], STEP_TYPE_FROM_MOVEMENT + call CopyCoordsTileToLastCoordsTile + ld hl, wPlayerStepFlags + set PLAYERSTEP_STOP_F, [hl] + call ClearObjectJumptableIndex + +; Redundant? + ldh a, [hMapObjectIndex] + cp PLAYER_OBJECT_INDEX + jp z, .player + ret + +.player + ld hl, OBJECT_DIRECTION + add hl, bc + ld a, [hl] + rra + rra + maskbits NUM_DIRECTIONS + ld d, a + ld hl, OBJECT_WALKING + add hl, bc + ld a, [hl] + maskbits NUM_DIRECTIONS + cp d + ret z + jp Stub_Function4b25 + +ApplyMovementToFollower: + ld e, a + ld a, [wObjectFollow_Follower] + and a + ret z + cp -1 + ret z + ld a, [wObjectFollow_Leader] + ld d, a + ldh a, [hConnectionStripLength] + cp d + ret nz + ld a, e + cp movement_step_sleep + ret z +; This whole block could've been: +; cp movement_turn_head + NUM_DIRECTIONS +; ret nc + cp movement_turn_head | DOWN + ret z + cp movement_turn_head | UP + ret z + cp movement_turn_head | LEFT + ret z + cp movement_turn_head | RIGHT + ret z + + cp movement_step_end + ret z + cp movement_step_stop + ret z + push af + ld hl, wFollowerMovementQueueLength + inc [hl] + ld e, [hl] + ld d, 0 + ld hl, wFollowMovementQueue + add hl, de + pop af + ld [hl], a + ret + +_GetFollowerNextMovementIndex: + call GetFollowerNextMovementIndex + ld hl, MovementPointers + jp CallJumptable + +GetFollowerNextMovementIndex: + ld hl, wFollowerMovementQueueLength + ld a, [hl] + and a + jr z, .done + cp -1 + jr z, .done + ld e, a + dec [hl] + ld d, 0 + ld hl, wFollowMovementQueue + add hl, de + inc e + ld a, -1 +.loop + ld d, [hl] + ld [hld], a + ld a, d + dec e + jr nz, .loop + ret +.done + call .CancelFollowIfLeaderMissing + ret c + ld a, movement_step_sleep + ret + +.CancelFollowIfLeaderMissing: + ld a, [wObjectFollow_Leader] + cp -1 + jr z, .nope + push bc + call GetObjectStruct + ld hl, OBJECT_SPRITE + add hl, bc + ld a, [hl] + pop bc + and a + jr z, .nope + and a + ret +.nope + xor a + ld [wObjectFollow_Follower], a + ld a, movement_step_end + scf + ret + +UpdateAllObjectsFrozen: + ld bc, wObjectStructs + xor a +.loop + ldh [hMapObjectIndex], a + ld hl, OBJECT_SPRITE + add hl, bc + ld a, [hl] + and a + jr z, .done + + ld hl, OBJECT_ACTION + add hl, bc + ld a, [hl] + and a + ld a, STANDING + jr z, .next + + push bc + call .CheckObjectCoveredByTextbox + pop bc + ld a, STANDING + jr c, .next + + ld hl, OBJECT_DIRECTION + add hl, bc + ld a, [hl] + maskbits NUM_DIRECTIONS, 2 +.next + ld hl, OBJECT_FACING + add hl, bc + ld [hl], a +.done + ld hl, OBJECT_LENGTH + add hl, bc + ld b, h + ld c, l + ldh a, [hConnectionStripLength] + inc a + cp NUM_OBJECT_STRUCTS + jr nz, .loop + ret + +.CheckObjectCoveredByTextbox: + ld hl, OBJECT_MAP_X + add hl, bc + ld d, [hl] + ld hl, OBJECT_MAP_Y + add hl, bc + ld e, [hl] + ld a, [wXCoord] + cp d + jr z, .on_screen_x + jr nc, .nope + add $09 + cp d + jr c, .nope +.on_screen_x + ld a, [wYCoord] + cp e + jr z, .on_screen_y + jr nc, .nope + add $08 + cp e + jr c, .nope +.on_screen_y + ld hl, OBJECT_SPRITE_X + add hl, bc + ld a, [hl] + and %00000111 + ld d, $02 + jr z, .moving_x + ld d, $03 +.moving_x + ld a, d + ldh [hCurSpriteHorizTilesOccupied], a + ld a, [hl] + srl a + srl a + srl a + ldh [hCurSpriteXCoord], a + ld hl, OBJECT_SPRITE_Y + add hl, bc + ld a, [hl] + and %00000111 + ld e, $02 + jr z, .moving_y + ld e, $03 +.moving_y + ld a, [hl] + srl a + srl a + srl a + ldh [hCurSpriteYCoord], a + ldh a, [hCurSpriteXCoord] + ld c, a + ldh a, [hCurSpriteYCoord] + ld b, a + call Coord2Tile + ld bc, OBJECT_INIT_X +.next_row + push hl + ldh a, [hCurSpriteHorizTilesOccupied] + ld d, a +.next_tile + ld a, [hli] + cp FIRST_REGULAR_TEXT_CHAR + jr nc, .covered + dec d + jr nz, .next_tile + pop hl + add hl, bc + dec e + jr nz, .next_row + and a + ret + +.covered + pop hl + jr .nope + +.nope + scf + ret + +HandleNPCStep: + call ResetStepVector + call DoStepsForAllObjects + call HandleMinorObjects + ret + +ResetStepVector: + xor a + ld [wPlayerStepVectorX], a + ld [wPlayerStepVectorY], a + ld [wPlayerStepFlags], a + ld a, STANDING + ld [wPlayerStepDirection], a + ret + +DoStepsForAllObjects: + ld bc, wObjectStructs + xor a +.loop + ldh [hMapObjectIndex], a + ld hl, OBJECT_SPRITE + add hl, bc + ld a, [hl] + and a + jr z, .next + call .CheckIfOffScreen + jr c, .next + call HandleStepTypeAndAction + +.next + ld hl, OBJECT_LENGTH + add hl, bc + ld b, h + ld c, l + ldh a, [hMapObjectIndex] + inc a + cp NUM_OBJECT_STRUCTS + jr nz, .loop + ret + +.CheckIfOffScreen: + ld hl, OBJECT_FLAGS2 + add hl, bc + res OFF_SCREEN_F, [hl] + ld a, [wXCoord] + ld e, a + ld hl, OBJECT_MAP_X + add hl, bc + ld a, [hl] + add 1 + sub e + jr c, .is_offscreen + cp (SCREEN_WIDTH / 2) + 2 + jr nc, .is_offscreen + ld a, [wYCoord] + ld e, a + ld hl, OBJECT_MAP_Y + add hl, bc + ld a, [hl] + add 1 + sub e + jr c, .is_offscreen + cp (SCREEN_HEIGHT / 2) + 2 + jr nc, .is_offscreen + jr .not_offscreen + +.is_offscreen + ld hl, OBJECT_FLAGS2 + add hl, bc + set OFF_SCREEN_F, [hl] + ld a, [wXCoord] + ld e, a + ld hl, OBJECT_INIT_X + add hl, bc + ld a, [hl] + add 1 + sub e + jr c, .init_pos_offscreen + cp (SCREEN_WIDTH / 2) + 2 + jr nc, .init_pos_offscreen + ld a, [wYCoord] + ld e, a + ld hl, OBJECT_INIT_Y + add hl, bc + ld a, [hl] + add 1 + sub e + jr c, .init_pos_offscreen + cp (SCREEN_HEIGHT / 2) + 2 + jr nc, .init_pos_offscreen +.not_offscreen + and a + ret + +.init_pos_offscreen + ldh a, [hMapObjectIndex] + cp PLAYER_OBJECT_INDEX + jr z, .dont_delete + ld hl, OBJECT_FLAGS1 + add hl, bc + bit WONT_DELETE_F, [hl] + jr nz, .dont_delete + call .DeleteMapObject + scf + ret +.dont_delete + ld hl, OBJECT_FLAGS2 + add hl, bc + set OFF_SCREEN_F, [hl] + and a + ret + +.DeleteMapObject: + push bc + ld hl, OBJECT_MAP_OBJECT_INDEX + add hl, bc + ld a, [hl] + push af + ld h, b + ld l, c + ld bc, OBJECT_LENGTH + xor a + call ByteFill + pop af + cp -1 + jr z, .ok + ld hl, wMapObjects + ld bc, NUM_OBJECTS + call AddNTimes + ld bc, OBJECT_SPRITE + add hl, bc + ld [hl], -1 +.ok + pop bc + ret + +InitSprites:: + ld a, [wStateFlags] + bit SPRITE_UPDATES_DISABLED_F, a + ret z + xor a + ldh [hUsedSpriteIndex], a + call InitObjectSprites + call InitMinorObjectSprites + call MoveUnusedObjectSpritesOffscreen + ret + +InitObjectSprites: + xor a + ld bc, wObjectStructs +.loop + push af + push bc + ld hl, OBJECT_SPRITE + add hl, bc + ld a, [hl] + and a + jp z, .skip + + ld hl, OBJECT_FLAGS2 + add hl, bc + bit LOW_PRIORITY_F, [hl] + jp nz, .skip + + xor a + bit OBJ_FLAGS2_7_F, [hl] + jr z, .not_priority + add PRIORITY +.not_priority + bit USE_OBP1_F, [hl] + jr z, .not_obp_num + add OBP_NUM +.not_obp_num + ld d, a + xor a + bit OVERHEAD_F, [hl] + jr z, .not_overhead + or PRIORITY +.not_overhead + ldh [hCurSpriteOAMFlags], a + ld hl, OBJECT_SPRITE_TILE + add hl, bc + ld a, [hl] + ldh [hCurSpriteTile], a + ld hl, OBJECT_SPRITE_X + add hl, bc + ld a, [hl] + ld hl, OBJECT_SPRITE_X_OFFSET + add hl, bc + add [hl] + add 8 + ldh [hCurSpriteXPixel], a + ld hl, OBJECT_SPRITE_Y + add hl, bc + ld a, [hl] + ld hl, OBJECT_SPRITE_Y_OFFSET + add hl, bc + add [hl] + add 16 + ldh [hCurSpriteYPixel], a + ld hl, OBJECT_FACING + add hl, bc + ld a, [hl] + cp STANDING + jp z, .skip + + ld l, a + ld h, 0 + add hl, hl + ld bc, Facings + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ldh a, [hUsedSpriteIndex] + ld c, a + ld b, HIGH(wShadowOAM) +.addsprite + ldh a, [hCurSpriteYPixel] + add [hl] + inc hl + ld [bc], a + inc c + + ldh a, [hCurSpriteXPixel] + add [hl] + inc hl + ld [bc], a + inc c + + ldh a, [hCurSpriteTile] + add [hl] + inc hl + ld [bc], a + inc c + + ld a, [hl] + bit RELATIVE_ATTRIBUTES_F, a + jr z, .nope + ldh a, [hCurSpriteOAMFlags] + or [hl] +.nope + inc hl + or d + ld [bc], a + inc c + bit FACING_DONE_F, a + jr z, .addsprite + ld a, c + ldh [hUsedSpriteIndex], a +.skip + pop bc + ld hl, OBJECT_LENGTH + add hl, bc + ld b, h + ld c, l + pop af + inc a + cp NUM_OBJECT_STRUCTS + jp nz, .loop + ret + +MoveUnusedObjectSpritesOffscreen: + ld b, LOW(wShadowOAMEnd) + ldh a, [hUsedSpriteIndex] + cp b + ret nc + ld l, a + ld h, HIGH(wShadowOAM) + ld de, SPRITEOAMSTRUCT_LENGTH + ld a, b + ld c, 160 +.loop + ld [hl], c + add hl, de + cp l + jr nz, .loop + ret + +InitMinorObjectSprites: + ld bc, wMinorObjects + ld a, NUM_MINOR_OBJECTS +.loop + push af + ld hl, MINOR_OBJECT_PARENT_OBJECT + add hl, bc + ld a, [hl] + and a + jr z, .next + + ld hl, MINOR_OBJECT_X_POS + add hl, bc + ld a, [hl] + ld hl, MINOR_OBJECT_X_OFFSET + add hl, bc + add [hl] + add 8 + ldh [hCurSpriteXPixel], a + ld hl, MINOR_OBJECT_Y_POS + add hl, bc + ld a, [hl] + ld hl, MINOR_OBJECT_Y_OFFSET + add hl, bc + add [hl] + add 16 + ldh [hCurSpriteYPixel], a + ld hl, MINOR_OBJECT_SPRITE_TILE + add hl, bc + ld a, [hl] + ldh [hCurSpriteTile], a + ld hl, MINOR_OBJECT_FRAME + add hl, bc + ld a, [hl] + and a + jr z, .next + + ld e, a + ld d, 0 + ld hl, MinorObjectSpriteTiles + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ldh a, [hUsedSpriteIndex] + ld d, a + ld a, [hl] + and a + jr z, .next + + add a + add a + add d + cp LOW(wShadowOAMEnd) + jr nc, .done + ldh a, [hUsedSpriteIndex] + ld e, a + ld d, HIGH(wShadowOAM) + ld a, [hli] +.addsprite + ldh [hUsedSpriteTile], a + ldh a, [hCurSpriteYPixel] + add [hl] + ld [de], a + inc hl + inc de + + ldh a, [hCurSpriteXPixel] + add [hl] + ld [de], a + inc hl + inc de + + ldh a, [hCurSpriteTile] + add [hl] + ld [de], a + inc hl + inc de + + ld a, [hli] + ld [de], a + inc de + + ldh a, [hUsedSpriteTile] + dec a + jr nz, .addsprite + ld a, e + ldh [hUsedSpriteIndex], a +.next + ld hl, MINOR_OBJECT_LENGTH + add hl, bc + ld b, h + ld c, l + pop af + dec a + jr nz, .loop + ret +.done + pop af + ret + +PrintSaveScreenNumbers: + call MenuBoxCoord2Tile + push hl + ld de, (SCREEN_WIDTH * 4) + 10 + add hl, de + call PrintNumBadges + pop hl + push hl + ld de, (SCREEN_WIDTH * 6) + 9 + add hl, de + call PrintNumOwnedMons + pop hl + ld de, (SCREEN_WIDTH * 8) + 8 + add hl, de + call PrintPlayTime + ret diff --git a/engine/overworld/minor_objects.asm b/engine/overworld/minor_objects.asm new file mode 100644 index 0000000..50ab8a7 --- /dev/null +++ b/engine/overworld/minor_objects.asm @@ -0,0 +1,358 @@ +INCLUDE "constants.asm" + +SECTION "engine/overworld/minor_objects.asm", ROMX + +HandleMinorObjects: + ld bc, wMinorObjects + ld a, 1 +.loop + ldh [hObjectStructIndex], a + ld hl, MINOR_OBJECT_PARENT_OBJECT + add hl, bc + ld a, [hl] + and a + jr z, .skip + call .HandleMinorObjectAction + +.skip + ld hl, MINOR_OBJECT_LENGTH + add hl, bc + ld b, h + ld c, l + ldh a, [hObjectStructIndex] + inc a + cp NUM_MINOR_OBJECTS + 1 + jr nz, .loop + ret + + +.HandleMinorObjectAction: + ld hl, MINOR_OBJECT_TYPE + add hl, bc + ld a, [hl] + ld hl, .MinorObjects + call CallJumptable + + ld hl, MINOR_OBJECT_PARENT_OBJECT + add hl, bc + ld a, [hl] + and a + ret z + + ld hl, MINOR_OBJECT_ANIM + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, .MinorObjectAnimations + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +.MinorObjects: + dw MinorObject_Null + dw MinorObject_Shadow + dw MinorObject_Emote + dw MinorObject_03 + dw MinorObject_04 + dw MinorObject_BoulderDust + +.MinorObjectAnimations: + dw MinorObjectAnim_Null + dw MinorObjectAnim_Shadow + dw MinorObjectAnim_Emote + dw MinorObjectAnim_03 + dw MinorObjectAnim_BoulderDust + +MinorObject_Null: + ret + +MinorObjectAnim_Null: + ret + +DelMinorObject: + push bc + ld h, b + ld l, c + ld bc, MINOR_OBJECT_LENGTH + xor a + call ByteFill + pop bc + ret + +MinorObject_IncAnonJumptableIndex: + ld hl, MINOR_OBJECT_JUMPTABLE_INDEX + add hl, bc + inc [hl] + ret + +Unreferenced_CallMinorObject_AnonJumptable: + pop hl + ld e, [hl] + inc hl + ld d, [hl] + ld hl, MINOR_OBJECT_JUMPTABLE_INDEX + add hl, bc + ld l, [hl] + ld h, 0 + add hl, hl + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +MinorObject_AnonJumptable: + ld hl, MINOR_OBJECT_JUMPTABLE_INDEX + add hl, bc + ld a, [hl] + add a + ld l, a + ld h, 0 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +MinorObject_GetParentObjectStruct: + push bc + ld hl, MINOR_OBJECT_PARENT_OBJECT + add hl, bc + ld a, [hl] + dec a + call GetObjectStruct + ld d, b + ld e, c + pop bc + ret + +; Unused, purpose unknown. +; VAR2 => TIMER, VAR3 => X_OFFSET +MinorObject_03: +MinorObject_04: + ld de, .anon_dw + jp MinorObject_AnonJumptable + +.anon_dw: + dw .zero + dw .one + +.zero: + call MinorObject_IncAnonJumptableIndex + ld hl, MINOR_OBJECT_VAR2 + add hl, bc + ld a, [hl] + ld hl, MINOR_OBJECT_TIMER + add hl, bc + ld [hl], a + ld hl, MINOR_OBJECT_X_OFFSET + add hl, bc + ld [hl], 0 + ld hl, MINOR_OBJECT_VAR3 + add hl, bc + ld a, [hl] + ld hl, MINOR_OBJECT_Y_OFFSET + add hl, bc + ld [hl], a + +.one: + jp MinorObject_FollowParentObject + +MinorObject_Shadow: + ld de, .anon_dw + jp MinorObject_AnonJumptable + +.anon_dw: + dw .zero + dw .one + +.zero: + call MinorObject_IncAnonJumptableIndex +; Redundant; the player's step duration is already stored to MINOR_OBJECT_VAR2 in SpawnShadow. + call MinorObject_GetParentObjectStruct + ld hl, OBJECT_STEP_DURATION + add hl, de + ld a, [hl] + add a + dec a + ld hl, MINOR_OBJECT_TIMER + add hl, bc + ld [hl], a + ld hl, MINOR_OBJECT_X_OFFSET + add hl, bc + ld [hl], 0 + ld hl, MINOR_OBJECT_Y_OFFSET + add hl, bc + ld [hl], 8 + +.one: + jp MinorObject_FollowParentObject + +; VAR2 => X_OFFSET, VAR3 => Y_OFFSET +MinorObject_BoulderDust: + ld de, .anon_dw + jp MinorObject_AnonJumptable + +.anon_dw: + dw .zero + dw .one + +.zero: + call MinorObject_GetParentObjectStruct + ld hl, MINOR_OBJECT_ANIM_TIMER + add hl, de + ld a, [hl] + add 1 + ld hl, MINOR_OBJECT_TIMER + add hl, bc + ld [hl], a + ld hl, MINOR_OBJECT_VAR2 + add hl, bc + ld a, [hl] + ld hl, MINOR_OBJECT_X_OFFSET + add hl, bc + ld [hl], a + ld hl, MINOR_OBJECT_VAR3 + add hl, bc + ld a, [hl] + ld hl, MINOR_OBJECT_Y_OFFSET + add hl, bc + ld [hl], a + ld hl, MINOR_OBJECT_VAR1 + add hl, bc + ldh a, [rOBP1] + ld [hl], a + ldh [rOBP1], a + +.one: + jp MinorObject_FollowParentObject + +MinorObject_FollowParentObject: + ld hl, MINOR_OBJECT_TIMER + add hl, bc + ld a, [hl] + and a + jr z, .no_timer + dec [hl] + jp z, DelMinorObject +.no_timer + call MinorObject_GetParentObjectStruct + ld hl, OBJECT_SPRITE_X + add hl, de + ld a, [hl] + ld hl, MINOR_OBJECT_X_OFFSET + add hl, bc + add [hl] + ld hl, MINOR_OBJECT_X_POS + add hl, bc + ld [hl], a + ld hl, OBJECT_SPRITE_Y + add hl, de + ld a, [hl] + ld hl, MINOR_OBJECT_Y_OFFSET + add hl, bc + add [hl] + ld hl, MINOR_OBJECT_Y_POS + add hl, bc + ld [hl], a + ret + +; Unused. +MinorObject_Emote: + ld hl, .anon_dw + jp MinorObject_AnonJumptable + +.anon_dw: + dw .zero + dw .one + +.zero: + call MinorObject_IncAnonJumptableIndex + ld hl, MINOR_OBJECT_TIMER + add hl, bc + ld [hl], 49 + ld hl, MINOR_OBJECT_X_OFFSET + add hl, bc + ld [hl], 0 + ld hl, MINOR_OBJECT_Y_OFFSET + add hl, bc + ld [hl], -16 + +.one: + jp MinorObject_FollowParentObject + +MinorObjectAnim_Shadow: + ld hl, MINOR_OBJECT_FRAME + add hl, bc + ld [hl], MINOR_OBJECT_SPRITE_SHADOW + ret + +; Unused. +MinorObjectAnim_Emote: + ld hl, MINOR_OBJECT_TIMER + add hl, bc + ld a, [hl] + cp 48 + ld a, MINOR_OBJECT_SPRITE_EMOTE + jr c, .visible + ld a, MINOR_OBJECT_SPRITE_NULL +.visible + ld hl, MINOR_OBJECT_FRAME + add hl, bc + ld [hl], a + ret + +; Unused, purpose unknown. +; VAR1 => FRAME +MinorObjectAnim_03: + ld hl, MINOR_OBJECT_ANIM_TIMER + add hl, bc + inc [hl] + ld a, [hl] + cp 5 + jr c, .dont_flip_bit + + xor a + ld [hl], a + ld hl, MINOR_OBJECT_08 + add hl, bc + ld a, [hl] + xor 1 + ld [hl], a +.dont_flip_bit + ld hl, MINOR_OBJECT_08 + add hl, bc + ld a, 0 + bit 0, [hl] + jr z, .set_frame_null + + ld hl, MINOR_OBJECT_VAR1 + add hl, bc + ld a, [hl] +.set_frame_null + ld hl, MINOR_OBJECT_FRAME + add hl, bc + ld [hl], a + ret + +MinorObjectAnim_BoulderDust: + ld hl, MINOR_OBJECT_ANIM_TIMER + add hl, bc + inc [hl] + ld a, [hl] + cp 3 + ld a, MINOR_OBJECT_SPRITE_BOULDER_DUST_1 + jr nz, .dont_flip + xor a + ld [hl], a + ld a, MINOR_OBJECT_SPRITE_BOULDER_DUST_2 +.dont_flip + ld hl, MINOR_OBJECT_FRAME + add hl, bc + ld [hl], a + ret + +INCLUDE "data/sprites/minor_object_sprites.inc" diff --git a/engine/overworld/object_collision.asm b/engine/overworld/object_collision.asm index 05afeca..2ee68ef 100644 --- a/engine/overworld/object_collision.asm +++ b/engine/overworld/object_collision.asm @@ -1,6 +1,41 @@ INCLUDE "constants.asm" -SECTION "engine/overworld/object_collision.asm@GetSpritesNextTile", ROMX +SECTION "engine/overworld/object_collision.asm", ROMX + +CanObjectMoveInDirection: + ld hl, OBJECT_FLAGS1 + add hl, bc + bit COLLISION_TILES_F, [hl] + jr z, .noclip_tiles + push hl + call _IsObjectCollisionTileSolid + pop hl + ret c + +.noclip_tiles + bit COLLISION_OBJS_F, [hl] + jr z, .noclip_objs + push hl + push bc + call WillObjectBumpIntoSomeoneElse + pop bc + pop hl + ret c + +.noclip_objs + bit NOCLIP_NOT_SET_F, [hl] + jr z, .move_anywhere + push hl + call HasObjectReachedMovementLimit + pop hl + ret c + push hl + call IsObjectMovingOffEdgeOfScreen + pop hl + ret c +.move_anywhere + and a + ret ; Get the tile that the sprite will walk onto next GetSpritesNextTile: @@ -11,7 +46,7 @@ GetSpritesNextTile: add hl, bc ld e, [hl] push bc - call GetCoordTile + call GetCoordTileCollision pop bc ret @@ -29,9 +64,87 @@ _IsObjectCollisionTileSolid: scf ret +CheckFacingObject: + call GetFacingTileCoord + cp COLLISION_COUNTER + jr z, .counter + cp COLLISION_COUNTER_98 + jr nz, .not_counter +.counter + ld a, [wPlayerMapX] + sub d + cpl + inc a + add d + ld d, a + ld a, [wPlayerMapY] + sub e + cpl + inc a + add e + ld e, a +.not_counter + ld bc, wPlayerSprite + ld a, PLAYER_OBJECT_INDEX + ldh [hMapObjectIndex], a + call _CheckObjectCollision + ret nc + ld hl, OBJECT_WALKING + add hl, bc + ld a, [hl] + cp STANDING + jr z, .standing + xor a + ret +.standing + scf + ret +WillObjectBumpIntoSomeoneElse: + ld hl, OBJECT_MAP_X + add hl, bc + ld d, [hl] + ld hl, OBJECT_MAP_Y + add hl, bc + ld e, [hl] + jr _CheckObjectCollision -SECTION "engine/overworld/object_collision.asm@_CheckObjectCollision", ROMX +IsObjectFacingSomeoneElse: + ldh a, [hMapObjectIndex] + call GetObjectStruct + call .GetFacingCoords + call _CheckObjectCollision + ret +.GetFacingCoords + ld hl, OBJECT_MAP_X + add hl, bc + ld d, [hl] + ld hl, OBJECT_MAP_Y + add hl, bc + ld e, [hl] + ld hl, OBJECT_DIRECTION + add hl, bc + ld a, [hl] + and %00001100 + and a + jr z, .down + + cp OW_UP + jr z, .up + cp OW_LEFT + jr z, .left + ; OW_RIGHT + inc d + ret +.down + inc e + ret +.up + dec e + ret +.left + dec d + ret ; returns the carry flag if a sprite is at coords d, e ; will not collide with sprite index stored in hEventCollisionException @@ -92,7 +205,87 @@ _CheckObjectCollision: scf ret -SECTION "engine/overworld/object_collision.asm@_CheckPlayerObjectCollision", ROMX +HasObjectReachedMovementLimit: + ld hl, OBJECT_RADIUS_X + add hl, bc + ld a, [hl] + and a + jr z, .check_y + ld e, a + ld d, a + ld hl, OBJECT_INIT_X + add hl, bc + ld a, [hl] + sub d + ld d, a + ld a, [hl] + add e + ld e, a + ld hl, OBJECT_MAP_X + add hl, bc + ld a, [hl] + cp d + jr z, .yes + cp e + jr z, .yes +.check_y + ld hl, OBJECT_RADIUS_Y + add hl, bc + ld a, [hl] + and a + jr z, .nope + ld e, a + ld d, a + ld hl, OBJECT_INIT_Y + add hl, bc + ld a, [hl] + sub d + ld d, a + ld a, [hl] + add e + ld e, a + ld hl, OBJECT_MAP_Y + add hl, bc + ld a, [hl] + cp d + jr z, .yes + cp e + jr z, .yes +.nope + and a + ret + +.yes + scf + ret + +IsObjectMovingOffEdgeOfScreen: + ld hl, OBJECT_MAP_X + add hl, bc + ld a, [wXCoord] + cp [hl] + jr z, .check_y + jr nc, .yes + add (SCREEN_WIDTH / 2) - 1 + cp [hl] + jr c, .yes +.check_y + ld hl, OBJECT_MAP_Y + add hl, bc + ld a, [wYCoord] + cp [hl] + jr z, .nope + jr nc, .yes + add (SCREEN_HEIGHT / 2) - 1 + cp [hl] + jr c, .yes +.nope + and a + ret + +.yes + scf + ret ; Sets the carry flag if the player will collide with another sprite's current or next position _CheckPlayerObjectCollision: diff --git a/engine/overworld/player_movement.asm b/engine/overworld/player_movement.asm index 6e841cf..5060b09 100644 --- a/engine/overworld/player_movement.asm +++ b/engine/overworld/player_movement.asm @@ -27,7 +27,7 @@ UnusedOverworldMovementCheck:: jp CheckMovementWalkOrBike SetPlayerIdle: - ld a, NO_MOVEMENT + ld a, movement_step_sleep SetPlayerMovement: ld [wPlayerMovement], a @@ -56,7 +56,7 @@ _CheckMovementWalkOrBike: bit D_RIGHT_F, a jr nz, .check_right .idle - ld a, NO_MOVEMENT + ld a, movement_step_sleep ret .check_right @@ -71,12 +71,12 @@ _CheckMovementWalkOrBike: .move_right ld a, [wPlayerState] cp PLAYER_BIKE - ld a, FAST_STEP_RIGHT + ld a, movement_big_step | RIGHT ret z - ld a, STEP_RIGHT + ld a, movement_step | RIGHT ret .face_right - ld a, FACE_RIGHT + ld a, movement_turn_head | RIGHT ret .check_left: @@ -91,12 +91,12 @@ _CheckMovementWalkOrBike: .move_left ld a, [wPlayerState] cp PLAYER_BIKE - ld a, FAST_STEP_LEFT + ld a, movement_big_step | LEFT ret z - ld a, STEP_LEFT + ld a, movement_step | LEFT ret .face_left - ld a, FACE_LEFT + ld a, movement_turn_head | LEFT ret .check_down @@ -109,17 +109,17 @@ _CheckMovementWalkOrBike: jr nc, .move_down cp OLD_COLLISION_LEDGE jr nz, .face_down - ld a, JUMP_DOWN + ld a, movement_jump_step | DOWN ret .move_down ld a, [wPlayerState] cp PLAYER_BIKE - ld a, FAST_STEP_DOWN + ld a, movement_big_step | DOWN ret z - ld a, STEP_DOWN + ld a, movement_step | DOWN ret .face_down - ld a, FACE_DOWN + ld a, movement_turn_head | DOWN ret .check_up @@ -134,12 +134,12 @@ _CheckMovementWalkOrBike: .move_up ld a, [wPlayerState] cp PLAYER_BIKE - ld a, FAST_STEP_UP + ld a, movement_big_step | UP ret z - ld a, STEP_UP + ld a, movement_step | UP ret .face_up - ld a, FACE_UP + ld a, movement_turn_head | UP ret CheckMovementDebug:: @@ -156,39 +156,39 @@ _CheckMovementDebug: jr nz, .move_left bit D_RIGHT_F, a jr nz, .move_right - ld a, NO_MOVEMENT + ld a, movement_step_sleep ret .move_down ld a, [wTileDown] cp -1 - ld a, FAST_STEP_DOWN + ld a, movement_big_step | DOWN ret nz - ld a, JUMP_UP + ld a, movement_jump_step | UP ret .move_up ld a, [wTileUp] cp -1 - ld a, FAST_STEP_UP + ld a, movement_big_step | UP ret nz - ld a, JUMP_DOWN + ld a, movement_jump_step | DOWN ret .move_left ld a, [wTileLeft] cp -1 - ld a, FAST_STEP_LEFT + ld a, movement_big_step | LEFT ret nz - ld a, JUMP_RIGHT + ld a, movement_jump_step | RIGHT ret .move_right ld a, [wTileRight] cp -1 - ld a, FAST_STEP_RIGHT + ld a, movement_big_step | RIGHT ret nz - ld a, JUMP_LEFT + ld a, movement_jump_step | LEFT ret CheckMovementSkateboard:: @@ -233,7 +233,7 @@ _CheckMovementSkateboard: .idle ld a, STANDING ld [wSkatingDirection], a - ld a, NO_MOVEMENT + ld a, movement_step_sleep ret CheckSkateDown: @@ -252,23 +252,23 @@ CheckSkateDown: jr nz, .collision .jump - ld a, FAST_JUMP_DOWN + ld a, movement_fast_jump_step | DOWN ret .can_skate call OldIsTileCollisionGrass jr z, .slow - ld a, FAST_STEP_DOWN + ld a, movement_big_step | DOWN ret .slow - ld a, STEP_DOWN + ld a, movement_step | DOWN ret .collision ld a, STANDING ld [wSkatingDirection], a - ld a, FACE_DOWN + ld a, movement_turn_head | DOWN ret CheckSkateUp: @@ -283,23 +283,23 @@ CheckSkateUp: jr nc, .can_skate cp (OLD_COLLISION_ROCK | COLLISION_FLAG) jr nz, .collision - ld a, FAST_JUMP_UP + ld a, movement_fast_jump_step | UP ret .can_skate call OldIsTileCollisionGrass jr z, .slow - ld a, FAST_STEP_UP + ld a, movement_big_step | UP ret .slow - ld a, STEP_UP + ld a, movement_step | UP ret .collision ld a, STANDING ld [wSkatingDirection], a - ld a, FACE_UP + ld a, movement_turn_head | UP ret CheckSkateLeft: @@ -314,23 +314,23 @@ CheckSkateLeft: jr nc, .can_skate cp (OLD_COLLISION_ROCK | COLLISION_FLAG) jr nz, .collision - ld a, FAST_JUMP_LEFT + ld a, movement_fast_jump_step | LEFT ret .can_skate call OldIsTileCollisionGrass jr z, .slow - ld a, FAST_STEP_LEFT + ld a, movement_big_step | LEFT ret .slow - ld a, STEP_LEFT + ld a, movement_step | LEFT ret .collision ld a, STANDING ld [wSkatingDirection], a - ld a, FACE_LEFT + ld a, movement_turn_head | LEFT ret CheckSkateRight: @@ -345,23 +345,23 @@ CheckSkateRight: jr nc, .can_skate cp (OLD_COLLISION_ROCK | COLLISION_FLAG) jr nz, .collision - ld a, FAST_JUMP_RIGHT + ld a, movement_fast_jump_step | RIGHT ret .can_skate call OldIsTileCollisionGrass jr z, .slow - ld a, FAST_STEP_RIGHT + ld a, movement_big_step | RIGHT ret .slow - ld a, STEP_RIGHT + ld a, movement_step | RIGHT ret .collision ld a, STANDING ld [wSkatingDirection], a - ld a, FACE_RIGHT + ld a, movement_turn_head | RIGHT ret OldIsTileCollisionGrass:: @@ -394,7 +394,7 @@ _OldCheckMovementSurf: jp nz, .check_left bit D_RIGHT_F, a jr nz, .check_right - ld a, NO_MOVEMENT + ld a, movement_step_sleep ret .check_down @@ -408,14 +408,14 @@ _OldCheckMovementSurf: ; You can walk into them from water because of this. call OldIsTileCollisionWater jr c, .face_down - ld a, STEP_DOWN + ld a, movement_step | DOWN ret .face_down - ld a, FACE_DOWN + ld a, movement_turn_head | DOWN ret .exit_water_down call SetPlayerStateWalk - ld a, SLOW_STEP_DOWN + ld a, movement_slow_step | DOWN ret .check_up @@ -429,14 +429,14 @@ _OldCheckMovementSurf: ; You can walk into them from water because of this. call OldIsTileCollisionWater jr c, .face_up - ld a, STEP_UP + ld a, movement_step | UP ret .face_up - ld a, FACE_UP + ld a, movement_turn_head | UP ret .exit_water_up call SetPlayerStateWalk - ld a, SLOW_STEP_UP + ld a, movement_slow_step | UP ret .check_left @@ -450,14 +450,14 @@ _OldCheckMovementSurf: ; You can walk into them from water because of this. call OldIsTileCollisionWater jr c, .face_left - ld a, STEP_LEFT + ld a, movement_step | LEFT ret .face_left - ld a, FACE_LEFT + ld a, movement_turn_head | LEFT ret .exit_water_left call SetPlayerStateWalk - ld a, SLOW_STEP_LEFT + ld a, movement_slow_step | LEFT ret .check_right @@ -471,14 +471,14 @@ _OldCheckMovementSurf: ; You can walk into them from water because of this. call OldIsTileCollisionWater jr c, .face_right - ld a, STEP_RIGHT + ld a, movement_step | RIGHT ret .face_right - ld a, FACE_RIGHT + ld a, movement_turn_head | RIGHT ret .exit_water_right call SetPlayerStateWalk - ld a, SLOW_STEP_RIGHT + ld a, movement_slow_step | RIGHT ret OldIsTileCollisionWater:: @@ -489,9 +489,9 @@ OldIsTileCollisionWater:: ; c - water ; nc - not water and COLLISION_TYPE_MASK - cp OLD_COLLISION_TYPE_WATER + cp OLD_HI_NYBBLE_WATER ret z - cp OLD_COLLISION_TYPE_WATER2 + cp OLD_HI_NYBBLE_WATER_ALT ret z scf ret @@ -543,7 +543,7 @@ CheckCompanionObjectCollision:: add hl, bc set 1, [hl] ; mark object as having collided with player ldh a, [hObjectStructIndex] - cp COMPANION_OBJECT_INDEX + cp FOLLOWER_OBJECT_INDEX jr z, .is_companion xor a ld [wCompanionCollisionFrameCounter], a @@ -593,7 +593,7 @@ GetPlayerMovementByState: CheckMovementWalk:: ld a, [wPlayerTile] swap a - and LOW((COLLISION_TYPE_MASK >> 4) | (COLLISION_TYPE_MASK << 4)) + and COLLISION_TYPE_MASK >> 4 ld hl, .WalkingCollisionTable jp CallJumptable @@ -616,7 +616,7 @@ CheckMovementWalk:: dw CheckMovementWalkRegular ; unused NoWalkMovement: - ld a, NO_MOVEMENT + ld a, movement_step_sleep ret CheckMovementWalkSolid:: @@ -631,16 +631,16 @@ CheckMovementWalkLand:: ret .force_movement - ld b, STEP_DOWN + ld b, movement_step | DOWN cp (COLLISION_LAND_S & COLLISION_SUBTYPE_MASK) jr z, .finish - ld b, STEP_UP + ld b, movement_step | UP cp (COLLISION_LAND_N & COLLISION_SUBTYPE_MASK) jr z, .finish - ld b, STEP_LEFT + ld b, movement_step | LEFT cp (COLLISION_LAND_W & COLLISION_SUBTYPE_MASK) jr z, .finish - ld b, STEP_RIGHT + ld b, movement_step | RIGHT cp (COLLISION_LAND_E & COLLISION_SUBTYPE_MASK) jr z, .finish ; fall-through --> map other codes to COLLISION_LAND_E @@ -649,17 +649,17 @@ CheckMovementWalkLand:: ret SlowDownMovementWalk: - ld b, SLOW_STEP_DOWN - cp STEP_DOWN + ld b, movement_slow_step | DOWN + cp movement_step | DOWN jr z, .finish - ld b, SLOW_STEP_UP - cp STEP_UP + ld b, movement_slow_step | UP + cp movement_step | UP jr z, .finish - ld b, SLOW_STEP_LEFT - cp STEP_LEFT + ld b, movement_slow_step | LEFT + cp movement_step | LEFT jr z, .finish - ld b, SLOW_STEP_RIGHT - cp STEP_RIGHT + ld b, movement_slow_step | RIGHT + cp movement_step | RIGHT jr z, .finish ret .finish @@ -669,16 +669,16 @@ SlowDownMovementWalk: CheckMovementWalkLand2:: ld a, [wPlayerTile] and COLLISION_SUBTYPE_MASK - ld b, STEP_DOWN + ld b, movement_step | DOWN cp (COLLISION_LAND2_S & COLLISION_SUBTYPE_MASK) jr z, .finish - ld b, STEP_UP + ld b, movement_step | UP cp (COLLISION_LAND2_N & COLLISION_SUBTYPE_MASK) jr z, .finish - ld b, STEP_LEFT + ld b, movement_step | LEFT cp (COLLISION_LAND2_W & COLLISION_SUBTYPE_MASK) jr z, .finish - ld b, STEP_RIGHT + ld b, movement_step | RIGHT cp (COLLISION_LAND2_E & COLLISION_SUBTYPE_MASK) jr z, .finish ; fall-through --> map other codes to COLLISION_LAND2_E @@ -700,7 +700,7 @@ CheckMovementWalkWarp:: jr z, .move_down jp CheckMovementWalkRegular .move_down - ld a, STEP_DOWN + ld a, movement_step | DOWN ret .check_dpad @@ -720,28 +720,28 @@ CheckMovementWalkWarp:: cp -1 jp nz, CheckMovementWalkRegular call z, .moved_out_of_bounds - ld a, FACE_DOWN + ld a, movement_turn_head | DOWN ret .up ld a, [wTileUp] cp -1 jp nz, CheckMovementWalkRegular call z, .moved_out_of_bounds - ld a, FACE_UP + ld a, movement_turn_head | UP ret .left ld a, [wTileLeft] cp -1 jp nz, CheckMovementWalkRegular call z, .moved_out_of_bounds - ld a, FACE_LEFT + ld a, movement_turn_head | LEFT ret .right ld a, [wTileRight] cp -1 jp nz, CheckMovementWalkRegular call z, .moved_out_of_bounds - ld a, FACE_RIGHT + ld a, movement_turn_head | RIGHT ret .moved_out_of_bounds @@ -788,7 +788,7 @@ CheckMovementWalkJump: jr z, .jump_down jp CheckWalkDown .jump_down - ld a, JUMP_DOWN + ld a, movement_jump_step | DOWN ret .up @@ -802,7 +802,7 @@ CheckMovementWalkJump: jr z, .jump_up jp CheckWalkUp .jump_up - ld a, JUMP_UP + ld a, movement_jump_step | UP ret .left @@ -816,7 +816,7 @@ CheckMovementWalkJump: jr z, .jump_left jp CheckWalkLeft .jump_left - ld a, JUMP_LEFT + ld a, movement_jump_step | LEFT ret .right @@ -830,7 +830,7 @@ CheckMovementWalkJump: jr z, .jump_right jp CheckWalkRight .jump_right - ld a, JUMP_RIGHT + ld a, movement_jump_step | RIGHT ret CheckWalkDown:: @@ -841,10 +841,10 @@ CheckWalkDown:: ld a, [wTileDown] call CheckCollisionSolid jr c, .face_down - ld a, STEP_DOWN + ld a, movement_step | DOWN ret .face_down - ld a, FACE_DOWN + ld a, movement_turn_head | DOWN ret CheckWalkUp:: @@ -855,10 +855,10 @@ CheckWalkUp:: ld a, [wTileUp] call CheckCollisionSolid jr c, .face_up - ld a, STEP_UP + ld a, movement_step | UP ret .face_up - ld a, FACE_UP + ld a, movement_turn_head | UP ret CheckWalkLeft:: @@ -869,10 +869,10 @@ CheckWalkLeft:: ld a, [wTileLeft] call CheckCollisionSolid jr c, .face_left - ld a, STEP_LEFT + ld a, movement_step | LEFT ret .face_left - ld a, FACE_LEFT + ld a, movement_turn_head | LEFT ret CheckWalkRight:: @@ -883,16 +883,16 @@ CheckWalkRight:: ld a, [wTileRight] call CheckCollisionSolid jr c, .face_right - ld a, STEP_RIGHT + ld a, movement_step | RIGHT ret .face_right - ld a, FACE_RIGHT + ld a, movement_turn_head | RIGHT ret CheckMovementSurf:: ld a, [wPlayerTile] swap a - and LOW((COLLISION_TYPE_MASK >> 4) | (COLLISION_TYPE_MASK << 4)) + and COLLISION_TYPE_MASK >> 4 ld hl, .SurfCollisionTable jp CallJumptable @@ -932,21 +932,21 @@ CheckMovementSurfWater:: cp (COLLISION_WATERFALL & COLLISION_SUBTYPE_MASK) jr nz, CheckMovementSurfRegular ; waterfall - ld a, FAST_STEP_DOWN + ld a, movement_big_step | DOWN ret CheckMovementSurfWater2:: ld a, [wPlayerTile] and COLLISION_WATER_SUBTYPE_MASK - ld d, STEP_RIGHT + ld d, movement_step | RIGHT jr z, .finish ; COLLISION_WATER2_E - ld d, STEP_LEFT + ld d, movement_step | LEFT cp (COLLISION_WATER2_W & COLLISION_WATER_SUBTYPE_MASK) jr z, .finish - ld d, STEP_UP + ld d, movement_step | UP cp (COLLISION_WATER2_N & COLLISION_WATER_SUBTYPE_MASK) jr z, .finish - ld d, STEP_DOWN + ld d, movement_step | DOWN cp (COLLISION_WATER2_S & COLLISION_WATER_SUBTYPE_MASK) jr z, .finish ; fall-through --> no aliasing due to mask @@ -964,10 +964,10 @@ CheckSurfDown: jr c, .face_down ; FIXME: This assumes cut-trees are solid, which they aren't. ; You can walk into them from water because of this. call nz, SurfDismount - ld a, STEP_DOWN + ld a, movement_step | DOWN ret .face_down - ld a, FACE_DOWN + ld a, movement_turn_head | DOWN ret CheckSurfUp: @@ -980,10 +980,10 @@ CheckSurfUp: jr c, .face_up ; FIXME: This assumes cut-trees are solid, which they aren't. ; You can walk into them from water because of this. call nz, SurfDismount - ld a, STEP_UP + ld a, movement_step | UP ret .face_up - ld a, FACE_UP + ld a, movement_turn_head | UP ret CheckSurfLeft: @@ -996,10 +996,10 @@ CheckSurfLeft: jr c, .face_left ; FIXME: This assumes cut-trees are solid, which they aren't. ; You can walk into them from water because of this. call nz, SurfDismount - ld a, STEP_LEFT + ld a, movement_step | LEFT ret .face_left - ld a, FACE_LEFT + ld a, movement_turn_head | LEFT ret CheckSurfRight: @@ -1012,10 +1012,10 @@ CheckSurfRight: jr c, .face_right ; FIXME: This assumes cut-trees are solid, which they aren't. ; You can walk into them from water because of this. call nz, SurfDismount - ld a, STEP_RIGHT + ld a, movement_step | RIGHT ret .face_right - ld a, FACE_RIGHT + ld a, movement_turn_head | RIGHT ret SurfDismount: diff --git a/engine/pokemon/correct_nick_errors.asm b/engine/pokemon/correct_nick_errors.asm new file mode 100644 index 0000000..83cf0a6 --- /dev/null +++ b/engine/pokemon/correct_nick_errors.asm @@ -0,0 +1,54 @@ +INCLUDE "constants.asm" + +SECTION "engine/pokemon/correct_nick_errors.asm", ROMX + +; Replace invalid name characters with question marks, or replaces entire name with "?" if no terminator is found. +; These characters include control characters, kana with diacritics they shouldn't have, and English letter tiles. +CorrectNickErrors: + push bc + push de + ld b, MON_NAME_LENGTH +.checkchar + ld a, [de] + cp "@" + jr z, .end + ld hl, InvalidNicknameChars + dec hl +.loop + inc hl + ld a, [hl] + cp -1 + jr z, .done + ld a, [de] + cp [hl] + inc hl + jr c, .loop + cp [hl] + jr nc, .loop + ld a, "?" + ld [de], a + jr .loop + +.done + inc de + dec b + jr nz, .checkchar + pop de + push de + ld a, "?" + ld [de], a + inc de + ld a, "@" + ld [de], a +.end + pop de + pop bc + ret + +InvalidNicknameChars: + db "", "オ゛" + 1 + db "", "ノ゛" + 1 + db "", "" + 1 + db "", "" + 1 + db "", "┘" + 1 + db -1 diff --git a/engine/pokemon/learn.asm b/engine/pokemon/learn.asm new file mode 100644 index 0000000..d881f39 --- /dev/null +++ b/engine/pokemon/learn.asm @@ -0,0 +1,258 @@ +INCLUDE "constants.asm" + +SECTION "engine/pokemon/learn.asm", ROMX + +LearnMove:: + call BackUpTilesToBuffer + ld a, [wCurPartyMon] + ld hl, wPartyMonNicknames + call GetNick + ld hl, wStringBuffer1 + ld de, wMonOrItemNameBuffer + ld bc, MON_NAME_LENGTH + call CopyBytes + +.loop + ld hl, wPartyMon1Moves + ld bc, PARTYMON_STRUCT_LENGTH + ld a, [wCurPartyMon] + call AddNTimes + ld d, h + ld e, l + ld b, NUM_MOVES +; Get the first empty move slot. This routine also serves to +; determine whether the Pokemon learning the moves already has +; all four slots occupied, in which case one would need to be +; deleted. +.next + ld a, [hl] + and a + jr z, .learn + inc hl + dec b + jr nz, .next +; If we're here, we enter the routine for forgetting a move +; to make room for the new move we're trying to learn. + push de + call ForgetMove + pop de + jp c, .cancel + push hl + push de + ld [wNamedObjectIndexBuffer], a + call GetMoveName + ld hl, Text_1_2_and_Poof + call PrintText + pop de + pop hl +.learn + ld a, [wPutativeTMHMMove] + ld [hl], a + ld bc, MON_PP - MON_MOVES + add hl, bc + + push hl + push de + dec a + ld hl, Moves + MOVE_PP + ld bc, MOVE_LENGTH + call AddNTimes + ld a, BANK(Moves) + call GetFarByte + pop de + pop hl + + ld [hl], a + + ld a, [wBattleMode] + and a + jp z, .learned + + ld a, [wCurPartyMon] + ld b, a + ld a, [wCurBattleMon] + cp b + jp nz, .learned + + ld h, d + ld l, e + ld de, wBattleMonMoves + ld bc, NUM_MOVES + call CopyBytes + ld bc, wPartyMon1PP - (wPartyMon1Moves + NUM_MOVES) + add hl, bc + ld de, wBattleMonPP + ld bc, NUM_MOVES + call CopyBytes + jp .learned + +.cancel + ld hl, StopLearningMoveText + call PrintText + call YesNoBox + jp c, .loop + ld hl, DidNotLearnMoveText + call PrintText + ld b, 0 + ret +.learned + ld hl, LearnedMoveText + call PrintText + ld b, 1 + ret + +ForgetMove:: + push hl + ld hl, AskForgetMoveText + call PrintText + call YesNoBox + pop hl + ret c + ld bc, -NUM_MOVES + add hl, bc + push hl + ld de, wListMoves_MoveIndicesBuffer + ld bc, NUM_MOVES + call CopyBytes + pop hl +.loop + push hl + ld hl, MoveAskForgetText + call PrintText + hlcoord 10, 8 + ld b, NUM_MOVES * 2 + ld c, MOVE_NAME_LENGTH + 3 + call DrawTextBox + hlcoord 12, 10 + ld a, SCREEN_WIDTH * 2 + ld [wListMovesLineSpacing], a + predef ListMoves + ; w2DMenuData + ld a, 10 + ld [w2DMenuCursorInitY], a + ld a, 11 + ld [w2DMenuCursorInitX], a + ld a, [wNumMoves] + inc a + ld [w2DMenuNumRows], a + ld a, 1 + ld [w2DMenuNumCols], a + ld [w2DMenuDataEnd], a + ld [wMenuCursorX], a + ld a, A_BUTTON | B_BUTTON + ld [wMenuJoypadFilter], a + ld a, $20 ; enable sprite animations + ld [w2DMenuFlags1], a + xor a + ld [w2DMenuFlags2], a + ld a, $20 + ld [w2DMenuCursorOffsets], a + call Get2DMenuJoypad + push af + call ReloadTilesFromBuffer + pop af + pop hl + bit B_BUTTON_F, a + jr nz, .cancel + push hl + ld a, [w2DMenuDataEnd] + dec a + ld c, a + ld b, 0 + add hl, bc + ld a, [hl] + push af + push bc + call IsHMMove + pop bc + pop de + ld a, d + jr c, .hmmove + pop hl + add hl, bc + and a + ret + +.hmmove + ld hl, MoveCantForgetHMText + call PrintText + pop hl + jr .loop +.cancel + scf + ret + +LearnedMoveText: + text_from_ram wMonOrItemNameBuffer + text "は あたらしく" + line "@" + text_from_ram wStringBuffer2 + text "を おぼえた!@" + sound_dex_fanfare_50_79 + text_waitbutton + text_end + +MoveAskForgetText: + text "どの わざを" + next "わすれさせたい?" + done + +StopLearningMoveText: + text "それでは<⋯⋯> @" + text_from_ram wStringBuffer2 + text "を" + line "おぼえるのを あきらめますか?" + done + +DidNotLearnMoveText: + text_from_ram wMonOrItemNameBuffer + text "は @" + text_from_ram wStringBuffer2 + text "を" + line "おぼえずに おわった!" + prompt + +AskForgetMoveText: + text_from_ram wMonOrItemNameBuffer + text "は あたらしく" + line "@" + text_from_ram wStringBuffer2 + text "を おぼえたい<⋯⋯>!" + para "しかし @" + text_from_ram wMonOrItemNameBuffer + text "は わざを 4つ" + line "おぼえるので せいいっぱいだ!" + para "@" + text_from_ram wStringBuffer2 + text "の かわりに" + line "ほかの わざを わすれさせますか?" + done + +Text_1_2_and_Poof: + text "1 2の <⋯⋯>@" + text_exit + start_asm + push de + ld de, SFX_SWITCH_POKEMON + call PlaySFX + pop de + ld hl, MoveForgotText + ret + +MoveForgotText: + text " ポカン!@" + text_exit + text "" + para "@" + text_from_ram wMonOrItemNameBuffer + text "は @" + text_from_ram wStringBuffer1 + text "の" + line "つかいかたを きれいに わすれた!" + para "そして<⋯⋯>!" + prompt + +MoveCantForgetHMText: + text "それは たいせつなわざです" + line "わすれさせることは できません!" + prompt diff --git a/engine/pokemon/nickname_unused.asm b/engine/pokemon/nickname_unused.asm new file mode 100644 index 0000000..95551c7 --- /dev/null +++ b/engine/pokemon/nickname_unused.asm @@ -0,0 +1,100 @@ +INCLUDE "constants.asm" + +SECTION "engine/pokemon/nickname_unused.asm", ROMX + +; Unused. Also leftover from Generation I. +AskName_Old: + push hl + call LoadStandardMenuHeader + ld a, [wBattleMode] + dec a + hlcoord 1, 0 + ld b, 4 + ld c, 10 + call z, ClearBox + + ld a, [wCurPartySpecies] + ld [wNamedObjectIndexBuffer], a + call GetPokemonName +; Test for being in debug field mode that doesn't go anywhere... maybe the name screen was skipped in debug mode? + ld a, [wDebugFlags] + bit 1, a + pop hl + push hl + ld hl, AskGiveNickname_Old + call PrintText + call YesNoBox + pop hl + jr c, .declined_nickname + + push hl + ld e, l + ld d, h + ld a, BANK(NamingScreen) + ld b, NAME_MON + ld hl, NamingScreen + call FarCall_hl + call ClearBGPalettes + call ClearTileMap + call ClearSprites + call GetMemSGBLayout + call SetPalettes + ld a, [wBattleMode] + and a + jr nz, .in_battle + call LoadFontExtra + call ReloadSpritesAndFont + jr .done + +.in_battle + callfar _LoadHPBar +.done + pop hl + ld a, [hl] + cp "@" + jr nz, .not_terminated ; shouldn't this be the other way around? 'jr z' instead of 'jr nz'? +.declined_nickname + ld d, h + ld e, l + ld hl, wStringBuffer1 + ld bc, MON_NAME_LENGTH + call CopyBytes +.not_terminated + call CloseWindow + ret + +AskGiveNickname_Old: + text_from_ram wStringBuffer1 + text "に" + line "ニックネームを つけますか?" + done + +Unreferenced_DisplayNameRaterScreen: + ld de, wMiscStringBuffer + push de + ld hl, NamingScreen + ld b, NAME_MON + ld a, BANK(NamingScreen) + call FarCall_hl + call ClearBGPalettes + call RestoreScreenAndReloadTiles + call UpdateTimePals + pop de + ld a, [de] + cp "@" + jr z, .empty_name + ld hl, wPartyMonNicknames + ld bc, MON_NAME_LENGTH + ld a, [wCurPartyMon] + call AddNTimes + ld e, l + ld d, h + ld hl, wMiscStringBuffer + ld bc, MON_NAME_LENGTH + call CopyBytes + and a + ret + +.empty_name + scf + ret diff --git a/engine/sprites/sprites.asm b/engine/sprites/sprites.asm index ae803eb..239839b 100644 --- a/engine/sprites/sprites.asm +++ b/engine/sprites/sprites.asm @@ -7,11 +7,11 @@ RefreshSprites: call CheckInteriorMap jr c, .outdoor call AddIndoorSprites - call LoadUsedSpritesGfx + call LoadUsedSpritesGFX ret .outdoor call AddOutdoorSprites - call LoadUsedSpritesGfx + call LoadUsedSpritesGFX ret CheckInteriorMap: @@ -35,49 +35,50 @@ AddIndoorSprites: ld [wUsedSprites], a ld hl, wMap2ObjectSprite ld a, 2 -.asm_14070 +.loop push af ld a, [hl] and a - jr z, .asm_1408d + jr z, .next ld c, a call IsAnimatedSprite - jr nc, .static_sprite + jr nc, .animated_sprite ld de, wUsedStaticSprites ld b, 2 - call Function14099 - jr .asm_1408d -.static_sprite + call AddSpriteGFX + jr .next + +.animated_sprite ld de, wUsedNPCSprites ld b, 8 - call Function14099 -.asm_1408d - ld de, $10 + call AddSpriteGFX +.next + ld de, MAPOBJECT_LENGTH add hl, de pop af inc a - cp $10 - jp nz, .asm_14070 + cp NUM_OBJECTS + jp nz, .loop ret -Function14099: +AddSpriteGFX: .loop ld a, [de] and a - jr z, .asm_140a5 + jr z, .slot_found cp c ret z dec b - jr z, .asm_140a8 + jr z, .done inc de jr .loop -.asm_140a5 +.slot_found ld a, c ld [de], a ret -.asm_140a8 +.done scf ret @@ -100,72 +101,73 @@ AddOutdoorSprites: ld de, wUsedNPCSprites ld bc, SPRITE_SET_LENGTH call CopyBytes - ld a, [wd642] + ld a, [wUnusedAddOutdoorSpritesReturnValue] ld c, a pop af - ld [wd642], a + ld [wUnusedAddOutdoorSpritesReturnValue], a ret -Function140d9: +LoadStandingSpritesGFX: ld hl, wSpriteFlags ld a, [hl] push af - res 7, [hl] - set 6, [hl] - call LoadUsedSpritesGfx + res SPRITES_SKIP_STANDING_GFX_F, [hl] + set SPRITES_SKIP_WALKING_GFX_F, [hl] + call LoadUsedSpritesGFX pop af ld [wSpriteFlags], a ret -Function140ea: +LoadWalkingSpritesGFX: ld hl, wSpriteFlags ld a, [hl] push af - set 7, [hl] - res 6, [hl] - call LoadUsedSpritesGfx + set SPRITES_SKIP_STANDING_GFX_F, [hl] + res SPRITES_SKIP_WALKING_GFX_F, [hl] + call LoadUsedSpritesGFX pop af ld [wSpriteFlags], a ret -LoadUsedSpritesGfx: +LoadUsedSpritesGFX: ld hl, vNPCSprites ld de, wUsedSprites ld b, SPRITE_SET_LENGTH ld c, 0 -.asm_14105 +.loop push bc push de push hl ld a, [de] and a - jr z, .asm_1410f + jr z, .skip call LoadOverworldSprite -.asm_1410f +.skip pop hl - ld bc, $c0 + ld bc, $c tiles add hl, bc pop de inc de pop bc inc c dec b - jr nz, .asm_14105 + jr nz, .loop ld a, [de] and a - jr z, .asm_14127 + jr z, .no_still_sprite_1 + push de - ld hl, vNPCSprites + $780 + ld hl, vNPCSprites tile $78 call LoadOverworldSprite pop de -.asm_14127 +.no_still_sprite_1 inc de ld a, [de] and a - jr z, .asm_14132 - ld hl, vNPCSprites + $7c0 + jr z, .no_still_sprite_2 + ld hl, vNPCSprites tile $7c call LoadOverworldSprite -.asm_14132 +.no_still_sprite_2 ret Function14133: @@ -181,14 +183,15 @@ Function14133: ld a, c jr LoadOverworldSprite -Function14144: +LoadOverworldSprite_PlayerSlot: ld a, c ld hl, vNPCSprites jr LoadOverworldSprite -Function1414a: +; Unreferenced +LoadOverworldSprite_FollowerSlot: ld a, c - ld hl, vNPCSprites + $c0 + ld hl, vNPCSprites tile $0c jr LoadOverworldSprite LoadOverworldSprite: @@ -198,7 +201,7 @@ LoadOverworldSprite: push hl push de ld a, [wSpriteFlags] - bit 7, a + bit SPRITES_SKIP_STANDING_GFX_F, a jr nz, .dont_copy call Get2bpp .dont_copy @@ -215,7 +218,7 @@ LoadOverworldSprite: call IsAnimatedSprite ret c ld a, [wSpriteFlags] - bit 6, a + bit SPRITES_SKIP_WALKING_GFX_F, a ret nz call Get2bpp ret diff --git a/engine/trainer_gear.asm b/engine/trainer_gear.asm index 2b27c91..ef1afaa 100644 --- a/engine/trainer_gear.asm +++ b/engine/trainer_gear.asm @@ -53,10 +53,10 @@ DEF TRAINERGEAR_END_LOOP_F EQU 7 const TRAINERGEAR_RADIOSTATE_TURNBACKDIAL OpenTrainerGear: - ld hl, wce5f + ld hl, wOptions ld a, [hl] push af - set 4, [hl] + set NO_TEXT_SCROLL_F, [hl] ldh a, [hMapAnims] push af xor a @@ -64,24 +64,24 @@ OpenTrainerGear: ldh a, [hJoypadSum] push af - ld a, [wVramState] + ld a, [wStateFlags] push af xor a - ld [wVramState], a + ld [wStateFlags], a call TrainerGear_Init call DelayFrame .loop call TrainerGear_Loop jr nc, .loop pop af - ld [wVramState], a + ld [wStateFlags], a pop af ldh [hJoypadSum], a pop af ldh [hMapAnims], a pop af - ld [wce5f], a + ld [wOptions], a call ClearJoypad ret @@ -291,7 +291,7 @@ TrainerGear_Map: coord hl, 0, 3 call DecompTownMapTilemap call WaitBGMap - call PlaceGoldInMap + call TownMap_InitPlayerIcon ld hl, SPRITEANIMSTRUCT_YCOORD add hl, bc ld a, [hl] diff --git a/home/audio.asm b/home/audio.asm index d79435e..b998ecd 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -145,16 +145,16 @@ WaitSFX:: push hl .loop ld hl, wChannel5Flags1 - bit 0, [hl] + bit SOUND_CHANNEL_ON, [hl] jr nz, .loop ld hl, wChannel6Flags1 - bit 0, [hl] + bit SOUND_CHANNEL_ON, [hl] jr nz, .loop ld hl, wChannel7Flags1 - bit 0, [hl] + bit SOUND_CHANNEL_ON, [hl] jr nz, .loop ld hl, wChannel8Flags1 - bit 0, [hl] + bit SOUND_CHANNEL_ON, [hl] jr nz, .loop pop hl ret @@ -190,16 +190,16 @@ FadeToMapMusic:: call GetMapMusic ld a, [wMapMusic] cp e - jr z, .jump + jr z, .dont_change ld a, 8 ld [wMusicFade], a ld a, e ld [wMusicFadeID], a ld a, d - ld [wMusicFadeID+1], a + ld [wMusicFadeID + 1], a ld a, e ld [wMapMusic], a -.jump +.dont_change pop af pop bc pop de @@ -234,13 +234,13 @@ SpecialMapMusic:: ld a, [wPlayerState] and a jr z, .normal - cp $02 - jr z, .state2 + cp PLAYER_SKATE + jr z, .skateboard ld de, MUSIC_BICYCLE scf ret -.state2 +.skateboard ld de, MUSIC_NONE scf ret diff --git a/home/init.asm b/home/init.asm index 5a37a05..8f3c16e 100644 --- a/home/init.asm +++ b/home/init.asm @@ -100,7 +100,7 @@ Init: ldh [rLCDC], a call DisableAudio - call _2007 + call LoadSGBBorderOptions predef CheckSGB ld a, $1F ldh [rIE], a diff --git a/home/joypad.asm b/home/joypad.asm index 1751736..5f48f1d 100644 --- a/home/joypad.asm +++ b/home/joypad.asm @@ -23,7 +23,7 @@ Joypad:: ; hJoypadDown: pressed this frame (delta) ; hJoypadState: currently pressed ; hJoypadSum: pressed so far - ld a, [$d4ab] + ld a, [wJoypadFlags] and $d0 ret nz ld a, 1 << 5 ; select direction keys diff --git a/home/map.asm b/home/map.asm index 5042301..fb3a35c 100644 --- a/home/map.asm +++ b/home/map.asm @@ -311,7 +311,7 @@ MapSetup_22af:: call VolumeOff call SwitchToMapBank call SetUpMapBuffer - call InitUnknownBuffercc9e + call InitObjectMasks call LoadGraphics call ChangeMap call LoadMapTimeOfDay @@ -334,7 +334,7 @@ MapSetup_Continue:: callfar LoadSpawnPoint call CopyMapPartialAndAttributes call SetUpMapBuffer - call InitUnknownBuffercc9e + call InitObjectMasks call RefreshPlayerCoords call GetCoordOfUpperLeftCorner call LoadGraphics @@ -364,7 +364,7 @@ MapSetup_Warp:: ld [wMapId], a call CopyMapPartialAndAttributes call SetUpMapBuffer - call InitUnknownBuffercc9e + call InitObjectMasks call RestoreFacingAfterWarp call RefreshPlayerCoords call LoadGraphics @@ -439,30 +439,30 @@ InitializeVisibleSprites:: FadeIn:: ; This is not OverworldFadeIn, but I don't know what it is call InitToolgearBuffer call RefreshTiles - ld hl, wVramState - set 0, [hl] + ld hl, wStateFlags + set SPRITE_UPDATES_DISABLED_F, [hl] call Function2407 - callfar _UpdateSprites + callfar InitSprites call DelayFrame callfar OverworldFadeIn ret Function2407:: - ld a, NO_MOVEMENT + ld a, movement_step_sleep ld [wPlayerMovement], a xor a ld [wPlayerStepFrame], a ld a, [wPlayerFacing] - and $c + and %00001100 ld [wPlayerFacing], a ld a, [wPlayerTile] - and $f0 - cp $70 + and COLLISION_TYPE_MASK + cp HI_NYBBLE_WARPS ret nz ld a, [wPlayerTile] - cp $72 + cp COLLISION_STEPS ret z - cp $70 + cp COLLISION_CARPET ret z cp $78 ret z @@ -478,7 +478,7 @@ MapSetup_Connection:: call EnterMapConnection call CopyMapPartialAndAttributes call SetUpMapBuffer - call InitUnknownBuffercc9e + call InitObjectMasks call RefreshPlayerCoords call InitializeVisibleSprites call ChangeMap @@ -915,7 +915,7 @@ ReadObjectEvents:: ClearObjectStructs:: xor a - ld [wUnkObjectStruct], a ; TODO + ld [wReservedObjectStruct], a ld hl, wObject2Struct ld de, OBJECT_LENGTH ld c, 7 @@ -925,8 +925,8 @@ ClearObjectStructs:: dec c jr nz, .clear_struct - ld hl, wCmdQueue - ld de, CMDQUEUE_ENTRY_SIZE + ld hl, wMinorObjects + ld de, MINOR_OBJECT_LENGTH ld c, 4 xor a .clear_cmd_queue @@ -945,13 +945,14 @@ ReadWord:: ; TODO: is this used? ret -InitUnknownBuffercc9e:: +; Initializes all object masks except the first two entries: the player and follower. +InitObjectMasks:: xor a - ld hl, wUnknownWordcc9c + ld hl, wObjectMasks ld [hli], a ld [hli], a - ld hl, wUnknownBuffercc9e ; useless - ld bc, 14 ; TODO: constantify this + ld hl, wObjectMasks + 2 + ld bc, NUM_OBJECTS - 2 ld a, $ff call ByteFill ld hl, wUnknownMapPointer @@ -973,7 +974,7 @@ InitUnknownBuffercc9e:: ld c, [hl] inc hl ld b, [hl] - ld de, wUnknownBuffercc9e - 2 + ld de, wObjectMasks .next ld a, [bc] inc bc @@ -989,8 +990,8 @@ InitUnknownBuffercc9e:: jr .next .null - ld hl, wUnknownBuffercc9e - ld bc, 14 ; TODO: constantify this + ld hl, wObjectMasks + 2 + ld bc, NUM_OBJECTS - 2 xor a call ByteFill .done @@ -1105,7 +1106,7 @@ Function27C7:: ; TODO ret .exterior - ld hl, $D4B2 ; TODO: figure out what this is + ld hl, wDigWarpNumber ld a, [wPrevWarp] ld [hli], a ld a, [wMapGroup] @@ -1619,7 +1620,7 @@ Function2ae5:: ret nz call Function2c4a jr nc, .loop - farcall Function824c + farcall CheckObjectEnteringVisibleRange ld a, [wc5ed] bit 6, a jr nz, .loop @@ -1636,8 +1637,8 @@ Function2b39:: ld hl, wDebugFlags res 6, [hl] res 7, [hl] - ld hl, wVramState - res 7, [hl] + ld hl, wStateFlags + res SCRIPTED_MOVEMENT_STATE_F, [hl] ld a, $0 call WriteIntod637 ret @@ -1645,15 +1646,15 @@ Function2b39:: Function2b52:: .asm_2b52: call UpdateTime - ld a, [wVramState] - bit 7, a + ld a, [wStateFlags] + bit SCRIPTED_MOVEMENT_STATE_F, a jr z, Function2b39 ldh a, [hMapEntryMethod] and a ret nz call Function2c4a jr nc, .asm_2b52 - farcall Function824c + farcall CheckObjectEnteringVisibleRange call CheckMovingOffEdgeOfMap ret c call WarpCheck @@ -1681,22 +1682,22 @@ Function2b87:: callfar OverworldMovementCheck call Function2ba8 jr nc, .asm_2b87 - farcall Function824c + farcall CheckObjectEnteringVisibleRange jr .asm_2b87 Function2ba8:: ldh a, [hROMBank] push af - ld a, BANK(Function50b9) + ld a, BANK(HandleNPCStep) call Bankswitch - call Function50b9 - call Function18a0 + call HandleNPCStep + call LoadMinorObjectGFX ld a, BANK(Functiond6e4) call Bankswitch call Functiond6e4 - ld a, BANK(_UpdateSprites) + ld a, BANK(InitSprites) call Bankswitch - call _UpdateSprites + call InitSprites call DelayFrame call UpdateToolgear ld hl, wToolgearFlags @@ -1705,10 +1706,10 @@ Function2ba8:: pop af call Bankswitch and a - ld a, [wcb6e] - bit 5, a + ld a, [wPlayerStepFlags] + bit PLAYERSTEP_CONTINUE_F, a ret z - bit 6, a + bit PLAYERSTEP_STOP_F, a jr z, Function2ba8 scf ret diff --git a/home/map_objects.asm b/home/map_objects.asm index 665e721..1f95d8f 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -2,8 +2,8 @@ INCLUDE "constants.asm" SECTION "home/map_objects.asm", ROM0 -Function15b5:: - callfar SpawnPlayer +SpawnPlayer:: + callfar _SpawnPlayer ret GetMapObject:: @@ -20,30 +20,30 @@ GetMapObjectAttrPtr:: add hl, de ret -Function15d1:: +Unreferenced_Function15d1:: ldh [hMapObjectIndex], a call GetMapObject - call Function40eb + call OpenDebugMenu ret -Function15da:: +Unreferenced_Function15da:: ldh [hMapObjectIndex], a - callfar Function8131 + callfar UnmaskObject ldh a, [hMapObjectIndex] call GetMapObject - call Function40eb + call OpenDebugMenu ret -Function15ed:: +CopyMapObjectToReservedObjectStruct:: ldh [hMapObjectIndex], a call GetMapObject - ld a, $0 + ld a, UNKNOWN_STRUCT ldh [hObjectStructIndex], a - ld de, wObjectStructs + ld de, wReservedObjectStruct callfar CopyMapObjectToObjectStruct ret -Function1602:: +CopyMapObjectToFollowerObjectStruct:: ldh [hMapObjectIndex], a call GetMapObject ld a, FOLLOWER_STRUCT @@ -52,29 +52,29 @@ Function1602:: callfar CopyMapObjectToObjectStruct ret -Function1617:: +ApplyDeletionToMapObject:: ldh [hMapObjectIndex], a call GetMapObject ld hl, MAPOBJECT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] - cp $ff + cp -1 ret z - ld [hl], $ff + ld [hl], -1 push af ld d, a ld a, [wObjectFollow_Leader] cp d - jr nz, .asm_1633 - ld a, $ff + jr nz, .not_leader + ld a, -1 ld [wObjectFollow_Leader], a -.asm_1633: +.not_leader ld a, [wObjectFollow_Follower] cp d - jr nz, .asm_163e - ld a, $0 + jr nz, .not_follower + ld a, 0 ld [wObjectFollow_Follower], a -.asm_163e: +.not_follower pop af call GetObjectStruct ld bc, OBJECT_LENGTH @@ -82,9 +82,9 @@ Function1617:: call ByteFill ret -Function164a:: - call Function1617 - callfar Function8125 +DeleteObjectStruct:: + call ApplyDeletionToMapObject + callfar MaskObject ret CopyPlayerObjectTemplate:: @@ -103,18 +103,19 @@ CopyPlayerObjectTemplate:: Spawn_ConvertCoords:: call GetMapObject ld a, [wXCoord] - add $4 + add 4 ld hl, MAPOBJECT_X_COORD add hl, bc ld [hl], a ld a, [wYCoord] - add $4 + add 4 ld hl, MAPOBJECT_Y_COORD add hl, bc ld [hl], a ret -Function1680:: +; Unreferenced +RelocateMapObjectToStruct:: call CheckObjectVisibility ret c ld hl, OBJECT_MAP_X @@ -140,23 +141,23 @@ DeleteMapObject:: add hl, bc ld a, [hl] push af - ld [hl], $ff + ld [hl], -1 inc hl ld bc, MAPOBJECT_LENGTH - 1 xor a call ByteFill pop af - cp $ff + cp -1 ret z - cp $a + cp NUM_OBJECT_STRUCTS ret nc ld b, a ld a, [wObjectFollow_Leader] cp b - jr nz, .asm_16c5 - ld a, $ff + jr nz, .not_leader + ld a, -1 ld [wObjectFollow_Leader], a -.asm_16c5: +.not_leader: ld a, b call GetObjectStruct ld bc, OBJECT_LENGTH @@ -175,18 +176,18 @@ LoadMovementDataPointer:: ld a, [wMovementObject] call CheckObjectVisibility ret c - ld hl, $3 + ld hl, OBJECT_MOVEMENT_TYPE add hl, bc - ld [hl], $19 - ld hl, $8 + ld [hl], SPRITEMOVEFN_SCRIPTED + ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], $0 - ld hl, wVramState - set 7, [hl] + ld [hl], STEP_TYPE_RESET + ld hl, wStateFlags + set SCRIPTED_MOVEMENT_STATE_F, [hl] and a ret -Function16fb:: +LoadMovementDataPointer_KeepStateFlags:: ld [wMovementObject], a ldh a, [hROMBank] ld [wMovementDataBank], a @@ -196,14 +197,16 @@ Function16fb:: ld [wMovementDataAddr + 1], a ld a, [wMovementObject] call CheckObjectVisibility - jr c, .asm_171f + jr c, .return ; as opposed to just "ret c"? + ld hl, OBJECT_MOVEMENT_TYPE add hl, bc - ld [hl], $19 + ld [hl], SPRITEMOVEFN_SCRIPTED ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], $0 -.asm_171f: + ld [hl], STEP_TYPE_RESET + +.return ret CheckObjectVisibility:: @@ -223,46 +226,49 @@ CheckObjectVisibility:: scf ret -PushToCmdQueue:: +; Spawns a minor object attached to the object currently in hMapObjectIndex. +; 'de' is a table containing initialization values in the following order: +; Type, animation, vTiles offset, variables 1-3. +SpawnMinorObject:: push de - call GetCmdQueueEmptySlot + call GetMinorObjectEmptySlot pop de ret c ld b, h ld c, l ld a, [de] inc de - ld hl, $1 + ld hl, MINOR_OBJECT_TYPE add hl, bc ld [hl], a ld a, [de] inc de - ld hl, $2 + ld hl, MINOR_OBJECT_ANIM add hl, bc ld [hl], a ld a, [de] inc de - ld hl, $3 + ld hl, MINOR_OBJECT_SPRITE_TILE add hl, bc ld [hl], a ld a, [de] inc de - ld hl, $d + ld hl, MINOR_OBJECT_VAR1 add hl, bc ld [hl], a ld a, [de] inc de - ld hl, $e + ld hl, MINOR_OBJECT_VAR2 add hl, bc ld [hl], a ld a, [de] inc de - ld hl, $f + ld hl, MINOR_OBJECT_VAR3 add hl, bc ld [hl], a ldh a, [hMapObjectIndex] inc a - ld hl, $0 + ld hl, MINOR_OBJECT_PARENT_OBJECT add hl, bc ld [hl], a push bc @@ -271,47 +277,47 @@ PushToCmdQueue:: ld d, b ld e, c pop bc - ld hl, $18 + ld hl, OBJECT_SPRITE_X add hl, de ld a, [hl] - ld hl, $4 + ld hl, MINOR_OBJECT_X_POS add hl, bc ld [hl], a - ld hl, $19 + ld hl, OBJECT_SPRITE_Y add hl, de ld a, [hl] - ld hl, $5 + ld hl, MINOR_OBJECT_Y_POS add hl, bc ld [hl], a ret -GetCmdQueueEmptySlot:: - ld hl, wCmdQueue - ld de, CMDQUEUE_ENTRY_SIZE +GetMinorObjectEmptySlot:: + ld hl, wMinorObjects + ld de, MINOR_OBJECT_LENGTH ld a, 1 -.asm_1796: +.loop ldh [hObjectStructIndex], a ld a, [hl] and a - jr z, .asm_17a6 + jr z, .done add hl, de ldh a, [hObjectStructIndex] inc a - cp 4 + 1 - jr nz, .asm_1796 + cp NUM_MINOR_OBJECTS + 1 + jr nz, .loop scf ret -.asm_17a6: +.done xor a ret UpdateSprites:: - ld a, [wVramState] - bit 0, a + ld a, [wStateFlags] + bit SPRITE_UPDATES_DISABLED_F, a ret z - callfar Function5007 - callfar _UpdateSprites + callfar UpdateAllObjectsFrozen + callfar InitSprites ret GetObjectStruct:: @@ -323,18 +329,14 @@ GetObjectStruct:: ld c, l ret -Function17cb:: - add $10 - -Function17cd:: +; Unreferenced +Cosine:: +; a = d * cos(a * pi/32) + add %010000 ; cos(x) = sin(x + pi/2) + ; fallthrough +Sine:: ld e, a - ldh a, [hROMBank] - push af - ld a, BANK(Function862e) - call Bankswitch - call Function862e - pop af - call Bankswitch + homecall _Sine ret ; sets carry flag if the sprite data includes "in-motion" sprites @@ -366,101 +368,104 @@ IsAnimatedSprite:: db SPRITE_BOULDER db -1 -Function17f9:: +FreezeAllOtherObjects:: call GetMapObject - ld hl, $0 + ld hl, MAPOBJECT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] - cp $ff + cp -1 ret z call GetObjectStruct push bc - call Function1828 + call FreezeAllObjects pop bc - ld hl, $5 + ld hl, OBJECT_FLAGS2 add hl, bc - res 5, [hl] + res FROZEN_F, [hl] ret -Function1813:: +; Unreferenced +FreezeObject:: call GetMapObject - ld hl, $0 + ld hl, MAPOBJECT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] - cp $ff + cp -1 ret z call GetObjectStruct - ld hl, $5 + ld hl, OBJECT_FLAGS2 add hl, bc - set 5, [hl] + set FROZEN_F, [hl] ret -Function1828:: +FreezeAllObjects:: ld bc, wObjectStructs xor a -.asm_182c: +.loop push af ld hl, OBJECT_SPRITE add hl, bc ld a, [hl] and a - jr z, .asm_183b + jr z, .next ld hl, OBJECT_FLAGS2 add hl, bc - set 5, [hl] -.asm_183b: + set FROZEN_F, [hl] +.next ld hl, OBJECT_LENGTH add hl, bc ld b, h ld c, l pop af inc a - cp 10 - jr nz, .asm_182c + cp NUM_OBJECT_STRUCTS + jr nz, .loop ret -Function1848:: +UnfreezeAllObjects:: push bc ld bc, wObjectStructs xor a -.asm_184d: +.loop push af ld hl, OBJECT_SPRITE add hl, bc ld a, [hl] and a - jr z, .asm_185c + jr z, .next ld hl, OBJECT_FLAGS2 add hl, bc - res 5, [hl] -.asm_185c: + res FROZEN_F, [hl] +.next ld hl, OBJECT_LENGTH add hl, bc ld b, h ld c, l pop af inc a - cp 10 - jr nz, .asm_184d + cp NUM_OBJECT_STRUCTS + jr nz, .loop pop bc ret -Function186a:: +UnfreezeObject:: call GetMapObject - ld hl, $0 + ld hl, MAPOBJECT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] - cp $ff + cp -1 ret z + call GetObjectStruct ld hl, OBJECT_FLAGS2 add hl, bc - res 5, [hl] + res FROZEN_F, [hl] ret -Function187f:: +; Iterates through a dba function table at 'hl' that is 16 entries long. +Unreferenced_FarCallLoop:: xor a -.asm_1880: +.loop push af push hl ld b, a @@ -481,60 +486,55 @@ Function187f:: pop af inc a cp 16 - jr nz, .asm_1880 + jr nz, .loop ret ._hl_: jp hl -Function18a0:: - ld a, [wcb70] +LoadMinorObjectGFX:: + ld a, [wQueuedMinorObjectGFX] and a ret z - ldh a, [hROMBank] - push af - ld a, BANK(Function83e8) - call Bankswitch - call Function83e8 - pop af - call Bankswitch + homecall _LoadMinorObjectGFX ret -Function18b4:: +FreezePlayer:: ld bc, wPlayerStruct ld hl, OBJECT_FLAGS1 add hl, bc - set 3, [hl] - set 2, [hl] - set 1, [hl] + set SLIDING_F, [hl] + set FIXED_FACING_F, [hl] + set WONT_DELETE_F, [hl] ld hl, OBJECT_FLAGS2 add hl, bc - set 5, [hl] - call Function18e5 + set FROZEN_F, [hl] + call ForceObjectToFaceDirection ret -Function18cc:: +UnfreezePlayer:: ld hl, wPlayerFlags - res 3, [hl] - res 2, [hl] - res 1, [hl] + res SLIDING_F, [hl] + res FIXED_FACING_F, [hl] + res WONT_DELETE_F, [hl] ld hl, wPlayerFlags + 1 - res 5, [hl] + res FROZEN_F, [hl] ld hl, wPlayerMovementType - ld [hl], $10 + ld [hl], SPRITEMOVEFN_OBEY_DPAD ld hl, wPlayerStepType - ld [hl], $0 + ld [hl], STEP_TYPE_RESET ret -Function18e5:: +; Freezes object at 'bc' by making its movement function force it to keep facing the same direction. +ForceObjectToFaceDirection:: ld hl, OBJECT_DIRECTION add hl, bc ld a, [hl] srl a srl a - and $3 + maskbits NUM_DIRECTIONS ld e, a - ld d, $0 + ld d, 0 ld hl, .Data add hl, de ld a, [hl] @@ -543,34 +543,37 @@ Function18e5:: ld [hl], a ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], $0 + ld [hl], STEP_TYPE_RESET ret .Data: - db $05, $06, $07, $08 + db SPRITEMOVEFN_TURN_DOWN + db SPRITEMOVEFN_TURN_UP + db SPRITEMOVEFN_TURN_LEFT + db SPRITEMOVEFN_TURN_RIGHT -Function1908:: +CenterObject:: call CheckObjectVisibility ret c push bc - call Function191d + call .ClearCenteredObject pop bc ld hl, OBJECT_FLAGS1 add hl, bc - set 7, [hl] + set CENTERED_OBJECT_F, [hl] ldh a, [hObjectStructIndex] ld [wCenteredObject], a ret -Function191d:: +.ClearCenteredObject: ld a, [wCenteredObject] - cp $ff + cp -1 ret z call GetObjectStruct ld hl, OBJECT_FLAGS1 add hl, bc - res 7, [hl] - ld a, $ff + res CENTERED_OBJECT_F, [hl] + ld a, -1 ld [wCenteredObject], a ret @@ -604,10 +607,10 @@ SetFollowerIfVisible:: ret c ld hl, OBJECT_MOVEMENT_TYPE add hl, bc - ld [hl], $18 + ld [hl], SPRITEMOVEFN_FOLLOW_2 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], $0 + ld [hl], STEP_TYPE_RESET ldh a, [hObjectStructIndex] ld [wObjectFollow_Follower], a ret @@ -616,58 +619,58 @@ ResetFollower:: ld a, [wObjectFollow_Follower] and a ret z - cp $ff + cp -1 ret z call GetObjectStruct - call Function18e5 + call ForceObjectToFaceDirection ret -Function197e:: +ResetObjectLowPriority:: call CheckObjectVisibility ret c ld hl, OBJECT_FLAGS2 add hl, bc - res 0, [hl] + res LOW_PRIORITY_F, [hl] ret -Function1989:: +SetObjectLowPriority:: call CheckObjectVisibility ret c ld hl, OBJECT_FLAGS2 add hl, bc - set 0, [hl] + set LOW_PRIORITY_F, [hl] ret -Function1994:: +ObjectUseOBP0:: call CheckObjectVisibility ret c ld hl, OBJECT_FLAGS2 add hl, bc - res 4, [hl] + res USE_OBP1_F, [hl] ret -Function199f:: +ObjectUseOBP1:: call CheckObjectVisibility ret c ld hl, OBJECT_FLAGS2 add hl, bc - set 4, [hl] + set USE_OBP1_F, [hl] ret -Function19aa:: +SetObjFlags2_7_IfVisible:: call CheckObjectVisibility ret c ld hl, OBJECT_FLAGS2 add hl, bc - set 7, [hl] + set OBJ_FLAGS2_7_F, [hl] ret -Function19b5:: +ResetObjFlags2_7_IfVisible:: call CheckObjectVisibility ret c ld hl, OBJECT_FLAGS2 add hl, bc - res 7, [hl] + res OBJ_FLAGS2_7_F, [hl] ret SetObjectFacing:: @@ -679,7 +682,7 @@ SetObjectFacing:: ld a, d add a add a - and $c + and %00001100 ld hl, OBJECT_DIRECTION add hl, bc ld [hl], a diff --git a/home/menu_window.asm b/home/menu_window.asm index 811ed67..48382d8 100644 --- a/home/menu_window.asm +++ b/home/menu_window.asm @@ -27,7 +27,7 @@ SetMenuAttributes:: Get2DMenuJoypad:: call Place2DMenuCursor Get2DMenuJoypad_NoPlaceCursor:: - ld hl, w2DMenuFlags + 1 + ld hl, w2DMenuFlags2 res 7, [hl] .loop: call Move2DMenuCursor @@ -37,7 +37,7 @@ Get2DMenuJoypad_NoPlaceCursor:: call UpdateTimeOfDayPalettes call Menu_WasButtonPressed jr c, .asm_1a9f - ld a, [w2DMenuFlags] + ld a, [w2DMenuFlags1] bit 7, a jp nz, .done jr .asm_1a8a @@ -45,7 +45,7 @@ Get2DMenuJoypad_NoPlaceCursor:: .asm_1a9f: call _2DMenuInterpretJoypad jp c, .done - ld a, [w2DMenuFlags] + ld a, [w2DMenuFlags1] bit 7, a jr nz, .done ldh a, [hJoySum] @@ -66,7 +66,7 @@ Get2DMenuJoypad_NoPlaceCursor:: ret Menu_WasButtonPressed:: - ld a, [w2DMenuFlags] + ld a, [w2DMenuFlags1] bit 6, a jr z, .asm_1ad6 farcall PlaySpriteAnimationsAndDelayFrame @@ -100,7 +100,7 @@ _2DMenuInterpretJoypad:: ret .SetFlag15AndCarry: - ld hl, w2DMenuFlags + 1 + ld hl, w2DMenuFlags2 set 7, [hl] scf ret @@ -115,7 +115,7 @@ _2DMenuInterpretJoypad:: ret .asm_1b1a: - ld a, [w2DMenuFlags] + ld a, [w2DMenuFlags1] bit 5, a jr nz, .asm_1b28 bit 3, a @@ -138,7 +138,7 @@ _2DMenuInterpretJoypad:: ret .asm_1b36: - ld a, [w2DMenuFlags] + ld a, [w2DMenuFlags1] bit 5, a jr nz, .asm_1b44 bit 2, a @@ -162,7 +162,7 @@ _2DMenuInterpretJoypad:: ret .asm_1b54: - ld a, [w2DMenuFlags] + ld a, [w2DMenuFlags1] bit 4, a jr nz, .asm_1b62 bit 1, a @@ -186,7 +186,7 @@ _2DMenuInterpretJoypad:: ret .asm_1b74: - ld a, [w2DMenuFlags] + ld a, [w2DMenuFlags1] bit 4, a jr nz, .asm_1b82 bit 0, a @@ -291,8 +291,8 @@ ExitMenu:: ret Function1c0a:: - ld a, [wVramState] - bit 0, a + ld a, [wStateFlags] + bit SPRITE_UPDATES_DISABLED_F, a ret z xor a diff --git a/home/movement.asm b/home/movement.asm index d691786..125b017 100644 --- a/home/movement.asm +++ b/home/movement.asm @@ -52,41 +52,48 @@ AppendToMovementBufferNTimes:: jr nz, .asm_1a0b ret -ComputePathToWalkToPlayer:: +ComputePathToWalkToDestination:: push af +; compare x coords, load left/right into h, and x distance into d ld a, b sub d ld h, LEFT - jr nc, .asm_1a1d + jr nc, .got_x_distance dec a cpl ld h, RIGHT -.asm_1a1d: + +.got_x_distance ld d, a +; compare y coords, load up/down into l, and y distance into e ld a, c sub e ld l, UP - jr nc, .asm_1a28 + jr nc, .got_y_distance dec a cpl ld l, DOWN -.asm_1a28: + +.got_y_distance ld e, a +; if the x distance is less than the y distance, swap h and l, and swap d and e cp d - jr nc, .asm_1a32 + jr nc, .done ld a, h ld h, l ld l, a ld a, d ld d, e ld e, a -.asm_1a32: +.done pop af ld b, a +; Add movement in the longer direction first... ld a, h call .GetMovementData ld c, d call AppendToMovementBufferNTimes +; ... then add the shorter direction. ld a, l call .GetMovementData ld c, e @@ -97,33 +104,29 @@ ComputePathToWalkToPlayer:: push de push hl ld l, b - ld h, $0 + ld h, 0 add hl, hl add hl, hl ld e, a - ld d, $0 + ld d, 0 add hl, de - ld de, .Data + ld de, .MovementData add hl, de ld a, [hl] pop hl pop de ret -.Data: - db $04, $05, $06, $07 - db $08, $09, $0a, $0b - db $0c, $0d, $0e, $0f - -; slow_step DOWN -; slow_step UP -; slow_step LEFT -; slow_step RIGHT -; step DOWN -; step UP -; step LEFT -; step RIGHT -; big_step DOWN -; big_step UP -; big_step LEFT -; big_step RIGHT +.MovementData: + slow_step DOWN + slow_step UP + slow_step LEFT + slow_step RIGHT + step DOWN + step UP + step LEFT + step RIGHT + big_step DOWN + big_step UP + big_step LEFT + big_step RIGHT diff --git a/home/names.asm b/home/names.asm index 0b88913..df4be83 100644 --- a/home/names.asm +++ b/home/names.asm @@ -61,9 +61,9 @@ GetName:: .done ld a, e - ld [wcd72], a + ld [wNamesPointer], a ld a, d - ld [wcd72 + 1], a + ld [wNamesPointer + 1], a pop de pop bc @@ -230,7 +230,7 @@ IsHMMove:: db MOVE_FLASH db -1 -Unreferenced_GetMoveName:: +GetMoveName:: push hl ld a, MOVE_NAME ld [wNamedObjectTypeBuffer], a diff --git a/home/overworld.asm b/home/overworld.asm index f081402..7259d21 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -43,10 +43,10 @@ Function2c4a: .loop call Function2c5a and a - ld a, [$cb6e] - bit 5, a + ld a, [wPlayerStepFlags] + bit PLAYERSTEP_CONTINUE_F, a ret z - bit 6, a + bit PLAYERSTEP_STOP_F, a jr z, .loop scf ret @@ -54,16 +54,16 @@ Function2c4a: Function2c5a: ldh a, [hROMBank] push af - ld a, BANK(Function50b9) + ld a, BANK(HandleNPCStep) call Bankswitch - call Function50b9 - call Function18a0 + call HandleNPCStep + call LoadMinorObjectGFX ld a, BANK(Functiond4e6) call Bankswitch call Functiond4e6 - ld a, BANK(_UpdateSprites) + ld a, BANK(InitSprites) call Bankswitch - call _UpdateSprites + call InitSprites call DelayFrame call UpdateToolgear ld hl, wToolgearFlags diff --git a/home/print_text.asm b/home/print_text.asm index 1bd838b..d57ddbc 100644 --- a/home/print_text.asm +++ b/home/print_text.asm @@ -3,34 +3,34 @@ INCLUDE "constants.asm" SECTION "home/print_text.asm", ROM0 PrintLetterDelay:: - ld a, [wce5f] - bit 4, a + ld a, [wOptions] + bit NO_TEXT_SCROLL_F, a ret nz - ld a, [wTextBoxFlags] - bit 1, a + ld a, [wTextboxFlags] + bit TEXT_DELAY_F, a ret z push hl push de push bc - ld a, [wTextBoxFlags] - bit 0, a + ld a, [wTextboxFlags] + bit FAST_TEXT_DELAY_F, a jr z, .waitOneFrame - ld a, [wce5f] - and $07 + ld a, [wOptions] + and TEXT_DELAY_MASK jr .initFrameCnt .waitOneFrame - ld a, $01 + ld a, 1 .initFrameCnt ld [wVBlankJoyFrameCounter], a .checkButtons call GetJoypad ldh a, [hJoyState] .checkAButton - bit 0, a ; is the A button pressed? + bit A_BUTTON_F, a jr z, .checkBButton jr .endWait .checkBButton - bit 1, a ; is the B button pressed? + bit B_BUTTON_F, a jr z, .buttonsNotPressed .endWait call DelayFrame diff --git a/home/rtc.asm b/home/rtc.asm index 0f9b242..8351e7a 100644 --- a/home/rtc.asm +++ b/home/rtc.asm @@ -3,8 +3,8 @@ INCLUDE "constants.asm" SECTION "home/rtc.asm", ROM0 UpdateTimeOfDayPalettes: - ld a, [wVramState] - bit 0, a + ld a, [wStateFlags] + bit SPRITE_UPDATES_DISABLED_F, a ret z ; fallthrough diff --git a/home/talk_to_npc.asm b/home/talk_to_npc.asm index 73b0ca5..8756624 100644 --- a/home/talk_to_npc.asm +++ b/home/talk_to_npc.asm @@ -147,7 +147,7 @@ Function30e8:: ret GetFacingPersonText:: - farcall Function776e + farcall CheckFacingObject ret nc call TurnNPCTalkingTo scf @@ -221,7 +221,7 @@ TextboxCleanup: ret Function318f: - callfar Function140ea + callfar LoadWalkingSpritesGFX call RedrawPlayerSprite ret diff --git a/home/text.asm b/home/text.asm index 8cb195d..7b93c14 100644 --- a/home/text.asm +++ b/home/text.asm @@ -405,10 +405,10 @@ ProtectedWaitBGMap:: TextCommandProcessor:: ; Process a string of text commands ; at hl and write text to bc - ld a, [wTextBoxFlags] + ld a, [wTextboxFlags] push af - set 1, a - ld [wTextBoxFlags], a + set TEXT_DELAY_F, a + ld [wTextboxFlags], a ld a, c ld [wTextDest], a ld a, b @@ -420,7 +420,7 @@ NextTextCommand:: cp "@" ; terminator jr nz, .doTextCommand pop af - ld [wTextBoxFlags], a + ld [wTextboxFlags], a ret .doTextCommand push hl diff --git a/home/tilemap.asm b/home/tilemap.asm index 566f712..4230a6f 100644 --- a/home/tilemap.asm +++ b/home/tilemap.asm @@ -2,11 +2,11 @@ INCLUDE "constants.asm" SECTION "home/tilemap.asm", ROM0 -Function360b:: +RestoreScreenAndReloadTiles:: call ClearSprites - ld hl, wVramState - set 0, [hl] - call Function3657 + ld hl, wStateFlags + set SPRITE_UPDATES_DISABLED_F, [hl] + call ReloadSpritesAndFont call LoadFontExtra call GetMemSGBLayout jr WaitBGMap @@ -57,9 +57,9 @@ SetHPPal:: ld [hl], d ret -Function3657:: +ReloadSpritesAndFont:: call DisableLCD - callfar Function140d9 + callfar LoadStandingSpritesGFX call LoadFont call UpdateSprites call EnableLCD diff --git a/home/tileset.asm b/home/tileset.asm index c715ee3..cf36ba0 100644 --- a/home/tileset.asm +++ b/home/tileset.asm @@ -214,7 +214,7 @@ RefreshTiles:: ld d, a ld a, [wPlayerMapY] ld e, a - call GetCoordTile + call GetCoordTileCollision ld [wPlayerTile], a ret @@ -225,11 +225,11 @@ RefreshTiles:: ld e, a push de inc e - call GetCoordTile + call GetCoordTileCollision ld [wTileDown], a pop de dec e - call GetCoordTile + call GetCoordTileCollision ld [wTileUp], a ret @@ -240,11 +240,11 @@ RefreshTiles:: ld e, a push de dec d - call GetCoordTile + call GetCoordTileCollision ld [wTileLeft], a pop de inc d - call GetCoordTile + call GetCoordTileCollision ld [wTileRight], a ret @@ -291,7 +291,7 @@ GetFacingTileCoord:: db 1, 0 dw wTileRight -GetCoordTile:: +GetCoordTileCollision:: ; Get the collision byte for tile d, e call GetBlockLocation ld a, [hl] diff --git a/home/unknown.asm b/home/unknown.asm index e808518..26eef14 100644 --- a/home/unknown.asm +++ b/home/unknown.asm @@ -27,12 +27,12 @@ _1FF4:: call CloseSRAM ret -_2007:: - ld a, BANK(s0_a600) +LoadSGBBorderOptions:: + ld a, BANK(sOptions) call OpenSRAM - ld a, [s0_a600] - and 8 - ld [wce5f], a + ld a, [sOptions] + and SGB_BORDER + ld [wOptions], a call CloseSRAM ret @@ -40,8 +40,8 @@ _2007:: SECTION "home/unknown.asm@Unknown_20f8", ROM0 Function20f8:: - call Function1848 - call Function18cc + call UnfreezeAllObjects + call UnfreezePlayer ret diff --git a/home/unknown_3e32.asm b/home/unknown_3e32.asm new file mode 100644 index 0000000..c99a3f1 --- /dev/null +++ b/home/unknown_3e32.asm @@ -0,0 +1,350 @@ +INCLUDE "constants.asm" + +SECTION "home/unknown_3e32.asm", ROM0 + +; A collection of seemingly old functions that match up with the used functions in some areas, +; but have differing addresses in others. + +; Completely unreferenced except among each other. + +DEF Old_FarCallFunctionAddress EQU $2f91 + +Unreferenced_Function3e32: + xor a + dec a + ldh [hConnectionStripLength], a + jr nz, @ - 25 ; Unknown function + ret + +Unreferenced_GetPartyParamLocation_Old: + push bc + ld hl, wPartyMons + ld c, a + ld b, 0 + add hl, bc + ld bc, PARTYMON_STRUCT_LENGTH + ld a, [wCurPartyMon] + call $3412 ; Early position for AddNTimes + pop bc + ret + +Unreferenced_UseItem_Old: + ld a, BANK(_UseItem) + ld hl, $67C4 ; Early location for _UseItem + jp Old_FarCallFunctionAddress + +Unreferenced_CheckTossableItem_Old: + push hl + push de + push bc + ld hl, $53E5 ; Early location for _CheckTossableItem + ld a, BANK(_CheckTossableItem) + call Old_FarCallFunctionAddress + pop bc + pop de + pop hl + ret + +Unreferenced_GetBattleAnimPointer_Old: + ld a, BANK(BattleAnimations) + ld [MBC3RomBank], a + ldh [hROMBank], a + + ld a, [hli] + ld [wBattleAnimAddress], a + ld a, [hl] + ld [wBattleAnimAddress + 1], a + + ld a, BANK(PlayBattleAnim) + ld [MBC3RomBank], a + ldh [hROMBank], a + ret + +Unreferenced_GetBattleAnimByte_Old: + push hl + push de + + ld hl, wBattleAnimAddress + ld e, [hl] + inc hl + ld d, [hl] + + ld a, BANK(BattleAnimations) + ld [MBC3RomBank], a + ldh [hROMBank], a + + ld a, [de] + ld [wBattleAnimByte], a + inc de + + ld a, BANK(PlayBattleAnim) + ld [MBC3RomBank], a + ldh [hROMBank], a + + ld [hl], d + dec hl + ld [hl], e + + pop de + pop hl + + ld a, [wBattleAnimByte] + ret + +Unreferenced_InitSpriteAnimStruct_Old: + ld [wCurSpriteOAMFlags], a + ldh a, [hROMBank] + push af + ld a, BANK(_InitSpriteAnimStruct) + call $32AB ; Old location of Bankswitch + ld a, [wCurSpriteOAMFlags] + call _InitSpriteAnimStruct + pop af + call $32AB ; Old location of Bankswitch + ret + +; Equivalent to EmptyFunction3cbe +EmptyFunction3eb4: + ret + +Unreferenced_DisableAudio_Old: + push hl + push de + push bc + push af + ldh a, [hROMBank] + push af + ld a, BANK(_DisableAudio) + ld [MBC3RomBank], a ; Unsafe + ldh [hROMBank], a + call _DisableAudio + pop af + ld [MBC3RomBank], a ; Unsafe + ldh [hROMBank], a + pop af + pop bc + pop de + pop hl + ret + +Unused_UpdateSound_Old: + push hl + push de + push bc + push af + ldh a, [hROMBank] + push af + ld a, BANK(_UpdateSound) + ld [MBC3RomBank], a ; Unsafe + ldh [hROMBank], a + call _UpdateSound + pop af + ld [MBC3RomBank], a ; Unsafe + ldh [hROMBank], a + pop af + pop bc + pop de + pop hl + ret + +Unreferenced_LoadMusicByte_Old: + ld [MBC3RomBank], a ; Unsafe + ldh [hROMBank], a + ld a, [de] + push af + ld a, BANK(_UpdateSound) + ld [MBC3RomBank], a ; Unsafe + ldh [hROMBank], a + pop af + ret + +Unreferenced_PlayMusic_Old: + push hl + push de + push bc + push af + ldh a, [hROMBank] + push af + ld a, BANK(_PlayMusic) + ld [MBC3RomBank], a ; Unsafe + ldh [hROMBank], a + call _PlayMusic + pop af + ld [MBC3RomBank], a ; Unsafe + ldh [hROMBank], a + pop af + pop bc + pop de + pop hl + ret + +Unreferenced_PlayCryHeader_Old: + push hl + push de + push bc + push af + + ldh a, [hROMBank] + push af + ld a, BANK(PokemonCries) + ld [MBC3RomBank], a ; Unsafe + ldh [hROMBank], a + ld hl, PokemonCries +rept 6 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld a, [hli] + ld [wCryPitch], a + ld a, [hli] + ld [wCryPitch + 1], a + ld a, [hli] + ld [wCryLength], a + ld a, [hl] + ld [wCryLength + 1], a + + ld a, BANK(_PlayCryHeader) + ld [MBC3RomBank], a ; Unsafe + ldh [hROMBank], a + call _PlayCryHeader + + pop af + ld [MBC3RomBank], a ; Unsafe + ldh [hROMBank], a + pop af + pop bc + pop de + pop hl + ret + +Unused_PlaySFX_Old: + push hl + push de + push bc + push af + ldh a, [hROMBank] + push af + ld a, BANK(_PlaySFX) + ld [MBC3RomBank], a ; Unsafe + ldh [hROMBank], a + call _PlaySFX + pop af + ld [MBC3RomBank], a ; Unsafe + ldh [hROMBank], a + pop af + pop bc + pop de + pop hl + ret + +Unreferenced_WaitPlaySFX_Old: + call Unused_WaitSFX_Old + call Unused_PlaySFX_Old + ret + +Unused_WaitSFX_Old: + push hl +.loop + ld hl, wChannel5Flags1 + bit SOUND_CHANNEL_ON, [hl] + jr nz, .loop + ld hl, wChannel6Flags1 + bit SOUND_CHANNEL_ON, [hl] + jr nz, .loop + ld hl, wChannel7Flags1 + bit SOUND_CHANNEL_ON, [hl] + jr nz, .loop + ld hl, wChannel8Flags1 + bit SOUND_CHANNEL_ON, [hl] + jr nz, .loop + pop hl + ret + +Unreferenced_MaxVolume_Old: + ld a, $77 + ld [wVolume], a + ret + +Unreferenced_LowVolume_Old: + ld a, $33 + ld [wVolume], a + ret + +Unreferenced_UpdateSoundNTimes_Old: +.loop + and a + ret z + dec a + call Unused_UpdateSound_Old + jr .loop + +Unreferenced_FadeToMapMusic_Old: + push hl + push de + push bc + push af +; The check appears to be backwards: the carry flag is set if the player is on a vehicle, and unset otherwise. +; If the player is on no vehicle, then it would've used the last value of 'de' as the music id, potentially playing a garbage track. +; The final game fixes this by instead checking if the vehicle track is already playing, but the final GetMapMusic still sets the carry flag. + call Unused_SpecialMapMusic_Old + jr c, .dont_change + ld a, 8 + ld [wMusicFade], a + call PlaceWaitingText + ld a, e + ld [wMusicFadeID], a + ld a, d + ld [wMusicFadeID + 1], a +.dont_change + pop af + pop bc + pop de + pop hl + ret + +; Disables audio when the player is not on a bike or skateboard. +Unreferenced_PlayMapMusic_Old: + push hl + push de + push bc + push af + ld de, MUSIC_NONE + call Unreferenced_PlayMusic_Old + call DelayFrame + call Unused_SpecialMapMusic_Old + jr c, .play_music + +; _DisableAudio is in a mapper bank, but the bank is not switched in this function. +; Either this function was supposed to be called when in the same bank, +; or this is an oversight, and they meant to call DisableAudio instead (note the lack of underscore). + call _DisableAudio +.play_music + call Unreferenced_PlayMusic_Old + pop af + pop bc + pop de + pop hl + ret + +; There was no GetMapMusic at this point in development. +Unused_SpecialMapMusic_Old: + ld a, [wPlayerState] + and a + jr z, .normal + cp PLAYER_SKATE + jr z, .skateboard + ld de, MUSIC_BICYCLE + scf + ret + +.skateboard + ld de, MUSIC_NONE + scf + ret + +.normal + and a + ret diff --git a/layout.link b/layout.link index 08cec77..3cf9bb0 100644 --- a/layout.link +++ b/layout.link @@ -91,35 +91,33 @@ ROM0 "home/pokemon.asm@3AED" "home/misc_3c43.asm" "home/audio.asm" + "home/unknown_3e32.asm" ROMX $01 org $4000 "engine/link/place_waiting_text.asm" "engine/menu/debug_menu.asm" - "engine/dumps/bank01.asm@Function40fd" "home/oam_dma.asm" - "engine/dumps/bank01.asm@Table416b" - "engine/menu/main_menu.asm@Initialize new game WRAM" - "engine/dumps/bank01.asm@Function5388" - "engine/menu/main_menu.asm@MainMenu" + "data/sprites/facings.asm" + "engine/overworld/minor_objects.asm" + "engine/overworld/map_objects.asm" + "engine/menu/main_menu.asm" "engine/movie/oak_speech.asm" "engine/movie/title.asm@Title screen" - "engine/movie/title.asm@Title screen TEMPORARY" "engine/predef.asm" - "engine/dumps/bank01.asm@ReanchorBGMap_NoOAMUpdate" + "engine/overworld/init_map.asm" + "engine/pokemon/learn.asm" + "engine/items/item_prices_old.asm" + "engine/pokemon/nickname_unused.asm" + "engine/pokemon/correct_nick_errors.asm" "engine/math/math.asm" "data/items/attributes.asm" "data/items/names.asm" - "engine/dumps/bank01.asm@Function771e" - "engine/overworld/object_collision.asm@GetSpritesNextTile" - "engine/dumps/bank01.asm@Function776e" - "engine/overworld/object_collision.asm@_CheckObjectCollision" - "engine/dumps/bank01.asm@Function782c" - "engine/overworld/object_collision.asm@_CheckPlayerObjectCollision" - "engine/dumps/bank01.asm@SettingsScreen" + "engine/overworld/object_collision.asm" + "engine/menu_options_menu.asm" ROMX $02 - "engine/dumps/bank02.asm@SpawnPlayer" + "engine/dumps/bank02.asm@_SpawnPlayer" "gfx.asm@Bank 2 Misc GFX" "engine/dumps/bank02.asm@QueueFollowerFirstStep" "gfx.asm@Mon Nest Icon" diff --git a/macros/data.asm b/macros/data.asm index 840e79b..8b7dbdf 100644 --- a/macros/data.asm +++ b/macros/data.asm @@ -37,6 +37,41 @@ rept _NARG / 2 endr ENDM +MACRO nybble_array + DEF CURRENT_NYBBLE_ARRAY_VALUE = 0 + DEF CURRENT_NYBBLE_ARRAY_LENGTH = 0 + IF _NARG == 1 + REDEF CURRENT_NYBBLE_ARRAY_START EQUS "\1" + ELSE + REDEF CURRENT_NYBBLE_ARRAY_START EQUS "._nybble_array\@" + {CURRENT_NYBBLE_ARRAY_START}: + ENDC +ENDM + +MACRO nybble ; For vertical lists of nybbles + ASSERT 0 <= (\1) && (\1) < $10, "nybbles must be 0-15" + DEF CURRENT_NYBBLE_ARRAY_VALUE = (\1) | (CURRENT_NYBBLE_ARRAY_VALUE << 4) + DEF CURRENT_NYBBLE_ARRAY_LENGTH += 1 + IF CURRENT_NYBBLE_ARRAY_LENGTH % 2 == 0 + db CURRENT_NYBBLE_ARRAY_VALUE + DEF CURRENT_NYBBLE_ARRAY_VALUE = 0 + ENDC +ENDM + +MACRO end_nybble_array + IF CURRENT_NYBBLE_ARRAY_LENGTH % 2 + db CURRENT_NYBBLE_ARRAY_VALUE << 4 + ENDC + IF _NARG == 1 + DEF x = \1 + ASSERT x == CURRENT_NYBBLE_ARRAY_LENGTH, \ + "{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} nybbles, got {d:CURRENT_NYBBLE_ARRAY_LENGTH}" + DEF x = (x + 1) / 2 + ASSERT x == @ - {CURRENT_NYBBLE_ARRAY_START}, \ + "{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} bytes" + ENDC +ENDM + MACRO dc ; "crumbs" rept _NARG / 4 db ((\1) << 6) | ((\2) << 4) | ((\3) << 2) | (\4) diff --git a/macros/scripts/movement.asm b/macros/scripts/movement.asm new file mode 100644 index 0000000..4b994c7 --- /dev/null +++ b/macros/scripts/movement.asm @@ -0,0 +1,127 @@ +; MovementPointers indexes (see engine/overworld/movement.asm) + const_def 0, 4 + +; Directional movements + + const movement_turn_head ; $00 +MACRO turn_head + db movement_turn_head | \1 +ENDM + + const movement_slow_step ; $04 +MACRO slow_step + db movement_slow_step | \1 +ENDM + + const movement_step ; $08 +MACRO step + db movement_step | \1 +ENDM + + const movement_big_step ; $0c +MACRO big_step + db movement_big_step | \1 +ENDM + + const movement_quick_step ; $10 +MACRO quick_step + db movement_quick_step | \1 +ENDM + + const movement_slow_jump_step ; $14 +MACRO slow_jump_step + db movement_slow_jump_step | \1 +ENDM + + const movement_jump_step ; $18 +MACRO jump_step + db movement_jump_step | \1 +ENDM + + const movement_fast_jump_step ; $1c +MACRO fast_jump_step + db movement_fast_jump_step | \1 +ENDM + + const movement_quick_jump_step ; $20 +MACRO quick_jump_step + db movement_fast_quick_step | \1 +ENDM + +DEF const_inc = 1 + +; Control + const movement_remove_sliding ; $24 +MACRO remove_sliding + db movement_remove_sliding +ENDM + + const movement_set_sliding ; $25 +MACRO set_sliding + db movement_set_sliding +ENDM + + const movement_remove_fixed_facing ; $26 +MACRO remove_fixed_facing + db movement_remove_fixed_facing +ENDM + + const movement_fix_facing ; $27 +MACRO fix_facing + db movement_fix_facing +ENDM + + const movement_show_object ; $28 +MACRO show_object + db movement_show_object +ENDM + + const movement_hide_object ; $29 +MACRO hide_object + db movement_hide_object +ENDM + +; Sleep + + const movement_step_sleep ; $2a +MACRO step_sleep + if \1 <= 8 + db movement_step_sleep + \1 - 1 + else + db movement_step_sleep + 8, \1 + endc +ENDM + + const_skip 7 ; all step_sleep values + + const movement_step_end ; $32 +MACRO step_end + db movement_step_end +ENDM + + const movement_remove_object ; $33 +MACRO remove_object + db movement_remove_object +ENDM + + const movement_step_loop ; $34 +MACRO step_loop + db movement_step_loop +ENDM + + const movement_step_stop ; $35 +MACRO step_stop + db movement_step_stop +ENDM + + const movement_teleport_from ; $36 +MACRO teleport_from + db movement_teleport_from +ENDM + + const movement_teleport_to ; $37 +MACRO teleport_to + db movement_teleport_to +ENDM + +DEF NUM_MOVEMENT_CMDS EQU const_value \ No newline at end of file diff --git a/macros/wram.asm b/macros/wram.asm index fd0e780..fa49a36 100644 --- a/macros/wram.asm +++ b/macros/wram.asm @@ -312,6 +312,25 @@ MACRO map_object ds 2 ENDM +MACRO minor_object +\1ParentObject:: db +\1Type:: db +\1Animation:: db +\1SpriteTile:: db +\1XCoord:: db +\1YCoord:: db +\1XOffset:: db +\1YOffset:: db +\1_08:: db +\1_09:: db +\1JumptableIndex:: db +\1Timer:: db +\1Frame:: db +\1Var1:: db +\1Var2:: db +\1Var3:: db +ENDM + MACRO sprite_anim_struct \1Index:: ds 1 ; 0 \1FramesetID:: ds 1 ; 1 diff --git a/ram/hram.asm b/ram/hram.asm index 1e267bc..464b116 100644 --- a/ram/hram.asm +++ b/ram/hram.asm @@ -96,20 +96,17 @@ hSpriteHeight:: NEXTU +hItemPrice_Old:: ds 3 + +NEXTU + hConnectionStripLength:: db hConnectedMapWidth:: db - +hSpriteOffset:: db NEXTU hMapObjectIndex:: db hObjectStructIndex:: db - -ENDU - -UNION -hSpriteOffset:: - db -NEXTU hEnemyMonSpeed:: dw ENDU @@ -159,17 +156,23 @@ ENDU ds 3 ; TODO -hCurSpriteYCoord:: hFFC0:: ds 1 ds 6 -hFFC7:: db -hFFC8:: db -hFFC9:: db -hFFCA:: db -hFFCB:: db -hFFCC:: db +UNION +hUsedSpriteIndex:: db +hUsedSpriteTile:: db +hCurSpriteHorizTilesOccupied:: db +NEXTU +hCurSpriteXCoord:: db +hCurSpriteYCoord:: db +hCurSpriteXPixel:: db +hCurSpriteYPixel:: db +hCurSpriteTile:: db +hCurSpriteOAMFlags:: db +ENDU + hFFCD:: db ds 2 ; TODO diff --git a/ram/sram.asm b/ram/sram.asm index b1bee41..6f88795 100644 --- a/ram/sram.asm +++ b/ram/sram.asm @@ -12,7 +12,12 @@ ENDU SECTION "Unknown, bank 0", SRAM +UNION +sOptions:: ds 4 +NEXTU s0_a600:: ds 7 ; TODO: properly label this and figure out exact size +ENDU + SECTION "Window Stack Top", SRAM sWindowStackTop:: dw diff --git a/ram/wram.asm b/ram/wram.asm index 24a777a..22c76bc 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -57,9 +57,7 @@ wMusicFade:: ; $00 = none (default) db wMusicFadeCount:: db -wMusicFadeID:: -wMusicFadeIDLow:: db -wMusicFadeIDHigh:: db +wMusicFadeID:: dw wSweepingFadeIndex:: db wSweepingFadeCounter:: db @@ -137,6 +135,8 @@ NEXTU ds 1 wClockDialogArrowBlinkCounter:: ds 1 + + wc40a:: ds 1 ; Monster or Trainer test? @@ -147,6 +147,16 @@ wWhichPicTest:: wc40c:: ds 1 wc40d:: ds 1 wc40e:: ds 1 +NEXTU +wOptionsMenuCursorX:: db +wOptionsMenuCursorY:: db +wOptionsTextSpeedCursorX:: db +wOptionsBattleAnimCursorX:: db +wOptionsBattleStyleCursorX:: db +wOptionsAudioSettingsCursorX:: db +wOptionsBottomRowCursorX:: db +NEXTU + ds 7 ds 3 @@ -288,6 +298,7 @@ wMapBuffer:: wMapScriptNumber:: db wMapScriptNumberLocation:: dw wUnknownMapPointer:: dw ; TODO +; setting bit 7 seems to disable overworld updates and player control? wc5ed:: db ds 18 wMapBufferEnd:: @@ -734,6 +745,7 @@ wPokedexSlowpokeNumSearchEntries:: wNestIconBlinkCounter:: wBattleTransitionCounter:: db +UNION wBattleTransitionSineWaveOffset:: wBattleTransitionSpinQuadrant:: wIntroSceneTimer:: @@ -741,7 +753,10 @@ wTrainerGearCard:: wcb60:: ds 1 wTrainerGearRadioIndex:: -wcb61:: ds 1 +wSlotReelIconDelay:: db +NEXTU +wFlyIconAnimStructPointer:: dw +ENDU wVBCopySize:: ds 1 wVBCopySrc:: ds 2 @@ -749,14 +764,14 @@ wVBCopyDst:: ds 2 wVBCopyDoubleSize:: ds 1 wVBCopyDoubleSrc:: ds 2 wVBCopyDoubleDst:: ds 2 -wcb6c:: db -wcb6d:: db -wcb6e:: db +wPlayerStepVectorX:: db +wPlayerStepVectorY:: db +wPlayerStepFlags:: db wPlayerStepDirection:: db SECTION "CB71", WRAM0[$CB70] -wcb70:: db +wQueuedMinorObjectGFX:: db wVBCopyFarSize:: ds 1 wVBCopyFarSrc:: ds 2 @@ -766,7 +781,7 @@ wPlayerMovement:: db wMovementObject:: db ptrba wMovementData -wcb7c:: ds 1 +wIndexedMovement2Pointer:: dw SECTION "Collision buffer", WRAM0[$CB90] @@ -825,7 +840,17 @@ w2DMenuCursorInitY:: db w2DMenuCursorInitX:: db w2DMenuNumRows:: db w2DMenuNumCols:: db -w2DMenuFlags:: dw +w2DMenuFlags1:: +; bit 7: Disable checking of wMenuJoypadFilter +; bit 6: Enable sprite animations +; bit 5: Wrap around vertically +; bit 4: Wrap around horizontally +; bit 3: Set bit 7 in w2DMenuFlags2 and exit the loop if bit 5 is disabled and we tried to go too far down +; bit 2: Set bit 7 in w2DMenuFlags2 and exit the loop if bit 5 is disabled and we tried to go too far up +; bit 1: Set bit 7 in w2DMenuFlags2 and exit the loop if bit 4 is disabled and we tried to go too far left +; bit 0: Set bit 7 in w2DMenuFlags2 and exit the loop if bit 4 is disabled and we tried to go too far right + db +w2DMenuFlags2:: db w2DMenuCursorOffsets:: db wMenuJoypadFilter:: db w2DMenuDataEnd:: @@ -858,8 +883,6 @@ UNION wcc3a:: wChargeMoveNum:: wMovementBufferCount:: db - -wcc3b:: wMovementBufferObject:: db ptrba wMovementBufferPointer @@ -876,8 +899,6 @@ wSpriteViewerMenuStartingItem:: db wSpriteViewerSavedMenuPointerY:: db wSpriteViewerJumptableIndex:: db - ds 56 - NEXTU ; trainer HUD data ds 1 @@ -891,11 +912,8 @@ SECTION "CC9A", WRAM0[$CC9A] wSkatingDirection:: db wCompanionCollisionFrameCounter:: db -wUnknownWordcc9c:: - dw - -wUnknownBuffercc9e:: - ds 14 +wObjectMasks:: + ds NUM_OBJECTS wSpriteCurPosX:: ds 1 @@ -969,9 +987,9 @@ wccf4:: ds 1 SECTION "CD11", WRAM0[$CD11] -wcd11:: ds 1 +wMonOrItemNameBuffer:: ds MON_NAME_LENGTH - ds 11 + ds MON_NAME_LENGTH wcd1d:: ds 8 @@ -1061,7 +1079,7 @@ wFieldMoveSucceeded:: ; 2 - switch wBattlePlayerAction:: db -wVramState:: db +wStateFlags:: db ds 3 ; TODO wcd5d:: db @@ -1070,11 +1088,9 @@ wChosenStarter:: db wcd60:: db SECTION "CD70", WRAM0[$CD70] -wcd70:: ds 1 -wcd71:: ds 1 -wcd72:: dw -wcd74:: db -wcd75:: db +wListPointer:: dw +wNamesPointer:: dw +wItemAttributesPointer:: dw wCurItem:: db wItemIndex:: db @@ -1153,7 +1169,13 @@ wEnemyEffectivenessVsPlayerMons:: flag_array PARTY_LENGTH wPlayerEffectivenessVsEnemyMons:: flag_array PARTY_LENGTH NEXTU +; Used for an old nickname function and for storing the item price in the shop menu. +wMiscStringBuffer:: ds STRING_BUFFER_LENGTH +NEXTU +wExpToNextLevel:: ds 3 + +NEXTU wcdc3:: db wcdc4:: db wcdc5:: db @@ -1271,7 +1293,7 @@ wCurDamage:: dw wce2d:: ds 1 wListMoves_MoveIndicesBuffer:: ds NUM_MOVES -wce32:: ds 1 +wPutativeTMHMMove:: db wce33:: ds 1 wce34:: ds 1 wWildMon:: db @@ -1313,11 +1335,11 @@ wTimeOfDay:: db ; 02 - Cave 35--50s ; 03 - Morning 06--09h 50--59s +wcd3e: ds 1 wcd3f: ds 1 -SECTION "CE5F", WRAM0[$CE5F] +SECTION "Options", WRAM0[$CE5F] -wce5f:: ; debug menu writes $41 to it wOptions:: ; bit 0-2: number of frames to delay when printing text ; fast 1; mid 3; slow 5 @@ -1328,12 +1350,15 @@ wOptions:: ; bit 7: battle scene off/on db -wce60:: - db ; main menu checks this, maybe states if there's a save present? +; A buffer for sOptions that is used to check if a save file exists. +; Only checks the bottom bit, for whatever reason. +wSaveFileExists:: db wActiveFrame:: db -wTextBoxFlags:: db +; bit 0: 1-frame text delay +; bit 1: when unset, no text delay +wTextboxFlags:: db wDebugFlags:: db ; Bit 0: Debug battle indicator @@ -1370,20 +1395,20 @@ wFollowMovementQueue:: ds 5 wObjectStructs:: -; Note: this might actually not be an object. TODO: Investigate (if indexing starts at 1, then this isn't an object) -; It might just be unused/a leftover. -wUnkObjectStruct:: object_struct wUnkObject +; Object struct reserved for the map viewer cursor and for Blue in Silent Hill. +; Presumably needed any time they needed something to have a higher priority than the player. +wReservedObjectStruct:: object_struct wReservedObject + wPlayerStruct:: object_struct wPlayer ; wObjectStruct1 - wObjectStruct12 for n, 1, NUM_OBJECT_STRUCTS - 1 wObject{d:n}Struct:: object_struct wObject{d:n} endr -wCmdQueue:: -wCmdQueueEntry1:: ds 16 -wCmdQueueEntry2:: ds 16 -wCmdQueueEntry3:: ds 16 -wCmdQueueEntry4:: ds 16 +wMinorObjects:: +for n, 0, NUM_MINOR_OBJECTS +wMinorObject{d:n}Struct:: minor_object wMinorObject{d:n} +endr wMapObjects:: wPlayerObject:: map_object wPlayer ; player is map object 0 @@ -1580,23 +1605,13 @@ wd637:: db ;OW battle state? $3 wild battle, $8 is trainer battle $4 is left bat wd638:: db ;wd637's last written-to value SECTION "Used sprites", WRAM0[$D642] -wd642:: db +wUnusedAddOutdoorSpritesReturnValue:: db wBGMapAnchor:: dw -UNION - wUsedSprites:: ds 2 -NEXTU - - ds 1 - -wd646:: db - -ENDU - wUsedNPCSprites:: ds 8 @@ -1707,15 +1722,9 @@ wAnnonID:: ds 1 wd875:: ds 1 -wBufferMonNickname:: -wd876:: ds 1 +wBufferMonNickname:: ds MON_NAME_LENGTH - ds 5 - -wBufferMonOT:: -wd87c:: ds 1 - - ds 5 +wBufferMonOT:: ds PLAYER_NAME_LENGTH wd882:: ds 1 wd883:: ds 1 diff --git a/scripts/OldCityPokecenter2F.asm b/scripts/OldCityPokecenter2F.asm index 542a134..25af96e 100644 --- a/scripts/OldCityPokecenter2F.asm +++ b/scripts/OldCityPokecenter2F.asm @@ -69,9 +69,9 @@ OldCityPokecenter2FText4: call DeleteMapObject jr .asm_9480c ; unreferenced? - ld hl, Data14824 + ld hl, OldCityPokecenter2FMovement1 ld a, $5 - call Function16fb ; something related to follow + call LoadMovementDataPointer_KeepStateFlags ld hl, $0000 nop .asm_9480c @@ -82,7 +82,15 @@ OldCityPokecenter2FTextString4: line "タイムマシンです" done - db $05, $25, $24, $48 +; TODO?: APPEARS to be movement data. These bytes including a set sliding command makes sense +; considering that the Link Cable nurse has no proper walking sprites. +; The latter two bytes, however, are an exact match for the address of OldCityPokecenter2FMovement1, +; so it's hard to be certain. +OldCityPokecenter2FMovement_Unreferenced: + slow_step UP + set_sliding + dw OldCityPokecenter2FMovement1 -Data14824: ; movement data - db $07, $32 +OldCityPokecenter2FMovement1: + slow_step RIGHT + step_end diff --git a/scripts/PlayerHouse2F.asm b/scripts/PlayerHouse2F.asm index 95acd7f..02a6de6 100644 --- a/scripts/PlayerHouse2F.asm +++ b/scripts/PlayerHouse2F.asm @@ -75,9 +75,9 @@ PlayerHouse2FMovePlayer: ret Movement: - db $08 - db $04 - db $32 + step DOWN + slow_step DOWN + step_end PlayerHouse2FScript2: ld hl, PlayerHouse2FNPCIDs2 diff --git a/scripts/SilentHill.asm b/scripts/SilentHill.asm index 596193f..d43e43b 100644 --- a/scripts/SilentHill.asm +++ b/scripts/SilentHill.asm @@ -63,7 +63,7 @@ SilentHillScript1: ld hl, wJoypadFlags set 4, [hl] ld a, 02 - call Function17f9 + call FreezeAllOtherObjects ld a, 02 ld hl, SilentHillMovement1 call LoadMovementDataPointer @@ -76,13 +76,13 @@ SilentHillScript1: ret SilentHillMovement1: - db $0D - db $0D - db $0D - db $09 - db $05 - db $02 - db $32 + big_step UP + big_step UP + big_step UP + step UP + slow_step UP + turn_head LEFT + step_end SilentHillScript2: ld a, 0 @@ -106,13 +106,19 @@ SilentHillScript2: ret SilentHillMovement2: - db $00, $04, $08, $0C, $0C, $0C, $33 + turn_head DOWN + slow_step DOWN + step DOWN + big_step DOWN + big_step DOWN + big_step DOWN + remove_object SilentHillScript3: - call Function1848 + call UnfreezeAllObjects ld a, 3 ld [wMapScriptNumber], a - call InitUnknownBuffercc9e + call InitObjectMasks ret SilentHillScript4: @@ -131,9 +137,9 @@ SilentHillScript4: ld hl, wJoypadFlags set 4, [hl] ld a, 3 - call Function15ed + call CopyMapObjectToReservedObjectStruct ld a, 3 - call Function17f9 + call FreezeAllOtherObjects ld a, [wYCoord] cp 9 jr z, .jump2 @@ -167,10 +173,23 @@ Function776a: ret SilentHillMovement3: - db $0A, $0A, $0A, $09, $0A, $06, $02, $32 + step LEFT + step LEFT + step LEFT + step UP + step LEFT + slow_step LEFT + turn_head LEFT + step_end SilentHillMovement4: - db $0A, $0A, $0A, $0A, $06, $02, $32 + step LEFT + step LEFT + step LEFT + step LEFT + slow_step LEFT + turn_head LEFT + step_end SilentHillScript5: ld a, 0 @@ -181,9 +200,9 @@ SilentHillScript5: ld hl, wJoypadFlags set 4, [hl] ld a, 3 - call Function17f9 + call FreezeAllOtherObjects ld a, 0 - call Function186a + call UnfreezeObject ld b, 3 ld c, 0 call StartFollow @@ -206,10 +225,47 @@ SilentHillScript5: ret SilentHillMovement5: - db $0B, $0B, $0B, $0B, $0B, $0B, $08, $08, $08, $08, $0B, $0B, $0B, $0B, $0B, $0B, $0B, $0B, $05, $33 + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step DOWN + step DOWN + step DOWN + step DOWN + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + slow_step UP + remove_object SilentHillMovement6: - db $0B, $0B, $0B, $0B, $0B, $0B, $08, $08, $08, $0B, $0B, $0B, $0B, $0B, $0B, $0B, $0B, $05, $33 + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step DOWN + step DOWN + step DOWN + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + step RIGHT + slow_step UP + remove_object SilentHillScript6: ld hl, SilentHillNPCIDs2 @@ -272,7 +328,8 @@ SilentHillTextString1: done SilentHillMovement7: - db $04, $32 + slow_step DOWN + step_end SilentHillSignPointers:: dw SilentHillPlayerHouseText diff --git a/scripts/SilentHillLabBack.asm b/scripts/SilentHillLabBack.asm index c57807e..502e567 100644 --- a/scripts/SilentHillLabBack.asm +++ b/scripts/SilentHillLabBack.asm @@ -44,7 +44,7 @@ SilentHillLabBackScript1: ld hl, wJoypadFlags set 4, [hl] ld a, 0 - call Function17f9 + call FreezeAllOtherObjects ld a, 0 ld hl, SilentHillLabBackMovement1 call LoadMovementDataPointer @@ -59,7 +59,10 @@ SilentHillLabBackScript1: ret SilentHillLabBackMovement1: - db 09, 09, 05, $32 + step UP + step UP + slow_step UP + step_end SilentHillLabBackScript2: ld hl, wc5ed @@ -88,7 +91,7 @@ SilentHillLabBackRivalChoosePokemon: ld hl, wJoypadFlags set 4, [hl] ld a, 3 - call Function17f9 + call FreezeAllOtherObjects ld hl, SilentHillLabBackMovementPointers ld a, [wChosenStarter] ld d, 0 @@ -114,7 +117,12 @@ SilentHillLabBackMovementPointers: dw SilentHillLabBackMovement2+2 SilentHillLabBackMovement2: - db $0B, $0B, $0B, $0B, $05, $32 + step RIGHT + step RIGHT + step RIGHT + step RIGHT + slow_step UP + step_end SilentHillLabBackScript5: ld hl, SilentHillLabBackTextString12 diff --git a/scripts/SilentHillLabFront.asm b/scripts/SilentHillLabFront.asm index 0a5bcd7..967b222 100644 --- a/scripts/SilentHillLabFront.asm +++ b/scripts/SilentHillLabFront.asm @@ -165,7 +165,7 @@ SilentHillLabFrontMoveDown: ld hl, wJoypadFlags set 4, [hl] ld a, 0 - call Function17f9 + call FreezeAllOtherObjects ld a, 0 ld hl, SilentHillLabFrontMovement1 call LoadMovementDataPointer @@ -177,7 +177,8 @@ SilentHillLabFrontMoveDown: ret SilentHillLabFrontMovement1: - db $06, $32 + slow_step LEFT + step_end SilentHillLabFrontScript2: ld a, 2 @@ -186,9 +187,9 @@ SilentHillLabFrontScript2: SilentHillLabFrontScript3: ld a, 6 - call Function17f9 + call FreezeAllOtherObjects ld a, 0 - call Function186a + call UnfreezeObject ld b, 6 ld c, 0 call StartFollow @@ -204,10 +205,22 @@ SilentHillLabFrontScript3: ret SilentHillLabFrontMovement2: - db 09, 09, 09, 09, 09, 09, 09, 09, 09, 05, 07, 01, $32 + step UP + step UP + step UP + step UP + step UP + step UP + step UP + step UP + step UP + slow_step UP + slow_step RIGHT + turn_head UP + step_end SilentHillLabFrontScript4: - call Function1828 + call FreezeAllObjects ld a, 4 ld [wMapScriptNumber], a ret @@ -241,7 +254,7 @@ SilentHillLabFrontScript5: ld hl, wJoypadFlags set 4, [hl] ld a, 2 - call Function17f9 + call FreezeAllOtherObjects ld a, 2 ld hl, SilentHillLabFrontMovement3 call LoadMovementDataPointer @@ -254,13 +267,15 @@ SilentHillLabFrontScript5: ret SilentHillLabFrontMovement3: - db 9, 5, $33 + step UP + slow_step UP + remove_object SilentHillLabFrontScript6: ld hl, wJoypadFlags set 4, [hl] ld a, 4 - call Function17f9 + call FreezeAllOtherObjects ld a, 4 ld hl, SilentHillLabFrontMovement4 call LoadMovementDataPointer @@ -273,13 +288,18 @@ SilentHillLabFrontScript6: ret SilentHillLabFrontMovement4: - db $0D, $0D, $0F, $0D, $0D, $33 + big_step UP + big_step UP + big_step RIGHT + big_step UP + big_step UP + remove_object SilentHillLabFrontScript7: ld hl, wJoypadFlags set 4, [hl] ld a, 0 - call Function17f9 + call FreezeAllOtherObjects ld a, 0 ld hl, SilentHillLabFrontMovement5 call LoadMovementDataPointer @@ -292,17 +312,21 @@ SilentHillLabFrontScript7: ret SilentHillLabFrontMovement5: - db 09, 09, 09, 05, $32 + step UP + step UP + step UP + slow_step UP + step_end SilentHillLabFrontScript8: ld a, 3 - call Function1989 + call SetObjectLowPriority ld a, 5 - call Function1989 + call SetObjectLowPriority ld hl, wJoypadFlags set 4, [hl] ld a, 0 - call Function17f9 + call FreezeAllOtherObjects ld a, 0 ld hl, SilentHillLabFrontMovement6 call LoadMovementDataPointer @@ -315,15 +339,20 @@ SilentHillLabFrontScript8: ret SilentHillLabFrontMovement6: - db 8, 8, 8, $0A, 6, $32 + step DOWN + step DOWN + step DOWN + step LEFT + slow_step LEFT + step_end SilentHillLabFrontScript9: ld hl, wJoypadFlags set 4, [hl] ld a, 5 - call Function17f9 + call FreezeAllOtherObjects ld a, 5 - call Function197e + call ResetObjectLowPriority ld a, 5 ld hl, SilentHillLabFrontMovement7 call LoadMovementDataPointer @@ -336,7 +365,13 @@ SilentHillLabFrontScript9: ret SilentHillLabFrontMovement7: - db $08, $08, $08, $08, $0A, $06, $32 + step DOWN + step DOWN + step DOWN + step DOWN + step LEFT + slow_step LEFT + step_end SilentHillLabFrontScript10: ld a, 5 @@ -353,9 +388,9 @@ SilentHillLabFrontScript10: ld d, RIGHT call SetObjectFacing ld a, 3 - call Function17f9 + call FreezeAllOtherObjects ld a, 3 - call Function197e + call ResetObjectLowPriority ld a, 3 ld hl, SilentHillLabFrontMovement8 call LoadMovementDataPointer @@ -368,7 +403,9 @@ SilentHillLabFrontScript10: ret SilentHillLabFrontMovement8: - db $08, $04, $32 + step DOWN + slow_step DOWN + step_end SilentHillLabFrontScript11: ld hl, SilentHillLabFrontTextString8 @@ -376,9 +413,9 @@ SilentHillLabFrontScript11: ld hl, SilentHillLabFrontTextString9 call OpenTextbox ld a, $0B - call Function1617 + call ApplyDeletionToMapObject ld a, $0C - call Function1617 + call ApplyDeletionToMapObject ld hl, SilentHillLabFrontTextString10 call OpenTextbox ld hl, SilentHillLabFrontTextString15 @@ -388,7 +425,7 @@ SilentHillLabFrontScript11: call Function20f8 ld a, $0B ld [wMapScriptNumber], a - call InitUnknownBuffercc9e + call InitObjectMasks ret SilentHillLabFrontScript12: @@ -417,7 +454,7 @@ SilentHillLabFrontRivalMovePokemon: ld hl, wJoypadFlags set 4, [hl] ld a, 5 - call Function17f9 + call FreezeAllOtherObjects pop hl ld a, 5 call LoadMovementDataPointer @@ -431,10 +468,21 @@ SilentHillLabFrontRivalMovePokemon: ret SilentHillLabFrontMovement9: - db $08, $0B, $0B, $08, $08, $04, $32 + step DOWN + step RIGHT + step RIGHT + step DOWN + step DOWN + slow_step DOWN + step_end SilentHillLabFrontMovement10: - db $08, $0B, $08, $08, $04, $32 + step DOWN + step RIGHT + step DOWN + step DOWN + slow_step DOWN + step_end SilentHillLabFrontScript13: ld hl, SilentHillLabFrontTextString17 @@ -446,7 +494,7 @@ SilentHillLabFrontScript13: ld [wd637], a ld a, $0D ld [wMapScriptNumber], a - call InitUnknownBuffercc9e + call InitObjectMasks ret GetLabPokemon: @@ -485,7 +533,7 @@ SilentHillLabFrontScript14: ld hl, wJoypadFlags set 4, [hl] ld a, 5 - call Function17f9 + call FreezeAllOtherObjects ld a, 5 ld hl, SilentHillLabFrontMovement11 call LoadMovementDataPointer @@ -498,13 +546,17 @@ SilentHillLabFrontScript14: ret SilentHillLabFrontMovement11: - db $04, $08, $08, $08, $33 + slow_step DOWN + step DOWN + step DOWN + step DOWN + remove_object SilentHillLabFrontScript15: call Function20f8 ld a, $0F ld [wMapScriptNumber], a - call InitUnknownBuffercc9e + call InitObjectMasks ret SilentHillLabFrontScript16: @@ -533,7 +585,7 @@ SilentHillLabFrontMoveRivalLeave: ld hl, wJoypadFlags set 4, [hl] ld a, 8 - call Function17f9 + call FreezeAllOtherObjects pop hl ld a, 8 call LoadMovementDataPointer @@ -547,7 +599,11 @@ SilentHillLabFrontMoveRivalLeave: ret Movememt12: - db $07, $07, $07, $05, $32 + slow_step RIGHT + slow_step RIGHT + slow_step RIGHT + slow_step UP + step_end SilentHillLabFrontScript17: ld hl, SilentHillLabFrontTextString23 diff --git a/shim.sym b/shim.sym index 3836271..e60d82b 100644 --- a/shim.sym +++ b/shim.sym @@ -1,5 +1,6 @@ 05:43B6 InitAllSRAMBanks 05:43E0 Function143e0 +05:451B PrintSaveScreenText 05:457A Function1457a 05:45B8 Function145b8 05:45DE Function145de @@ -61,49 +62,6 @@ 23:4940 Function8c940 23:49C6 Function8c9c6 -32:7FFF BattleAnimationsBankRef - -;32:4cfe BattleAnimations -;32:5b8d BattleAnim_FocusEnergy -;32:7511 BattleAnimSub_Drain -;32:753d BattleAnimSub_EyeBeams -;32:7573 BattleAnimSub_WarpAway -;32:759a BattleAnimSub_Beam -;32:75c3 BattleAnimSub_Explosion1 -;32:75f0 BattleAnimSub_Explosion2 -;32:761d BattleAnimSub_Sound -;32:762d BattleAnimSub_Fire -;32:7640 BattleAnimSub_Ice -;32:7676 BattleAnimSub_Sludge -;32:7696 BattleAnimSub_Acid -;32:76a4 BattleAnimSub_Metallic -;32:76bc BattleAnimSub_SandOrMud -;32:76cb BattleAnim_TargetObj_1Row -;32:76d3 BattleAnim_TargetObj_2Row -;32:76db BattleAnim_ShowMon_0 -;32:76e5 BattleAnim_UserObj_1Row -;32:76ed BattleAnim_UserObj_2Row -;32:76f5 BattleAnim_ShowMon_1 -;33:480f BattleAnimObjects -;33:4b98 DoBattleAnimFrame - -;33:5081 BattleAnim_ScatterHorizontal -;33:61fd BattleAnim_StepToTarget -;33:6211 BattleAnim_AnonJumptable -;33:6224 BattleAnim_IncAnonJumptableIndex -;33:622a BattleAnim_Cosine -;33:622c BattleAnim_Sine -;33:62a9 ReinitBattleAnimFrameset -;33:62bb GetBattleAnimFrame -;33:625D BattleAnim_Sine_e -;33:6263 BattleAnim_Cosine_e -;33:6326 GetBattleAnimOAMPointer -;33:6330 LoadBattleAnimGFX -;33:697C BattleAnimOAMData -;33:6CC8 OAMData -;33:7780 AnimObjGFX - - 38:48A2 PokerMinigame 38:5AE3 FifteenPuzzleMinigame