pokered/scripts/mtmoon3.asm

407 lines
7.4 KiB
NASM
Raw Normal View History

2016-06-12 00:24:04 +00:00
MtMoon3Script:
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
ld hl, MtMoon3TrainerHeader0
2014-05-18 18:19:10 +00:00
ld de, MtMoon3ScriptPointers
2015-08-31 02:38:41 +00:00
ld a, [wMtMoon3CurScript]
2014-05-18 18:19:10 +00:00
call ExecuteCurMapScriptInTable
2015-08-31 02:38:41 +00:00
ld [wMtMoon3CurScript], a
2015-07-21 17:36:03 +00:00
CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD
2014-05-18 18:19:10 +00:00
ret z
ld hl, CoordsData_49d37
call ArePlayerCoordsInArray
jr nc, .asm_49d31
ld hl, wd72e
2014-05-18 18:19:10 +00:00
set 4, [hl]
ret
.asm_49d31
ld hl, wd72e
2014-05-18 18:19:10 +00:00
res 4, [hl]
ret
2016-06-12 00:24:04 +00:00
CoordsData_49d37:
2014-05-18 18:19:10 +00:00
db $05,$0B
db $05,$0C
db $05,$0D
db $05,$0E
db $06,$0B
db $06,$0C
db $06,$0D
db $06,$0E
db $07,$0B
db $07,$0C
db $07,$0D
db $07,$0E
db $08,$0B
db $08,$0C
db $08,$0D
db $08,$0E
db $FF
2016-06-12 00:24:04 +00:00
MtMoon3Script_49d58:
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2015-08-31 02:38:41 +00:00
ld [wMtMoon3CurScript], a
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
MtMoon3ScriptPointers:
2014-05-18 18:19:10 +00:00
dw MtMoon3Script0
2014-09-14 18:29:18 +00:00
dw DisplayEnemyTrainerTextAndStartBattle
2014-05-18 18:19:10 +00:00
dw EndTrainerBattle
dw MtMoon3Script3
dw MtMoon3Script4
dw MtMoon3Script5
2016-06-12 00:24:04 +00:00
MtMoon3Script0:
2015-07-21 17:36:03 +00:00
CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD
2014-05-18 18:19:10 +00:00
jp nz, MtMoon3Script_49d91
2015-08-31 02:38:41 +00:00
ld a, [wYCoord]
2014-05-18 18:19:10 +00:00
cp $8
jp nz, MtMoon3Script_49d91
2015-08-31 02:38:41 +00:00
ld a, [wXCoord]
2014-05-18 18:19:10 +00:00
cp $d
jp nz, MtMoon3Script_49d91
xor a
2014-05-25 17:51:53 +00:00
ld [hJoyHeld], a
2014-05-18 18:19:10 +00:00
ld a, $1
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
jp DisplayTextID
2016-06-12 00:24:04 +00:00
MtMoon3Script_49d91:
2015-07-21 17:36:03 +00:00
CheckEitherEventSet EVENT_GOT_DOME_FOSSIL, EVENT_GOT_HELIX_FOSSIL
2014-05-18 18:19:10 +00:00
jp z, CheckFightingMapTrainers
ret
2016-06-12 00:24:04 +00:00
MtMoon3Script3:
2015-08-31 02:38:41 +00:00
ld a, [wIsInBattle]
2014-05-18 18:19:10 +00:00
cp $ff
jp z, MtMoon3Script_49d58
call UpdateSprites
call Delay3
2015-07-21 17:36:03 +00:00
SetEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
ld a, $0
2015-08-31 02:38:41 +00:00
ld [wMtMoon3CurScript], a
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
MtMoon3Script4:
2014-05-18 18:19:10 +00:00
ld a, $1
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
2014-05-18 18:19:10 +00:00
call SetSpriteMovementBytesToFF
ld hl, CoordsData_49dea
call ArePlayerCoordsInArray
jr c, .asm_49dd7
ld hl, CoordsData_49df1
call ArePlayerCoordsInArray
jp nc, CheckFightingMapTrainers
ld de, MovementData_49df9
jr .asm_49dda
.asm_49dd7
ld de, MovementData_49df8
.asm_49dda
ld a, $1
2015-07-18 15:17:29 +00:00
ld [H_SPRITEINDEX], a
2014-05-18 18:19:10 +00:00
call MoveSprite
ld a, $5
2015-08-31 02:38:41 +00:00
ld [wMtMoon3CurScript], a
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
CoordsData_49dea:
2014-05-18 18:19:10 +00:00
db $07,$0C
db $06,$0B
db $05,$0C
db $FF
2016-06-12 00:24:04 +00:00
CoordsData_49df1:
2014-05-18 18:19:10 +00:00
db $07,$0D
db $06,$0E
db $05,$0E
db $FF
2016-06-12 00:24:04 +00:00
MovementData_49df8:
db NPC_MOVEMENT_RIGHT
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
MovementData_49df9:
db NPC_MOVEMENT_UP,$FF
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
MtMoon3Script5:
ld a, [wd730]
2014-05-18 18:19:10 +00:00
bit 0, a
ret nz
ld a, $f0
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
ld a, $1
2014-09-13 07:50:56 +00:00
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
2014-05-18 18:19:10 +00:00
ld a, $a
2015-07-18 15:17:29 +00:00
ld [hSpriteIndexOrTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
2015-07-21 17:36:03 +00:00
CheckEvent EVENT_GOT_DOME_FOSSIL
2014-05-18 18:19:10 +00:00
jr z, .asm_49e1d
ld a, HS_MT_MOON_3_FOSSIL_2
2014-05-18 18:19:10 +00:00
jr .asm_49e1f
.asm_49e1d
ld a, HS_MT_MOON_3_FOSSIL_1
2014-05-18 18:19:10 +00:00
.asm_49e1f
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef HideObject
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2014-05-18 18:19:10 +00:00
ld a, $0
2015-08-31 02:38:41 +00:00
ld [wMtMoon3CurScript], a
ld [wCurMapScript], a
2014-05-18 18:19:10 +00:00
ret
2016-06-12 00:24:04 +00:00
MtMoon3TextPointers:
2014-05-18 18:19:10 +00:00
dw MtMoon3Text1
dw MtMoon3Text2
dw MtMoon3Text3
dw MtMoon3Text4
dw MtMoon3Text5
dw MtMoon3Text6
dw MtMoon3Text7
2015-07-18 15:17:29 +00:00
dw PickUpItemText
dw PickUpItemText
2014-05-18 18:19:10 +00:00
dw MtMoon3Text_49f99
2016-06-12 00:24:04 +00:00
MtMoon3TrainerHeader0:
2015-07-21 01:32:02 +00:00
dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_0
2014-05-18 18:19:10 +00:00
db ($4 << 4) ; trainer's view range
2015-07-21 01:32:02 +00:00
dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_0
dw MtMoon3BattleText2 ; TextBeforeBattle
dw MtMoon3AfterBattleText2 ; TextAfterBattle
dw MtMoon3EndBattleText2 ; TextEndBattle
dw MtMoon3EndBattleText2 ; TextEndBattle
2014-05-18 18:19:10 +00:00
MtMoon3TrainerHeader1:
dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_1
2014-05-18 18:19:10 +00:00
db ($4 << 4) ; trainer's view range
dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_1
dw MtMoon3BattleText3 ; TextBeforeBattle
dw MtMoon3AfterBattleText3 ; TextAfterBattle
dw MtMoon3EndBattleText3 ; TextEndBattle
dw MtMoon3EndBattleText3 ; TextEndBattle
2014-05-18 18:19:10 +00:00
MtMoon3TrainerHeader2:
dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_2
2014-05-18 18:19:10 +00:00
db ($4 << 4) ; trainer's view range
dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_2
dw MtMoon3BattleText4 ; TextBeforeBattle
dw MtMoon3AfterBattleText4 ; TextAfterBattle
dw MtMoon3EndBattleText4 ; TextEndBattle
dw MtMoon3EndBattleText4 ; TextEndBattle
2014-05-18 18:19:10 +00:00
MtMoon3TrainerHeader3:
dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_3
2014-05-18 18:19:10 +00:00
db ($4 << 4) ; trainer's view range
dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_3
dw MtMoon3BattleText5 ; TextBeforeBattle
dw MtMoon3AfterBattleText5 ; TextAfterBattle
dw MtMoon3EndBattleText5 ; TextEndBattle
dw MtMoon3EndBattleText5 ; TextEndBattle
2014-05-18 18:19:10 +00:00
db $ff
2016-06-12 00:24:04 +00:00
MtMoon3Text1:
2015-07-03 19:58:50 +00:00
TX_ASM
2015-07-21 17:36:03 +00:00
CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD
jr z, .asm_49e8d
2014-05-18 18:19:10 +00:00
and $c0
jr nz, .asm_49eb8
2014-05-18 18:19:10 +00:00
ld hl, MtMoon3Text_49f8f
call PrintText
jr .asm_49ebe
.asm_49e8d
2014-05-18 18:19:10 +00:00
ld hl, MtMoon3Text_49f85
call PrintText
ld hl, wd72d
2014-05-18 18:19:10 +00:00
set 6, [hl]
set 7, [hl]
ld hl, MtMoon3Text_49f8a
ld de, MtMoon3Text_49f8a
2014-09-14 18:29:18 +00:00
call SaveEndBattleTextPointers
2015-07-03 20:13:35 +00:00
ld a, [H_SPRITEINDEX]
2014-09-13 07:50:56 +00:00
ld [wSpriteIndex], a
2014-05-18 18:19:10 +00:00
call EngageMapTrainer
call InitBattleEnemyParameters
ld a, $3
2015-08-31 02:38:41 +00:00
ld [wMtMoon3CurScript], a
ld [wCurMapScript], a
jr .asm_49ebe
.asm_49eb8
2014-05-18 18:19:10 +00:00
ld hl, MtMoon3Text_49f94
call PrintText
.asm_49ebe
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
MtMoon3Text2:
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
ld hl, MtMoon3TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
MtMoon3Text3:
2015-07-03 19:58:50 +00:00
TX_ASM
ld hl, MtMoon3TrainerHeader1
2014-05-18 18:19:10 +00:00
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
MtMoon3Text4:
2015-07-03 19:58:50 +00:00
TX_ASM
ld hl, MtMoon3TrainerHeader2
2014-05-18 18:19:10 +00:00
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
MtMoon3Text5:
2015-07-03 19:58:50 +00:00
TX_ASM
ld hl, MtMoon3TrainerHeader3
2014-05-18 18:19:10 +00:00
call TalkToTrainer
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
MtMoon3Text6:
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
ld a, $1
2014-09-13 07:50:56 +00:00
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
2014-05-18 18:19:10 +00:00
ld hl, MtMoon3Text_49f24
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
2014-05-18 18:19:10 +00:00
and a
jr nz, .asm_49f21
2015-08-05 21:20:29 +00:00
lb bc, DOME_FOSSIL, 1
2014-05-18 18:19:10 +00:00
call GiveItem
jp nc, MtMoon3Script_49f76
call MtMoon3Script_49f69
ld a, HS_MT_MOON_3_FOSSIL_1
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef HideObject
2015-07-21 17:36:03 +00:00
SetEvent EVENT_GOT_DOME_FOSSIL
2014-05-18 18:19:10 +00:00
ld a, $4
2015-08-31 02:38:41 +00:00
ld [wMtMoon3CurScript], a
ld [wCurMapScript], a
.asm_49f21
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
MtMoon3Text_49f24:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3Text_49f24
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3Text7:
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
ld a, $1
2014-09-13 07:50:56 +00:00
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
2014-05-18 18:19:10 +00:00
ld hl, MtMoon3Text_49f64
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
2014-05-18 18:19:10 +00:00
and a
jr nz, .asm_49f61
2015-08-05 21:20:29 +00:00
lb bc, HELIX_FOSSIL, 1
2014-05-18 18:19:10 +00:00
call GiveItem
jp nc, MtMoon3Script_49f76
call MtMoon3Script_49f69
ld a, HS_MT_MOON_3_FOSSIL_2
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef HideObject
2015-07-21 17:36:03 +00:00
SetEvent EVENT_GOT_HELIX_FOSSIL
2014-05-18 18:19:10 +00:00
ld a, $4
2015-08-31 02:38:41 +00:00
ld [wMtMoon3CurScript], a
ld [wCurMapScript], a
.asm_49f61
2014-05-18 18:19:10 +00:00
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
MtMoon3Text_49f64:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3Text_49f64
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3Script_49f69:
2014-05-18 18:19:10 +00:00
ld hl, MtMoon3Text_49f6f
jp PrintText
2016-06-12 00:24:04 +00:00
MtMoon3Text_49f6f:
TX_FAR _MtMoon3Text_49f6f
2016-07-18 06:17:03 +00:00
TX_SFX_KEY_ITEM
TX_WAIT
db "@"
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
MtMoon3Script_49f76:
2014-05-18 18:19:10 +00:00
ld hl, MtMoon3Text_49f7f
call PrintText
jp TextScriptEnd
2016-06-12 00:24:04 +00:00
MtMoon3Text_49f7f:
TX_FAR _MtMoon3Text_49f7f
2016-07-18 06:17:03 +00:00
TX_WAIT
db "@"
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
MtMoon3Text_49f85:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3Text_49f85
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3Text_49f8a:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3Text_49f8a
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3Text_49f8f:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3Text_49f8f
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3Text_49f94:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3Text_49f94
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3Text_49f99:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3Text_49f99
2016-07-18 06:17:03 +00:00
TX_SFX_KEY_ITEM
db "@"
2014-05-18 18:19:10 +00:00
2016-06-12 00:24:04 +00:00
MtMoon3BattleText2:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3BattleText2
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3EndBattleText2:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3EndBattleText2
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3AfterBattleText2:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3AfterBattleText2
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3BattleText3:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3BattleText3
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3EndBattleText3:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3EndBattleText3
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3AfterBattleText3:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3AfterBattleText3
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3BattleText4:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3BattleText4
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3EndBattleText4:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3EndBattleText4
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3AfterBattleText4:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3AfterBattleText4
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3BattleText5:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3BattleText5
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3EndBattleText5:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3EndBattleText5
db "@"
2016-06-12 00:24:04 +00:00
MtMoon3AfterBattleText5:
2014-05-18 18:19:10 +00:00
TX_FAR _MtMoon3AfterBattleText5
db "@"