decompile more of code_2 and move some data

This commit is contained in:
Seth Barberee 2024-12-14 09:01:36 -08:00
parent ad0ec301b9
commit fb98bb9ec1
7 changed files with 342 additions and 652 deletions

View File

@ -1059,556 +1059,4 @@ _08000EC6:
bx r1
thumb_func_end sub_80009D0
thumb_func_start SaveLoadRelated_8000EDC
SaveLoadRelated_8000EDC:
push {r4-r7,lr}
sub sp, 0x8
adds r4, r0, 0
movs r5, 0x1
ldr r0, _08000F24
str r5, [r0]
movs r0, 0x3
bl sub_800A8F8
bl sub_8014144
add r1, sp, 0x4
mov r0, sp
bl sub_8043D50
ldr r0, [sp]
movs r1, 0x7
bl MemoryAlloc
str r0, [r4, 0x74]
ldr r0, [sp, 0x4]
movs r1, 0x7
bl MemoryAlloc
str r0, [r4, 0x78]
ldrb r0, [r4, 0x8]
cmp r0, 0
beq _08000F68
ldr r0, [r4, 0x74]
ldr r1, [sp]
bl PrepareQuickSaveRead
adds r7, r4, 0
adds r7, 0x7C
b _08000F2E
.align 2, 0
_08000F24: .4byte gUnknown_203B03C
_08000F28:
movs r0, 0
bl xxx_update_stuff
_08000F2E:
bl ReadQuickSave
lsls r0, 24
cmp r0, 0
bne _08000F28
bl IsQuickSaveValid
lsls r0, 24
lsrs r5, r0, 24
bl FinishQuickSaveRead
bl sub_8011830
cmp r5, 0
beq _08000F58
ldr r0, _08000F54
bl sub_80121E0
b _08000F5E
.align 2, 0
_08000F54: .4byte 0x000f1208
_08000F58:
ldr r0, _08000F64
bl sub_80121E0
_08000F5E:
bl xxx_call_start_bg_music
b _08000F78
.align 2, 0
_08000F64: .4byte 0x000f1209
_08000F68:
bl GeneratePelipperJobs
bl sub_80961B4
bl sub_808ED00
adds r7, r4, 0
adds r7, 0x7C
_08000F78:
cmp r5, 0
beq _08000F92
adds r0, r4, 0
bl xxx_dungeon_8001340
bl sub_8099648
bl SetWindowBGColor
movs r0, 0
bl sub_8099690
b _08000F96
_08000F92:
movs r0, 0x5
strh r0, [r7]
_08000F96:
adds r5, r7, 0
movs r1, 0
ldrsh r0, [r5, r1]
movs r6, 0x2
negs r6, r6
cmp r0, r6
bne _08000FAC
adds r0, r4, 0
adds r0, 0x84
bl sub_809542C
_08000FAC:
movs r1, 0
ldrsh r0, [r5, r1]
cmp r0, 0x3
beq _08000FB8
cmp r0, r6
bne _0800100C
_08000FB8:
adds r0, r4, 0
adds r0, 0x80
bl SetDungeonLocationInfo
bl xxx_call_stop_bgm
movs r1, 0
ldrsh r0, [r7, r1]
cmp r0, r6
bne _08000FD8
ldr r0, [r4, 0x74]
ldr r1, [sp]
movs r2, 0x1
bl PrepareQuickSaveWrite
b _08000FFA
_08000FD8:
ldr r0, [r4, 0x74]
ldr r1, [sp]
movs r2, 0
bl PrepareQuickSaveWrite
b _08000FFA
_08000FE4:
cmp r0, 0x1
bne _08000FF4
ldr r0, [r4, 0x78]
bl MemoryFree
ldr r0, [r4, 0x74]
bl MemoryFree
_08000FF4:
movs r0, 0
bl xxx_update_stuff
_08000FFA:
bl WriteQuickSave
cmp r0, 0x2
beq _08001006
cmp r0, 0x3
bne _08000FE4
_08001006:
bl FinishQuickSaveWrite
b _0800101C
_0800100C:
bl sub_808ED00
ldr r0, [r4, 0x78]
bl MemoryFree
ldr r0, [r4, 0x74]
bl MemoryFree
_0800101C:
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end SaveLoadRelated_8000EDC
thumb_func_start sub_8001024
sub_8001024:
push {r4,lr}
ldr r1, _08001040
ldm r1!, {r2-r4}
stm r0!, {r2-r4}
ldm r1!, {r2-r4}
stm r0!, {r2-r4}
ldm r1!, {r2-r4}
stm r0!, {r2-r4}
ldm r1!, {r2-r4}
stm r0!, {r2-r4}
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08001040: .4byte gPersonalityRelated_203B040
thumb_func_end sub_8001024
thumb_func_start sub_8001044
sub_8001044:
push {r4,lr}
ldr r1, _08001060
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08001060: .4byte gPersonalityRelated_203B040
thumb_func_end sub_8001044
thumb_func_start sub_8001064
sub_8001064:
push {r4,r5,lr}
sub sp, 0x28
bl GetPlayerPokemonStruct
cmp r0, 0
bne _080010AE
ldr r5, _0800109C
ldrb r0, [r5, 0x8]
cmp r0, 0
bne _080010A0
add r4, sp, 0x14
movs r0, 0x4
ldrsh r1, [r5, r0]
adds r0, r4, 0
bl CopyMonsterNameToBuffer
mov r0, sp
adds r1, r4, 0
bl CopyStringtoBuffer
movs r1, 0x4
ldrsh r0, [r5, r1]
movs r1, 0x1
mov r2, sp
bl sub_808CE74
b _080010AE
.align 2, 0
_0800109C: .4byte gPersonalityRelated_203B040
_080010A0:
movs r4, 0x4
ldrsh r0, [r5, r4]
adds r2, r5, 0
adds r2, 0x8
movs r1, 0x1
bl sub_808CE74
_080010AE:
bl sub_808D378
cmp r0, 0
bne _080010F2
ldr r5, _080010E0
ldrb r0, [r5, 0x1C]
cmp r0, 0
bne _080010E4
add r4, sp, 0x14
movs r0, 0x6
ldrsh r1, [r5, r0]
adds r0, r4, 0
bl CopyMonsterNameToBuffer
mov r0, sp
adds r1, r4, 0
bl CopyStringtoBuffer
movs r1, 0x6
ldrsh r0, [r5, r1]
movs r1, 0
mov r2, sp
bl sub_808CE74
b _080010F2
.align 2, 0
_080010E0: .4byte gPersonalityRelated_203B040
_080010E4:
movs r4, 0x6
ldrsh r0, [r5, r4]
adds r2, r5, 0
adds r2, 0x1C
movs r1, 0
bl sub_808CE74
_080010F2:
ldr r3, _08001164
movs r0, 0x4
ldrsh r1, [r3, r0]
cmp r1, 0
beq _08001126
ldr r2, _08001168
movs r4, 0x4
ldrsh r0, [r2, r4]
cmp r0, 0
beq _0800111C
cmp r1, r0
beq _0800111C
_0800110A:
adds r2, 0x8
movs r0, 0x4
ldrsh r1, [r2, r0]
cmp r1, 0
beq _0800111C
movs r4, 0x4
ldrsh r0, [r3, r4]
cmp r0, r1
bne _0800110A
_0800111C:
ldr r2, [r2]
movs r0, 0
movs r1, 0x27
bl SetScriptVarValue
_08001126:
ldr r3, _08001164
movs r0, 0x6
ldrsh r1, [r3, r0]
cmp r1, 0
beq _0800115A
ldr r2, _0800116C
movs r4, 0x4
ldrsh r0, [r2, r4]
cmp r0, 0
beq _08001150
cmp r1, r0
beq _08001150
_0800113E:
adds r2, 0x8
movs r0, 0x4
ldrsh r1, [r2, r0]
cmp r1, 0
beq _08001150
movs r4, 0x6
ldrsh r0, [r3, r4]
cmp r0, r1
bne _0800113E
_08001150:
ldr r2, [r2]
movs r0, 0
movs r1, 0x26
bl SetScriptVarValue
_0800115A:
add sp, 0x28
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08001164: .4byte gPersonalityRelated_203B040
_08001168: .4byte gBaseKindTable
_0800116C: .4byte gTalkKindTable
thumb_func_end sub_8001064
thumb_func_start sub_8001170
sub_8001170:
push {r4,lr}
sub sp, 0x8
add r4, sp, 0x4
movs r0, 0x63
strb r0, [r4]
mov r1, sp
adds r1, 0x2
mov r0, sp
bl sub_80992E0
lsls r0, 24
cmp r0, 0
beq _08001196
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_80A2740
b _080011BE
_08001196:
adds r0, r4, 0
bl sub_8099328
lsls r0, 24
cmp r0, 0
bne _080011C0
adds r0, r4, 0
bl sub_8099360
lsls r0, 24
cmp r0, 0
bne _080011C0
mov r0, sp
adds r0, 0x5
bl sub_8099394
lsls r0, 24
cmp r0, 0
beq _080011C0
movs r0, 0x3F
_080011BE:
strb r0, [r4]
_080011C0:
ldrb r0, [r4]
add sp, 0x8
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8001170
thumb_func_start sub_80011CC
sub_80011CC:
push {r4,r5,lr}
adds r4, r0, 0
movs r5, 0
strb r1, [r4]
strb r5, [r4, 0x1]
bl sub_80011E8
strb r5, [r4, 0xB]
strb r5, [r4, 0x4]
strb r5, [r4, 0xC]
strb r5, [r4, 0xD]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80011CC
thumb_func_start sub_80011E8
sub_80011E8:
push {r4,lr}
adds r4, r0, 0
movs r0, 0x8
bl sub_80023E4
strb r0, [r4, 0x5]
movs r0, 0x3
bl sub_80023E4
strb r0, [r4, 0x6]
movs r0, 0x7
bl sub_80023E4
strb r0, [r4, 0x8]
movs r0, 0
bl sub_80023E4
strb r0, [r4, 0x9]
movs r0, 0x5
bl sub_80023E4
strb r0, [r4, 0xA]
movs r0, 0x18
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0800123C
movs r0, 0x19
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0800123C
movs r0, 0x1A
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0800123C
movs r0, 0x1
b _0800123E
_0800123C:
movs r0, 0
_0800123E:
strb r0, [r4, 0x7]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80011E8
thumb_func_start sub_8001248
sub_8001248:
push {r4,r5,lr}
movs r4, 0
movs r5, 0
_0800124E:
movs r0, 0x64
bl RandInt
cmp r0, 0x31
bgt _08001266
lsls r0, r4, 2
ldr r1, _080012B8
ldr r1, [r1]
adds r0, r1
strb r5, [r0, 0x2]
strb r5, [r0, 0x1]
strb r5, [r0]
_08001266:
adds r4, 0x1
cmp r4, 0x13
ble _0800124E
bl FillInventoryGaps
movs r4, 0
ldr r5, _080012BC
movs r3, 0x1
_08001276:
movs r0, 0x58
adds r1, r4, 0
muls r1, r0
ldr r0, [r5]
adds r1, r0, r1
ldrh r2, [r1]
adds r0, r3, 0
ands r0, r2
cmp r0, 0
beq _08001298
lsrs r0, r2, 1
ands r0, r3
cmp r0, 0
beq _08001298
adds r1, 0x28
movs r0, 0
strb r0, [r1]
_08001298:
adds r4, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r4, r0
ble _08001276
ldr r0, _080012B8
ldr r0, [r0]
movs r1, 0x98
lsls r1, 2
adds r0, r1
movs r1, 0
str r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080012B8: .4byte gTeamInventoryRef
_080012BC: .4byte gRecruitedPokemonRef
thumb_func_end sub_8001248
thumb_func_start sub_80012C0
sub_80012C0:
push {r4,r5,lr}
movs r3, 0
ldr r4, _08001324
movs r2, 0
_080012C8:
lsls r1, r3, 2
ldr r0, [r4]
adds r1, r0
strb r2, [r1, 0x2]
strb r2, [r1, 0x1]
strb r2, [r1]
adds r3, 0x1
cmp r3, 0x13
ble _080012C8
bl FillInventoryGaps
movs r3, 0
ldr r5, _08001328
movs r4, 0x1
_080012E4:
movs r0, 0x58
adds r1, r3, 0
muls r1, r0
ldr r0, [r5]
adds r1, r0, r1
ldrh r2, [r1]
adds r0, r4, 0
ands r0, r2
cmp r0, 0
beq _08001306
lsrs r0, r2, 1
ands r0, r4
cmp r0, 0
beq _08001306
adds r1, 0x28
movs r0, 0
strb r0, [r1]
_08001306:
adds r3, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r3, r0
ble _080012E4
ldr r0, _08001324
ldr r0, [r0]
movs r1, 0x98
lsls r1, 2
adds r0, r1
movs r1, 0
str r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08001324: .4byte gTeamInventoryRef
_08001328: .4byte gRecruitedPokemonRef
thumb_func_end sub_80012C0
.align 2,0
.align 2,0

View File

@ -3,61 +3,9 @@
@ START code_80130A8
.global gUnknown_80D48A0
gUnknown_80D48A0: @ 80D48A0
.byte 0x07, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00
.global gUnknown_80D48AC
gUnknown_80D48AC: @ 80D48AC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80D48C4
gUnknown_80D48C4: @ 80D48C4
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x0f, 0x00
.byte 0x1a, 0x00, 0x05, 0x00
.byte 0x07, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80D48DC
gUnknown_80D48DC: @ 80D48DC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x08, 0x00
.byte 0x1a, 0x00, 0x05, 0x00
.byte 0x07, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gSpeakerNameSeparator
gSpeakerNameSeparator: @ 80D48F4
.byte 0x3A, 0x20, 0x00, 0x00 @ maybe just a colon and space
.global gUnknown_80D48F8
gUnknown_80D48F8: @ 80D48F8
.string "????\0"
.align 2,0
.global gUnknown_80D4900
gUnknown_80D4900: @ 80D4900
.string "%d\0"
.align 2,0
.global gUnknown_80D4904
gUnknown_80D4904: @ 80D4904
.string "%*d\0"
.align 2,0
.global gUnknown_80D4908
gUnknown_80D4908: @ 80D4908
.string "%0*d\0"
.asciz "%0*d"
.align 2,0
.global gUnknown_80D4910

View File

@ -0,0 +1,36 @@
#ifndef GUARD_STR_DUNGEON_8042F6C_H
#define GUARD_STR_DUNGEON_8042F6C_H
#include "structs/str_dungeon.h"
#include "structs/str_dungeon_location.h"
#include "structs/str_pokemon.h"
#include "structs/str_wonder_mail.h"
struct UnkStruct_xxx_dungeon_8042F6C
{
u8 unk0;
DungeonLocation unk4;
u8 unk8;
u8 unk9;
u8 unkA;
u8 unkB;
u8 unkC;
u8 unkD;
u8 unkE;
u8 unkF;
u8 unk10;
u8 unk11;
unkStruct_Dungeon64C unk14;
PokemonStruct1 unk1C;
u8 *unk74;
Dungeon *unk78;
s16 unk7C;
u8 unk7E;
DungeonLocation unk80;
WonderMailSub unk84;
};
void xxx_dungeon_8042F6C(struct UnkStruct_xxx_dungeon_8042F6C *r8);
#endif // GUARD_STR_DUNGEON_8042F6C_H

View File

@ -79,4 +79,4 @@ typedef struct WonderMailStruct_203B2C0_sub
/* 0x30 */ PokemonStruct1 pokemon;
} WonderMailStruct_203B2C0_sub;
#endif // GUARD_STR_WONDER_MAIL_H
#endif // GUARD_STR_WONDER_MAIL_H

View File

@ -1,16 +1,276 @@
#include "global.h"
#include "structs/str_dungeon_8042F6C.h"
#include "structs/str_wonder_mail.h"
#include "code_80118A4.h"
#include "code_80A26CC.h"
#include "code_8099360.h"
#include "event_flag.h"
#include "items.h"
#include "memory.h"
#include "pokemon.h"
#include "quick_save_read.h"
#include "quick_save_write.h"
#include "random.h"
#include "save.h"
#include "string_format.h"
#include "text_util.h"
extern void xxx_dungeon_8042F6C(u32 r0);
extern void NDS_LoadOverlay_GroundMain();
extern u32 xxx_script_related_8098468(u32);
extern u8 sub_80992E0(s16 *, s16 *);
extern bool8 sub_8099328(u8 *dungeonId);
extern bool8 sub_8099360(u8 *);
extern u8 sub_8099394(u8 *);
extern void GeneratePelipperJobs();
extern void sub_8043D50(s32 *a0, s32 *a1);
extern void xxx_update_stuff(u32);
extern void sub_80961B4();
extern void sub_808ED00();
extern void SetDungeonLocationInfo(DungeonLocation *dl);
extern void sub_808CE74(s16, bool32, u8*);
void xxx_dungeon_8001340(struct UnkStruct_xxx_dungeon_8042F6C *r0);
void sub_80011E8(u8 *param_1);
void sub_809542C(WonderMailSub *param_1);
struct unkTalkTable
{
u32 unk0;
s16 species;
};
extern struct unkTalkTable gTalkKindTable[];
extern struct unkTalkTable gBaseKindTable[];
// size: 0x30
struct PersonalityRelated
{
u8 fill0[4];
s16 speciesID1;
s16 speciesID2;
u8 speciesName1[0x14];
u8 speciesName2[0x14];
};
struct PersonalityRelated gPersonalityRelated_203B040;
extern u32 gUnknown_203B03C;
void SaveLoadRelated_8000EDC(struct UnkStruct_xxx_dungeon_8042F6C *param_1)
{
u8 quickSaveValid;
s32 quickSaveStatus;
s32 local_1c; // 0x4800
s32 local_18; // sizeof(Dungeon)
quickSaveValid = TRUE;
gUnknown_203B03C = 1;
sub_800A8F8(3);
sub_8014144();
sub_8043D50(&local_1c,&local_18);
param_1->unk74 = MemoryAlloc(local_1c,7); // size: 0x4800
param_1->unk78 = MemoryAlloc(local_18,7); // size: sizeof(Dungeon)
if (param_1->unk8) {
PrepareQuickSaveRead(param_1->unk74,local_1c);
while( TRUE ) {
if (!ReadQuickSave()) break;
xxx_update_stuff(0);
}
quickSaveValid = IsQuickSaveValid();
FinishQuickSaveRead();
sub_8011830();
if (quickSaveValid) {
sub_80121E0(0xf1208);
}
else {
sub_80121E0(0xf1209);
}
xxx_call_start_bg_music();
}
else {
GeneratePelipperJobs();
sub_80961B4();
sub_808ED00();
}
if (quickSaveValid) {
xxx_dungeon_8001340(param_1);
sub_8099648();
SetWindowBGColor();
sub_8099690(0);
}
else {
param_1->unk7C = 5;
}
if (param_1->unk7C == -2) {
sub_809542C(&param_1->unk84);
}
if ((param_1->unk7C == 3) || (param_1->unk7C == -2)) {
SetDungeonLocationInfo(&param_1->unk80);
xxx_call_stop_bgm();
if (param_1->unk7C == -2) {
PrepareQuickSaveWrite(param_1->unk74,local_1c,1);
}
else {
PrepareQuickSaveWrite(param_1->unk74,local_1c,0);
}
while ((quickSaveStatus = WriteQuickSave(), (quickSaveStatus != 2))) {
if (quickSaveStatus == 3) break;
if (quickSaveStatus == 1) {
MemoryFree(param_1->unk78);
MemoryFree(param_1->unk74);
}
xxx_update_stuff(0);
}
FinishQuickSaveWrite();
}
else {
sub_808ED00();
MemoryFree(param_1->unk78);
MemoryFree(param_1->unk74);
}
}
void sub_8001024(struct PersonalityRelated *r0)
{
*r0 = gPersonalityRelated_203B040;
}
void sub_8001044(struct PersonalityRelated *r0)
{
gPersonalityRelated_203B040 = *r0;
}
void sub_8001064(void)
{
struct unkTalkTable *psVar2;
u8 buffer2 [20];
u8 buffer1 [20];
if (GetPlayerPokemonStruct() == NULL) {
if (gPersonalityRelated_203B040.speciesName1[0] == '\0') {
CopyMonsterNameToBuffer(buffer1,gPersonalityRelated_203B040.speciesID1);
CopyStringtoBuffer(buffer2,buffer1);
sub_808CE74(gPersonalityRelated_203B040.speciesID1,TRUE,buffer2);
}
else {
sub_808CE74(gPersonalityRelated_203B040.speciesID1,TRUE,gPersonalityRelated_203B040.speciesName1);
}
}
if (sub_808D378() == NULL) {
if (gPersonalityRelated_203B040.speciesName2[0] == '\0') {
CopyMonsterNameToBuffer(buffer1,gPersonalityRelated_203B040.speciesID2);
CopyStringtoBuffer(buffer2,buffer1);
sub_808CE74(gPersonalityRelated_203B040.speciesID2,FALSE,buffer2);
}
else {
sub_808CE74(gPersonalityRelated_203B040.speciesID2,FALSE,gPersonalityRelated_203B040.speciesName2);
}
}
if (gPersonalityRelated_203B040.speciesID1 != MONSTER_NONE) {
psVar2 = &gBaseKindTable[0];
while ((psVar2->species != MONSTER_NONE && (gPersonalityRelated_203B040.speciesID1 != psVar2->species))) {
psVar2++;
}
SetScriptVarValue(NULL,BASE_KIND,psVar2->unk0);
}
if (gPersonalityRelated_203B040.speciesID2 != MONSTER_NONE) {
psVar2 = &gTalkKindTable[0];
while ((psVar2->species != MONSTER_NONE && (gPersonalityRelated_203B040.speciesID2 != psVar2->species))) {
psVar2++;
}
SetScriptVarValue(NULL,PARTNER_TALK_KIND,psVar2->unk0);
}
}
u8 sub_8001170(void)
{
s16 local_10;
s16 auStack_e;
u8 dungeonID;
u8 auStack_b;
dungeonID = 0x63;
if (sub_80992E0(&local_10,&auStack_e) != 0) {
dungeonID = sub_80A2740(local_10);
}
else {
if (!sub_8099328(&dungeonID) && (!sub_8099360(&dungeonID) && sub_8099394(&auStack_b) != 0)) {
dungeonID = 0x3F;
}
}
return dungeonID;
}
void sub_80011CC(u8 *param_1,u8 param_2)
{
u32 zero = 0;
param_1[0] = param_2;
param_1[1] = zero;
sub_80011E8(param_1);
param_1[0xb] = 0;
param_1[4] = 0;
param_1[0xc] = 0;
param_1[0xd] = 0;
}
void sub_80011E8(u8 *param_1)
{
param_1[5] = sub_80023E4(8);
param_1[6] = sub_80023E4(3);
param_1[8] = sub_80023E4(7);
param_1[9] = sub_80023E4(0);
param_1[10] = sub_80023E4(5);
if (sub_80023E4(0x18) && sub_80023E4(0x19) && sub_80023E4(0x1a)) {
param_1[7] = 1;
}
else {
param_1[7] = 0;
}
}
void sub_8001248(void)
{
s32 index;
s32 counter;
for(index = 0; index < INVENTORY_SIZE; index++)
{
counter = RandInt(100);
if(counter < 50)
ZeroOutItem(&gTeamInventoryRef->teamItems[index]);
}
FillInventoryGaps();
for(index = 0; index < NUM_MONSTERS; index++)
{
PokemonStruct1 *mon = &gRecruitedPokemonRef->pokemon[index];
if(PokemonFlag1(mon) && PokemonFlag2(mon))
mon->heldItem.id = ITEM_NOTHING;
}
gTeamInventoryRef->teamMoney = 0;
}
void sub_80012C0(void)
{
s32 index;
for(index = 0; index < INVENTORY_SIZE; index++)
{
ZeroOutItem(&gTeamInventoryRef->teamItems[index]);
}
FillInventoryGaps();
for(index = 0; index < NUM_MONSTERS; index++)
{
PokemonStruct1 *mon = &gRecruitedPokemonRef->pokemon[index];
if(PokemonFlag1(mon) && PokemonFlag2(mon))
mon->heldItem.id = ITEM_NOTHING;
}
gTeamInventoryRef->teamMoney = 0;
}
void NDS_LoadOverlay_GroundMain()
{
}
void nullsub_2(u32 r0)
void nullsub_2(struct UnkStruct_xxx_dungeon_8042F6C *r0)
{
}
@ -20,7 +280,7 @@ u32 xxx_script_related_8001334(u32 r0)
return xxx_script_related_8098468(r0);
}
void xxx_dungeon_8001340(u32 r0)
void xxx_dungeon_8001340(struct UnkStruct_xxx_dungeon_8042F6C *r0)
{
nullsub_2(r0);
xxx_dungeon_8042F6C(r0);

View File

@ -2,6 +2,7 @@
#include "dungeon_util_1.h"
#include "memory.h"
#include "structs/rgb.h"
#include "structs/str_dungeon_8042F6C.h"
#include "code_803E46C.h"
#include "code_800E9E4.h"
#include "code_800DAC0.h"
@ -250,35 +251,6 @@ extern u8 gUnknown_203B40C;
extern DungeonPos gUnknown_203B410;
extern u8 *gSerializedData_203B41C;
struct Substruct_xxx_dungeon_8042F6C
{
DungeonLocation a0;
u32 a4;
};
struct UnkStruct_xxx_dungeon_8042F6C
{
u8 unk0;
DungeonLocation unk4;
u8 unk8;
u8 unk9;
u8 unkA;
u8 unkB;
u8 unkC;
u8 unkD;
u8 unkE;
u8 unkF;
u8 unk10;
u8 unk11;
unkStruct_Dungeon64C unk14;
PokemonStruct1 unk1C;
u8 *unk74;
Dungeon *unk78;
s16 unk7C;
u8 unk7E;
DungeonLocation unk80;
struct Substruct_xxx_dungeon_8042F6C unk84;
};
extern void sub_8040094(u8 r0);
extern void sub_8068BDC(u8 r0);
@ -915,8 +887,8 @@ void xxx_dungeon_8042F6C(struct UnkStruct_xxx_dungeon_8042F6C *r8)
r8->unk7C = -2;
memset(&r8->unk84, 0, sizeof(r8->unk84));
r8->unk80 = gDungeon->unk644.dungeonLocation;
r8->unk84.a0 = gDungeon->unk644.dungeonLocation;
r8->unk84.a4 = gDungeon->unk644.unk38;
r8->unk84.dungeon = gDungeon->unk644.dungeonLocation;
r8->unk84.seed = gDungeon->unk644.unk38;
}
else {

View File

@ -83,7 +83,7 @@ struct SubStruct_203B198
u16 unkC; // x3C
u16 unkE; // x3E
u16 unk10; // x40
u8 fill12[0x48-0x42]; // x42
u8 fill12[6]; // x42
};
struct UnkStruct_203B198
@ -104,16 +104,42 @@ extern struct UnkStruct_203B198 gUnknown_203B198;
extern UnkTextStruct1 gUnknown_2027370[4];
extern void (*gUnknown_203B088)(s32 a0);
extern const struct SubStruct_203B198 gUnknown_80D48AC;
extern const struct UnkTextStruct2 gUnknown_80D48DC;
extern const struct UnkTextStruct2 gUnknown_80D48C4;
extern const u32 gUnknown_80D48A0[];
extern const u8 gUnknown_80D48F8[];
extern const u8 gUnknown_80D4900[];
extern const u8 gUnknown_80D4904[];
static const u32 gUnknown_80D48A0[] = {0x7, 0x2, 0x2};
static const struct SubStruct_203B198 gUnknown_80D48AC = {
0x00,
0x03,
0x00, 0x00,
0x00, 0x00,
0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
static const UnkTextStruct2 gUnknown_80D48C4 = {
0x00, 0x00, 0x00, 0x00,
0x00,
0x02, 0x0F,
0x1A, 0x05,
0x07, 0x00,
NULL
};
static const UnkTextStruct2 gUnknown_80D48DC = {
0x00, 0x00, 0x00, 0x00,
0x02,
0x02, 0x08,
0x1A, 0x05,
0x07, 0x00,
NULL
};
ALIGNED(4) static const u8 sSpeakerNameSeparator[] = ": ";
ALIGNED(4) static const u8 sUnknownTeamName[] = "????";
ALIGNED(4) static const u8 gUnknown_80D4900[] = "%d";
ALIGNED(4) static const u8 gUnknown_80D4904[] = "%*d" ;
extern const u8 gUnknown_80D4908[];
extern const u8 gUnknown_80D4910[];
extern const u8 gSpeakerNameSeparator[];
extern void SetCharacterMask(int a0);
extern void DisplayMonPortraitSprite(s32 a0, const u8 *compressedData, s32 a2);
@ -705,7 +731,7 @@ const u8 *FormatString(const u8 *str, u8 *dst, u8 *dstMax, u16 flags)
r9 = FALSE;
if (flags & 8) {
AppendString(gSpeakerNameBuffer, &dst, dstMax, flags);
AppendString(gSpeakerNameSeparator, &dst, dstMax, flags);
AppendString(sSpeakerNameSeparator, &dst, dstMax, flags);
}
}
else if (r9) {
@ -759,7 +785,7 @@ const u8 *FormatString(const u8 *str, u8 *dst, u8 *dstMax, u16 flags)
sub_80920D8(sFormatBuffer_TeamName);
}
else {
strcpy(sFormatBuffer_TeamName, gUnknown_80D48F8); // ????
strcpy(sFormatBuffer_TeamName, sUnknownTeamName); // ????
}
txtPtr = sFormatBuffer_TeamName;
break;