You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-09-08 08:13:02 -07:00
Split up banks 1-3 of main.asm
This commit is contained in:
@@ -980,7 +980,7 @@ BattleAnimCmd_RaiseSub: ; cc640 (33:4640)
|
|||||||
GetSubstitutePic: ; cc64c
|
GetSubstitutePic: ; cc64c
|
||||||
|
|
||||||
ld hl, sScratch
|
ld hl, sScratch
|
||||||
ld bc, $310
|
ld bc, (7 * 7) tiles
|
||||||
.loop
|
.loop
|
||||||
xor a
|
xor a
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
@@ -994,16 +994,16 @@ GetSubstitutePic: ; cc64c
|
|||||||
jr z, .player
|
jr z, .player
|
||||||
|
|
||||||
ld hl, MonsterSpriteGFX + 0 tiles
|
ld hl, MonsterSpriteGFX + 0 tiles
|
||||||
ld de, sScratch + $13 tiles
|
ld de, sScratch + (2 * 7 + 5) tiles
|
||||||
call .CopyTile
|
call .CopyTile
|
||||||
ld hl, MonsterSpriteGFX + 1 tiles
|
ld hl, MonsterSpriteGFX + 1 tiles
|
||||||
ld de, sScratch + $1a tiles
|
ld de, sScratch + (3 * 7 + 5) tiles
|
||||||
call .CopyTile
|
call .CopyTile
|
||||||
ld hl, MonsterSpriteGFX + 2 tiles
|
ld hl, MonsterSpriteGFX + 2 tiles
|
||||||
ld de, sScratch + $14 tiles
|
ld de, sScratch + (2 * 7 + 6) tiles
|
||||||
call .CopyTile
|
call .CopyTile
|
||||||
ld hl, MonsterSpriteGFX + 3 tiles
|
ld hl, MonsterSpriteGFX + 3 tiles
|
||||||
ld de, sScratch + $1b tiles
|
ld de, sScratch + (3 * 7 + 6) tiles
|
||||||
call .CopyTile
|
call .CopyTile
|
||||||
|
|
||||||
ld hl, VTiles2 tile $00
|
ld hl, VTiles2 tile $00
|
||||||
@@ -1014,16 +1014,16 @@ GetSubstitutePic: ; cc64c
|
|||||||
|
|
||||||
.player
|
.player
|
||||||
ld hl, MonsterSpriteGFX + 4 tiles
|
ld hl, MonsterSpriteGFX + 4 tiles
|
||||||
ld de, sScratch + $10 tiles
|
ld de, sScratch + (2 * 6 + 4) tiles
|
||||||
call .CopyTile
|
call .CopyTile
|
||||||
ld hl, MonsterSpriteGFX + 5 tiles
|
ld hl, MonsterSpriteGFX + 5 tiles
|
||||||
ld de, sScratch + $16 tiles
|
ld de, sScratch + (3 * 6 + 4) tiles
|
||||||
call .CopyTile
|
call .CopyTile
|
||||||
ld hl, MonsterSpriteGFX + 6 tiles
|
ld hl, MonsterSpriteGFX + 6 tiles
|
||||||
ld de, sScratch + $11 tiles
|
ld de, sScratch + (2 * 6 + 5) tiles
|
||||||
call .CopyTile
|
call .CopyTile
|
||||||
ld hl, MonsterSpriteGFX + 7 tiles
|
ld hl, MonsterSpriteGFX + 7 tiles
|
||||||
ld de, sScratch + $17 tiles
|
ld de, sScratch + (3 * 6 + 5) tiles
|
||||||
call .CopyTile
|
call .CopyTile
|
||||||
|
|
||||||
ld hl, VTiles2 tile $31
|
ld hl, VTiles2 tile $31
|
||||||
|
@@ -7873,7 +7873,7 @@ BattleCommand_Substitute: ; 36e7c
|
|||||||
ld [hl], a
|
ld [hl], a
|
||||||
ld [de], a
|
ld [de], a
|
||||||
call _CheckBattleScene
|
call _CheckBattleScene
|
||||||
jr c, .mobile
|
jr c, .no_anim
|
||||||
|
|
||||||
xor a
|
xor a
|
||||||
ld [wNumHits], a
|
ld [wNumHits], a
|
||||||
@@ -7883,7 +7883,7 @@ BattleCommand_Substitute: ; 36e7c
|
|||||||
call LoadAnim
|
call LoadAnim
|
||||||
jr .finish
|
jr .finish
|
||||||
|
|
||||||
.mobile
|
.no_anim
|
||||||
call BattleCommand_RaiseSubNoAnim
|
call BattleCommand_RaiseSubNoAnim
|
||||||
.finish
|
.finish
|
||||||
ld hl, MadeSubstituteText
|
ld hl, MadeSubstituteText
|
||||||
|
@@ -19,8 +19,8 @@
|
|||||||
const BATTLETOWERACTION_11 ; store 0 in 5:aa8d
|
const BATTLETOWERACTION_11 ; store 0 in 5:aa8d
|
||||||
const BATTLETOWERACTION_12 ; store 1 in 5:aa8d
|
const BATTLETOWERACTION_12 ; store 1 in 5:aa8d
|
||||||
const BATTLETOWERACTION_13 ; check 5:aa8d
|
const BATTLETOWERACTION_13 ; check 5:aa8d
|
||||||
const BATTLETOWERACTION_14 ; if save file is yours: bit 0, [sbe4f]
|
const BATTLETOWERACTION_14 ; if save file is yours: bit 0, [s1_be4f]
|
||||||
const BATTLETOWERACTION_15 ; set 0, [sbe4f]
|
const BATTLETOWERACTION_15 ; set 0, [s1_be4f]
|
||||||
const BATTLETOWERACTION_16 ; update time in SRAM bank 5
|
const BATTLETOWERACTION_16 ; update time in SRAM bank 5
|
||||||
const BATTLETOWERACTION_17 ; check time in SRAM bank 5
|
const BATTLETOWERACTION_17 ; check time in SRAM bank 5
|
||||||
const BATTLETOWERACTION_18 ; level check
|
const BATTLETOWERACTION_18 ; level check
|
||||||
|
388
engine/billspctop.asm
Executable file
388
engine/billspctop.asm
Executable file
@@ -0,0 +1,388 @@
|
|||||||
|
_BillsPC: ; e3fd
|
||||||
|
call .CheckCanUsePC
|
||||||
|
ret c
|
||||||
|
call .LogIn
|
||||||
|
call .UseBillsPC
|
||||||
|
jp .LogOut
|
||||||
|
|
||||||
|
.CheckCanUsePC: ; e40a (3:640a)
|
||||||
|
ld a, [PartyCount]
|
||||||
|
and a
|
||||||
|
ret nz
|
||||||
|
ld hl, .Text_GottaHavePokemon
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Text_GottaHavePokemon: ; 0xe417
|
||||||
|
; You gotta have #MON to call!
|
||||||
|
text_jump UnknownText_0x1c1006
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
.LogIn: ; e41c (3:641c)
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
call LoadStandardMenuDataHeader
|
||||||
|
call ClearPCItemScreen
|
||||||
|
ld hl, Options
|
||||||
|
ld a, [hl]
|
||||||
|
push af
|
||||||
|
set NO_TEXT_SCROLL, [hl]
|
||||||
|
ld hl, .Text_What
|
||||||
|
call PrintText
|
||||||
|
pop af
|
||||||
|
ld [Options], a
|
||||||
|
call LoadFontsBattleExtra
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Text_What: ; 0xe43a
|
||||||
|
; What?
|
||||||
|
text_jump UnknownText_0x1c1024
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
.LogOut: ; e43f (3:643f)
|
||||||
|
call CloseSubmenu
|
||||||
|
ret
|
||||||
|
|
||||||
|
.UseBillsPC: ; e443 (3:6443)
|
||||||
|
ld hl, .MenuDataHeader
|
||||||
|
call LoadMenuDataHeader
|
||||||
|
ld a, $1
|
||||||
|
.loop
|
||||||
|
ld [wMenuCursorBuffer], a
|
||||||
|
call SetPalettes
|
||||||
|
xor a
|
||||||
|
ld [wWhichIndexSet], a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
call DoNthMenu
|
||||||
|
jr c, .cancel
|
||||||
|
ld a, [wMenuCursorBuffer]
|
||||||
|
push af
|
||||||
|
ld a, [MenuSelection]
|
||||||
|
ld hl, .Jumptable
|
||||||
|
rst JumpTable
|
||||||
|
pop bc
|
||||||
|
ld a, b
|
||||||
|
jr nc, .loop
|
||||||
|
.cancel
|
||||||
|
call CloseWindow
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MenuDataHeader: ; 0xe46f
|
||||||
|
db $40 ; flags
|
||||||
|
db 00, 00 ; start coords
|
||||||
|
db 17, 19 ; end coords
|
||||||
|
dw .MenuData2
|
||||||
|
db 1 ; default option
|
||||||
|
|
||||||
|
.MenuData2: ; 0xe477
|
||||||
|
db $80 ; flags
|
||||||
|
db 0 ; items
|
||||||
|
dw .items
|
||||||
|
dw PlaceMenuStrings
|
||||||
|
dw .strings
|
||||||
|
|
||||||
|
.strings: ; e47f
|
||||||
|
db "WITHDRAW <PK><MN>@"
|
||||||
|
db "DEPOSIT <PK><MN>@"
|
||||||
|
db "CHANGE BOX@"
|
||||||
|
db "MOVE <PK><MN> W/O MAIL@"
|
||||||
|
db "SEE YA!@"
|
||||||
|
|
||||||
|
.Jumptable: ; e4ba (3:64ba)
|
||||||
|
dw BillsPC_WithdrawMenu
|
||||||
|
dw BillsPC_DepositMenu
|
||||||
|
dw BillsPC_ChangeBoxMenu
|
||||||
|
dw BillsPC_MovePKMNMenu
|
||||||
|
dw BillsPC_SeeYa
|
||||||
|
|
||||||
|
.items: ; e4c4
|
||||||
|
db 5
|
||||||
|
db 0 ; WITHDRAW
|
||||||
|
db 1; DEPOSIT
|
||||||
|
db 2 ; CHANGE BOX
|
||||||
|
db 3 ; MOVE PKMN
|
||||||
|
db 4 ; SEE YA!
|
||||||
|
db -1
|
||||||
|
|
||||||
|
BillsPC_SeeYa: ; e4cb
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
BillsPC_MovePKMNMenu: ; e4cd
|
||||||
|
call LoadStandardMenuDataHeader
|
||||||
|
callba IsAnyMonHoldingMail
|
||||||
|
jr nc, .no_mail
|
||||||
|
ld hl, .Text_MonHoldingMail
|
||||||
|
call PrintText
|
||||||
|
jr .quit
|
||||||
|
|
||||||
|
.no_mail
|
||||||
|
callba StartMovePkmnWOMail_SaveGame
|
||||||
|
jr c, .quit
|
||||||
|
callba _MovePKMNWithoutMail
|
||||||
|
call ReturnToMapFromSubmenu
|
||||||
|
call ClearPCItemScreen
|
||||||
|
|
||||||
|
.quit
|
||||||
|
call CloseWindow
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Text_MonHoldingMail: ; 0xe4f9
|
||||||
|
; There is a #MON holding MAIL. Please remove the MAIL.
|
||||||
|
text_jump UnknownText_0x1c102b
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
BillsPC_DepositMenu: ; e4fe (3:64fe)
|
||||||
|
call LoadStandardMenuDataHeader
|
||||||
|
callba _DepositPKMN
|
||||||
|
call ReturnToMapFromSubmenu
|
||||||
|
call ClearPCItemScreen
|
||||||
|
call CloseWindow
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
Functione512: ; unused
|
||||||
|
ld a, [PartyCount]
|
||||||
|
and a
|
||||||
|
jr z, .no_pkmn
|
||||||
|
cp 2
|
||||||
|
jr c, .only_one_pkmn
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.no_pkmn
|
||||||
|
ld hl, .Text_NoPKMN
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.only_one_pkmn
|
||||||
|
ld hl, .Text_ItsYourLastPKMN
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Text_NoPKMN: ; 0xe52e
|
||||||
|
; You don't have a single #MON!
|
||||||
|
text_jump UnknownText_0x1c1062
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
.Text_ItsYourLastPKMN: ; 0xe533
|
||||||
|
; You can't deposit your last #MON!
|
||||||
|
text_jump UnknownText_0x1c1080
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
CheckCurPartyMonFainted: ; e538
|
||||||
|
ld hl, PartyMon1HP
|
||||||
|
ld de, PARTYMON_STRUCT_LENGTH
|
||||||
|
ld b, $0
|
||||||
|
.loop
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
cp b
|
||||||
|
jr z, .skip
|
||||||
|
ld a, [hli]
|
||||||
|
or [hl]
|
||||||
|
jr nz, .notfainted
|
||||||
|
dec hl
|
||||||
|
|
||||||
|
.skip
|
||||||
|
inc b
|
||||||
|
ld a, [PartyCount]
|
||||||
|
cp b
|
||||||
|
jr z, .done
|
||||||
|
add hl, de
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.done
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.notfainted
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
BillsPC_WithdrawMenu: ; e559 (3:6559)
|
||||||
|
call LoadStandardMenuDataHeader
|
||||||
|
callba _WithdrawPKMN
|
||||||
|
call ReturnToMapFromSubmenu
|
||||||
|
call ClearPCItemScreen
|
||||||
|
call CloseWindow
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
Functione56d: ; unused
|
||||||
|
ld a, [PartyCount]
|
||||||
|
cp PARTY_LENGTH
|
||||||
|
jr nc, .asm_e576
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_e576
|
||||||
|
ld hl, UnknownText_0xe57e
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
UnknownText_0xe57e: ; 0xe57e
|
||||||
|
; You can't take any more #MON.
|
||||||
|
text_jump UnknownText_0x1c10a2
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
BillsPC_ChangeBoxMenu: ; e583 (3:6583)
|
||||||
|
callba _ChangeBox
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
ClearPCItemScreen: ; e58b
|
||||||
|
call DisableSpriteUpdates
|
||||||
|
xor a
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
call ClearBGPalettes
|
||||||
|
call ClearSprites
|
||||||
|
hlcoord 0, 0
|
||||||
|
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
|
||||||
|
ld a, " "
|
||||||
|
call ByteFill
|
||||||
|
hlcoord 0,0
|
||||||
|
lb bc, 10, 18
|
||||||
|
call TextBox
|
||||||
|
hlcoord 0,12
|
||||||
|
lb bc, 4, 18
|
||||||
|
call TextBox
|
||||||
|
call WaitBGMap2
|
||||||
|
call SetPalettes ; load regular palettes?
|
||||||
|
ret
|
||||||
|
|
||||||
|
CopyBoxmonToTempMon: ; e5bb
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
ld hl, sBoxMon1Species
|
||||||
|
ld bc, BOXMON_STRUCT_LENGTH
|
||||||
|
call AddNTimes
|
||||||
|
ld de, TempMonSpecies
|
||||||
|
ld bc, BOXMON_STRUCT_LENGTH
|
||||||
|
ld a, BANK(sBoxMon1Species)
|
||||||
|
call GetSRAMBank
|
||||||
|
call CopyBytes
|
||||||
|
call CloseSRAM
|
||||||
|
ret
|
||||||
|
|
||||||
|
Functione5d9: ; unreferenced
|
||||||
|
ld a, [wCurBox]
|
||||||
|
cp b
|
||||||
|
jr z, .same_box
|
||||||
|
ld a, b
|
||||||
|
ld hl, .BoxAddrs
|
||||||
|
ld bc, 3
|
||||||
|
call AddNTimes
|
||||||
|
ld a, [hli]
|
||||||
|
push af
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
pop af
|
||||||
|
jr .okay
|
||||||
|
|
||||||
|
.same_box
|
||||||
|
ld a, BANK(sBoxCount)
|
||||||
|
ld hl, sBoxCount
|
||||||
|
|
||||||
|
.okay
|
||||||
|
call GetSRAMBank
|
||||||
|
ld a, [hl]
|
||||||
|
ld bc, 1 + MONS_PER_BOX + 1
|
||||||
|
add hl, bc
|
||||||
|
ld b, a
|
||||||
|
ld c, $0
|
||||||
|
ld de, wc608
|
||||||
|
ld a, b
|
||||||
|
and a
|
||||||
|
jr z, .empty_box
|
||||||
|
.loop
|
||||||
|
push hl
|
||||||
|
push bc
|
||||||
|
ld a, c
|
||||||
|
ld bc, 0
|
||||||
|
add hl, bc
|
||||||
|
ld bc, BOXMON_STRUCT_LENGTH
|
||||||
|
call AddNTimes
|
||||||
|
ld a, [hl]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld [CurSpecies], a
|
||||||
|
call GetBaseData
|
||||||
|
pop bc
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
push hl
|
||||||
|
push bc
|
||||||
|
ld a, c
|
||||||
|
ld bc, MONS_PER_BOX * (BOXMON_STRUCT_LENGTH + NAME_LENGTH)
|
||||||
|
add hl, bc
|
||||||
|
call SkipNames
|
||||||
|
call CopyBytes
|
||||||
|
pop bc
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
push hl
|
||||||
|
push bc
|
||||||
|
ld a, c
|
||||||
|
ld bc, MON_LEVEL
|
||||||
|
add hl, bc
|
||||||
|
ld bc, BOXMON_STRUCT_LENGTH
|
||||||
|
call AddNTimes
|
||||||
|
ld a, [hl]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
pop bc
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
push hl
|
||||||
|
push bc
|
||||||
|
ld a, c
|
||||||
|
ld bc, MON_DVS
|
||||||
|
add hl, bc
|
||||||
|
ld bc, BOXMON_STRUCT_LENGTH
|
||||||
|
call AddNTimes
|
||||||
|
ld a, [hli]
|
||||||
|
and $f0
|
||||||
|
ld b, a
|
||||||
|
ld a, [hl]
|
||||||
|
and $f0
|
||||||
|
swap a
|
||||||
|
or b
|
||||||
|
ld b, a
|
||||||
|
ld a, [BaseGender]
|
||||||
|
cp b
|
||||||
|
ld a, $1
|
||||||
|
jr c, .okay2
|
||||||
|
xor a
|
||||||
|
.okay2
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
pop bc
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
inc c
|
||||||
|
dec b
|
||||||
|
jr nz, .loop
|
||||||
|
.empty_box
|
||||||
|
call CloseSRAM
|
||||||
|
ret
|
||||||
|
|
||||||
|
.BoxAddrs: ; e66e
|
||||||
|
dba sBox1
|
||||||
|
dba sBox2
|
||||||
|
dba sBox3
|
||||||
|
dba sBox4
|
||||||
|
dba sBox5
|
||||||
|
dba sBox6
|
||||||
|
dba sBox7
|
||||||
|
dba sBox8
|
||||||
|
dba sBox9
|
||||||
|
dba sBox10
|
||||||
|
dba sBox11
|
||||||
|
dba sBox12
|
||||||
|
dba sBox13
|
||||||
|
dba sBox14
|
110
engine/health.asm
Executable file
110
engine/health.asm
Executable file
@@ -0,0 +1,110 @@
|
|||||||
|
HealParty: ; c658
|
||||||
|
xor a
|
||||||
|
ld [CurPartyMon], a
|
||||||
|
ld hl, PartySpecies
|
||||||
|
.loop
|
||||||
|
ld a, [hli]
|
||||||
|
cp -1
|
||||||
|
jr z, .done
|
||||||
|
cp EGG
|
||||||
|
jr z, .next
|
||||||
|
|
||||||
|
push hl
|
||||||
|
call HealPartyMon
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
.next
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
inc a
|
||||||
|
ld [CurPartyMon], a
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.done
|
||||||
|
ret
|
||||||
|
|
||||||
|
HealPartyMon: ; c677
|
||||||
|
ld a, MON_SPECIES
|
||||||
|
call GetPartyParamLocation
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
|
||||||
|
ld hl, MON_STATUS
|
||||||
|
add hl, de
|
||||||
|
xor a
|
||||||
|
ld [hli], a
|
||||||
|
ld [hl], a
|
||||||
|
|
||||||
|
ld hl, MON_MAXHP
|
||||||
|
add hl, de
|
||||||
|
|
||||||
|
; bc = MON_HP
|
||||||
|
ld b, h
|
||||||
|
ld c, l
|
||||||
|
dec bc
|
||||||
|
dec bc
|
||||||
|
|
||||||
|
ld a, [hli]
|
||||||
|
ld [bc], a
|
||||||
|
inc bc
|
||||||
|
ld a, [hl]
|
||||||
|
ld [bc], a
|
||||||
|
|
||||||
|
callba RestoreAllPP
|
||||||
|
ret
|
||||||
|
|
||||||
|
ComputeHPBarPixels: ; c699
|
||||||
|
; e = bc * (6 * 8) / de
|
||||||
|
ld a, b
|
||||||
|
or c
|
||||||
|
jr z, .zero
|
||||||
|
push hl
|
||||||
|
xor a
|
||||||
|
ld [hMultiplicand + 0], a
|
||||||
|
ld a, b
|
||||||
|
ld [hMultiplicand + 1], a
|
||||||
|
ld a, c
|
||||||
|
ld [hMultiplicand + 2], a
|
||||||
|
ld a, 6 * 8
|
||||||
|
ld [hMultiplier], a
|
||||||
|
call Multiply
|
||||||
|
; We need de to be under 256 because hDivisor is only 1 byte.
|
||||||
|
ld a, d
|
||||||
|
and a
|
||||||
|
jr z, .divide
|
||||||
|
; divide de and hProduct by 4
|
||||||
|
srl d
|
||||||
|
rr e
|
||||||
|
srl d
|
||||||
|
rr e
|
||||||
|
ld a, [hProduct + 2]
|
||||||
|
ld b, a
|
||||||
|
ld a, [hProduct + 3]
|
||||||
|
srl b
|
||||||
|
rr a
|
||||||
|
srl b
|
||||||
|
rr a
|
||||||
|
ld [hDividend + 3], a
|
||||||
|
ld a, b
|
||||||
|
ld [hDividend + 2], a
|
||||||
|
.divide
|
||||||
|
ld a, e
|
||||||
|
ld [hDivisor], a
|
||||||
|
ld b, 4
|
||||||
|
call Divide
|
||||||
|
ld a, [hQuotient + 2]
|
||||||
|
ld e, a
|
||||||
|
pop hl
|
||||||
|
and a
|
||||||
|
ret nz
|
||||||
|
ld e, 1
|
||||||
|
ret
|
||||||
|
|
||||||
|
.zero
|
||||||
|
ld e, 0
|
||||||
|
ret
|
||||||
|
|
||||||
|
AnimateHPBar: ; c6e0
|
||||||
|
call WaitBGMap
|
||||||
|
call _AnimateHPBar
|
||||||
|
call WaitBGMap
|
||||||
|
ret
|
584
engine/items.asm
Executable file
584
engine/items.asm
Executable file
File diff suppressed because it is too large
Load Diff
@@ -451,22 +451,20 @@ Script_ReceivePhoneCall: ; 0x90241
|
|||||||
; 0x90255
|
; 0x90255
|
||||||
|
|
||||||
Script_SpecialBillCall:: ; 0x90255
|
Script_SpecialBillCall:: ; 0x90255
|
||||||
callasm Function9025c
|
callasm .LoadBillScript
|
||||||
jump Script_ReceivePhoneCall
|
jump Script_ReceivePhoneCall
|
||||||
; 0x9025c
|
|
||||||
|
|
||||||
Function9025c: ; 9025c
|
.LoadBillScript
|
||||||
ld e, PHONE_BILL
|
ld e, PHONE_BILL
|
||||||
jp LoadCallerScript
|
jp LoadCallerScript
|
||||||
; 90261
|
; 90261
|
||||||
|
|
||||||
UnknownScript_0x90261: ; 0x90261
|
UnknownScript_0x90261: ; 0x90261
|
||||||
callasm Function9026a
|
callasm .LoadElmScript
|
||||||
pause 30
|
pause 30
|
||||||
jump Script_ReceivePhoneCall
|
jump Script_ReceivePhoneCall
|
||||||
; 0x9026a
|
|
||||||
|
|
||||||
Function9026a: ; 9026a
|
.LoadElmScript
|
||||||
ld e, PHONE_ELM
|
ld e, PHONE_ELM
|
||||||
jp LoadCallerScript
|
jp LoadCallerScript
|
||||||
; 9026f
|
; 9026f
|
||||||
@@ -494,7 +492,6 @@ Phone_CallerTextboxWithName: ; 90292 (24:4292)
|
|||||||
call Function90363
|
call Function90363
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
PhoneCall:: ; 9029a
|
PhoneCall:: ; 9029a
|
||||||
ld a, b
|
ld a, b
|
||||||
ld [PhoneScriptBank], a
|
ld [PhoneScriptBank], a
|
||||||
|
856
engine/player_object.asm
Executable file
856
engine/player_object.asm
Executable file
File diff suppressed because it is too large
Load Diff
300
engine/printnum.asm
Executable file
300
engine/printnum.asm
Executable file
@@ -0,0 +1,300 @@
|
|||||||
|
_PrintNum:: ; c4c7
|
||||||
|
; Print c digits of the b-byte value from de to hl.
|
||||||
|
; Allows 2 to 7 digits. For 1-digit numbers, add
|
||||||
|
; the value to char "0" instead of calling PrintNum.
|
||||||
|
; Some extra flags can be given in bits 5-7 of b.
|
||||||
|
; Bit 5: money if set (unless left-aligned without leading zeros)
|
||||||
|
; Bit 6: right-aligned if set
|
||||||
|
; Bit 7: print leading zeros if set
|
||||||
|
|
||||||
|
push bc
|
||||||
|
|
||||||
|
bit 5, b
|
||||||
|
jr z, .main
|
||||||
|
bit 7, b
|
||||||
|
jr nz, .moneyflag
|
||||||
|
bit 6, b
|
||||||
|
jr z, .main
|
||||||
|
|
||||||
|
.moneyflag ; 101xxxxx or 011xxxxx
|
||||||
|
ld a, "¥"
|
||||||
|
ld [hli], a
|
||||||
|
res 5, b ; 100xxxxx or 010xxxxx
|
||||||
|
|
||||||
|
.main
|
||||||
|
xor a
|
||||||
|
ld [hPrintNum1], a
|
||||||
|
ld [hPrintNum2], a
|
||||||
|
ld [hPrintNum3], a
|
||||||
|
ld a, b
|
||||||
|
and $f
|
||||||
|
cp 1
|
||||||
|
jr z, .byte
|
||||||
|
cp 2
|
||||||
|
jr z, .word
|
||||||
|
; maximum 3 bytes
|
||||||
|
.long
|
||||||
|
ld a, [de]
|
||||||
|
ld [hPrintNum2], a
|
||||||
|
inc de
|
||||||
|
ld a, [de]
|
||||||
|
ld [hPrintNum3], a
|
||||||
|
inc de
|
||||||
|
ld a, [de]
|
||||||
|
ld [hPrintNum4], a
|
||||||
|
jr .start
|
||||||
|
|
||||||
|
.word
|
||||||
|
ld a, [de]
|
||||||
|
ld [hPrintNum3], a
|
||||||
|
inc de
|
||||||
|
ld a, [de]
|
||||||
|
ld [hPrintNum4], a
|
||||||
|
jr .start
|
||||||
|
|
||||||
|
.byte
|
||||||
|
ld a, [de]
|
||||||
|
ld [hPrintNum4], a
|
||||||
|
|
||||||
|
.start
|
||||||
|
push de
|
||||||
|
|
||||||
|
ld d, b
|
||||||
|
ld a, c
|
||||||
|
swap a
|
||||||
|
and $f
|
||||||
|
ld e, a
|
||||||
|
ld a, c
|
||||||
|
and $f
|
||||||
|
ld b, a
|
||||||
|
ld c, 0
|
||||||
|
cp 2
|
||||||
|
jr z, .two
|
||||||
|
cp 3
|
||||||
|
jr z, .three
|
||||||
|
cp 4
|
||||||
|
jr z, .four
|
||||||
|
cp 5
|
||||||
|
jr z, .five
|
||||||
|
cp 6
|
||||||
|
jr z, .six
|
||||||
|
|
||||||
|
.seven
|
||||||
|
ld a, 1000000 / $10000 % $100
|
||||||
|
ld [hPrintNum5], a
|
||||||
|
ld a, 1000000 / $100 % $100
|
||||||
|
ld [hPrintNum6], a
|
||||||
|
ld a, 1000000 % $100
|
||||||
|
ld [hPrintNum7], a
|
||||||
|
call .PrintDigit
|
||||||
|
call .AdvancePointer
|
||||||
|
|
||||||
|
.six
|
||||||
|
ld a, 100000 / $10000 % $100
|
||||||
|
ld [hPrintNum5], a
|
||||||
|
ld a, 100000 / $100 % $100
|
||||||
|
ld [hPrintNum6], a
|
||||||
|
ld a, 100000 % $100
|
||||||
|
ld [hPrintNum7], a
|
||||||
|
call .PrintDigit
|
||||||
|
call .AdvancePointer
|
||||||
|
|
||||||
|
.five
|
||||||
|
xor a
|
||||||
|
ld [hPrintNum5], a
|
||||||
|
ld a, 10000 / $100
|
||||||
|
ld [hPrintNum6], a
|
||||||
|
ld a, 10000 % $100
|
||||||
|
ld [hPrintNum7], a
|
||||||
|
call .PrintDigit
|
||||||
|
call .AdvancePointer
|
||||||
|
|
||||||
|
.four
|
||||||
|
xor a
|
||||||
|
ld [hPrintNum5], a
|
||||||
|
ld a, 1000 / $100
|
||||||
|
ld [hPrintNum6], a
|
||||||
|
ld a, 1000 % $100
|
||||||
|
ld [hPrintNum7], a
|
||||||
|
call .PrintDigit
|
||||||
|
call .AdvancePointer
|
||||||
|
|
||||||
|
.three
|
||||||
|
xor a
|
||||||
|
ld [hPrintNum5], a
|
||||||
|
xor a
|
||||||
|
ld [hPrintNum6], a
|
||||||
|
ld a, 100
|
||||||
|
ld [hPrintNum7], a
|
||||||
|
call .PrintDigit
|
||||||
|
call .AdvancePointer
|
||||||
|
|
||||||
|
.two
|
||||||
|
dec e
|
||||||
|
jr nz, .two_skip
|
||||||
|
ld a, "0"
|
||||||
|
ld [hPrintNum1], a
|
||||||
|
.two_skip
|
||||||
|
|
||||||
|
ld c, 0
|
||||||
|
ld a, [hPrintNum4]
|
||||||
|
.mod_10
|
||||||
|
cp 10
|
||||||
|
jr c, .modded_10
|
||||||
|
sub 10
|
||||||
|
inc c
|
||||||
|
jr .mod_10
|
||||||
|
.modded_10
|
||||||
|
|
||||||
|
ld b, a
|
||||||
|
ld a, [hPrintNum1]
|
||||||
|
or c
|
||||||
|
jr nz, .money
|
||||||
|
call .PrintLeadingZero
|
||||||
|
jr .money_leading_zero
|
||||||
|
|
||||||
|
.money
|
||||||
|
call .PrintYen
|
||||||
|
push af
|
||||||
|
ld a, "0"
|
||||||
|
add c
|
||||||
|
ld [hl], a
|
||||||
|
pop af
|
||||||
|
ld [hPrintNum1], a
|
||||||
|
inc e
|
||||||
|
dec e
|
||||||
|
jr nz, .money_leading_zero
|
||||||
|
inc hl
|
||||||
|
ld [hl], $f2 ; XXX
|
||||||
|
|
||||||
|
.money_leading_zero
|
||||||
|
call .AdvancePointer
|
||||||
|
call .PrintYen
|
||||||
|
ld a, "0"
|
||||||
|
add b
|
||||||
|
ld [hli], a
|
||||||
|
|
||||||
|
pop de
|
||||||
|
pop bc
|
||||||
|
ret
|
||||||
|
|
||||||
|
.PrintYen: ; c5ba
|
||||||
|
push af
|
||||||
|
ld a, [hPrintNum1]
|
||||||
|
and a
|
||||||
|
jr nz, .stop
|
||||||
|
bit 5, d
|
||||||
|
jr z, .stop
|
||||||
|
ld a, "¥"
|
||||||
|
ld [hli], a
|
||||||
|
res 5, d
|
||||||
|
|
||||||
|
.stop
|
||||||
|
pop af
|
||||||
|
ret
|
||||||
|
|
||||||
|
.PrintDigit: ; c5cb (3:45cb)
|
||||||
|
dec e
|
||||||
|
jr nz, .ok
|
||||||
|
ld a, "0"
|
||||||
|
ld [hPrintNum1], a
|
||||||
|
.ok
|
||||||
|
ld c, 0
|
||||||
|
.loop
|
||||||
|
ld a, [hPrintNum5]
|
||||||
|
ld b, a
|
||||||
|
ld a, [hPrintNum2]
|
||||||
|
ld [hPrintNum8], a
|
||||||
|
cp b
|
||||||
|
jr c, .skip1
|
||||||
|
sub b
|
||||||
|
ld [hPrintNum2], a
|
||||||
|
ld a, [hPrintNum6]
|
||||||
|
ld b, a
|
||||||
|
ld a, [hPrintNum3]
|
||||||
|
ld [hPrintNum9], a
|
||||||
|
cp b
|
||||||
|
jr nc, .skip2
|
||||||
|
ld a, [hPrintNum2]
|
||||||
|
or 0
|
||||||
|
jr z, .skip3
|
||||||
|
dec a
|
||||||
|
ld [hPrintNum2], a
|
||||||
|
ld a, [hPrintNum3]
|
||||||
|
.skip2
|
||||||
|
sub b
|
||||||
|
ld [hPrintNum3], a
|
||||||
|
ld a, [hPrintNum7]
|
||||||
|
ld b, a
|
||||||
|
ld a, [hPrintNum4]
|
||||||
|
ld [hPrintNum10], a
|
||||||
|
cp b
|
||||||
|
jr nc, .skip4
|
||||||
|
ld a, [hPrintNum3]
|
||||||
|
and a
|
||||||
|
jr nz, .skip5
|
||||||
|
ld a, [hPrintNum2]
|
||||||
|
and a
|
||||||
|
jr z, .skip6
|
||||||
|
dec a
|
||||||
|
ld [hPrintNum2], a
|
||||||
|
xor a
|
||||||
|
.skip5
|
||||||
|
dec a
|
||||||
|
ld [hPrintNum3], a
|
||||||
|
ld a, [hPrintNum4]
|
||||||
|
.skip4
|
||||||
|
sub b
|
||||||
|
ld [hPrintNum4], a
|
||||||
|
inc c
|
||||||
|
jr .loop
|
||||||
|
.skip6
|
||||||
|
ld a, [hPrintNum9]
|
||||||
|
ld [hPrintNum3], a
|
||||||
|
.skip3
|
||||||
|
ld a, [hPrintNum8]
|
||||||
|
ld [hPrintNum2], a
|
||||||
|
.skip1
|
||||||
|
ld a, [hPrintNum1]
|
||||||
|
or c
|
||||||
|
jr z, .PrintLeadingZero
|
||||||
|
ld a, [hPrintNum1]
|
||||||
|
and a
|
||||||
|
jr nz, .done
|
||||||
|
bit 5, d
|
||||||
|
jr z, .done
|
||||||
|
ld a, "¥"
|
||||||
|
ld [hli], a
|
||||||
|
res 5, d
|
||||||
|
.done
|
||||||
|
ld a, "0"
|
||||||
|
add c
|
||||||
|
ld [hl], a
|
||||||
|
ld [hPrintNum1], a
|
||||||
|
inc e
|
||||||
|
dec e
|
||||||
|
ret nz
|
||||||
|
inc hl
|
||||||
|
ld [hl], "·"
|
||||||
|
ret
|
||||||
|
|
||||||
|
.PrintLeadingZero: ; c644
|
||||||
|
; prints a leading zero unless they are turned off in the flags
|
||||||
|
bit 7, d ; print leading zeroes?
|
||||||
|
ret z
|
||||||
|
ld [hl], "0"
|
||||||
|
ret
|
||||||
|
|
||||||
|
.AdvancePointer: ; c64a
|
||||||
|
; increments the pointer unless leading zeroes are not being printed,
|
||||||
|
; the number is left-aligned, and no nonzero digits have been printed yet
|
||||||
|
bit 7, d ; print leading zeroes?
|
||||||
|
jr nz, .inc
|
||||||
|
bit 6, d ; left alignment or right alignment?
|
||||||
|
jr z, .inc
|
||||||
|
ld a, [hPrintNum1]
|
||||||
|
and a
|
||||||
|
ret z
|
||||||
|
.inc
|
||||||
|
inc hl
|
||||||
|
ret
|
50
engine/sine.asm
Executable file
50
engine/sine.asm
Executable file
@@ -0,0 +1,50 @@
|
|||||||
|
_Sine:: ; 84d9
|
||||||
|
; A simple sine function.
|
||||||
|
; Return d * sin(e) in hl.
|
||||||
|
|
||||||
|
; e is a signed 6-bit value.
|
||||||
|
ld a, e
|
||||||
|
and %111111
|
||||||
|
cp %100000
|
||||||
|
jr nc, .negative
|
||||||
|
|
||||||
|
call .ApplySineWave
|
||||||
|
ld a, h
|
||||||
|
ret
|
||||||
|
|
||||||
|
.negative
|
||||||
|
and %011111
|
||||||
|
call .ApplySineWave
|
||||||
|
ld a, h
|
||||||
|
xor -1
|
||||||
|
inc a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.ApplySineWave: ; 84ef
|
||||||
|
ld e, a
|
||||||
|
ld a, d
|
||||||
|
ld d, 0
|
||||||
|
ld hl, .sinewave
|
||||||
|
add hl, de
|
||||||
|
add hl, de
|
||||||
|
ld e, [hl]
|
||||||
|
inc hl
|
||||||
|
ld d, [hl]
|
||||||
|
ld hl, 0
|
||||||
|
|
||||||
|
; Factor amplitude
|
||||||
|
.multiply
|
||||||
|
srl a
|
||||||
|
jr nc, .even
|
||||||
|
add hl, de
|
||||||
|
.even
|
||||||
|
sla e
|
||||||
|
rl d
|
||||||
|
and a
|
||||||
|
jr nz, .multiply
|
||||||
|
ret
|
||||||
|
|
||||||
|
.sinewave: ; 850b
|
||||||
|
; A $20-word table representing a sine wave.
|
||||||
|
; 90 degrees is index $10 at a base amplitude of $100.
|
||||||
|
sine_wave $100
|
238
event/happiness_egg.asm
Executable file
238
event/happiness_egg.asm
Executable file
@@ -0,0 +1,238 @@
|
|||||||
|
GetFirstPokemonHappiness: ; 718d
|
||||||
|
ld hl, PartyMon1Happiness
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
ld de, PartySpecies
|
||||||
|
.loop
|
||||||
|
ld a, [de]
|
||||||
|
cp EGG
|
||||||
|
jr nz, .done
|
||||||
|
inc de
|
||||||
|
add hl, bc
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.done
|
||||||
|
ld [wd265], a
|
||||||
|
ld a, [hl]
|
||||||
|
ld [ScriptVar], a
|
||||||
|
call GetPokemonName
|
||||||
|
jp CopyPokemonName_Buffer1_Buffer3
|
||||||
|
|
||||||
|
CheckFirstMonIsEgg: ; 71ac
|
||||||
|
ld a, [PartySpecies]
|
||||||
|
ld [wd265], a
|
||||||
|
cp EGG
|
||||||
|
ld a, $1
|
||||||
|
jr z, .egg
|
||||||
|
xor a
|
||||||
|
|
||||||
|
.egg
|
||||||
|
ld [ScriptVar], a
|
||||||
|
call GetPokemonName
|
||||||
|
jp CopyPokemonName_Buffer1_Buffer3
|
||||||
|
|
||||||
|
ChangeHappiness: ; 71c2
|
||||||
|
; Perform happiness action c on CurPartyMon
|
||||||
|
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
inc a
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, PartySpecies - 1
|
||||||
|
add hl, de
|
||||||
|
ld a, [hl]
|
||||||
|
cp EGG
|
||||||
|
ret z
|
||||||
|
|
||||||
|
push bc
|
||||||
|
ld hl, PartyMon1Happiness
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
call AddNTimes
|
||||||
|
pop bc
|
||||||
|
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
|
||||||
|
push de
|
||||||
|
ld a, [de]
|
||||||
|
cp 100
|
||||||
|
ld e, 0
|
||||||
|
jr c, .ok
|
||||||
|
inc e
|
||||||
|
cp 200
|
||||||
|
jr c, .ok
|
||||||
|
inc e
|
||||||
|
|
||||||
|
.ok
|
||||||
|
dec c
|
||||||
|
ld b, 0
|
||||||
|
ld hl, .Actions
|
||||||
|
rept 3
|
||||||
|
add hl, bc
|
||||||
|
endr
|
||||||
|
ld d, 0
|
||||||
|
add hl, de
|
||||||
|
ld a, [hl]
|
||||||
|
cp 100
|
||||||
|
pop de
|
||||||
|
|
||||||
|
ld a, [de]
|
||||||
|
jr nc, .negative
|
||||||
|
add [hl]
|
||||||
|
jr nc, .done
|
||||||
|
ld a, -1
|
||||||
|
jr .done
|
||||||
|
|
||||||
|
.negative
|
||||||
|
add [hl]
|
||||||
|
jr c, .done
|
||||||
|
xor a
|
||||||
|
|
||||||
|
.done
|
||||||
|
ld [de], a
|
||||||
|
ld a, [wBattleMode]
|
||||||
|
and a
|
||||||
|
ret z
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
ld b, a
|
||||||
|
ld a, [wPartyMenuCursor]
|
||||||
|
cp b
|
||||||
|
ret nz
|
||||||
|
ld a, [de]
|
||||||
|
ld [BattleMonHappiness], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Actions
|
||||||
|
db +5, +3, +2 ; Gained a level
|
||||||
|
db +5, +3, +2 ; Vitamin
|
||||||
|
db +1, +1, +0 ; X Item
|
||||||
|
db +3, +2, +1 ; Battled a Gym Leader
|
||||||
|
db +1, +1, +0 ; Learned a move
|
||||||
|
db -1, -1, -1 ; Lost to an enemy
|
||||||
|
db -5, -5, -10 ; Fainted due to poison
|
||||||
|
db -5, -5, -10 ; Lost to a much stronger enemy
|
||||||
|
db +1, +1, +1 ; Haircut (Y1)
|
||||||
|
db +3, +3, +1 ; Haircut (Y2)
|
||||||
|
db +5, +5, +2 ; Haircut (Y3)
|
||||||
|
db +1, +1, +1 ; Haircut (O1)
|
||||||
|
db +3, +3, +1 ; Haircut (O2)
|
||||||
|
db +10, +10, +4 ; Haircut (O3)
|
||||||
|
db -5, -5, -10 ; Used Heal Powder or Energypowder (bitter)
|
||||||
|
db -10, -10, -15 ; Used Energy Root (bitter)
|
||||||
|
db -15, -15, -20 ; Used Revival Herb (bitter)
|
||||||
|
db +3, +3, +1 ; Grooming
|
||||||
|
db +10, +6, +4 ; Gained a level in the place where it was caught
|
||||||
|
|
||||||
|
StepHappiness:: ; 725a
|
||||||
|
; Raise the party's happiness by 1 point every other step cycle.
|
||||||
|
|
||||||
|
ld hl, wHappinessStepCount
|
||||||
|
ld a, [hl]
|
||||||
|
inc a
|
||||||
|
and 1
|
||||||
|
ld [hl], a
|
||||||
|
ret nz
|
||||||
|
|
||||||
|
ld de, PartyCount
|
||||||
|
ld a, [de]
|
||||||
|
and a
|
||||||
|
ret z
|
||||||
|
|
||||||
|
ld c, a
|
||||||
|
ld hl, PartyMon1Happiness
|
||||||
|
.loop
|
||||||
|
inc de
|
||||||
|
ld a, [de]
|
||||||
|
cp EGG
|
||||||
|
jr z, .next
|
||||||
|
inc [hl]
|
||||||
|
jr nz, .next
|
||||||
|
ld [hl], $ff
|
||||||
|
|
||||||
|
.next
|
||||||
|
push de
|
||||||
|
ld de, PARTYMON_STRUCT_LENGTH
|
||||||
|
add hl, de
|
||||||
|
pop de
|
||||||
|
dec c
|
||||||
|
jr nz, .loop
|
||||||
|
ret
|
||||||
|
|
||||||
|
DaycareStep:: ; 7282
|
||||||
|
|
||||||
|
ld a, [wDaycareMan]
|
||||||
|
bit 0, a
|
||||||
|
jr z, .daycare_lady
|
||||||
|
|
||||||
|
ld a, [wBreedMon1Level] ; level
|
||||||
|
cp 100
|
||||||
|
jr nc, .daycare_lady
|
||||||
|
ld hl, wBreedMon1Exp + 2 ; exp
|
||||||
|
inc [hl]
|
||||||
|
jr nz, .daycare_lady
|
||||||
|
dec hl
|
||||||
|
inc [hl]
|
||||||
|
jr nz, .daycare_lady
|
||||||
|
dec hl
|
||||||
|
inc [hl]
|
||||||
|
ld a, [hl]
|
||||||
|
cp 5242880 / $10000
|
||||||
|
jr c, .daycare_lady
|
||||||
|
ld a, 5242880 / $10000
|
||||||
|
ld [hl], a
|
||||||
|
|
||||||
|
.daycare_lady
|
||||||
|
ld a, [wDaycareLady]
|
||||||
|
bit 0, a
|
||||||
|
jr z, .check_egg
|
||||||
|
|
||||||
|
ld a, [wBreedMon2Level] ; level
|
||||||
|
cp 100
|
||||||
|
jr nc, .check_egg
|
||||||
|
ld hl, wBreedMon2Exp + 2 ; exp
|
||||||
|
inc [hl]
|
||||||
|
jr nz, .check_egg
|
||||||
|
dec hl
|
||||||
|
inc [hl]
|
||||||
|
jr nz, .check_egg
|
||||||
|
dec hl
|
||||||
|
inc [hl]
|
||||||
|
ld a, [hl]
|
||||||
|
cp 5242880 / $10000
|
||||||
|
jr c, .check_egg
|
||||||
|
ld a, 5242880 / $10000
|
||||||
|
ld [hl], a
|
||||||
|
|
||||||
|
.check_egg
|
||||||
|
ld hl, wDaycareMan
|
||||||
|
bit 5, [hl] ; egg
|
||||||
|
ret z
|
||||||
|
ld hl, wStepsToEgg
|
||||||
|
dec [hl]
|
||||||
|
ret nz
|
||||||
|
|
||||||
|
call Random
|
||||||
|
ld [hl], a
|
||||||
|
callab CheckBreedmonCompatibility
|
||||||
|
ld a, [wd265]
|
||||||
|
cp 230
|
||||||
|
ld b, -1 + 32 percent
|
||||||
|
jr nc, .okay
|
||||||
|
ld a, [wd265]
|
||||||
|
cp 170
|
||||||
|
ld b, 16 percent
|
||||||
|
jr nc, .okay
|
||||||
|
ld a, [wd265]
|
||||||
|
cp 110
|
||||||
|
ld b, 12 percent
|
||||||
|
jr nc, .okay
|
||||||
|
ld b, 4 percent
|
||||||
|
|
||||||
|
.okay
|
||||||
|
call Random
|
||||||
|
cp b
|
||||||
|
ret nc
|
||||||
|
ld hl, wDaycareMan
|
||||||
|
res 5, [hl]
|
||||||
|
set 6, [hl]
|
||||||
|
ret
|
1890
event/overworld.asm
Executable file
1890
event/overworld.asm
Executable file
File diff suppressed because it is too large
Load Diff
231
event/special.asm
Executable file
231
event/special.asm
Executable file
@@ -0,0 +1,231 @@
|
|||||||
|
SpecialGiveShuckle: ; 7305
|
||||||
|
|
||||||
|
; Adding to the party.
|
||||||
|
xor a
|
||||||
|
ld [MonType], a
|
||||||
|
|
||||||
|
; Level 15 Shuckle.
|
||||||
|
ld a, SHUCKLE
|
||||||
|
ld [CurPartySpecies], a
|
||||||
|
ld a, 15
|
||||||
|
ld [CurPartyLevel], a
|
||||||
|
|
||||||
|
predef TryAddMonToParty
|
||||||
|
jr nc, .NotGiven
|
||||||
|
|
||||||
|
; Caught data.
|
||||||
|
ld b, 0
|
||||||
|
callba SetGiftPartyMonCaughtData
|
||||||
|
|
||||||
|
; Holding a Berry.
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
ld a, [PartyCount]
|
||||||
|
dec a
|
||||||
|
push af
|
||||||
|
push bc
|
||||||
|
ld hl, PartyMon1Item
|
||||||
|
call AddNTimes
|
||||||
|
ld [hl], BERRY
|
||||||
|
pop bc
|
||||||
|
pop af
|
||||||
|
|
||||||
|
; OT ID.
|
||||||
|
ld hl, PartyMon1ID
|
||||||
|
call AddNTimes
|
||||||
|
ld a, $2
|
||||||
|
ld [hli], a
|
||||||
|
ld [hl], $6
|
||||||
|
|
||||||
|
; Nickname.
|
||||||
|
ld a, [PartyCount]
|
||||||
|
dec a
|
||||||
|
ld hl, PartyMonNicknames
|
||||||
|
call SkipNames
|
||||||
|
ld de, SpecialShuckleNick
|
||||||
|
call CopyName2
|
||||||
|
|
||||||
|
; OT.
|
||||||
|
ld a, [PartyCount]
|
||||||
|
dec a
|
||||||
|
ld hl, PartyMonOT
|
||||||
|
call SkipNames
|
||||||
|
ld de, SpecialShuckleOT
|
||||||
|
call CopyName2
|
||||||
|
|
||||||
|
; Engine flag for this event.
|
||||||
|
ld hl, DailyFlags
|
||||||
|
set 5, [hl]
|
||||||
|
; setflag ENGINE_SHUCKLE_GIVEN
|
||||||
|
ld a, 1
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.NotGiven
|
||||||
|
xor a
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
SpecialShuckleOT:
|
||||||
|
db "MANIA@"
|
||||||
|
SpecialShuckleNick:
|
||||||
|
db "SHUCKIE@"
|
||||||
|
|
||||||
|
SpecialReturnShuckle: ; 737e
|
||||||
|
callba SelectMonFromParty
|
||||||
|
jr c, .refused
|
||||||
|
|
||||||
|
ld a, [CurPartySpecies]
|
||||||
|
cp SHUCKLE
|
||||||
|
jr nz, .DontReturn
|
||||||
|
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
ld hl, PartyMon1ID
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
call AddNTimes
|
||||||
|
|
||||||
|
; OT ID
|
||||||
|
ld a, [hli]
|
||||||
|
cp 00518 / $100
|
||||||
|
jr nz, .DontReturn
|
||||||
|
ld a, [hl]
|
||||||
|
cp 00518 % $100
|
||||||
|
jr nz, .DontReturn
|
||||||
|
|
||||||
|
; OT
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
ld hl, PartyMonOT
|
||||||
|
call SkipNames
|
||||||
|
ld de, SpecialShuckleOT
|
||||||
|
.CheckOT
|
||||||
|
ld a, [de]
|
||||||
|
cp [hl]
|
||||||
|
jr nz, .DontReturn
|
||||||
|
cp "@"
|
||||||
|
jr z, .done
|
||||||
|
inc de
|
||||||
|
inc hl
|
||||||
|
jr .CheckOT
|
||||||
|
|
||||||
|
.done
|
||||||
|
callba CheckCurPartyMonFainted
|
||||||
|
jr c, .fainted
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
ld hl, PartyMon1Happiness
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
call AddNTimes
|
||||||
|
ld a, [hl]
|
||||||
|
cp 150
|
||||||
|
ld a, $3
|
||||||
|
jr nc, .HappyToStayWithYou
|
||||||
|
xor a ; take from pc
|
||||||
|
ld [wPokemonWithdrawDepositParameter], a
|
||||||
|
callab RemoveMonFromPartyOrBox
|
||||||
|
ld a, $2
|
||||||
|
.HappyToStayWithYou
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.refused
|
||||||
|
ld a, $1
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DontReturn
|
||||||
|
xor a
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.fainted
|
||||||
|
ld a, $4
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
Special_BillsGrandfather: ; 73f7
|
||||||
|
callba SelectMonFromParty
|
||||||
|
jr c, .cancel
|
||||||
|
ld a, [CurPartySpecies]
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ld [wNamedObjectIndexBuffer], a
|
||||||
|
call GetPokemonName
|
||||||
|
jp CopyPokemonName_Buffer1_Buffer3
|
||||||
|
|
||||||
|
.cancel
|
||||||
|
xor a
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
Special_YoungerHaircutBrother: ; 7413
|
||||||
|
ld hl, Data_YoungerHaircutBrother
|
||||||
|
jr MassageOrHaircut
|
||||||
|
|
||||||
|
Special_OlderHaircutBrother: ; 7418
|
||||||
|
ld hl, Data_OlderHaircutBrother
|
||||||
|
jr MassageOrHaircut
|
||||||
|
|
||||||
|
Special_DaisyMassage: ; 741d
|
||||||
|
ld hl, Data_DaisyMassage
|
||||||
|
|
||||||
|
MassageOrHaircut: ; 7420
|
||||||
|
push hl
|
||||||
|
callba SelectMonFromParty
|
||||||
|
pop hl
|
||||||
|
jr c, .nope
|
||||||
|
ld a, [CurPartySpecies]
|
||||||
|
cp EGG
|
||||||
|
jr z, .egg
|
||||||
|
push hl
|
||||||
|
call GetCurNick
|
||||||
|
call CopyPokemonName_Buffer1_Buffer3
|
||||||
|
pop hl
|
||||||
|
call Random
|
||||||
|
; Bug: Subtracting $ff from $ff fails to set c.
|
||||||
|
; This can result in overflow into the next data array.
|
||||||
|
; In the case of getting a massage from Daisy, we bleed
|
||||||
|
; into CopyPokemonName_Buffer1_Buffer3, which passes
|
||||||
|
; $d0 to ChangeHappiness and returns $73 to the script.
|
||||||
|
; The end result is that there is a 0.4% chance your
|
||||||
|
; Pokemon's happiness will not change at all.
|
||||||
|
.loop
|
||||||
|
sub [hl]
|
||||||
|
jr c, .ok
|
||||||
|
rept 3
|
||||||
|
inc hl
|
||||||
|
endr
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.ok
|
||||||
|
inc hl
|
||||||
|
ld a, [hli]
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ld c, [hl]
|
||||||
|
call ChangeHappiness
|
||||||
|
ret
|
||||||
|
|
||||||
|
.nope
|
||||||
|
xor a
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.egg
|
||||||
|
ld a, 1
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
Data_YoungerHaircutBrother: ; 7459
|
||||||
|
db $4c, 2, HAPPINESS_YOUNGCUT1 ; 30% chance
|
||||||
|
db $80, 3, HAPPINESS_YOUNGCUT2 ; 20% chance
|
||||||
|
db $ff, 4, HAPPINESS_YOUNGCUT3 ; 50% chance
|
||||||
|
|
||||||
|
Data_OlderHaircutBrother: ; 7462
|
||||||
|
db $9a, 2, HAPPINESS_OLDERCUT1 ; 60% chance
|
||||||
|
db $4c, 3, HAPPINESS_OLDERCUT2 ; 10% chance
|
||||||
|
db $ff, 4, HAPPINESS_OLDERCUT3 ; 30% chance
|
||||||
|
|
||||||
|
Data_DaisyMassage: ; 746b
|
||||||
|
db $ff, 2, HAPPINESS_MASSAGE ; 99.6% chance
|
||||||
|
|
||||||
|
CopyPokemonName_Buffer1_Buffer3: ; 746e
|
||||||
|
ld hl, StringBuffer1
|
||||||
|
ld de, StringBuffer3
|
||||||
|
ld bc, PKMN_NAME_LENGTH
|
||||||
|
jp CopyBytes
|
@@ -1812,7 +1812,7 @@ GetBlockLocation:: ; 2a66
|
|||||||
add 6
|
add 6
|
||||||
ld c, a
|
ld c, a
|
||||||
ld b, 0
|
ld b, 0
|
||||||
ld hl, wc801
|
ld hl, OverworldMap + 1
|
||||||
add hl, bc
|
add hl, bc
|
||||||
ld a, e
|
ld a, e
|
||||||
srl a
|
srl a
|
||||||
|
@@ -338,11 +338,13 @@ endr
|
|||||||
; catch rate than BRN/PSN/PAR, which in turn provide a higher catch rate than
|
; catch rate than BRN/PSN/PAR, which in turn provide a higher catch rate than
|
||||||
; no status effect at all. But instead, it makes BRN/PSN/PAR provide no
|
; no status effect at all. But instead, it makes BRN/PSN/PAR provide no
|
||||||
; benefit.
|
; benefit.
|
||||||
|
; Uncomment the line below to fix this.
|
||||||
ld b, a
|
ld b, a
|
||||||
ld a, [EnemyMonStatus]
|
ld a, [EnemyMonStatus]
|
||||||
and 1 << FRZ | SLP
|
and 1 << FRZ | SLP
|
||||||
ld c, 10
|
ld c, 10
|
||||||
jr nz, .addstatus
|
jr nz, .addstatus
|
||||||
|
; ld a, [EnemyMonStatus]
|
||||||
and a
|
and a
|
||||||
ld c, 5
|
ld c, 5
|
||||||
jr nz, .addstatus
|
jr nz, .addstatus
|
||||||
@@ -3315,3 +3317,5 @@ GetMthMoveOfCurrentMon: ; f969
|
|||||||
add hl, bc
|
add hl, bc
|
||||||
ret
|
ret
|
||||||
; f971
|
; f971
|
||||||
|
|
||||||
|
INCLUDE "items/pokeball_wobble.asm"
|
||||||
|
88
items/pokeball_wobble.asm
Executable file
88
items/pokeball_wobble.asm
Executable file
@@ -0,0 +1,88 @@
|
|||||||
|
GetPokeBallWobble: ; f971 (3:7971)
|
||||||
|
; Returns whether a Poke Ball will wobble in the catch animation.
|
||||||
|
; Whether a Pokemon is caught is determined beforehand.
|
||||||
|
|
||||||
|
push de
|
||||||
|
|
||||||
|
ld a, [rSVBK]
|
||||||
|
ld d, a
|
||||||
|
push de
|
||||||
|
|
||||||
|
ld a, 1 ; BANK(Buffer2)
|
||||||
|
ld [rSVBK], a
|
||||||
|
|
||||||
|
ld a, [Buffer2]
|
||||||
|
inc a
|
||||||
|
ld [Buffer2], a
|
||||||
|
|
||||||
|
; Wobble up to 3 times.
|
||||||
|
cp 3 + 1
|
||||||
|
jr z, .finished
|
||||||
|
|
||||||
|
ld a, [wWildMon]
|
||||||
|
and a
|
||||||
|
ld c, 0 ; next
|
||||||
|
jr nz, .done
|
||||||
|
|
||||||
|
ld hl, .WobbleProbabilities
|
||||||
|
ld a, [Buffer1]
|
||||||
|
ld b, a
|
||||||
|
.loop
|
||||||
|
ld a, [hli]
|
||||||
|
cp b
|
||||||
|
jr nc, .checkwobble
|
||||||
|
inc hl
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.checkwobble
|
||||||
|
ld b, [hl]
|
||||||
|
call Random
|
||||||
|
cp b
|
||||||
|
ld c, 0 ; next
|
||||||
|
jr c, .done
|
||||||
|
ld c, 2 ; escaped
|
||||||
|
jr .done
|
||||||
|
|
||||||
|
.finished
|
||||||
|
ld a, [wWildMon]
|
||||||
|
and a
|
||||||
|
ld c, 1 ; caught
|
||||||
|
jr nz, .done
|
||||||
|
ld c, 2 ; escaped
|
||||||
|
|
||||||
|
.done
|
||||||
|
pop de
|
||||||
|
ld e, a
|
||||||
|
ld a, d
|
||||||
|
ld [rSVBK], a
|
||||||
|
ld a, e
|
||||||
|
pop de
|
||||||
|
ret
|
||||||
|
|
||||||
|
.WobbleProbabilities: ; f9ba
|
||||||
|
; catch rate, chance of wobbling / 255
|
||||||
|
; nLeft/255 = (nRight/255) ** 4
|
||||||
|
db 1, 63
|
||||||
|
db 2, 75
|
||||||
|
db 3, 84
|
||||||
|
db 4, 90
|
||||||
|
db 5, 95
|
||||||
|
db 7, 103
|
||||||
|
db 10, 113
|
||||||
|
db 15, 126
|
||||||
|
db 20, 134
|
||||||
|
db 30, 149
|
||||||
|
db 40, 160
|
||||||
|
db 50, 169
|
||||||
|
db 60, 177
|
||||||
|
db 80, 191
|
||||||
|
db 100, 201
|
||||||
|
db 120, 211
|
||||||
|
db 140, 220
|
||||||
|
db 160, 227
|
||||||
|
db 180, 234
|
||||||
|
db 200, 240
|
||||||
|
db 220, 246
|
||||||
|
db 240, 251
|
||||||
|
db 254, 253
|
||||||
|
db 255, 255
|
@@ -62,7 +62,7 @@ ReceptionistScript_0x9e3e2:
|
|||||||
opentext
|
opentext
|
||||||
writetext Text_BattleTowerWelcomesYou
|
writetext Text_BattleTowerWelcomesYou
|
||||||
buttonsound
|
buttonsound
|
||||||
writebyte BATTLETOWERACTION_00 ; if new save file: bit 1, [sbe4f]
|
writebyte BATTLETOWERACTION_00 ; if new save file: bit 1, [s1_be4f]
|
||||||
special BattleTowerAction
|
special BattleTowerAction
|
||||||
if_not_equal $0, Script_Menu_ChallengeExplanationCancel
|
if_not_equal $0, Script_Menu_ChallengeExplanationCancel
|
||||||
jump Script_BattleTowerIntroductionYesNo
|
jump Script_BattleTowerIntroductionYesNo
|
||||||
@@ -87,7 +87,7 @@ Script_ChoseChallenge: ; 0x9e40f
|
|||||||
special Special_TryQuickSave
|
special Special_TryQuickSave
|
||||||
iffalse Script_Menu_ChallengeExplanationCancel
|
iffalse Script_Menu_ChallengeExplanationCancel
|
||||||
dotrigger $1
|
dotrigger $1
|
||||||
writebyte BATTLETOWERACTION_01 ; set 1, [sbe4f]
|
writebyte BATTLETOWERACTION_01 ; set 1, [s1_be4f]
|
||||||
special BattleTowerAction
|
special BattleTowerAction
|
||||||
special Function1700b0
|
special Function1700b0
|
||||||
if_equal $a, Script_Menu_ChallengeExplanationCancel
|
if_equal $a, Script_Menu_ChallengeExplanationCancel
|
||||||
|
@@ -1085,9 +1085,9 @@ Function17075f: ; 17075f (5c:475f) BattleTowerAction $00
|
|||||||
and a
|
and a
|
||||||
ret z
|
ret z
|
||||||
|
|
||||||
ld a, BANK(sbe4f)
|
ld a, BANK(s1_be4f)
|
||||||
call GetSRAMBank
|
call GetSRAMBank
|
||||||
ld a, [sbe4f]
|
ld a, [s1_be4f]
|
||||||
and $2
|
and $2
|
||||||
ld [ScriptVar], a
|
ld [ScriptVar], a
|
||||||
call CloseSRAM
|
call CloseSRAM
|
||||||
@@ -1103,11 +1103,11 @@ Function170778: ; 170778 (5c:4778) BattleTowerAction $02
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
Function170788: ; 170788 (5c:4788) BattleTowerAction $01
|
Function170788: ; 170788 (5c:4788) BattleTowerAction $01
|
||||||
ld a, BANK(sbe4f)
|
ld a, BANK(s1_be4f)
|
||||||
call GetSRAMBank
|
call GetSRAMBank
|
||||||
ld a, [sbe4f]
|
ld a, [s1_be4f]
|
||||||
or $2
|
or $2
|
||||||
ld [sbe4f], a
|
ld [s1_be4f], a
|
||||||
call CloseSRAM
|
call CloseSRAM
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -1591,20 +1591,20 @@ Function170abe: ; 170abe (5c:4abe) BattleTowerAction $14
|
|||||||
and a
|
and a
|
||||||
ret z
|
ret z
|
||||||
|
|
||||||
ld a, BANK(sbe4f)
|
ld a, BANK(s1_be4f)
|
||||||
call GetSRAMBank
|
call GetSRAMBank
|
||||||
ld a, [sbe4f]
|
ld a, [s1_be4f]
|
||||||
and $1
|
and $1
|
||||||
ld [ScriptVar], a
|
ld [ScriptVar], a
|
||||||
call CloseSRAM
|
call CloseSRAM
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Function170ad7: ; 170ad7 (5c:4ad7) BattleTowerAction $15
|
Function170ad7: ; 170ad7 (5c:4ad7) BattleTowerAction $15
|
||||||
ld a, BANK(sbe4f)
|
ld a, BANK(s1_be4f)
|
||||||
call GetSRAMBank
|
call GetSRAMBank
|
||||||
ld a, [sbe4f]
|
ld a, [s1_be4f]
|
||||||
or $1
|
or $1
|
||||||
ld [sbe4f], a
|
ld [s1_be4f], a
|
||||||
call CloseSRAM
|
call CloseSRAM
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
12
sram.asm
12
sram.asm
@@ -81,7 +81,7 @@ sLuckyIDNumber:: ds 2
|
|||||||
SECTION "Backup Save", SRAM [$b200], BANK [0]
|
SECTION "Backup Save", SRAM [$b200], BANK [0]
|
||||||
sBackupOptions:: ds OptionsEnd - Options
|
sBackupOptions:: ds OptionsEnd - Options
|
||||||
|
|
||||||
s0_b208:: ds 1
|
s0_b208:: ds 1 ; loaded with 99, used to check save corruption
|
||||||
|
|
||||||
sBackupGameData::
|
sBackupGameData::
|
||||||
sBackupPlayerData:: ds wPlayerDataEnd - wPlayerData
|
sBackupPlayerData:: ds wPlayerDataEnd - wPlayerData
|
||||||
@@ -94,11 +94,11 @@ sBackupGameDataEnd::
|
|||||||
; bf0d
|
; bf0d
|
||||||
|
|
||||||
sBackupChecksum:: ds 2
|
sBackupChecksum:: ds 2
|
||||||
s0_bf0f:: ds 1
|
s0_bf0f:: ds 1 ; loaded with 0x7f, used to check save corruption
|
||||||
sStackTop:: ds 2
|
sStackTop:: ds 2
|
||||||
|
|
||||||
|
|
||||||
SECTION "SRAM Bank 1", SRAM, BANK [1]
|
SECTION "Save", SRAM, BANK [1]
|
||||||
|
|
||||||
sOptions:: ds OptionsEnd - Options
|
sOptions:: ds OptionsEnd - Options
|
||||||
|
|
||||||
@@ -117,11 +117,13 @@ sGameDataEnd::
|
|||||||
sChecksum:: ds 2
|
sChecksum:: ds 2
|
||||||
s1_ad0f:: ds 1 ; loaded with 0x7f, used to check save corruption
|
s1_ad0f:: ds 1 ; loaded with 0x7f, used to check save corruption
|
||||||
|
|
||||||
|
SECTION "Active Box", SRAM, BANK [1]
|
||||||
; ad10
|
; ad10
|
||||||
box sBox
|
box sBox
|
||||||
; b160
|
; b160
|
||||||
|
|
||||||
ds $f4
|
ds $f4
|
||||||
|
SECTION "Link Battle Data", SRAM, BANK [1]
|
||||||
sLinkBattleResults:: ds $c
|
sLinkBattleResults:: ds $c
|
||||||
|
|
||||||
sLinkBattleStats:: ; b260
|
sLinkBattleStats:: ; b260
|
||||||
@@ -143,6 +145,7 @@ sLinkBattleRecord4:: link_battle_record sLinkBattleRecord4
|
|||||||
sLinkBattleRecord5:: link_battle_record sLinkBattleRecord5
|
sLinkBattleRecord5:: link_battle_record sLinkBattleRecord5
|
||||||
sLinkBattleStatsEnd::
|
sLinkBattleStatsEnd::
|
||||||
|
|
||||||
|
SECTION "SRAM Hall of Fame", SRAM, BANK [1]
|
||||||
sHallOfFame:: ; b2c0
|
sHallOfFame:: ; b2c0
|
||||||
; temporary until I can find a way to macrofy it
|
; temporary until I can find a way to macrofy it
|
||||||
hall_of_fame sHallOfFame01
|
hall_of_fame sHallOfFame01
|
||||||
@@ -190,6 +193,7 @@ sHallOfFame:: ; b2c0
|
|||||||
; endr
|
; endr
|
||||||
sHallOfFameEnd::
|
sHallOfFameEnd::
|
||||||
|
|
||||||
|
SECTION "SRAM Crystal Data", SRAM, BANK [1]
|
||||||
sMobileEventIndex:: ds 1 ; be3c
|
sMobileEventIndex:: ds 1 ; be3c
|
||||||
|
|
||||||
sCrystalData::
|
sCrystalData::
|
||||||
@@ -208,7 +212,7 @@ sBTChoiceOfLevelGroup:: ds 1
|
|||||||
; The 7 trainers of the BattleTower are saved here, so nobody appears more than once
|
; The 7 trainers of the BattleTower are saved here, so nobody appears more than once
|
||||||
sBTTrainers:: ; sbe48
|
sBTTrainers:: ; sbe48
|
||||||
ds 7
|
ds 7
|
||||||
sbe4f:: ds 1
|
s1_be4f:: ds 1
|
||||||
sBattleTowerReward:: ds 1
|
sBattleTowerReward:: ds 1
|
||||||
; Pkmn of previous trainer
|
; Pkmn of previous trainer
|
||||||
sBTPkmnOfTrainers:: ; 0xbe51
|
sBTPkmnOfTrainers:: ; 0xbe51
|
||||||
|
Reference in New Issue
Block a user