mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
Merge branch 'master' of https://github.com/pret/pokeemerald into LabelOWsProperly
This commit is contained in:
commit
a8afec762b
File diff suppressed because it is too large
Load Diff
@ -576,7 +576,7 @@ _0816266C:
|
||||
b _081626BA
|
||||
.pool
|
||||
_08162698:
|
||||
ldr r3, =gUnknown_08610970
|
||||
ldr r3, =gApprentices
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r1, [r0]
|
||||
ldr r0, =0xfffffe70
|
||||
@ -747,7 +747,7 @@ _081627E8:
|
||||
b _08162836
|
||||
.pool
|
||||
_08162814:
|
||||
ldr r3, =gUnknown_08610970
|
||||
ldr r3, =gApprentices
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r1, [r0]
|
||||
ldr r0, =0xfffffe70
|
||||
@ -1161,7 +1161,7 @@ _08162B64:
|
||||
cmp r0, 0
|
||||
bne _08162BB0
|
||||
ldr r4, =gFacilityClassToPicIndex
|
||||
ldr r3, =gUnknown_08610970
|
||||
ldr r3, =gApprentices
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r1, [r0]
|
||||
ldr r0, =0xfffffe70
|
||||
@ -1184,7 +1184,7 @@ _08162B64:
|
||||
.pool
|
||||
_08162BB0:
|
||||
ldr r5, =gFacilityClassToPicIndex
|
||||
ldr r4, =gUnknown_08610970
|
||||
ldr r4, =gApprentices
|
||||
bl sub_81864A8
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
@ -1301,7 +1301,7 @@ _08162CBC:
|
||||
cmp r0, 0
|
||||
beq _08162CF4
|
||||
ldr r5, =gFacilityClassToTrainerClass
|
||||
ldr r4, =gUnknown_08610970
|
||||
ldr r4, =gApprentices
|
||||
bl sub_81864A8
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
@ -1316,7 +1316,7 @@ _08162CBC:
|
||||
.pool
|
||||
_08162CF4:
|
||||
ldr r4, =gFacilityClassToTrainerClass
|
||||
ldr r3, =gUnknown_08610970
|
||||
ldr r3, =gApprentices
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r1, [r0]
|
||||
ldr r0, =0xfffffe70
|
||||
@ -1407,7 +1407,7 @@ _08162DC0:
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08162DE8
|
||||
ldr r4, =gUnknown_08610970
|
||||
ldr r4, =gApprentices
|
||||
bl sub_81864A8
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
@ -1417,7 +1417,7 @@ _08162DC0:
|
||||
b _08162E08
|
||||
.pool
|
||||
_08162DE8:
|
||||
ldr r3, =gUnknown_08610970
|
||||
ldr r3, =gApprentices
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r1, [r0]
|
||||
ldr r0, =0xfffffe70
|
||||
@ -1578,7 +1578,7 @@ _08162F24:
|
||||
_08162F3E:
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
bl sub_81A1650
|
||||
bl GetApprenticeNameInLanguage
|
||||
adds r1, r0, 0
|
||||
adds r0, r6, 0
|
||||
adds r2, r4, 0
|
||||
@ -1648,7 +1648,7 @@ _08162FC0:
|
||||
b _0816300E
|
||||
.pool
|
||||
_08162FEC:
|
||||
ldr r3, =gUnknown_08610970
|
||||
ldr r3, =gApprentices
|
||||
ldr r0, =gSaveBlock2Ptr
|
||||
ldr r1, [r0]
|
||||
ldr r0, =0xfffffe70
|
||||
@ -1927,7 +1927,7 @@ _08163230:
|
||||
ldr r1, [r6]
|
||||
adds r1, r5
|
||||
lsrs r2, r4, 24
|
||||
bl sub_8068528
|
||||
bl CreateApprenticeMon
|
||||
movs r2, 0x80
|
||||
lsls r2, 17
|
||||
adds r4, r2
|
||||
@ -2831,7 +2831,7 @@ _0816399C:
|
||||
adds r0, 0x70
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_819F99C
|
||||
bl CopyFriendsApprenticeChallengeText
|
||||
_081639A8:
|
||||
pop {r0}
|
||||
bx r0
|
||||
@ -6295,7 +6295,7 @@ _08165812:
|
||||
adds r0, r5
|
||||
ldrb r2, [r0]
|
||||
adds r0, r4, 0
|
||||
bl sub_8068528
|
||||
bl CreateApprenticeMon
|
||||
movs r3, 0xC8
|
||||
lsls r3, 1
|
||||
adds r0, r7, r3
|
||||
@ -6690,7 +6690,7 @@ _08165B10:
|
||||
adds r1, 0x1
|
||||
cmp r1, 0x10
|
||||
bls _08165B10
|
||||
bl sub_819FA5C
|
||||
bl ResetApprenticeStruct
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8165B08
|
||||
|
@ -6,529 +6,6 @@
|
||||
|
||||
.section .rodata
|
||||
|
||||
|
||||
.align 2 @ struct, eight bytes x6 for names in different languages, then 0x28 more bytes of data
|
||||
gUnknown_08610970:: @ 8610970
|
||||
.string "サダヒロ$", 8
|
||||
.string "ALANN$", 8
|
||||
.string "ALAIN$", 8
|
||||
.string "ADELFO$", 8
|
||||
.string "CLAUS$", 8
|
||||
.string "TEO$", 8
|
||||
.byte 0xC9, 0xBD
|
||||
.2byte 0x43
|
||||
.2byte SPECIES_BEAUTIFLY, SPECIES_DUSTOX, SPECIES_ILLUMISE, SPECIES_SHIFTRY, SPECIES_BRELOOM, SPECIES_NINJASK, SPECIES_SHEDINJA, SPECIES_PINSIR, SPECIES_HERACROSS, SPECIES_VOLBEAT, 0
|
||||
.byte 0x1D, 8, 0x3e, 20, 0, 12, 1, 10, 0x30, 6, 0x44, 20, 0, 0
|
||||
.string "ヒロオ$", 8
|
||||
.string "LIONEL$", 8
|
||||
.string "LIONEL$", 8
|
||||
.string "CAIO$", 8
|
||||
.string "LUDWIG$", 8
|
||||
.string "LEO$", 8
|
||||
.byte 0x9, 0xCF
|
||||
.2byte 0x2B
|
||||
.2byte SPECIES_SWELLOW, SPECIES_SWALOT, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_TORKOAL, SPECIES_HARIYAMA, SPECIES_MIGHTYENA, SPECIES_LUDICOLO, SPECIES_CRAWDAUNT, SPECIES_WHISCASH, 1
|
||||
.byte 0x38, 12, 1, 10, 0x30, 6, 6, 10, 0x20, 0x10, 0x13, 0x22, 0, 0
|
||||
.string "ケイジ$", 8
|
||||
.string "SONNY$", 8
|
||||
.string "HERVE$", 8
|
||||
.string "FEDRO$", 8
|
||||
.string "WENZEL$", 8
|
||||
.string "SANTI$", 8
|
||||
.byte 0x34, 0x2E
|
||||
.2byte 0x26
|
||||
.2byte SPECIES_LINOONE, SPECIES_MIGHTYENA, SPECIES_WHISCASH, SPECIES_ZANGOOSE, SPECIES_SEVIPER, SPECIES_NINETALES, SPECIES_KECLEON, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_MACHAMP, 2
|
||||
.byte 1, 10, 10, 0x16, 0x15, 14, 0x30, 6, 0x3b, 12, 0x4, 12, 0, 0
|
||||
.string "ユラ$", 8
|
||||
.string "LAYLA$", 8
|
||||
.string "LAYLA$", 8
|
||||
.string "ASTRID$", 8
|
||||
.string "SONJA$", 8
|
||||
.string "LOLA$", 8
|
||||
.byte 0xEF, 0x84
|
||||
.2byte 0x47
|
||||
.2byte SPECIES_SWALOT, SPECIES_XATU, SPECIES_ALTARIA, SPECIES_GOLDUCK, SPECIES_FLYGON, SPECIES_ALAKAZAM, SPECIES_GARDEVOIR, SPECIES_WAILORD, SPECIES_GRUMPIG, SPECIES_MIGHTYENA, 3
|
||||
.byte 11, 16, 15, 0x1e, 0x39, 16, 0x21, 0x14, 0x3, 12, 0xff, 0xff, 0, 0
|
||||
.string "ヨウカ$", 8
|
||||
.string "MACY$", 8
|
||||
.string "AMELIE$", 8
|
||||
.string "CLEO$", 8
|
||||
.string "MARIA$", 8
|
||||
.string "ELISA$", 8
|
||||
.byte 0x43, 0x1E
|
||||
.2byte 0x27
|
||||
.2byte SPECIES_WIGGLYTUFF, SPECIES_LINOONE, SPECIES_KINGDRA, SPECIES_DELCATTY, SPECIES_RAICHU, SPECIES_FEAROW, SPECIES_STARMIE, SPECIES_MEDICHAM, SPECIES_SHIFTRY, SPECIES_BEAUTIFLY, 4
|
||||
.byte 15, 0x1e, 0x14, 16, 6, 16, 15, 0x28, 0x1c, 0x1c, 0x13, 0x1c, 0, 0
|
||||
.string "ヤスシ$", 8
|
||||
.string "DONTE$", 8
|
||||
.string "BRAHIM$", 8
|
||||
.string "GLAUCO$", 8
|
||||
.string "JOSEF$", 8
|
||||
.string "ROQUE$", 8
|
||||
.byte 0x9F, 0x37
|
||||
.2byte 0x30
|
||||
.2byte SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_AGGRON, SPECIES_MAGNETON, SPECIES_MACHAMP, SPECIES_ARMALDO, SPECIES_HERACROSS, SPECIES_NOSEPASS, SPECIES_EXPLOUD, SPECIES_MIGHTYENA, 5
|
||||
.byte 0x29, 0x0A, 0x08, 0x14, 0x2F, 0x10, 0x38, 0x16, 0x20, 0x08, 0x00, 0x0C, 0x00, 0
|
||||
.string "ミサオ$", 8
|
||||
.string "AMIRA$", 8
|
||||
.string "LAURE$", 8
|
||||
.string "DAFNE$", 8
|
||||
.string "AMELIE$", 8
|
||||
.string "LARA$", 8
|
||||
.byte 0x55, 0xF5
|
||||
.2byte 0x31
|
||||
.2byte SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_MAGNETON, SPECIES_MEDICHAM, SPECIES_MIGHTYENA, SPECIES_GLALIE, SPECIES_GOLEM, SPECIES_ELECTRODE, SPECIES_PELIPPER, SPECIES_SHARPEDO, 6
|
||||
.byte 0x0B, 0x0C, 0x3E, 0x12, 0x00, 0x0C, 0x31, 0x0A, 0x30, 0x14, 0x00, 0x0C, 0x00, 0x00
|
||||
.string "カズサ$", 8
|
||||
.string "KALI$", 8
|
||||
.string "JODIE$", 8
|
||||
.string "ILENIA$", 8
|
||||
.string "KARO$", 8
|
||||
.string "ELSA$", 8
|
||||
.byte 0x26, 0x8D
|
||||
.2byte 0x14
|
||||
.2byte SPECIES_NINETALES, SPECIES_ALAKAZAM, SPECIES_SCEPTILE, SPECIES_SALAMENCE, SPECIES_GOLDUCK, SPECIES_MAWILE, SPECIES_WEEZING, SPECIES_LANTURN, SPECIES_GARDEVOIR, SPECIES_MILOTIC, 7
|
||||
.byte 0x06, 0x0A, 0x20, 0x06, 0x1F, 0x0A, 0x02, 0x0A, 0x03, 0x0C, 0xFF, 0xFF, 0x00, 0x00
|
||||
.string "スミレ$", 8
|
||||
.string "ANNIE$", 8
|
||||
.string "ANNIE$", 8
|
||||
.string "IMELDA$", 8
|
||||
.string "INES$", 8
|
||||
.string "ROSA$", 8
|
||||
.byte 0xC, 0x80
|
||||
.2byte 0xD
|
||||
.2byte SPECIES_SCEPTILE, SPECIES_VILEPLUME, SPECIES_BELLOSSOM, SPECIES_ROSELIA, SPECIES_CORSOLA, SPECIES_FLYGON, SPECIES_BRELOOM, SPECIES_MILOTIC, SPECIES_ALTARIA, SPECIES_CRADILY, 8
|
||||
.byte 0x22, 0x1E, 0x33, 0x04, 0x0E, 0x02, 0x02, 0x0A, 0x1E, 0x10, 0x00, 0x0C, 0x00, 0x00
|
||||
.string "アキノリ$", 8
|
||||
.string "DILLEN$", 8
|
||||
.string "RENE$", 8
|
||||
.string "INDRO$", 8
|
||||
.string "DETLEF$", 8
|
||||
.string "PEDRO$", 8
|
||||
.byte 0x9f, 0x46
|
||||
.2byte 0
|
||||
.2byte SPECIES_SKARMORY, SPECIES_GOLEM, SPECIES_BLAZIKEN, SPECIES_CAMERUPT, SPECIES_DONPHAN, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_TROPIUS, SPECIES_SOLROCK, SPECIES_RHYDON, 9
|
||||
.byte 0x3D, 0x0A, 0x11, 0x10, 0x1E, 0x0E, 0x1C, 0x20, 0x04, 0x0C, 0xFF, 0xFF, 0x00, 0x00
|
||||
.string "トウゾウ$", 8
|
||||
.string "DALLAS$", 8
|
||||
.string "BRUNO$", 8
|
||||
.string "LEARCO$", 8
|
||||
.string "ANSGAR$", 8
|
||||
.string "MANOLO$", 8
|
||||
.byte 0xFC, 0x71
|
||||
.2byte 0x2D
|
||||
.2byte SPECIES_SEAKING, SPECIES_STARMIE, SPECIES_GOLDUCK, SPECIES_TENTACRUEL, SPECIES_OCTILLERY, SPECIES_GOREBYSS, SPECIES_GLALIE, SPECIES_WAILORD, SPECIES_SHARPEDO, SPECIES_KINGDRA, 10
|
||||
.byte 0x05, 0x0A, 0x06, 0x06, 0x0E, 0x16, 0x14, 0x0A, 0x00, 0x0C, 0xFF, 0xFF, 0x00, 0x00
|
||||
.string "セイヤ$", 8
|
||||
.string "FRANK$", 8
|
||||
.string "FRANK$", 8
|
||||
.string "OLINDO$", 8
|
||||
.string "FRANK$", 8
|
||||
.string "MAURO$", 8
|
||||
.byte 0x9E, 0xA3
|
||||
.2byte 0x3A
|
||||
.2byte SPECIES_QUAGSIRE, SPECIES_STARMIE, SPECIES_PELIPPER, SPECIES_CRAWDAUNT, SPECIES_WAILORD, SPECIES_GYARADOS, SPECIES_SWAMPERT, SPECIES_LANTURN, SPECIES_WHISCASH, SPECIES_SHUCKLE, 11
|
||||
.byte 0x0E, 0x28, 0x3D, 0x10, 0x0F, 0x24, 0x14, 0x0A, 0x23, 0x1E, 0x24, 0x10, 0x00, 0x00
|
||||
.string "リュウジ$", 8
|
||||
.string "LAMONT$", 8
|
||||
.string "XAV$", 8
|
||||
.string "ORFEO$", 8
|
||||
.string "JÜRGEN$", 8
|
||||
.string "JORGE$", 8
|
||||
.byte 0x90, 0xE5
|
||||
.2byte 0x19
|
||||
.2byte SPECIES_ABSOL, SPECIES_CROBAT, SPECIES_EXPLOUD, SPECIES_MAGNETON, SPECIES_SHARPEDO, SPECIES_MANECTRIC, SPECIES_METAGROSS, SPECIES_ELECTRODE, SPECIES_NOSEPASS, SPECIES_WEEZING, 12
|
||||
.byte 0x20, 0x10, 0x2E, 0x06, 0x0B, 0x10, 0x22, 0x1E, 0x0F, 0x1E, 0x0B, 0x10, 0x00, 0x00
|
||||
.string "カツアキ$", 8
|
||||
.string "TYRESE$", 8
|
||||
.string "ANDY$", 8
|
||||
.string "PARIDE$", 8
|
||||
.string "DAVID$", 8
|
||||
.string "CHICHO$", 8
|
||||
.byte 0x18, 0xD0
|
||||
.2byte 10
|
||||
.2byte SPECIES_BLAZIKEN, SPECIES_GOLEM, SPECIES_MACHAMP, SPECIES_RHYDON, SPECIES_HARIYAMA, SPECIES_AGGRON, SPECIES_MEDICHAM, SPECIES_ZANGOOSE, SPECIES_VIGOROTH, SPECIES_SLAKING, 13
|
||||
.byte 0x29, 0x0A, 0x3A, 0x06, 0x15, 0x0E, 0x35, 0x14, 0x34, 0x10, 0x1E, 0x06, 0x00, 0x00
|
||||
.string "トシミツ$", 8
|
||||
.string "DANTE$", 8
|
||||
.string "DANTE$", 8
|
||||
.string "RAOUL$", 8
|
||||
.string "LOTHAR$", 8
|
||||
.string "PABLO$", 8
|
||||
.byte 0x75, 0xBC
|
||||
.2byte 14
|
||||
.2byte SPECIES_SCEPTILE, SPECIES_SANDSLASH, SPECIES_FLYGON, SPECIES_CLAYDOL, SPECIES_ARMALDO, SPECIES_CROBAT, SPECIES_CRADILY, SPECIES_SOLROCK, SPECIES_LUNATONE, SPECIES_GOLEM, 14
|
||||
.byte 0x01, 0x0A, 0x17, 0x10, 0x43, 0x12, 0x22, 0x1E, 0x0B, 0x10, 0x0F, 0x28, 0x00, 0x00
|
||||
.string "ローウェン$", 8
|
||||
.string "ARTURO$", 8
|
||||
.string "ARTURO$", 8
|
||||
.string "ROMOLO$", 8
|
||||
.string "BRIAN$", 8
|
||||
.string "ARTURO$", 8
|
||||
.byte 0x2, 0xFA
|
||||
.2byte 0x20
|
||||
.2byte SPECIES_ABSOL, SPECIES_MIGHTYENA, SPECIES_ALAKAZAM, SPECIES_BANETTE, SPECIES_NINETALES, SPECIES_CLAYDOL, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_WALREIN, SPECIES_DUSCLOPS, 15
|
||||
.byte 0x0F, 0x1E, 0x04, 0x14, 0x2F, 0x10, 0x06, 0x10, 0x20, 0x10, 0x03, 0x0E, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_08610EF0:: @ 8610EF0
|
||||
.4byte gText_082B7229
|
||||
.4byte gText_082B731C
|
||||
.4byte gText_082B735B
|
||||
.4byte gText_082B7423
|
||||
.4byte gText_082B74C1
|
||||
.4byte gText_082B756F
|
||||
.4byte gText_082B75B2
|
||||
.4byte gText_082B763F
|
||||
.4byte gText_082B76AC
|
||||
.4byte gText_082B7772
|
||||
.4byte gText_082B77CE
|
||||
.4byte gText_082B7871
|
||||
.4byte gText_082B78D4
|
||||
.4byte gText_082B7B1A
|
||||
.4byte gText_082B7C13
|
||||
.4byte gText_082B7D18
|
||||
.4byte gText_082B7DD4
|
||||
.4byte gText_082B7EE5
|
||||
.4byte gText_082B7F35
|
||||
.4byte gText_082B7FE8
|
||||
.4byte gText_082B8087
|
||||
.4byte gText_082B822B
|
||||
.4byte gText_082B8286
|
||||
.4byte gText_082B8356
|
||||
.4byte gText_082B83CE
|
||||
.4byte gText_082B84FC
|
||||
.4byte gText_082B8559
|
||||
.4byte gText_082B8656
|
||||
.4byte gText_082B86EA
|
||||
.4byte gText_082B87DA
|
||||
.4byte gText_082B887C
|
||||
.4byte gText_082B8957
|
||||
.4byte gText_082B89C6
|
||||
.4byte gText_082B8ACF
|
||||
.4byte gText_082B8B66
|
||||
.4byte gText_082B8C20
|
||||
.4byte gText_082B8CAA
|
||||
.4byte gText_082B8DD3
|
||||
.4byte gText_082B8E24
|
||||
.4byte gText_082B8ED5
|
||||
.4byte gText_082B8F45
|
||||
.4byte gText_082B905F
|
||||
.4byte gText_082B910E
|
||||
.4byte gText_082B9204
|
||||
.4byte gText_082B929C
|
||||
.4byte gText_082B9438
|
||||
.4byte gText_082B9488
|
||||
.4byte gText_082B9564
|
||||
.4byte gText_082B95D8
|
||||
.4byte gText_082B9763
|
||||
.4byte gText_082B97E5
|
||||
.4byte gText_082B989A
|
||||
.4byte gText_082B992D
|
||||
.4byte gText_082B9A84
|
||||
.4byte gText_082B9AB9
|
||||
.4byte gText_082B9B76
|
||||
.4byte gText_082B9BF2
|
||||
.4byte gText_082B9D83
|
||||
.4byte gText_082B9DF9
|
||||
.4byte gText_082B9EAA
|
||||
.4byte gText_082B9F55
|
||||
.4byte gText_082BA084
|
||||
.4byte gText_082BA11D
|
||||
.4byte gText_082BA1F3
|
||||
|
||||
.align 2
|
||||
gUnknown_08610FF0:: @ 8610FF0
|
||||
.4byte gText_082BE50D
|
||||
.4byte gText_082BE5F5
|
||||
.4byte gText_082BE679
|
||||
.4byte gText_082BE71E
|
||||
.4byte gText_082BE762
|
||||
.4byte gText_082BE7F8
|
||||
.4byte gText_082BE850
|
||||
.4byte gText_082BE99C
|
||||
.4byte gText_082BEA1B
|
||||
.4byte gText_082BEAE9
|
||||
.4byte gText_082BEB72
|
||||
.4byte gText_082BEC8E
|
||||
.4byte gText_082BED16
|
||||
.4byte gText_082BEE29
|
||||
.4byte gText_082BEEB4
|
||||
.4byte gText_082BEFE2
|
||||
.4byte gText_082BF04E
|
||||
.4byte gText_082BF11D
|
||||
.4byte gText_082BF1A8
|
||||
.4byte gText_082BF268
|
||||
.4byte gText_082BF2D1
|
||||
.4byte gText_082BF3CF
|
||||
.4byte gText_082BF46A
|
||||
.4byte gText_082BF551
|
||||
.4byte gText_082BF5C3
|
||||
.4byte gText_082BF6E5
|
||||
.4byte gText_082BF773
|
||||
.4byte gText_082BF869
|
||||
.4byte gText_082BF8DD
|
||||
.4byte gText_082BF9BA
|
||||
.4byte gText_082BFA5A
|
||||
.4byte gText_082BFB4E
|
||||
|
||||
.align 2
|
||||
gUnknown_08611070:: @ 8611070
|
||||
.4byte gText_082BA2A3
|
||||
.4byte gText_082BA34E
|
||||
.4byte gText_082BA380
|
||||
.4byte gText_082BA3D2
|
||||
.4byte gText_082BA448
|
||||
.4byte gText_082BA4D3
|
||||
.4byte gText_082BA58C
|
||||
.4byte gText_082BA5BF
|
||||
.4byte gText_082BA5F3
|
||||
.4byte gText_082BA635
|
||||
.4byte gText_082BA6E6
|
||||
.4byte gText_082BA742
|
||||
.4byte gText_082BA770
|
||||
.4byte gText_082BA78F
|
||||
.4byte gText_082BA7D8
|
||||
.4byte gText_082BA867
|
||||
.4byte gText_082BA96B
|
||||
.4byte gText_082BA9B7
|
||||
.4byte gText_082BAA1B
|
||||
.4byte gText_082BAA81
|
||||
.4byte gText_082BAB22
|
||||
.4byte gText_082BAC43
|
||||
.4byte gText_082BAC78
|
||||
.4byte gText_082BAD17
|
||||
.4byte gText_082BADB6
|
||||
.4byte gText_082BAE36
|
||||
.4byte gText_082BAF4E
|
||||
.4byte gText_082BAF8F
|
||||
.4byte gText_082BAFDB
|
||||
.4byte gText_082BB05F
|
||||
.4byte gText_082BB0D4
|
||||
.4byte gText_082BB18C
|
||||
.4byte gText_082BB1CE
|
||||
.4byte gText_082BB242
|
||||
.4byte gText_082BB2D9
|
||||
.4byte gText_082BB370
|
||||
.4byte gText_082BB4C3
|
||||
.4byte gText_082BB4FB
|
||||
.4byte gText_082BB575
|
||||
.4byte gText_082BB5E1
|
||||
.4byte gText_082BB656
|
||||
.4byte gText_082BB6E5
|
||||
.4byte gText_082BB72C
|
||||
.4byte gText_082BB7A2
|
||||
.4byte gText_082BB84A
|
||||
.4byte gText_082BB8CD
|
||||
.4byte gText_082BB970
|
||||
.4byte gText_082BB9AE
|
||||
.4byte gText_082BBA05
|
||||
.4byte gText_082BBA6C
|
||||
.4byte gText_082BBB01
|
||||
.4byte gText_082BBC1C
|
||||
.4byte gText_082BBC4B
|
||||
.4byte gText_082BBCF6
|
||||
.4byte gText_082BBD90
|
||||
.4byte gText_082BBE0B
|
||||
.4byte gText_082BBEE5
|
||||
.4byte gText_082BBF25
|
||||
.4byte gText_082BBFA4
|
||||
.4byte gText_082BC024
|
||||
.4byte gText_082BC0C8
|
||||
.4byte gText_082BC213
|
||||
.4byte gText_082BC247
|
||||
.4byte gText_082BC2DD
|
||||
.4byte gText_082BC373
|
||||
.4byte gText_082BC40E
|
||||
.4byte gText_082BC514
|
||||
.4byte gText_082BC555
|
||||
.4byte gText_082BC5CE
|
||||
.4byte gText_082BC666
|
||||
.4byte gText_082BC714
|
||||
.4byte gText_082BC808
|
||||
.4byte gText_082BC84D
|
||||
.4byte gText_082BC8EA
|
||||
.4byte gText_082BC984
|
||||
.4byte gText_082BCA4D
|
||||
.4byte gText_082BCB75
|
||||
.4byte gText_082BCBA6
|
||||
.4byte gText_082BCBFC
|
||||
.4byte gText_082BCCA4
|
||||
|
||||
.align 2
|
||||
gUnknown_086111B0:: @ 86111B0
|
||||
.4byte gText_082BFBF2
|
||||
.4byte gText_082BFCAE
|
||||
.4byte gText_082BFD26
|
||||
.4byte gText_082BFDB1
|
||||
.4byte gText_082BFE24
|
||||
.4byte gText_082BFEAD
|
||||
.4byte gText_082BFF0A
|
||||
.4byte gText_082C0032
|
||||
.4byte gText_082C0090
|
||||
.4byte gText_082C016E
|
||||
.4byte gText_082C01F7
|
||||
.4byte gText_082C034C
|
||||
.4byte gText_082C03CA
|
||||
.4byte gText_082C046E
|
||||
.4byte gText_082C04F9
|
||||
.4byte gText_082C0598
|
||||
.4byte gText_082C0602
|
||||
.4byte gText_082C06D8
|
||||
.4byte gText_082C074A
|
||||
.4byte gText_082C0809
|
||||
.4byte gText_082C086E
|
||||
.4byte gText_082C0982
|
||||
.4byte gText_082C0A1D
|
||||
.4byte gText_082C0AFD
|
||||
.4byte gText_082C0B6F
|
||||
.4byte gText_082C0C7D
|
||||
.4byte gText_082C0D0B
|
||||
.4byte gText_082C0DFE
|
||||
.4byte gText_082C0E71
|
||||
.4byte gText_082C0F6D
|
||||
.4byte gText_082C1003
|
||||
.4byte gText_082C1122
|
||||
|
||||
.align 2
|
||||
gUnknown_08611230:: @ 8611230
|
||||
.4byte gText_082BCD68
|
||||
.4byte gText_082BCE64
|
||||
.4byte gText_082BCEF2
|
||||
.4byte gText_082BCF61
|
||||
.4byte gText_082BCFA1
|
||||
.4byte gText_082BD03C
|
||||
.4byte gText_082BD06D
|
||||
.4byte gText_082BD18A
|
||||
.4byte gText_082BD222
|
||||
.4byte gText_082BD325
|
||||
.4byte gText_082BD3B1
|
||||
.4byte gText_082BD493
|
||||
.4byte gText_082BD51C
|
||||
.4byte gText_082BD609
|
||||
.4byte gText_082BD697
|
||||
.4byte gText_082BD797
|
||||
.4byte gText_082BD806
|
||||
.4byte gText_082BD8F5
|
||||
.4byte gText_082BD9BE
|
||||
.4byte gText_082BDAE1
|
||||
.4byte gText_082BDB4E
|
||||
.4byte gText_082BDC6B
|
||||
.4byte gText_082BDD0D
|
||||
.4byte gText_082BDDEC
|
||||
.4byte gText_082BDE68
|
||||
.4byte gText_082BDF4D
|
||||
.4byte gText_082BDFD8
|
||||
.4byte gText_082BE0FD
|
||||
.4byte gText_082BE189
|
||||
.4byte gText_082BE2A5
|
||||
.4byte gText_082BE33E
|
||||
.4byte gText_082BE46C
|
||||
|
||||
.align 2
|
||||
gUnknown_086112B0:: @ 86112B0
|
||||
.4byte gText_082C11D1
|
||||
.4byte gText_082C12D5
|
||||
.4byte gText_082C13AB
|
||||
.4byte gText_082C1444
|
||||
.4byte gText_082C1501
|
||||
.4byte gText_082C15B6
|
||||
.4byte gText_082C165E
|
||||
.4byte gText_082C174F
|
||||
.4byte gText_082C1862
|
||||
.4byte gText_082C19A0
|
||||
.4byte gText_082C1A76
|
||||
.4byte gText_082C1C16
|
||||
.4byte gText_082C1CF5
|
||||
.4byte gText_082C1DC1
|
||||
.4byte gText_082C1EDC
|
||||
.4byte gText_082C1FEC
|
||||
.4byte gText_082C20D1
|
||||
.4byte gText_082C21FF
|
||||
.4byte gText_082C231C
|
||||
.4byte gText_082C2407
|
||||
.4byte gText_082C24B5
|
||||
.4byte gText_082C25B1
|
||||
.4byte gText_082C2707
|
||||
.4byte gText_082C27D4
|
||||
.4byte gText_082C28D6
|
||||
.4byte gText_082C2A0B
|
||||
.4byte gText_082C2B50
|
||||
.4byte gText_082C2C77
|
||||
.4byte gText_082C2D67
|
||||
.4byte gText_082C2E41
|
||||
.4byte gText_082C2EF5
|
||||
.4byte gText_082C3023
|
||||
|
||||
.align 2
|
||||
gUnknown_08611330:: @ 8611330
|
||||
.4byte gText_082B6EA5
|
||||
.4byte gText_082B6EEC
|
||||
.4byte gText_082B6F16
|
||||
.4byte gText_082B6F4C
|
||||
.4byte gText_082B6F92
|
||||
.4byte gText_082B6FC9
|
||||
.4byte gText_082B700C
|
||||
.4byte gText_082B703A
|
||||
.4byte gText_082B706A
|
||||
.4byte gText_082B709C
|
||||
.4byte gText_082B70CC
|
||||
.4byte gText_082B710A
|
||||
.4byte gText_082B714D
|
||||
.4byte gText_082B7185
|
||||
.4byte gText_082B71C1
|
||||
.4byte gText_082B71F9
|
||||
|
||||
gUnknown_08611370:: @ 8611370
|
||||
.byte 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00
|
||||
.byte 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01
|
||||
.byte 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01
|
||||
.byte 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01
|
||||
.byte 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01
|
||||
.byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
|
||||
.byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01
|
||||
.byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
|
||||
.byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
|
||||
.byte 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
|
||||
.byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01
|
||||
.byte 0x01, 0x01, 0x01
|
||||
|
||||
gUnknown_086114D3:: @ 86114D3
|
||||
.byte 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_086114E0:: @ 86114E0
|
||||
.4byte sub_81A093C
|
||||
.4byte sub_81A0964
|
||||
.4byte sub_81A0978
|
||||
.4byte sub_819FC60
|
||||
.4byte sub_81A0984
|
||||
.4byte sub_81A0990
|
||||
.4byte sub_81A09D0
|
||||
.4byte sub_81A0A20
|
||||
.4byte sub_81A0C9C
|
||||
.4byte sub_81A087C
|
||||
.4byte sub_81A1638
|
||||
.4byte sub_81A0CC0
|
||||
.4byte sub_81A09B4
|
||||
.4byte sub_81A0D40
|
||||
.4byte sub_81A0DD4
|
||||
.4byte sub_81A0FE4
|
||||
.4byte sub_81A0FFC
|
||||
.4byte sub_81A0D80
|
||||
.4byte sub_81A11F8
|
||||
.4byte sub_81A1218
|
||||
.4byte sub_81A1224
|
||||
.4byte sub_81A1438
|
||||
.4byte sub_81A150C
|
||||
.4byte sub_81A15A4
|
||||
.4byte sub_81A1644
|
||||
.4byte sub_81A1370
|
||||
|
||||
.align 2
|
||||
gUnknown_08611548:: @ 8611548
|
||||
.byte 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09
|
||||
|
||||
.align 2
|
||||
gUnknown_08611550:: @ 8611550
|
||||
.byte 0x23, 0x46, 0x23, 0x01, 0x04, 0x09, 0x05, 0x00, 0x15, 0x2a, 0x15, 0x01, 0x1c, 0x38, 0x1c, 0x01, 0x15, 0x2a, 0x15, 0x01, 0x1c, 0x8c, 0x38, 0x01, 0x15, 0x46, 0x23, 0x00
|
||||
|
2979
data/event_scripts.s
2979
data/event_scripts.s
File diff suppressed because it is too large
Load Diff
@ -4,7 +4,7 @@ BattleFrontier_BattleTowerLobby_EventObjects: @ 853B638
|
||||
object_event 3, EVENT_OBJ_GFX_WOMAN_7, 0, 17, 8, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_23EFB5, 0
|
||||
object_event 4, EVENT_OBJ_GFX_BOY_1, 0, 15, 9, 3, MOVEMENT_TYPE_WANDER_AROUND, 1, 1, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_23EFBE, 0
|
||||
object_event 5, EVENT_OBJ_GFX_REPORTER_F, 0, 11, 9, 3, MOVEMENT_TYPE_FACE_RIGHT, 0, 0, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_28CB96, 918
|
||||
object_event 6, EVENT_OBJ_GFX_HIPSTER, 0, 1, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_2B688D, 701
|
||||
object_event 6, EVENT_OBJ_GFX_HIPSTER, 0, 1, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 1, 1, 0, 0, EventScript_Apprentice, 701
|
||||
object_event 7, EVENT_OBJ_GFX_TEALA, 0, 10, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_23EA9F, 0
|
||||
object_event 8, EVENT_OBJ_GFX_TEALA, 0, 14, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_23EC08, 0
|
||||
object_event 9, EVENT_OBJ_GFX_TEALA, 0, 18, 5, 3, MOVEMENT_TYPE_FACE_DOWN, 0, 0, 0, 0, BattleFrontier_BattleTowerLobby_EventScript_23ED74, 0
|
||||
|
@ -12,7 +12,7 @@ BattleFrontier_BattleTowerLobby_MapScript1_23E690: @ 823E690
|
||||
BattleFrontier_BattleTowerLobby_MapScript1_23E694: @ 823E694
|
||||
call BattleFrontier_BattleTowerLobby_EventScript_28CC84
|
||||
setvar VAR_0x8004, 10
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
compare VAR_0x8004, 0
|
||||
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23E6B5
|
||||
checkflag FLAG_0x934
|
||||
@ -21,7 +21,7 @@ BattleFrontier_BattleTowerLobby_MapScript1_23E694: @ 823E694
|
||||
BattleFrontier_BattleTowerLobby_EventScript_23E6B5:: @ 823E6B5
|
||||
clearflag FLAG_0x2BD
|
||||
setvar VAR_0x8004, 23
|
||||
special sub_81A085C
|
||||
special CallApprenticeFunction
|
||||
|
||||
BattleFrontier_BattleTowerLobby_EventScript_23E6C0:: @ 823E6C0
|
||||
end
|
||||
|
2869
data/scripts/apprentice.inc
Normal file
2869
data/scripts/apprentice.inc
Normal file
File diff suppressed because it is too large
Load Diff
@ -415,7 +415,7 @@ gSpecials:: @ 81DBA64
|
||||
def_special sub_818E990
|
||||
def_special PutLilycoveContestLadyShowOnTheAir
|
||||
def_special sub_813B880
|
||||
def_special sub_81A085C
|
||||
def_special CallApprenticeFunction
|
||||
def_special ShouldTryGetTrainerScript
|
||||
def_special ShowMapNamePopup
|
||||
def_special ShowMapNamePopup
|
||||
|
24
include/apprentice.h
Normal file
24
include/apprentice.h
Normal file
@ -0,0 +1,24 @@
|
||||
#ifndef GUARD_APPRENTICE_H
|
||||
#define GUARD_APPRENTICE_H
|
||||
|
||||
#define APPRENTICE_SPECIES_COUNT 10
|
||||
|
||||
struct ApprenticeTrainer
|
||||
{
|
||||
u8 name[6][PLAYER_NAME_LENGTH + 1]; // For all six languages.
|
||||
u16 otId;
|
||||
u8 facilityClass;
|
||||
u16 species[APPRENTICE_SPECIES_COUNT];
|
||||
u8 rest[14];
|
||||
};
|
||||
|
||||
extern const struct ApprenticeTrainer gApprentices[];
|
||||
|
||||
void CopyFriendsApprenticeChallengeText(u8 saveblockApprenticeId);
|
||||
void Apprentice_EnableBothScriptContexts(void);
|
||||
void ResetApprenticeStruct(struct Apprentice *apprentice);
|
||||
void ResetAllApprenticeData(void);
|
||||
void CallApprenticeFunction(void);
|
||||
const u8 *GetApprenticeNameInLanguage(u32 apprenticeId, s32 language);
|
||||
|
||||
#endif // GUARD_APPRENTICE_H
|
@ -11,7 +11,6 @@ void sub_81A895C(void);
|
||||
u16 sub_81A89A0(u8);
|
||||
void sub_81A8AF8(void);
|
||||
bool8 InBattlePike(void);
|
||||
void sub_819FA50(void);
|
||||
void sub_81AA078(u16*, u8);
|
||||
void sub_81A4C30(void);
|
||||
bool8 sub_81A6BF4(void);
|
||||
|
22
include/constants/apprentice.h
Normal file
22
include/constants/apprentice.h
Normal file
@ -0,0 +1,22 @@
|
||||
#ifndef GUARD_CONSTANTS_APPRENTICE_H
|
||||
#define GUARD_CONSTANTS_APPRENTICE_H
|
||||
|
||||
#define APPRENTICE_ASK_WHICH_LEVEL 0
|
||||
#define APPRENTICE_ASK_3SPECIES 1
|
||||
#define APPRENTICE_ASK_2SPECIES 2
|
||||
#define APPRENTICE_ASK_MOVES 3
|
||||
#define APPRENTICE_ASK_GIVE 4
|
||||
#define APPRENTICE_ASK_YES_NO 6
|
||||
|
||||
#define APPRENTICE_BUFF_SPECIES1 0
|
||||
#define APPRENTICE_BUFF_SPECIES2 1
|
||||
#define APPRENTICE_BUFF_SPECIES3 2
|
||||
#define APPRENTICE_BUFF_MOVE1 3
|
||||
#define APPRENTICE_BUFF_MOVE2 4
|
||||
#define APPRENTICE_BUFF_ITEM 5
|
||||
#define APPRENTICE_BUFF_NAME 6
|
||||
#define APPRENTICE_BUFF_EASY_CHAT 7
|
||||
#define APPRENTICE_BUFF_LEVEL 8
|
||||
#define APPRENTICE_BUFF_SPECIES4 9
|
||||
|
||||
#endif // GUARD_CONSTANTS_APPRENTICE_H
|
@ -176,12 +176,14 @@ enum
|
||||
OPTIONS_BATTLE_STYLE_SET
|
||||
};
|
||||
|
||||
struct Coords8 {
|
||||
struct Coords8
|
||||
{
|
||||
s8 x;
|
||||
s8 y;
|
||||
};
|
||||
|
||||
struct UCoords8 {
|
||||
struct UCoords8
|
||||
{
|
||||
u8 x;
|
||||
u8 y;
|
||||
};
|
||||
@ -293,11 +295,25 @@ struct UnknownSaveBlock2Struct
|
||||
u8 field_EB;
|
||||
}; // sizeof = 0xEC
|
||||
|
||||
struct UnkRecordMixingStruct
|
||||
struct ApprenticeMon
|
||||
{
|
||||
u8 field_0[0x34];
|
||||
u16 species;
|
||||
u16 moves[4];
|
||||
u16 item;
|
||||
};
|
||||
|
||||
struct Apprentice
|
||||
{
|
||||
u8 id:5;
|
||||
u8 lvlMode:2; // + 1
|
||||
u8 field_1;
|
||||
u8 number;
|
||||
struct ApprenticeMon monData[3];
|
||||
u16 easyChatWords[6];
|
||||
u8 playerId[4];
|
||||
u8 field_38[10];
|
||||
u8 playerName[PLAYER_NAME_LENGTH];
|
||||
u8 language;
|
||||
u32 unk40;
|
||||
};
|
||||
|
||||
struct UnknownPokemonStruct
|
||||
@ -464,6 +480,28 @@ struct BattleFrontier
|
||||
/*0xEFC*/ struct FrontierMonData field_EFC[3];
|
||||
};
|
||||
|
||||
struct Sav2_B8
|
||||
{
|
||||
u8 unk0_0:2;
|
||||
u8 unk0_1:2;
|
||||
u8 unk0_2:2;
|
||||
u8 unk0_3:2;
|
||||
u16 unk2;
|
||||
};
|
||||
|
||||
struct PlayersApprentice
|
||||
{
|
||||
/*0xB0*/ u8 id;
|
||||
/*0xB1*/ u8 activeLvlMode:2; // +1, 0 means not active
|
||||
/*0xB1*/ u8 field_B1_1:4;
|
||||
/*0xB1*/ u8 field_B1_2:2;
|
||||
/*0xB2*/ u8 field_B2_0:3;
|
||||
/*0xB2*/ u8 field_B2_1:2;
|
||||
/*0xB3*/ u8 field_B3;
|
||||
/*0xB4*/ u8 monIds[3];
|
||||
/*0xB8*/ struct Sav2_B8 field_B8[9];
|
||||
};
|
||||
|
||||
struct SaveBlock2
|
||||
{
|
||||
/*0x00*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||
@ -487,14 +525,8 @@ struct SaveBlock2
|
||||
/*0xA0*/ struct Time lastBerryTreeUpdate;
|
||||
/*0xA8*/ u32 field_A8;
|
||||
/*0xAC*/ u32 encryptionKey;
|
||||
|
||||
// TODO: fix and verify labels
|
||||
/*0xB0*/ u8 field_B0;
|
||||
/*0xB1*/ u8 field_B1;
|
||||
/*0xB2*/ u8 field_B2_0:3;
|
||||
/*0xB2*/ u8 field_B2_1:2;
|
||||
/*0xB3*/ u8 field_B3[0x29];
|
||||
/*0xDC*/ struct UnkRecordMixingStruct field_DC[4];
|
||||
/*0xB0*/ struct PlayersApprentice playerApprentice;
|
||||
/*0xDC*/ struct Apprentice apprentices[4];
|
||||
/*0x1EC*/ struct BerryCrush berryCrush;
|
||||
/*0x1FC*/ struct PokemonJumpResults pokeJump;
|
||||
/*0x20C*/ struct BerryPickingResults berryPick;
|
||||
|
@ -54,6 +54,7 @@ extern u16 gSpecialVar_ItemId;
|
||||
void sub_81AAC14(void);
|
||||
void sub_81AAC50(void);
|
||||
void sub_81AAC70(void);
|
||||
void sub_81AAC28(void);
|
||||
void bag_menu_mail_related(void);
|
||||
void CB2_BagMenuFromStartMenu(void);
|
||||
u8 sub_81ABB2C(u8 pocketId);
|
||||
|
@ -50,7 +50,7 @@ void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
|
||||
void reset_temp_tile_data_buffers(void);
|
||||
void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode);
|
||||
bool8 free_temp_tile_data_buffers_if_possible(void);
|
||||
struct WindowTemplate CreateWindowTemplate(u8, u8, u8, u8, u8, u8, u16);
|
||||
struct WindowTemplate CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock);
|
||||
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
|
||||
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, int size, u16 offset, u8 mode);
|
||||
s8 Menu_ProcessInputNoWrap_(void);
|
||||
|
@ -240,32 +240,6 @@ struct PokemonStorage
|
||||
/*0x83C2*/ u8 boxWallpapers[14];
|
||||
};
|
||||
|
||||
struct UnknownPokemonSubStruct2
|
||||
{
|
||||
u16 species;
|
||||
u16 moves[4];
|
||||
u16 item;
|
||||
};
|
||||
|
||||
struct UnknownPokemonStruct2
|
||||
{
|
||||
u8 field_0_0 : 5;
|
||||
u8 field_0_1 : 2;
|
||||
u8 field_1;
|
||||
u8 field_2;
|
||||
u8 field_3;
|
||||
struct UnknownPokemonSubStruct2 mons[3];
|
||||
u8 field_28[23];
|
||||
u8 language;
|
||||
};
|
||||
|
||||
struct UnknownPokemonStruct3
|
||||
{
|
||||
u8 field_0[48];
|
||||
u16 field_30;
|
||||
u8 field_32[38];
|
||||
};
|
||||
|
||||
struct Unknown_806F160_Struct
|
||||
{
|
||||
u8 field_0_0:4;
|
||||
@ -472,7 +446,7 @@ void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u
|
||||
void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread);
|
||||
void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src);
|
||||
void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lvl50);
|
||||
void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u8 monId);
|
||||
void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId);
|
||||
void CreateMonWithEVSpreadPersonalityOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId);
|
||||
void sub_80686FC(struct Pokemon *mon, struct UnknownPokemonStruct *dest);
|
||||
void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId);
|
||||
|
@ -13,5 +13,6 @@ s32 convert_pixel_width_to_tile_width(s32);
|
||||
u8 CreateWindowFromRect(u8, u8, u8, u8);
|
||||
void sub_80E2A78(u8);
|
||||
u32 display_text_and_get_width(const u8*, u32);
|
||||
u8 sub_80E2D5C(u8 arg0, u8 tileWidth);
|
||||
|
||||
#endif //GUARD_SCRIPT_MENU_H
|
||||
|
@ -246,6 +246,7 @@ SECTIONS {
|
||||
asm/battle_frontier_1.o(.text);
|
||||
src/menu.o(.text);
|
||||
src/battle_factory.o(.text);
|
||||
src/apprentice.o(.text);
|
||||
asm/battle_frontier_2.o(.text);
|
||||
src/item_menu.o(.text);
|
||||
src/list_menu.o(.text);
|
||||
@ -529,6 +530,7 @@ SECTIONS {
|
||||
data/battle_frontier_1.o(.rodata);
|
||||
src/menu.o(.rodata);
|
||||
src/battle_factory.o(.rodata);
|
||||
src/apprentice.o(.rodata);
|
||||
data/battle_frontier_2.o(.rodata);
|
||||
src/item_menu.o(.rodata);
|
||||
src/list_menu.o(.rodata);
|
||||
|
2380
src/apprentice.c
Normal file
2380
src/apprentice.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -352,7 +352,7 @@ void easy_chat_input_maybe(void)
|
||||
words = &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014;
|
||||
break;
|
||||
case 19:
|
||||
words = (u16 *)&gSaveBlock2Ptr->field_DC[0].field_0[0x28];
|
||||
words = gSaveBlock2Ptr->apprentices[0].easyChatWords;
|
||||
break;
|
||||
case 20:
|
||||
words = sub_801B058();
|
||||
|
@ -46,6 +46,7 @@
|
||||
#include "text_window.h"
|
||||
#include "menu_helpers.h"
|
||||
#include "window.h"
|
||||
#include "apprentice.h"
|
||||
|
||||
void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)());
|
||||
void CB2_Bag(void);
|
||||
@ -2203,7 +2204,7 @@ void unknown_ItemMenu_Show(u8 taskId)
|
||||
|
||||
void bag_menu_leave_maybe_3(void)
|
||||
{
|
||||
gFieldCallback = sub_819FA50;
|
||||
gFieldCallback = Apprentice_EnableBothScriptContexts;
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "battle_records.h"
|
||||
#include "item.h"
|
||||
#include "pokedex.h"
|
||||
#include "apprentice.h"
|
||||
|
||||
extern u8 gDifferentSaveFile;
|
||||
extern u16 gSaveFileStatus;
|
||||
@ -44,7 +45,6 @@ extern void NewGameInitPCItems(void);
|
||||
extern void ClearDecorationInventories(void);
|
||||
extern void ResetFanClub(void);
|
||||
extern void copy_strings_to_sav1(void);
|
||||
extern void sub_819FAA0(void);
|
||||
extern void sub_81A4B14(void);
|
||||
extern void sub_8195E10(void);
|
||||
extern void sub_801AFD8(void);
|
||||
@ -203,7 +203,7 @@ void NewGameInitData(void)
|
||||
ResetMiniGamesResults();
|
||||
copy_strings_to_sav1();
|
||||
SetLilycoveLady();
|
||||
sub_819FAA0();
|
||||
ResetAllApprenticeData();
|
||||
sub_81A4B14();
|
||||
sub_8195E10();
|
||||
sub_801AFD8();
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include "pokenav.h"
|
||||
#include "pokemon_storage_system.h"
|
||||
#include "recorded_battle.h"
|
||||
#include "apprentice.h"
|
||||
|
||||
struct SpeciesItem
|
||||
{
|
||||
@ -69,7 +70,6 @@ extern const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[];
|
||||
extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[];
|
||||
extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[];
|
||||
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
|
||||
extern const struct UnknownPokemonStruct3 gUnknown_08610970[];
|
||||
extern const struct CompressedSpritePalette gMonPaletteTable[];
|
||||
extern const struct CompressedSpritePalette gMonShinyPaletteTable[];
|
||||
extern const u8 gTrainerClassNames[][13];
|
||||
@ -80,7 +80,6 @@ extern u8 StorageGetCurrentBox(void);
|
||||
extern void set_unknown_box_id(u8);
|
||||
extern void sub_803FA70(u8 battlerId);
|
||||
extern u8 sav1_map_get_name(void);
|
||||
extern const u8 *sub_81A1650(u8, u8 language);
|
||||
extern u8 GetFrontierEnemyMonLevel(u8);
|
||||
extern bool8 InBattlePyramid(void);
|
||||
extern bool8 InBattlePike(void);
|
||||
@ -2873,27 +2872,27 @@ void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lv
|
||||
CalculateMonStats(mon);
|
||||
}
|
||||
|
||||
void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u8 monId)
|
||||
void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId)
|
||||
{
|
||||
s32 i;
|
||||
u16 evAmount;
|
||||
u8 language;
|
||||
u32 otId = gUnknown_08610970[src->field_0_0].field_30;
|
||||
u32 personality = ((gUnknown_08610970[src->field_0_0].field_30 >> 8) | ((gUnknown_08610970[src->field_0_0].field_30 & 0xFF) << 8))
|
||||
+ src->mons[monId].species + src->field_2;
|
||||
u32 otId = gApprentices[src->id].otId;
|
||||
u32 personality = ((gApprentices[src->id].otId >> 8) | ((gApprentices[src->id].otId & 0xFF) << 8))
|
||||
+ src->monData[monId].species + src->number;
|
||||
|
||||
CreateMon(mon,
|
||||
src->mons[monId].species,
|
||||
GetFrontierEnemyMonLevel(src->field_0_1 - 1),
|
||||
src->monData[monId].species,
|
||||
GetFrontierEnemyMonLevel(src->lvlMode - 1),
|
||||
0x1F,
|
||||
TRUE,
|
||||
personality,
|
||||
TRUE,
|
||||
otId);
|
||||
|
||||
SetMonData(mon, MON_DATA_HELD_ITEM, &src->mons[monId].item);
|
||||
SetMonData(mon, MON_DATA_HELD_ITEM, &src->monData[monId].item);
|
||||
for (i = 0; i < 4; i++)
|
||||
SetMonMoveSlot(mon, src->mons[monId].moves[i], i);
|
||||
SetMonMoveSlot(mon, src->monData[monId].moves[i], i);
|
||||
|
||||
evAmount = MAX_TOTAL_EVS / NUM_STATS;
|
||||
for (i = 0; i < NUM_STATS; i++)
|
||||
@ -2901,7 +2900,7 @@ void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u
|
||||
|
||||
language = src->language;
|
||||
SetMonData(mon, MON_DATA_LANGUAGE, &language);
|
||||
SetMonData(mon, MON_DATA_OT_NAME, sub_81A1650(src->field_0_0, language));
|
||||
SetMonData(mon, MON_DATA_OT_NAME, GetApprenticeNameInLanguage(src->id, language));
|
||||
CalculateMonStats(mon);
|
||||
}
|
||||
|
||||
|
@ -83,7 +83,7 @@ struct PlayerRecordsEmerald
|
||||
/* 0x1124 */ struct EmeraldBattleTowerRecord battleTowerRecord;
|
||||
/* 0x1210 */ u16 unk_1210;
|
||||
/* 0x1214 */ LilycoveLady lilycoveLady;
|
||||
/* 0x1254 */ struct UnkRecordMixingStruct unk_1254[2];
|
||||
/* 0x1254 */ struct Apprentice apprentice[2];
|
||||
/* 0x12dc */ struct UnkRecordMixingStruct2 unk_12dc;
|
||||
/* 0x1434 */ u8 field_1434[0x10];
|
||||
}; // 0x1444
|
||||
@ -134,8 +134,8 @@ static void sub_80E7B2C(const u8 *);
|
||||
static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *, size_t, u8, TVShow *);
|
||||
static void sub_80E7F68(u16 *item, u8 which);
|
||||
static void sub_80E7FF8(u8 taskId);
|
||||
static void sub_80E8110(struct UnkRecordMixingStruct *arg0, struct UnkRecordMixingStruct *arg1);
|
||||
static void sub_80E8468(struct UnkRecordMixingStruct *arg0, size_t arg1, u32 arg2);
|
||||
static void sub_80E8110(struct Apprentice *arg0, struct Apprentice *arg1);
|
||||
static void ReceiveApprenticeData(struct Apprentice *arg0, size_t arg1, u32 arg2);
|
||||
static void sub_80E89AC(struct UnkRecordMixingStruct2 *arg0, size_t arg1, u32 arg2);
|
||||
static void sub_80E89F8(struct RecordMixingDayCareMail *dst);
|
||||
static void SanitizeDayCareMailForRuby(struct RecordMixingDayCareMail *src);
|
||||
@ -199,7 +199,7 @@ static void SetSrcLookupPointers(void)
|
||||
gUnknown_03001148 = &gUnknown_02039F9C;
|
||||
sBattleTowerSave = &gSaveBlock2Ptr->frontier.battleTower;
|
||||
sLilycoveLadySave = &gSaveBlock1Ptr->lilycoveLady;
|
||||
gUnknown_03001154 = gSaveBlock2Ptr->field_DC;
|
||||
gUnknown_03001154 = gSaveBlock2Ptr->apprentices;
|
||||
sBattleTowerSave_Duplicate = &gSaveBlock2Ptr->frontier.battleTower;
|
||||
}
|
||||
|
||||
@ -265,7 +265,7 @@ static void PrepareExchangePacket(void)
|
||||
if (GetMultiplayerId() == 0)
|
||||
sSentRecord->emerald.unk_1210 = GetRecordMixingGift();
|
||||
|
||||
sub_80E8110(sSentRecord->emerald.unk_1254, gUnknown_03001154);
|
||||
sub_80E8110(sSentRecord->emerald.apprentice, gUnknown_03001154);
|
||||
sub_80E8260(&sSentRecord->emerald.unk_12dc);
|
||||
}
|
||||
}
|
||||
@ -298,7 +298,7 @@ static void ReceiveExchangePacket(u32 which)
|
||||
ReceiveBattleTowerData(&sReceivedRecords->emerald.battleTowerRecord, sizeof(struct PlayerRecordsEmerald), which);
|
||||
sub_80E7F68(&sReceivedRecords->emerald.unk_1210, which);
|
||||
ReceiveLilycoveLadyData(&sReceivedRecords->emerald.lilycoveLady, sizeof(struct PlayerRecordsEmerald), which);
|
||||
sub_80E8468(sReceivedRecords->emerald.unk_1254, sizeof(struct PlayerRecordsEmerald), (u8) which);
|
||||
ReceiveApprenticeData(sReceivedRecords->emerald.apprentice, sizeof(struct PlayerRecordsEmerald), (u8) which);
|
||||
sub_80E89AC(&sReceivedRecords->emerald.unk_12dc, sizeof(struct PlayerRecordsEmerald), (u8) which);
|
||||
}
|
||||
}
|
||||
@ -1551,13 +1551,13 @@ static void sub_80E7FF8(u8 taskId)
|
||||
|
||||
// New Emerald functions
|
||||
|
||||
static void sub_80E8110(struct UnkRecordMixingStruct *dst, struct UnkRecordMixingStruct *src)
|
||||
static void sub_80E8110(struct Apprentice *dst, struct Apprentice *src)
|
||||
{
|
||||
s32 i, id;
|
||||
s32 var_2C, var_28, var_24, r8;
|
||||
|
||||
dst[0].field_38[0] = 0xFF;
|
||||
dst[1].field_38[0] = 0xFF;
|
||||
dst[0].playerName[0] = EOS;
|
||||
dst[1].playerName[0] = EOS;
|
||||
|
||||
dst[0] = src[0];
|
||||
|
||||
@ -1567,8 +1567,8 @@ static void sub_80E8110(struct UnkRecordMixingStruct *dst, struct UnkRecordMixin
|
||||
r8 = 0;
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
id = ((i + gSaveBlock2Ptr->field_B2_1) % 3) + 1;
|
||||
if (src[id].field_38[0] != 0xFF)
|
||||
id = ((i + gSaveBlock2Ptr->playerApprentice.field_B2_1) % 3) + 1;
|
||||
if (src[id].playerName[0] != EOS)
|
||||
{
|
||||
if (ReadUnalignedWord(src[id].playerId) != ReadUnalignedWord(gSaveBlock2Ptr->playerTrainerId))
|
||||
{
|
||||
@ -1597,11 +1597,11 @@ static void sub_80E8110(struct UnkRecordMixingStruct *dst, struct UnkRecordMixin
|
||||
case 2:
|
||||
if (Random2() > 0x3333)
|
||||
{
|
||||
dst[1] = src[gSaveBlock2Ptr->field_B2_1 + 1];
|
||||
dst[1] = src[gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1];
|
||||
}
|
||||
else
|
||||
{
|
||||
dst[1] = src[((gSaveBlock2Ptr->field_B2_1 + 1) % 3 + 1)];
|
||||
dst[1] = src[((gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1) % 3 + 1)];
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -1646,14 +1646,14 @@ void sub_80E8260(struct UnkRecordMixingStruct2 *dst)
|
||||
}
|
||||
}
|
||||
|
||||
static bool32 sub_80E841C(struct UnkRecordMixingStruct *arg0, struct UnkRecordMixingStruct *arg1)
|
||||
static bool32 sub_80E841C(struct Apprentice *arg0, struct Apprentice *arg1)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (ReadUnalignedWord(arg0->playerId) == ReadUnalignedWord(arg1[i].playerId)
|
||||
&& arg0->field_0[2] == arg1[i].field_0[2])
|
||||
&& arg0->number == arg1[i].number)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
@ -1662,10 +1662,10 @@ static bool32 sub_80E841C(struct UnkRecordMixingStruct *arg0, struct UnkRecordMi
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void sub_80E8468(struct UnkRecordMixingStruct *arg0, size_t arg1, u32 arg2)
|
||||
static void ReceiveApprenticeData(struct Apprentice *arg0, size_t arg1, u32 arg2)
|
||||
{
|
||||
s32 i, r7, r8;
|
||||
struct UnkRecordMixingStruct *structPtr;
|
||||
struct Apprentice *structPtr;
|
||||
u32 mixIndices[4];
|
||||
u32 structId;
|
||||
|
||||
@ -1675,7 +1675,7 @@ static void sub_80E8468(struct UnkRecordMixingStruct *arg0, size_t arg1, u32 arg
|
||||
r8 = 0;
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
if (structPtr[i].field_38[0] != 0xFF && !sub_80E841C(&structPtr[i], gSaveBlock2Ptr->field_DC))
|
||||
if (structPtr[i].playerName[0] != EOS && !sub_80E841C(&structPtr[i], &gSaveBlock2Ptr->apprentices[0]))
|
||||
{
|
||||
r7++;
|
||||
r8 = i;
|
||||
@ -1685,17 +1685,17 @@ static void sub_80E8468(struct UnkRecordMixingStruct *arg0, size_t arg1, u32 arg
|
||||
switch (r7)
|
||||
{
|
||||
case 1:
|
||||
structId = gSaveBlock2Ptr->field_B2_1 + 1;
|
||||
gSaveBlock2Ptr->field_DC[structId] = structPtr[r8];
|
||||
gSaveBlock2Ptr->field_B2_1 = (gSaveBlock2Ptr->field_B2_1 + 1) % 3;
|
||||
structId = gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1;
|
||||
gSaveBlock2Ptr->apprentices[structId] = structPtr[r8];
|
||||
gSaveBlock2Ptr->playerApprentice.field_B2_1 = (gSaveBlock2Ptr->playerApprentice.field_B2_1 + 1) % 3;
|
||||
break;
|
||||
case 2:
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
structId = ((i ^ 1) + gSaveBlock2Ptr->field_B2_1) % 3 + 1;
|
||||
gSaveBlock2Ptr->field_DC[structId] = structPtr[i];
|
||||
structId = ((i ^ 1) + gSaveBlock2Ptr->playerApprentice.field_B2_1) % 3 + 1;
|
||||
gSaveBlock2Ptr->apprentices[structId] = structPtr[i];
|
||||
}
|
||||
gSaveBlock2Ptr->field_B2_1 = (gSaveBlock2Ptr->field_B2_1 + 2) % 3;
|
||||
gSaveBlock2Ptr->playerApprentice.field_B2_1 = (gSaveBlock2Ptr->playerApprentice.field_B2_1 + 2) % 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user