Magikarp functions moved to event/magikarp.asm

This commit is contained in:
PikalaxALT 2015-10-11 12:15:03 -04:00
parent d42330ed8b
commit 327faac497
14 changed files with 1240 additions and 1215 deletions

259
battle/misc.asm Normal file
View File

@ -0,0 +1,259 @@
Functionfbd54: ; fbd54
xor a
ld [hBGMapMode], a ; $ff00+$d4
ld a, [hBattleTurn] ; $ff00+$e4
and a
jr z, .asm_fbd61
call Functionfbd96
jr .asm_fbd64
.asm_fbd61
call Functionfbd9d
.asm_fbd64
call ClearBox
jr Functionfbd91
Functionfbd69: ; fbd69 (3e:7d69)
callba BattleCommanda6
jr Functionfbd77
Functionfbd71: ; fbd71 (3e:7d71)
callba BattleCommanda7
Functionfbd77: ; fbd77 (3e:7d77)
xor a
ld [hBGMapMode], a ; $ff00+$d4
ld a, [hBattleTurn] ; $ff00+$e4
and a
jr z, .asm_fbd85
call Functionfbd96
xor a
jr .asm_fbd8a
.asm_fbd85
call Functionfbd9d
ld a, $31
.asm_fbd8a
ld [$ffad], a
predef FillBox
Functionfbd91: ; fbd91 (3e:7d91)
ld a, $1
ld [hBGMapMode], a ; $ff00+$d4
ret
Functionfbd96: ; fbd96 (3e:7d96)
hlcoord 12, 0
lb bc, 7, 7
ret
Functionfbd9d: ; fbd9d (3e:7d9d)
hlcoord 2, 6
lb bc, 6, 6
ret
DoWeatherModifiers: ; fbda4
ld de, .WeatherTypeModifiers
ld a, [Weather]
ld b, a
ld a, [wd265] ; move type
ld c, a
.CheckWeatherType
ld a, [de]
inc de
cp $ff
jr z, .asm_fbdc0
cp b
jr nz, .NextWeatherType
ld a, [de]
cp c
jr z, .ApplyModifier
.NextWeatherType
rept 2
inc de
endr
jr .CheckWeatherType
.asm_fbdc0
ld de, .WeatherMoveModifiers
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
ld c, a
.CheckWeatherMove
ld a, [de]
inc de
cp $ff
jr z, .done
cp b
jr nz, .NextWeatherMove
ld a, [de]
cp c
jr z, .ApplyModifier
.NextWeatherMove
rept 2
inc de
endr
jr .CheckWeatherMove
.ApplyModifier
xor a
ld [hMultiplicand + 0], a
ld hl, CurDamage
ld a, [hli]
ld [hMultiplicand + 1], a
ld a, [hl]
ld [hMultiplicand + 2], a
inc de
ld a, [de]
ld [hMultiplier], a
call Multiply
ld a, 10
ld [hDivisor], a
ld b, $4
call Divide
ld a, [hQuotient + 0]
and a
ld bc, -1
jr nz, .Update
ld a, [hQuotient + 1]
ld b, a
ld a, [hQuotient + 2]
ld c, a
or b
jr nz, .Update
ld bc, 1
.Update
ld a, b
ld [CurDamage], a
ld a, c
ld [CurDamage + 1], a
.done
ret
.WeatherTypeModifiers
db WEATHER_RAIN, WATER, 15
db WEATHER_RAIN, FIRE, 05
db WEATHER_SUN, FIRE, 15
db WEATHER_SUN, WATER, 05
db $ff
.WeatherMoveModifiers
db WEATHER_RAIN, EFFECT_SOLARBEAM, 05
db $ff
; fbe24
DoBadgeTypeBoosts: ; fbe24
ld a, [InLinkBattle]
and a
ret nz
ld a, [InBattleTowerBattle]
and a
ret nz
ld a, [hBattleTurn]
and a
ret nz
push de
push bc
ld hl, .BadgeTypes
ld a, [KantoBadges]
ld b, a
ld a, [JohtoBadges]
ld c, a
.CheckBadge
ld a, [hl]
cp $ff
jr z, .done
srl b
rr c
jr nc, .NextBadge
ld a, [wd265] ; move type
cp [hl]
jr z, .ApplyBoost
.NextBadge
inc hl
jr .CheckBadge
.ApplyBoost
ld a, [CurDamage]
ld h, a
ld d, a
ld a, [CurDamage + 1]
ld l, a
ld e, a
srl d
rr e
srl d
rr e
srl d
rr e
ld a, e
or d
jr nz, .asm_fbe6f
ld e, 1
.asm_fbe6f
add hl, de
jr nc, .Update
ld hl, $ffff
.Update
ld a, h
ld [CurDamage], a
ld a, l
ld [CurDamage + 1], a
.done
pop bc
pop de
ret
.BadgeTypes
db FLYING ; zephyrbadge
db BUG ; hivebadge
db NORMAL ; plainbadge
db GHOST ; fogbadge
db STEEL ; mineralbadge
db FIGHTING ; stormbadge
db ICE ; glacierbadge
db DRAGON ; risingbadge
db ROCK ; boulderbadge
db WATER ; cascadebadge
db ELECTRIC ; thunderbadge
db GRASS ; rainbowbadge
db POISON ; soulbadge
db PSYCHIC ; marshbadge
db FIRE ; volcanobadge
db GROUND ; earthbadge
db $ff
; fbe91

View File

@ -116,6 +116,11 @@ BATTLETOWER_NROFTRAINERS EQU 7
NUM_WILDMONS_PER_AREA_TIME_OF_DAY EQU 7 NUM_WILDMONS_PER_AREA_TIME_OF_DAY EQU 7
WILDMON_GRASS_STRUCTURE_LENGTH EQU 2 + 3 * (1 + 2 * NUM_WILDMONS_PER_AREA_TIME_OF_DAY) WILDMON_GRASS_STRUCTURE_LENGTH EQU 2 + 3 * (1 + 2 * NUM_WILDMONS_PER_AREA_TIME_OF_DAY)
PRINTNUM_MONEY EQU %00100000
PRINTNUM_RIGHTALIGN EQU %01000000 PRINTNUM_MONEY_F EQU 5
PRINTNUM_LEADINGZEROS EQU %10000000 PRINTNUM_RIGHTALIGN_F EQU 6
PRINTNUM_LEADINGZEROS_F EQU 7
PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F
PRINTNUM_RIGHTALIGN EQU 1 << PRINTNUM_RIGHTALIGN_F
PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F

View File

@ -217,7 +217,7 @@ Function4013c: ; 4013c (10:413c)
call ByteFill call ByteFill
callba Function1de171 callba Function1de171
hlcoord 0, 17 hlcoord 0, 17
ld de, Unknown_407f2 ld de, String_START_SEARCH
call Function40acd call Function40acd
ld a, $7 ld a, $7
ld [wc7d3], a ld [wc7d3], a
@ -246,7 +246,7 @@ Function4013c: ; 4013c (10:413c)
call Function41148 call Function41148
callba Function1de171 callba Function1de171
hlcoord 0, 17 hlcoord 0, 17
ld de, Unknown_407f2 ld de, String_START_SEARCH
call Function40acd call Function40acd
ld a, $7 ld a, $7
ld [wc7d3], a ld [wc7d3], a
@ -1068,7 +1068,7 @@ Function40741: ; 40741
Function4074c: ; 4074c (10:474c) Function4074c: ; 4074c (10:474c)
hlcoord 0, 17 hlcoord 0, 17
ld de, Unknown_407f2 ld de, String_START_SEARCH
call Function40acd call Function40acd
ld a, $32 ld a, $32
hlcoord 0, 0 hlcoord 0, 0
@ -1081,27 +1081,27 @@ Function4074c: ; 4074c (10:474c)
ld bc, $607 ld bc, $607
call Function40ad5 call Function40ad5
hlcoord 1, 11 hlcoord 1, 11
ld de, Unknown_407e1 ld de, String_SEEN
call Function40acd call Function40acd
ld hl, PokedexSeen ; wdeb9 (aliases: EndPokedexSeen) ld hl, PokedexSeen ; wdeb9 (aliases: EndPokedexSeen)
ld b, EndPokedexSeen - PokedexSeen ld b, EndPokedexSeen - PokedexSeen
call CountSetBits call CountSetBits
ld de, wd265 ld de, wd265
hlcoord 5, 12 hlcoord 5, 12
ld bc, $103 lb bc, 1, 3
call PrintNum call PrintNum
hlcoord 1, 14 hlcoord 1, 14
ld de, Unknown_407e6 ld de, String_OWN
call Function40acd call Function40acd
ld hl, PokedexCaught ld hl, PokedexCaught
ld b, EndPokedexCaught - PokedexCaught ld b, EndPokedexCaught - PokedexCaught
call CountSetBits call CountSetBits
ld de, wd265 ld de, wd265
hlcoord 5, 15 hlcoord 5, 15
ld bc, $103 lb bc, 1, 3
call PrintNum call PrintNum
hlcoord 1, 17 hlcoord 1, 17
ld de, Unknown_407ea ld de, String_SELECT_OPTION
call Function40acd call Function40acd
hlcoord 8, 1 hlcoord 8, 1
ld b, $7 ld b, $7
@ -1123,13 +1123,13 @@ Function4074c: ; 4074c (10:474c)
ret ret
; 407e1 (10:47e1) ; 407e1 (10:47e1)
Unknown_407e1: ; 407e1 String_SEEN: ; 407e1
db "SEEN", $ff db "SEEN", $ff
Unknown_407e6: ; 407e6 String_OWN: ; 407e6
db "OWN", $ff db "OWN", $ff
Unknown_407ea: ; 407ea String_SELECT_OPTION: ; 407ea
db $3b, $48, $49, $4a, $44, $45, $46, $47 ; SELECT > OPTION db $3b, $48, $49, $4a, $44, $45, $46, $47 ; SELECT > OPTION
Unknown_407f2: ; 407f2 String_START_SEARCH: ; 407f2
db $3c, $3b, $41, $42, $43, $4b, $4c, $4d, $4e, $3c, $ff ; START > SEARCH db $3c, $3b, $41, $42, $43, $4b, $4c, $4d, $4e, $3c, $ff ; START > SEARCH
; 407fd ; 407fd
@ -1270,7 +1270,7 @@ Function40962: ; 40962 (10:4962)
call PlaceString call PlaceString
ld de, wc7d7 ld de, wc7d7
hlcoord 1, 16 hlcoord 1, 16
ld bc, $103 lb bc, 1, 3
call PrintNum call PrintNum
hlcoord 8, 0 hlcoord 8, 0
ld [hl], $59 ld [hl], $59

View File

@ -1,3 +1,114 @@
Special_CheckMagikarpLength: ; fbb32
; Returns 3 if you select a Magikarp that beats the previous record.
; Returns 2 if you select a Magikarp, but the current record is longer.
; Returns 1 if you press B in the Pokemon selection menu.
; Returns 0 if the Pokemon you select is not a Magikarp.
; Let's start by selecting a Magikarp.
callba SelectMonFromParty
jr c, .declined
ld a, [CurPartySpecies]
cp MAGIKARP
jr nz, .not_magikarp
; Now let's compute its length based on its DVs and ID.
ld a, [CurPartyMon]
ld hl, PartyMon1Species
ld bc, PartyMon2 - PartyMon1
call AddNTimes
push hl
ld bc, MON_DVS
add hl, bc
ld d, h
ld e, l
pop hl
ld bc, MON_ID
add hl, bc
ld b, h
ld c, l
call CalcMagikarpLength
call PrintMagikarpLength
callba MagikarpLength_Mobile
ld hl, .MeasureItText
call PrintText
; Did we beat the record?
ld hl, Buffer1
ld de, wBestMagikarpLengthFeet
ld c, 2
call StringCmp
jr nc, .not_long_enough
; NEW RECORD!!! Let's save that.
ld hl, Buffer1
ld de, wBestMagikarpLengthFeet
ld a, [hli]
ld [de], a
inc de
ld a, [hl]
ld [de], a
inc de
ld a, [CurPartyMon]
ld hl, PartyMonOT
call SkipNames
call CopyBytes
ld a, 3
ld [ScriptVar], a
ret
.not_long_enough
ld a, 2
ld [ScriptVar], a
ret
.declined
ld a, 1
ld [ScriptVar], a
ret
.not_magikarp
xor a
ld [ScriptVar], a
ret
; fbba9
.MeasureItText: ; 0xfbba9
; Let me measure that MAGIKARP. …Hm, it measures @ .
text_jump UnknownText_0x1c1203
db "@"
; 0xfbbae
Magikarp_LoadFeetInchesChars: ; fbbae
ld hl, VTiles2 + "<FOOT>" * $10
ld de, .feetinchchars
lb bc, BANK(.feetinchchars), 2
call Request2bpp
ret
; fbbbb
.feetinchchars: ; fbbb
INCBIN "gfx/unknown/0fbbbb.2bpp"
; fbbdb
PrintMagikarpLength: ; fbbdb
call Magikarp_LoadFeetInchesChars
ld hl, StringBuffer1
ld de, Buffer1
lb bc, PRINTNUM_RIGHTALIGN | 1, 2
call PrintNum
ld [hl], "<FOOT>"
inc hl
ld de, Buffer2
lb bc, PRINTNUM_RIGHTALIGN | 1, 2
call PrintNum
ld [hl], "<INCH>"
inc hl
ld [hl], "@"
ret
; fbbfc
CalcMagikarpLength: ; fbbfc CalcMagikarpLength: ; fbbfc
; Return Magikarp's length (in mm) at MagikarpLength (big endian). ; Return Magikarp's length (in mm) at MagikarpLength (big endian).
; ;
@ -213,3 +324,22 @@ endr
dwb 65410, 2 dwb 65410, 2
dwb 65510, 1 ; not used dwb 65510, 1 ; not used
; fbcd2 ; fbcd2
Special_MagikarpHouseSign: ; fbcd2
ld a, [wBestMagikarpLengthFeet]
ld [Buffer1], a
ld a, [wBestMagikarpLengthInches]
ld [Buffer2], a
call PrintMagikarpLength
ld hl, .CurrentRecordtext
call PrintText
ret
; fbce8
.CurrentRecordtext: ; 0xfbce8
; "CURRENT RECORD"
text_jump UnknownText_0x1c123a
db "@"
; 0xfbced

750
event/mom.asm Normal file
View File

@ -0,0 +1,750 @@
Special_BankOfMom: ; 16218
ld a, [$ffaa]
push af
ld a, $1
ld [$ffaa], a
xor a
ld [wcf63], a
.asm_16223
ld a, [wcf63]
bit 7, a
jr nz, .asm_1622f
call Function16233
jr .asm_16223
.asm_1622f
pop af
ld [$ffaa], a
ret
; 16233
Function16233: ; 16233
ld a, [wcf63]
ld e, a
ld d, 0
ld hl, Jumptable_16242
rept 2
add hl, de
endr
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
; 16242
Jumptable_16242: ; 16242
dw Function16254
dw Function1626a
dw Function16290
dw Function162a8
dw Function162e0
dw Function16373
dw Function16406
dw Function1642d
dw Function16433
; 16254
Function16254: ; 16254
ld a, [wd854]
bit 7, a
jr nz, .asm_16264
set 7, a
ld [wd854], a
ld a, $1
jr .asm_16266
.asm_16264
ld a, $2
.asm_16266
ld [wcf63], a
ret
; 1626a
Function1626a: ; 1626a
ld hl, UnknownText_0x16649
call PrintText
call YesNoBox
jr c, .asm_1627f
ld hl, UnknownText_0x1664e
call PrintText
ld a, $81
jr .asm_16281
.asm_1627f
ld a, $80
.asm_16281
ld [wd854], a
ld hl, UnknownText_0x16653
call PrintText
ld a, $8
ld [wcf63], a
ret
; 16290
Function16290: ; 16290
ld hl, UnknownText_0x16658
call PrintText
call YesNoBox
jr c, .asm_1629f
ld a, $3
jr .asm_162a4
.asm_1629f
call DSTChecks
ld a, $7
.asm_162a4
ld [wcf63], a
ret
; 162a8
Function162a8: ; 162a8
ld hl, UnknownText_0x1665d
call PrintText
call Function1d6e
ld hl, MenuDataHeader_0x166b5
call CopyMenuDataHeader
call InterpretMenu2
call WriteBackup
jr c, .asm_162ce
ld a, [wcfa9]
cp $1
jr z, .asm_162d2
cp $2
jr z, .asm_162d6
cp $3
jr z, .asm_162da
.asm_162ce
ld a, $7
jr .asm_162dc
.asm_162d2
ld a, $5
jr .asm_162dc
.asm_162d6
ld a, $4
jr .asm_162dc
.asm_162da
ld a, $6
.asm_162dc
ld [wcf63], a
ret
; 162e0
Function162e0: ; 162e0
ld hl, UnknownText_0x16662
call PrintText
xor a
ld hl, StringBuffer2
rept 2
ld [hli], a
endr
ld [hl], a
ld a, $5
ld [wcf64], a
call Function1d6e
call Function16517
call Function1656b
call Function16571
call WriteBackup
jr c, .asm_1636d
ld hl, StringBuffer2
ld a, [hli]
or [hl]
inc hl
or [hl]
jr z, .asm_1636d
ld de, Money
ld bc, StringBuffer2
callba CheckMoney
jr c, .asm_1635f
ld hl, StringBuffer2
ld de, StringBuffer2 + 3
ld bc, $0003
call CopyBytes
ld bc, wd851
ld de, StringBuffer2
callba GiveMoney
jr c, .asm_16366
ld bc, StringBuffer2 + 3
ld de, Money
callba TakeMoney
ld hl, StringBuffer2
ld de, wd851
ld bc, $0003
call CopyBytes
ld de, SFX_TRANSACTION
call PlaySFX
call WaitSFX
ld hl, UnknownText_0x1668a
call PrintText
ld a, $8
jr .asm_1636f
.asm_1635f
ld hl, UnknownText_0x1667b
call PrintText
ret
.asm_16366
ld hl, UnknownText_0x16680
call PrintText
ret
.asm_1636d
ld a, $7
.asm_1636f
ld [wcf63], a
ret
; 16373
Function16373: ; 16373
ld hl, UnknownText_0x16667
call PrintText
xor a
ld hl, StringBuffer2
rept 2
ld [hli], a
endr
ld [hl], a
ld a, $5
ld [wcf64], a
call Function1d6e
call Function16512
call Function1656b
call Function16571
call WriteBackup
jr c, .asm_16400
ld hl, StringBuffer2
ld a, [hli]
or [hl]
inc hl
or [hl]
jr z, .asm_16400
ld hl, StringBuffer2
ld de, StringBuffer2 + 3
ld bc, 3
call CopyBytes
ld de, wd851
ld bc, StringBuffer2
callba CheckMoney
jr c, .asm_163f2
ld bc, Money
ld de, StringBuffer2
callba GiveMoney
jr c, .asm_163f9
ld bc, StringBuffer2 + 3
ld de, wd851
callba TakeMoney
ld hl, StringBuffer2
ld de, Money
ld bc, 3
call CopyBytes
ld de, SFX_TRANSACTION
call PlaySFX
call WaitSFX
ld hl, UnknownText_0x1668f
call PrintText
ld a, $8
jr .asm_16402
.asm_163f2
ld hl, UnknownText_0x16671
call PrintText
ret
.asm_163f9
ld hl, UnknownText_0x16676
call PrintText
ret
.asm_16400
ld a, 7
.asm_16402
ld [wcf63], a
ret
; 16406
Function16406: ; 16406
ld hl, UnknownText_0x1666c
call PrintText
call YesNoBox
jr c, .asm_16422
ld a, $81
ld [wd854], a
ld hl, UnknownText_0x16685
call PrintText
ld a, $8
ld [wcf63], a
ret
.asm_16422
ld a, $80
ld [wd854], a
ld a, $7
ld [wcf63], a
ret
; 1642d
Function1642d: ; 1642d
ld hl, UnknownText_0x16694
call PrintText
Function16433: ; 16433
ld hl, wcf63
set 7, [hl]
ret
; 16439
DSTChecks: ; 16439
; check the time; avoid changing DST if doing so would change the current day
ld a, [wDST]
bit 7, a
ld a, [hHours]
jr z, .asm_16447
and a ; within one hour of 00:00?
jr z, .LostBooklet
jr .loop
.asm_16447
cp 23 ; within one hour of 23:00?
jr nz, .loop
; fallthrough
.LostBooklet
call Function164ea
bccoord 1, 14
ld hl, UnknownText_0x164f4
call PlaceWholeStringInBoxAtOnce
call YesNoBox
ret c
call Function164ea
bccoord 1, 14
ld hl, LostInstructionBookletText
call PlaceWholeStringInBoxAtOnce
ret
.loop
call Function164ea
bccoord 1, 14
ld a, [wDST]
bit 7, a
jr z, .asm_16497
ld hl, UnknownText_0x16508
call PlaceWholeStringInBoxAtOnce
call YesNoBox
ret c
ld a, [wDST]
res 7, a
ld [wDST], a
call Function164d1
call Function164ea
bccoord 1, 14
ld hl, UnknownText_0x1650d
call PlaceWholeStringInBoxAtOnce
ret
.asm_16497
ld hl, UnknownText_0x164fe
call PlaceWholeStringInBoxAtOnce
call YesNoBox
ret c
ld a, [wDST]
set 7, a
ld [wDST], a
call Function164b9
call Function164ea
bccoord 1, 14
ld hl, UnknownText_0x16503
call PlaceWholeStringInBoxAtOnce
ret
; 164b9
Function164b9: ; 164b9
ld a, [StartHour]
add 1
sub 24
jr nc, .asm_164c4
add 24
.asm_164c4
ld [StartHour], a
ccf
ld a, [StartDay]
adc 0
ld [StartDay], a
ret
; 164d1
Function164d1: ; 164d1
ld a, [StartHour]
sub 1
jr nc, .asm_164da
add 24
.asm_164da
ld [StartHour], a
ld a, [StartDay]
sbc 0
jr nc, .asm_164e6
add 7
.asm_164e6
ld [StartDay], a
ret
; 164ea
Function164ea: ; 164ea
hlcoord 1, 14
ld bc, $0312
call ClearBox
ret
; 164f4
UnknownText_0x164f4: ; 0x164f4
; Do you want to adjust your clock for Daylight Saving Time?
text_jump UnknownText_0x1c6095
db "@"
; 0x164f9
LostInstructionBookletText: ; 0x164f9
; I lost the instruction booklet for the POKéGEAR.
; Come back again in a while.
text_jump UnknownText_0x1c60d1
db "@"
; 0x164fe
UnknownText_0x164fe: ; 0x164fe
; Do you want to switch to Daylight Saving Time?
text_jump UnknownText_0x1c6000
db "@"
; 0x16503
UnknownText_0x16503: ; 0x16503
; I set the clock forward by one hour.
text_jump UnknownText_0x1c6030
db "@"
; 0x16508
UnknownText_0x16508: ; 0x16508
; Is Daylight Saving Time over?
text_jump UnknownText_0x1c6056
db "@"
; 0x1650d
UnknownText_0x1650d: ; 0x1650d
; I put the clock back one hour.
text_jump UnknownText_0x1c6075
db "@"
; 0x16512
Function16512: ; 16512
ld de, String_1669f
jr Function1651a
Function16517: ; 16517
ld de, String_166a8
Function1651a: ; 1651a
push de
xor a
ld [hBGMapMode], a
hlcoord 0, 0
lb bc, 6, 18
call TextBox
hlcoord 1, 2
ld de, String_16699
call PlaceString
hlcoord 12, 2
ld de, wd851
lb bc, PRINTNUM_MONEY | 3, 6
call PrintNum
hlcoord 1, 4
ld de, String_166b0
call PlaceString
hlcoord 12, 4
ld de, Money
lb bc, PRINTNUM_MONEY | 3, 6
call PrintNum
hlcoord 1, 6
pop de
call PlaceString
hlcoord 12, 6
ld de, StringBuffer2
lb bc, PRINTNUM_MONEY | PRINTNUM_LEADINGZEROS | 3, 6
call PrintNum
call UpdateSprites
call Function3238
ret
; 1656b
Function1656b: ; 1656b
ld c, 10
call DelayFrames
ret
; 16571
Function16571: ; 16571
.loop
call Functiona57
ld hl, hJoyPressed
ld a, [hl]
and B_BUTTON
jr nz, .pressedB
ld a, [hl]
and A_BUTTON
jr nz, .pressedA
call .dpadaction
xor a
ld [hBGMapMode], a
hlcoord 12, 6
ld bc, 7
ld a, " "
call ByteFill
hlcoord 12, 6
ld de, StringBuffer2
lb bc, PRINTNUM_MONEY | PRINTNUM_LEADINGZEROS | 3, 6
call PrintNum
ld a, [$ff9b]
and $10
jr nz, .skip
hlcoord 13, 6
ld a, [wMomBankDigitCursorPosition]
ld c, a
ld b, 0
add hl, bc
ld [hl], " "
.skip
call WaitBGMap
jr .loop
.pressedB
scf
ret
.pressedA
and a
ret
; 165b9
.dpadaction: ; 165b9
ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, .incrementdigit
ld a, [hl]
and D_DOWN
jr nz, .decrementdigit
ld a, [hl]
and D_LEFT
jr nz, .movecursorleft
ld a, [hl]
and D_RIGHT
jr nz, .movecursorright
and a
ret
.movecursorleft
ld hl, wMomBankDigitCursorPosition
ld a, [hl]
and a
ret z
dec [hl]
ret
.movecursorright
ld hl, wMomBankDigitCursorPosition
ld a, [hl]
cp 5
ret nc
inc [hl]
ret
.incrementdigit
ld hl, .DigitQuantities
call .getdigitquantity
ld c, l
ld b, h
ld de, StringBuffer2
callba GiveMoney
ret
.decrementdigit
ld hl, .DigitQuantities
call .getdigitquantity
ld c, l
ld b, h
ld de, StringBuffer2
callba TakeMoney
ret
; 16607
.getdigitquantity: ; 16607
ld a, [wMomBankDigitCursorPosition]
push de
ld e, a
ld d, 0
rept 3
add hl, de
endr
pop de
ret
; 16613
.DigitQuantities: ; 16613
dt 100000
dt 10000
dt 1000
dt 100
dt 10
dt 1
dt 100000
dt 10000
dt 1000
dt 100
dt 10
dt 1
dt 900000
dt 90000
dt 9000
dt 900
dt 90
dt 9
; 16649
UnknownText_0x16649: ; 0x16649
; Wow, that's a cute #MON. Where did you get it? … So, you're leaving on an adventure… OK! I'll help too. But what can I do for you? I know! I'll save money for you. On a long journey, money's important. Do you want me to save your money?
text_jump UnknownText_0x1bd77f
db "@"
; 0x1664e
UnknownText_0x1664e: ; 0x1664e
; OK, I'll take care of your money.
text_jump UnknownText_0x1bd868
db "@"
; 0x16653
UnknownText_0x16653: ; 0x16653
; Be careful. #MON are your friends. You need to work as a team. Now, go on!
text_jump UnknownText_0x1bd88e
db "@"
; 0x16658
UnknownText_0x16658: ; 0x16658
; Hi! Welcome home! You're trying very hard, I see. I've kept your room tidy. Or is this about your money?
text_jump UnknownText_0x1bd8da
db "@"
; 0x1665d
UnknownText_0x1665d: ; 0x1665d
; What do you want to do?
text_jump UnknownText_0x1bd942
db "@"
; 0x16662
UnknownText_0x16662: ; 0x16662
; How much do you want to save?
text_jump UnknownText_0x1bd95b
db "@"
; 0x16667
UnknownText_0x16667: ; 0x16667
; How much do you want to take?
text_jump UnknownText_0x1bd97a
db "@"
; 0x1666c
UnknownText_0x1666c: ; 0x1666c
; Do you want to save some money?
text_jump UnknownText_0x1bd999
db "@"
; 0x16671
UnknownText_0x16671: ; 0x16671
; You haven't saved that much.
text_jump UnknownText_0x1bd9ba
db "@"
; 0x16676
UnknownText_0x16676: ; 0x16676
; You can't take that much.
text_jump UnknownText_0x1bd9d7
db "@"
; 0x1667b
UnknownText_0x1667b: ; 0x1667b
; You don't have that much.
text_jump UnknownText_0x1bd9f1
db "@"
; 0x16680
UnknownText_0x16680: ; 0x16680
; You can't save that much.
text_jump UnknownText_0x1bda0b
db "@"
; 0x16685
UnknownText_0x16685: ; 0x16685
; OK, I'll save your money. Trust me! , stick with it!
text_jump UnknownText_0x1bda25
db "@"
; 0x1668a
UnknownText_0x1668a: ; 0x1668a
; Your money's safe here! Get going!
text_jump UnknownText_0x1bda5b
db "@"
; 0x1668f
UnknownText_0x1668f: ; 0x1668f
; , don't give up!
text_jump UnknownText_0x1bda7e
db "@"
; 0x16694
UnknownText_0x16694: ; 0x16694
; Just do what you can.
text_jump UnknownText_0x1bda90
db "@"
; 0x16699
String_16699: ; 16699
db "SAVED@"
; 1669f
String_1669f: ; 1669f
db "WITHDRAW@"
; 166a8
String_166a8: ; 166a8
db "DEPOSIT@"
; 166b0
String_166b0: ; 166b0
db "HELD@"
; 166b5
MenuDataHeader_0x166b5: ; 0x166b5
db $40 ; flags
db 00, 00 ; start coords
db 10, 10 ; end coords
dw MenuData2_0x166bd
db 1 ; default option
; 0x166bd
MenuData2_0x166bd: ; 0x166bd
db $80 ; flags
db 4 ; items
db "GET@"
db "SAVE@"
db "CHANGE@"
db "CANCEL@"
; 0x166d6

View File

@ -75,12 +75,12 @@ Function2ebb:: ; 2ebb
ret ret
; 2ec6 ; 2ec6
Function2ec6:: ; 2ec6 xor_a:: ; 2ec6
xor a xor a
ret ret
; 2ec8 ; 2ec8
Function2ec8:: ; 2ec8 xor_a_dec_a:: ; 2ec8
xor a xor a
dec a dec a
ret ret
@ -1760,7 +1760,7 @@ Function383d:: ; 383d
Function3842:: ; 3842 Function3842:: ; 3842
ld [wd265], a ld [wd265], a
ld de, wd265 ld de, wd265
ld b, 1 << 6 + 1 ld b, PRINTNUM_RIGHTALIGN | 1
jp PrintNum jp PrintNum
; 384d ; 384d

View File

@ -331,7 +331,7 @@ Functiona57:: ; a57
jr z, .asm_a63 jr z, .asm_a63
ld a, [hJoyDown] ld a, [hJoyDown]
.asm_a63 .asm_a63
ld [$ffa9], a ld [hJoyLast], a
ld a, [hJoyPressed] ld a, [hJoyPressed]
and a and a
jr z, .asm_a70 jr z, .asm_a70
@ -344,7 +344,7 @@ Functiona57:: ; a57
and a and a
jr z, .asm_a7a jr z, .asm_a7a
xor a xor a
ld [$ffa9], a ld [hJoyLast], a
ret ret
.asm_a7a .asm_a7a

View File

@ -972,7 +972,7 @@ Text_09:: ; 14d2
ld a, b ld a, b
and $f0 and $f0
swap a swap a
set 6, a set PRINTNUM_RIGHTALIGN_F, a
ld b, a ld b, a
call PrintNum call PrintNum
ld b, h ld b, h

View File

@ -10,6 +10,9 @@
charmap "└", $7d charmap "└", $7d
charmap "┘", $7e charmap "┘", $7e
charmap " ", $7f charmap " ", $7f
charmap "<FOOT>", $6e
charmap "<INCH>", $6f
charmap "A", $80 charmap "A", $80
charmap "B", $81 charmap "B", $81

1249
main.asm

File diff suppressed because it is too large Load Diff

View File

@ -1843,7 +1843,7 @@ Function100b9f: ; 100b9f
callba Function3e786 callba Function3e786
ret z ret z
call Function100dd8 call Function100dd8
jp c, Function2ec8 jp c, xor_a_dec_a
call Function100e72 call Function100e72
call Function100bc2 call Function100bc2
push af push af

View File

@ -4359,9 +4359,9 @@ Function17f382: ; 17f382
ld de, $b2f4 ld de, $b2f4
.asm_17f3ab .asm_17f3ab
ld a, $82 ld a, PRINTNUM_LEADINGZEROS | 2
ld b, a ld b, a
ld a, $3 ld a, 3
ld c, a ld c, a
call PrintNum call PrintNum
call CloseSRAM call CloseSRAM

View File

@ -1222,7 +1222,7 @@ UnknownText_0x1c123a: ; 1c123a
text_from_ram StringBuffer1 text_from_ram StringBuffer1
text " caught by" text " caught by"
line "@" line "@"
text_from_ram wdfe9 + 1 text_from_ram wBestMagikarpLengthInches + 1
text_waitbutton text_waitbutton
db "@" db "@"
; 1c1260 ; 1c1260

View File

@ -1191,6 +1191,7 @@ CurSpecies:: ; cf60
wcf61:: ds 2 wcf61:: ds 2
wcf63:: ds 1 wcf63:: ds 1
wNrOfBeatenBattleTowerTrainers:: wNrOfBeatenBattleTowerTrainers::
wMomBankDigitCursorPosition::
wcf64:: ds 1 wcf64:: ds 1
IF !DEF(CRYSTAL11) IF !DEF(CRYSTAL11)
wPokedexStatus:: wPokedexStatus::
@ -2579,9 +2580,9 @@ wdfe4:: ds 1
wdfe5:: ds 1 wdfe5:: ds 1
wdfe6:: ds 1 wdfe6:: ds 1
wdfe7:: ds 1 wdfe7:: ds 1
wdfe8:: ds 1 wBestMagikarpLengthFeet:: ds 1
wdfe9:: ds 1 wBestMagikarpLengthInches:: ds 1
ds 1 wMagikarpRecordHoldersName:: ds 1
ds 1 ds 1
wdfec:: ds 1 wdfec:: ds 1
ds 3 ds 3