From 79dc22c769a5a84b561884508e2643747cf9ec08 Mon Sep 17 00:00:00 2001 From: Rangi Date: Sun, 3 Mar 2019 14:19:16 -0500 Subject: [PATCH] Define constants for map event sizes --- constants/script_constants.asm | 8 +++++ data/maps/scenes.asm | 2 +- engine/events/checkforhiddenitems.asm | 2 +- engine/overworld/events.asm | 2 +- home/map.asm | 46 +++++++++++++-------------- home/stone_queue.asm | 2 +- macros/scripts/maps.asm | 2 +- 7 files changed, 36 insertions(+), 28 deletions(-) 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/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/home/map.asm b/home/map.asm index 75c804e9f..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,9 +325,9 @@ 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 + ld bc, 2 ; warp number add hl, bc ld a, [hli] cp $ff @@ -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 ; warp size + 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 @@ -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