ref: 79dc22c769a5a84b561884508e2643747cf9ec08
parent: dc396822d7e69764402fa3673eb1fee95cd3122e
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Sun Mar 3 09:19:16 EST 2019
Define constants for map event sizes
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -86,6 +86,14 @@
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
--- a/data/maps/scenes.asm
+++ b/data/maps/scenes.asm
@@ -84,4 +84,4 @@
scene_var MOUNT_MOON_SQUARE, wMountMoonSquareSceneID
scene_var MOBILE_TRADE_ROOM, wMobileTradeRoomSceneID
scene_var MOBILE_BATTLE_ROOM, wMobileBattleRoomSceneID
- db -1
+ db -1 ; end
--- a/engine/events/checkforhiddenitems.asm
+++ b/engine/events/checkforhiddenitems.asm
@@ -60,7 +60,7 @@
.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]
--- a/engine/overworld/events.asm
+++ b/engine/overworld/events.asm
@@ -418,7 +418,7 @@
ld a, [hli]
ld h, [hl]
ld l, a
-rept 4
+rept SCENE_SCRIPT_SIZE
add hl, de
endr
--- a/home/map.asm
+++ b/home/map.asm
@@ -46,8 +46,8 @@
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 @@
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 @@
.next
pop hl
- ld de, 4 ; scene_script size
+ ld de, 4 ; scene_var size
add hl, de
jr .loop
@@ -275,7 +275,7 @@
.next
pop hl
- ld a, 5
+ ld a, WARP_EVENT_SIZE
add l
ld l, a
jr nc, .okay
@@ -325,9 +325,9 @@
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 @@
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 @@
and a
ret z
- ld bc, 4 ; scene_script size
+ ld bc, SCENE_SCRIPT_SIZE
call AddNTimes
ret
@@ -514,7 +514,7 @@
and a
ret z
- ld bc, 3
+ ld bc, CALLBACK_SIZE
call AddNTimes
ret
@@ -529,7 +529,7 @@
ld a, c
and a
ret z
- ld bc, 5
+ ld bc, WARP_EVENT_SIZE
call AddNTimes
ret
@@ -546,7 +546,7 @@
and a
ret z
- ld bc, 8
+ ld bc, COORD_EVENT_SIZE
call AddNTimes
ret
@@ -563,7 +563,7 @@
and a
ret z
- ld bc, 5
+ ld bc, BG_EVENT_SIZE
call AddNTimes
ret
@@ -622,7 +622,7 @@
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 @@
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 @@
ld l, a
or h
ret z
- ld de, 3
+ ld de, CALLBACK_SIZE
.loop
ld a, [hl]
cp b
@@ -1799,7 +1799,7 @@
.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 @@
.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 @@
.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 @@
.copy_coord_event
pop hl
ld de, wCurCoordEventSceneID
- ld bc, 8 ; coord event size
+ ld bc, COORD_EVENT_SIZE
call CopyBytes
scf
ret
--- a/home/stone_queue.asm
+++ b/home/stone_queue.asm
@@ -76,7 +76,7 @@
jr .found_warp
.not_on_warp
- ld a, 5
+ ld a, WARP_EVENT_SIZE
add l
ld l, a
jr nc, .no_carry
--- a/macros/scripts/maps.asm
+++ b/macros/scripts/maps.asm
@@ -32,7 +32,7 @@
db \3, \2, \1
db 0 ; filler
dw \4
- db 0, 0 ; filler
+ dw 0 ; filler
ENDM
bg_event: MACRO