123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451 |
- RocketHideout2Script:
- call EnableAutoTextBoxDrawing
- ld hl, RocketHideout2TrainerHeader0
- ld de, RocketHideout2ScriptPointers
- ld a, [wRocketHideout2CurScript]
- call ExecuteCurMapScriptInTable
- ld [wRocketHideout2CurScript], a
- ret
- RocketHideout2ScriptPointers:
- dw RocketHideout2Script0
- dw DisplayEnemyTrainerTextAndStartBattle
- dw EndTrainerBattle
- dw RocketHideout2Script3
- RocketHideout2Script0:
- ld a, [wYCoord]
- ld b, a
- ld a, [wXCoord]
- ld c, a
- ld hl, RocketHideout2ArrowTilePlayerMovement
- call DecodeArrowMovementRLE
- cp $ff
- jp z, CheckFightingMapTrainers
- ld hl, wd736
- set 7, [hl]
- call StartSimulatingJoypadStates
- ld a, SFX_ARROW_TILES
- call PlaySound
- ld a, $ff
- ld [wJoyIgnore], a
- ld a, $3
- ld [wCurMapScript], a
- ret
- ;format:
- ;db y,x
- ;dw pointer to movement
- RocketHideout2ArrowTilePlayerMovement:
- 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:
- db D_LEFT,$02
- db $FF
- RocketHideout2ArrowMovement2:
- db D_RIGHT,$04
- db $FF
- RocketHideout2ArrowMovement3:
- db D_UP,$04
- db D_RIGHT,$04
- db $FF
- RocketHideout2ArrowMovement4:
- db D_UP,$04
- db D_RIGHT,$04
- db D_UP,$01
- db $FF
- RocketHideout2ArrowMovement5:
- db D_LEFT,$02
- db D_UP,$03
- db $FF
- RocketHideout2ArrowMovement6:
- db D_DOWN,$02
- db D_RIGHT,$04
- db $FF
- RocketHideout2ArrowMovement7:
- db D_UP,$02
- db $FF
- RocketHideout2ArrowMovement8:
- db D_UP,$04
- db $FF
- RocketHideout2ArrowMovement9:
- db D_LEFT,$06
- db $FF
- RocketHideout2ArrowMovement10:
- db D_UP,$01
- db $FF
- RocketHideout2ArrowMovement11:
- db D_LEFT,$06
- db D_UP,$04
- db $FF
- RocketHideout2ArrowMovement12:
- db D_DOWN,$02
- db $FF
- RocketHideout2ArrowMovement13:
- db D_LEFT,$08
- db $FF
- RocketHideout2ArrowMovement14:
- db D_LEFT,$08
- db D_UP,$01
- db $FF
- RocketHideout2ArrowMovement15:
- db D_LEFT,$08
- db D_UP,$06
- db $FF
- RocketHideout2ArrowMovement16:
- db D_UP,$02
- db D_RIGHT,$04
- db $FF
- RocketHideout2ArrowMovement17:
- db D_UP,$02
- db D_RIGHT,$04
- db D_UP,$02
- db $FF
- RocketHideout2ArrowMovement18:
- db D_DOWN,$02
- db D_RIGHT,$04
- db D_DOWN,$02
- db $FF
- RocketHideout2ArrowMovement19:
- db D_DOWN,$02
- db D_RIGHT,$04
- db $FF
- RocketHideout2ArrowMovement20:
- db D_LEFT,$0A
- db $FF
- RocketHideout2ArrowMovement21:
- db D_LEFT,$0A
- db D_UP,$02
- db $FF
- RocketHideout2ArrowMovement22:
- db D_LEFT,$0A
- db D_UP,$04
- db $FF
- RocketHideout2ArrowMovement23:
- db D_UP,$02
- db D_RIGHT,$02
- db $FF
- RocketHideout2ArrowMovement24:
- db D_RIGHT,$01
- db D_DOWN,$02
- db $FF
- RocketHideout2ArrowMovement25:
- db D_RIGHT,$01
- db $FF
- RocketHideout2ArrowMovement26:
- db D_DOWN,$02
- db D_RIGHT,$02
- db $FF
- RocketHideout2ArrowMovement27:
- db D_DOWN,$02
- db D_LEFT,$02
- db $FF
- RocketHideout2ArrowMovement28:
- db D_UP,$02
- db D_RIGHT,$04
- db D_UP,$02
- db D_LEFT,$03
- db $FF
- RocketHideout2ArrowMovement29:
- db D_DOWN,$02
- db D_LEFT,$04
- db $FF
- RocketHideout2ArrowMovement30:
- db D_LEFT,$06
- db D_UP,$04
- db D_LEFT,$05
- db $FF
- RocketHideout2ArrowMovement31:
- db D_UP,$02
- db $FF
- RocketHideout2ArrowMovement32:
- db D_UP,$01
- db $FF
- RocketHideout2ArrowMovement33:
- db D_UP,$03
- db $FF
- RocketHideout2ArrowMovement34:
- db D_UP,$05
- db $FF
- RocketHideout2ArrowMovement35:
- db D_RIGHT,$01
- db D_DOWN,$02
- db D_LEFT,$04
- db $FF
- RocketHideout2ArrowMovement36:
- db D_LEFT,$0A
- db D_UP,$02
- db D_LEFT,$05
- db $FF
- RocketHideout2Script3:
- ld a, [wSimulatedJoypadStatesIndex]
- and a
- jr nz, LoadSpinnerArrowTiles
- xor a
- ld [wJoyIgnore], a
- ld hl, wd736
- res 7, [hl]
- ld a, $0
- ld [wCurMapScript], a
- ret
- LoadSpinnerArrowTiles:
- ld a, [wSpriteStateData1 + 2]
- srl a
- srl a
- ld hl, SpinnerPlayerFacingDirections
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ld [wSpriteStateData1 + 2], 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: 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
- 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/spinner_arrow.2bpp"
- RocketHideout2TextPointers:
- dw RocketHideout2Text1
- dw PickUpItemText
- dw PickUpItemText
- dw PickUpItemText
- dw PickUpItemText
- RocketHideout2TrainerHeader0:
- dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_2_TRAINER_0
- db ($4 << 4) ; trainer's view range
- dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_2_TRAINER_0
- dw RocketHideout2BattleText2 ; TextBeforeBattle
- dw RocketHideout2AfterBattleTxt2 ; TextAfterBattle
- dw RocketHideout2EndBattleText2 ; TextEndBattle
- dw RocketHideout2EndBattleText2 ; TextEndBattle
- db $ff
- RocketHideout2Text1:
- TX_ASM
- ld hl, RocketHideout2TrainerHeader0
- call TalkToTrainer
- jp TextScriptEnd
- RocketHideout2BattleText2:
- TX_FAR _RocketHideout2BattleText2
- db "@"
- RocketHideout2EndBattleText2:
- TX_FAR _RocketHideout2EndBattleText2
- db "@"
- RocketHideout2AfterBattleTxt2:
- TX_FAR _RocketHideout2AfterBattleTxt2
- db "@"
|