Decomped ov15_0238A140

Decomped by Seti
This commit is contained in:
AnonymousRandomPerson 2024-10-18 01:52:51 -04:00
parent 08323f7f5d
commit 163a715f6e
8 changed files with 716 additions and 76 deletions

View File

@ -9,27 +9,19 @@
.public CloseSimpleMenu
.public CloseTextBox
.public CreateAdvancedTextBox
.public CreateDialogueBox
.public CreatePortraitBox
.public CreateSimpleMenuFromStringIds
.public CreateTextBox
.public Debug_Print0
.public GetMoneyCarried
.public GetMoneyStored
.public GetSimpleMenuResult
.public InitPortraitParamsWithMonsterId
.public InitPreprocessorArgs
.public IsDialogueBoxActive
.public MemAlloc
.public OVERLAY15_UNKNOWN_POINTER__NA_238B180
.public PlaySeVolumeWrapper
.public SetAdvancedTextBoxField0x1C2
.public SetAdvancedTextBoxField0x1C4
.public SetAdvancedTextBoxState5
.public SetPortraitEmotion
.public SetPortraitLayout
.public ShowDialogueBox
.public ShowPortraitInPortraitBox
.public ShowStringIdInDialogueBox
.public ov15_0238AD78
.public ov15_0238ADC4

View File

@ -1,74 +1,8 @@
.include "asm/macros.inc"
.include "overlay_15.inc"
.include "overlay_15_0238A234.inc"
.text
arm_func_start ov15_0238A140
ov15_0238A140: ; 0x0238A140
stmdb sp!, {r3, lr}
mov r0, #0xec
mov r1, #8
bl MemAlloc
ldr r1, _0238A228 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
str r0, [r1]
add r0, r0, #0x88
bl InitPreprocessorArgs
mov r0, #0
bl CreateDialogueBox
ldr r2, _0238A228 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
mov r1, #3
ldr r3, [r2]
mov r2, #1
strb r0, [r3, #0x80]
mov r0, #0
bl CreatePortraitBox
ldr r2, _0238A228 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
mvn r3, #1
ldr r1, [r2]
mov ip, #0
strb r0, [r1, #0x81]
ldr r0, [r2]
ldr r1, _0238A22C ; =0x00000183
strb r3, [r0, #0x68]
ldr r0, [r2]
ldr r3, _0238A230 ; =0x0000270F
str ip, [r0, #0x10]
ldr r0, [r2]
str r1, [r0, #0x88]
ldr r0, [r2]
str r3, [r0, #0xac]
ldr r0, [r2]
str r1, [r0, #0xd4]
ldr r0, [r2]
str ip, [r0]
ldr r0, [r2]
add r0, r0, #0xdc
bl InitPortraitParamsWithMonsterId
ldr r0, _0238A228 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
mov r1, #0
ldr r0, [r0]
add r0, r0, #0xdc
bl SetPortraitLayout
ldr r0, _0238A228 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
mov r1, #0
ldr r0, [r0]
add r0, r0, #0xdc
bl SetPortraitEmotion
ldr r0, _0238A228 ; =OVERLAY15_UNKNOWN_POINTER__NA_238B180
ldr r1, [r0]
ldrsb r0, [r1, #0x81]
add r1, r1, #0xdc
bl ShowPortraitInPortraitBox
mov r0, #0
bl ov15_0238A4E8
mov r0, #1
ldmia sp!, {r3, pc}
.align 2, 0
_0238A228: .word OVERLAY15_UNKNOWN_POINTER__NA_238B180
_0238A22C: .word 0x00000183
_0238A230: .word 0x0000270F
arm_func_end ov15_0238A140
arm_func_start ov15_0238A234
ov15_0238A234: ; 0x0238A234
stmdb sp!, {r4, lr}

View File

@ -3,6 +3,7 @@
.text
; https://decomp.me/scratch/Yyyxj
arm_func_start ov15_0238ADC4
ov15_0238ADC4: ; 0x0238ADC4
stmdb sp!, {r3, r4, lr}

611
include/monster_id.h Normal file
View File

@ -0,0 +1,611 @@
#ifndef PMDSKY_MONSTER_ID_H
#define PMDSKY_MONSTER_ID_H
#define _MONSTER_ID_GENDERED(name, base_value) \
MONSTER_##name = base_value, MONSTER_##name##_SECONDARY = base_value + 600
enum monster_id {
_MONSTER_ID_GENDERED(NONE, 0),
_MONSTER_ID_GENDERED(BULBASAUR, 1),
_MONSTER_ID_GENDERED(IVYSAUR, 2),
_MONSTER_ID_GENDERED(VENUSAUR, 3),
_MONSTER_ID_GENDERED(CHARMANDER, 4),
_MONSTER_ID_GENDERED(CHARMELEON, 5),
_MONSTER_ID_GENDERED(CHARIZARD, 6),
_MONSTER_ID_GENDERED(SQUIRTLE, 7),
_MONSTER_ID_GENDERED(WARTORTLE, 8),
_MONSTER_ID_GENDERED(BLASTOISE, 9),
_MONSTER_ID_GENDERED(CATERPIE, 10),
_MONSTER_ID_GENDERED(METAPOD, 11),
_MONSTER_ID_GENDERED(BUTTERFREE, 12),
_MONSTER_ID_GENDERED(WEEDLE, 13),
_MONSTER_ID_GENDERED(KAKUNA, 14),
_MONSTER_ID_GENDERED(BEEDRILL, 15),
_MONSTER_ID_GENDERED(PIDGEY, 16),
_MONSTER_ID_GENDERED(PIDGEOTTO, 17),
_MONSTER_ID_GENDERED(PIDGEOT, 18),
_MONSTER_ID_GENDERED(RATTATA, 19),
_MONSTER_ID_GENDERED(RATICATE, 20),
_MONSTER_ID_GENDERED(SPEAROW, 21),
_MONSTER_ID_GENDERED(FEAROW, 22),
_MONSTER_ID_GENDERED(EKANS, 23),
_MONSTER_ID_GENDERED(ARBOK, 24),
_MONSTER_ID_GENDERED(PIKACHU, 25),
_MONSTER_ID_GENDERED(RAICHU, 26),
_MONSTER_ID_GENDERED(SANDSHREW, 27),
_MONSTER_ID_GENDERED(SANDSLASH, 28),
_MONSTER_ID_GENDERED(NIDORAN_F, 29),
_MONSTER_ID_GENDERED(NIDORINA, 30),
_MONSTER_ID_GENDERED(NIDOQUEEN, 31),
_MONSTER_ID_GENDERED(NIDORAN_M, 32),
_MONSTER_ID_GENDERED(NIDORINO, 33),
_MONSTER_ID_GENDERED(NIDOKING, 34),
_MONSTER_ID_GENDERED(CLEFAIRY, 35),
_MONSTER_ID_GENDERED(CLEFABLE, 36),
_MONSTER_ID_GENDERED(VULPIX, 37),
_MONSTER_ID_GENDERED(NINETALES, 38),
_MONSTER_ID_GENDERED(JIGGLYPUFF, 39),
_MONSTER_ID_GENDERED(WIGGLYTUFF, 40),
_MONSTER_ID_GENDERED(ZUBAT, 41),
_MONSTER_ID_GENDERED(GOLBAT, 42),
_MONSTER_ID_GENDERED(ODDISH, 43),
_MONSTER_ID_GENDERED(GLOOM, 44),
_MONSTER_ID_GENDERED(VILEPLUME, 45),
_MONSTER_ID_GENDERED(PARAS, 46),
_MONSTER_ID_GENDERED(PARASECT, 47),
_MONSTER_ID_GENDERED(VENONAT, 48),
_MONSTER_ID_GENDERED(VENOMOTH, 49),
_MONSTER_ID_GENDERED(DIGLETT, 50),
_MONSTER_ID_GENDERED(DUGTRIO, 51),
_MONSTER_ID_GENDERED(MEOWTH, 52),
_MONSTER_ID_GENDERED(PERSIAN, 53),
_MONSTER_ID_GENDERED(PSYDUCK, 54),
_MONSTER_ID_GENDERED(GOLDUCK, 55),
_MONSTER_ID_GENDERED(MANKEY, 56),
_MONSTER_ID_GENDERED(PRIMEAPE, 57),
_MONSTER_ID_GENDERED(GROWLITHE, 58),
_MONSTER_ID_GENDERED(ARCANINE, 59),
_MONSTER_ID_GENDERED(POLIWAG, 60),
_MONSTER_ID_GENDERED(POLIWHIRL, 61),
_MONSTER_ID_GENDERED(POLIWRATH, 62),
_MONSTER_ID_GENDERED(ABRA, 63),
_MONSTER_ID_GENDERED(KADABRA, 64),
_MONSTER_ID_GENDERED(ALAKAZAM, 65),
_MONSTER_ID_GENDERED(MACHOP, 66),
_MONSTER_ID_GENDERED(MACHOKE, 67),
_MONSTER_ID_GENDERED(MACHAMP, 68),
_MONSTER_ID_GENDERED(BELLSPROUT, 69),
_MONSTER_ID_GENDERED(WEEPINBELL, 70),
_MONSTER_ID_GENDERED(VICTREEBEL, 71),
_MONSTER_ID_GENDERED(TENTACOOL, 72),
_MONSTER_ID_GENDERED(TENTACRUEL, 73),
_MONSTER_ID_GENDERED(GEODUDE, 74),
_MONSTER_ID_GENDERED(GRAVELER, 75),
_MONSTER_ID_GENDERED(GOLEM, 76),
_MONSTER_ID_GENDERED(PONYTA, 77),
_MONSTER_ID_GENDERED(RAPIDASH, 78),
_MONSTER_ID_GENDERED(SLOWPOKE, 79),
_MONSTER_ID_GENDERED(SLOWBRO, 80),
_MONSTER_ID_GENDERED(MAGNEMITE, 81),
_MONSTER_ID_GENDERED(MAGNETON, 82),
_MONSTER_ID_GENDERED(FARFETCHD, 83),
_MONSTER_ID_GENDERED(DODUO, 84),
_MONSTER_ID_GENDERED(DODRIO, 85),
_MONSTER_ID_GENDERED(SEEL, 86),
_MONSTER_ID_GENDERED(DEWGONG, 87),
_MONSTER_ID_GENDERED(GRIMER, 88),
_MONSTER_ID_GENDERED(MUK, 89),
_MONSTER_ID_GENDERED(SHELLDER, 90),
_MONSTER_ID_GENDERED(CLOYSTER, 91),
_MONSTER_ID_GENDERED(GASTLY, 92),
_MONSTER_ID_GENDERED(HAUNTER, 93),
_MONSTER_ID_GENDERED(GENGAR, 94),
_MONSTER_ID_GENDERED(ONIX, 95),
_MONSTER_ID_GENDERED(DROWZEE, 96),
_MONSTER_ID_GENDERED(HYPNO, 97),
_MONSTER_ID_GENDERED(KRABBY, 98),
_MONSTER_ID_GENDERED(KINGLER, 99),
_MONSTER_ID_GENDERED(VOLTORB, 100),
_MONSTER_ID_GENDERED(ELECTRODE, 101),
_MONSTER_ID_GENDERED(EXEGGCUTE, 102),
_MONSTER_ID_GENDERED(EXEGGUTOR, 103),
_MONSTER_ID_GENDERED(CUBONE, 104),
_MONSTER_ID_GENDERED(MAROWAK, 105),
_MONSTER_ID_GENDERED(HITMONLEE, 106),
_MONSTER_ID_GENDERED(HITMONCHAN, 107),
_MONSTER_ID_GENDERED(LICKITUNG, 108),
_MONSTER_ID_GENDERED(KOFFING, 109),
_MONSTER_ID_GENDERED(WEEZING, 110),
_MONSTER_ID_GENDERED(RHYHORN, 111),
_MONSTER_ID_GENDERED(RHYDON, 112),
_MONSTER_ID_GENDERED(CHANSEY, 113),
_MONSTER_ID_GENDERED(TANGELA, 114),
_MONSTER_ID_GENDERED(KANGASKHAN, 115),
_MONSTER_ID_GENDERED(HORSEA, 116),
_MONSTER_ID_GENDERED(SEADRA, 117),
_MONSTER_ID_GENDERED(GOLDEEN, 118),
_MONSTER_ID_GENDERED(SEAKING, 119),
_MONSTER_ID_GENDERED(STARYU, 120),
_MONSTER_ID_GENDERED(STARMIE, 121),
_MONSTER_ID_GENDERED(MR_MIME, 122),
_MONSTER_ID_GENDERED(SCYTHER, 123),
_MONSTER_ID_GENDERED(JYNX, 124),
_MONSTER_ID_GENDERED(ELECTABUZZ, 125),
_MONSTER_ID_GENDERED(MAGMAR, 126),
_MONSTER_ID_GENDERED(PINSIR, 127),
_MONSTER_ID_GENDERED(TAUROS, 128),
_MONSTER_ID_GENDERED(MAGIKARP, 129),
_MONSTER_ID_GENDERED(GYARADOS, 130),
_MONSTER_ID_GENDERED(LAPRAS, 131),
_MONSTER_ID_GENDERED(DITTO, 132),
_MONSTER_ID_GENDERED(EEVEE, 133),
_MONSTER_ID_GENDERED(VAPOREON, 134),
_MONSTER_ID_GENDERED(JOLTEON, 135),
_MONSTER_ID_GENDERED(FLAREON, 136),
_MONSTER_ID_GENDERED(PORYGON, 137),
_MONSTER_ID_GENDERED(OMANYTE, 138),
_MONSTER_ID_GENDERED(OMASTAR, 139),
_MONSTER_ID_GENDERED(KABUTO, 140),
_MONSTER_ID_GENDERED(KABUTOPS, 141),
_MONSTER_ID_GENDERED(AERODACTYL, 142),
_MONSTER_ID_GENDERED(SNORLAX, 143),
_MONSTER_ID_GENDERED(ARTICUNO, 144),
_MONSTER_ID_GENDERED(ZAPDOS, 145),
_MONSTER_ID_GENDERED(MOLTRES, 146),
_MONSTER_ID_GENDERED(DRATINI, 147),
_MONSTER_ID_GENDERED(DRAGONAIR, 148),
_MONSTER_ID_GENDERED(DRAGONITE, 149),
_MONSTER_ID_GENDERED(MEWTWO, 150),
_MONSTER_ID_GENDERED(MEW, 151),
_MONSTER_ID_GENDERED(CHIKORITA, 152),
_MONSTER_ID_GENDERED(BAYLEEF, 153),
_MONSTER_ID_GENDERED(MEGANIUM, 154),
_MONSTER_ID_GENDERED(CYNDAQUIL, 155),
_MONSTER_ID_GENDERED(QUILAVA, 156),
_MONSTER_ID_GENDERED(TYPHLOSION, 157),
_MONSTER_ID_GENDERED(TOTODILE, 158),
_MONSTER_ID_GENDERED(CROCONAW, 159),
_MONSTER_ID_GENDERED(FERALIGATR, 160),
_MONSTER_ID_GENDERED(SENTRET, 161),
_MONSTER_ID_GENDERED(FURRET, 162),
_MONSTER_ID_GENDERED(HOOTHOOT, 163),
_MONSTER_ID_GENDERED(NOCTOWL, 164),
_MONSTER_ID_GENDERED(LEDYBA, 165),
_MONSTER_ID_GENDERED(LEDIAN, 166),
_MONSTER_ID_GENDERED(SPINARAK, 167),
_MONSTER_ID_GENDERED(ARIADOS, 168),
_MONSTER_ID_GENDERED(CROBAT, 169),
_MONSTER_ID_GENDERED(CHINCHOU, 170),
_MONSTER_ID_GENDERED(LANTURN, 171),
_MONSTER_ID_GENDERED(PICHU, 172),
_MONSTER_ID_GENDERED(CLEFFA, 173),
_MONSTER_ID_GENDERED(IGGLYBUFF, 174),
_MONSTER_ID_GENDERED(TOGEPI, 175),
_MONSTER_ID_GENDERED(TOGETIC, 176),
_MONSTER_ID_GENDERED(NATU, 177),
_MONSTER_ID_GENDERED(XATU, 178),
_MONSTER_ID_GENDERED(MAREEP, 179),
_MONSTER_ID_GENDERED(FLAAFFY, 180),
_MONSTER_ID_GENDERED(AMPHAROS, 181),
_MONSTER_ID_GENDERED(BELLOSSOM, 182),
_MONSTER_ID_GENDERED(MARILL, 183),
_MONSTER_ID_GENDERED(AZUMARILL, 184),
_MONSTER_ID_GENDERED(SUDOWOODO, 185),
_MONSTER_ID_GENDERED(POLITOED, 186),
_MONSTER_ID_GENDERED(HOPPIP, 187),
_MONSTER_ID_GENDERED(SKIPLOOM, 188),
_MONSTER_ID_GENDERED(JUMPLUFF, 189),
_MONSTER_ID_GENDERED(AIPOM, 190),
_MONSTER_ID_GENDERED(SUNKERN, 191),
_MONSTER_ID_GENDERED(SUNFLORA, 192),
_MONSTER_ID_GENDERED(YANMA, 193),
_MONSTER_ID_GENDERED(WOOPER, 194),
_MONSTER_ID_GENDERED(QUAGSIRE, 195),
_MONSTER_ID_GENDERED(ESPEON, 196),
_MONSTER_ID_GENDERED(UMBREON, 197),
_MONSTER_ID_GENDERED(MURKROW, 198),
_MONSTER_ID_GENDERED(SLOWKING, 199),
_MONSTER_ID_GENDERED(MISDREAVUS, 200),
_MONSTER_ID_GENDERED(UNOWN_A, 201),
_MONSTER_ID_GENDERED(UNOWN_B, 202),
_MONSTER_ID_GENDERED(UNOWN_C, 203),
_MONSTER_ID_GENDERED(UNOWN_D, 204),
_MONSTER_ID_GENDERED(UNOWN_E, 205),
_MONSTER_ID_GENDERED(UNOWN_F, 206),
_MONSTER_ID_GENDERED(UNOWN_G, 207),
_MONSTER_ID_GENDERED(UNOWN_H, 208),
_MONSTER_ID_GENDERED(UNOWN_I, 209),
_MONSTER_ID_GENDERED(UNOWN_J, 210),
_MONSTER_ID_GENDERED(UNOWN_K, 211),
_MONSTER_ID_GENDERED(UNOWN_L, 212),
_MONSTER_ID_GENDERED(UNOWN_M, 213),
_MONSTER_ID_GENDERED(UNOWN_N, 214),
_MONSTER_ID_GENDERED(UNOWN_O, 215),
_MONSTER_ID_GENDERED(UNOWN_P, 216),
_MONSTER_ID_GENDERED(UNOWN_Q, 217),
_MONSTER_ID_GENDERED(UNOWN_R, 218),
_MONSTER_ID_GENDERED(UNOWN_S, 219),
_MONSTER_ID_GENDERED(UNOWN_T, 220),
_MONSTER_ID_GENDERED(UNOWN_U, 221),
_MONSTER_ID_GENDERED(UNOWN_V, 222),
_MONSTER_ID_GENDERED(UNOWN_W, 223),
_MONSTER_ID_GENDERED(UNOWN_X, 224),
_MONSTER_ID_GENDERED(UNOWN_Y, 225),
_MONSTER_ID_GENDERED(UNOWN_Z, 226),
_MONSTER_ID_GENDERED(UNOWN_EXCLAMATION, 227),
_MONSTER_ID_GENDERED(UNOWN_QUESTION, 228),
_MONSTER_ID_GENDERED(WOBBUFFET, 229),
_MONSTER_ID_GENDERED(GIRAFARIG, 230),
_MONSTER_ID_GENDERED(PINECO, 231),
_MONSTER_ID_GENDERED(FORRETRESS, 232),
_MONSTER_ID_GENDERED(DUNSPARCE, 233),
_MONSTER_ID_GENDERED(GLIGAR, 234),
_MONSTER_ID_GENDERED(STEELIX, 235),
_MONSTER_ID_GENDERED(SNUBBULL, 236),
_MONSTER_ID_GENDERED(GRANBULL, 237),
_MONSTER_ID_GENDERED(QWILFISH, 238),
_MONSTER_ID_GENDERED(SCIZOR, 239),
_MONSTER_ID_GENDERED(SHUCKLE, 240),
_MONSTER_ID_GENDERED(HERACROSS, 241),
_MONSTER_ID_GENDERED(SNEASEL, 242),
_MONSTER_ID_GENDERED(TEDDIURSA, 243),
_MONSTER_ID_GENDERED(URSARING, 244),
_MONSTER_ID_GENDERED(SLUGMA, 245),
_MONSTER_ID_GENDERED(MAGCARGO, 246),
_MONSTER_ID_GENDERED(SWINUB, 247),
_MONSTER_ID_GENDERED(PILOSWINE, 248),
_MONSTER_ID_GENDERED(CORSOLA, 249),
_MONSTER_ID_GENDERED(REMORAID, 250),
_MONSTER_ID_GENDERED(OCTILLERY, 251),
_MONSTER_ID_GENDERED(DELIBIRD, 252),
_MONSTER_ID_GENDERED(MANTINE, 253),
_MONSTER_ID_GENDERED(SKARMORY, 254),
_MONSTER_ID_GENDERED(HOUNDOUR, 255),
_MONSTER_ID_GENDERED(HOUNDOOM, 256),
_MONSTER_ID_GENDERED(KINGDRA, 257),
_MONSTER_ID_GENDERED(PHANPY, 258),
_MONSTER_ID_GENDERED(DONPHAN, 259),
_MONSTER_ID_GENDERED(PORYGON2, 260),
_MONSTER_ID_GENDERED(STANTLER, 261),
_MONSTER_ID_GENDERED(SMEARGLE, 262),
_MONSTER_ID_GENDERED(TYROGUE, 263),
_MONSTER_ID_GENDERED(HITMONTOP, 264),
_MONSTER_ID_GENDERED(SMOOCHUM, 265),
_MONSTER_ID_GENDERED(ELEKID, 266),
_MONSTER_ID_GENDERED(MAGBY, 267),
_MONSTER_ID_GENDERED(MILTANK, 268),
_MONSTER_ID_GENDERED(BLISSEY, 269),
_MONSTER_ID_GENDERED(RAIKOU, 270),
_MONSTER_ID_GENDERED(ENTEI, 271),
_MONSTER_ID_GENDERED(SUICUNE, 272),
_MONSTER_ID_GENDERED(LARVITAR, 273),
_MONSTER_ID_GENDERED(PUPITAR, 274),
_MONSTER_ID_GENDERED(TYRANITAR, 275),
_MONSTER_ID_GENDERED(LUGIA, 276),
_MONSTER_ID_GENDERED(HO_OH, 277),
_MONSTER_ID_GENDERED(CELEBI, 278),
_MONSTER_ID_GENDERED(SHINY_CELEBI, 279),
_MONSTER_ID_GENDERED(TREECKO, 280),
_MONSTER_ID_GENDERED(GROVYLE, 281),
_MONSTER_ID_GENDERED(SCEPTILE, 282),
_MONSTER_ID_GENDERED(TORCHIC, 283),
_MONSTER_ID_GENDERED(COMBUSKEN, 284),
_MONSTER_ID_GENDERED(BLAZIKEN, 285),
_MONSTER_ID_GENDERED(MUDKIP, 286),
_MONSTER_ID_GENDERED(MARSHTOMP, 287),
_MONSTER_ID_GENDERED(SWAMPERT, 288),
_MONSTER_ID_GENDERED(POOCHYENA, 289),
_MONSTER_ID_GENDERED(MIGHTYENA, 290),
_MONSTER_ID_GENDERED(ZIGZAGOON, 291),
_MONSTER_ID_GENDERED(LINOONE, 292),
_MONSTER_ID_GENDERED(WURMPLE, 293),
_MONSTER_ID_GENDERED(SILCOON, 294),
_MONSTER_ID_GENDERED(BEAUTIFLY, 295),
_MONSTER_ID_GENDERED(CASCOON, 296),
_MONSTER_ID_GENDERED(DUSTOX, 297),
_MONSTER_ID_GENDERED(LOTAD, 298),
_MONSTER_ID_GENDERED(LOMBRE, 299),
_MONSTER_ID_GENDERED(LUDICOLO, 300),
_MONSTER_ID_GENDERED(SEEDOT, 301),
_MONSTER_ID_GENDERED(NUZLEAF, 302),
_MONSTER_ID_GENDERED(SHIFTRY, 303),
_MONSTER_ID_GENDERED(TAILLOW, 304),
_MONSTER_ID_GENDERED(SWELLOW, 305),
_MONSTER_ID_GENDERED(WINGULL, 306),
_MONSTER_ID_GENDERED(PELIPPER, 307),
_MONSTER_ID_GENDERED(RALTS, 308),
_MONSTER_ID_GENDERED(KIRLIA, 309),
_MONSTER_ID_GENDERED(GARDEVOIR, 310),
_MONSTER_ID_GENDERED(SURSKIT, 311),
_MONSTER_ID_GENDERED(MASQUERAIN, 312),
_MONSTER_ID_GENDERED(SHROOMISH, 313),
_MONSTER_ID_GENDERED(BRELOOM, 314),
_MONSTER_ID_GENDERED(SLAKOTH, 315),
_MONSTER_ID_GENDERED(VIGOROTH, 316),
_MONSTER_ID_GENDERED(SLAKING, 317),
_MONSTER_ID_GENDERED(NINCADA, 318),
_MONSTER_ID_GENDERED(NINJASK, 319),
_MONSTER_ID_GENDERED(SHEDINJA, 320),
_MONSTER_ID_GENDERED(WHISMUR, 321),
_MONSTER_ID_GENDERED(LOUDRED, 322),
_MONSTER_ID_GENDERED(EXPLOUD, 323),
_MONSTER_ID_GENDERED(MAKUHITA, 324),
_MONSTER_ID_GENDERED(HARIYAMA, 325),
_MONSTER_ID_GENDERED(AZURILL, 326),
_MONSTER_ID_GENDERED(NOSEPASS, 327),
_MONSTER_ID_GENDERED(SKITTY, 328),
_MONSTER_ID_GENDERED(DELCATTY, 329),
_MONSTER_ID_GENDERED(SABLEYE, 330),
_MONSTER_ID_GENDERED(MAWILE, 331),
_MONSTER_ID_GENDERED(ARON, 332),
_MONSTER_ID_GENDERED(LAIRON, 333),
_MONSTER_ID_GENDERED(AGGRON, 334),
_MONSTER_ID_GENDERED(MEDITITE, 335),
_MONSTER_ID_GENDERED(MEDICHAM, 336),
_MONSTER_ID_GENDERED(ELECTRIKE, 337),
_MONSTER_ID_GENDERED(MANECTRIC, 338),
_MONSTER_ID_GENDERED(PLUSLE, 339),
_MONSTER_ID_GENDERED(MINUN, 340),
_MONSTER_ID_GENDERED(VOLBEAT, 341),
_MONSTER_ID_GENDERED(ILLUMISE, 342),
_MONSTER_ID_GENDERED(ROSELIA, 343),
_MONSTER_ID_GENDERED(GULPIN, 344),
_MONSTER_ID_GENDERED(SWALOT, 345),
_MONSTER_ID_GENDERED(CARVANHA, 346),
_MONSTER_ID_GENDERED(SHARPEDO, 347),
_MONSTER_ID_GENDERED(WAILMER, 348),
_MONSTER_ID_GENDERED(WAILORD, 349),
_MONSTER_ID_GENDERED(NUMEL, 350),
_MONSTER_ID_GENDERED(CAMERUPT, 351),
_MONSTER_ID_GENDERED(TORKOAL, 352),
_MONSTER_ID_GENDERED(SPOINK, 353),
_MONSTER_ID_GENDERED(GRUMPIG, 354),
_MONSTER_ID_GENDERED(SPINDA, 355),
_MONSTER_ID_GENDERED(TRAPINCH, 356),
_MONSTER_ID_GENDERED(VIBRAVA, 357),
_MONSTER_ID_GENDERED(FLYGON, 358),
_MONSTER_ID_GENDERED(CACNEA, 359),
_MONSTER_ID_GENDERED(CACTURNE, 360),
_MONSTER_ID_GENDERED(SWABLU, 361),
_MONSTER_ID_GENDERED(ALTARIA, 362),
_MONSTER_ID_GENDERED(ZANGOOSE, 363),
_MONSTER_ID_GENDERED(SEVIPER, 364),
_MONSTER_ID_GENDERED(LUNATONE, 365),
_MONSTER_ID_GENDERED(SOLROCK, 366),
_MONSTER_ID_GENDERED(BARBOACH, 367),
_MONSTER_ID_GENDERED(WHISCASH, 368),
_MONSTER_ID_GENDERED(CORPHISH, 369),
_MONSTER_ID_GENDERED(CRAWDAUNT, 370),
_MONSTER_ID_GENDERED(BALTOY, 371),
_MONSTER_ID_GENDERED(CLAYDOL, 372),
_MONSTER_ID_GENDERED(LILEEP, 373),
_MONSTER_ID_GENDERED(CRADILY, 374),
_MONSTER_ID_GENDERED(ANORITH, 375),
_MONSTER_ID_GENDERED(ARMALDO, 376),
_MONSTER_ID_GENDERED(FEEBAS, 377),
_MONSTER_ID_GENDERED(MILOTIC, 378),
_MONSTER_ID_GENDERED(CASTFORM_NORMAL, 379),
_MONSTER_ID_GENDERED(CASTFORM_SNOWY, 380),
_MONSTER_ID_GENDERED(CASTFORM_SUNNY, 381),
_MONSTER_ID_GENDERED(CASTFORM_RAINY, 382),
_MONSTER_ID_GENDERED(KECLEON, 383),
_MONSTER_ID_GENDERED(PURPLE_KECLEON, 384),
_MONSTER_ID_GENDERED(SHUPPET, 385),
_MONSTER_ID_GENDERED(BANETTE, 386),
_MONSTER_ID_GENDERED(DUSKULL, 387),
_MONSTER_ID_GENDERED(DUSCLOPS, 388),
_MONSTER_ID_GENDERED(TROPIUS, 389),
_MONSTER_ID_GENDERED(CHIMECHO, 390),
_MONSTER_ID_GENDERED(ABSOL, 391),
_MONSTER_ID_GENDERED(WYNAUT, 392),
_MONSTER_ID_GENDERED(SNORUNT, 393),
_MONSTER_ID_GENDERED(GLALIE, 394),
_MONSTER_ID_GENDERED(SPHEAL, 395),
_MONSTER_ID_GENDERED(SEALEO, 396),
_MONSTER_ID_GENDERED(WALREIN, 397),
_MONSTER_ID_GENDERED(CLAMPERL, 398),
_MONSTER_ID_GENDERED(HUNTAIL, 399),
_MONSTER_ID_GENDERED(GOREBYSS, 400),
_MONSTER_ID_GENDERED(RELICANTH, 401),
_MONSTER_ID_GENDERED(LUVDISC, 402),
_MONSTER_ID_GENDERED(BAGON, 403),
_MONSTER_ID_GENDERED(SHELGON, 404),
_MONSTER_ID_GENDERED(SALAMENCE, 405),
_MONSTER_ID_GENDERED(BELDUM, 406),
_MONSTER_ID_GENDERED(METANG, 407),
_MONSTER_ID_GENDERED(METAGROSS, 408),
_MONSTER_ID_GENDERED(REGIROCK, 409),
_MONSTER_ID_GENDERED(REGICE, 410),
_MONSTER_ID_GENDERED(REGISTEEL, 411),
_MONSTER_ID_GENDERED(LATIAS, 412),
_MONSTER_ID_GENDERED(LATIOS, 413),
_MONSTER_ID_GENDERED(KYOGRE, 414),
_MONSTER_ID_GENDERED(GROUDON, 415),
_MONSTER_ID_GENDERED(RAYQUAZA, 416),
_MONSTER_ID_GENDERED(JIRACHI, 417),
_MONSTER_ID_GENDERED(DEOXYS_NORMAL, 418),
_MONSTER_ID_GENDERED(DEOXYS_ATTACK, 419),
_MONSTER_ID_GENDERED(DEOXYS_DEFENSE, 420),
_MONSTER_ID_GENDERED(DEOXYS_SPEED, 421),
_MONSTER_ID_GENDERED(TURTWIG, 422),
_MONSTER_ID_GENDERED(GROTLE, 423),
_MONSTER_ID_GENDERED(TORTERRA, 424),
_MONSTER_ID_GENDERED(CHIMCHAR, 425),
_MONSTER_ID_GENDERED(MONFERNO, 426),
_MONSTER_ID_GENDERED(INFERNAPE, 427),
_MONSTER_ID_GENDERED(PIPLUP, 428),
_MONSTER_ID_GENDERED(PRINPLUP, 429),
_MONSTER_ID_GENDERED(EMPOLEON, 430),
_MONSTER_ID_GENDERED(STARLY, 431),
_MONSTER_ID_GENDERED(STARAVIA, 432),
_MONSTER_ID_GENDERED(STARAPTOR, 433),
_MONSTER_ID_GENDERED(BIDOOF, 434),
_MONSTER_ID_GENDERED(BIBAREL, 435),
_MONSTER_ID_GENDERED(KRICKETOT, 436),
_MONSTER_ID_GENDERED(KRICKETUNE, 437),
_MONSTER_ID_GENDERED(SHINX, 438),
_MONSTER_ID_GENDERED(LUXIO, 439),
_MONSTER_ID_GENDERED(LUXRAY, 440),
_MONSTER_ID_GENDERED(BUDEW, 441),
_MONSTER_ID_GENDERED(ROSERADE, 442),
_MONSTER_ID_GENDERED(CRANIDOS, 443),
_MONSTER_ID_GENDERED(RAMPARDOS, 444),
_MONSTER_ID_GENDERED(SHIELDON, 445),
_MONSTER_ID_GENDERED(BASTIODON, 446),
_MONSTER_ID_GENDERED(BURMY_SANDY, 447),
_MONSTER_ID_GENDERED(BURMY_PLANT, 448),
_MONSTER_ID_GENDERED(BURMY_TRASH, 449),
_MONSTER_ID_GENDERED(WORMADAM_SANDY, 450),
_MONSTER_ID_GENDERED(WORMADAM_PLANT, 451),
_MONSTER_ID_GENDERED(WORMADAM_TRASH, 452),
_MONSTER_ID_GENDERED(MOTHIM, 453),
_MONSTER_ID_GENDERED(COMBEE, 454),
_MONSTER_ID_GENDERED(VESPIQUEN, 455),
_MONSTER_ID_GENDERED(PACHIRISU, 456),
_MONSTER_ID_GENDERED(BUIZEL, 457),
_MONSTER_ID_GENDERED(FLOATZEL, 458),
_MONSTER_ID_GENDERED(CHERUBI, 459),
_MONSTER_ID_GENDERED(CHERRIM_OVERCAST, 460),
_MONSTER_ID_GENDERED(CHERRIM_SUNSHINE, 461),
_MONSTER_ID_GENDERED(SHELLOS_EAST, 462),
_MONSTER_ID_GENDERED(SHELLOS_WEST, 463),
_MONSTER_ID_GENDERED(GASTRODON_EAST, 464),
_MONSTER_ID_GENDERED(GASTRODON_WEST, 465),
_MONSTER_ID_GENDERED(AMBIPOM, 466),
_MONSTER_ID_GENDERED(DRIFLOON, 467),
_MONSTER_ID_GENDERED(DRIFBLIM, 468),
_MONSTER_ID_GENDERED(BUNEARY, 469),
_MONSTER_ID_GENDERED(LOPUNNY, 470),
_MONSTER_ID_GENDERED(MISMAGIUS, 471),
_MONSTER_ID_GENDERED(HONCHKROW, 472),
_MONSTER_ID_GENDERED(GLAMEOW, 473),
_MONSTER_ID_GENDERED(PURUGLY, 474),
_MONSTER_ID_GENDERED(CHINGLING, 475),
_MONSTER_ID_GENDERED(STUNKY, 476),
_MONSTER_ID_GENDERED(SKUNTANK, 477),
_MONSTER_ID_GENDERED(BRONZOR, 478),
_MONSTER_ID_GENDERED(BRONZONG, 479),
_MONSTER_ID_GENDERED(BONSLY, 480),
_MONSTER_ID_GENDERED(MIME_JR, 481),
_MONSTER_ID_GENDERED(HAPPINY, 482),
_MONSTER_ID_GENDERED(CHATOT, 483),
_MONSTER_ID_GENDERED(SPIRITOMB, 484),
_MONSTER_ID_GENDERED(GIBLE, 485),
_MONSTER_ID_GENDERED(GABITE, 486),
_MONSTER_ID_GENDERED(GARCHOMP, 487),
_MONSTER_ID_GENDERED(MUNCHLAX, 488),
_MONSTER_ID_GENDERED(RIOLU, 489),
_MONSTER_ID_GENDERED(LUCARIO, 490),
_MONSTER_ID_GENDERED(HIPPOPOTAS, 491),
_MONSTER_ID_GENDERED(HIPPOWDON, 492),
_MONSTER_ID_GENDERED(SKORUPI, 493),
_MONSTER_ID_GENDERED(DRAPION, 494),
_MONSTER_ID_GENDERED(CROAGUNK, 495),
_MONSTER_ID_GENDERED(TOXICROAK, 496),
_MONSTER_ID_GENDERED(CARNIVINE, 497),
_MONSTER_ID_GENDERED(FINNEON, 498),
_MONSTER_ID_GENDERED(LUMINEON, 499),
_MONSTER_ID_GENDERED(MANTYKE, 500),
_MONSTER_ID_GENDERED(SNOVER, 501),
_MONSTER_ID_GENDERED(ABOMASNOW, 502),
_MONSTER_ID_GENDERED(WEAVILE, 503),
_MONSTER_ID_GENDERED(MAGNEZONE, 504),
_MONSTER_ID_GENDERED(LICKILICKY, 505),
_MONSTER_ID_GENDERED(RHYPERIOR, 506),
_MONSTER_ID_GENDERED(TANGROWTH, 507),
_MONSTER_ID_GENDERED(ELECTIVIRE, 508),
_MONSTER_ID_GENDERED(MAGMORTAR, 509),
_MONSTER_ID_GENDERED(TOGEKISS, 510),
_MONSTER_ID_GENDERED(YANMEGA, 511),
_MONSTER_ID_GENDERED(LEAFEON, 512),
_MONSTER_ID_GENDERED(GLACEON, 513),
_MONSTER_ID_GENDERED(GLISCOR, 514),
_MONSTER_ID_GENDERED(MAMOSWINE, 515),
_MONSTER_ID_GENDERED(PORYGON_Z, 516),
_MONSTER_ID_GENDERED(GALLADE, 517),
_MONSTER_ID_GENDERED(PROBOPASS, 518),
_MONSTER_ID_GENDERED(DUSKNOIR, 519),
_MONSTER_ID_GENDERED(FROSLASS, 520),
_MONSTER_ID_GENDERED(ROTOM, 521),
_MONSTER_ID_GENDERED(UXIE, 522),
_MONSTER_ID_GENDERED(MESPRIT, 523),
_MONSTER_ID_GENDERED(AZELF, 524),
_MONSTER_ID_GENDERED(DIALGA, 525),
_MONSTER_ID_GENDERED(PALKIA, 526),
_MONSTER_ID_GENDERED(HEATRAN, 527),
_MONSTER_ID_GENDERED(REGIGIGAS, 528),
_MONSTER_ID_GENDERED(GIRATINA_ALTERED, 529),
_MONSTER_ID_GENDERED(CRESSELIA, 530),
_MONSTER_ID_GENDERED(PHIONE, 531),
_MONSTER_ID_GENDERED(MANAPHY, 532),
_MONSTER_ID_GENDERED(DARKRAI, 533),
_MONSTER_ID_GENDERED(SHAYMIN_LAND, 534),
_MONSTER_ID_GENDERED(SHAYMIN_SKY, 535),
_MONSTER_ID_GENDERED(GIRATINA_ORIGIN, 536),
_MONSTER_ID_GENDERED(UNNAMED_0x219, 537),
_MONSTER_ID_GENDERED(UNNAMED_0x21A, 538),
_MONSTER_ID_GENDERED(UNNAMED_0x21B, 539),
_MONSTER_ID_GENDERED(UNNAMED_0x21C, 540),
_MONSTER_ID_GENDERED(UNNAMED_0x21D, 541),
_MONSTER_ID_GENDERED(UNNAMED_0x21E, 542),
_MONSTER_ID_GENDERED(UNNAMED_0x21F, 543),
_MONSTER_ID_GENDERED(UNNAMED_0x220, 544),
_MONSTER_ID_GENDERED(UNNAMED_0x221, 545),
_MONSTER_ID_GENDERED(UNNAMED_0x222, 546),
_MONSTER_ID_GENDERED(UNNAMED_0x223, 547),
_MONSTER_ID_GENDERED(UNNAMED_0x224, 548),
_MONSTER_ID_GENDERED(UNNAMED_0x225, 549),
_MONSTER_ID_GENDERED(UNNAMED_0x226, 550),
_MONSTER_ID_GENDERED(UNNAMED_0x227, 551),
_MONSTER_ID_GENDERED(PRIMAL_DIALGA, 552),
_MONSTER_ID_GENDERED(DECOY, 553),
_MONSTER_ID_GENDERED(STATUE, 554),
MONSTER_WIGGLYTUFF_STORY = 555,
MONSTER_REGIGIGAS_STORY = 556,
MONSTER_BRONZONG_STORY = 557,
MONSTER_HITMONLEE_STORY = 558,
MONSTER_CHIMECHO_STORY = 559,
MONSTER_WIGGLYTUFF_STORY_2 = 560,
MONSTER_UXIE_STORY = 561,
MONSTER_AZELF_STORY = 562,
MONSTER_MESPRIT_STORY = 563,
MONSTER_SUNFLORA_STORY = 564,
MONSTER_DIGLETT_STORY = 565,
MONSTER_DUGTRIO_STORY = 566,
MONSTER_CORPHISH_STORY = 567,
MONSTER_LOUDRED_STORY = 568,
MONSTER_BIDOOF_STORY = 569,
MONSTER_CHATOT_STORY = 570,
MONSTER_GROVYLE_STORY = 571,
MONSTER_DUSKNOIR_STORY = 572,
MONSTER_SABLEYE_STORY = 573,
MONSTER_DARKRAI_STORY = 574,
MONSTER_MAMA = 575,
MONSTER_GROVYLE_STORY_2 = 576,
MONSTER_DUSKNOIR_STORY_2 = 577,
MONSTER_DUSKNOIR_STORY_3 = 578,
MONSTER_SENTRET_DITTO = 579,
MONSTER_BELLOSSOM_DITTO = 580,
MONSTER_RESERVE_27 = 581,
MONSTER_RESERVE_28 = 582,
MONSTER_RESERVE_29 = 583,
MONSTER_RESERVE_30 = 584,
MONSTER_RESERVE_31 = 585,
MONSTER_RESERVE_32 = 586,
MONSTER_RESERVE_33 = 587,
MONSTER_RESERVE_34 = 588,
MONSTER_RESERVE_35 = 589,
MONSTER_RESERVE_36 = 590,
MONSTER_RESERVE_37 = 591,
MONSTER_RESERVE_38 = 592,
MONSTER_RESERVE_39 = 593,
MONSTER_RESERVE_40 = 594,
MONSTER_RESERVE_41 = 595,
MONSTER_RESERVE_42 = 596,
MONSTER_RESERVE_43 = 597,
MONSTER_RESERVE_44 = 598,
MONSTER_RESERVE_45 = 599,
};
#undef _MONSTER_ID_GENDERED
#endif //PMDSKY_MONSTER_ID_H

View File

@ -0,0 +1,41 @@
#ifndef PMDSKY_OVERLAY_15_0238A140_H
#define PMDSKY_OVERLAY_15_0238A140_H
#include "monster_id.h"
#include "window.h"
// Represents arguments that might be passed to the PreprocessString function
typedef struct {
u32 flag_vals[4]; // 0x0: These are usually IDs with additional flags attached to them
u32 id_vals[5]; // 0x10
int number_vals[5]; // 0x24
char* strings[5]; // 0x38
// 0x4C: An optional argument that is used to insert the name of a Pokémon
// When they're talking through a window. It requires its respective flag to be on
u32 speaker_id;
u8 fill88[0x88 - 0x3C];
u32 unkproc88;
} preprocessor_args;
typedef struct {
void* unk0;
u8 fill10[0x10 - 0x5];
u32 unk10;
u8 fill68[0x68 - 0x14];
s8 unk68;
u8 fill80[0x80 - 0x69];
s8 unk80;
s8 unk81;
u8 fill88[0x88 - 0x82];
enum monster_id unk88; //wrong probably
u8 fillAC[0xAC - 0x8C];
u32 unkAC;
u8 fillD4[0xD4 - 0xB0];
u32 unkD4;
u8 fillDC[0xDC - 0xD8];
portrait_params* unkDC;
} unkBankStruct;
u16 ov15_0238A140(void);
#endif //PMDSKY_OVERLAY_15_0238A140_H

20
include/window.h Normal file
View File

@ -0,0 +1,20 @@
#ifndef PMDSKY_WINDOW_H
#define PMDSKY_WINDOW_H
#include "monster_id.h"
// Represents the state of a portrait to be displayed inside a window
typedef struct {
enum monster_id monster_id; // 0x0: The species id, or the set index inside kaomado.kao
// 0x2: Index of the emote in the species set of portraits
u32 portrait_emotion;
u8 layout_idx; // 0x3: Represents the current layout to display the portrait
u32 offset_x; // 0x4: Tile offset (x / 8) in the X axis to draw the portrait
u32 offset_y; // 0x8: Tile offset (y / 8) in the Y axis to draw the portrait
u8 try_flip; // 0xC: Whether to try to get a flipped portrait from kaomado.kao
u8 has_flip; // 0xD: Whether the specified emote has a flipped variant
u8 hw_flip; // 0xE: Whether the portrait should be flipped using the hardware
u8 allow_default; // 0xF: If true, try using emote index 0 if the desired emote can't be found
} portrait_params;
#endif //PMDSKY_WINDOW_H

View File

@ -128,7 +128,8 @@ Overlay OVY_14
Overlay OVY_15
{
After OVY_11
Object asm/overlay_15.o
Object src/overlay_15_0238A140.o
Object asm/overlay_15_0238A234.o
Object src/overlay_15_0238AD78.o
Object asm/overlay_15_0238ADC4.o
Object src/overlay_15_0238AE6C.o

40
src/overlay_15_0238A140.c Normal file
View File

@ -0,0 +1,40 @@
#include "overlay_15_0238A140.h"
extern unkBankStruct* OVERLAY15_UNKNOWN_POINTER__NA_238B180;
extern void* MemAlloc(u32 len, u32 flags);
extern void InitPreprocessorArgs(preprocessor_args*);
extern u32 CreateDialogueBox(u32);
extern u32 CreatePortraitBox(u32, u32, u32);
extern void InitPortraitParamsWithMonsterId(portrait_params**, enum monster_id);
extern void SetPortraitLayout(portrait_params**, u32);
extern void SetPortraitEmotion(portrait_params**, u32);
extern void ShowPortraitInPortraitBox(u32, portrait_params**);
extern void ov15_0238A4E8(u32);
u16 ov15_0238A140(void)
{
void* memPtr = MemAlloc(0xec,8);
OVERLAY15_UNKNOWN_POINTER__NA_238B180 = memPtr;
InitPreprocessorArgs((preprocessor_args*)(&OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk88));
OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk80 = CreateDialogueBox(0);
OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk81 = CreatePortraitBox(0,3,1);
OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk68 = 0xFE;
OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk10 = 0;
OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk88 = MONSTER_DUSKULL;
OVERLAY15_UNKNOWN_POINTER__NA_238B180->unkAC = 0x270F;
OVERLAY15_UNKNOWN_POINTER__NA_238B180->unkD4 = 0x183;
OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk0 = 0;
InitPortraitParamsWithMonsterId(&OVERLAY15_UNKNOWN_POINTER__NA_238B180->unkDC, MONSTER_DUSKULL);
SetPortraitLayout(&OVERLAY15_UNKNOWN_POINTER__NA_238B180->unkDC,0);
SetPortraitEmotion(&OVERLAY15_UNKNOWN_POINTER__NA_238B180->unkDC,0);
ShowPortraitInPortraitBox(OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk81, &OVERLAY15_UNKNOWN_POINTER__NA_238B180->unkDC);
ov15_0238A4E8(0);
return 1;
}