diff options
Diffstat (limited to 'scripts/pewtergym.asm')
-rwxr-xr-x | scripts/pewtergym.asm | 237 |
1 files changed, 237 insertions, 0 deletions
diff --git a/scripts/pewtergym.asm b/scripts/pewtergym.asm new file mode 100755 index 00000000..2ba001d4 --- /dev/null +++ b/scripts/pewtergym.asm @@ -0,0 +1,237 @@ +PewterGymScript: ; 5c387 (17:4387) + ld hl, $d126 + bit 6, [hl] + res 6, [hl] + call nz, PewterGymScript_5c3a4 + call EnableAutoTextBoxDrawing + ld hl, PewterGymTrainerHeaders + ld de, PewterGymScriptPointers + ld a, [W_PEWTERGYMCURSCRIPT] + call ExecuteCurMapScriptInTable + ld [W_PEWTERGYMCURSCRIPT], a + ret + +PewterGymScript_5c3a4: ; 5c3a4 (17:43a4) + ld hl, Gym1CityName ; $43ad + ld de, Gym1LeaderName ; $43b9 + jp LoadGymLeaderAndCityName + +Gym1CityName: ; 5c3ad (17:43ad) + db "PEWTER CITY@" + +Gym1LeaderName: ; 5c3b9 (17:43b9) + db "BROCK@" + +PewterGymScript_5c3bf: ; 5c3bf (17:43bf) + xor a + ld [wJoypadForbiddenButtonsMask], a + ld [W_PEWTERGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +PewterGymScriptPointers: ; 5c3ca (17:43ca) + dw CheckFightingMapTrainers + dw Func_324c + dw EndTrainerBattle + dw PewterGymScript3 + +PewterGymScript3: ; 5c3d2 (17:43d2) + ld a, [W_ISINBATTLE] ; $d057 + cp $ff + jp z, PewterGymScript_5c3bf + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + +PewterGymScript_5c3df: ; 5c3df (17:43df) + ld a, $4 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d755 + set 7, [hl] + ld bc, (TM_34 << 8) | 1 + call GiveItem + jr nc, .BagFull + ld a, $5 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID + ld hl, $d755 + set 6, [hl] + jr .asm_5c408 +.BagFull + ld a, $6 + ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + call DisplayTextID +.asm_5c408 + ld hl, W_OBTAINEDBADGES + set 0, [hl] + ld hl, $d72a + set 0, [hl] + + ld a, $4 + ld [$cc4d], a + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + ld a, $22 + ld [$cc4d], a + ld a, $11 + call Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7)) + + ld hl, $d7eb + res 0, [hl] + res 7, [hl] + + ; deactivate gym trainers + ld hl, $d755 + set 2, [hl] + + jp PewterGymScript_5c3bf + +PewterGymTextPointers: ; 5c435 (17:4435) + dw PewterGymText1 + dw PewterGymText2 + dw PewterGymText3 + dw PewterGymText4 + dw PewterGymText5 + dw PewterGymText6 + +PewterGymTrainerHeaders: ; 5c441 (17:4441) +PewterGymTrainerHeader0: ; 5c441 (17:4441) + db $2 ; flag's bit + db ($5 << 4) ; trainer's view range + dw $d755 ; flag's byte + dw PewterGymBattleText1 ; 0x44d0 TextBeforeBattle + dw PewterGymAfterBattleText1 ; 0x44da TextAfterBattle + dw PewterGymEndBattleText1 ; 0x44d5 TextEndBattle + dw PewterGymEndBattleText1 ; 0x44d5 TextEndBattle + + db $ff + +PewterGymText1: ; 5c44e (17:444e) + db $08 ; asm + ld a, [$d755] + bit 7, a + jr z, .asm_4a735 ; 0x5c454 + bit 6, a + jr nz, .asm_ff7d0 ; 0x5c458 + call z, PewterGymScript_5c3df + call DisableWaitingAfterTextDisplay + jr .asm_e0ffb ; 0x5c460 +.asm_ff7d0 ; 0x5c462 + ld hl, PewterGymText_5c4a3 + call PrintText + jr .asm_e0ffb ; 0x5c468 +.asm_4a735 ; 0x5c46a + ld hl, PewterGymText_5c49e + call PrintText + ld hl, $d72d + set 6, [hl] + set 7, [hl] + ld hl, PewterGymText_5c4bc + ld de, PewterGymText_5c4bc + call PreBattleSaveRegisters + ldh a, [$8c] + ld [$cf13], a + call EngageMapTrainer + call InitBattleEnemyParameters + ld a, $1 + ld [$d05c], a + xor a + ldh [$b4], a + ld a, $3 + ld [W_PEWTERGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a +.asm_e0ffb ; 0x5c49b + jp TextScriptEnd + +PewterGymText_5c49e: ; 5c49e (17:449e) + TX_FAR _PewterGymText_5c49e + db "@" + +PewterGymText_5c4a3: ; 5c4a3 (17:44a3) + TX_FAR _PewterGymText_5c4a3 + db "@" + +PewterGymText4: ; 5c4a8 (17:44a8) + TX_FAR _TM34PreReceiveText + db "@" + +PewterGymText5: ; 5c4ad (17:44ad) + TX_FAR _ReceivedTM34Text + db $0B + TX_FAR _TM34ExplanationText + db "@" + +PewterGymText6: ; 5c4b7 (17:44b7) + TX_FAR _TM34NoRoomText + db "@" + +PewterGymText_5c4bc: ; 5c4bc (17:44bc) + TX_FAR _PewterGymText_5c4bc + db $0B + TX_FAR _PewterGymText_5c4c1 + db "@" + +PewterGymText2: ; 5c4c6 (17:44c6) + db $08 ; asm + ld hl, PewterGymTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +PewterGymBattleText1: ; 5c4d0 (17:44d0) + TX_FAR _PewterGymBattleText1 + db "@" + +PewterGymEndBattleText1: ; 5c4d5 (17:44d5) + TX_FAR _PewterGymEndBattleText1 + db "@" + +PewterGymAfterBattleText1: ; 5c4da (17:44da) + TX_FAR _PewterGymAfterBattleText1 + db "@" + +PewterGymText3: ; 5c4df (17:44df) + db $08 ; asm + ld a, [$d72a] + bit 0, a + jr nz, .asm_71369 ; 0x5c4e5 + ld hl, PewterGymText_5c515 + call PrintText + call YesNoChoice + ld a, [$cc26] + and a + jr nz, .asm_6123a ; 0x5c4f4 + ld hl, PewterGymText_5c51a + call PrintText + jr .asm_d1578 ; 0x5c4fc +.asm_6123a ; 0x5c4fe + ld hl, PewterGymText_5c524 + call PrintText +.asm_d1578 ; 0x5c504 + ld hl, PewterGymText_5c51f + call PrintText + jr .asm_07013 ; 0x5c50a +.asm_71369 ; 0x5c50c + ld hl, PewterGymText_5c529 + call PrintText +.asm_07013 ; 0x5c512 + jp TextScriptEnd + +PewterGymText_5c515: ; 5c515 (17:4515) + TX_FAR _PewterGymText_5c515 + db "@" + +PewterGymText_5c51a: ; 5c51a (17:451a) + TX_FAR _PewterGymText_5c51a + db "@" + +PewterGymText_5c51f: ; 5c51f (17:451f) + TX_FAR _PewterGymText_5c51f + db "@" + +PewterGymText_5c524: ; 5c524 (17:4524) + TX_FAR _PewterGymText_5c524 + db "@" + +PewterGymText_5c529: ; 5c529 (17:4529) + TX_FAR _PewterGymText_5c529 + db "@" |