mirror of
https://github.com/pret/pokered.git
synced 2024-10-22 22:55:31 +00:00
Further split bank e stuff
This commit is contained in:
parent
10211cc461
commit
ce9940a2eb
5 changed files with 435 additions and 432 deletions
122
engine/battle/bank_e_misc.asm
Normal file
122
engine/battle/bank_e_misc.asm
Normal file
|
@ -0,0 +1,122 @@
|
|||
; formats a string at wMovesString that lists the moves at wMoves
|
||||
FormatMovesString: ; 39b87 (e:5b87)
|
||||
ld hl, wMoves
|
||||
ld de, wMovesString
|
||||
ld b, $0
|
||||
.printMoveNameLoop
|
||||
ld a, [hli]
|
||||
and a ; end of move list?
|
||||
jr z, .printDashLoop ; print dashes when no moves are left
|
||||
push hl
|
||||
ld [wd0b5], a
|
||||
ld a, BANK(MoveNames)
|
||||
ld [wPredefBank], a
|
||||
ld a, MOVE_NAME
|
||||
ld [wNameListType], a
|
||||
call GetName
|
||||
ld hl, wcd6d
|
||||
.copyNameLoop
|
||||
ld a, [hli]
|
||||
cp $50
|
||||
jr z, .doneCopyingName
|
||||
ld [de], a
|
||||
inc de
|
||||
jr .copyNameLoop
|
||||
.doneCopyingName
|
||||
ld a, b
|
||||
ld [wcd6c], a
|
||||
inc b
|
||||
ld a, $4e ; line break
|
||||
ld [de], a
|
||||
inc de
|
||||
pop hl
|
||||
ld a, b
|
||||
cp NUM_MOVES
|
||||
jr z, .done
|
||||
jr .printMoveNameLoop
|
||||
.printDashLoop
|
||||
ld a, "-"
|
||||
ld [de], a
|
||||
inc de
|
||||
inc b
|
||||
ld a, b
|
||||
cp NUM_MOVES
|
||||
jr z, .done
|
||||
ld a, $4e ; line break
|
||||
ld [de], a
|
||||
inc de
|
||||
jr .printDashLoop
|
||||
.done
|
||||
ld a, "@"
|
||||
ld [de], a
|
||||
ret
|
||||
|
||||
; XXX this is called in a few places, but it doesn't appear to do anything useful
|
||||
Func_39bd5: ; 39bd5 (e:5bd5)
|
||||
ld a, [wd11b]
|
||||
cp $1
|
||||
jr nz, .asm_39be6
|
||||
ld hl, wEnemyPartyCount
|
||||
ld de, wEnemyMonOT
|
||||
ld a, ENEMYOT_NAME
|
||||
jr .asm_39c18
|
||||
.asm_39be6
|
||||
cp $4
|
||||
jr nz, .calcAttackStat4
|
||||
ld hl, wPartyCount
|
||||
ld de, wPartyMonOT
|
||||
ld a, PLAYEROT_NAME
|
||||
jr .asm_39c18
|
||||
.calcAttackStat4
|
||||
cp $5
|
||||
jr nz, .asm_39c02
|
||||
ld hl, wStringBuffer2 + 11
|
||||
ld de, MonsterNames
|
||||
ld a, MONSTER_NAME
|
||||
jr .asm_39c18
|
||||
.asm_39c02
|
||||
cp $2
|
||||
jr nz, .asm_39c10
|
||||
ld hl, wNumBagItems
|
||||
ld de, ItemNames
|
||||
ld a, ITEM_NAME
|
||||
jr .asm_39c18
|
||||
.asm_39c10
|
||||
ld hl, wStringBuffer2 + 11
|
||||
ld de, ItemNames
|
||||
ld a, ITEM_NAME
|
||||
.asm_39c18
|
||||
ld [wNameListType], a
|
||||
ld a, l
|
||||
ld [wList], a
|
||||
ld a, h
|
||||
ld [wList + 1], a
|
||||
ld a, e
|
||||
ld [wcf8d], a
|
||||
ld a, d
|
||||
ld [wcf8e], a
|
||||
ld bc, ItemPrices
|
||||
ld a, c
|
||||
ld [wItemPrices], a
|
||||
ld a, b
|
||||
ld [wItemPrices + 1], a
|
||||
ret
|
||||
|
||||
; get species of mon e in list [wcc49] for LoadMonData
|
||||
GetMonSpecies: ; 39c37 (e:5c37)
|
||||
ld hl, wPartySpecies
|
||||
ld a, [wcc49]
|
||||
and a
|
||||
jr z, .getSpecies
|
||||
dec a
|
||||
jr z, .enemyParty
|
||||
ld hl, wBoxSpecies
|
||||
jr .getSpecies
|
||||
.enemyParty
|
||||
ld hl, wEnemyPartyMons
|
||||
.getSpecies
|
||||
ld d, 0
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
ld [wcf91], a
|
||||
ret
|
164
engine/battle/read_trainer_party.asm
Normal file
164
engine/battle/read_trainer_party.asm
Normal file
|
@ -0,0 +1,164 @@
|
|||
ReadTrainer: ; 39c53 (e:5c53)
|
||||
|
||||
; don't change any moves in a link battle
|
||||
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
|
||||
xor a
|
||||
ld [hli],a
|
||||
dec a
|
||||
ld [hl],a
|
||||
|
||||
; get the pointer to trainer data for this class
|
||||
ld a,[W_CUROPPONENT]
|
||||
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,[W_TRAINERNO]
|
||||
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
|
||||
.inner
|
||||
ld a,[hli]
|
||||
and a
|
||||
jr nz,.inner
|
||||
jr .outer
|
||||
|
||||
; if the first byte of trainer data is FF,
|
||||
; - each pokemon has a specific level
|
||||
; (as opposed to the whole team being of the same level)
|
||||
; - if [W_LONEATTACKNO] != 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]
|
||||
cp $FF ; is the trainer special?
|
||||
jr z,.SpecialTrainer ; if so, check for special moves
|
||||
ld [W_CURENEMYLVL],a
|
||||
.LoopTrainerData
|
||||
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,1
|
||||
ld [wcc49],a
|
||||
push hl
|
||||
call AddPartyMon
|
||||
pop hl
|
||||
jr .LoopTrainerData
|
||||
.SpecialTrainer
|
||||
; if this code is being run:
|
||||
; - each pokemon has a specific level
|
||||
; (as opposed to the whole team being of the same level)
|
||||
; - if [W_LONEATTACKNO] != 0, one pokemon on the team has a special move
|
||||
ld a,[hli]
|
||||
and a ; have we reached the end of the trainer data?
|
||||
jr z,.AddLoneMove
|
||||
ld [W_CURENEMYLVL],a
|
||||
ld a,[hli]
|
||||
ld [wcf91],a
|
||||
ld a,1
|
||||
ld [wcc49],a
|
||||
push hl
|
||||
call AddPartyMon
|
||||
pop hl
|
||||
jr .SpecialTrainer
|
||||
.AddLoneMove
|
||||
; does the trainer have a single monster with a different move
|
||||
ld a,[W_LONEATTACKNO] ; Brock is 01, Misty is 02, Erika is 04, etc
|
||||
and a
|
||||
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
|
||||
call AddNTimes
|
||||
ld [hl],d
|
||||
jr .FinishUp
|
||||
.AddTeamMove
|
||||
; check if our trainer's team has special moves
|
||||
|
||||
; get trainer class number
|
||||
ld a,[W_CUROPPONENT]
|
||||
sub $C8
|
||||
ld b,a
|
||||
ld hl,TeamMoves
|
||||
|
||||
; iterate through entries in TeamMoves, checking each for our trainer class
|
||||
.IterateTeamMoves
|
||||
ld a,[hli]
|
||||
cp b
|
||||
jr z,.GiveTeamMoves ; is there a match?
|
||||
inc hl ; if not, go to the next entry
|
||||
inc a
|
||||
jr nz,.IterateTeamMoves
|
||||
|
||||
; no matches found. is this trainer champion rival?
|
||||
ld a,b
|
||||
cp SONY3
|
||||
jr z,.ChampionRival
|
||||
jr .FinishUp ; nope
|
||||
.GiveTeamMoves
|
||||
ld a,[hl]
|
||||
ld [wEnemyMon5Moves + 2],a
|
||||
jr .FinishUp
|
||||
.ChampionRival ; give moves to his team
|
||||
|
||||
; pidgeot
|
||||
ld a,SKY_ATTACK
|
||||
ld [wEnemyMon1Moves + 2],a
|
||||
|
||||
; starter
|
||||
ld a,[W_RIVALSTARTER]
|
||||
cp STARTER3
|
||||
ld b,MEGA_DRAIN
|
||||
jr z,.GiveStarterMove
|
||||
cp STARTER1
|
||||
ld b,FIRE_BLAST
|
||||
jr z,.GiveStarterMove
|
||||
ld b,BLIZZARD ; must be squirtle
|
||||
.GiveStarterMove
|
||||
ld a,b
|
||||
ld [wEnemyMon6Moves + 2],a
|
||||
.FinishUp ; XXX this needs documenting
|
||||
xor a ; clear D079-D07B
|
||||
ld de,wd079
|
||||
ld [de],a
|
||||
inc de
|
||||
ld [de],a
|
||||
inc de
|
||||
ld [de],a
|
||||
ld a,[W_CURENEMYLVL]
|
||||
ld b,a
|
||||
.LastLoop
|
||||
ld hl,wd047
|
||||
ld c,2
|
||||
push bc
|
||||
predef AddBCDPredef
|
||||
pop bc
|
||||
inc de
|
||||
inc de
|
||||
dec b
|
||||
jr nz,.LastLoop
|
||||
ret
|
|
@ -324,439 +324,13 @@ TrainerClassMoveChoiceModifications: ; 3989b (e:589b)
|
|||
db 1,0 ; AGATHA
|
||||
db 1,3,0 ; LANCE
|
||||
|
||||
TrainerPicAndMoneyPointers: ; 39914 (e:5914)
|
||||
; trainer pic pointers and base money.
|
||||
; money received after battle = base money × level of highest-level enemy mon
|
||||
dw YoungsterPic
|
||||
money 1500
|
||||
INCLUDE "engine/battle/trainer_pic_money_pointers.asm"
|
||||
|
||||
INCLUDE "text/trainer_names.asm"
|
||||
|
||||
dw BugCatcherPic
|
||||
money 1000
|
||||
INCLUDE "engine/battle/bank_e_misc.asm"
|
||||
|
||||
dw LassPic
|
||||
money 1500
|
||||
|
||||
dw SailorPic
|
||||
money 3000
|
||||
|
||||
dw JrTrainerMPic
|
||||
money 2000
|
||||
|
||||
dw JrTrainerFPic
|
||||
money 2000
|
||||
|
||||
dw PokemaniacPic
|
||||
money 5000
|
||||
|
||||
dw SuperNerdPic
|
||||
money 2500
|
||||
|
||||
dw HikerPic
|
||||
money 3500
|
||||
|
||||
dw BikerPic
|
||||
money 2000
|
||||
|
||||
dw BurglarPic
|
||||
money 9000
|
||||
|
||||
dw EngineerPic
|
||||
money 5000
|
||||
|
||||
dw JugglerPic
|
||||
money 3500
|
||||
|
||||
dw FisherPic
|
||||
money 3500
|
||||
|
||||
dw SwimmerPic
|
||||
money 500
|
||||
|
||||
dw CueBallPic
|
||||
money 2500
|
||||
|
||||
dw GamblerPic
|
||||
money 7000
|
||||
|
||||
dw BeautyPic
|
||||
money 7000
|
||||
|
||||
dw PsychicPic
|
||||
money 1000
|
||||
|
||||
dw RockerPic
|
||||
money 2500
|
||||
|
||||
dw JugglerPic
|
||||
money 3500
|
||||
|
||||
dw TamerPic
|
||||
money 4000
|
||||
|
||||
dw BirdKeeperPic
|
||||
money 2500
|
||||
|
||||
dw BlackbeltPic
|
||||
money 2500
|
||||
|
||||
dw Rival1Pic
|
||||
money 3500
|
||||
|
||||
dw ProfOakPic
|
||||
money 9900
|
||||
|
||||
dw ChiefPic
|
||||
money 3000
|
||||
|
||||
dw ScientistPic
|
||||
money 5000
|
||||
|
||||
dw GiovanniPic
|
||||
money 9900
|
||||
|
||||
dw RocketPic
|
||||
money 3000
|
||||
|
||||
dw CooltrainerMPic
|
||||
money 3500
|
||||
|
||||
dw CooltrainerFPic
|
||||
money 3500
|
||||
|
||||
dw BrunoPic
|
||||
money 9900
|
||||
|
||||
dw BrockPic
|
||||
money 9900
|
||||
|
||||
dw MistyPic
|
||||
money 9900
|
||||
|
||||
dw LtSurgePic
|
||||
money 9900
|
||||
|
||||
dw ErikaPic
|
||||
money 9900
|
||||
|
||||
dw KogaPic
|
||||
money 9900
|
||||
|
||||
dw BlainePic
|
||||
money 9900
|
||||
|
||||
dw SabrinaPic
|
||||
money 9900
|
||||
|
||||
dw GentlemanPic
|
||||
money 7000
|
||||
|
||||
dw Rival2Pic
|
||||
money 6500
|
||||
|
||||
dw Rival3Pic
|
||||
money 9900
|
||||
|
||||
dw LoreleiPic
|
||||
money 9900
|
||||
|
||||
dw ChannelerPic
|
||||
money 3000
|
||||
|
||||
dw AgathaPic
|
||||
money 9900
|
||||
|
||||
dw LancePic
|
||||
money 9900
|
||||
|
||||
INCLUDE "text/trainer_names.asm"
|
||||
|
||||
; formats a string at wMovesString that lists the moves at wMoves
|
||||
FormatMovesString: ; 39b87 (e:5b87)
|
||||
ld hl, wMoves
|
||||
ld de, wMovesString
|
||||
ld b, $0
|
||||
.printMoveNameLoop
|
||||
ld a, [hli]
|
||||
and a ; end of move list?
|
||||
jr z, .printDashLoop ; print dashes when no moves are left
|
||||
push hl
|
||||
ld [wd0b5], a
|
||||
ld a, BANK(MoveNames)
|
||||
ld [wPredefBank], a
|
||||
ld a, MOVE_NAME
|
||||
ld [wNameListType], a
|
||||
call GetName
|
||||
ld hl, wcd6d
|
||||
.copyNameLoop
|
||||
ld a, [hli]
|
||||
cp $50
|
||||
jr z, .doneCopyingName
|
||||
ld [de], a
|
||||
inc de
|
||||
jr .copyNameLoop
|
||||
.doneCopyingName
|
||||
ld a, b
|
||||
ld [wcd6c], a
|
||||
inc b
|
||||
ld a, $4e ; line break
|
||||
ld [de], a
|
||||
inc de
|
||||
pop hl
|
||||
ld a, b
|
||||
cp NUM_MOVES
|
||||
jr z, .done
|
||||
jr .printMoveNameLoop
|
||||
.printDashLoop
|
||||
ld a, "-"
|
||||
ld [de], a
|
||||
inc de
|
||||
inc b
|
||||
ld a, b
|
||||
cp NUM_MOVES
|
||||
jr z, .done
|
||||
ld a, $4e ; line break
|
||||
ld [de], a
|
||||
inc de
|
||||
jr .printDashLoop
|
||||
.done
|
||||
ld a, "@"
|
||||
ld [de], a
|
||||
ret
|
||||
|
||||
; XXX this is called in a few places, but it doesn't appear to do anything useful
|
||||
Func_39bd5: ; 39bd5 (e:5bd5)
|
||||
ld a, [wd11b]
|
||||
cp $1
|
||||
jr nz, .asm_39be6
|
||||
ld hl, wEnemyPartyCount
|
||||
ld de, wEnemyMonOT
|
||||
ld a, ENEMYOT_NAME
|
||||
jr .asm_39c18
|
||||
.asm_39be6
|
||||
cp $4
|
||||
jr nz, .calcAttackStat4
|
||||
ld hl, wPartyCount
|
||||
ld de, wPartyMonOT
|
||||
ld a, PLAYEROT_NAME
|
||||
jr .asm_39c18
|
||||
.calcAttackStat4
|
||||
cp $5
|
||||
jr nz, .asm_39c02
|
||||
ld hl, wStringBuffer2 + 11
|
||||
ld de, MonsterNames
|
||||
ld a, MONSTER_NAME
|
||||
jr .asm_39c18
|
||||
.asm_39c02
|
||||
cp $2
|
||||
jr nz, .asm_39c10
|
||||
ld hl, wNumBagItems
|
||||
ld de, ItemNames
|
||||
ld a, ITEM_NAME
|
||||
jr .asm_39c18
|
||||
.asm_39c10
|
||||
ld hl, wStringBuffer2 + 11
|
||||
ld de, ItemNames
|
||||
ld a, ITEM_NAME
|
||||
.asm_39c18
|
||||
ld [wNameListType], a
|
||||
ld a, l
|
||||
ld [wList], a
|
||||
ld a, h
|
||||
ld [wList + 1], a
|
||||
ld a, e
|
||||
ld [wcf8d], a
|
||||
ld a, d
|
||||
ld [wcf8e], a
|
||||
ld bc, ItemPrices
|
||||
ld a, c
|
||||
ld [wItemPrices], a
|
||||
ld a, b
|
||||
ld [wItemPrices + 1], a
|
||||
ret
|
||||
|
||||
; get species of mon e in list [wcc49] for LoadMonData
|
||||
GetMonSpecies: ; 39c37 (e:5c37)
|
||||
ld hl, wPartySpecies
|
||||
ld a, [wcc49]
|
||||
and a
|
||||
jr z, .getSpecies
|
||||
dec a
|
||||
jr z, .enemyParty
|
||||
ld hl, wBoxSpecies
|
||||
jr .getSpecies
|
||||
.enemyParty
|
||||
ld hl, wEnemyPartyMons
|
||||
.getSpecies
|
||||
ld d, 0
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
ld [wcf91], a
|
||||
ret
|
||||
|
||||
ReadTrainer: ; 39c53 (e:5c53)
|
||||
|
||||
; don't change any moves in a link battle
|
||||
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
|
||||
xor a
|
||||
ld [hli],a
|
||||
dec a
|
||||
ld [hl],a
|
||||
|
||||
; get the pointer to trainer data for this class
|
||||
ld a,[W_CUROPPONENT]
|
||||
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,[W_TRAINERNO]
|
||||
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
|
||||
.inner
|
||||
ld a,[hli]
|
||||
and a
|
||||
jr nz,.inner
|
||||
jr .outer
|
||||
|
||||
; if the first byte of trainer data is FF,
|
||||
; - each pokemon has a specific level
|
||||
; (as opposed to the whole team being of the same level)
|
||||
; - if [W_LONEATTACKNO] != 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]
|
||||
cp $FF ; is the trainer special?
|
||||
jr z,.SpecialTrainer ; if so, check for special moves
|
||||
ld [W_CURENEMYLVL],a
|
||||
.LoopTrainerData
|
||||
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,1
|
||||
ld [wcc49],a
|
||||
push hl
|
||||
call AddPartyMon
|
||||
pop hl
|
||||
jr .LoopTrainerData
|
||||
.SpecialTrainer
|
||||
; if this code is being run:
|
||||
; - each pokemon has a specific level
|
||||
; (as opposed to the whole team being of the same level)
|
||||
; - if [W_LONEATTACKNO] != 0, one pokemon on the team has a special move
|
||||
ld a,[hli]
|
||||
and a ; have we reached the end of the trainer data?
|
||||
jr z,.AddLoneMove
|
||||
ld [W_CURENEMYLVL],a
|
||||
ld a,[hli]
|
||||
ld [wcf91],a
|
||||
ld a,1
|
||||
ld [wcc49],a
|
||||
push hl
|
||||
call AddPartyMon
|
||||
pop hl
|
||||
jr .SpecialTrainer
|
||||
.AddLoneMove
|
||||
; does the trainer have a single monster with a different move
|
||||
ld a,[W_LONEATTACKNO] ; Brock is 01, Misty is 02, Erika is 04, etc
|
||||
and a
|
||||
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
|
||||
call AddNTimes
|
||||
ld [hl],d
|
||||
jr .FinishUp
|
||||
.AddTeamMove
|
||||
; check if our trainer's team has special moves
|
||||
|
||||
; get trainer class number
|
||||
ld a,[W_CUROPPONENT]
|
||||
sub $C8
|
||||
ld b,a
|
||||
ld hl,TeamMoves
|
||||
|
||||
; iterate through entries in TeamMoves, checking each for our trainer class
|
||||
.IterateTeamMoves
|
||||
ld a,[hli]
|
||||
cp b
|
||||
jr z,.GiveTeamMoves ; is there a match?
|
||||
inc hl ; if not, go to the next entry
|
||||
inc a
|
||||
jr nz,.IterateTeamMoves
|
||||
|
||||
; no matches found. is this trainer champion rival?
|
||||
ld a,b
|
||||
cp SONY3
|
||||
jr z,.ChampionRival
|
||||
jr .FinishUp ; nope
|
||||
.GiveTeamMoves
|
||||
ld a,[hl]
|
||||
ld [wEnemyMon5Moves + 2],a
|
||||
jr .FinishUp
|
||||
.ChampionRival ; give moves to his team
|
||||
|
||||
; pidgeot
|
||||
ld a,SKY_ATTACK
|
||||
ld [wEnemyMon1Moves + 2],a
|
||||
|
||||
; starter
|
||||
ld a,[W_RIVALSTARTER]
|
||||
cp STARTER3
|
||||
ld b,MEGA_DRAIN
|
||||
jr z,.GiveStarterMove
|
||||
cp STARTER1
|
||||
ld b,FIRE_BLAST
|
||||
jr z,.GiveStarterMove
|
||||
ld b,BLIZZARD ; must be squirtle
|
||||
.GiveStarterMove
|
||||
ld a,b
|
||||
ld [wEnemyMon6Moves + 2],a
|
||||
.FinishUp ; XXX this needs documenting
|
||||
xor a ; clear D079-D07B
|
||||
ld de,wd079
|
||||
ld [de],a
|
||||
inc de
|
||||
ld [de],a
|
||||
inc de
|
||||
ld [de],a
|
||||
ld a,[W_CURENEMYLVL]
|
||||
ld b,a
|
||||
.LastLoop
|
||||
ld hl,wd047
|
||||
ld c,2
|
||||
push bc
|
||||
predef AddBCDPredef
|
||||
pop bc
|
||||
inc de
|
||||
inc de
|
||||
dec b
|
||||
jr nz,.LastLoop
|
||||
ret
|
||||
INCLUDE "engine/battle/read_trainer_party.asm"
|
||||
|
||||
INCLUDE "data/trainer_moves.asm"
|
||||
|
143
engine/battle/trainer_pic_money_pointers.asm
Normal file
143
engine/battle/trainer_pic_money_pointers.asm
Normal file
|
@ -0,0 +1,143 @@
|
|||
TrainerPicAndMoneyPointers: ; 39914 (e:5914)
|
||||
; trainer pic pointers and base money.
|
||||
; money received after battle = base money × level of highest-level enemy mon
|
||||
dw YoungsterPic
|
||||
money 1500
|
||||
|
||||
dw BugCatcherPic
|
||||
money 1000
|
||||
|
||||
dw LassPic
|
||||
money 1500
|
||||
|
||||
dw SailorPic
|
||||
money 3000
|
||||
|
||||
dw JrTrainerMPic
|
||||
money 2000
|
||||
|
||||
dw JrTrainerFPic
|
||||
money 2000
|
||||
|
||||
dw PokemaniacPic
|
||||
money 5000
|
||||
|
||||
dw SuperNerdPic
|
||||
money 2500
|
||||
|
||||
dw HikerPic
|
||||
money 3500
|
||||
|
||||
dw BikerPic
|
||||
money 2000
|
||||
|
||||
dw BurglarPic
|
||||
money 9000
|
||||
|
||||
dw EngineerPic
|
||||
money 5000
|
||||
|
||||
dw JugglerPic
|
||||
money 3500
|
||||
|
||||
dw FisherPic
|
||||
money 3500
|
||||
|
||||
dw SwimmerPic
|
||||
money 500
|
||||
|
||||
dw CueBallPic
|
||||
money 2500
|
||||
|
||||
dw GamblerPic
|
||||
money 7000
|
||||
|
||||
dw BeautyPic
|
||||
money 7000
|
||||
|
||||
dw PsychicPic
|
||||
money 1000
|
||||
|
||||
dw RockerPic
|
||||
money 2500
|
||||
|
||||
dw JugglerPic
|
||||
money 3500
|
||||
|
||||
dw TamerPic
|
||||
money 4000
|
||||
|
||||
dw BirdKeeperPic
|
||||
money 2500
|
||||
|
||||
dw BlackbeltPic
|
||||
money 2500
|
||||
|
||||
dw Rival1Pic
|
||||
money 3500
|
||||
|
||||
dw ProfOakPic
|
||||
money 9900
|
||||
|
||||
dw ChiefPic
|
||||
money 3000
|
||||
|
||||
dw ScientistPic
|
||||
money 5000
|
||||
|
||||
dw GiovanniPic
|
||||
money 9900
|
||||
|
||||
dw RocketPic
|
||||
money 3000
|
||||
|
||||
dw CooltrainerMPic
|
||||
money 3500
|
||||
|
||||
dw CooltrainerFPic
|
||||
money 3500
|
||||
|
||||
dw BrunoPic
|
||||
money 9900
|
||||
|
||||
dw BrockPic
|
||||
money 9900
|
||||
|
||||
dw MistyPic
|
||||
money 9900
|
||||
|
||||
dw LtSurgePic
|
||||
money 9900
|
||||
|
||||
dw ErikaPic
|
||||
money 9900
|
||||
|
||||
dw KogaPic
|
||||
money 9900
|
||||
|
||||
dw BlainePic
|
||||
money 9900
|
||||
|
||||
dw SabrinaPic
|
||||
money 9900
|
||||
|
||||
dw GentlemanPic
|
||||
money 7000
|
||||
|
||||
dw Rival2Pic
|
||||
money 6500
|
||||
|
||||
dw Rival3Pic
|
||||
money 9900
|
||||
|
||||
dw LoreleiPic
|
||||
money 9900
|
||||
|
||||
dw ChannelerPic
|
||||
money 3000
|
||||
|
||||
dw AgathaPic
|
||||
money 9900
|
||||
|
||||
dw LancePic
|
||||
money 9900
|
2
main.asm
2
main.asm
|
@ -5465,7 +5465,7 @@ BaseStats: INCLUDE "data/base_stats.asm"
|
|||
INCLUDE "data/cries.asm"
|
||||
INCLUDE "engine/battle/unused_stats_functions.asm"
|
||||
INCLUDE "engine/battle/scroll_draw_trainer_pic.asm"
|
||||
INCLUDE "engine/battle/trainer_party_ai_misc.asm"
|
||||
INCLUDE "engine/battle/trainer_ai.asm"
|
||||
INCLUDE "engine/battle/draw_hud_pokeball_gfx.asm"
|
||||
|
||||
TradingAnimationGraphics:
|
||||
|
|
Loading…
Reference in a new issue