diff options
author | Daniel Harding <33dannye@gmail.com> | 2020-05-20 20:17:30 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-20 20:17:30 -0500 |
commit | 500d99c258145d233af8d14cdb5c6e0200dfc1d8 (patch) | |
tree | 7dbe7b152dde8a6e9b56664b5b8cdfc0d6be1253 /scripts/ViridianCity.asm | |
parent | b8954732a3eaa3a784a6e3eaaa68977a9ccd9816 (diff) | |
parent | 33456b8fb28ef547a54d04d22baa2313b72fdb1d (diff) |
Merge pull request #50 from dannye/master
merge pokered
Diffstat (limited to 'scripts/ViridianCity.asm')
-rwxr-xr-x | scripts/ViridianCity.asm | 363 |
1 files changed, 363 insertions, 0 deletions
diff --git a/scripts/ViridianCity.asm b/scripts/ViridianCity.asm new file mode 100755 index 00000000..6dc68d4f --- /dev/null +++ b/scripts/ViridianCity.asm @@ -0,0 +1,363 @@ +ViridianCity_Script: + call EnableAutoTextBoxDrawing + ld hl, ViridianCity_ScriptPointers + ld a, [wViridianCityCurScript] + call CallFunctionInTable + ret + +ViridianCity_ScriptPointers: + dw ViridianCityScript0 + dw ViridianCityScript1 + dw ViridianCityScript2 + dw ViridianCityScript3 + dw ViridianCityScript4 + dw ViridianCityScript5 + dw ViridianCityScript6 + dw ViridianCityScript7 + dw ViridianCityScript8 + dw ViridianCityScript9 + dw ViridianCityScript10 + +ViridianCityScript0: + call ViridianCityScript_1905b + call ViridianCityScript_190ab + ret + +ViridianCityScript1: + call ViridianCityScript_19162 +ViridianCityScript2: + call ViridianCityScript_1905b + ret + +ViridianCityScript_1905b: + CheckEvent EVENT_VIRIDIAN_GYM_OPEN + ret nz + ld a, [wObtainedBadges] + cp %01111111 + jr nz, .gymClosed + SetEvent EVENT_VIRIDIAN_GYM_OPEN + ret +.gymClosed + ld a, [wYCoord] + cp 8 + ret nz + ld a, [wXCoord] + cp 32 + ret nz + ld a, $f + ld [hSpriteIndexOrTextID], a + call DisplayTextID + call StartSimulatingJoypadStates + ld a, $1 + ld [wSimulatedJoypadStatesIndex], a + ld a, D_DOWN + ld [wSimulatedJoypadStatesEnd], a + xor a + ld [wSpritePlayerStateData1FacingDirection], a + ld [wJoyIgnore], a + ld [hJoyHeld], a + ld a, $6 + ld [wViridianCityCurScript], a + ret + +ViridianCityScript6: + ld a, [wSimulatedJoypadStatesIndex] + and a + ret nz + call Delay3 + ld a, $2 + ld [wViridianCityCurScript], a + ret + +ViridianCityScript_190ab: + ld a, [wYCoord] + cp 9 + ret nz + ld a, [wXCoord] + cp 19 + ret nz + ld a, $5 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [hJoyHeld], a + call ViridianCityScript_1914d + ld a, $5 + ld [wViridianCityCurScript], a + ret + +ViridianCityScript3: + call ViridianCityScript_190ef + call ViridianCityScript_190db + ResetEvent EVENT_02F + ld a, $4 + ld [wViridianCityCurScript], a + ret + +ViridianCityScript_190db: + xor a + ld [wListScrollOffset], a + ld a, BATTLE_TYPE_OLD_MAN + ld [wBattleType], a + ld a, 5 + ld [wCurEnemyLVL], a + ld a, RATTATA + ld [wCurOpponent], a + ret + +ViridianCityScript_190ef: + ld a, [wSpriteStateData1 + 3 * $10 + 4] + ld [$ffeb], a + ld a, [wSpriteStateData1 + 3 * $10 + 6] + ld [$ffec], a + ld a, [wSpriteStateData2 + 3 * $10 + 4] + ld [$ffed], a + ld a, [wSpriteStateData2 + 3 * $10 + 5] + ld [$ffee], a + ret + +ViridianCityScript4: + call ViridianCityScript_1912a + call UpdateSprites + call Delay3 + SetEvent EVENT_02E + xor a + ld [wJoyIgnore], a + ld a, $10 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [wBattleType], a + ld [wJoyIgnore], a + ld a, $2 + ld [wViridianCityCurScript], a + ret + +ViridianCityScript_1912a: + ld a, [$ffeb] + ld [wSpriteStateData1 + 3 * $10 + 4], a + ld a, [$ffec] + ld [wSpriteStateData1 + 3 * $10 + 6], a + ld a, [$ffed] + ld [wSpriteStateData2 + 3 * $10 + 4], a + ld a, [$ffee] + ld [wSpriteStateData2 + 3 * $10 + 5], a + ret + +ViridianCityScript5: + ld a, [wSimulatedJoypadStatesIndex] + and a + ret nz + call Delay3 + ld a, $0 + ld [wViridianCityCurScript], a + ret + +ViridianCityScript_1914d: + call StartSimulatingJoypadStates + ld a, $1 + ld [wSimulatedJoypadStatesIndex], a + ld a, D_DOWN + ld [wSimulatedJoypadStatesEnd], a + xor a + ld [wSpritePlayerStateData1FacingDirection], a + ld [wJoyIgnore], a + ret + +ViridianCityScript_19162: + CheckEvent EVENT_02D + ret nz + ld a, [wYCoord] + cp 9 + ret nz + ld a, [wXCoord] + cp 19 + ret nz + ld a, $8 + ld [hSpriteIndexOrTextID], a + ld a, SPRITE_FACING_RIGHT + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay + ld a, $8 + ld [wSpritePlayerStateData1FacingDirection], a + ld a, $8 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT + ld [wJoyIgnore], a + ret + +ViridianCityScript7: + call ViridianCityScript_190ef + call ViridianCityScript_190db + SetEvent EVENT_02F + ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT + ld [wJoyIgnore], a + ld a, $8 + ld [wViridianCityCurScript], a + ret + +ViridianCityScript8: + call ViridianCityScript_1912a + call UpdateSprites + call Delay3 + SetEvent EVENT_02D + ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT + ld [wJoyIgnore], a + ld a, $8 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [wBattleType], a + dec a + ld [wJoyIgnore], a + ld a, $9 + ld [wViridianCityCurScript], a + ret + +ViridianCityScript9: + ld de, ViridianCityOldManMovementData2 + ld a, [wXCoord] + cp 19 + jr z, .asm_191e4 + callab Func_f1a01 + ld de, ViridianCityOldManMovementData1 +.asm_191e4 + ld a, $8 + ld [hSpriteIndexOrTextID], a + call MoveSprite + ld a, $a + ld [wViridianCityCurScript], a + ret + +ViridianCityOldManMovementData1: + db NPC_MOVEMENT_RIGHT +ViridianCityOldManMovementData2: + db NPC_MOVEMENT_DOWN + db NPC_MOVEMENT_DOWN + db NPC_MOVEMENT_DOWN + db NPC_MOVEMENT_DOWN + db NPC_MOVEMENT_DOWN + db NPC_MOVEMENT_DOWN + db $ff + +ViridianCityScript10: + ld a, [wd730] + bit 0, a + ret nz + ld a, $3 + ld [wMissableObjectIndex], a + predef HideObject + xor a + ld [wJoyIgnore], a + ld a, $2 + ld [wViridianCityCurScript], a + ret + +ViridianCity_TextPointers: + dw ViridianCityText_0 + dw ViridianCityText_1 + dw ViridianCityText_2 + dw ViridianCityText_3 + dw ViridianCityText_4 + dw ViridianCityText_5 + dw ViridianCityText_6 + dw ViridianCityText_7 + dw ViridianCityText_8 + dw ViridianCityText_9 + dw ViridianCityText_10 + dw MartSignText + dw PokeCenterSignText + dw ViridianCityText_11 + dw ViridianCityText_12 + dw ViridianCityText_13 + +ViridianCityText_0: + TX_ASM + callba Func_f18bb + jp TextScriptEnd + +ViridianCityText_1: + TX_ASM + callba Func_f18c7 + jp TextScriptEnd + +ViridianCityText_2: + TX_ASM + callba Func_f18e9 + jp TextScriptEnd + +ViridianCityText_3: + TX_ASM + callba Func_f1911 + jp TextScriptEnd + +ViridianCityText_4: + TX_ASM + callba Func_f192c + jp TextScriptEnd + +ViridianCityText_5: + TX_ASM + callba Func_f194a + jp TextScriptEnd + +ViridianCityText_6: + TX_ASM + callba Func_f198e + jp TextScriptEnd + +ViridianCityText_13: + TX_FAR _ViridianCityText_19219 + db "@" + +ViridianCityText_7: + TX_ASM + CheckEvent EVENT_02D + jr nz, .asm_192a6 + ld hl, ViridianCityText_192af + call PrintText + ld c, 2 + call DelayFrames + ld a, $7 + ld [wViridianCityCurScript], a + jr .asm_192ac + +.asm_192a6 + ld hl, ViridianCityText_192b4 + call PrintText +.asm_192ac + jp TextScriptEnd + +ViridianCityText_192af: + TX_FAR _ViridianCityText_1920a + db "@" + +ViridianCityText_192b4: + TX_FAR _OldManTextAfterBattle + db "@" + +ViridianCityText_8: + TX_ASM + callba Func_f19c5 + jp TextScriptEnd + +ViridianCityText_9: + TX_ASM + callba Func_f19d1 + jp TextScriptEnd + +ViridianCityText_10: + TX_ASM + callba Func_f19dd + jp TextScriptEnd + +ViridianCityText_11: + TX_ASM + callba Func_f19e9 + jp TextScriptEnd + +ViridianCityText_12: + TX_ASM + callba Func_f19f5 + jp TextScriptEnd |