mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-24 17:54:43 -05:00
fix a few nonmatchings and code cleanup
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
@@ -4,7 +4,7 @@
|
||||
struct unkStruct_203B480
|
||||
{
|
||||
u8 unk0;
|
||||
struct unkPokeSubStruct_4 unk4;
|
||||
struct DungeonLocation unk4;
|
||||
u32 unk8;
|
||||
u32 unkC;
|
||||
u32 unk10;
|
||||
|
||||
@@ -32,4 +32,9 @@
|
||||
|
||||
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
|
||||
|
||||
struct DungeonLocation {
|
||||
u8 dungeonIndex;
|
||||
u8 dungeonFloor;
|
||||
};
|
||||
|
||||
#endif // GUARD_GLOBAL_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;
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -61,7 +61,7 @@ s32 sub_80A2668(u32 r0)
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_80A2688(u8 r0, u32 r1)
|
||||
u32 sub_80A2688(u8 r0)
|
||||
{
|
||||
u32 uVar1;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
353
src/music_pre.c
353
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)
|
||||
{
|
||||
preload->unk6 = 1;
|
||||
}
|
||||
else
|
||||
if(param_2 == 256)
|
||||
{
|
||||
preload->unk6 = 0;
|
||||
}
|
||||
preload->unk4 = msVar;
|
||||
if (interrupt_flag)
|
||||
else
|
||||
{
|
||||
preload->unk6 = 1;
|
||||
}
|
||||
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,39 +869,34 @@ 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user