sub_800E748

This commit is contained in:
PikalaxALT 2017-12-04 21:05:41 -05:00
parent 765ad80884
commit 21619096da
3 changed files with 59 additions and 120 deletions

View File

@ -5,117 +5,6 @@
.text
thumb_func_start sub_800E748
sub_800E748: @ 800E748
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
bl sub_8010750
ldr r0, =gUnknown_03005000
ldrh r0, [r0, 0x4]
cmp r0, 0x12
bls _0800E75C
b _0800E862
_0800E75C:
lsls r0, 2
ldr r1, =_0800E770
adds r0, r1
ldr r0, [r0]
mov pc, r0
.pool
.align 2, 0
_0800E770:
.4byte _0800E7BC
.4byte _0800E862
.4byte _0800E7E4
.4byte _0800E862
.4byte _0800E814
.4byte _0800E862
.4byte _0800E862
.4byte _0800E862
.4byte _0800E862
.4byte _0800E862
.4byte _0800E862
.4byte _0800E862
.4byte _0800E862
.4byte _0800E862
.4byte _0800E862
.4byte _0800E862
.4byte _0800E862
.4byte _0800E862
.4byte _0800E828
_0800E7BC:
ldr r0, =gUnknown_02022B2C
bl sub_800BFCC
ldr r0, =gUnknown_03005000
movs r2, 0x1
strh r2, [r0, 0x4]
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
strh r2, [r0, 0xA]
b _0800E862
.pool
_0800E7E4:
ldr r4, =gUnknown_03005000
ldrb r0, [r4, 0xC]
ldr r3, =gUnknown_082ED6E0
movs r1, 0
movs r2, 0xF0
bl sub_800C054
movs r0, 0x3
strh r0, [r4, 0x4]
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r1, 0x6
strh r1, [r0, 0xA]
b _0800E862
.pool
_0800E814:
movs r0, 0
bl sub_800C27C
ldr r1, =gUnknown_03005000
movs r0, 0x5
strh r0, [r1, 0x4]
b _0800E862
.pool
_0800E828:
ldr r4, =gUnknown_03005000
ldr r0, =0x00000cdb
adds r1, r4, r0
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldr r0, =sub_800EDBC
bl sub_800D52C
bl sub_800EAB4
bl sub_800EAFC
movs r0, 0x14
strh r0, [r4, 0x4]
ldr r1, =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r1, 0x8
strh r1, [r0, 0xA]
ldr r0, =sub_801084C
movs r1, 0x5
bl CreateTask
adds r0, r5, 0
bl DestroyTask
_0800E862:
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_800E748
thumb_func_start sub_800E87C
sub_800E87C: @ 800E87C
lsls r0, 24

View File

@ -67,7 +67,7 @@ struct UnkRfuStruct_1 {
/* 0x01a */ u16 unk_1a;
/* 0x01c */ u16 unk_1c;
/* 0x01e */ u16 unk_1e;
/* 0x020 */ u16 *unk_20;
/* 0x020 */ const u16 *unk_20;
/* 0x024 */ u8 unk_24;
/* 0x026 */ u16 unk_26;
/* 0x028 */ u16 unk_28[4];
@ -126,7 +126,9 @@ struct UnkRfuStruct_Sub_Unused {
};
struct UnkRfuStruct_2 {
/* 0x000 */ u8 filler_00[12];
/* 0x000 */ u8 filler_00[4];
/* 0x004 */ u16 unk_04;
/* 0x006 */ u8 filler_06[6];
/* 0x00c */ u8 unk_0c;
/* 0x00d */ u8 playerCount;
/* 0x00e */ u8 filler_0e[0x5e];
@ -139,7 +141,9 @@ struct UnkRfuStruct_2 {
/* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8;
/* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c;
/* 0xc3c */ u8 filler_c3c[3];
/* 0xc3f */ u8 filler_c3f[0xb5];
/* 0xc3f */ u8 filler_c3f[0x9c];
/* 0xcdb */ vu8 unk_cdb;
/* 0xcdc */ u8 filler_cdc[0x18];
}; // size = 0xcf4
// Exported RAM declarations
@ -174,5 +178,7 @@ bool32 sub_8010F1C(void);
bool32 sub_800F0B8(void);
u32 sub_80124D4(void);
void RfuVSync(void);
void sub_80111B0(bool32 a0);
u8 sub_8011A74(void);
#endif //GUARD_LINK_RFU_H

View File

@ -2,6 +2,7 @@
// Includes
#include "global.h"
#include "malloc.h"
#include "task.h"
#include "rng.h"
#include "decompress.h"
#include "text.h"
@ -46,10 +47,13 @@ static void sub_800D434(void);
static void sub_800D610(void);
void sub_800D630(void);
bool8 sub_800DAC8(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2);
void sub_800EDBC(u16 a0);
void sub_800EAB4(void);
void sub_800EAFC(void);
void sub_800FCC4(struct UnkRfuStruct_2_Sub_6c *data);
bool32 sub_8010454(u16 a0);
void sub_80111B0(bool32 a0);
u8 sub_8011A74(void);
void sub_8010750(void);
void sub_801084C(u8 taskId);
u8 sub_8012224(void);
// .rodata
@ -186,6 +190,8 @@ static const struct SpriteTemplate sWirelessStatusIndicatorSpriteTemplate = {
SpriteCallbackDummy
};
extern const u16 gUnknown_082ED6E0[4];
// .text
u32 sub_800BEC0(void)
@ -290,10 +296,10 @@ void sub_800C048(void)
gUnknown_03004140.unk_04 = 0x15;
}
u8 sub_800C054(u8 r5, u16 r7, u16 r8, u16 *r6)
u8 sub_800C054(u8 r5, u16 r7, u16 r8, const u16 *r6)
{
u8 i;
u16 *buffer;
const u16 *buffer;
if (gUnknown_03004140.unk_04 != 0 && (gUnknown_03004140.unk_04 != 0x08 || r5 != 1))
{
@ -1168,7 +1174,7 @@ static void sub_800CF34(void)
u8 i;
u8 r5;
u8 r4;
u16 *ptr;
const u16 *ptr;
if (gUnknown_03004140.unk_04 == 5 || gUnknown_03004140.unk_04 == 6 || gUnknown_03004140.unk_04 == 7 || gUnknown_03004140.unk_04 == 8)
{
@ -1338,7 +1344,7 @@ static void sub_800D268(void)
static u8 sub_800D294(void)
{
u8 i;
u16 *ptr;
const u16 *ptr;
u8 flags = 0x00;
for (i = 0; i < gUnknown_03007890->unk_08; i++)
@ -2381,3 +2387,41 @@ void sub_800E700(void)
rfu_setTimerInterrupt(3, gIntrTable + 2);
}
}
void sub_800E748(u8 taskId)
{
sub_8010750();
switch (gUnknown_03005000.unk_04)
{
case 0:
sub_800BFCC(&gUnknown_02022B2C);
gUnknown_03005000.unk_04 = 1;
gTasks[taskId].data[1] = 1;
break;
case 1:
break;
case 2:
sub_800C054(gUnknown_03005000.unk_0c, 0, 240, gUnknown_082ED6E0);
gUnknown_03005000.unk_04 = 3;
gTasks[taskId].data[1] = 6;
break;
case 3:
break;
case 4:
sub_800C27C(FALSE);
gUnknown_03005000.unk_04 = 5;
break;
case 5:
break;
case 18:
gUnknown_03005000.unk_cdb = 0;
sub_800D52C(sub_800EDBC);
sub_800EAB4();
sub_800EAFC();
gUnknown_03005000.unk_04 = 20;
gTasks[taskId].data[1] = 8;
CreateTask(sub_801084C, 5);
DestroyTask(taskId);
break;
}
}