shithub: pokered

Download patch

ref: be326c65652d5e87e353172a4471458822ffd3da
parent: fcb573f4ac006b73827b6fc317fc7501e17004ae
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Tue Jul 14 11:14:32 EDT 2020

Factor out spinner tiles from RocketHideoutB2F since they're also used by ViridianGym, and to make their data and code more accessible

--- /dev/null
+++ b/data/tilesets/spinner_tiles.asm
@@ -1,0 +1,29 @@
+spinner: MACRO
+; \1: source
+; \2: offset (BANK() chokes on literals)
+; \3: dest
+	dw \1 tile \2
+	db 1
+	db BANK(\1)
+	dw vTileset tile \3
+ENDM
+
+FacilitySpinnerArrows:
+	spinner SpinnerArrowAnimTiles, 0,   $20
+	spinner SpinnerArrowAnimTiles, 1,   $21
+	spinner SpinnerArrowAnimTiles, 2,   $30
+	spinner SpinnerArrowAnimTiles, 3,   $31
+	spinner Facility_GFX,          $20, $20
+	spinner Facility_GFX,          $21, $21
+	spinner Facility_GFX,          $30, $30
+	spinner Facility_GFX,          $31, $31
+
+GymSpinnerArrows:
+	spinner SpinnerArrowAnimTiles, 1,   $3c
+	spinner SpinnerArrowAnimTiles, 3,   $3d
+	spinner SpinnerArrowAnimTiles, 0,   $4c
+	spinner SpinnerArrowAnimTiles, 2,   $4d
+	spinner Gym_GFX,               $3c, $3c
+	spinner Gym_GFX,               $3d, $3d
+	spinner Gym_GFX,               $4c, $4c
+	spinner Gym_GFX,               $4d, $4d
--- /dev/null
+++ b/engine/overworld/spinners.asm
@@ -1,0 +1,65 @@
+LoadSpinnerArrowTiles::
+	ld a, [wSpritePlayerStateData1ImageIndex]
+	srl a
+	srl a
+	ld hl, SpinnerPlayerFacingDirections
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [hl]
+	ld [wSpritePlayerStateData1ImageIndex], a
+	ld a, [wCurMapTileset]
+	cp FACILITY
+	ld hl, FacilitySpinnerArrows
+	jr z, .asm_44ff6
+	ld hl, GymSpinnerArrows
+.asm_44ff6
+	ld a, [wSimulatedJoypadStatesIndex]
+	bit 0, a
+	jr nz, .asm_45001
+	ld de, $18
+	add hl, de
+.asm_45001
+	ld a, $4
+	ld bc, $0
+.asm_45006
+	push af
+	push hl
+	push bc
+	add hl, bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	call CopyVideoData
+	pop bc
+	ld a, $6
+	add c
+	ld c, a
+	pop hl
+	pop af
+	dec a
+	jr nz, .asm_45006
+	ret
+
+INCLUDE "data/tilesets/spinner_tiles.asm"
+
+SpinnerPlayerFacingDirections:
+; This isn't the order of the facing directions.  Rather, it's a list of
+; the facing directions that come next. For example, when the player is
+; facing down (00), the next facing direction is left (08).
+	db $08 ; down -> left
+	db $0C ; up -> right
+	db $04 ; left -> up
+	db $00 ; right -> down
+
+; these tiles are the animation for the tiles that push the player in dungeons like Rocket HQ
+SpinnerArrowAnimTiles:
+	INCBIN "gfx/overworld/spinners.2bpp"
--- a/scripts/RocketHideoutB2F.asm
+++ b/scripts/RocketHideoutB2F.asm
@@ -313,99 +313,7 @@
 	ld [wCurMapScript], a
 	ret
 
-LoadSpinnerArrowTiles::
-	ld a, [wSpritePlayerStateData1ImageIndex]
-	srl a
-	srl a
-	ld hl, SpinnerPlayerFacingDirections
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [hl]
-	ld [wSpritePlayerStateData1ImageIndex], a
-	ld a, [wCurMapTileset]
-	cp FACILITY
-	ld hl, FacilitySpinnerArrows
-	jr z, .asm_44ff6
-	ld hl, GymSpinnerArrows
-.asm_44ff6
-	ld a, [wSimulatedJoypadStatesIndex]
-	bit 0, a
-	jr nz, .asm_45001
-	ld de, $18
-	add hl, de
-.asm_45001
-	ld a, $4
-	ld bc, $0
-.asm_45006
-	push af
-	push hl
-	push bc
-	add hl, bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	call CopyVideoData
-	pop bc
-	ld a, $6
-	add c
-	ld c, a
-	pop hl
-	pop af
-	dec a
-	jr nz, .asm_45006
-	ret
-
-spinner: MACRO
-; \1: source
-; \2: offset (BANK() chokes on literals)
-; \3: dest
-	dw \1 tile \2
-	db 1
-	db BANK(\1)
-	dw vTileset tile \3
-ENDM
-
-FacilitySpinnerArrows:
-	spinner SpinnerArrowAnimTiles, 0,   $20
-	spinner SpinnerArrowAnimTiles, 1,   $21
-	spinner SpinnerArrowAnimTiles, 2,   $30
-	spinner SpinnerArrowAnimTiles, 3,   $31
-	spinner Facility_GFX,          $20, $20
-	spinner Facility_GFX,          $21, $21
-	spinner Facility_GFX,          $30, $30
-	spinner Facility_GFX,          $31, $31
-
-GymSpinnerArrows:
-	spinner SpinnerArrowAnimTiles, 1,   $3c
-	spinner SpinnerArrowAnimTiles, 3,   $3d
-	spinner SpinnerArrowAnimTiles, 0,   $4c
-	spinner SpinnerArrowAnimTiles, 2,   $4d
-	spinner Gym_GFX,               $3c, $3c
-	spinner Gym_GFX,               $3d, $3d
-	spinner Gym_GFX,               $4c, $4c
-	spinner Gym_GFX,               $4d, $4d
-
-SpinnerPlayerFacingDirections:
-; This isn't the order of the facing directions.  Rather, it's a list of
-; the facing directions that come next. For example, when the player is
-; facing down (00), the next facing direction is left (08).
-	db $08 ; down -> left
-	db $0C ; up -> right
-	db $04 ; left -> up
-	db $00 ; right -> down
-
-; these tiles are the animation for the tiles that push the player in dungeons like Rocket HQ
-SpinnerArrowAnimTiles:
-	INCBIN "gfx/overworld/spinners.2bpp"
+INCLUDE "engine/overworld/spinners.asm"
 
 RocketHideoutB2F_TextPointers:
 	dw RocketHideout2Text1