shithub: pokecrystal

Download patch

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