battle_record: through sub_80CD98C
This commit is contained in:
File diff suppressed because it is too large
Load Diff
+4
-4
@@ -2407,7 +2407,7 @@ _080E6C00:
|
||||
adds r0, r2
|
||||
ldrh r1, [r0]
|
||||
movs r0, 0x20
|
||||
bl sub_8054F00
|
||||
bl SetGameStat
|
||||
b _080E6C80
|
||||
.align 2, 0
|
||||
_080E6C10: .4byte 0x0000057a
|
||||
@@ -2599,7 +2599,7 @@ _080E6D9C:
|
||||
adds r0, r1
|
||||
ldrh r1, [r0]
|
||||
movs r0, 0x20
|
||||
bl sub_8054F00
|
||||
bl SetGameStat
|
||||
b _080E6E08
|
||||
.align 2, 0
|
||||
_080E6DAC: .4byte 0x0000057a
|
||||
@@ -2717,7 +2717,7 @@ _080E6E76:
|
||||
adds r5, r0, 0
|
||||
movs r0, 0x20
|
||||
adds r1, r5, 0
|
||||
bl sub_8054F00
|
||||
bl SetGameStat
|
||||
ldr r1, _080E6EA4 @ =0x0000270f
|
||||
cmp r5, r1
|
||||
bhi _080E6EB8
|
||||
@@ -2731,7 +2731,7 @@ _080E6EA8:
|
||||
ldrh r5, [r1]
|
||||
movs r0, 0x20
|
||||
adds r1, r5, 0
|
||||
bl sub_8054F00
|
||||
bl SetGameStat
|
||||
ldr r1, _080E6EC4 @ =0x0000270f
|
||||
cmp r5, r1
|
||||
bls _080E6ECC
|
||||
|
||||
+4
-4
@@ -943,7 +943,7 @@ _08080E9A:
|
||||
lsls r1, r5, 8
|
||||
ldr r0, _08080ED4 @ =gBlockRecvBuffer
|
||||
adds r1, r0
|
||||
ldr r0, _08080ED8 @ =gUnknown_2039624
|
||||
ldr r0, _08080ED8 @ =gTrainerCards
|
||||
lsls r4, r5, 1
|
||||
adds r4, r5
|
||||
lsls r4, 5
|
||||
@@ -958,12 +958,12 @@ _08080E9A:
|
||||
.align 2, 0
|
||||
_08080ED0: .4byte gLinkPlayers
|
||||
_08080ED4: .4byte gBlockRecvBuffer
|
||||
_08080ED8: .4byte gUnknown_2039624
|
||||
_08080ED8: .4byte gTrainerCards
|
||||
_08080EDC:
|
||||
lsls r1, r5, 8
|
||||
ldr r0, _08080F3C @ =gBlockRecvBuffer
|
||||
adds r1, r0
|
||||
ldr r2, _08080F40 @ =gUnknown_2039624
|
||||
ldr r2, _08080F40 @ =gTrainerCards
|
||||
lsls r0, r5, 1
|
||||
adds r0, r5
|
||||
lsls r0, 5
|
||||
@@ -1004,7 +1004,7 @@ _08080EF8:
|
||||
b _08080F66
|
||||
.align 2, 0
|
||||
_08080F3C: .4byte gBlockRecvBuffer
|
||||
_08080F40: .4byte gUnknown_2039624
|
||||
_08080F40: .4byte gTrainerCards
|
||||
_08080F44: .4byte gSpecialVar_Result
|
||||
_08080F48: .4byte gLinkType
|
||||
_08080F4C: .4byte 0x00004411
|
||||
|
||||
+4
-4
@@ -3154,14 +3154,14 @@ _081172C0:
|
||||
cmp r4, r0
|
||||
bne _0811734A
|
||||
movs r4, 0
|
||||
ldr r0, _081172E0 @ =gUnknown_2039624
|
||||
ldr r0, _081172E0 @ =gTrainerCards
|
||||
adds r7, r0, 0
|
||||
adds r7, 0x38
|
||||
ldr r6, _081172E4 @ =gLinkPlayers
|
||||
adds r5, r0, 0
|
||||
b _08117302
|
||||
.align 2, 0
|
||||
_081172E0: .4byte gUnknown_2039624
|
||||
_081172E0: .4byte gTrainerCards
|
||||
_081172E4: .4byte gLinkPlayers
|
||||
_081172E8:
|
||||
lsls r0, r4, 8
|
||||
@@ -10949,7 +10949,7 @@ sub_811B31C: @ 811B31C
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 5
|
||||
ldr r0, _0811B4B0 @ =gUnknown_2039624
|
||||
ldr r0, _0811B4B0 @ =gTrainerCards
|
||||
adds r1, r0
|
||||
mov r8, r1
|
||||
bl DynamicPlaceholderTextUtil_Reset
|
||||
@@ -11108,7 +11108,7 @@ _0811B45E:
|
||||
bl StringAppend
|
||||
b _0811B4F0
|
||||
.align 2, 0
|
||||
_0811B4B0: .4byte gUnknown_2039624
|
||||
_0811B4B0: .4byte gTrainerCards
|
||||
_0811B4B4: .4byte gTrainerClassNames
|
||||
_0811B4B8: .4byte gUnknown_84594B0
|
||||
_0811B4BC: .4byte gUnknown_84594C4
|
||||
|
||||
+4
-4
@@ -334,7 +334,7 @@ _08054EB0:
|
||||
ldr r1, _08054EC0 @ =0x00ffffff
|
||||
_08054EB2:
|
||||
adds r0, r4, 0
|
||||
bl sub_8054F00
|
||||
bl SetGameStat
|
||||
_08054EB8:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
@@ -376,8 +376,8 @@ _08054EFA:
|
||||
bx r1
|
||||
thumb_func_end GetGameStat
|
||||
|
||||
thumb_func_start sub_8054F00
|
||||
sub_8054F00: @ 8054F00
|
||||
thumb_func_start SetGameStat
|
||||
SetGameStat: @ 8054F00
|
||||
push {lr}
|
||||
adds r3, r1, 0
|
||||
lsls r0, 24
|
||||
@@ -405,7 +405,7 @@ _08054F2A:
|
||||
.align 2, 0
|
||||
_08054F30: .4byte gSaveBlock1Ptr
|
||||
_08054F34: .4byte gSaveBlock2Ptr
|
||||
thumb_func_end sub_8054F00
|
||||
thumb_func_end SetGameStat
|
||||
|
||||
thumb_func_start sub_8054F38
|
||||
sub_8054F38: @ 8054F38
|
||||
|
||||
@@ -44,7 +44,7 @@ _080CA318:
|
||||
ldrb r0, [r2, 0x11]
|
||||
orrs r1, r0
|
||||
movs r0, 0x1
|
||||
bl sub_8054F00
|
||||
bl SetGameStat
|
||||
_080CA33A:
|
||||
bl sub_804C1AC
|
||||
movs r0, 0x1
|
||||
|
||||
+8
-8
@@ -4090,7 +4090,7 @@ _0808B1B8: .4byte 0x00007bce
|
||||
sub_808B1BC: @ 808B1BC
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, _0808B1D0 @ =gUnknown_2039624
|
||||
ldr r2, _0808B1D0 @ =gTrainerCards
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 5
|
||||
@@ -4098,7 +4098,7 @@ sub_808B1BC: @ 808B1BC
|
||||
ldrb r0, [r1, 0x1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0808B1D0: .4byte gUnknown_2039624
|
||||
_0808B1D0: .4byte gTrainerCards
|
||||
thumb_func_end sub_808B1BC
|
||||
|
||||
thumb_func_start sub_808B1D4
|
||||
@@ -4792,7 +4792,7 @@ sub_808B700: @ 808B700
|
||||
ldr r0, [r5]
|
||||
ldr r1, _0808B760 @ =0x0000045c
|
||||
adds r0, r1
|
||||
ldr r2, _0808B764 @ =gUnknown_2039624
|
||||
ldr r2, _0808B764 @ =gTrainerCards
|
||||
lsls r1, r4, 1
|
||||
adds r1, r4
|
||||
lsls r1, 5
|
||||
@@ -4818,7 +4818,7 @@ sub_808B700: @ 808B700
|
||||
_0808B758: .4byte gUnknown_20397A4
|
||||
_0808B75C: .4byte 0x00007bd0
|
||||
_0808B760: .4byte 0x0000045c
|
||||
_0808B764: .4byte gUnknown_2039624
|
||||
_0808B764: .4byte gTrainerCards
|
||||
_0808B768: .4byte gLinkPlayers
|
||||
_0808B76C: .4byte 0x00007bcf
|
||||
_0808B770: .4byte sub_80895B8
|
||||
@@ -5070,7 +5070,7 @@ _0808B95C: .4byte sub_80895B8
|
||||
sub_808B960: @ 808B960
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r0, _0808B984 @ =gUnknown_2039624
|
||||
ldr r0, _0808B984 @ =gTrainerCards
|
||||
ldr r1, _0808B988 @ =gUnknown_83CD960
|
||||
movs r2, 0x60
|
||||
bl memcpy
|
||||
@@ -5083,7 +5083,7 @@ sub_808B960: @ 808B960
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0808B984: .4byte gUnknown_2039624
|
||||
_0808B984: .4byte gTrainerCards
|
||||
_0808B988: .4byte gUnknown_83CD960
|
||||
_0808B98C: .4byte sub_80895B8
|
||||
thumb_func_end sub_808B960
|
||||
@@ -5092,7 +5092,7 @@ _0808B98C: .4byte sub_80895B8
|
||||
sub_808B990: @ 808B990
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r0, _0808B9B4 @ =gUnknown_2039624
|
||||
ldr r0, _0808B9B4 @ =gTrainerCards
|
||||
ldr r1, _0808B9B8 @ =gUnknown_83CD9C0
|
||||
movs r2, 0x60
|
||||
bl memcpy
|
||||
@@ -5105,7 +5105,7 @@ sub_808B990: @ 808B990
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0808B9B4: .4byte gUnknown_2039624
|
||||
_0808B9B4: .4byte gTrainerCards
|
||||
_0808B9B8: .4byte gUnknown_83CD9C0
|
||||
_0808B9BC: .4byte sub_80895B8
|
||||
thumb_func_end sub_808B990
|
||||
|
||||
+41
-41
@@ -670,7 +670,7 @@ gUnknown_8416741:: @ 0x8416741
|
||||
.string "SEE YA!$"
|
||||
|
||||
gUnknown_8416749:: @ 8416749
|
||||
.string "IN BAG:{SIZE 0x00} {STR_VAR_1}$"
|
||||
.string "IN BAG:{SMALL} {STR_VAR_1}$"
|
||||
|
||||
gUnknown_8416757:: @ 8416757
|
||||
.string "Quit shopping.$"
|
||||
@@ -1293,19 +1293,19 @@ gUnknown_841797F:: @ 0x841797F
|
||||
.string "INFO$"
|
||||
|
||||
gUnknown_8417984:: @ 0x8417984
|
||||
.string "FRESH WATER{CLEAR_TO 0x57}{SIZE 0x00}¥200$"
|
||||
.string "FRESH WATER{CLEAR_TO 0x57}{SMALL}¥200$"
|
||||
|
||||
gUnknown_841799A:: @ 0x841799A
|
||||
.string "SODA POP{CLEAR_TO 0x57}{SIZE 0x00}¥300$"
|
||||
.string "SODA POP{CLEAR_TO 0x57}{SMALL}¥300$"
|
||||
|
||||
gUnknown_84179AD:: @ 0x84179AD
|
||||
.string "LEMONADE{CLEAR_TO 0x57}{SIZE 0x00}¥350$"
|
||||
.string "LEMONADE{CLEAR_TO 0x57}{SMALL}¥350$"
|
||||
|
||||
gUnknown_84179C0:: @ 0x84179C0
|
||||
.string "{SIZE 0x00} 50 COINS{CLEAR_TO 0x45}¥1,000$"
|
||||
.string "{SMALL} 50 COINS{CLEAR_TO 0x45}¥1,000$"
|
||||
|
||||
gUnknown_84179D6:: @ 0x84179D6
|
||||
.string "{SIZE 0x00}500 COINS{CLEAR_TO 0x40}¥10,000$"
|
||||
.string "{SMALL}500 COINS{CLEAR_TO 0x40}¥10,000$"
|
||||
|
||||
gUnknown_84179ED:: @ 0x84179ED
|
||||
.string "Excellent$"
|
||||
@@ -1335,19 +1335,19 @@ gUnknown_8417A3D:: @ 0x8417A3D
|
||||
.string "Left$"
|
||||
|
||||
gUnknown_8417A42:: @ 0x8417A42
|
||||
.string "TM13{CLEAR_TO 0x48}{SIZE 0x00}4,000 COINS$"
|
||||
.string "TM13{CLEAR_TO 0x48}{SMALL}4,000 COINS$"
|
||||
|
||||
gUnknown_8417A58:: @ 0x8417A58
|
||||
.string "TM23{CLEAR_TO 0x48}{SIZE 0x00}3,500 COINS$"
|
||||
.string "TM23{CLEAR_TO 0x48}{SMALL}3,500 COINS$"
|
||||
|
||||
gUnknown_8417A6E:: @ 0x8417A6E
|
||||
.string "TM24{CLEAR_TO 0x48}{SIZE 0x00}4,000 COINS$"
|
||||
.string "TM24{CLEAR_TO 0x48}{SMALL}4,000 COINS$"
|
||||
|
||||
gUnknown_8417A84:: @ 0x8417A84
|
||||
.string "TM30{CLEAR_TO 0x48}{SIZE 0x00}4,500 COINS$"
|
||||
.string "TM30{CLEAR_TO 0x48}{SMALL}4,500 COINS$"
|
||||
|
||||
gUnknown_8417A9A:: @ 0x8417A9A
|
||||
.string "TM35{CLEAR_TO 0x48}{SIZE 0x00}4,000 COINS$"
|
||||
.string "TM35{CLEAR_TO 0x48}{SMALL}4,000 COINS$"
|
||||
|
||||
gUnknown_8417AB0:: @ 0x8417AB0
|
||||
.string "1F$"
|
||||
@@ -1491,40 +1491,40 @@ gUnknown_8417C2D:: @ 8417C2D
|
||||
.string "COINS$"
|
||||
|
||||
gUnknown_8417C33:: @ 0x8417C33
|
||||
.string "BICYCLE{CLEAR_TO 0x49}{SIZE 0x00}¥1,000,000$"
|
||||
.string "BICYCLE{CLEAR_TO 0x49}{SMALL}¥1,000,000$"
|
||||
|
||||
gUnknown_8417C4B:: @ 0x8417C4B
|
||||
.string "NO THANKS$"
|
||||
|
||||
gUnknown_8417C55:: @ 0x8417C55
|
||||
.string "ABRA{CLEAR_TO 0x55}{SIZE 0x00} 180 COINS$"
|
||||
.string "ABRA{CLEAR_TO 0x55}{SMALL} 180 COINS$"
|
||||
|
||||
gUnknown_8417C6A:: @ 0x8417C6A
|
||||
.string "CLEFAIRY{CLEAR_TO 0x55}{SIZE 0x00} 500 COINS$"
|
||||
.string "CLEFAIRY{CLEAR_TO 0x55}{SMALL} 500 COINS$"
|
||||
|
||||
gUnknown_8417C83:: @ 0x8417C83
|
||||
.string "DRATINI{CLEAR_TO 0x4B}{SIZE 0x00} 2,800 COINS$"
|
||||
.string "DRATINI{CLEAR_TO 0x4B}{SMALL} 2,800 COINS$"
|
||||
|
||||
gUnknown_8417C9D:: @ 0x8417C9D
|
||||
.string "SCYTHER{CLEAR_TO 0x4B}{SIZE 0x00} 5,500 COINS$"
|
||||
.string "SCYTHER{CLEAR_TO 0x4B}{SMALL} 5,500 COINS$"
|
||||
|
||||
gUnknown_8417CB7:: @ 0x8417CB7
|
||||
.string "PORYGON{CLEAR_TO 0x4B}{SIZE 0x00} 9,999 COINS$"
|
||||
.string "PORYGON{CLEAR_TO 0x4B}{SMALL} 9,999 COINS$"
|
||||
|
||||
gUnknown_8417CD1:: @ 0x8417CD1
|
||||
.string "ABRA{CLEAR_TO 0x55}{SIZE 0x00} 120 COINS$"
|
||||
.string "ABRA{CLEAR_TO 0x55}{SMALL} 120 COINS$"
|
||||
|
||||
gUnknown_8417CE6:: @ 0x8417CE6
|
||||
.string "CLEFAIRY{CLEAR_TO 0x55}{SIZE 0x00} 750 COINS$"
|
||||
.string "CLEFAIRY{CLEAR_TO 0x55}{SMALL} 750 COINS$"
|
||||
|
||||
gUnknown_8417CFF:: @ 0x8417CFF
|
||||
.string "PINSIR{CLEAR_TO 0x4B}{SIZE 0x00} 2,500 COINS$"
|
||||
.string "PINSIR{CLEAR_TO 0x4B}{SMALL} 2,500 COINS$"
|
||||
|
||||
gUnknown_8417D18:: @ 0x8417D18
|
||||
.string "DRATINI{CLEAR_TO 0x4B}{SIZE 0x00} 4,600 COINS$"
|
||||
.string "DRATINI{CLEAR_TO 0x4B}{SMALL} 4,600 COINS$"
|
||||
|
||||
gUnknown_8417D32:: @ 0x8417D32
|
||||
.string "PORYGON{CLEAR_TO 0x4B}{SIZE 0x00} 6,500 COINS$"
|
||||
.string "PORYGON{CLEAR_TO 0x4B}{SMALL} 6,500 COINS$"
|
||||
|
||||
gUnknown_8417D4C:: @ 0x8417D4C
|
||||
.string "NO THANKS$"
|
||||
@@ -1632,19 +1632,19 @@ gUnknown_8417ECC:: @ 0x8417ECC
|
||||
.string "BIRTH ISLAND$"
|
||||
|
||||
gUnknown_8417ED9:: @ 0x8417ED9
|
||||
.string "MIRACLE SEED{CLEAR_TO 0x50}{SIZE 0x00}1,000 COINS$"
|
||||
.string "MIRACLE SEED{CLEAR_TO 0x50}{SMALL}1,000 COINS$"
|
||||
|
||||
gUnknown_8417EF7:: @ 0x8417EF7
|
||||
.string "CHARCOAL{CLEAR_TO 0x50}{SIZE 0x00}1,000 COINS$"
|
||||
.string "CHARCOAL{CLEAR_TO 0x50}{SMALL}1,000 COINS$"
|
||||
|
||||
gUnknown_8417F11:: @ 0x8417F11
|
||||
.string "MYSTIC WATER{CLEAR_TO 0x50}{SIZE 0x00}1,000 COINS$"
|
||||
.string "MYSTIC WATER{CLEAR_TO 0x50}{SMALL}1,000 COINS$"
|
||||
|
||||
gUnknown_8417F2F:: @ 0x8417F2F
|
||||
.string "YELLOW FLUTE{CLEAR_TO 0x50}{SIZE 0x00}1,600 COINS$"
|
||||
.string "YELLOW FLUTE{CLEAR_TO 0x50}{SMALL}1,600 COINS$"
|
||||
|
||||
gUnknown_8417F4D:: @ 0x8417F4D
|
||||
.string "SMOKE BALL{CLEAR_TO 0x5A}{SIZE 0x00}800 COINS$"
|
||||
.string "SMOKE BALL{CLEAR_TO 0x5A}{SMALL}800 COINS$"
|
||||
|
||||
gUnknown_8417F67:: @ 0x8417F67
|
||||
.string "$"
|
||||
@@ -1782,37 +1782,37 @@ gUnknown_841809C:: @ 0x841809C
|
||||
.string "UNION ROOM$"
|
||||
|
||||
gUnknown_84180A7:: @ 0x84180A7
|
||||
.string "ENERGYPOWDER{CLEAR_TO 0x74}{SIZE 0x00}50$"
|
||||
.string "ENERGYPOWDER{CLEAR_TO 0x74}{SMALL}50$"
|
||||
|
||||
gUnknown_84180BC:: @ 0x84180BC
|
||||
.string "ENERGY ROOT{CLEAR_TO 0x74}{SIZE 0x00}80$"
|
||||
.string "ENERGY ROOT{CLEAR_TO 0x74}{SMALL}80$"
|
||||
|
||||
gUnknown_84180D0:: @ 0x84180D0
|
||||
.string "HEAL POWDER{CLEAR_TO 0x74}{SIZE 0x00}50$"
|
||||
.string "HEAL POWDER{CLEAR_TO 0x74}{SMALL}50$"
|
||||
|
||||
gUnknown_84180E4:: @ 0x84180E4
|
||||
.string "REVIVAL HERB{CLEAR_TO 0x6F}{SIZE 0x00}300$"
|
||||
.string "REVIVAL HERB{CLEAR_TO 0x6F}{SMALL}300$"
|
||||
|
||||
gUnknown_84180FA:: @ 0x84180FA
|
||||
.string "PROTEIN{CLEAR_TO 0x65}{SIZE 0x00}1,000$"
|
||||
.string "PROTEIN{CLEAR_TO 0x65}{SMALL}1,000$"
|
||||
|
||||
gUnknown_841810D:: @ 0x841810D
|
||||
.string "IRON{CLEAR_TO 0x65}{SIZE 0x00}1,000$"
|
||||
.string "IRON{CLEAR_TO 0x65}{SMALL}1,000$"
|
||||
|
||||
gUnknown_841811D:: @ 0x841811D
|
||||
.string "CARBOS{CLEAR_TO 0x65}{SIZE 0x00}1,000$"
|
||||
.string "CARBOS{CLEAR_TO 0x65}{SMALL}1,000$"
|
||||
|
||||
gUnknown_841812F:: @ 0x841812F
|
||||
.string "CALCIUM{CLEAR_TO 0x65}{SIZE 0x00}1,000$"
|
||||
.string "CALCIUM{CLEAR_TO 0x65}{SMALL}1,000$"
|
||||
|
||||
gUnknown_8418142:: @ 0x8418142
|
||||
.string "ZINC{CLEAR_TO 0x65}{SIZE 0x00}1,000$"
|
||||
.string "ZINC{CLEAR_TO 0x65}{SMALL}1,000$"
|
||||
|
||||
gUnknown_8418152:: @ 0x8418152
|
||||
.string "HP UP{CLEAR_TO 0x65}{SIZE 0x00}1,000$"
|
||||
.string "HP UP{CLEAR_TO 0x65}{SMALL}1,000$"
|
||||
|
||||
gUnknown_8418163:: @ 0x8418163
|
||||
.string "PP UP{CLEAR_TO 0x65}{SIZE 0x00}3,000$"
|
||||
.string "PP UP{CLEAR_TO 0x65}{SMALL}3,000$"
|
||||
|
||||
gUnknown_8418174:: @ 8418174
|
||||
.string "{PLAYER}'s BATTLE RESULTS$"
|
||||
@@ -2870,7 +2870,7 @@ gUnknown_841B2A7:: @ 841B2A7
|
||||
.string ".$"
|
||||
|
||||
gUnknown_841B2A9:: @ 0x841B2A9
|
||||
.string "{SIZE 0x00}MAX.{SIZE 0x02} HP$"
|
||||
.string "{SMALL}MAX.{SIZE 0x02} HP$"
|
||||
|
||||
gUnknown_841B2B7:: @ 0x841B2B7
|
||||
.string "ATTACK$"
|
||||
@@ -2888,10 +2888,10 @@ gUnknown_841B2D4:: @ 0x841B2D4
|
||||
.string "SP. DEF$"
|
||||
|
||||
gUnknown_841B2DC:: @ 841B2DC
|
||||
.string "{SIZE 0x00}{EXTRA_PLUS}{SIZE 0x02}$"
|
||||
.string "{SMALL}{EXTRA_PLUS}{SIZE 0x02}$"
|
||||
|
||||
gUnknown_841B2E5:: @ 841B2E5
|
||||
.string "{SIZE 0x00}-{SIZE 0x02}$"
|
||||
.string "{SMALL}-{SIZE 0x02}$"
|
||||
|
||||
gUnknown_841B2ED:: @ 841B2ED
|
||||
.string "1, $"
|
||||
|
||||
+2
-1
@@ -78,7 +78,8 @@ void c2_load_new_map(void);
|
||||
void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused);
|
||||
void mapldr_default(void);
|
||||
|
||||
u32 GetGameStat(u8);
|
||||
u32 GetGameStat(u8 statId);
|
||||
u32 SetGameStat(u8 statId, u32 value);
|
||||
|
||||
void CB2_ContinueSavedGame(void);
|
||||
void sub_8055D5C(struct WarpData *);
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
#ifndef GUARD_TRAINER_CARD_H
|
||||
#define GUARD_TRAINER_CARD_H
|
||||
|
||||
struct TrainerCard
|
||||
{
|
||||
/*0x00*/ u8 gender;
|
||||
/*0x01*/ u8 stars;
|
||||
/*0x02*/ bool8 hasPokedex;
|
||||
/*0x03*/ bool8 caughtAllHoenn;
|
||||
/*0x04*/ bool8 hasAllPaintings;
|
||||
/*0x06*/ u16 hofDebutHours;
|
||||
/*0x08*/ u16 hofDebutMinutes;
|
||||
/*0x0A*/ u16 hofDebutSeconds;
|
||||
/*0x0C*/ u16 caughtMonsCount;
|
||||
/*0x0E*/ u16 trainerId;
|
||||
/*0x10*/ u16 playTimeHours;
|
||||
/*0x12*/ u16 playTimeMinutes;
|
||||
/*0x14*/ u16 linkBattleWins;
|
||||
/*0x16*/ u16 linkBattleLosses;
|
||||
/*0x18*/ u16 battleTowerWins;
|
||||
/*0x1A*/ u16 battleTowerStraightWins;
|
||||
/*0x1C*/ u16 contestsWithFriends;
|
||||
/*0x1E*/ u16 pokeblocksWithFriends;
|
||||
/*0x20*/ u16 pokemonTrades;
|
||||
/*0x24*/ u32 money;
|
||||
/*0x28*/ u16 var_28[4];
|
||||
/*0x30*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
/*0x38*/ u8 version;
|
||||
/*0x3A*/ u16 var_3A;
|
||||
/*0x3C*/ u32 berryCrushPoints;
|
||||
/*0x40*/ u32 unionRoomNum;
|
||||
/*0x44*/ u8 filler44[0x8];
|
||||
/*0x4C*/ u8 var_4C;
|
||||
/*0x4D*/ u8 var_4D;
|
||||
/*0x4E*/ u8 var_4E;
|
||||
/*0x4F*/ u8 var_4F;
|
||||
/*0x50*/ u8 var_50[0x4];
|
||||
/*0x54*/ u16 monSpecies[PARTY_SIZE];
|
||||
};
|
||||
|
||||
extern struct TrainerCard gTrainerCards[4];
|
||||
|
||||
#endif //GUARD_TRAINER_CARD_H
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_TRAINER_TOWER_H
|
||||
#define GUARD_TRAINER_TOWER_H
|
||||
|
||||
void sub_815EC8C(void);
|
||||
|
||||
#endif //GUARD_TRAINER_TOWER_H
|
||||
@@ -188,6 +188,7 @@ SECTIONS {
|
||||
src/prof_pc.o(.text);
|
||||
src/hof_pc.o(.text);
|
||||
asm/field_specials.o(.text);
|
||||
src/battle_records.o(.text);
|
||||
asm/battle_records.o(.text);
|
||||
asm/evolution_scene.o(.text);
|
||||
src/coins.o(.text);
|
||||
|
||||
@@ -0,0 +1,420 @@
|
||||
#include "global.h"
|
||||
#include "malloc.h"
|
||||
#include "main.h"
|
||||
#include "bg.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "event_data.h"
|
||||
#include "palette.h"
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
#include "window.h"
|
||||
#include "text_window.h"
|
||||
#include "battle.h"
|
||||
#include "trainer_tower.h"
|
||||
#include "trainer_pokemon_sprites.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "sound.h"
|
||||
#include "string_util.h"
|
||||
#include "link.h"
|
||||
#include "overworld.h"
|
||||
#include "trainer_card.h"
|
||||
#include "constants/battle.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/maps.h"
|
||||
|
||||
struct LinkBattleRecordState
|
||||
{
|
||||
u16 unk_00;
|
||||
u16 unk_02;
|
||||
u8 filler_04[92];
|
||||
};
|
||||
|
||||
EWRAM_DATA struct LinkBattleRecordState gUnknown_2039638[10] = {};
|
||||
EWRAM_DATA u16 * gUnknown_2039A1C = NULL;
|
||||
|
||||
void sub_80CD240(void);
|
||||
void sub_80CD38C(void);
|
||||
void sub_80CD3A0(void);
|
||||
void sub_80CD3B8(u8 taskId);
|
||||
void sub_80CD3E8(u8 taskId);
|
||||
void sub_80CD428(u8 taskId);
|
||||
void sub_80CD460(u8 taskId);
|
||||
void sub_80CD4A4(u8 winddowId);
|
||||
void sub_80CD4D0(void);
|
||||
void sub_80CD608(void);
|
||||
void sub_80CD628(void);
|
||||
void sub_80CD638(void);
|
||||
void sub_80CDBE4(void);
|
||||
void sub_80CDCD0(u8 bgId);
|
||||
|
||||
extern const struct WindowTemplate gUnknown_83F6C68[];
|
||||
extern const struct BgTemplate gUnknown_83F6C7C[2];
|
||||
|
||||
void sub_80CD228(void)
|
||||
{
|
||||
SetVBlankCallback(NULL);
|
||||
SetMainCallback2(sub_80CD240);
|
||||
}
|
||||
|
||||
void sub_80CD240(void)
|
||||
{
|
||||
switch (gMain.state)
|
||||
{
|
||||
case 0:
|
||||
SetVBlankCallback(NULL);
|
||||
sub_80CD4D0();
|
||||
gMain.state++;
|
||||
break;
|
||||
case 1:
|
||||
sub_80CD608();
|
||||
gMain.state++;
|
||||
break;
|
||||
case 2:
|
||||
gUnknown_2039A1C = AllocZeroed(0x800);
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, gUnknown_83F6C7C, NELEMS(gUnknown_83F6C7C));
|
||||
SetBgTilemapBuffer(3, gUnknown_2039A1C);
|
||||
sub_80CD638();
|
||||
gMain.state++;
|
||||
break;
|
||||
case 3:
|
||||
sub_80CDCD0(3);
|
||||
LoadPalette(stdpal_get(0), 0xF0, 0x20);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 4:
|
||||
if (IsDma3ManagerBusyWithBgCopy() != TRUE)
|
||||
{
|
||||
ShowBg(0);
|
||||
ShowBg(3);
|
||||
CopyBgTilemapBufferToVram(3);
|
||||
gMain.state++;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
InitWindows(gUnknown_83F6C68);
|
||||
DeactivateAllTextPrinters();
|
||||
gMain.state++;
|
||||
break;
|
||||
case 6:
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 7:
|
||||
sub_80CD628();
|
||||
SetVBlankCallback(sub_80CD38C);
|
||||
if (gSpecialVar_0x8004)
|
||||
sub_815EC8C();
|
||||
else
|
||||
sub_80CDBE4();
|
||||
CreateTask(sub_80CD3B8, 8);
|
||||
SetMainCallback2(sub_80CD3A0);
|
||||
gMain.state = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80CD38C(void)
|
||||
{
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
void sub_80CD3A0(void)
|
||||
{
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
void sub_80CD3B8(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
gTasks[taskId].func = sub_80CD3E8;
|
||||
}
|
||||
|
||||
void sub_80CD3E8(u8 taskId)
|
||||
{
|
||||
struct Task * task = &gTasks[taskId];
|
||||
|
||||
if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
task->func = sub_80CD428;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80CD428(u8 taskId)
|
||||
{
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
|
||||
gTasks[taskId].func = sub_80CD460;
|
||||
}
|
||||
|
||||
void sub_80CD460(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
|
||||
Free(gUnknown_2039A1C);
|
||||
sub_80CD4A4(0);
|
||||
FreeAllWindowBuffers();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80CD4A4(u8 windowId)
|
||||
{
|
||||
FillWindowPixelBuffer(windowId, PIXEL_FILL(0));
|
||||
ClearWindowTilemap(windowId);
|
||||
CopyWindowToVram(windowId, 2);
|
||||
RemoveWindow(windowId);
|
||||
}
|
||||
|
||||
void sub_80CD4D0(void)
|
||||
{
|
||||
{
|
||||
void * dest = (void *)VRAM;
|
||||
u32 size = VRAM_SIZE;
|
||||
DmaClearLarge16(3, dest, size, 0x1000);
|
||||
}
|
||||
|
||||
{
|
||||
void * dest = (void *)OAM;
|
||||
u32 size = OAM_SIZE;
|
||||
DmaClear32(3, dest, size);
|
||||
}
|
||||
|
||||
{
|
||||
void * dest = (void *)PLTT;
|
||||
u32 size = PLTT_SIZE;
|
||||
DmaClear16(3, dest, size);
|
||||
}
|
||||
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BG0CNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BG0HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG0VOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1VOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG2CNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BG2HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG2VOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG3CNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BG3HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG3VOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_WIN0H, 0);
|
||||
SetGpuReg(REG_OFFSET_WIN0V, 0);
|
||||
SetGpuReg(REG_OFFSET_WININ, 0);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
}
|
||||
|
||||
void sub_80CD608(void)
|
||||
{
|
||||
ScanlineEffect_Stop();
|
||||
ResetTasks();
|
||||
ResetSpriteData();
|
||||
ResetAllPicSprites();
|
||||
ResetPaletteFade();
|
||||
FreeAllSpritePalettes();
|
||||
}
|
||||
|
||||
void sub_80CD628(void)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON);
|
||||
}
|
||||
|
||||
void sub_80CD638(void)
|
||||
{
|
||||
ChangeBgX(0, 0, 0);
|
||||
ChangeBgY(0, 0, 0);
|
||||
ChangeBgX(1, 0, 0);
|
||||
ChangeBgY(1, 0, 0);
|
||||
ChangeBgX(2, 0, 0);
|
||||
ChangeBgY(2, 0, 0);
|
||||
ChangeBgX(3, 0, 0);
|
||||
ChangeBgY(3, 0, 0);
|
||||
}
|
||||
|
||||
void InitLinkBattleRecord(struct LinkBattleRecord * record)
|
||||
{
|
||||
CpuFill16(0, record, sizeof(*record));
|
||||
record->name[0] = EOS;
|
||||
record->trainerId = 0;
|
||||
record->wins = 0;
|
||||
record->losses = 0;
|
||||
record->draws = 0;
|
||||
}
|
||||
|
||||
void InitLinkBattleRecords_(struct LinkBattleRecords * records)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < LINK_B_RECORDS_COUNT; i++)
|
||||
InitLinkBattleRecord(&records->entries[i]);
|
||||
SetGameStat(GAME_STAT_LINK_BATTLE_WINS, 0);
|
||||
SetGameStat(GAME_STAT_LINK_BATTLE_LOSSES, 0);
|
||||
SetGameStat(GAME_STAT_LINK_BATTLE_DRAWS, 0);
|
||||
}
|
||||
|
||||
s32 GetLinkBattleRecordTotalBattles(struct LinkBattleRecord * record)
|
||||
{
|
||||
return record->wins + record->losses + record->draws;
|
||||
}
|
||||
|
||||
s32 sub_80CD704(struct LinkBattleRecords * records, const u8 * name, u16 trainerId)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < LINK_B_RECORDS_COUNT; i++)
|
||||
{
|
||||
if (StringCompareN(records->entries[i].name, name, OT_NAME_LENGTH) == 0 && records->entries[i].trainerId == trainerId)
|
||||
return i;
|
||||
}
|
||||
|
||||
return LINK_B_RECORDS_COUNT;
|
||||
}
|
||||
|
||||
void SortLinkBattleRecords(struct LinkBattleRecords * records)
|
||||
{
|
||||
struct LinkBattleRecord tmp;
|
||||
s32 i;
|
||||
s32 j;
|
||||
|
||||
for (i = LINK_B_RECORDS_COUNT - 1; i > 0; i--)
|
||||
{
|
||||
for (j = i - 1; j >= 0; j--)
|
||||
{
|
||||
if (GetLinkBattleRecordTotalBattles(&records->entries[i]) > GetLinkBattleRecordTotalBattles(&records->entries[j]))
|
||||
{
|
||||
tmp = records->entries[i];
|
||||
records->entries[i] = records->entries[j];
|
||||
records->entries[j] = tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateLinkBattleRecord(struct LinkBattleRecord * record, s32 outcome)
|
||||
{
|
||||
switch (outcome)
|
||||
{
|
||||
case B_OUTCOME_WON:
|
||||
record->wins++;
|
||||
if (record->wins > 9999)
|
||||
record->wins = 9999;
|
||||
break;
|
||||
case B_OUTCOME_LOST:
|
||||
record->losses++;
|
||||
if (record->losses > 9999)
|
||||
record->losses = 9999;
|
||||
break;
|
||||
case B_OUTCOME_DREW:
|
||||
record->draws++;
|
||||
if (record->draws > 9999)
|
||||
record->draws = 9999;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateLinkBattleGameStats(s32 outcome)
|
||||
{
|
||||
u8 statId;
|
||||
|
||||
switch (outcome)
|
||||
{
|
||||
case B_OUTCOME_WON:
|
||||
statId = GAME_STAT_LINK_BATTLE_WINS;
|
||||
break;
|
||||
case B_OUTCOME_LOST:
|
||||
statId = GAME_STAT_LINK_BATTLE_LOSSES;
|
||||
break;
|
||||
case B_OUTCOME_DREW:
|
||||
statId = GAME_STAT_LINK_BATTLE_DRAWS;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
if (GetGameStat(statId) < 9999)
|
||||
IncrementGameStat(statId);
|
||||
}
|
||||
|
||||
void sub_80CD854(struct LinkBattleRecords * records, const u8 * name, u16 trainerId, s32 outcome, u32 language)
|
||||
{
|
||||
u8 namebuf[OT_NAME_LENGTH + 1];
|
||||
s32 i;
|
||||
struct LinkBattleRecord * record;
|
||||
|
||||
if (language == LANGUAGE_JAPANESE)
|
||||
{
|
||||
namebuf[0] = EXT_CTRL_CODE_BEGIN;
|
||||
namebuf[1] = EXT_CTRL_CODE_JPN;
|
||||
StringCopy(&namebuf[2], name);
|
||||
}
|
||||
else
|
||||
StringCopy(namebuf, name);
|
||||
UpdateLinkBattleGameStats(outcome);
|
||||
SortLinkBattleRecords(records);
|
||||
i = sub_80CD704(records, namebuf, trainerId);
|
||||
if (i == LINK_B_RECORDS_COUNT)
|
||||
{
|
||||
i = LINK_B_RECORDS_COUNT - 1;
|
||||
record = &records->entries[LINK_B_RECORDS_COUNT - 1];
|
||||
InitLinkBattleRecord(record);
|
||||
StringCopyN(record->name, namebuf, OT_NAME_LENGTH);
|
||||
record->trainerId = trainerId;
|
||||
}
|
||||
UpdateLinkBattleRecord(&records->entries[i], outcome);
|
||||
SortLinkBattleRecords(records);
|
||||
}
|
||||
|
||||
void InitLinkBattleRecords(void)
|
||||
{
|
||||
InitLinkBattleRecords_(&gSaveBlock2Ptr->linkBattleRecords);
|
||||
}
|
||||
|
||||
void sub_80CD8F8(s32 battlerId)
|
||||
{
|
||||
u16 *wins = &gTrainerCards[battlerId].linkBattleWins;
|
||||
(*wins)++;
|
||||
if (*wins > 9999)
|
||||
*wins = 9999;
|
||||
}
|
||||
|
||||
void sub_80CD924(s32 battlerId)
|
||||
{
|
||||
u16 *losses = &gTrainerCards[battlerId].linkBattleLosses;
|
||||
(*losses)++;
|
||||
if (*losses > 9999)
|
||||
*losses = 9999;
|
||||
}
|
||||
|
||||
void sub_80CD950(s32 battlerId)
|
||||
{
|
||||
switch (gBattleOutcome)
|
||||
{
|
||||
case B_OUTCOME_WON:
|
||||
sub_80CD8F8(battlerId ^ 1);
|
||||
sub_80CD924(battlerId);
|
||||
break;
|
||||
case B_OUTCOME_LOST:
|
||||
sub_80CD924(battlerId ^ 1);
|
||||
sub_80CD8F8(battlerId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80CD98C(s32 battlerId)
|
||||
{
|
||||
if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(UNKNOWN_MAP_00_04) || gSaveBlock1Ptr->location.mapNum != MAP_NUM(UNKNOWN_MAP_00_04))
|
||||
{
|
||||
sub_80CD950(battlerId);
|
||||
sub_80CD854(&gSaveBlock2Ptr->linkBattleRecords, gTrainerCards[battlerId].playerName, gTrainerCards[battlerId].trainerId, gBattleOutcome, gLinkPlayers[battlerId].language);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -841,7 +841,7 @@ gFieldEffectArguments: @ 20386E0
|
||||
gUnknown_2039620: @ 2039620
|
||||
.space 0x4
|
||||
|
||||
gUnknown_2039624: @ 2039624
|
||||
gTrainerCards: @ 2039624
|
||||
.space 0x14
|
||||
|
||||
gUnknown_2039638: @ 2039638
|
||||
|
||||
Reference in New Issue
Block a user