diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2022-03-21 17:48:40 -0700 |
---|---|---|
committer | Seth Barberee <seth.barberee@gmail.com> | 2022-03-21 17:48:40 -0700 |
commit | 57f540b320ae8439fe4b42c6149641b877c7ea73 (patch) | |
tree | d131e5351b684a671cb8b5c62a7e8ed925ca773e | |
parent | 46420815f4fd1f374ee48ee447bb42539e1a669c (diff) |
fix a few nonmatchings and code cleanup
-rw-r--r-- | asm/code_808417C.s | 8 | ||||
-rw-r--r-- | asm/code_80958E8.s | 14 | ||||
-rw-r--r-- | asm/wonder_mail_2.s | 10 | ||||
-rw-r--r-- | asm/wonder_mail_3.s | 2 | ||||
-rw-r--r-- | asm/wonder_mail_5.s | 312 | ||||
-rw-r--r-- | include/code_8094F88.h | 2 | ||||
-rw-r--r-- | include/global.h | 5 | ||||
-rw-r--r-- | include/pokemon.h | 9 | ||||
-rw-r--r-- | include/sub_8095228.h | 17 | ||||
-rwxr-xr-x | ld_script.txt | 1 | ||||
-rw-r--r-- | src/adventure_log.c | 34 | ||||
-rw-r--r-- | src/code_8095824.c | 12 | ||||
-rw-r--r-- | src/code_80972F4.c | 16 | ||||
-rw-r--r-- | src/code_8097670.c | 6 | ||||
-rw-r--r-- | src/code_8097DD0.c | 10 | ||||
-rw-r--r-- | src/code_80A26CC.c | 2 | ||||
-rw-r--r-- | src/dungeon_2.c | 12 | ||||
-rw-r--r-- | src/friend_rescue_1.c | 22 | ||||
-rw-r--r-- | src/music_pre.c | 349 | ||||
-rw-r--r-- | src/pokemon_3.c | 12 | ||||
-rw-r--r-- | src/post_office_guide.c | 125 | ||||
-rw-r--r-- | src/rescue_password_menu.c | 2 | ||||
-rw-r--r-- | src/thank_you_wonder_mail.c | 8 | ||||
-rw-r--r-- | src/wonder_mail.c | 12 | ||||
-rw-r--r-- | src/wonder_mail_2.c | 6 | ||||
-rw-r--r-- | src/wonder_mail_3.c | 4 | ||||
-rw-r--r-- | src/wonder_mail_802DF88.c | 41 |
27 files changed, 323 insertions, 730 deletions
diff --git a/asm/code_808417C.s b/asm/code_808417C.s index 03b4f3b..05c90be 100644 --- a/asm/code_808417C.s +++ b/asm/code_808417C.s @@ -213,7 +213,7 @@ sub_80842F0: _08084320: lsls r0, r6, 24 lsrs r0, 24 - bl sub_8096AB4 + bl GetJobSlotInfo adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0x6 @@ -300,7 +300,7 @@ sub_80843BC: _080843C6: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8096AB4 + bl GetJobSlotInfo adds r3, r0, 0 ldrb r0, [r3] cmp r0, 0x6 @@ -353,7 +353,7 @@ sub_8084424: _08084428: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8096AB4 + bl GetJobSlotInfo adds r1, r0, 0 ldrb r0, [r1] cmp r0, 0x8 @@ -760,7 +760,7 @@ sub_8084778: _08084784: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8096AB4 + bl GetJobSlotInfo adds r1, r0, 0 ldrb r0, [r1] cmp r0, 0x6 diff --git a/asm/code_80958E8.s b/asm/code_80958E8.s index e326783..904f41c 100644 --- a/asm/code_80958E8.s +++ b/asm/code_80958E8.s @@ -2019,7 +2019,7 @@ sub_80969D0: _080969DA: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8096AB4 + bl GetJobSlotInfo adds r1, r0, 0 ldrb r0, [r1, 0x4] cmp r0, r6 @@ -2054,7 +2054,7 @@ sub_8096A08: _08096A14: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8096AB4 + bl GetJobSlotInfo adds r2, r0, 0 ldrb r0, [r2, 0x4] cmp r0, r5 @@ -2139,8 +2139,8 @@ _08096AAE: bx r1 thumb_func_end sub_8096A78 - thumb_func_start sub_8096AB4 -sub_8096AB4: + thumb_func_start GetJobSlotInfo +GetJobSlotInfo: lsls r0, 24 lsrs r0, 24 ldr r2, _08096AC8 @@ -2153,7 +2153,7 @@ sub_8096AB4: bx lr .align 2, 0 _08096AC8: .4byte gUnknown_203B490 - thumb_func_end sub_8096AB4 + thumb_func_end GetJobSlotInfo thumb_func_start IsJobSlotEmpty IsJobSlotEmpty: @@ -2191,7 +2191,7 @@ sub_8096AF8: lsrs r0, 24 lsls r4, 24 lsrs r4, 24 - bl sub_8096AB4 + bl GetJobSlotInfo adds r3, r0, 0 movs r1, 0 strb r1, [r5] @@ -2275,7 +2275,7 @@ sub_8096B98: _08096BA0: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8096AB4 + bl GetJobSlotInfo adds r1, r0, 0 ldrb r0, [r1] cmp r0, 0x6 diff --git a/asm/wonder_mail_2.s b/asm/wonder_mail_2.s index 19e314f..96e0130 100644 --- a/asm/wonder_mail_2.s +++ b/asm/wonder_mail_2.s @@ -1098,7 +1098,7 @@ _0802C7B4: adds r0, r5 adds r1, r0 ldrb r0, [r1] - bl sub_8096AB4 + bl GetJobSlotInfo adds r4, r0, 0 ldr r0, [r6] ldr r1, [r0, 0x3C] @@ -1459,7 +1459,7 @@ _0802CA7C: .4byte gUnknown_203B2F0 _0802CA80: ldr r0, [r4] ldrb r0, [r0, 0xC] - bl sub_8096AB4 + bl GetJobSlotInfo ldr r1, [r4] adds r1, 0x10 bl sub_803B35C @@ -1482,7 +1482,7 @@ sub_802CAA4: ldr r5, _0802CAC8 ldr r0, [r5] ldrb r0, [r0, 0xC] - bl sub_8096AB4 + bl GetJobSlotInfo adds r4, r0, 0 ldr r2, [r5] ldr r0, [r2] @@ -1759,7 +1759,7 @@ _0802CCD8: ldr r0, _0802CCF0 ldr r0, [r0] ldrb r0, [r0, 0xC] - bl sub_8096AB4 + bl GetJobSlotInfo movs r1, 0x6 b _0802CD06 .align 2, 0 @@ -1771,7 +1771,7 @@ _0802CCF4: ldr r0, _0802CD14 ldr r0, [r0] ldrb r0, [r0, 0xC] - bl sub_8096AB4 + bl GetJobSlotInfo movs r1, 0x5 _0802CD06: strb r1, [r0] diff --git a/asm/wonder_mail_3.s b/asm/wonder_mail_3.s index 043c1e7..0f14aa9 100644 --- a/asm/wonder_mail_3.s +++ b/asm/wonder_mail_3.s @@ -662,7 +662,7 @@ sub_802DAA8: ldr r4, _0802DAD0 ldr r0, [r4] ldrb r0, [r0, 0x10] - bl sub_8096AB4 + bl GetJobSlotInfo adds r1, r0, 0 ldr r4, [r4] ldrb r0, [r4, 0x9] diff --git a/asm/wonder_mail_5.s b/asm/wonder_mail_5.s deleted file mode 100644 index 86b83e0..0000000 --- a/asm/wonder_mail_5.s +++ /dev/null @@ -1,312 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start DisplayMissionObjectives -DisplayMissionObjectives: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xDC - ldr r7, _08031B24 - ldr r0, [r7] - ldr r0, [r0, 0x10] - bl sub_80073B8 - ldr r2, _08031B28 - ldr r0, [r7] - ldr r3, [r0, 0x10] - movs r6, 0 - str r6, [sp] - movs r0, 0xA - movs r1, 0 - bl xxx_call_draw_string - ldr r1, [r7] - ldrb r0, [r1, 0xC] - cmp r0, 0x1 - beq _08031B2C - cmp r0, 0x1 - bgt _08031B1E - b _08031CD4 -_08031B1E: - cmp r0, 0x2 - beq _08031B94 - b _08031CD4 - .align 2, 0 -_08031B24: .4byte gUnknown_203B330 -_08031B28: .4byte gUnknown_80E1F30 -_08031B2C: - add r4, sp, 0x68 - adds r0, r4, 0 - bl sub_8099394 - ldrb r0, [r4] - bl sub_8095228 - adds r5, r0, 0 - ldr r0, [r7] - ldr r3, [r0, 0x10] - movs r0, 0xA - movs r1, 0x10 - movs r2, 0x3 - bl sub_803B6B0 - ldr r1, _08031B8C - ldrb r2, [r5, 0x5] - add r0, sp, 0x4 - bl sprintf_2 - ldr r0, [r7] - ldr r3, [r0, 0x10] - str r6, [sp] - movs r0, 0x15 - movs r1, 0x10 - add r2, sp, 0x4 - bl xxx_call_draw_string - ldr r4, _08031B90 - movs r1, 0xC - ldrsh r0, [r5, r1] - bl GetMonSpecies - adds r2, r0, 0 - add r0, sp, 0x4 - adds r1, r4, 0 - bl sprintf_2 - ldr r0, [r7] - ldr r3, [r0, 0x10] - str r6, [sp] - movs r0, 0x28 - movs r1, 0x10 - add r2, sp, 0x4 - bl xxx_call_draw_string - b _08031D4E - .align 2, 0 -_08031B8C: .4byte gUnknown_80E1F3C -_08031B90: .4byte gUnknown_80E1F40 -_08031B94: - ldrb r0, [r1, 0xD] - bl sub_80969D0 - adds r1, r0, 0 - cmp r1, 0 - bne _08031BB0 - ldr r2, _08031BAC - ldr r0, [r7] - ldr r3, [r0, 0x10] - str r1, [sp] - b _08031D2C - .align 2, 0 -_08031BAC: .4byte gUnknown_80E1F54 -_08031BB0: - movs r6, 0x10 - movs r2, 0 - mov r10, r2 - mov r8, r2 - ldr r0, _08031C28 - mov r9, r0 - mov r1, sp - adds r1, 0x6C - str r1, [sp, 0xD8] -_08031BC2: - mov r2, r10 - lsls r0, r2, 24 - lsrs r0, 24 - bl sub_8096AB4 - adds r4, r0, 0 - ldr r1, [r7] - ldrb r0, [r4, 0x4] - ldrb r2, [r1, 0xD] - cmp r0, r2 - bne _08031CC2 - ldrb r0, [r4] - cmp r0, 0 - beq _08031CC2 - cmp r0, 0x5 - beq _08031CC2 - cmp r0, 0x7 - beq _08031CC2 - ldr r3, [r1, 0x10] - movs r0, 0xA - adds r1, r6, 0 - movs r2, 0x3 - bl sub_803B6B0 - ldrb r0, [r4, 0x1] - add r5, sp, 0x6C - cmp r0, 0x3 - beq _08031C16 - ldrb r2, [r4, 0x5] - ldr r0, [sp, 0xD8] - ldr r1, _08031C2C - bl sprintf_2 - ldr r0, [r7] - ldr r3, [r0, 0x10] - mov r0, r8 - str r0, [sp] - movs r0, 0x15 - adds r1, r6, 0 - ldr r2, [sp, 0xD8] - bl xxx_call_draw_string -_08031C16: - ldrb r0, [r4, 0x1] - cmp r0, 0x3 - beq _08031C58 - cmp r0, 0x3 - bgt _08031C30 - cmp r0, 0x2 - beq _08031C70 - b _08031C9C - .align 2, 0 -_08031C28: .4byte gUnknown_202DE58 -_08031C2C: .4byte gUnknown_80E1F3C -_08031C30: - cmp r0, 0x4 - bne _08031C9C - ldrb r1, [r4, 0x10] - mov r0, r9 - movs r2, 0 - bl sub_8090DC4 - adds r0, r5, 0 - ldr r1, _08031C54 - mov r2, r9 - bl sprintf_2 - ldr r0, [r7] - ldr r3, [r0, 0x10] - mov r1, r8 - str r1, [sp] - b _08031C8A - .align 2, 0 -_08031C54: .4byte gUnknown_80E1F60 -_08031C58: - ldrb r1, [r4, 0x10] - mov r0, r9 - movs r2, 0 - bl sub_8090DC4 - adds r0, r5, 0 - ldr r1, _08031C6C - mov r2, r9 - b _08031C7E - .align 2, 0 -_08031C6C: .4byte gUnknown_80E1F70 -_08031C70: - movs r1, 0xE - ldrsh r0, [r4, r1] - bl GetMonSpecies - adds r2, r0, 0 - adds r0, r5, 0 - ldr r1, _08031C98 -_08031C7E: - bl sprintf_2 - ldr r0, [r7] - ldr r3, [r0, 0x10] - mov r2, r8 - str r2, [sp] -_08031C8A: - movs r0, 0x28 - adds r1, r6, 0 - adds r2, r5, 0 - bl xxx_call_draw_string - b _08031CC0 - .align 2, 0 -_08031C98: .4byte gUnknown_80E1F80 -_08031C9C: - movs r1, 0xE - ldrsh r0, [r4, r1] - bl GetMonSpecies - adds r2, r0, 0 - adds r0, r5, 0 - ldr r1, _08031CD0 - bl sprintf_2 - ldr r0, [r7] - ldr r3, [r0, 0x10] - mov r2, r8 - str r2, [sp] - movs r0, 0x28 - adds r1, r6, 0 - adds r2, r5, 0 - bl xxx_call_draw_string -_08031CC0: - adds r6, 0xC -_08031CC2: - movs r0, 0x1 - add r10, r0 - mov r1, r10 - cmp r1, 0x7 - bgt _08031CCE - b _08031BC2 -_08031CCE: - b _08031D4E - .align 2, 0 -_08031CD0: .4byte gUnknown_80E1F40 -_08031CD4: - add r0, sp, 0xD0 - mov r4, sp - adds r4, 0xD2 - adds r1, r4, 0 - bl sub_80992E0 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _08031D04 - movs r2, 0 - ldrsh r0, [r4, r2] - bl GetCurrentMissionText - adds r2, r0, 0 - ldr r0, _08031D00 - ldr r0, [r0] - ldr r3, [r0, 0x10] - movs r0, 0 - str r0, [sp] - b _08031D2C - .align 2, 0 -_08031D00: .4byte gUnknown_203B330 -_08031D04: - add r4, sp, 0xD4 - adds r0, r4, 0 - bl sub_8099360 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _08031D3C - ldrb r0, [r4] - bl sub_80A2688 - lsls r0, 16 - asrs r0, 16 - bl sub_80975DC - adds r2, r0, 0 - ldr r0, _08031D38 - ldr r0, [r0] - ldr r3, [r0, 0x10] - str r5, [sp] -_08031D2C: - movs r0, 0xA - movs r1, 0x10 - bl xxx_call_draw_string - b _08031D4E - .align 2, 0 -_08031D38: .4byte gUnknown_203B330 -_08031D3C: - ldr r2, _08031D68 - ldr r0, _08031D6C - ldr r0, [r0] - ldr r3, [r0, 0x10] - str r1, [sp] - movs r0, 0xA - movs r1, 0x10 - bl xxx_call_draw_string -_08031D4E: - ldr r0, _08031D6C - ldr r0, [r0] - ldr r0, [r0, 0x10] - bl sub_80073E0 - add sp, 0xDC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08031D68: .4byte gUnknown_80E1F94 -_08031D6C: .4byte gUnknown_203B330 - thumb_func_end DisplayMissionObjectives - - .align 2,0 diff --git a/include/code_8094F88.h b/include/code_8094F88.h index 32ef7a5..9af6c7a 100644 --- a/include/code_8094F88.h +++ b/include/code_8094F88.h @@ -4,7 +4,7 @@ struct unkStruct_203B480 { u8 unk0; - struct unkPokeSubStruct_4 unk4; + struct DungeonLocation unk4; u32 unk8; u32 unkC; u32 unk10; diff --git a/include/global.h b/include/global.h index 81388a8..5c71009 100644 --- a/include/global.h +++ b/include/global.h @@ -32,4 +32,9 @@ #define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0])) +struct DungeonLocation { + u8 dungeonIndex; + u8 dungeonFloor; +}; + #endif // GUARD_GLOBAL_H diff --git a/include/pokemon.h b/include/pokemon.h index c50dc75..6b514c8 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -19,11 +19,6 @@ struct Offense { u8 def[2]; }; -struct unkPokeSubStruct_4 { - u8 dungeonIndex; - u8 dungeonFloor; -}; - struct unkPokeSubStruct_C { u8 unk0; @@ -36,7 +31,7 @@ struct PokemonStruct /* 0x0 */ u16 unk0; // recruited?? /* 0x1 */ bool8 isLeader; /* 0x3 */ u8 unkHasNextStage; // set to a random value? - /* 0x4 */ struct unkPokeSubStruct_4 unk4; + /* 0x4 */ struct DungeonLocation unk4; /* 0x8 */ s16 speciesNum; // species # /* 0xC */ struct unkPokeSubStruct_C unkC[2]; /* 0x14 */ s16 IQ; @@ -77,7 +72,7 @@ struct PokemonStruct2 u16 unk0; // corresponds to unk0 inPokemonStruct bool8 isLeader; // unk2 u8 unkHasNextStage; // unk3 - struct unkPokeSubStruct_4 unk4; // unk4 + struct DungeonLocation unk4; // unk4 u16 IQ; // IQ (other offset) u16 unkA; u16 unkC; diff --git a/include/sub_8095228.h b/include/sub_8095228.h index 3fd5993..9541d20 100644 --- a/include/sub_8095228.h +++ b/include/sub_8095228.h @@ -3,13 +3,16 @@ struct unkStruct_8095228 { - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - u8 unk4; - u8 padding[0x10 - 0x5]; - u32 unk10; + /* 0x0 */ u8 mailType; // mail type + /* 0x1 */ u8 missionType; // mission type + /* 0x2 */ u8 unk2; + /* 0x3 */ u8 unk3; + /* 0x4 */ u8 dungeon; // dungeon + /* 0x5 */ u8 floor; // floor + /* 0x8 */ u32 unk8; + /* 0xC */ s16 clientSpecies; // client pokemon + /* 0xE */ s16 targetSpecies; // target + u32 unk10; // TODO: verify that this is just a union of the 4 bytes in Wonder Mail u8 padding2[0x20 - 0x14]; struct ItemSlot unk20; u8 padding3[0x28 - 0x24]; diff --git a/ld_script.txt b/ld_script.txt index 13ffffd..87983a0 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -143,7 +143,6 @@ SECTIONS { src/wonder_mail_4.o(.text); asm/wonder_mail_4.o(.text); src/post_office_guide.o(.text); - asm/wonder_mail_5.o(.text); asm/code_8031D70.o(.text); src/adventure_log.o(.text); src/friend_rescue.o(.text); diff --git a/src/adventure_log.c b/src/adventure_log.c index 9480361..bf0424b 100644 --- a/src/adventure_log.c +++ b/src/adventure_log.c @@ -202,29 +202,30 @@ void sub_8032084(void) } #endif -// Uses 1 too many regs +// Mostly matches except around the switch #ifdef NONMATCHING void DisplayAdventureLog(void) { s32 counter; - s32 iVar5; - u32 uVar6; + s32 r4; // r4 + s32 r6; // r6 u8 temp; sub_8008C54(gAdventureLog->unk34); sub_80073B8(gAdventureLog->unk34); - iVar5 = gAdventureLog->currPage * 8; - iVar5 += 10; + r4 = gAdventureLog->currPage * 8; + r6 = r4; + r6 += 10; // Draw Header - xxx_call_draw_string(iVar5, 0, gAdventureLogHeaderText, gAdventureLog->unk34, 0); - iVar5 += 4; - iVar5 += gAdventureLog->unk9E * 8; + xxx_call_draw_string(r6, 0, gAdventureLogHeaderText, gAdventureLog->unk34, 0); + r4 += 4; + r6 = r4 + gAdventureLog->unk9E * 8; // Draw Page # - sub_8012BC4(iVar5, 0, gAdventureLog->currPage + 1, 1, 7, gAdventureLog->unk34); - counter = 0; - do { - uVar6 = gAdventureLog->currPage * gAdventureLog->unk1C + counter; - temp = uVar6; // Having another var in middle gets close (does a u8 cast) + sub_8012BC4(r6, 0, gAdventureLog->currPage + 1, 1, 7, gAdventureLog->unk34); + + for(counter = 0; counter < gAdventureLog->unk1A; counter++) + { + temp = gAdventureLog->currPage * gAdventureLog->unk1C + counter; if(sub_8097710(temp)){ switch(temp) { case 0xc: @@ -248,16 +249,15 @@ void DisplayAdventureLog(void) default: break; } - xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(uVar6), gAdventureLog->unk34, 0); + xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0); } else { // Draw the ?????????? across the row xxx_call_draw_string(8, sub_8013800(gAdventureLog, counter), gUnknown_80E2030, gAdventureLog->unk34, 0); } - counter++; - } while(counter < gAdventureLog->unk1A); - sub_80073E0(gAdventureLog->unk34); + } + sub_80073E0(gAdventureLog->unk34); } #else NAKED diff --git a/src/code_8095824.c b/src/code_8095824.c index 8792545..938b47f 100644 --- a/src/code_8095824.c +++ b/src/code_8095824.c @@ -6,8 +6,8 @@ extern struct unkStruct_203B484 *gUnknown_203B484; extern struct unkStruct_203B480 *gUnknown_203B480; extern struct unkStruct_203B48C *gUnknown_203B48C; -extern void xxx_save_poke_sub_4_80902F4(struct unkStruct_8094924*, struct unkPokeSubStruct_4*); -extern void xxx_restore_poke_sub_4_8090314(struct unkStruct_8094924*, struct unkPokeSubStruct_4*); +extern void SaveDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*); +extern void RestoreDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*); extern void xxx_save_poke_sub_c_808F41C(struct unkStruct_8094924* a1, struct unkPokeSubStruct_C* unkC); extern void xxx_restore_poke_sub_c_808F410(struct unkStruct_8094924*, struct unkPokeSubStruct_C*); extern void SavePokemonMoves(struct unkStruct_8094924 *r0, struct PokemonMove *moveSet); @@ -42,7 +42,7 @@ u32 sub_80954CC(u8 *a, u32 b) RestoreIntegerBits(&backup, &temp->unk0, 2); RestoreIntegerBits(&backup, &temp->isLeader, 1); RestoreIntegerBits(&backup, &temp->unkHasNextStage, 7); - xxx_restore_poke_sub_4_8090314(&backup, &temp->unk4); + RestoreDungeonLocation(&backup, &temp->unk4); RestoreIntegerBits(&backup, &temp->speciesNum, 9); xxx_restore_poke_sub_c_808F410(&backup, &temp->unkC[0]); xxx_restore_poke_sub_c_808F410(&backup, &temp->unkC[1]); @@ -84,7 +84,7 @@ u32 sub_8095624(u8 *a, u32 b) SaveIntegerBits(&backup, &temp->unk0, 2); SaveIntegerBits(&backup, &temp->isLeader, 1); SaveIntegerBits(&backup, &temp->unkHasNextStage, 7); - xxx_save_poke_sub_4_80902F4(&backup, &temp->unk4); + SaveDungeonLocation(&backup, &temp->unk4); SaveIntegerBits(&backup, &temp->speciesNum, 9); xxx_save_poke_sub_c_808F41C(&backup, &temp->unkC[0]); xxx_save_poke_sub_c_808F41C(&backup, &temp->unkC[1]); @@ -115,7 +115,7 @@ void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b) u8 temp; RestoreIntegerBits(a, &b->unk0, 4); - xxx_restore_poke_sub_4_8090314(a, &b->unk4); + RestoreDungeonLocation(a, &b->unk4); RestoreIntegerBits(a, &b->unk8, 0x18); RestoreIntegerBits(a, &b->unkC, 0x9); RestoreIntegerBits(a, &b->unk10, 0x20); @@ -140,7 +140,7 @@ void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b) zero = 0; SaveIntegerBits(a, &b->unk0, 4); - xxx_save_poke_sub_4_80902F4(a, &b->unk4); + SaveDungeonLocation(a, &b->unk4); SaveIntegerBits(a, &b->unk8, 0x18); SaveIntegerBits(a, &b->unkC, 0x9); SaveIntegerBits(a, &b->unk10, 0x20); diff --git a/src/code_80972F4.c b/src/code_80972F4.c index c0fa1a3..1c7e125 100644 --- a/src/code_80972F4.c +++ b/src/code_80972F4.c @@ -2,8 +2,8 @@ #include "pokemon.h" #include "wonder_mail.h" -extern void xxx_save_poke_sub_4_80902F4(struct unkStruct_8094924*, struct unkPokeSubStruct_4*); -extern void xxx_restore_poke_sub_4_8090314(struct unkStruct_8094924*, struct unkPokeSubStruct_4*); +extern void SaveDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*); +extern void RestoreDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*); extern void sub_80015C0(u32, u32); struct unkStruct_8097270 @@ -11,7 +11,7 @@ struct unkStruct_8097270 u8 unk0; u8 unk1; u8 unk2; - struct unkPokeSubStruct_4 unk4; + struct DungeonLocation unk4; u32 unk8; u16 unkC; u16 unkE; @@ -24,7 +24,7 @@ struct unkStruct_8097270 struct subStruct_203B490 { // size: 0xC - struct unkPokeSubStruct_4 unk0; + struct DungeonLocation unk0; u32 unk4; u32 unk8; }; @@ -109,7 +109,7 @@ u32 sub_8096FA0(u8 *r0, u32 size) { RestoreIntegerBits(&backup, &gUnknown_203B490->unk230[index].unk8, 0x20); RestoreIntegerBits(&backup, &gUnknown_203B490->unk230[index].unk4, 0x18); - xxx_restore_poke_sub_4_8090314(&backup, &gUnknown_203B490->unk230[index].unk0); + RestoreDungeonLocation(&backup, &gUnknown_203B490->unk230[index].unk0); } nullsub_102(&backup); return backup.unk8; @@ -153,7 +153,7 @@ u32 sub_80970D8(u8 *r0, u32 size) { SaveIntegerBits(&backup, &gUnknown_203B490->unk230[index].unk8, 0x20); SaveIntegerBits(&backup, &gUnknown_203B490->unk230[index].unk4, 0x18); - xxx_save_poke_sub_4_80902F4(&backup, &gUnknown_203B490->unk230[index].unk0); + SaveDungeonLocation(&backup, &gUnknown_203B490->unk230[index].unk0); } nullsub_102(&backup); return backup.unk8; @@ -171,7 +171,7 @@ void sub_80971EC(struct unkStruct_8094924 *a, struct unkStruct_8097270 *b) RestoreIntegerBits(a, &b->unk12, 8); RestoreIntegerBits(a, &b->unk13, 6); RestoreIntegerBits(a, &b->unk8, 0x18); - xxx_restore_poke_sub_4_8090314(a, &b->unk4); + RestoreDungeonLocation(a, &b->unk4); } void sub_8097270(struct unkStruct_8094924 *a, struct unkStruct_8097270 *b) @@ -186,7 +186,7 @@ void sub_8097270(struct unkStruct_8094924 *a, struct unkStruct_8097270 *b) SaveIntegerBits(a, &b->unk12, 8); SaveIntegerBits(a, &b->unk13, 6); SaveIntegerBits(a, &b->unk8, 0x18); - xxx_save_poke_sub_4_80902F4(a, &b->unk4); + SaveDungeonLocation(a, &b->unk4); } void sub_80972F4(void) diff --git a/src/code_8097670.c b/src/code_8097670.c index a918ac9..e2b3723 100644 --- a/src/code_8097670.c +++ b/src/code_8097670.c @@ -8,7 +8,7 @@ struct unkStruct_203B494 s32 numAdventures; s32 unk8; s32 unkC; - struct unkPokeSubStruct_4 dungeonLocation; + struct DungeonLocation dungeonLocation; s16 unk14; s16 unk16; s16 unk18; @@ -33,13 +33,13 @@ struct unkStruct_203B494 *sub_8097680(void) return &gUnknown_2039778; } -void SetDungeonLocationInfo(struct unkPokeSubStruct_4 *r0) +void SetDungeonLocationInfo(struct DungeonLocation *r0) { gUnknown_203B494->dungeonLocation.dungeonIndex = r0->dungeonIndex; gUnknown_203B494->dungeonLocation.dungeonFloor = r0->dungeonFloor; } -struct unkPokeSubStruct_4 *GetDungeonLocationInfo(void) +struct DungeonLocation *GetDungeonLocationInfo(void) { return &gUnknown_203B494->dungeonLocation; } diff --git a/src/code_8097DD0.c b/src/code_8097DD0.c index e5d4966..abbb02e 100644 --- a/src/code_8097DD0.c +++ b/src/code_8097DD0.c @@ -9,7 +9,7 @@ struct unkStruct_203B494 s32 numAdventures; s32 unk8; s32 unkC; - struct unkPokeSubStruct_4 dungeonLocation; + struct DungeonLocation dungeonLocation; s16 unk14; s16 unk16; s16 unk18; @@ -21,8 +21,8 @@ struct unkStruct_203B494 extern struct unkStruct_203B494 *gUnknown_203B494; -extern void xxx_save_poke_sub_4_80902F4(struct unkStruct_8094924*, struct unkPokeSubStruct_4*); -extern void xxx_restore_poke_sub_4_8090314(struct unkStruct_8094924*, struct unkPokeSubStruct_4*); +extern void SaveDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*); +extern void RestoreDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*); void ReadExclusivePokemon(struct unkStruct_8094924 *r0); void ReadGameOptions(struct unkStruct_8094924 *param_1); void ReadPlayTime(struct unkStruct_8094924 *r0); @@ -46,7 +46,7 @@ void sub_8097C18(struct unkStruct_8094924 *r0) SaveIntegerBits(r0, gUnknown_203B494->unk1C, 0xE0 << 1); SaveIntegerBits(r0, gUnknown_203B494->unk54, 0xE0 << 1); SaveIntegerBits(r0, gUnknown_203B494->unk8C, 0xD0 << 1); - xxx_save_poke_sub_4_80902F4(r0, &gUnknown_203B494->dungeonLocation); + SaveDungeonLocation(r0, &gUnknown_203B494->dungeonLocation); } void sub_8097CC0(struct unkStruct_8094924 *r0) @@ -62,7 +62,7 @@ void sub_8097CC0(struct unkStruct_8094924 *r0) RestoreIntegerBits(r0, gUnknown_203B494->unk1C, 0xE0 << 1); RestoreIntegerBits(r0, gUnknown_203B494->unk54, 0xE0 << 1); RestoreIntegerBits(r0, gUnknown_203B494->unk8C, 0xD0 << 1); - xxx_restore_poke_sub_4_8090314(r0, &gUnknown_203B494->dungeonLocation); + RestoreDungeonLocation(r0, &gUnknown_203B494->dungeonLocation); } u32 sub_8097D60(u8 *r0, u32 size) diff --git a/src/code_80A26CC.c b/src/code_80A26CC.c index bc5f60e..b18cf5f 100644 --- a/src/code_80A26CC.c +++ b/src/code_80A26CC.c @@ -61,7 +61,7 @@ s32 sub_80A2668(u32 r0) } } -u32 sub_80A2688(u8 r0, u32 r1) +u32 sub_80A2688(u8 r0) { u32 uVar1; diff --git a/src/dungeon_2.c b/src/dungeon_2.c index 18b6fe5..282ac99 100644 --- a/src/dungeon_2.c +++ b/src/dungeon_2.c @@ -11,7 +11,7 @@ extern const char gUnknown_8108F2C[]; extern u8 gUnknown_81077A8[]; extern u8 gUnknown_81077E8[]; -void sub_80901D8(struct unkPokeSubStruct_4 *param_1,struct unkPokeSubStruct_4 *param_2) +void sub_80901D8(struct DungeonLocation *param_1,struct DungeonLocation *param_2) { if ((u8)(param_2->dungeonIndex - DUNGEON_NORMAL_MAZE_2) < NUM_DUNGEON_MAZE) { param_1->dungeonIndex = DUNGEON_NORMAL_MAZE; @@ -22,12 +22,12 @@ void sub_80901D8(struct unkPokeSubStruct_4 *param_1,struct unkPokeSubStruct_4 *p } } -void PrintYellowDungeonNametoBuffer(u8 *buffer, struct unkPokeSubStruct_4 *dungeonLocation) +void PrintYellowDungeonNametoBuffer(u8 *buffer, struct DungeonLocation *dungeonLocation) { sprintf_2(buffer, gUnknown_8108F10, gDungeonNames[dungeonLocation->dungeonIndex].name1); // {COLOR_2 YELLOW_4}%s{END_COLOR_TEXT_2} (normal floor print (no B) } -void PrintDungeonLocationtoBuffer(u8 *buffer, struct unkPokeSubStruct_4 *dungeonLocation) +void PrintDungeonLocationtoBuffer(u8 *buffer, struct DungeonLocation *dungeonLocation) { if(gDungeons[dungeonLocation->dungeonIndex].stairDirection != 0){ sprintf_2(buffer, gUnknown_8108F18, gDungeonNames[dungeonLocation->dungeonIndex].name1, dungeonLocation->dungeonFloor); //_F @@ -38,7 +38,7 @@ void PrintDungeonLocationtoBuffer(u8 *buffer, struct unkPokeSubStruct_4 *dungeon } } -void CopyDungeonName1toBuffer(u8 *buffer, struct unkPokeSubStruct_4 *dungeonLocation) +void CopyDungeonName1toBuffer(u8 *buffer, struct DungeonLocation *dungeonLocation) { strncpy(buffer, gDungeonNames[dungeonLocation->dungeonIndex].name1, 0x50); } @@ -63,13 +63,13 @@ u8 sub_80902C8(u8 dungeon) return gUnknown_81077E8[dungeon]; } -void xxx_save_poke_sub_4_80902F4(struct unkStruct_8094924* r0, struct unkPokeSubStruct_4* r1) +void SaveDungeonLocation(struct unkStruct_8094924* r0, struct DungeonLocation* r1) { SaveIntegerBits(r0, &r1->dungeonIndex, 0x7); SaveIntegerBits(r0, &r1->dungeonFloor, 0x7); } -void xxx_restore_poke_sub_4_8090314(struct unkStruct_8094924* r0, struct unkPokeSubStruct_4* r1) +void RestoreDungeonLocation(struct unkStruct_8094924* r0, struct DungeonLocation* r1) { r1->dungeonIndex = 0; r1->dungeonFloor = 0; diff --git a/src/friend_rescue_1.c b/src/friend_rescue_1.c index f7a74ef..c3571c0 100644 --- a/src/friend_rescue_1.c +++ b/src/friend_rescue_1.c @@ -82,10 +82,10 @@ extern void sub_8023DA4(void); extern void sub_8035D1C(void); extern u16 sub_8023B44(void); -extern u32 sub_8039068(u32, u8 *r1, u8 *r0); +extern u32 sub_8039068(u32, u8 *r1, struct unkStruct_8095228 *r0); extern void sub_8095274(u32); -extern void sub_80951BC(u8 *r0); -extern void sub_80951FC(u8 *r0); +extern void sub_80951BC(struct unkStruct_8095228 *r0); +extern void sub_80951FC(struct unkStruct_8095228 *r0); extern u8 sub_809539C(u32, u32); extern u8 sub_800D588(void); extern u32 sub_8095324(u32); @@ -455,7 +455,7 @@ void sub_8033DBC(void) default: break; } - switch(sub_8039068(input_var, gUnknown_203B33C->passwordBuffer, &temp.unk0)) + switch(sub_8039068(input_var, gUnknown_203B33C->passwordBuffer, &temp)) { case 17: sub_8014248(gUnknown_80E48A8, 0, 6, gUnknown_80E2290, 0, 4, 0, 0, 0x101); @@ -471,8 +471,8 @@ void sub_8033DBC(void) break; case 22: sub_8095274(temp.unk10); - temp.unk0 = 2; // Some sort of Ack? - sub_80951BC(&temp.unk0); + temp.mailType = 2; + sub_80951BC(&temp); sub_80141B4(gUnknown_80E4928, 0, 0, 0x101); SetFriendRescueMenuState(0x16); break; @@ -485,10 +485,10 @@ void sub_8033DBC(void) SetFriendRescueMenuState(8); break; case 23: - temp.unk0 = 5; // Some sort of Ack? - sub_80951FC(&temp.unk0); + temp.mailType = 5; + sub_80951FC(&temp); temp2 = sub_8095228(sub_809539C(1, temp.unk10)); - temp2->unk0 = 7; + temp2->mailType = 7; MemoryFill8((u8 *)gUnknown_203B484, 0, sizeof(struct unkStruct_203B484)); SetFriendRescueMenuState(0x40); break; @@ -1340,7 +1340,7 @@ void sub_8034D74(void) switch(return_var) { case 3: - switch(sub_8039068(0x20, gUnknown_203B33C->passwordBuffer, &temp.unk0)) + switch(sub_8039068(0x20, gUnknown_203B33C->passwordBuffer, &temp)) { case 17: sub_8014248(gUnknown_80E48A8, 0, 6, gUnknown_80E2440, 0, 4, 0, 0, 0x101); @@ -1357,7 +1357,7 @@ void sub_8034D74(void) case 24: temp2 = sub_8095228(sub_809539C(4, temp.unk10)); *temp2 = temp; - temp2->unk0 = 6; // Some sort of Ack? + temp2->mailType = 6; gUnknown_203B33C->unk420 = temp.unk10; SetFriendRescueMenuState(0x6D); break; diff --git a/src/music_pre.c b/src/music_pre.c index 95940aa..3bac474 100644 --- a/src/music_pre.c +++ b/src/music_pre.c @@ -407,7 +407,7 @@ void InitMusic(void) gBGMusicPlayerState = 0; gCurrentBGSong = 999; gUnknown_202D68C = 999; - gUnknown_202D68E = 0x3e5; + gUnknown_202D68E = 997; gUnknown_202D690 = 0; gUnknown_202D692 = 0; gUnknown_202D694 = 0; @@ -415,7 +415,7 @@ void InitMusic(void) for(counter = 0, preload = &gUnknown_3000FD8[0]; counter < 8; counter++, preload++) { preload->unk0 = 0; - preload->songIndex = 0x3e5; + preload->songIndex = 997; preload->unk4 = 0; preload->unk6 = 0; } @@ -425,8 +425,8 @@ void InitMusic(void) void sub_800BDDC(void) { sub_800BF80(); - sub_800C298(0x3e6); - sub_800C298(0x3e5); + sub_800C298(998); + sub_800C298(997); } @@ -583,52 +583,53 @@ u16 GetCurrentBGSong(void) return gCurrentBGSong; } -#ifdef NONMATCHING -// TODO fix reg allocation.. using one too many regs void sub_800C074(u16 SongIndex, u16 param_2) { bool8 interrupt_flag; + bool8 interrupt_flag2; u16 msVar; struct unkStruct_3000FD8 *preload; - if (SongIndex == 0x3e5) + if (SongIndex == 997) return; - if (256 < param_2) + if (param_2 > 256) param_2 = 256; if (sub_800CACC(SongIndex)) { - msVar = GetMusicPlayerIndex(SongIndex); - if (msVar == 1) { + if (GetMusicPlayerIndex(SongIndex) == 1) { interrupt_flag = DisableInterrupts(); gUnknown_202D68E = SongIndex; if(gUnknown_202D690 == 0) { if (gCurrentBGSong != 999) { - if ((u16)(gBGMusicPlayerState - 1U) < 2) + if ((u16)(gBGMusicPlayerState - 1) < 2) { - gUnknown_202D690 = msVar; + gUnknown_202D690 = 1; gUnknown_202D692 = 16; gUnknown_202D694 = 0; - m4aMPlayFadeOutTemporarily(&gMPlayInfo_BGM,1); + m4aMPlayFadeOutTemporarily(&gMPlayInfo_BGM, 1); } - else + else if (gBGMusicPlayerState == 3) + gUnknown_202D690 = 2; + else { - if (gBGMusicPlayerState == 3) - gUnknown_202D690 = 2; - else - { - gUnknown_202D690 = 3; - m4aMPlayStop(&gMPlayInfo_BGM); - m4aSongNumStart(gUnknown_202D68E); - } + gUnknown_202D690 = 3; + m4aMPlayStop(&gMPlayInfo_BGM); + m4aSongNumStart(gUnknown_202D68E); } } + else + { + gUnknown_202D690 = 3; + m4aMPlayStop(&gMPlayInfo_BGM); + m4aSongNumStart(gUnknown_202D68E); + } } else { - if (1 < (u16)(gUnknown_202D690 - 1U)) + if (1 < (u16)(gUnknown_202D690 - 1)) { m4aMPlayStop(&gMPlayInfo_BGM); m4aSongNumStart(gUnknown_202D68E); @@ -675,230 +676,24 @@ void sub_800C074(u16 SongIndex, u16 param_2) nullsub_20(SongIndex); else { - interrupt_flag = DisableInterrupts(); + interrupt_flag2 = DisableInterrupts(); m4aSongNumStart(SongIndex); preload->unk0 = 1; preload->songIndex = SongIndex; - if(msVar == param_2) + if(param_2 == 256) { - preload->unk6 = 1; + preload->unk6 = 0; } else { - preload->unk6 = 0; + preload->unk6 = 1; } - preload->unk4 = msVar; - if (interrupt_flag) + preload->unk4 = param_2; + if (interrupt_flag2) EnableInterrupts(); } } } -#else -NAKED -void sub_800C074(u16 SongIndex, u16 param_2) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r8\n" - "\tpush {r7}\n" - "\tlsls r0, 16\n" - "\tlsrs r5, r0, 16\n" - "\tmov r8, r5\n" - "\tlsls r1, 16\n" - "\tlsrs r6, r1, 16\n" - "\tldr r0, _0800C0FC\n" - "\tcmp r5, r0\n" - "\tbne _0800C08C\n" - "\tb _0800C208\n" -"_0800C08C:\n" - "\tmovs r7, 0x80\n" - "\tlsls r7, 1\n" - "\tcmp r6, r7\n" - "\tbls _0800C096\n" - "\tadds r6, r7, 0\n" -"_0800C096:\n" - "\tadds r0, r5, 0\n" - "\tbl sub_800CACC\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbne _0800C0A4\n" - "\tb _0800C1B0\n" -"_0800C0A4:\n" - "\tadds r0, r5, 0\n" - "\tbl GetMusicPlayerIndex\n" - "\tlsls r0, 16\n" - "\tlsrs r7, r0, 16\n" - "\tcmp r7, 0x1\n" - "\tbeq _0800C0B4\n" - "\tb _0800C1D0\n" -"_0800C0B4:\n" - "\tbl DisableInterrupts\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tmov r8, r0\n" - "\tldr r6, _0800C100\n" - "\tstrh r5, [r6]\n" - "\tldr r4, _0800C104\n" - "\tldrh r0, [r4]\n" - "\tadds r2, r0, 0\n" - "\tcmp r2, 0\n" - "\tbne _0800C144\n" - "\tldr r0, _0800C108\n" - "\tldrh r1, [r0]\n" - "\tldr r0, _0800C10C\n" - "\tcmp r1, r0\n" - "\tbeq _0800C12C\n" - "\tldr r0, _0800C110\n" - "\tldrh r1, [r0]\n" - "\tsubs r0, r1, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tcmp r0, 0x1\n" - "\tbhi _0800C120\n" - "\tstrh r7, [r4]\n" - "\tldr r1, _0800C114\n" - "\tmovs r0, 0x10\n" - "\tstrh r0, [r1]\n" - "\tldr r0, _0800C118\n" - "\tstrb r2, [r0]\n" - "\tldr r0, _0800C11C\n" - "\tmovs r1, 0x1\n" - "\tbl m4aMPlayFadeOutTemporarily\n" - "\tb _0800C15E\n" - "\t.align 2, 0\n" -"_0800C0FC: .4byte 0x000003e5\n" -"_0800C100: .4byte gUnknown_202D68E\n" -"_0800C104: .4byte gUnknown_202D690\n" -"_0800C108: .4byte gCurrentBGSong\n" -"_0800C10C: .4byte 0x000003e7\n" -"_0800C110: .4byte gBGMusicPlayerState\n" -"_0800C114: .4byte gUnknown_202D692\n" -"_0800C118: .4byte gUnknown_202D694\n" -"_0800C11C: .4byte gMPlayInfo_BGM\n" -"_0800C120:\n" - "\tlsls r0, r1, 16\n" - "\tlsrs r0, 16\n" - "\tcmp r0, 0x3\n" - "\tbne _0800C12C\n" - "\tmovs r0, 0x2\n" - "\tb _0800C15C\n" -"_0800C12C:\n" - "\tmovs r0, 0x3\n" - "\tstrh r0, [r4]\n" - "\tldr r0, _0800C140\n" - "\tbl m4aMPlayStop\n" - "\tldrh r0, [r6]\n" - "\tbl m4aSongNumStart\n" - "\tb _0800C15E\n" - "\t.align 2, 0\n" -"_0800C140: .4byte gMPlayInfo_BGM\n" -"_0800C144:\n" - "\tsubs r0, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tcmp r0, 0x1\n" - "\tbls _0800C15E\n" - "\tldr r0, _0800C17C\n" - "\tbl m4aMPlayStop\n" - "\tldrh r0, [r6]\n" - "\tbl m4aSongNumStart\n" - "\tmovs r0, 0x3\n" -"_0800C15C:\n" - "\tstrh r0, [r4]\n" -"_0800C15E:\n" - "\tldr r0, _0800C180\n" - "\tldrh r0, [r0]\n" - "\tcmp r0, 0x26\n" - "\tbgt _0800C184\n" - "\tcmp r0, 0x25\n" - "\tbge _0800C19A\n" - "\tcmp r0, 0x1A\n" - "\tblt _0800C1A0\n" - "\tcmp r0, 0x1F\n" - "\tble _0800C19A\n" - "\tcmp r0, 0x23\n" - "\tbgt _0800C1A0\n" - "\tcmp r0, 0x22\n" - "\tblt _0800C1A0\n" - "\tb _0800C19A\n" - "\t.align 2, 0\n" -"_0800C17C: .4byte gMPlayInfo_BGM\n" -"_0800C180: .4byte gCurrentBGSong\n" -"_0800C184:\n" - "\tcmp r0, 0x7A\n" - "\tbeq _0800C19A\n" - "\tcmp r0, 0x7A\n" - "\tbgt _0800C196\n" - "\tcmp r0, 0x77\n" - "\tbgt _0800C1A0\n" - "\tcmp r0, 0x75\n" - "\tblt _0800C1A0\n" - "\tb _0800C19A\n" -"_0800C196:\n" - "\tcmp r0, 0x7F\n" - "\tbne _0800C1A0\n" -"_0800C19A:\n" - "\tldr r1, _0800C1AC\n" - "\tmovs r0, 0x1\n" - "\tstrb r0, [r1]\n" -"_0800C1A0:\n" - "\tmov r0, r8\n" - "\tcmp r0, 0\n" - "\tbeq _0800C208\n" - "\tbl EnableInterrupts\n" - "\tb _0800C208\n" - "\t.align 2, 0\n" -"_0800C1AC: .4byte gUnknown_202D694\n" -"_0800C1B0:\n" - "\tadds r0, r5, 0\n" - "\tbl sub_800CAAC\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbeq _0800C208\n" - "\tadds r0, r5, 0\n" - "\tbl GetMusicPlayerIndex\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tlsls r2, r0, 3\n" - "\tldr r1, _0800C1D8\n" - "\tadds r4, r2, r1\n" - "\tcmp r0, 0x1\n" - "\tbhi _0800C1DC\n" -"_0800C1D0:\n" - "\tadds r0, r5, 0\n" - "\tbl nullsub_20\n" - "\tb _0800C208\n" - "\t.align 2, 0\n" -"_0800C1D8: .4byte gUnknown_3000FD8\n" -"_0800C1DC:\n" - "\tbl DisableInterrupts\n" - "\tlsls r0, 24\n" - "\tlsrs r5, r0, 24\n" - "\tmov r0, r8\n" - "\tbl m4aSongNumStart\n" - "\tmovs r0, 0x1\n" - "\tstrh r0, [r4]\n" - "\tmov r0, r8\n" - "\tstrh r0, [r4, 0x2]\n" - "\tcmp r6, r7\n" - "\tbne _0800C1FA\n" - "\tmovs r0, 0\n" - "\tb _0800C1FC\n" -"_0800C1FA:\n" - "\tmovs r0, 0x1\n" -"_0800C1FC:\n" - "\tstrb r0, [r4, 0x6]\n" - "\tstrh r6, [r4, 0x4]\n" - "\tcmp r5, 0\n" - "\tbeq _0800C208\n" - "\tbl EnableInterrupts\n" -"_0800C208:\n" - "\tpop {r3}\n" - "\tmov r8, r3\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0"); -} -#endif void sub_800C214(u16 songIndex, u16 volume) { @@ -940,14 +735,14 @@ void sub_800C298(u16 songIndex) struct unkStruct_3000FD8 *preload; struct unkStruct_3000FD8 *puVar3; - if (songIndex == 0x3e5) { + if (songIndex == 997) { cVar1 = DisableInterrupts(); for(iVar4 = 2, puVar3 = &gUnknown_3000FE8[0]; iVar4 < 7; iVar4++, puVar3++) { m4aMPlayStop(gMPlayTable[iVar4].info); puVar3->unk0 = 0; - puVar3->songIndex = 0x3e5; + puVar3->songIndex = 997; puVar3->unk4 = 0; puVar3->unk6 = 0; } @@ -955,7 +750,7 @@ void sub_800C298(u16 songIndex) EnableInterrupts(); } } - else if (sub_800CAAC(songIndex) != '\0') + else if (sub_800CAAC(songIndex)) { uVar2 = GetMusicPlayerIndex(songIndex); puVar6 = gMPlayTable[uVar2].info; @@ -968,7 +763,7 @@ void sub_800C298(u16 songIndex) if (preload->songIndex == songIndex) { m4aMPlayStop(puVar6); preload->unk0 = 0; - preload->songIndex = 0x3e5; + preload->songIndex = 997; preload->unk4 = 0; preload->unk6 = 0; } @@ -977,12 +772,12 @@ void sub_800C298(u16 songIndex) } } } - else if (songIndex == 0x3e6) + else if (songIndex == 998) { cVar3 = DisableInterrupts(); if (gUnknown_202D690 != 0) { - if (gUnknown_202D68E != 0x3e5) { - gUnknown_202D68E = 0x3e5; + if (gUnknown_202D68E != 997) { + gUnknown_202D68E = 997; m4aMPlayStop(&gUnknown_2000970); } } @@ -990,12 +785,12 @@ void sub_800C298(u16 songIndex) EnableInterrupts(); } } - else if (sub_800CACC(songIndex) != '\0') + else if (sub_800CACC(songIndex)) { cVar4 = DisableInterrupts(); if (gUnknown_202D690 != 0) { if (gUnknown_202D68E == songIndex) { - gUnknown_202D68E = 0x3e5; + gUnknown_202D68E = 997; m4aMPlayStop(&gUnknown_2000970); } } @@ -1031,19 +826,18 @@ void sub_800C3F8(u16 songIndex, u16 speed) } } - if (songIndex == 0x3e5) { + if (songIndex == 997) { cVar1 = DisableInterrupts(); - for(uVar6 = 2, puVar3 = &gUnknown_3000FE8[0]; uVar6 < 7; uVar6++, puVar3++) { - if (puVar3->songIndex != 0x3e5) { + if (puVar3->songIndex != 997) { if (sub_800CAF0(uVar6) != '\0') { m4aMPlayFadeOut(gMPlayTable[uVar6].info,speed); } else { m4aMPlayStop(gMPlayTable[uVar6].info); puVar3->unk0 = 0; - puVar3->songIndex = 0x3e5; + puVar3->songIndex = 997; puVar3->unk4 = 0; puVar3->unk6 = 0; } @@ -1054,19 +848,19 @@ void sub_800C3F8(u16 songIndex, u16 speed) } } else { - if (sub_800CAAC(songIndex) != '\0') { + if (sub_800CAAC(songIndex)) { uVar8 = GetMusicPlayerIndex(songIndex); preload = &gUnknown_3000FD8[uVar8]; puVar5 = gMPlayTable[uVar8].info; cVar2 = DisableInterrupts(); - if (preload->songIndex != 0x3e5) { + if (preload->songIndex != 997) { if (sub_800CAF0(uVar8) != '\0') { m4aMPlayFadeOut(puVar5,speed); } else { m4aMPlayStop(puVar5); preload->unk0 = 0; - preload->songIndex = 0x3e5; + preload->songIndex = 997; preload->unk4 = 0; preload->unk6 = 0; } @@ -1075,40 +869,35 @@ void sub_800C3F8(u16 songIndex, u16 speed) EnableInterrupts(); } } - else - { - if (songIndex == 0x3e6) { - cVar3 = DisableInterrupts(); - if ((gUnknown_202D690 != 0) && (gUnknown_202D68E != 0x3e5)) { - if (sub_800CAF0(1) != '\0') { - m4aMPlayFadeOut(&gUnknown_2000970,speed); - } - else { - m4aMPlayStop(&gUnknown_2000970); - gUnknown_202D68E = 0x3e5; - } + else if (songIndex == 998) { + cVar3 = DisableInterrupts(); + if ((gUnknown_202D690 != 0) && (gUnknown_202D68E != 997)) { + if (sub_800CAF0(1) != '\0') { + m4aMPlayFadeOut(&gUnknown_2000970,speed); } - if (cVar3 != '\0') { - EnableInterrupts(); + else { + m4aMPlayStop(&gUnknown_2000970); + gUnknown_202D68E = 997; } } - else { - if (sub_800CACC(songIndex) != '\0') { - cVar4 = DisableInterrupts(); - if ((gUnknown_202D690 != 0) && (gUnknown_202D68E == songIndex)) { - if (sub_800CAF0(1) != '\0') { - m4aMPlayFadeOut(&gUnknown_2000970,speed); - } - else { - m4aMPlayStop(&gUnknown_2000970); - gUnknown_202D68E = 0x3e5; - } - } - if (cVar4 != '\0') { - EnableInterrupts(); - } + if (cVar3 != '\0') { + EnableInterrupts(); + } + } + else if (sub_800CACC(songIndex)) { + cVar4 = DisableInterrupts(); + if ((gUnknown_202D690 != 0) && (gUnknown_202D68E == songIndex)) { + if (sub_800CAF0(1) != '\0') { + m4aMPlayFadeOut(&gUnknown_2000970,speed); + } + else { + m4aMPlayStop(&gUnknown_2000970); + gUnknown_202D68E = 997; } } + if (cVar4 != '\0') { + EnableInterrupts(); + } } } } diff --git a/src/pokemon_3.c b/src/pokemon_3.c index 1a38475..251a69f 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -49,10 +49,10 @@ extern s32 gUnknown_810AC90[10]; extern void AddSprite(u16 *, u32, u32, u32); -extern void xxx_save_poke_sub_4_80902F4(struct unkStruct_8094924*, struct unkPokeSubStruct_4*); +extern void SaveDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*); extern void xxx_save_poke_sub_c_808F41C(struct unkStruct_8094924*, struct unkPokeSubStruct_C*); extern void SavePokemonMoves(struct unkStruct_8094924*, struct PokemonMove*); -void xxx_restore_poke_sub_4_8090314(struct unkStruct_8094924*, struct unkPokeSubStruct_4*); +void RestoreDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*); void xxx_restore_poke_sub_c_808F410(struct unkStruct_8094924*, struct unkPokeSubStruct_C*); void RestorePokemonMoves(struct unkStruct_8094924*, struct PokemonMove*); @@ -755,7 +755,7 @@ void SavePokemonStruct(struct unkStruct_8094924* a1, struct PokemonStruct* pokem { SaveIntegerBits(a1, &pokemon->unkHasNextStage, 7); SaveIntegerBits(a1, &pokemon->speciesNum, 9); - xxx_save_poke_sub_4_80902F4(a1, &pokemon->unk4); + SaveDungeonLocation(a1, &pokemon->unk4); xxx_save_poke_sub_c_808F41C(a1, &pokemon->unkC[0]); xxx_save_poke_sub_c_808F41C(a1, &pokemon->unkC[1]); SaveIntegerBits(a1, &pokemon->IQ, 10); @@ -782,7 +782,7 @@ void RestorePokemonStruct(struct unkStruct_8094924* a1, struct PokemonStruct* po pokemon->unk0 |= 1; } RestoreIntegerBits(a1, &pokemon->speciesNum, 9); - xxx_restore_poke_sub_4_8090314(a1, &pokemon->unk4); + RestoreDungeonLocation(a1, &pokemon->unk4); xxx_restore_poke_sub_c_808F410(a1, &pokemon->unkC[0]); xxx_restore_poke_sub_c_808F410(a1, &pokemon->unkC[1]); RestoreIntegerBits(a1, &pokemon->IQ, 10); @@ -817,7 +817,7 @@ s32 SavePokemonStruct2(u8* a1, s32 size) SaveIntegerBits(&backup, pokemon2->isLeader ? &data_u8_neg1 : &data_u8_zero, 1); SaveIntegerBits(&backup, &pokemon2->unkHasNextStage, 7); - xxx_save_poke_sub_4_80902F4(&backup, &pokemon2->unk4); + SaveDungeonLocation(&backup, &pokemon2->unk4); SaveIntegerBits(&backup, &pokemon2->IQ, 10); SaveIntegerBits(&backup, &pokemon2->unkA, 16); SaveIntegerBits(&backup, &pokemon2->unkC, 16); @@ -865,7 +865,7 @@ s32 RestorePokemonStruct2(u8* a1, s32 size) } RestoreIntegerBits(&backup, &pokemon2->unkHasNextStage, 7); - xxx_restore_poke_sub_4_8090314(&backup, &pokemon2->unk4); + RestoreDungeonLocation(&backup, &pokemon2->unk4); RestoreIntegerBits(&backup, &pokemon2->IQ, 10); RestoreIntegerBits(&backup, &pokemon2->unkA, 16); RestoreIntegerBits(&backup, &pokemon2->unkC, 16); diff --git a/src/post_office_guide.c b/src/post_office_guide.c index f009895..2103e5f 100644 --- a/src/post_office_guide.c +++ b/src/post_office_guide.c @@ -5,6 +5,8 @@ #include "menu.h" #include "memory.h" #include "text.h" +#include "sub_8095228.h" +#include "wonder_mail.h" struct PostOfficeHelper { @@ -29,7 +31,7 @@ struct unkStruct_203B330 struct UnkInputStruct *unk0; u8 fill4[0x8]; u8 unkC; - u8 unkD; + u8 dungeonIndex; u8 fillE[2]; u32 unk10; struct UnkTextStruct2 *unk14; @@ -41,11 +43,19 @@ EWRAM_DATA struct unkStruct_203B330 *gUnknown_203B330; extern const char GetHelp_Text[]; extern const char GoRescue_Text[]; extern const char FriendRescueInfo_Text[]; - extern const char FriendRescue_80E0A80[]; extern const char Delivery_Text[]; extern const char BulletinBoard_Text[]; extern const char PostOffice_Text[]; +extern u8 gUnknown_80E1F30[]; +extern u8 gUnknown_80E1F3C[]; +extern u8 gUnknown_80E1F60[]; +extern u8 gUnknown_80E1F70[]; +extern u8 gUnknown_202DE58[]; +extern u8 gUnknown_80E1F80[]; +extern u8 gUnknown_80E1F40[]; +extern u8 gUnknown_80E1F54[]; +extern u8 gUnknown_80E1F94[]; enum PostOfficeStates { @@ -167,6 +177,18 @@ extern u32 sub_8012A64(struct UnkInputStruct**, u32); extern void PlayMenuSoundEffect(u32); extern void sub_8031A84(); extern void DisplayMissionObjectives(); +extern u8 *GetCurrentMissionText(s16 r0); +extern u8 *sub_80975DC(u32 r0); +extern u8 sub_8099360(u8 *); +extern u8 sub_8099394(u8 *); +extern struct WonderMail *GetJobSlotInfo(u8); +extern void xxx_call_draw_string(s32 x, u32 y, const u8 *, u32 , u32); +extern void sub_80073B8(u32); +extern void sub_80073E0(u32); +extern void sprintf_2(char *buffer, const char *text, ...); +extern void sub_803B6B0(u32, u32, u32, u32); +extern s16 sub_80A2688(u8 r0); +extern u8 sub_80992E0(s16 *, s16 *); extern u8 gUnknown_202E5D8[]; extern u8 gAvailablePokemonNames[]; @@ -504,12 +526,12 @@ void ReturnToGetHelpMenu(void) } } -u32 sub_80319A4(u8 param_1,u8 param_2,int param_3) +u32 sub_80319A4(u8 param_1,u8 dungeon,int param_3) { gUnknown_203B330 = MemoryAlloc(sizeof(struct unkStruct_203B330),8); gUnknown_203B330->unkC = param_1; - gUnknown_203B330->unkD = param_2; + gUnknown_203B330->dungeonIndex = dungeon; sub_801317C(&gUnknown_203B330->unk0); gUnknown_203B330->unk10 = param_3; gUnknown_203B330->unk14 = &gUnknown_203B330->unk18[param_3]; @@ -557,7 +579,7 @@ void sub_8031A84(void) sub_8006518(gUnknown_203B330->unk18); gUnknown_203B330->unk18[gUnknown_203B330->unk10] = gUnknown_80E1F18; if (gUnknown_203B330->unkC == 2) { - iVar1 = sub_80969D0(gUnknown_203B330->unkD); + iVar1 = sub_80969D0(gUnknown_203B330->dungeonIndex); if (iVar1 == 0) { iVar1 = 1; } @@ -566,3 +588,96 @@ void sub_8031A84(void) ResetUnusedInputStruct(); sub_800641C(gUnknown_203B330->unk18,1,1); } + +void DisplayMissionObjectives(void) +{ + s32 yCoord; + s32 jobSlotIdx; + struct unkStruct_8095228 *iVar8; + struct WonderMail *jobInfo; + u8 auStack248 [100]; + u8 local_94 [4]; + u8 auStack144 [100]; + short auStack44; + short local_2a; + u8 local_test; + + sub_80073B8(gUnknown_203B330->unk10); + // Objectives + xxx_call_draw_string(10,0,gUnknown_80E1F30,gUnknown_203B330->unk10,0); + switch(gUnknown_203B330->unkC) + { + case 1: + sub_8099394(local_94); + iVar8 = sub_8095228(local_94[0]); + sub_803B6B0(10,16,3,gUnknown_203B330->unk10); + // %dF + sprintf_2(auStack248,gUnknown_80E1F3C,iVar8->floor); + xxx_call_draw_string(0x15,16,auStack248,gUnknown_203B330->unk10,0); + // Rescue #C6%s#R + sprintf_2(auStack248,gUnknown_80E1F40,GetMonSpecies(iVar8->clientSpecies)); + xxx_call_draw_string(0x28,16,auStack248,gUnknown_203B330->unk10,0); + break; + case 2: + if (sub_80969D0(gUnknown_203B330->dungeonIndex) == 0) { + // Just go! + xxx_call_draw_string(10,16,gUnknown_80E1F54,gUnknown_203B330->unk10,0); + } + else + { + yCoord = 16; + + // 8 Job Slots... check each of them + for(jobSlotIdx = 0; jobSlotIdx < 8; jobSlotIdx++) + { + jobInfo = GetJobSlotInfo(jobSlotIdx); + if ((((jobInfo->dungeon == gUnknown_203B330->dungeonIndex) && (jobInfo->mailType != 0) + ) && (jobInfo->mailType != 5)) && (jobInfo->mailType != 7)) { + sub_803B6B0(10,yCoord,3,gUnknown_203B330->unk10); + if (jobInfo->missionType != WONDER_MAIL_MISSION_TYPE_FIND_ITEM) { + sprintf_2(auStack144,gUnknown_80E1F3C,jobInfo->floor); + xxx_call_draw_string(21,yCoord,auStack144,gUnknown_203B330->unk10,0); + } + switch(jobInfo->missionType) + { + case WONDER_MAIL_MISSION_TYPE_DELIVER_ITEM: + // Bring #C4%s#R + sub_8090DC4(gUnknown_202DE58,jobInfo->targetItem,0); + sprintf_2(auStack144,gUnknown_80E1F60,gUnknown_202DE58); + xxx_call_draw_string(40,yCoord,auStack144,gUnknown_203B330->unk10,0); + break; + case WONDER_MAIL_MISSION_TYPE_FIND_ITEM: + // Find #C4%s#R + sub_8090DC4(gUnknown_202DE58,jobInfo->targetItem,0); + sprintf_2(auStack144,gUnknown_80E1F70,gUnknown_202DE58); + xxx_call_draw_string(40,yCoord,auStack144,gUnknown_203B330->unk10,0); + break; + case WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT: + // Escort to #C6$s#R + sprintf_2(auStack144,gUnknown_80E1F80,GetMonSpecies(jobInfo->targetSpecies)); + xxx_call_draw_string(40,yCoord,auStack144,gUnknown_203B330->unk10,0); + break; + default: + // Rescue #C6%s#R + sprintf_2(auStack144,gUnknown_80E1F40,GetMonSpecies(jobInfo->targetSpecies)); + xxx_call_draw_string(40,yCoord,auStack144,gUnknown_203B330->unk10,0); + break; + } + yCoord = yCoord + 12; + } + } + } + break; + case 3: + case 0: + default: + if (sub_80992E0(&auStack44,&local_2a) != 0) + xxx_call_draw_string(10,16,GetCurrentMissionText(local_2a),gUnknown_203B330->unk10,0); + else if (sub_8099360(&local_test) != 0) + xxx_call_draw_string(10,16,sub_80975DC(sub_80A2688(local_test)),gUnknown_203B330->unk10,0); + else + xxx_call_draw_string(10,16,gUnknown_80E1F94,gUnknown_203B330->unk10,0); + break; + } + sub_80073E0(gUnknown_203B330->unk10); +} diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index ac2f296..f170a00 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -66,7 +66,7 @@ void CreateRescuePasswordMenu(u32 currMenu) case MENU_DISPLAY_RESCUE_PASSWORD: temp = sub_8095228(0x1F); MemoryFill8((u8 *)temp, 0, sizeof(struct unkStruct_8095228)); - temp->unk0 = 2; + temp->mailType = 2; temp->unk20.itemIndex = ITEM_ID_NOTHING; sub_8031D70(0x1F, 0); break; diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index cdfb97a..fedf2ff 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -251,7 +251,7 @@ extern void sub_801CB5C(u32); extern void sub_801CCD8(void); extern void sub_8011C28(u32); extern u32 sub_80154F0(void); -extern u32 sub_8039068(u32, u8 *r1, u8 *r0); +extern u32 sub_8039068(u32, u8 *r1, struct unkStruct_8095228 *r0); extern u8 sub_809539C(u32, u32); @@ -829,7 +829,7 @@ void HandleThankYouMailPasswordMenu(void) switch(return_var) { case 3: - switch(sub_8039068(0x20,gUnknown_203B2C4->passwordBuffer,&temp.unk0)) + switch(sub_8039068(0x20,gUnknown_203B2C4->passwordBuffer,&temp)) { case 0x11: // Wrong password @@ -851,7 +851,7 @@ void HandleThankYouMailPasswordMenu(void) uVar1 = sub_809539C(4,temp.unk10); puVar5 = sub_8095228(uVar1); *puVar5 = temp; - puVar5->unk0 = 6; + puVar5->mailType = 6; gUnknown_203B2C4->unk430 = temp.unk10; SetThankYouMailMenuState(THANK_YOU_PASSWORD_SUCCESS); break; @@ -1423,7 +1423,7 @@ void UpdateThankYouMailText(void) else gUnknown_203B2C4->unk53C.itemRewards[0] = 0; // unk558 gUnknown_203B2C4->unk53C.numItems = 1; // unk55B - gUnknown_203B2C4->unk53C.teamRankPtsReward = sub_803C200(&puVar4->unk4, 0); // unk560 + gUnknown_203B2C4->unk53C.teamRankPtsReward = sub_803C200(&puVar4->dungeon, 0); // unk560 gUnknown_203B2C4->unk53C.itemRewards[1] = 0; // unk559 gUnknown_203B2C4->unk53C.itemRewards[2] = 0; // unk55A gUnknown_203B2C4->unk53C.friendAreaReward = 0; // unk55C diff --git a/src/wonder_mail.c b/src/wonder_mail.c index 0844a96..6c449aa 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -46,11 +46,11 @@ extern void sub_8030DE4(void); extern void sub_803092C(void); extern u32 sub_80154F0(); -extern u32 sub_8039068(u32, u8 *r1, u8 *r0); +extern u32 sub_8039068(u32, u8 *r1, struct unkStruct_8095228 *r0); extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u32, u32, u32, void *r5, u32); extern void sub_8095274(u32); extern void sub_80155F0(); -extern void sub_80951BC(u8 *r0); +extern void sub_80951BC(struct unkStruct_8095228 *r0); extern void sub_8013114(u32 *r0, s32 *r1); extern void sub_8023C60(); extern u32 sub_8023A94(u32); @@ -1171,7 +1171,7 @@ void sub_8028FDC(void) { case 8: return_var = sub_8095228(gUnknown_203B2C0->unk218); - if(sub_80A2824(return_var->unk4) == 0) + if(sub_80A2824(return_var->dungeon) == 0) { sub_8028B04(0x1C); } @@ -1459,7 +1459,7 @@ void sub_80293F4(void) switch(return_var) { case 3: - switch(sub_8039068(0x1C, (gUnknown_203B2C0->passwordBuffer), &temp.unk0)) + switch(sub_8039068(0x1C, (gUnknown_203B2C0->passwordBuffer), &temp)) { case 17: sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->faceFile, 0xC); @@ -1475,8 +1475,8 @@ void sub_80293F4(void) break; case 22: sub_8095274(temp.unk10); - temp.unk0 = 2; // Some sort of Ack? - sub_80951BC(&temp.unk0); + temp.mailType = 2; + sub_80951BC(&temp); sub_80141B4(gWonderMailAOKMailReceivedText, 0, &gUnknown_203B2C0->faceFile, 0x101); sub_8028B04(35); break; diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c index 6c90992..3359a61 100644 --- a/src/wonder_mail_2.c +++ b/src/wonder_mail_2.c @@ -386,8 +386,8 @@ void sub_802B3E0(void) gUnknown_203B2C8->unk114.moneyReward = 0; sub_8097790(); iVar3 = sub_8095228(gUnknown_203B2C8->unk1); - sub_803C37C(&iVar3->unk4, 0, gUnknown_203B2C8->unk114.itemRewards); - gUnknown_203B2C8->unk114.teamRankPtsReward = sub_803C200(&iVar3->unk4, 0); + sub_803C37C(&iVar3->dungeon, 0, gUnknown_203B2C8->unk114.itemRewards); + gUnknown_203B2C8->unk114.teamRankPtsReward = sub_803C200(&iVar3->dungeon, 0); gUnknown_203B2C8->unk114.itemRewards[1] = 0; gUnknown_203B2C8->unk114.itemRewards[2] = 0; gUnknown_203B2C8->unk114.numItems = 10; @@ -447,7 +447,7 @@ void sub_802B5B8(void) if (sub_80144A4(&temp) == 0) { uVar2 = sub_8011C34(); puVar3 = sub_8095228(gUnknown_203B2C8->unk1); - puVar3->unk0 = 4; + puVar3->mailType = 4; puVar3->unk28 = uVar2; sub_802B548(3); sub_8011C28(1); diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index 02dcfb7..4cc2e0e 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -85,7 +85,7 @@ extern u8 sub_8096C08(u8 *); extern void sub_802C750(void); extern void sub_802D1A0(u32); extern void sub_8012EA4(u8 *, u32); -extern void* sub_8096AB4(u8); +extern struct WonderMail* GetJobSlotInfo(u8); extern void sub_803B35C(void *, u32*); extern void sub_802DE84(u32 *); extern void sub_802D73C(void); @@ -321,7 +321,7 @@ void sub_802D2A8(void) sub_8012D60(gUnknown_203B2F8->unkC8,gUnknown_203B2F8->unk158,0,0,4,3); break; case 0xf: - sub_803B35C(sub_8096AB4(gUnknown_203B2F8->unk10),&gUnknown_203B2F8->unk14); + sub_803B35C(GetJobSlotInfo(gUnknown_203B2F8->unk10),&gUnknown_203B2F8->unk14); gUnknown_203B2F8->unk14 = 3; sub_802DE84(&gUnknown_203B2F8->unk14); break; diff --git a/src/wonder_mail_802DF88.c b/src/wonder_mail_802DF88.c index b85df28..ffac5a8 100644 --- a/src/wonder_mail_802DF88.c +++ b/src/wonder_mail_802DF88.c @@ -16,9 +16,8 @@ struct unkStruct_203B2FC s16 unkE; u8 unk10; u8 fill11[0x30 - 0x11]; - u8 unk30; - u8 fill31[3]; - struct WonderMail *unk34; + u8 jobSlot; + struct WonderMail *jobInfo; struct OpenedFile *faceFile; u8 *faceData; u16 unk40; @@ -76,16 +75,16 @@ extern void sub_802DC40(void); extern void sub_802DC9C(void); void sub_802DE44(void); void sub_802DE60(void); -struct WonderMail *sub_8096AB4(u8); +struct WonderMail *GetJobSlotInfo(u8); extern void sub_8096AF8(u8 *, u32, u32); extern void sub_8096EEC(void); extern void sub_803C21C(struct WonderMail *, u32 *); -u32 sub_802DB28(u8 param_1, u8 param_2) +u32 sub_802DB28(u8 jobSlot, u8 param_2) { char local_18 [8]; - sub_8096AF8(local_18,param_1,param_2); + sub_8096AF8(local_18,jobSlot,param_2); if (local_18[0] == '\0') { return 0; } @@ -93,11 +92,11 @@ u32 sub_802DB28(u8 param_1, u8 param_2) ResetUnusedInputStruct(); sub_800641C(0,1,1); gUnknown_203B2FC = MemoryAlloc(sizeof(struct unkStruct_203B2FC),8); - gUnknown_203B2FC->unk30 = param_1; - gUnknown_203B2FC->unk34 = sub_8096AB4(param_1); + gUnknown_203B2FC->jobSlot = jobSlot; + gUnknown_203B2FC->jobInfo = GetJobSlotInfo(jobSlot); sub_8096EEC(); - sub_803C21C(gUnknown_203B2FC->unk34,&gUnknown_203B2FC->unk8); - gUnknown_203B2FC->faceFile = GetDialogueSpriteDataPtr(gUnknown_203B2FC->unk34->clientSpecies); + sub_803C21C(gUnknown_203B2FC->jobInfo,&gUnknown_203B2FC->unk8); + gUnknown_203B2FC->faceFile = GetDialogueSpriteDataPtr(gUnknown_203B2FC->jobInfo->clientSpecies); gUnknown_203B2FC->faceData = NULL; gUnknown_203B2FC->unk44 = 0; gUnknown_203B2FC->unk45 = 0; @@ -117,7 +116,7 @@ u32 sub_802DBD4(void) switch(gUnknown_203B2FC->state) { case 7: - gUnknown_203B2FC->unk34->mailType = 7; + gUnknown_203B2FC->jobInfo->mailType = 7; return 3; case 6: sub_802DE44(); @@ -173,16 +172,16 @@ void sub_802DC9C(void) switch(gUnknown_203B2FC->state) { case 0: - CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8,gUnknown_203B2FC->unk34->clientSpecies); - CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8,gUnknown_203B2FC->unk34->clientSpecies); - speciesText = GetMonSpecies(gUnknown_203B2FC->unk34->clientSpecies); + CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8,gUnknown_203B2FC->jobInfo->clientSpecies); + CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8,gUnknown_203B2FC->jobInfo->clientSpecies); + speciesText = GetMonSpecies(gUnknown_203B2FC->jobInfo->clientSpecies); strcpy(gUnknown_202E1C8 + 0xfffffdd0,speciesText); - speciesText = GetMonSpecies(gUnknown_203B2FC->unk34->targetSpecies); + speciesText = GetMonSpecies(gUnknown_203B2FC->jobInfo->targetSpecies); strcpy(gUnknown_202E1C8 + 0xfffffe20,speciesText); - UnlockExclusivePokemon(gUnknown_203B2FC->unk34->clientSpecies); - sub_8090DC4(gUnknown_202DE58,gUnknown_203B2FC->unk34->targetItem,0); + UnlockExclusivePokemon(gUnknown_203B2FC->jobInfo->clientSpecies); + sub_8090DC4(gUnknown_202DE58,gUnknown_203B2FC->jobInfo->targetItem,0); gUnknown_203B2FC->fallbackState = 6; - switch(gUnknown_203B2FC->unk34->missionType) { + switch(gUnknown_203B2FC->jobInfo->missionType) { case WONDER_MAIL_MISSION_TYPE_DELIVER_ITEM: sub_802DC28(5); break; @@ -191,11 +190,11 @@ void sub_802DC9C(void) break; case WONDER_MAIL_MISSION_TYPE_RESCUE_TARGET: sub_802DC28(2); - UnlockExclusivePokemon(gUnknown_203B2FC->unk34->targetSpecies); + UnlockExclusivePokemon(gUnknown_203B2FC->jobInfo->targetSpecies); break; case WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT: sub_802DC28(3); - UnlockExclusivePokemon(gUnknown_203B2FC->unk34->targetSpecies); + UnlockExclusivePokemon(gUnknown_203B2FC->jobInfo->targetSpecies); break; default: case WONDER_MAIL_MISSION_TYPE_RESCUE_CLIENT: @@ -216,7 +215,7 @@ void sub_802DC9C(void) sub_80141B4(gWonderMailClientItemDelivered1,0,&gUnknown_203B2FC->faceFile,0x10d); break; case 4: - index = FindItemInInventory(gUnknown_203B2FC->unk34->targetItem); + index = FindItemInInventory(gUnknown_203B2FC->jobInfo->targetItem); if (index != -1) { ShiftItemsDownFrom(index); FillInventoryGaps(); |