through TryBecomeLinkLeader

This commit is contained in:
PikalaxALT
2020-01-19 20:23:15 -05:00
parent 407c49820e
commit 44337a41db
3 changed files with 80 additions and 237 deletions
-237
View File
@@ -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}
+1
View File
@@ -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);
+79
View File
@@ -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;
}