kep-hack/scripts/silphco8.asm
2016-01-03 14:18:33 -05:00

185 lines
3.9 KiB
NASM
Executable file

SilphCo8Script: ; 56504 (15:6504)
call SilphCo8Script_5651a
call EnableAutoTextBoxDrawing
ld hl, SilphCo8TrainerHeader0
ld de, SilphCo8ScriptPointers
ld a, [wSilphCo8CurScript]
call ExecuteCurMapScriptInTable
ld [wSilphCo8CurScript], a
ret
SilphCo8Script_5651a: ; 5651a (15:651a)
ld hl, wCurrentMapScriptFlags
bit 5, [hl]
res 5, [hl]
ret z
ld hl, SilphCo8GateCoords
call SilphCo8Script_56541
call SilphCo8Script_5656d
CheckEvent EVENT_SILPH_CO_8_UNLOCKED_DOOR
ret nz
ld a, $5f
ld [wNewTileBlockID], a
lb bc, 4, 3
predef_jump ReplaceTileBlock
SilphCo8GateCoords: ; 5653e (15:653e)
db $04,$03
db $FF
SilphCo8Script_56541: ; 56541 (15:6541)
push hl
ld hl, wCardKeyDoorY
ld a, [hli]
ld b, a
ld a, [hl]
ld c, a
xor a
ld [$ffe0], a
pop hl
.asm_5654d
ld a, [hli]
cp $ff
jr z, .asm_56569
push hl
ld hl, $ffe0
inc [hl]
pop hl
cp b
jr z, .asm_5655e
inc hl
jr .asm_5654d
.asm_5655e
ld a, [hli]
cp c
jr nz, .asm_5654d
ld hl, wCardKeyDoorY
xor a
ld [hli], a
ld [hl], a
ret
.asm_56569
xor a
ld [$ffe0], a
ret
SilphCo8Script_5656d: ; 5656d (15:656d)
ld a, [$ffe0]
and a
ret z
SetEvent EVENT_SILPH_CO_8_UNLOCKED_DOOR
ret
SilphCo8ScriptPointers: ; 56577 (15:6577)
dw CheckFightingMapTrainers
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
SilphCo8TextPointers: ; 5657d (15:657d)
dw SilphCo8Text1
dw SilphCo8Text2
dw SilphCo8Text3
dw SilphCo8Text4
SilphCo8TrainerHeaders: ; 56585 (15:6585)
SilphCo8TrainerHeader0: ; 56585 (15:6585)
dbEventFlagBit EVENT_BEAT_SILPH_CO_8F_TRAINER_0
db ($4 << 4) ; trainer's view range
dwEventFlagAddress EVENT_BEAT_SILPH_CO_8F_TRAINER_0
dw SilphCo8BattleText1 ; TextBeforeBattle
dw SilphCo8AfterBattleText1 ; TextAfterBattle
dw SilphCo8EndBattleText1 ; TextEndBattle
dw SilphCo8EndBattleText1 ; TextEndBattle
SilphCo8TrainerHeader1: ; 56591 (15:6591)
dbEventFlagBit EVENT_BEAT_SILPH_CO_8F_TRAINER_1
db ($4 << 4) ; trainer's view range
dwEventFlagAddress EVENT_BEAT_SILPH_CO_8F_TRAINER_1
dw SilphCo8BattleText2 ; TextBeforeBattle
dw SilphCo8AfterBattleText2 ; TextAfterBattle
dw SilphCo8EndBattleText2 ; TextEndBattle
dw SilphCo8EndBattleText2 ; TextEndBattle
SilphCo8TrainerHeader2: ; 5659d (15:659d)
dbEventFlagBit EVENT_BEAT_SILPH_CO_8F_TRAINER_2
db ($4 << 4) ; trainer's view range
dwEventFlagAddress EVENT_BEAT_SILPH_CO_8F_TRAINER_2
dw SilphCo8BattleText3 ; TextBeforeBattle
dw SilphCo8AfterBattleText3 ; TextAfterBattle
dw SilphCo8EndBattleText3 ; TextEndBattle
dw SilphCo8EndBattleText3 ; TextEndBattle
db $ff
SilphCo8Text1: ; 565aa (15:65aa)
TX_ASM
CheckEvent EVENT_BEAT_SILPH_CO_GIOVANNI
ld hl, SilphCo8Text_565c3
jr nz, .asm_565b8
ld hl, SilphCo8Text_565be
.asm_565b8
call PrintText
jp TextScriptEnd
SilphCo8Text_565be: ; 565be (15:65be)
TX_FAR _SilphCo8Text_565be
db "@"
SilphCo8Text_565c3: ; 565c3 (15:65c3)
TX_FAR _SilphCo8Text_565c3
db "@"
SilphCo8Text2: ; 565c8 (15:65c8)
TX_ASM
ld hl, SilphCo8TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
SilphCo8Text3: ; 565d2 (15:65d2)
TX_ASM
ld hl, SilphCo8TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
SilphCo8Text4: ; 565dc (15:65dc)
TX_ASM
ld hl, SilphCo8TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
SilphCo8BattleText1: ; 565e6 (15:65e6)
TX_FAR _SilphCo8BattleText1
db "@"
SilphCo8EndBattleText1: ; 565eb (15:65eb)
TX_FAR _SilphCo8EndBattleText1
db "@"
SilphCo8AfterBattleText1: ; 565f0 (15:65f0)
TX_FAR _SilphCo8AfterBattleText1
db "@"
SilphCo8BattleText2: ; 565f5 (15:65f5)
TX_FAR _SilphCo8BattleText2
db "@"
SilphCo8EndBattleText2: ; 565fa (15:65fa)
TX_FAR _SilphCo8EndBattleText2
db "@"
SilphCo8AfterBattleText2: ; 565ff (15:65ff)
TX_FAR _SilphCo8AfterBattleText2
db "@"
SilphCo8BattleText3: ; 56604 (15:6604)
TX_FAR _SilphCo8BattleText3
db "@"
SilphCo8EndBattleText3: ; 56609 (15:6609)
TX_FAR _SilphCo8EndBattleText3
db "@"
SilphCo8AfterBattleText3: ; 5660e (15:660e)
TX_FAR _SilphCo8AfterBattleText3
db "@"