through TryBecomeLinkLeader
This commit is contained in:
@@ -5,243 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_811586C
|
|
||||||
sub_811586C: @ 811586C
|
|
||||||
push {r4-r6,lr}
|
|
||||||
sub sp, 0x8
|
|
||||||
adds r4, r1, 0
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r6, r0, 24
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
lsls r2, 24
|
|
||||||
lsrs r5, r2, 24
|
|
||||||
adds r0, r6, 0
|
|
||||||
movs r1, 0x11
|
|
||||||
bl FillWindowPixelBuffer
|
|
||||||
lsls r4, 8
|
|
||||||
movs r0, 0x80
|
|
||||||
lsls r0, 3
|
|
||||||
cmp r4, r0
|
|
||||||
beq _081158BC
|
|
||||||
cmp r4, r0
|
|
||||||
bgt _0811589E
|
|
||||||
movs r0, 0x80
|
|
||||||
lsls r0, 2
|
|
||||||
cmp r4, r0
|
|
||||||
beq _081158B0
|
|
||||||
b _0811590E
|
|
||||||
_0811589E:
|
|
||||||
movs r0, 0x94
|
|
||||||
lsls r0, 6
|
|
||||||
cmp r4, r0
|
|
||||||
beq _081158CC
|
|
||||||
movs r0, 0xD4
|
|
||||||
lsls r0, 6
|
|
||||||
cmp r4, r0
|
|
||||||
beq _081158F0
|
|
||||||
b _0811590E
|
|
||||||
_081158B0:
|
|
||||||
ldr r1, _081158B8 @ =gUnknown_845742C
|
|
||||||
subs r0, r5, 0x1
|
|
||||||
lsls r0, 2
|
|
||||||
b _081158D4
|
|
||||||
.align 2, 0
|
|
||||||
_081158B8: .4byte gUnknown_845742C
|
|
||||||
_081158BC:
|
|
||||||
ldr r1, _081158C8 @ =gUnknown_845742C
|
|
||||||
subs r0, r5, 0x1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, 0x14
|
|
||||||
b _081158D4
|
|
||||||
.align 2, 0
|
|
||||||
_081158C8: .4byte gUnknown_845742C
|
|
||||||
_081158CC:
|
|
||||||
ldr r1, _081158EC @ =gUnknown_845742C
|
|
||||||
subs r0, r5, 0x1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, 0x28
|
|
||||||
_081158D4:
|
|
||||||
adds r0, r1
|
|
||||||
ldr r2, [r0]
|
|
||||||
movs r0, 0x2
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
adds r0, r6, 0
|
|
||||||
movs r1, 0x2
|
|
||||||
movs r3, 0
|
|
||||||
bl sub_811A444
|
|
||||||
b _0811590E
|
|
||||||
.align 2, 0
|
|
||||||
_081158EC: .4byte gUnknown_845742C
|
|
||||||
_081158F0:
|
|
||||||
ldr r1, _08115920 @ =gUnknown_845742C
|
|
||||||
subs r0, r5, 0x1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, 0x3C
|
|
||||||
adds r0, r1
|
|
||||||
ldr r2, [r0]
|
|
||||||
movs r0, 0x2
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
adds r0, r6, 0
|
|
||||||
movs r1, 0x2
|
|
||||||
movs r3, 0
|
|
||||||
bl sub_811A444
|
|
||||||
_0811590E:
|
|
||||||
adds r0, r6, 0
|
|
||||||
movs r1, 0x2
|
|
||||||
bl CopyWindowToVram
|
|
||||||
add sp, 0x8
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08115920: .4byte gUnknown_845742C
|
|
||||||
thumb_func_end sub_811586C
|
|
||||||
|
|
||||||
thumb_func_start sub_8115924
|
|
||||||
sub_8115924: @ 8115924
|
|
||||||
push {r4-r6,lr}
|
|
||||||
mov r6, r8
|
|
||||||
push {r6}
|
|
||||||
sub sp, 0x20
|
|
||||||
adds r4, r0, 0
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
ldr r6, _08115994 @ =gSaveBlock2Ptr
|
|
||||||
ldr r2, [r6]
|
|
||||||
movs r0, 0x2
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0
|
|
||||||
mov r8, r0
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0x2
|
|
||||||
movs r3, 0
|
|
||||||
bl sub_811A444
|
|
||||||
add r5, sp, 0x14
|
|
||||||
ldr r1, _08115998 @ =gUnknown_84571B4
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl StringCopy
|
|
||||||
ldr r0, [r6]
|
|
||||||
adds r0, 0xA
|
|
||||||
bl sub_8118658
|
|
||||||
adds r1, r0, 0
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r1, 16
|
|
||||||
add r0, sp, 0x8
|
|
||||||
movs r2, 0x2
|
|
||||||
movs r3, 0x5
|
|
||||||
bl ConvertIntToDecimalStringN
|
|
||||||
adds r0, r5, 0
|
|
||||||
add r1, sp, 0x8
|
|
||||||
bl StringAppend
|
|
||||||
movs r0, 0x10
|
|
||||||
str r0, [sp]
|
|
||||||
mov r0, r8
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
adds r0, r4, 0
|
|
||||||
movs r1, 0
|
|
||||||
adds r2, r5, 0
|
|
||||||
movs r3, 0
|
|
||||||
bl sub_811A444
|
|
||||||
add sp, 0x20
|
|
||||||
pop {r3}
|
|
||||||
mov r8, r3
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08115994: .4byte gSaveBlock2Ptr
|
|
||||||
_08115998: .4byte gUnknown_84571B4
|
|
||||||
thumb_func_end sub_8115924
|
|
||||||
|
|
||||||
thumb_func_start sub_811599C
|
|
||||||
sub_811599C: @ 811599C
|
|
||||||
push {lr}
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
subs r0, r1, 0x1
|
|
||||||
cmp r0, 0x15
|
|
||||||
bhi _08115A18
|
|
||||||
lsls r0, 2
|
|
||||||
ldr r1, _081159B4 @ =_081159B8
|
|
||||||
adds r0, r1
|
|
||||||
ldr r0, [r0]
|
|
||||||
mov pc, r0
|
|
||||||
.align 2, 0
|
|
||||||
_081159B4: .4byte _081159B8
|
|
||||||
.align 2, 0
|
|
||||||
_081159B8:
|
|
||||||
.4byte _08115A10
|
|
||||||
.4byte _08115A10
|
|
||||||
.4byte _08115A10
|
|
||||||
.4byte _08115A10
|
|
||||||
.4byte _08115A18
|
|
||||||
.4byte _08115A18
|
|
||||||
.4byte _08115A18
|
|
||||||
.4byte _08115A18
|
|
||||||
.4byte _08115A10
|
|
||||||
.4byte _08115A10
|
|
||||||
.4byte _08115A10
|
|
||||||
.4byte _08115A18
|
|
||||||
.4byte _08115A18
|
|
||||||
.4byte _08115A18
|
|
||||||
.4byte _08115A18
|
|
||||||
.4byte _08115A18
|
|
||||||
.4byte _08115A18
|
|
||||||
.4byte _08115A18
|
|
||||||
.4byte _08115A18
|
|
||||||
.4byte _08115A18
|
|
||||||
.4byte _08115A10
|
|
||||||
.4byte _08115A10
|
|
||||||
_08115A10:
|
|
||||||
ldr r0, _08115A1C @ =gStringVar4
|
|
||||||
ldr r1, _08115A20 @ =gUnknown_8457234
|
|
||||||
bl StringExpandPlaceholders
|
|
||||||
_08115A18:
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08115A1C: .4byte gStringVar4
|
|
||||||
_08115A20: .4byte gUnknown_8457234
|
|
||||||
thumb_func_end sub_811599C
|
|
||||||
|
|
||||||
thumb_func_start TryBecomeLinkLeader
|
|
||||||
TryBecomeLinkLeader: @ 8115A24
|
|
||||||
push {lr}
|
|
||||||
ldr r0, _08115A54 @ =sub_8115A68
|
|
||||||
movs r1, 0
|
|
||||||
bl CreateTask
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldr r2, _08115A58 @ =gUnknown_203B05C
|
|
||||||
lsls r1, r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
lsls r1, 3
|
|
||||||
ldr r0, _08115A5C @ =gTasks+0x8
|
|
||||||
adds r1, r0
|
|
||||||
str r1, [r2]
|
|
||||||
ldr r0, _08115A60 @ =gUnknown_3002024
|
|
||||||
str r1, [r0]
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r1, 0xC]
|
|
||||||
strb r0, [r1, 0xD]
|
|
||||||
ldr r1, _08115A64 @ =gSpecialVar_Result
|
|
||||||
strh r0, [r1]
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08115A54: .4byte sub_8115A68
|
|
||||||
_08115A58: .4byte gUnknown_203B05C
|
|
||||||
_08115A5C: .4byte gTasks+0x8
|
|
||||||
_08115A60: .4byte gUnknown_3002024
|
|
||||||
_08115A64: .4byte gSpecialVar_Result
|
|
||||||
thumb_func_end TryBecomeLinkLeader
|
|
||||||
|
|
||||||
thumb_func_start sub_8115A68
|
thumb_func_start sub_8115A68
|
||||||
sub_8115A68: @ 8115A68
|
sub_8115A68: @ 8115A68
|
||||||
push {r4-r7,lr}
|
push {r4-r7,lr}
|
||||||
|
|||||||
@@ -241,6 +241,7 @@ SECTIONS {
|
|||||||
src/mailbox_pc.o(.text);
|
src/mailbox_pc.o(.text);
|
||||||
src/menu.o(.text);
|
src/menu.o(.text);
|
||||||
src/quest_log.o(.text);
|
src/quest_log.o(.text);
|
||||||
|
src/union_room.o(.text);
|
||||||
asm/union_room.o(.text);
|
asm/union_room.o(.text);
|
||||||
asm/union_room_player_avatar.o(.text);
|
asm/union_room_player_avatar.o(.text);
|
||||||
asm/pokemon_special_anim.o(.text);
|
asm/pokemon_special_anim.o(.text);
|
||||||
|
|||||||
@@ -0,0 +1,79 @@
|
|||||||
|
#include "global.h"
|
||||||
|
#include "gflib.h"
|
||||||
|
#include "event_data.h"
|
||||||
|
#include "link_rfu.h"
|
||||||
|
#include "task.h"
|
||||||
|
#include "union_room.h"
|
||||||
|
|
||||||
|
EWRAM_DATA union UnkUnion_Main gUnknown_203B05C = {};
|
||||||
|
|
||||||
|
IWRAM_DATA struct UnkStruct_Leader *gUnknown_3002024;
|
||||||
|
|
||||||
|
void sub_8115A68(u8 taskId);
|
||||||
|
u16 sub_8118658(const u8 *data);
|
||||||
|
void sub_811A444(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx);
|
||||||
|
|
||||||
|
extern const u8 *const gUnknown_845742C[][5];
|
||||||
|
extern const u8 gUnknown_84571B4[];
|
||||||
|
extern const u8 gUnknown_8457234[];
|
||||||
|
|
||||||
|
void sub_811586C(u8 windowId, u8 arg1, u8 stringId)
|
||||||
|
{
|
||||||
|
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
|
||||||
|
switch (arg1 << 8)
|
||||||
|
{
|
||||||
|
case 0x200:
|
||||||
|
sub_811A444(windowId, 2, gUnknown_845742C[0][stringId - 1], 0, 2, 0);
|
||||||
|
break;
|
||||||
|
case 0x400:
|
||||||
|
sub_811A444(windowId, 2, gUnknown_845742C[1][stringId - 1], 0, 2, 0);
|
||||||
|
break;
|
||||||
|
case 0x2500:
|
||||||
|
sub_811A444(windowId, 2, gUnknown_845742C[2][stringId - 1], 0, 2, 0);
|
||||||
|
break;
|
||||||
|
case 0x3500:
|
||||||
|
sub_811A444(windowId, 2, gUnknown_845742C[3][stringId - 1], 0, 2, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
CopyWindowToVram(windowId, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8115924(u8 windowId)
|
||||||
|
{
|
||||||
|
u8 text[12];
|
||||||
|
u8 text2[12];
|
||||||
|
|
||||||
|
sub_811A444(windowId, 2, gSaveBlock2Ptr->playerName, 0, 2, 0);
|
||||||
|
StringCopy(text2, gUnknown_84571B4);
|
||||||
|
ConvertIntToDecimalStringN(text, sub_8118658(gSaveBlock2Ptr->playerTrainerId), STR_CONV_MODE_LEADING_ZEROS, 5);
|
||||||
|
StringAppend(text2, text);
|
||||||
|
sub_811A444(windowId, 0, text2, 0, 0x10, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_811599C(u8 *dst, u8 caseId)
|
||||||
|
{
|
||||||
|
switch (caseId)
|
||||||
|
{
|
||||||
|
case 1 ... 4:
|
||||||
|
case 9 ... 11:
|
||||||
|
case 21 ... 22:
|
||||||
|
// UB: argument *dst isn't used, instead it always prints to gStringVar4
|
||||||
|
StringExpandPlaceholders(gStringVar4, gUnknown_8457234);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TryBecomeLinkLeader(void)
|
||||||
|
{
|
||||||
|
u8 taskId;
|
||||||
|
struct UnkStruct_Leader *dataPtr;
|
||||||
|
|
||||||
|
taskId = CreateTask(sub_8115A68, 0);
|
||||||
|
gUnknown_203B05C.leader = dataPtr = (void*)(gTasks[taskId].data);
|
||||||
|
gUnknown_3002024 = dataPtr;
|
||||||
|
|
||||||
|
dataPtr->state = 0;
|
||||||
|
dataPtr->textState = 0;
|
||||||
|
gSpecialVar_Result = 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user