mirror of
https://github.com/pret/pokeruby.git
synced 2026-08-28 05:14:40 -05:00
through sub_80C8604
This commit is contained in:
@@ -5,139 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80C857C
|
||||
sub_80C857C: @ 80C857C
|
||||
push {r4,r5,lr}
|
||||
adds r2, r0, 0
|
||||
lsls r4, r1, 16
|
||||
lsrs r4, 16
|
||||
ldr r5, _080C85A8 @ =gSharedMem + 0x1E000
|
||||
adds r0, r5, 0
|
||||
adds r1, r2, 0
|
||||
adds r2, r4, 0
|
||||
bl memcpy
|
||||
bl bitmask_all_link_players_but_self
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
adds r1, r5, 0
|
||||
adds r2, r4, 0
|
||||
bl SendBlock
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C85A8: .4byte gSharedMem + 0x1E000
|
||||
thumb_func_end sub_80C857C
|
||||
|
||||
thumb_func_start sub_80C85AC
|
||||
sub_80C85AC: @ 80C85AC
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
movs r1, 0x80
|
||||
lsls r1, 17
|
||||
lsls r1, r0
|
||||
lsrs r4, r1, 24
|
||||
bl GetBlockReceivedStatus
|
||||
adds r1, r4, 0
|
||||
ands r1, r0
|
||||
cmp r1, 0
|
||||
beq _080C85D0
|
||||
adds r0, r4, 0
|
||||
bl ResetBlockReceivedFlag
|
||||
movs r0, 0x1
|
||||
b _080C85D2
|
||||
_080C85D0:
|
||||
movs r0, 0
|
||||
_080C85D2:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80C85AC
|
||||
|
||||
thumb_func_start sub_80C85D8
|
||||
sub_80C85D8: @ 80C85D8
|
||||
push {r4,lr}
|
||||
movs r4, 0
|
||||
_080C85DC:
|
||||
bl GetBlockReceivedStatus
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
asrs r0, r4
|
||||
movs r1, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080C85F2
|
||||
movs r0, 0
|
||||
b _080C85FE
|
||||
_080C85F2:
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x3
|
||||
ble _080C85DC
|
||||
bl ResetBlockReceivedFlags
|
||||
movs r0, 0x1
|
||||
_080C85FE:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80C85D8
|
||||
|
||||
.ifdef ENGLISH
|
||||
thumb_func_start sub_80C8604
|
||||
sub_80C8604: @ 80C8604
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
movs r1, 0
|
||||
ldr r5, _080C8638 @ =gTasks
|
||||
ldr r6, _080C863C @ =sub_80C8644
|
||||
ldr r4, _080C8640 @ =gBlockRecvBuffer
|
||||
movs r3, 0xFF
|
||||
_080C8614:
|
||||
lsls r0, r1, 8
|
||||
adds r0, r4
|
||||
strh r3, [r0]
|
||||
adds r0, r1, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r1, r0, 24
|
||||
cmp r1, 0x3
|
||||
bls _080C8614
|
||||
lsls r0, r2, 2
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
adds r0, r5
|
||||
movs r1, 0
|
||||
strh r1, [r0, 0x8]
|
||||
str r6, [r0]
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080C8638: .4byte gTasks
|
||||
_080C863C: .4byte sub_80C8644
|
||||
_080C8640: .4byte gBlockRecvBuffer
|
||||
thumb_func_end sub_80C8604
|
||||
.else
|
||||
thumb_func_start sub_80C8604
|
||||
sub_80C8604: @ 80C8604
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, _080C861C @ =gTasks
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2
|
||||
movs r0, 0
|
||||
strh r0, [r1, 0x8]
|
||||
ldr r0, _080C8620 @ =sub_80C8644
|
||||
str r0, [r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080C861C: .4byte gTasks
|
||||
_080C8620: .4byte sub_80C8644
|
||||
thumb_func_end sub_80C8604
|
||||
.endif
|
||||
|
||||
thumb_func_start sub_80C8644
|
||||
sub_80C8644: @ 80C8644
|
||||
lsls r0, 24
|
||||
|
||||
@@ -261,6 +261,7 @@ extern u8 gSharedMem[];
|
||||
#define eHallOfFame (struct HallOfFame *)(gSharedMem + 0x1E000)
|
||||
#define HALL_OF_FAME_SHEET_0 ((u8 *)(gSharedMem + 0x1E000))
|
||||
#define ewram1E000_2 (const u8 *)(gSharedMem + 0x1E000)
|
||||
#define eContestLinkSendBuffer gSharedMem + 0x1E000
|
||||
#define HALL_OF_FAME_SHEET_1 ((u8 *)(gSharedMem + 0x1E800))
|
||||
#define ewram_1f000 (*(struct DecoPCPointers *)(gSharedMem + 0x1f000))
|
||||
#define ewramSavedPokeballsPocket ((struct ItemSlot *)(gSharedMem + 0x1F000)) // saved Pokeballs pocket (for Wally battle)
|
||||
|
||||
@@ -169,8 +169,9 @@ SECTIONS {
|
||||
src/field/field_special_scene.o(.text);
|
||||
src/field/rotating_gate.o(.text);
|
||||
src/field/safari_zone.o(.text);
|
||||
asm/contest_link_80C857C.o(.text);
|
||||
src/battle/contest_link_80C857C.o(.text);
|
||||
asm/contest_link_80C857C.o(.text);
|
||||
src/battle/contest_link_80C857C.o(.text_de);
|
||||
src/field/item_use.o(.text);
|
||||
src/battle/anim/powder.o(.text);
|
||||
src/battle/anim/orbs.o(.text);
|
||||
|
||||
@@ -1,6 +1,52 @@
|
||||
#include "global.h"
|
||||
#include "ewram.h"
|
||||
#include "task.h"
|
||||
#include "link.h"
|
||||
|
||||
void sub_80C8644(u8 taskId);
|
||||
|
||||
void sub_80C857C(const void *data, u16 size)
|
||||
{
|
||||
memcpy(eContestLinkSendBuffer, data, size);
|
||||
SendBlock(bitmask_all_link_players_but_self(), eContestLinkSendBuffer, size);
|
||||
}
|
||||
|
||||
bool8 sub_80C85AC(u8 who)
|
||||
{
|
||||
u8 flag = 1 << who;
|
||||
if (!(GetBlockReceivedStatus() & flag))
|
||||
return FALSE;
|
||||
ResetBlockReceivedFlag(flag);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_80C85D8(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < MAX_LINK_PLAYERS; i++)
|
||||
{
|
||||
if (!((GetBlockReceivedStatus() >> i) & 1))
|
||||
return FALSE;
|
||||
}
|
||||
ResetBlockReceivedFlags();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_80C8604(u8 taskId)
|
||||
{
|
||||
#if ENGLISH
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
gBlockRecvBuffer[i][0] = 0xff;
|
||||
#endif
|
||||
gTasks[taskId].data[0] = 0;
|
||||
gTasks[taskId].func = sub_80C8644;
|
||||
}
|
||||
|
||||
asm(".section .text_de");
|
||||
|
||||
#if GERMAN
|
||||
|
||||
void de_sub_80C9274(bool32 arg0)
|
||||
|
||||
Reference in New Issue
Block a user