diff --git a/constants/collision_constants.asm b/constants/collision_constants.asm index b693dc8f8..f9724da60 100644 --- a/constants/collision_constants.asm +++ b/constants/collision_constants.asm @@ -102,6 +102,18 @@ COLL_RIGHT_WALL EQU $b0 COLL_LEFT_WALL EQU $b1 COLL_UP_WALL EQU $b2 COLL_DOWN_WALL EQU $b3 ; unused +COLL_DOWN_RIGHT_WALL EQU $b4 ; unused +COLL_DOWN_LEFT_WALL EQU $b5 ; unused +COLL_UP_RIGHT_WALL EQU $b6 ; unused +COLL_UP_LEFT_WALL EQU $b7 ; unused +COLL_RIGHT_BUOY EQU $c0 ; unused +COLL_LEFT_BUOY EQU $c1 ; unused +COLL_UP_BUOY EQU $c2 ; unused +COLL_DOWN_BUOY EQU $c3 ; unused +COLL_DOWN_RIGHT_BUOY EQU $c4 ; unused +COLL_DOWN_LEFT_BUOY EQU $c5 ; unused +COLL_UP_RIGHT_BUOY EQU $c6 ; unused +COLL_UP_LEFT_BUOY EQU $c7 ; unused COLL_FF EQU $ff ; garbage ; collision data type nybbles @@ -114,4 +126,4 @@ HI_NYBBLE_WALK_ALT EQU $50 HI_NYBBLE_WARPS EQU $70 HI_NYBBLE_LEDGES EQU $a0 HI_NYBBLE_SIDE_WALLS EQU $b0 -HI_NYBBLE_UNUSED_C0 EQU $c0 +HI_NYBBLE_SIDE_BUOYS EQU $c0 diff --git a/constants/script_constants.asm b/constants/script_constants.asm index 34f2bc864..91a519b8d 100644 --- a/constants/script_constants.asm +++ b/constants/script_constants.asm @@ -86,6 +86,14 @@ RETVAR_EXECUTE EQU (2 << 6) const PLAYEREVENT_JOYCHANGEFACING NUM_PLAYER_EVENTS EQU const_value +; script data sizes (see macros/scripts/maps.asm) +SCENE_SCRIPT_SIZE EQU 4 ; scene_script +CALLBACK_SIZE EQU 3 ; callback +WARP_EVENT_SIZE EQU 5 ; warp_event +COORD_EVENT_SIZE EQU 8 ; coord_event +BG_EVENT_SIZE EQU 5 ; bg_event +OBJECT_EVENT_SIZE EQU 13 ; object_event + ; bg_event types ; TryBGEvent arguments (see engine/overworld/events.asm) const_def diff --git a/data/collision_permissions.asm b/data/collision_permissions.asm index 2307ec98a..82ebb770a 100644 --- a/data/collision_permissions.asm +++ b/data/collision_permissions.asm @@ -183,10 +183,10 @@ TileCollisionTable:: NONTALKABLE LANDTILE ; COLL_LEFT_WALL NONTALKABLE LANDTILE ; COLL_UP_WALL NONTALKABLE LANDTILE ; COLL_DOWN_WALL - NONTALKABLE LANDTILE ; b4 - NONTALKABLE LANDTILE ; b5 - NONTALKABLE LANDTILE ; b6 - NONTALKABLE LANDTILE ; b7 + NONTALKABLE LANDTILE ; COLL_DOWN_RIGHT_WALL + NONTALKABLE LANDTILE ; COLL_DOWN_LEFT_WALL + NONTALKABLE LANDTILE ; COLL_UP_RIGHT_WALL + NONTALKABLE LANDTILE ; COLL_UP_LEFT_WALL NONTALKABLE LANDTILE ; b8 NONTALKABLE LANDTILE ; b9 NONTALKABLE LANDTILE ; ba @@ -195,14 +195,14 @@ TileCollisionTable:: NONTALKABLE LANDTILE ; bd NONTALKABLE LANDTILE ; be NONTALKABLE LANDTILE ; bf - NONTALKABLE WATERTILE ; c0 - NONTALKABLE WATERTILE ; c1 - NONTALKABLE WATERTILE ; c2 - NONTALKABLE WATERTILE ; c3 - NONTALKABLE WATERTILE ; c4 - NONTALKABLE WATERTILE ; c5 - NONTALKABLE WATERTILE ; c6 - NONTALKABLE WATERTILE ; c7 + NONTALKABLE WATERTILE ; COLL_RIGHT_BUOY + NONTALKABLE WATERTILE ; COLL_LEFT_BUOY + NONTALKABLE WATERTILE ; COLL_UP_BUOY + NONTALKABLE WATERTILE ; COLL_DOWN_BUOY + NONTALKABLE WATERTILE ; COLL_DOWN_RIGHT_BUOY + NONTALKABLE WATERTILE ; COLL_DOWN_LEFT_BUOY + NONTALKABLE WATERTILE ; COLL_UP_RIGHT_BUOY + NONTALKABLE WATERTILE ; COLL_UP_LEFT_BUOY NONTALKABLE WATERTILE ; c8 NONTALKABLE WATERTILE ; c9 NONTALKABLE WATERTILE ; ca diff --git a/data/maps/scenes.asm b/data/maps/scenes.asm index 9c820f9a6..0c8f6b750 100644 --- a/data/maps/scenes.asm +++ b/data/maps/scenes.asm @@ -84,4 +84,4 @@ MapScenes:: scene_var MOUNT_MOON_SQUARE, wMountMoonSquareSceneID scene_var MOBILE_TRADE_ROOM, wMobileTradeRoomSceneID scene_var MOBILE_BATTLE_ROOM, wMobileBattleRoomSceneID - db -1 + db -1 ; end diff --git a/engine/events/checkforhiddenitems.asm b/engine/events/checkforhiddenitems.asm index c0d31fe24..c71bd2905 100644 --- a/engine/events/checkforhiddenitems.asm +++ b/engine/events/checkforhiddenitems.asm @@ -60,7 +60,7 @@ CheckForHiddenItems: .next ; Restore the bg_event pointer and increment it by the length of a bg_event. pop hl - ld bc, 5 + ld bc, BG_EVENT_SIZE add hl, bc ; Restore the BG event counter and decrement it. If it hits zero, there are no hidden items in range. ld a, [wBuffer2] diff --git a/engine/overworld/events.asm b/engine/overworld/events.asm index ec81f1c27..fe2c51560 100644 --- a/engine/overworld/events.asm +++ b/engine/overworld/events.asm @@ -418,7 +418,7 @@ RunSceneScript: ld a, [hli] ld h, [hl] ld l, a -rept 4 +rept SCENE_SCRIPT_SIZE add hl, de endr diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm index ffed4875b..d249d2fd4 100644 --- a/engine/overworld/npc_movement.asm +++ b/engine/overworld/npc_movement.asm @@ -114,7 +114,10 @@ WillObjectBumpIntoTile: ret .data_6f5b - db DOWN_MASK, UP_MASK, RIGHT_MASK, LEFT_MASK + db DOWN_MASK ; DOWN + db UP_MASK ; UP + db RIGHT_MASK ; LEFT + db LEFT_MASK ; RIGHT Function6f5f: ld hl, OBJECT_STANDING_TILE @@ -137,19 +140,22 @@ Function6f5f: ret .data_6f7b - db UP_MASK, DOWN_MASK, LEFT_MASK, RIGHT_MASK + db UP_MASK ; DOWN + db DOWN_MASK ; UP + db LEFT_MASK ; LEFT + db RIGHT_MASK ; RIGHT Function6f7f: ld d, a and $f0 cp HI_NYBBLE_SIDE_WALLS - jr z, .done - cp HI_NYBBLE_UNUSED_C0 - jr z, .done + jr z, .continue + cp HI_NYBBLE_SIDE_BUOYS + jr z, .continue xor a ret -.done +.continue ld a, d and 7 ld e, a @@ -161,8 +167,14 @@ Function6f7f: ret .data_6f99 - db 8, 4, 1, 2 - db 10, 6, 9, 5 + db RIGHT_MASK ; COLL_RIGHT_WALL/BUOY + db LEFT_MASK ; COLL_LEFT_WALL/BUOY + db DOWN_MASK ; COLL_UP_WALL/BUOY + db UP_MASK ; COLL_DOWN_WALL/BUOY + db UP_MASK | RIGHT_MASK ; COLL_DOWN_RIGHT_WALL/BUOY + db UP_MASK | LEFT_MASK ; COLL_DOWN_LEFT_WALL/BUOY + db DOWN_MASK | RIGHT_MASK ; COLL_UP_RIGHT_WALL/BUOY + db DOWN_MASK | LEFT_MASK ; COLL_UP_LEFT_WALL/BUOY Function6fa1: ld hl, OBJECT_DIRECTION_WALKING @@ -493,7 +505,7 @@ Unreferenced_Function7113: cp d jr nz, .check_current_coords ldh a, [hObjectStructIndexBuffer] - cp $0 + cp PLAYER_OBJECT jr z, .next jr .yes diff --git a/home/map.asm b/home/map.asm index 9af673f3d..6600cd7db 100644 --- a/home/map.asm +++ b/home/map.asm @@ -46,8 +46,8 @@ GetCurrentMapSceneID:: ret GetMapSceneID:: -; Searches the scene script table for the map group and number loaded in bc, and returns the wram pointer in de. -; If the map is not in the scene script table, returns carry. +; Searches the scene_var table for the map group and number loaded in bc, and returns the wram pointer in de. +; If the map is not in the scene_var table, returns carry. push bc ldh a, [hROMBank] push af @@ -59,7 +59,7 @@ GetMapSceneID:: push hl ld a, [hli] ; map group, or terminator cp -1 - jr z, .end ; the current map is not in the scene script table + jr z, .end ; the current map is not in the scene_var table cp b jr nz, .next ; map group did not match ld a, [hli] ; map number @@ -69,7 +69,7 @@ GetMapSceneID:: .next pop hl - ld de, 4 ; scene_script size + ld de, 4 ; scene_var size add hl, de jr .loop @@ -275,7 +275,7 @@ GetDestinationWarpNumber:: .next pop hl - ld a, 5 + ld a, WARP_EVENT_SIZE add l ld l, a jr nc, .okay @@ -325,7 +325,7 @@ CopyWarpData:: ld l, a ld a, c dec a - ld bc, 5 ; warp size + ld bc, WARP_EVENT_SIZE call AddNTimes ld bc, 2 ; warp number add hl, bc @@ -487,7 +487,7 @@ GetMapConnection:: ret ReadMapSceneScripts:: - ld a, [hli] ; scene script count + ld a, [hli] ; scene_script count ld c, a ld [wCurMapSceneScriptCount], a ld a, l @@ -498,7 +498,7 @@ ReadMapSceneScripts:: and a ret z - ld bc, 4 ; scene_script size + ld bc, SCENE_SCRIPT_SIZE call AddNTimes ret @@ -514,7 +514,7 @@ ReadMapCallbacks:: and a ret z - ld bc, 3 + ld bc, CALLBACK_SIZE call AddNTimes ret @@ -529,7 +529,7 @@ ReadWarps:: ld a, c and a ret z - ld bc, 5 + ld bc, WARP_EVENT_SIZE call AddNTimes ret @@ -546,7 +546,7 @@ ReadCoordEvents:: and a ret z - ld bc, 8 + ld bc, COORD_EVENT_SIZE call AddNTimes ret @@ -563,7 +563,7 @@ ReadBGEvents:: and a ret z - ld bc, 5 + ld bc, BG_EVENT_SIZE call AddNTimes ret @@ -622,7 +622,7 @@ CopyMapObjectEvents:: push hl ld a, $ff ld [hli], a - ld b, MAPOBJECT_E - MAPOBJECT_SPRITE + ld b, OBJECT_EVENT_SIZE .loop2 ld a, [de] inc de @@ -664,14 +664,14 @@ RestoreFacingAfterWarp:: ld a, [hli] ld h, [hl] ld l, a - inc hl ; get to the warp coords - inc hl ; get to the warp coords - inc hl ; get to the warp coords +rept 3 ; get to the warp coords + inc hl +endr ld a, [wWarpNumber] dec a ld c, a ld b, 0 - ld a, 5 + ld a, WARP_EVENT_SIZE call AddNTimes ld a, [hli] ld [wYCoord], a @@ -981,7 +981,7 @@ RunMapCallback:: ld l, a or h ret z - ld de, 3 + ld de, CALLBACK_SIZE .loop ld a, [hl] cp b @@ -1261,7 +1261,7 @@ UpdateBGMapRow:: push de call .iteration pop de - ld a, $20 + ld a, BG_MAP_WIDTH add e ld e, a @@ -1295,7 +1295,7 @@ UpdateBGMapColumn:: ld [hli], a ld a, d ld [hli], a - ld a, $20 + ld a, BG_MAP_WIDTH add e ld e, a jr nc, .skip @@ -1344,11 +1344,11 @@ LoadTilesetGFX:: ldh a, [rVBK] push af - ld a, $1 + ld a, BANK(vTiles5) ldh [rVBK], a ld hl, wDecompressScratch + $60 tiles - ld de, vTiles2 + ld de, vTiles5 ld bc, $60 tiles call CopyBytes @@ -1573,12 +1573,12 @@ GetMovementPermissions:: call .CheckHiNybble ret nz ld a, [wTileDown] - and 7 - cp $2 + and %111 + cp COLL_UP_WALL & %111 ; COLL_UP_BUOY & %111 jr z, .ok_down - cp $6 + cp COLL_UP_RIGHT_WALL & %111 ; COLL_UP_RIGHT_BUOY & %111 jr z, .ok_down - cp $7 + cp COLL_UP_LEFT_WALL & %111 ; COLL_UP_LEFT_BUOY & %111 ret nz .ok_down @@ -1591,12 +1591,12 @@ GetMovementPermissions:: call .CheckHiNybble ret nz ld a, [wTileUp] - and 7 - cp $3 + and %111 + cp COLL_DOWN_WALL & %111 ; COLL_DOWN_BUOY & %111 jr z, .ok_up - cp $4 + cp COLL_DOWN_RIGHT_WALL & %111 ; COLL_DOWN_RIGHT_BUOY & %111 jr z, .ok_up - cp $5 + cp COLL_DOWN_LEFT_WALL & %111 ; COLL_DOWN_LEFT_BUOY & %111 ret nz .ok_up @@ -1609,12 +1609,12 @@ GetMovementPermissions:: call .CheckHiNybble ret nz ld a, [wTileRight] - and 7 - cp $1 + and %111 + cp COLL_LEFT_WALL & %111 ; COLL_LEFT_BUOY & %111 jr z, .ok_right - cp $5 + cp COLL_DOWN_LEFT_WALL & %111 ; COLL_DOWN_LEFT_BUOY & %111 jr z, .ok_right - cp $7 + cp COLL_UP_LEFT_WALL & %111 ; COLL_UP_LEFT_BUOY & %111 ret nz .ok_right @@ -1627,12 +1627,12 @@ GetMovementPermissions:: call .CheckHiNybble ret nz ld a, [wTileLeft] - and 7 - cp $0 + and %111 + cp COLL_RIGHT_WALL & %111 ; COLL_RIGHT_BUOY & %111 jr z, .ok_left - cp $4 + cp COLL_DOWN_RIGHT_WALL & %111 ; COLL_DOWN_RIGHT_BUOY & %111 jr z, .ok_left - cp $6 + cp COLL_UP_RIGHT_WALL & %111 ; COLL_UP_RIGHT_BUOY & %111 ret nz .ok_left @@ -1645,7 +1645,7 @@ GetMovementPermissions:: and $f0 cp HI_NYBBLE_SIDE_WALLS ret z - cp HI_NYBBLE_UNUSED_C0 + cp HI_NYBBLE_SIDE_BUOYS ret GetFacingTileCoord:: @@ -1799,7 +1799,7 @@ CheckIfFacingTileCoordIsBGEvent:: .next pop hl - ld a, 5 ; BG event event length + ld a, BG_EVENT_SIZE add l ld l, a jr nc, .nocarry @@ -1814,7 +1814,7 @@ CheckIfFacingTileCoordIsBGEvent:: .copysign pop hl ld de, wCurBGEventYCoord - ld bc, 5 ; BG event event length + ld bc, BG_EVENT_SIZE call CopyBytes scf ret @@ -1871,7 +1871,7 @@ CheckCurrentMapCoordEvents:: .next pop hl - ld a, $8 ; coord event size + ld a, COORD_EVENT_SIZE add l ld l, a jr nc, .nocarry @@ -1886,7 +1886,7 @@ CheckCurrentMapCoordEvents:: .copy_coord_event pop hl ld de, wCurCoordEventSceneID - ld bc, 8 ; coord event size + ld bc, COORD_EVENT_SIZE call CopyBytes scf ret diff --git a/home/stone_queue.asm b/home/stone_queue.asm index b32fc10bd..482299d9c 100644 --- a/home/stone_queue.asm +++ b/home/stone_queue.asm @@ -76,7 +76,7 @@ HandleStoneQueue:: jr .found_warp .not_on_warp - ld a, 5 + ld a, WARP_EVENT_SIZE add l ld l, a jr nc, .no_carry diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm index 7f5947a55..1dd8a4ce8 100644 --- a/macros/scripts/maps.asm +++ b/macros/scripts/maps.asm @@ -32,7 +32,7 @@ coord_event: MACRO db \3, \2, \1 db 0 ; filler dw \4 - db 0, 0 ; filler + dw 0 ; filler ENDM bg_event: MACRO