pokered/scripts/rockethideout2.asm

452 lines
9.4 KiB
NASM
Raw Normal View History

2014-05-18 18:19:10 +00:00
RocketHideout2Script: ; 44e27 (11:4e27)
call EnableAutoTextBoxDrawing
ld hl, RocketHideout2TrainerHeaders
ld de, RocketHideout2ScriptPointers
ld a, [W_ROCKETHIDEOUT2CURSCRIPT]
call ExecuteCurMapScriptInTable
ld [W_ROCKETHIDEOUT2CURSCRIPT], a
ret
RocketHideout2ScriptPointers: ; 44e3a (11:4e3a)
dw RocketHideout2Script0
2014-09-14 18:29:18 +00:00
dw DisplayEnemyTrainerTextAndStartBattle
2014-05-18 18:19:10 +00:00
dw EndTrainerBattle
dw RocketHideout2Script3
RocketHideout2Script0: ; 44e42 (11:4e42)
ld a, [W_YCOORD]
ld b, a
ld a, [W_XCOORD]
ld c, a
ld hl, RocketHideout2ArrowTilePlayerMovement
2014-09-14 18:29:18 +00:00
call DecodeArrowMovementRLE
2014-05-18 18:19:10 +00:00
cp $ff
jp z, CheckFightingMapTrainers
ld hl, wd736
2014-05-18 18:19:10 +00:00
set 7, [hl]
call StartSimulatingJoypadStates
2014-05-18 18:19:10 +00:00
ld a, (SFX_02_52 - SFX_Headers_02) / 3
call PlaySound
ld a, $ff
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
ld a, $3
ld [W_CURMAPSCRIPT], a
ret
;format:
;db y,x
;dw pointer to movement
RocketHideout2ArrowTilePlayerMovement: ; 44e6d (11:4e6d)
db $9,$4
dw RocketHideout2ArrowMovement1
db $b,$4
dw RocketHideout2ArrowMovement2
db $f,$4
dw RocketHideout2ArrowMovement3
db $10,$4
dw RocketHideout2ArrowMovement4
db $13,$4
dw RocketHideout2ArrowMovement1
db $16,$4
dw RocketHideout2ArrowMovement5
db $e,$5
dw RocketHideout2ArrowMovement6
db $16,$6
dw RocketHideout2ArrowMovement7
db $18,$6
dw RocketHideout2ArrowMovement8
db $9,$8
dw RocketHideout2ArrowMovement9
db $c,$8
dw RocketHideout2ArrowMovement10
db $f,$8
dw RocketHideout2ArrowMovement8
db $13,$8
dw RocketHideout2ArrowMovement9
db $17,$8
dw RocketHideout2ArrowMovement11
db $e,$9
dw RocketHideout2ArrowMovement12
db $16,$9
dw RocketHideout2ArrowMovement12
db $9,$a
dw RocketHideout2ArrowMovement13
db $a,$a
dw RocketHideout2ArrowMovement14
db $f,$a
dw RocketHideout2ArrowMovement15
db $11,$a
dw RocketHideout2ArrowMovement16
db $13,$a
dw RocketHideout2ArrowMovement17
db $19,$a
dw RocketHideout2ArrowMovement2
db $e,$b
dw RocketHideout2ArrowMovement18
db $10,$b
dw RocketHideout2ArrowMovement19
db $12,$b
dw RocketHideout2ArrowMovement12
db $9,$c
dw RocketHideout2ArrowMovement20
db $b,$c
dw RocketHideout2ArrowMovement21
db $d,$c
dw RocketHideout2ArrowMovement22
db $11,$c
dw RocketHideout2ArrowMovement23
db $a,$d
dw RocketHideout2ArrowMovement24
db $c,$d
dw RocketHideout2ArrowMovement25
db $10,$d
dw RocketHideout2ArrowMovement26
db $12,$d
dw RocketHideout2ArrowMovement27
db $13,$d
dw RocketHideout2ArrowMovement28
db $16,$d
dw RocketHideout2ArrowMovement29
db $17,$d
dw RocketHideout2ArrowMovement30
db $11,$e
dw RocketHideout2ArrowMovement31
db $10,$f
dw RocketHideout2ArrowMovement12
db $e,$10
dw RocketHideout2ArrowMovement32
db $10,$10
dw RocketHideout2ArrowMovement33
db $12,$10
dw RocketHideout2ArrowMovement34
db $a,$11
dw RocketHideout2ArrowMovement35
db $b,$11
dw RocketHideout2ArrowMovement36
db $FF
;format: direction, count
;each list is read starting from the $FF and working backwards
RocketHideout2ArrowMovement1: ; 44f1a (11:4f1a)
db D_LEFT,$02
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement2: ; 44f1d (11:4f1d)
db D_RIGHT,$04
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement3: ; 44f20 (11:4f20)
db D_UP,$04
db D_RIGHT,$04
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement4: ; 44f25 (11:4f25)
db D_UP,$04
db D_RIGHT,$04
db D_UP,$01
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement5: ; 44f2c (11:4f2c)
db D_LEFT,$02
db D_UP,$03
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement6: ; 44f31 (11:4f31)
db D_DOWN,$02
db D_RIGHT,$04
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement7: ; 44f36 (11:4f36)
db D_UP,$02
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement8: ; 44f39 (11:4f39)
db D_UP,$04
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement9: ; 44f3c (11:4f3c)
db D_LEFT,$06
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement10: ; 44f3f (11:4f3f)
db D_UP,$01
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement11: ; 44f42 (11:4f42)
db D_LEFT,$06
db D_UP,$04
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement12: ; 44f47 (11:4f47)
db D_DOWN,$02
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement13: ; 44f4a (11:4f4a)
db D_LEFT,$08
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement14: ; 44f4d (11:4f4d)
db D_LEFT,$08
db D_UP,$01
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement15: ; 44f52 (11:4f52)
db D_LEFT,$08
db D_UP,$06
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement16: ; 44f57 (11:4f57)
db D_UP,$02
db D_RIGHT,$04
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement17: ; 44f5c (11:4f5c)
db D_UP,$02
db D_RIGHT,$04
db D_UP,$02
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement18: ; 44f63 (11:4f63)
db D_DOWN,$02
db D_RIGHT,$04
db D_DOWN,$02
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement19: ; 44f6a (11:4f6a)
db D_DOWN,$02
db D_RIGHT,$04
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement20: ; 44f6f (11:4f6f)
db D_LEFT,$0A
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement21: ; 44f72 (11:4f72)
db D_LEFT,$0A
db D_UP,$02
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement22: ; 44f77 (11:4f77)
db D_LEFT,$0A
db D_UP,$04
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement23: ; 44f7c (11:4f7c)
db D_UP,$02
db D_RIGHT,$02
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement24: ; 44f81 (11:4f81)
db D_RIGHT,$01
db D_DOWN,$02
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement25: ; 44f86 (11:4f86)
db D_RIGHT,$01
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement26: ; 44f89 (11:4f89)
db D_DOWN,$02
db D_RIGHT,$02
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement27: ; 44f8e (11:4f8e)
db D_DOWN,$02
db D_LEFT,$02
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement28: ; 44f93 (11:4f93)
db D_UP,$02
db D_RIGHT,$04
db D_UP,$02
db D_LEFT,$03
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement29: ; 44f9c (11:4f9c)
db D_DOWN,$02
db D_LEFT,$04
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement30: ; 44fa1 (11:4fa1)
db D_LEFT,$06
db D_UP,$04
db D_LEFT,$05
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement31: ; 44fa8 (11:4fa8)
db D_UP,$02
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement32: ; 44fab (11:4fab)
db D_UP,$01
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement33: ; 44fae (11:4fae)
db D_UP,$03
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement34: ; 44fb1 (11:4fb1)
db D_UP,$05
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement35: ; 44fb4 (11:4fb4)
db D_RIGHT,$01
db D_DOWN,$02
db D_LEFT,$04
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2ArrowMovement36: ; 44fbb (11:4fbb)
db D_LEFT,$0A
db D_UP,$02
db D_LEFT,$05
2014-05-18 18:19:10 +00:00
db $FF
RocketHideout2Script3: ; 44fc2 (11:4fc2)
ld a, [wSimulatedJoypadStatesIndex]
2014-05-18 18:19:10 +00:00
and a
jr nz, LoadSpinnerArrowTiles
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld hl, wd736
2014-05-18 18:19:10 +00:00
res 7, [hl]
ld a, $0
ld [W_CURMAPSCRIPT], a
ret
LoadSpinnerArrowTiles: ; 44fd7 (11:4fd7)
ld a, [wSpriteStateData1 + 2]
2014-05-18 18:19:10 +00:00
srl a
srl a
ld hl, SpinnerPlayerFacingDirections
2014-05-18 18:19:10 +00:00
ld c, a
ld b, $0
add hl, bc
ld a, [hl]
ld [wSpriteStateData1 + 2], a
ld a, [W_CURMAPTILESET]
2014-05-18 18:19:10 +00:00
cp FACILITY
ld hl, FacilitySpinnerArrows
2014-05-18 18:19:10 +00:00
jr z, .asm_44ff6
ld hl, GymSpinnerArrows
2014-05-18 18:19:10 +00:00
.asm_44ff6
ld a, [wSimulatedJoypadStatesIndex]
2014-05-18 18:19:10 +00:00
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
2014-05-29 08:31:46 +00:00
spinner: MACRO
; \1: source
; \2: offset (BANK() chokes on literals)
; \3: length
; \4: dest
dw \1 + \2
db \3, BANK(\1)
dw \4
ENDM
FacilitySpinnerArrows:
FACILITY_SPINNER EQU $20 * $10
vFacilitySpinner EQU vTileset + FACILITY_SPINNER
spinner SpinnerArrowAnimTiles, $00, 1, vFacilitySpinner
spinner SpinnerArrowAnimTiles, $10, 1, vFacilitySpinner + $10
spinner SpinnerArrowAnimTiles, $20, 1, vFacilitySpinner + $100
spinner SpinnerArrowAnimTiles, $30, 1, vFacilitySpinner + $110
spinner Facility_GFX, FACILITY_SPINNER + $000, 1, vFacilitySpinner
spinner Facility_GFX, FACILITY_SPINNER + $010, 1, vFacilitySpinner + $10
spinner Facility_GFX, FACILITY_SPINNER + $100, 1, vFacilitySpinner + $100
spinner Facility_GFX, FACILITY_SPINNER + $110, 1, vFacilitySpinner + $110
GymSpinnerArrows:
GYM_SPINNER EQU $3c * $10
vGymSpinner EQU vTileset + GYM_SPINNER
spinner SpinnerArrowAnimTiles, $10, 1, vGymSpinner
spinner SpinnerArrowAnimTiles, $30, 1, vGymSpinner + $10
spinner SpinnerArrowAnimTiles, $00, 1, vGymSpinner + $100
spinner SpinnerArrowAnimTiles, $20, 1, vGymSpinner + $110
spinner Gym_GFX, GYM_SPINNER + $000, 1, vGymSpinner
spinner Gym_GFX, GYM_SPINNER + $010, 1, vGymSpinner + $10
spinner Gym_GFX, GYM_SPINNER + $100, 1, vGymSpinner + $100
spinner Gym_GFX, GYM_SPINNER + $110, 1, vGymSpinner + $110
2014-05-18 18:19:10 +00:00
SpinnerPlayerFacingDirections: ; 45083 (11:5083)
; 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: ; 45087 (11:5087)
INCBIN "gfx/spinner_arrow.2bpp"
RocketHideout2TextPointers: ; 450c7 (11:50c7)
dw RocketHideout2Text1
dw Predef5CText
dw Predef5CText
dw Predef5CText
dw Predef5CText
RocketHideout2TrainerHeaders: ; 450d1 (11:50d1)
RocketHideout2TrainerHeader0: ; 450d1 (11:50d1)
db $1 ; flag's bit
db ($4 << 4) ; trainer's view range
dw wd817 ; flag's byte
dw RocketHideout2BattleText2 ; TextBeforeBattle
dw RocketHideout2AfterBattleTxt2 ; TextAfterBattle
dw RocketHideout2EndBattleText2 ; TextEndBattle
dw RocketHideout2EndBattleText2 ; TextEndBattle
2014-05-18 18:19:10 +00:00
db $ff
RocketHideout2Text1: ; 450de (11:50de)
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
ld hl, RocketHideout2TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
RocketHideout2BattleText2: ; 450e8 (11:50e8)
TX_FAR _RocketHideout2BattleText2
db "@"
RocketHideout2EndBattleText2: ; 450ed (11:50ed)
TX_FAR _RocketHideout2EndBattleText2
db "@"
RocketHideout2AfterBattleTxt2: ; 450f2 (11:50f2)
TX_FAR _RocketHideout2AfterBattleTxt2
db "@"