mirror of
https://github.com/thornAvery/jep-hack.git
synced 2026-02-22 07:22:15 +13:00
First Commit
Upload literally everything from the pokecrystal16 expand-move-ID branch
This commit is contained in:
commit
2f8a41f833
4618 changed files with 480386 additions and 0 deletions
199
engine/battle/start_battle.asm
Normal file
199
engine/battle/start_battle.asm
Normal file
|
|
@ -0,0 +1,199 @@
|
|||
ShowLinkBattleParticipants:
|
||||
; If we're not in a communications room,
|
||||
; we don't need to be here.
|
||||
ld a, [wLinkMode]
|
||||
and a
|
||||
ret z
|
||||
|
||||
farcall _ShowLinkBattleParticipants
|
||||
ld c, 150
|
||||
call DelayFrames
|
||||
call ClearTilemap
|
||||
call ClearSprites
|
||||
ret
|
||||
|
||||
FindFirstAliveMonAndStartBattle:
|
||||
xor a
|
||||
ldh [hMapAnims], a
|
||||
call DelayFrame
|
||||
ld b, PARTY_LENGTH
|
||||
ld hl, wPartyMon1HP
|
||||
ld de, PARTYMON_STRUCT_LENGTH - 1
|
||||
|
||||
.loop
|
||||
ld a, [hli]
|
||||
or [hl]
|
||||
jr nz, .okay
|
||||
add hl, de
|
||||
dec b
|
||||
jr nz, .loop
|
||||
|
||||
.okay
|
||||
ld de, MON_LEVEL - MON_HP
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
ld [wBattleMonLevel], a
|
||||
predef DoBattleTransition
|
||||
farcall _LoadBattleFontsHPBar
|
||||
ld a, 1
|
||||
ldh [hBGMapMode], a
|
||||
call ClearSprites
|
||||
call ClearTilemap
|
||||
xor a
|
||||
ldh [hBGMapMode], a
|
||||
ldh [hWY], a
|
||||
ldh [rWY], a
|
||||
ldh [hMapAnims], a
|
||||
ret
|
||||
|
||||
PlayBattleMusic:
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
|
||||
xor a
|
||||
ld [wMusicFade], a
|
||||
ld de, MUSIC_NONE
|
||||
call PlayMusic
|
||||
call DelayFrame
|
||||
call MaxVolume
|
||||
|
||||
ld a, [wBattleType]
|
||||
cp BATTLETYPE_SUICUNE
|
||||
ld de, MUSIC_SUICUNE_BATTLE
|
||||
jp z, .done
|
||||
cp BATTLETYPE_ROAMING
|
||||
jp z, .done
|
||||
|
||||
; Are we fighting a trainer?
|
||||
ld a, [wOtherTrainerClass]
|
||||
and a
|
||||
jr nz, .trainermusic
|
||||
|
||||
farcall RegionCheck
|
||||
ld a, e
|
||||
and a
|
||||
jr nz, .kantowild
|
||||
|
||||
ld de, MUSIC_JOHTO_WILD_BATTLE
|
||||
ld a, [wTimeOfDay]
|
||||
cp NITE_F
|
||||
jr nz, .done
|
||||
ld de, MUSIC_JOHTO_WILD_BATTLE_NIGHT
|
||||
jr .done
|
||||
|
||||
.kantowild
|
||||
ld de, MUSIC_KANTO_WILD_BATTLE
|
||||
jr .done
|
||||
|
||||
.trainermusic
|
||||
ld de, MUSIC_CHAMPION_BATTLE
|
||||
cp CHAMPION
|
||||
jr z, .done
|
||||
cp RED
|
||||
jr z, .done
|
||||
|
||||
; BUG: Team Rocket battle music is not used for Executives or Scientists (see docs/bugs_and_glitches.md)
|
||||
ld de, MUSIC_ROCKET_BATTLE
|
||||
cp GRUNTM
|
||||
jr z, .done
|
||||
cp GRUNTF
|
||||
jr z, .done
|
||||
|
||||
ld de, MUSIC_KANTO_GYM_LEADER_BATTLE
|
||||
farcall IsKantoGymLeader
|
||||
jr c, .done
|
||||
|
||||
; IsGymLeader also counts CHAMPION, RED, and the Kanto gym leaders
|
||||
; but they have been taken care of before this
|
||||
ld de, MUSIC_JOHTO_GYM_LEADER_BATTLE
|
||||
farcall IsGymLeader
|
||||
jr c, .done
|
||||
|
||||
ld de, MUSIC_RIVAL_BATTLE
|
||||
ld a, [wOtherTrainerClass]
|
||||
cp RIVAL1
|
||||
jr z, .done
|
||||
cp RIVAL2
|
||||
jr nz, .othertrainer
|
||||
|
||||
ld a, [wOtherTrainerID]
|
||||
cp RIVAL2_2_CHIKORITA ; Rival in Indigo Plateau
|
||||
jr c, .done
|
||||
ld de, MUSIC_CHAMPION_BATTLE
|
||||
jr .done
|
||||
|
||||
.othertrainer
|
||||
ld a, [wLinkMode]
|
||||
and a
|
||||
jr nz, .johtotrainer
|
||||
|
||||
farcall RegionCheck
|
||||
ld a, e
|
||||
and a
|
||||
jr nz, .kantotrainer
|
||||
|
||||
.johtotrainer
|
||||
ld de, MUSIC_JOHTO_TRAINER_BATTLE
|
||||
jr .done
|
||||
|
||||
.kantotrainer
|
||||
ld de, MUSIC_KANTO_TRAINER_BATTLE
|
||||
|
||||
.done
|
||||
call PlayMusic
|
||||
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
|
||||
ClearBattleRAM:
|
||||
xor a
|
||||
ld [wBattlePlayerAction], a
|
||||
ld [wBattleResult], a
|
||||
|
||||
ld hl, wPartyMenuCursor
|
||||
ld [hli], a
|
||||
ld [hli], a
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
|
||||
ld [wMenuScrollPosition], a
|
||||
ld [wCriticalHit], a
|
||||
ld [wBattleMonSpecies], a
|
||||
ld [wBattleParticipantsNotFainted], a
|
||||
ld [wCurBattleMon], a
|
||||
ld [wForcedSwitch], a
|
||||
ld [wTimeOfDayPal], a
|
||||
ld [wPlayerTurnsTaken], a
|
||||
ld [wEnemyTurnsTaken], a
|
||||
ld [wEvolvableFlags], a
|
||||
|
||||
ld hl, wPlayerHPPal
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
|
||||
ld hl, wBattleMonDVs
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
|
||||
ld hl, wEnemyMonDVs
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
|
||||
; Clear the entire BattleMons area
|
||||
ld hl, wBattle
|
||||
ld bc, wBattleEnd - wBattle
|
||||
xor a
|
||||
call ByteFill
|
||||
|
||||
callfar ResetEnemyStatLevels
|
||||
|
||||
call ClearWindowData
|
||||
|
||||
ld hl, hBGMapAddress
|
||||
xor a ; LOW(vBGMap0)
|
||||
ld [hli], a
|
||||
ld [hl], HIGH(vBGMap0)
|
||||
ret
|
||||
Loading…
Add table
Add a link
Reference in a new issue