diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2019-01-01 15:06:23 -0500 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2019-01-01 23:33:10 -0500 |
commit | c7796024590fec48ac79756793c1a6e3b54daf8f (patch) | |
tree | 0d61caa7ebe429995a61e800d1d78c3a82aec886 /scripts/FightingDojo.asm | |
parent | 90430e6dee9e207dc0b618d07566f83617343f60 (diff) |
Rename map files, labels, and constants to be consistent and work with Polished Map
Diffstat (limited to 'scripts/FightingDojo.asm')
-rwxr-xr-x | scripts/FightingDojo.asm | 323 |
1 files changed, 323 insertions, 0 deletions
diff --git a/scripts/FightingDojo.asm b/scripts/FightingDojo.asm new file mode 100755 index 00000000..fc691dba --- /dev/null +++ b/scripts/FightingDojo.asm @@ -0,0 +1,323 @@ +FightingDojo_Script: + call EnableAutoTextBoxDrawing + ld hl, FightingDojoTrainerHeader0 + ld de, FightingDojo_ScriptPointers + ld a, [wFightingDojoCurScript] + call ExecuteCurMapScriptInTable + ld [wFightingDojoCurScript], a + ret + +FightingDojoScript_5cd70: + xor a + ld [wJoyIgnore], a + ld [wFightingDojoCurScript], a + ld [wCurMapScript], a + ret + +FightingDojo_ScriptPointers: + dw FightingDojoScript1 + dw DisplayEnemyTrainerTextAndStartBattle + dw EndTrainerBattle + dw FightingDojoScript3 + +FightingDojoScript1: + CheckEvent EVENT_DEFEATED_FIGHTING_DOJO + ret nz + call CheckFightingMapTrainers + ld a, [wTrainerHeaderFlagBit] + and a + ret nz + CheckEvent EVENT_BEAT_KARATE_MASTER + ret nz + xor a + ld [hJoyHeld], a + ld [wcf0d], a + ld a, [wYCoord] + cp $3 + ret nz + ld a, [wXCoord] + cp $4 + ret nz + ld a, $1 + ld [wcf0d], a + ld a, PLAYER_DIR_RIGHT + ld [wPlayerMovingDirection], a + ld a, $1 + ld [H_SPRITEINDEX], a + ld a, SPRITE_FACING_LEFT + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay + ld a, $1 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + ret + +FightingDojoScript3: + ld a, [wIsInBattle] + cp $ff + jp z, FightingDojoScript_5cd70 + ld a, [wcf0d] + and a + jr z, .asm_5cde4 + ld a, PLAYER_DIR_RIGHT + ld [wPlayerMovingDirection], a + ld a, $1 + ld [H_SPRITEINDEX], a + ld a, SPRITE_FACING_LEFT + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay + +.asm_5cde4 + ld a, $f0 + ld [wJoyIgnore], a + SetEventRange EVENT_BEAT_KARATE_MASTER, EVENT_BEAT_FIGHTING_DOJO_TRAINER_3 + ld a, $8 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [wJoyIgnore], a + ld [wFightingDojoCurScript], a + ld [wCurMapScript], a + ret + +FightingDojo_TextPointers: + dw FightingDojoText1 + dw FightingDojoText2 + dw FightingDojoText3 + dw FightingDojoText4 + dw FightingDojoText5 + dw FightingDojoText6 + dw FightingDojoText7 + dw FightingDojoText8 + +FightingDojoTrainerHeader0: + dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_0 + db ($4 << 4) ; trainer's view range + dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_0 + dw FightingDojoBattleText1 ; TextBeforeBattle + dw FightingDojoAfterBattleText1 ; TextAfterBattle + dw FightingDojoEndBattleText1 ; TextEndBattle + dw FightingDojoEndBattleText1 ; TextEndBattle + +FightingDojoTrainerHeader1: + dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_1 + db ($4 << 4) ; trainer's view range + dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_1 + dw FightingDojoBattleText2 ; TextBeforeBattle + dw FightingDojoAfterBattleText2 ; TextAfterBattle + dw FightingDojoEndBattleText2 ; TextEndBattle + dw FightingDojoEndBattleText2 ; TextEndBattle + +FightingDojoTrainerHeader2: + dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_2 + db ($3 << 4) ; trainer's view range + dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_2 + dw FightingDojoBattleText3 ; TextBeforeBattle + dw FightingDojoAfterBattleText3 ; TextAfterBattle + dw FightingDojoEndBattleText3 ; TextEndBattle + dw FightingDojoEndBattleText3 ; TextEndBattle + +FightingDojoTrainerHeader3: + dbEventFlagBit EVENT_BEAT_FIGHTING_DOJO_TRAINER_3 + db ($3 << 4) ; trainer's view range + dwEventFlagAddress EVENT_BEAT_FIGHTING_DOJO_TRAINER_3 + dw FightingDojoBattleText4 ; TextBeforeBattle + dw FightingDojoAfterBattleText4 ; TextAfterBattle + dw FightingDojoEndBattleText4 ; TextEndBattle + dw FightingDojoEndBattleText4 ; TextEndBattle + + db $ff + +FightingDojoText1: + TX_ASM + CheckEvent EVENT_DEFEATED_FIGHTING_DOJO + jp nz, .continue1 + CheckEventReuseA EVENT_BEAT_KARATE_MASTER + jp nz, .continue2 + ld hl, FightingDojoText_5ce8e + call PrintText + ld hl, wd72d + set 6, [hl] + set 7, [hl] + ld hl, FightingDojoText_5ce93 + ld de, FightingDojoText_5ce93 + call SaveEndBattleTextPointers + ld a, [hSpriteIndexOrTextID] + ld [wSpriteIndex], a + call EngageMapTrainer + call InitBattleEnemyParameters + ld a, $3 + ld [wFightingDojoCurScript], a + ld [wCurMapScript], a + jr .asm_9dba4 +.continue1 + ld hl, FightingDojoText_5ce9d + call PrintText + jr .asm_9dba4 +.continue2 + ld hl, FightingDojoText8 + call PrintText +.asm_9dba4 + jp TextScriptEnd + +FightingDojoText_5ce8e: + TX_FAR _FightingDojoText_5ce8e + db "@" + +FightingDojoText_5ce93: + TX_FAR _FightingDojoText_5ce93 + db "@" + +FightingDojoText8: + TX_FAR _FightingDojoText_5ce98 + db "@" + +FightingDojoText_5ce9d: + TX_FAR _FightingDojoText_5ce9d + db "@" + +FightingDojoText2: + TX_ASM + ld hl, FightingDojoTrainerHeader0 + call TalkToTrainer + jp TextScriptEnd + +FightingDojoBattleText1: + TX_FAR _FightingDojoBattleText1 + db "@" + +FightingDojoEndBattleText1: + TX_FAR _FightingDojoEndBattleText1 + db "@" + +FightingDojoAfterBattleText1: + TX_FAR _FightingDojoAfterBattleText1 + db "@" + +FightingDojoText3: + TX_ASM + ld hl, FightingDojoTrainerHeader1 + call TalkToTrainer + jp TextScriptEnd + +FightingDojoBattleText2: + TX_FAR _FightingDojoBattleText2 + db "@" + +FightingDojoEndBattleText2: + TX_FAR _FightingDojoEndBattleText2 + db "@" + +FightingDojoAfterBattleText2: + TX_FAR _FightingDojoAfterBattleText2 + db "@" + +FightingDojoText4: + TX_ASM + ld hl, FightingDojoTrainerHeader2 + call TalkToTrainer + jp TextScriptEnd + +FightingDojoBattleText3: + TX_FAR _FightingDojoBattleText3 + db "@" + +FightingDojoEndBattleText3: + TX_FAR _FightingDojoEndBattleText3 + db "@" + +FightingDojoAfterBattleText3: + TX_FAR _FightingDojoAfterBattleText3 + db "@" + +FightingDojoText5: + TX_ASM + ld hl, FightingDojoTrainerHeader3 + call TalkToTrainer + jp TextScriptEnd + +FightingDojoBattleText4: + TX_FAR _FightingDojoBattleText4 + db "@" + +FightingDojoEndBattleText4: + TX_FAR _FightingDojoEndBattleText4 + db "@" + +FightingDojoAfterBattleText4: + TX_FAR _FightingDojoAfterBattleText4 + db "@" + +FightingDojoText6: +; Hitmonlee Poké Ball + TX_ASM + CheckEitherEventSet EVENT_GOT_HITMONLEE, EVENT_GOT_HITMONCHAN + jr z, .GetMon + ld hl, OtherHitmonText + call PrintText + jr .done +.GetMon + ld a, HITMONLEE + call DisplayPokedex + ld hl, WantHitmonleeText + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .done + ld a, [wcf91] + ld b, a + ld c, 30 + call GivePokemon + jr nc, .done + + ; once Poké Ball is taken, hide sprite + ld a, HS_FIGHTING_DOJO_GIFT_1 + ld [wMissableObjectIndex], a + predef HideObject + SetEvents EVENT_GOT_HITMONLEE, EVENT_DEFEATED_FIGHTING_DOJO +.done + jp TextScriptEnd + +WantHitmonleeText: + TX_FAR _WantHitmonleeText + db "@" + +FightingDojoText7: +; Hitmonchan Poké Ball + TX_ASM + CheckEitherEventSet EVENT_GOT_HITMONLEE, EVENT_GOT_HITMONCHAN + jr z, .GetMon + ld hl, OtherHitmonText + call PrintText + jr .done +.GetMon + ld a, HITMONCHAN + call DisplayPokedex + ld hl, WantHitmonchanText + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .done + ld a, [wcf91] + ld b, a + ld c, 30 + call GivePokemon + jr nc, .done + SetEvents EVENT_GOT_HITMONCHAN, EVENT_DEFEATED_FIGHTING_DOJO + + ; once Poké Ball is taken, hide sprite + ld a, HS_FIGHTING_DOJO_GIFT_2 + ld [wMissableObjectIndex], a + predef HideObject +.done + jp TextScriptEnd + +WantHitmonchanText: + TX_FAR _WantHitmonchanText + db "@" + +OtherHitmonText: + TX_FAR _OtherHitmonText + db "@" |