diff options
Diffstat (limited to 'engine/battle/read_trainer_party.asm')
-rwxr-xr-x | engine/battle/read_trainer_party.asm | 148 |
1 files changed, 74 insertions, 74 deletions
diff --git a/engine/battle/read_trainer_party.asm b/engine/battle/read_trainer_party.asm index 3672d8dc..ba00083b 100755 --- a/engine/battle/read_trainer_party.asm +++ b/engine/battle/read_trainer_party.asm @@ -1,43 +1,43 @@ ReadTrainer: ; don't change any moves in a link battle - ld a,[wLinkState] + ld a, [wLinkState] and a ret nz ; set [wEnemyPartyCount] to 0, [wEnemyPartyMons] to FF ; XXX first is total enemy pokemon? ; XXX second is species of first pokemon? - ld hl,wEnemyPartyCount + ld hl, wEnemyPartyCount xor a - ld [hli],a + ld [hli], a dec a - ld [hl],a + ld [hl], a ; get the pointer to trainer data for this class - ld a,[wCurOpponent] + ld a, [wCurOpponent] sub $C9 ; convert value from pokemon to trainer - add a,a - ld hl,TrainerDataPointers - ld c,a - ld b,0 - add hl,bc ; hl points to trainer class - ld a,[hli] - ld h,[hl] - ld l,a - ld a,[wTrainerNo] - ld b,a + add a + ld hl, TrainerDataPointers + ld c, a + ld b, 0 + add hl, bc ; hl points to trainer class + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wTrainerNo] + ld b, a ; At this point b contains the trainer number, ; and hl points to the trainer class. ; Our next task is to iterate through the trainers, ; decrementing b each time, until we get to the right one. .outer dec b - jr z,.IterateTrainer + jr z, .IterateTrainer .inner - ld a,[hli] + ld a, [hli] and a - jr nz,.inner + jr nz, .inner jr .outer ; if the first byte of trainer data is FF, @@ -46,17 +46,17 @@ ReadTrainer: ; - if [wLoneAttackNo] != 0, one pokemon on the team has a special move ; else the first byte is the level of every pokemon on the team .IterateTrainer - ld a,[hli] + ld a, [hli] cp $FF ; is the trainer special? - jr z,.SpecialTrainer ; if so, check for special moves - ld [wCurEnemyLVL],a + jr z, .SpecialTrainer ; if so, check for special moves + ld [wCurEnemyLVL], a .LoopTrainerData - ld a,[hli] + ld a, [hli] and a ; have we reached the end of the trainer data? - jr z,.FinishUp - ld [wcf91],a ; write species somewhere (XXX why?) - ld a,ENEMY_PARTY_DATA - ld [wMonDataLocation],a + jr z, .FinishUp + ld [wcf91], a ; write species somewhere (XXX why?) + ld a, ENEMY_PARTY_DATA + ld [wMonDataLocation], a push hl call AddPartyMon pop hl @@ -66,101 +66,101 @@ ReadTrainer: ; - each pokemon has a specific level ; (as opposed to the whole team being of the same level) ; - if [wLoneAttackNo] != 0, one pokemon on the team has a special move - ld a,[hli] + ld a, [hli] and a ; have we reached the end of the trainer data? - jr z,.AddLoneMove - ld [wCurEnemyLVL],a - ld a,[hli] - ld [wcf91],a - ld a,ENEMY_PARTY_DATA - ld [wMonDataLocation],a + jr z, .AddLoneMove + ld [wCurEnemyLVL], a + ld a, [hli] + ld [wcf91], a + ld a, ENEMY_PARTY_DATA + ld [wMonDataLocation], a push hl call AddPartyMon pop hl jr .SpecialTrainer .AddLoneMove ; does the trainer have a single monster with a different move - ld a,[wLoneAttackNo] ; Brock is 01, Misty is 02, Erika is 04, etc + ld a, [wLoneAttackNo] ; Brock is 01, Misty is 02, Erika is 04, etc and a - jr z,.AddTeamMove + jr z, .AddTeamMove dec a - add a,a - ld c,a - ld b,0 - ld hl,LoneMoves - add hl,bc - ld a,[hli] - ld d,[hl] - ld hl,wEnemyMon1Moves + 2 - ld bc,wEnemyMon2 - wEnemyMon1 + add a + ld c, a + ld b, 0 + ld hl, LoneMoves + add hl, bc + ld a, [hli] + ld d, [hl] + ld hl, wEnemyMon1Moves + 2 + ld bc, wEnemyMon2 - wEnemyMon1 call AddNTimes - ld [hl],d + ld [hl], d jr .FinishUp .AddTeamMove ; check if our trainer's team has special moves ; get trainer class number - ld a,[wCurOpponent] + ld a, [wCurOpponent] sub 200 - ld b,a - ld hl,TeamMoves + ld b, a + ld hl, TeamMoves ; iterate through entries in TeamMoves, checking each for our trainer class .IterateTeamMoves - ld a,[hli] + ld a, [hli] cp b - jr z,.GiveTeamMoves ; is there a match? + jr z, .GiveTeamMoves ; is there a match? inc hl ; if not, go to the next entry inc a - jr nz,.IterateTeamMoves + jr nz, .IterateTeamMoves ; no matches found. is this trainer champion rival? - ld a,b + ld a, b cp SONY3 - jr z,.ChampionRival + jr z, .ChampionRival jr .FinishUp ; nope .GiveTeamMoves - ld a,[hl] - ld [wEnemyMon5Moves + 2],a + ld a, [hl] + ld [wEnemyMon5Moves + 2], a jr .FinishUp .ChampionRival ; give moves to his team ; pidgeot - ld a,SKY_ATTACK - ld [wEnemyMon1Moves + 2],a + ld a, SKY_ATTACK + ld [wEnemyMon1Moves + 2], a ; starter - ld a,[wRivalStarter] + ld a, [wRivalStarter] cp STARTER3 - ld b,MEGA_DRAIN - jr z,.GiveStarterMove + ld b, MEGA_DRAIN + jr z, .GiveStarterMove cp STARTER1 - ld b,FIRE_BLAST - jr z,.GiveStarterMove - ld b,BLIZZARD ; must be squirtle + ld b, FIRE_BLAST + jr z, .GiveStarterMove + ld b, BLIZZARD ; must be squirtle .GiveStarterMove - ld a,b - ld [wEnemyMon6Moves + 2],a + ld a, b + ld [wEnemyMon6Moves + 2], a .FinishUp ; clear wAmountMoneyWon addresses xor a - ld de,wAmountMoneyWon - ld [de],a + ld de, wAmountMoneyWon + ld [de], a inc de - ld [de],a + ld [de], a inc de - ld [de],a - ld a,[wCurEnemyLVL] - ld b,a + ld [de], a + ld a, [wCurEnemyLVL] + ld b, a .LastLoop ; update wAmountMoneyWon addresses (money to win) based on enemy's level - ld hl,wTrainerBaseMoney + 1 - ld c,2 ; wAmountMoneyWon is a 3-byte number + ld hl, wTrainerBaseMoney + 1 + ld c, 2 ; wAmountMoneyWon is a 3-byte number push bc predef AddBCDPredef pop bc inc de inc de dec b - jr nz,.LastLoop ; repeat wCurEnemyLVL times + jr nz, .LastLoop ; repeat wCurEnemyLVL times ret |