mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-01-31 16:30:00 +01:00
sub_800A2F4
This commit is contained in:
parent
1ac4d1849c
commit
e8ea1867a0
63
asm/link.s
63
asm/link.s
@ -5,69 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_800A2E0
|
|
||||||
sub_800A2E0: @ 800A2E0
|
|
||||||
ldr r1, =gUnknown_03000D10
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r1, 0x8]
|
|
||||||
strh r0, [r1]
|
|
||||||
strh r0, [r1, 0x2]
|
|
||||||
str r0, [r1, 0x4]
|
|
||||||
bx lr
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_800A2E0
|
|
||||||
|
|
||||||
thumb_func_start sub_800A2F4
|
|
||||||
sub_800A2F4: @ 800A2F4
|
|
||||||
push {r4-r7,lr}
|
|
||||||
adds r7, r0, 0
|
|
||||||
adds r6, r1, 0
|
|
||||||
ldr r4, =gUnknown_03000D10
|
|
||||||
ldrb r5, [r4, 0x8]
|
|
||||||
cmp r5, 0
|
|
||||||
beq _0800A30C
|
|
||||||
movs r0, 0
|
|
||||||
b _0800A34A
|
|
||||||
.pool
|
|
||||||
_0800A30C:
|
|
||||||
bl GetMultiplayerId
|
|
||||||
strb r0, [r4, 0x9]
|
|
||||||
movs r0, 0x1
|
|
||||||
strb r0, [r4, 0x8]
|
|
||||||
strh r6, [r4, 0x2]
|
|
||||||
strh r5, [r4]
|
|
||||||
adds r0, 0xFF
|
|
||||||
cmp r6, r0
|
|
||||||
bls _0800A324
|
|
||||||
str r7, [r4, 0x4]
|
|
||||||
b _0800A336
|
|
||||||
_0800A324:
|
|
||||||
ldr r5, =gUnknown_020228C4
|
|
||||||
cmp r7, r5
|
|
||||||
beq _0800A334
|
|
||||||
adds r0, r5, 0
|
|
||||||
adds r1, r7, 0
|
|
||||||
adds r2, r6, 0
|
|
||||||
bl memcpy
|
|
||||||
_0800A334:
|
|
||||||
str r5, [r4, 0x4]
|
|
||||||
_0800A336:
|
|
||||||
ldr r0, =0x0000bbbb
|
|
||||||
bl sub_8009D90
|
|
||||||
ldr r1, =gUnknown_03003140
|
|
||||||
ldr r0, =sub_800A364
|
|
||||||
str r0, [r1]
|
|
||||||
ldr r1, =gUnknown_03000D50
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [r1]
|
|
||||||
movs r0, 0x1
|
|
||||||
_0800A34A:
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_800A2F4
|
|
||||||
|
|
||||||
thumb_func_start sub_800A364
|
thumb_func_start sub_800A364
|
||||||
sub_800A364: @ 800A364
|
sub_800A364: @ 800A364
|
||||||
push {lr}
|
push {lr}
|
||||||
|
47
src/link.c
47
src/link.c
@ -22,7 +22,7 @@ struct BlockTransfer
|
|||||||
{
|
{
|
||||||
u16 pos;
|
u16 pos;
|
||||||
u16 size;
|
u16 size;
|
||||||
void *src;
|
const void *src;
|
||||||
bool8 active;
|
bool8 active;
|
||||||
u8 multiplayerId;
|
u8 multiplayerId;
|
||||||
};
|
};
|
||||||
@ -111,9 +111,10 @@ void sub_8009638(void);
|
|||||||
void sub_80096BC(void);
|
void sub_80096BC(void);
|
||||||
static void c2_08009A8C(void);
|
static void c2_08009A8C(void);
|
||||||
static void sub_8009AA0(u8 unused);
|
static void sub_8009AA0(u8 unused);
|
||||||
void sub_8009F70(void);
|
static void sub_8009F70(void);
|
||||||
void sub_800A2E0(void);
|
static void sub_800A2E0(void);
|
||||||
void sub_800A2F4(void *heapptr, size_t src);
|
bool32 sub_800A2F4(const void *src, size_t size);
|
||||||
|
void sub_800A364(void);
|
||||||
void sub_800A418(void);
|
void sub_800A418(void);
|
||||||
void task00_link_test(u8 taskId);
|
void task00_link_test(u8 taskId);
|
||||||
void sub_800A588(u8 who);
|
void sub_800A588(u8 who);
|
||||||
@ -671,7 +672,7 @@ bool32 sub_8009F3C(void)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_8009F70(void)
|
static void sub_8009F70(void)
|
||||||
{
|
{
|
||||||
if (gReceivedRemoteLinkPlayers == TRUE)
|
if (gReceivedRemoteLinkPlayers == TRUE)
|
||||||
{
|
{
|
||||||
@ -884,3 +885,39 @@ void sub_800A2BC(void)
|
|||||||
gLinkPlayers[i] = (struct LinkPlayer){};
|
gLinkPlayers[i] = (struct LinkPlayer){};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void sub_800A2E0(void)
|
||||||
|
{
|
||||||
|
gUnknown_03000D10.active = FALSE;
|
||||||
|
gUnknown_03000D10.pos = 0;
|
||||||
|
gUnknown_03000D10.size = 0;
|
||||||
|
gUnknown_03000D10.src = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 sub_800A2F4(const void *src, size_t size)
|
||||||
|
{
|
||||||
|
if (gUnknown_03000D10.active)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
gUnknown_03000D10.multiplayerId = GetMultiplayerId();
|
||||||
|
gUnknown_03000D10.active = TRUE;
|
||||||
|
gUnknown_03000D10.size = size;
|
||||||
|
gUnknown_03000D10.pos = 0;
|
||||||
|
if (size > 0x100)
|
||||||
|
{
|
||||||
|
gUnknown_03000D10.src = src;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (src != gUnknown_020228C4)
|
||||||
|
{
|
||||||
|
memcpy(gUnknown_020228C4, src, size);
|
||||||
|
}
|
||||||
|
gUnknown_03000D10.src = gUnknown_020228C4;
|
||||||
|
}
|
||||||
|
sub_8009D90(0xbbbb);
|
||||||
|
gUnknown_03003140 = sub_800A364;
|
||||||
|
gUnknown_03000D50 = 0;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user