Finish wireless_communication_status_screen
This commit is contained in:
@@ -1,310 +0,0 @@
|
|||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
thumb_func_start sub_814F65C
|
|
||||||
sub_814F65C: @ 814F65C
|
|
||||||
push {r4-r7,lr}
|
|
||||||
sub sp, 0x18
|
|
||||||
mov r12, r2
|
|
||||||
ldr r2, [sp, 0x2C]
|
|
||||||
ldr r4, [sp, 0x30]
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r7, r0, 24
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r5, r1, 24
|
|
||||||
lsls r3, 24
|
|
||||||
lsrs r6, r3, 24
|
|
||||||
lsls r2, 24
|
|
||||||
lsrs r3, r2, 24
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r0, r4, 24
|
|
||||||
cmp r0, 0x4
|
|
||||||
bhi _0814F6E6
|
|
||||||
lsls r0, 2
|
|
||||||
ldr r1, _0814F688 @ =_0814F68C
|
|
||||||
adds r0, r1
|
|
||||||
ldr r0, [r0]
|
|
||||||
mov pc, r0
|
|
||||||
.align 2, 0
|
|
||||||
_0814F688: .4byte _0814F68C
|
|
||||||
.align 2, 0
|
|
||||||
_0814F68C:
|
|
||||||
.4byte _0814F6A0
|
|
||||||
.4byte _0814F6AE
|
|
||||||
.4byte _0814F6BC
|
|
||||||
.4byte _0814F6CA
|
|
||||||
.4byte _0814F6D8
|
|
||||||
_0814F6A0:
|
|
||||||
add r1, sp, 0x14
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r1]
|
|
||||||
movs r0, 0x2
|
|
||||||
strb r0, [r1, 0x1]
|
|
||||||
movs r0, 0x3
|
|
||||||
b _0814F6E4
|
|
||||||
_0814F6AE:
|
|
||||||
add r1, sp, 0x14
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r1]
|
|
||||||
movs r0, 0x1
|
|
||||||
strb r0, [r1, 0x1]
|
|
||||||
movs r0, 0x3
|
|
||||||
b _0814F6E4
|
|
||||||
_0814F6BC:
|
|
||||||
add r1, sp, 0x14
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r1]
|
|
||||||
movs r0, 0x4
|
|
||||||
strb r0, [r1, 0x1]
|
|
||||||
movs r0, 0x5
|
|
||||||
b _0814F6E4
|
|
||||||
_0814F6CA:
|
|
||||||
add r1, sp, 0x14
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r1]
|
|
||||||
movs r0, 0x7
|
|
||||||
strb r0, [r1, 0x1]
|
|
||||||
movs r0, 0x6
|
|
||||||
b _0814F6E4
|
|
||||||
_0814F6D8:
|
|
||||||
add r1, sp, 0x14
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r1]
|
|
||||||
movs r0, 0x1
|
|
||||||
strb r0, [r1, 0x1]
|
|
||||||
movs r0, 0x2
|
|
||||||
_0814F6E4:
|
|
||||||
strb r0, [r1, 0x2]
|
|
||||||
_0814F6E6:
|
|
||||||
negs r0, r5
|
|
||||||
orrs r0, r5
|
|
||||||
lsrs r0, 31
|
|
||||||
str r0, [sp]
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
add r0, sp, 0x14
|
|
||||||
str r0, [sp, 0x8]
|
|
||||||
movs r0, 0x1
|
|
||||||
negs r0, r0
|
|
||||||
str r0, [sp, 0xC]
|
|
||||||
mov r0, r12
|
|
||||||
str r0, [sp, 0x10]
|
|
||||||
adds r0, r7, 0
|
|
||||||
adds r1, r5, 0
|
|
||||||
adds r2, r6, 0
|
|
||||||
bl AddTextPrinterParametrized2
|
|
||||||
add sp, 0x18
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_814F65C
|
|
||||||
|
|
||||||
thumb_func_start sub_814F714
|
|
||||||
sub_814F714: @ 814F714
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r10
|
|
||||||
mov r6, r9
|
|
||||||
mov r5, r8
|
|
||||||
push {r5-r7}
|
|
||||||
sub sp, 0x4
|
|
||||||
mov r12, r0
|
|
||||||
adds r7, r1, 0
|
|
||||||
ldrb r0, [r0, 0xA]
|
|
||||||
lsls r0, 25
|
|
||||||
lsrs r0, 25
|
|
||||||
mov r8, r0
|
|
||||||
movs r4, 0
|
|
||||||
ldr r0, _0814F78C @ =gUnknown_846FAC0
|
|
||||||
mov r9, r0
|
|
||||||
movs r1, 0x1
|
|
||||||
add r1, r9
|
|
||||||
mov r10, r1
|
|
||||||
mov r3, r12
|
|
||||||
adds r3, 0x4
|
|
||||||
str r3, [sp]
|
|
||||||
_0814F73E:
|
|
||||||
lsls r0, r4, 1
|
|
||||||
adds r2, r0, r4
|
|
||||||
mov r3, r9
|
|
||||||
adds r1, r2, r3
|
|
||||||
adds r5, r0, 0
|
|
||||||
adds r6, r4, 0x1
|
|
||||||
ldrb r1, [r1]
|
|
||||||
cmp r8, r1
|
|
||||||
bne _0814F7A2
|
|
||||||
mov r0, r12
|
|
||||||
ldrb r1, [r0, 0x1A]
|
|
||||||
movs r0, 0x3
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _0814F7A2
|
|
||||||
mov r0, r9
|
|
||||||
adds r0, 0x2
|
|
||||||
adds r3, r2, r0
|
|
||||||
ldrb r0, [r3]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0814F790
|
|
||||||
movs r2, 0
|
|
||||||
movs r1, 0
|
|
||||||
ldr r3, [sp]
|
|
||||||
_0814F76E:
|
|
||||||
adds r0, r3, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0814F778
|
|
||||||
adds r2, 0x1
|
|
||||||
_0814F778:
|
|
||||||
adds r1, 0x1
|
|
||||||
cmp r1, 0x3
|
|
||||||
ble _0814F76E
|
|
||||||
adds r2, 0x1
|
|
||||||
adds r0, r5, r4
|
|
||||||
add r0, r10
|
|
||||||
ldrb r1, [r0]
|
|
||||||
lsls r1, 2
|
|
||||||
adds r1, r7
|
|
||||||
b _0814F79C
|
|
||||||
.align 2, 0
|
|
||||||
_0814F78C: .4byte gUnknown_846FAC0
|
|
||||||
_0814F790:
|
|
||||||
mov r1, r10
|
|
||||||
adds r0, r2, r1
|
|
||||||
ldrb r1, [r0]
|
|
||||||
lsls r1, 2
|
|
||||||
adds r1, r7
|
|
||||||
ldrb r2, [r3]
|
|
||||||
_0814F79C:
|
|
||||||
ldr r0, [r1]
|
|
||||||
adds r0, r2
|
|
||||||
str r0, [r1]
|
|
||||||
_0814F7A2:
|
|
||||||
adds r4, r6, 0
|
|
||||||
cmp r4, 0x16
|
|
||||||
bls _0814F73E
|
|
||||||
mov r0, r8
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r3-r5}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
mov r10, r5
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_814F714
|
|
||||||
|
|
||||||
thumb_func_start sub_814F7BC
|
|
||||||
sub_814F7BC: @ 814F7BC
|
|
||||||
push {r4,lr}
|
|
||||||
movs r4, 0
|
|
||||||
adds r3, r1, 0
|
|
||||||
adds r2, r0, 0
|
|
||||||
_0814F7C4:
|
|
||||||
ldr r1, [r2]
|
|
||||||
ldr r0, [r3]
|
|
||||||
cmp r1, r0
|
|
||||||
beq _0814F7D0
|
|
||||||
movs r0, 0x1
|
|
||||||
b _0814F7DC
|
|
||||||
_0814F7D0:
|
|
||||||
adds r3, 0x4
|
|
||||||
adds r2, 0x4
|
|
||||||
adds r4, 0x1
|
|
||||||
cmp r4, 0x3
|
|
||||||
ble _0814F7C4
|
|
||||||
movs r0, 0
|
|
||||||
_0814F7DC:
|
|
||||||
pop {r4}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_814F7BC
|
|
||||||
|
|
||||||
thumb_func_start sub_814F7E4
|
|
||||||
sub_814F7E4: @ 814F7E4
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r9
|
|
||||||
mov r6, r8
|
|
||||||
push {r6,r7}
|
|
||||||
sub sp, 0x10
|
|
||||||
adds r6, r0, 0
|
|
||||||
mov r9, r1
|
|
||||||
adds r5, r2, 0
|
|
||||||
lsls r4, r3, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
movs r0, 0
|
|
||||||
mov r8, r0
|
|
||||||
mov r0, sp
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0x10
|
|
||||||
bl memset
|
|
||||||
lsls r0, r4, 2
|
|
||||||
adds r0, r4
|
|
||||||
lsls r0, 3
|
|
||||||
ldr r1, _0814F84C @ =gTasks+0x8
|
|
||||||
adds r7, r0, r1
|
|
||||||
movs r4, 0
|
|
||||||
_0814F812:
|
|
||||||
lsls r1, r4, 5
|
|
||||||
ldr r0, [r7]
|
|
||||||
adds r0, r1
|
|
||||||
mov r1, sp
|
|
||||||
bl sub_814F714
|
|
||||||
adds r1, r0, 0
|
|
||||||
ldr r0, [r5]
|
|
||||||
cmp r1, r0
|
|
||||||
beq _0814F82C
|
|
||||||
str r1, [r5]
|
|
||||||
movs r2, 0x1
|
|
||||||
mov r8, r2
|
|
||||||
_0814F82C:
|
|
||||||
adds r5, 0x4
|
|
||||||
adds r4, 0x1
|
|
||||||
cmp r4, 0xF
|
|
||||||
ble _0814F812
|
|
||||||
mov r0, sp
|
|
||||||
mov r1, r9
|
|
||||||
bl sub_814F7BC
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0814F850
|
|
||||||
mov r3, r8
|
|
||||||
cmp r3, 0x1
|
|
||||||
beq _0814F874
|
|
||||||
movs r0, 0
|
|
||||||
b _0814F876
|
|
||||||
.align 2, 0
|
|
||||||
_0814F84C: .4byte gTasks+0x8
|
|
||||||
_0814F850:
|
|
||||||
adds r1, r6, 0
|
|
||||||
mov r0, sp
|
|
||||||
ldm r0!, {r2-r4}
|
|
||||||
stm r1!, {r2-r4}
|
|
||||||
ldr r0, [r0]
|
|
||||||
str r0, [r1]
|
|
||||||
mov r1, r9
|
|
||||||
mov r0, sp
|
|
||||||
ldm r0!, {r2-r4}
|
|
||||||
stm r1!, {r2-r4}
|
|
||||||
ldr r0, [r0]
|
|
||||||
str r0, [r1]
|
|
||||||
ldr r0, [r6]
|
|
||||||
ldr r1, [r6, 0x4]
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, [r6, 0x8]
|
|
||||||
adds r0, r1
|
|
||||||
str r0, [r6, 0xC]
|
|
||||||
_0814F874:
|
|
||||||
movs r0, 0x1
|
|
||||||
_0814F876:
|
|
||||||
add sp, 0x10
|
|
||||||
pop {r3,r4}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_814F7E4
|
|
||||||
|
|
||||||
.align 2, 0 @ Don't pad with nop.
|
|
||||||
@@ -67,6 +67,33 @@ union RfuPacket
|
|||||||
struct RfuPacket8 rfuPacket8;
|
struct RfuPacket8 rfuPacket8;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct UnkLinkRfuStruct_02022B14Substruct
|
||||||
|
{
|
||||||
|
u16 unk_00_0:4;
|
||||||
|
u16 unk_00_4:1;
|
||||||
|
u16 unk_00_5:1;
|
||||||
|
u16 unk_00_6:1;
|
||||||
|
u16 unk_00_7:1;
|
||||||
|
u16 unk_01_0:1;
|
||||||
|
u16 unk_01_1:1;
|
||||||
|
u16 unk_01_2:4;
|
||||||
|
u16 unk_01_6:2;
|
||||||
|
u8 playerTrainerId[2];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct __attribute__((packed, aligned(2))) UnkLinkRfuStruct_02022B14
|
||||||
|
{
|
||||||
|
struct UnkLinkRfuStruct_02022B14Substruct unk_00;
|
||||||
|
u8 unk_04[4];
|
||||||
|
u16 species:10;
|
||||||
|
u16 type:6;
|
||||||
|
u8 unk_0a_0:7;
|
||||||
|
u8 unk_0a_7:1;
|
||||||
|
u8 playerGender:1;
|
||||||
|
u8 unk_0b_1:7;
|
||||||
|
u8 unk_0c;
|
||||||
|
};
|
||||||
|
|
||||||
struct RfuStruct
|
struct RfuStruct
|
||||||
{
|
{
|
||||||
vs32 unk_0;
|
vs32 unk_0;
|
||||||
|
|||||||
@@ -17,5 +17,6 @@ void MEvent_CreateTask_CardOrNewsWithFriend(u8);
|
|||||||
void MEvent_CreateTask_CardOrNewsOverWireless(u8);
|
void MEvent_CreateTask_CardOrNewsOverWireless(u8);
|
||||||
void MEvent_CreateTask_Leader(u8);
|
void MEvent_CreateTask_Leader(u8);
|
||||||
void sub_80F9E2C(void * data);
|
void sub_80F9E2C(void * data);
|
||||||
|
u8 sub_8116DE0(void);
|
||||||
|
|
||||||
#endif //GUARD_LINK_RFU_H
|
#endif //GUARD_LINK_RFU_H
|
||||||
|
|||||||
@@ -0,0 +1,149 @@
|
|||||||
|
#ifndef GUARD_UNION_ROOM_H
|
||||||
|
#define GUARD_UNION_ROOM_H
|
||||||
|
|
||||||
|
struct UnkStruct_Shared
|
||||||
|
{
|
||||||
|
struct UnkLinkRfuStruct_02022B14 field_0;
|
||||||
|
u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct UnkStruct_x1C
|
||||||
|
{
|
||||||
|
struct UnkStruct_Shared unk0;
|
||||||
|
u8 unk18:1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct UnkStruct_x20
|
||||||
|
{
|
||||||
|
struct UnkStruct_Shared unk;
|
||||||
|
u16 field_18;
|
||||||
|
u8 field_1A_0:2;
|
||||||
|
u8 field_1A_1:1;
|
||||||
|
u8 field_1B;
|
||||||
|
u8 field_1D;
|
||||||
|
u8 field_1E;
|
||||||
|
u8 field_1F;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct UnkStruct_Main0
|
||||||
|
{
|
||||||
|
struct UnkStruct_x20 arr[8];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct UnkStruct_Main4
|
||||||
|
{
|
||||||
|
struct UnkStruct_x1C arr[5];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct UnkStruct_Main8
|
||||||
|
{
|
||||||
|
struct UnkStruct_x20 arr[5];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct UnkStruct_Leader
|
||||||
|
{
|
||||||
|
struct UnkStruct_Main0 *field_0;
|
||||||
|
struct UnkStruct_Main4 *field_4;
|
||||||
|
struct UnkStruct_Main8 *field_8;
|
||||||
|
u8 state;
|
||||||
|
u8 textState;
|
||||||
|
u8 field_E;
|
||||||
|
u8 listWindowId;
|
||||||
|
u8 field_10;
|
||||||
|
u8 field_11;
|
||||||
|
u8 listTaskId;
|
||||||
|
u8 field_13;
|
||||||
|
u8 field_14;
|
||||||
|
u8 field_15;
|
||||||
|
u8 field_16;
|
||||||
|
u8 field_17;
|
||||||
|
u8 field_18;
|
||||||
|
u8 field_19;
|
||||||
|
u16 field_1A;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct UnkStruct_Group
|
||||||
|
{
|
||||||
|
struct UnkStruct_Main0 *field_0;
|
||||||
|
struct UnkStruct_Main4 *field_4;
|
||||||
|
u8 state;
|
||||||
|
u8 textState;
|
||||||
|
u8 field_A;
|
||||||
|
u8 listWindowId;
|
||||||
|
u8 field_C;
|
||||||
|
u8 field_D;
|
||||||
|
u8 listTaskId;
|
||||||
|
u8 field_F;
|
||||||
|
u8 field_10;
|
||||||
|
u8 field_11;
|
||||||
|
u8 field_12;
|
||||||
|
u8 field_13;
|
||||||
|
u8 field_14;
|
||||||
|
u8 field_15;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct UnkStruct_8019BA8
|
||||||
|
{
|
||||||
|
u8 field_0;
|
||||||
|
u8 field_1;
|
||||||
|
s8 field_2;
|
||||||
|
u8 field_3;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct UnkStruct_URoom
|
||||||
|
{
|
||||||
|
struct UnkStruct_Main0 *field_0;
|
||||||
|
struct UnkStruct_Main4 *field_4;
|
||||||
|
struct UnkStruct_Main0 *field_8;
|
||||||
|
struct UnkStruct_Main4 *field_C;
|
||||||
|
u16 field_10;
|
||||||
|
u16 field_12;
|
||||||
|
u8 state;
|
||||||
|
u8 stateAfterPrint;
|
||||||
|
u8 textState;
|
||||||
|
u8 field_17;
|
||||||
|
u8 field_18;
|
||||||
|
u8 field_19;
|
||||||
|
u8 field_1A;
|
||||||
|
u8 field_1B;
|
||||||
|
u8 field_1C;
|
||||||
|
u8 field_1D;
|
||||||
|
u8 field_1E;
|
||||||
|
u8 field_1F;
|
||||||
|
u8 field_20;
|
||||||
|
u8 spriteIds[40];
|
||||||
|
u8 field_49;
|
||||||
|
u8 field_4A;
|
||||||
|
u16 field_4C[6];
|
||||||
|
u8 field_58[0x98 - 0x58];
|
||||||
|
u16 field_98;
|
||||||
|
u16 field_9A[3];
|
||||||
|
struct UnkStruct_8019BA8 field_A0[8];
|
||||||
|
u8 field_C0[12][15];
|
||||||
|
u8 field_174[48];
|
||||||
|
u8 field_1A4[200];
|
||||||
|
};
|
||||||
|
|
||||||
|
union UnkUnion_Main
|
||||||
|
{
|
||||||
|
struct UnkStruct_Leader *leader;
|
||||||
|
struct UnkStruct_Group *group;
|
||||||
|
struct UnkStruct_URoom *uRoom;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct TradeUnkStruct
|
||||||
|
{
|
||||||
|
u16 field_0;
|
||||||
|
u16 type;
|
||||||
|
u32 playerPersonality;
|
||||||
|
u8 field_8;
|
||||||
|
u8 field_9;
|
||||||
|
u16 playerSpecies;
|
||||||
|
u16 playerLevel;
|
||||||
|
u16 species;
|
||||||
|
u16 level;
|
||||||
|
u16 field_12;
|
||||||
|
u32 personality;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif //GUARD_UNION_ROOM_H
|
||||||
@@ -252,7 +252,6 @@ SECTIONS {
|
|||||||
asm/berry_crush_2.o(.text);
|
asm/berry_crush_2.o(.text);
|
||||||
asm/berry_crush_3.o(.text);
|
asm/berry_crush_3.o(.text);
|
||||||
src/wireless_communication_status_screen.o(.text);
|
src/wireless_communication_status_screen.o(.text);
|
||||||
asm/wireless_communication_status_screen.o(.text);
|
|
||||||
src/braille_text.o(.text);
|
src/braille_text.o(.text);
|
||||||
asm/text_window.o(.text);
|
asm/text_window.o(.text);
|
||||||
src/quest_log_8150454.o(.text);
|
src/quest_log_8150454.o(.text);
|
||||||
|
|||||||
@@ -13,11 +13,17 @@
|
|||||||
#include "unk_text_util.h"
|
#include "unk_text_util.h"
|
||||||
#include "overworld.h"
|
#include "overworld.h"
|
||||||
#include "sound.h"
|
#include "sound.h"
|
||||||
|
#include "menu.h"
|
||||||
|
#include "librfu.h"
|
||||||
|
#include "link_rfu.h"
|
||||||
|
#include "union_room.h"
|
||||||
#include "constants/songs.h"
|
#include "constants/songs.h"
|
||||||
|
|
||||||
struct WirelessCommunicationStatusScreenStruct
|
struct WirelessCommunicationStatusScreenStruct
|
||||||
{
|
{
|
||||||
u32 field_00[6][4];
|
u32 field_00[4];
|
||||||
|
u32 field_10[4];
|
||||||
|
u32 field_20[16];
|
||||||
u8 field_60;
|
u8 field_60;
|
||||||
u8 field_61;
|
u8 field_61;
|
||||||
u8 filler_62[0xA];
|
u8 filler_62[0xA];
|
||||||
@@ -37,9 +43,8 @@ extern const u8 gUnknown_841E29E[];
|
|||||||
|
|
||||||
void sub_814F1E4(void);
|
void sub_814F1E4(void);
|
||||||
void sub_814F46C(u8 taskId);
|
void sub_814F46C(u8 taskId);
|
||||||
u8 sub_8116DE0(void);
|
|
||||||
void sub_814F65C(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 palIdx);
|
void sub_814F65C(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 palIdx);
|
||||||
bool32 sub_814F7E4(u32 * a0, u32 * a1, u32 * a2, u8 a3);
|
bool32 sub_814F7E4(u32 * a0, u32 * a1, u32 * a2, u8 taskId);
|
||||||
|
|
||||||
const u16 gUnknown_846F4D0[][16] = {
|
const u16 gUnknown_846F4D0[][16] = {
|
||||||
INCBIN_U16("graphics/misc/unk_846f4d0.gbapal"),
|
INCBIN_U16("graphics/misc/unk_846f4d0.gbapal"),
|
||||||
@@ -148,8 +153,7 @@ const u8 gUnknown_846FAC0[][3] = {
|
|||||||
{0x54, 0x02, 0x01},
|
{0x54, 0x02, 0x01},
|
||||||
{0x53, 0x02, 0x02},
|
{0x53, 0x02, 0x02},
|
||||||
{0x51, 0x02, 0x01},
|
{0x51, 0x02, 0x01},
|
||||||
{0x52, 0x02, 0x01},
|
{0x52, 0x02, 0x01}
|
||||||
{0x00, 0x00, 0x00}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void sub_814F19C(void)
|
void sub_814F19C(void)
|
||||||
@@ -197,7 +201,7 @@ void sub_814F1E4(void)
|
|||||||
SetVBlankCallback(sub_814F1C0);
|
SetVBlankCallback(sub_814F1C0);
|
||||||
gUnknown_3002040->field_60 = CreateTask(sub_814F46C, 0);
|
gUnknown_3002040->field_60 = CreateTask(sub_814F46C, 0);
|
||||||
gUnknown_3002040->field_61 = sub_8116DE0();
|
gUnknown_3002040->field_61 = sub_8116DE0();
|
||||||
gUnknown_3002040->field_00[1][3] = 1;
|
gUnknown_3002040->field_10[3] = 1;
|
||||||
ChangeBgX(0, 0, 0);
|
ChangeBgX(0, 0, 0);
|
||||||
ChangeBgY(0, 0, 0);
|
ChangeBgY(0, 0, 0);
|
||||||
ChangeBgX(1, 0, 0);
|
ChangeBgX(1, 0, 0);
|
||||||
@@ -287,12 +291,12 @@ void sub_814F46C(u8 taskId)
|
|||||||
gTasks[taskId].data[0]++;
|
gTasks[taskId].data[0]++;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (sub_814F7E4(gUnknown_3002040->field_00[0], gUnknown_3002040->field_00[1], gUnknown_3002040->field_00[2], gUnknown_3002040->field_61))
|
if (sub_814F7E4(gUnknown_3002040->field_00, gUnknown_3002040->field_10, gUnknown_3002040->field_20, gUnknown_3002040->field_61))
|
||||||
{
|
{
|
||||||
FillWindowPixelBuffer(2, 0x00);
|
FillWindowPixelBuffer(2, 0x00);
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
ConvertIntToDecimalStringN(gStringVar4, gUnknown_3002040->field_00[0][i], STR_CONV_MODE_RIGHT_ALIGN, 2);
|
ConvertIntToDecimalStringN(gStringVar4, gUnknown_3002040->field_00[i], STR_CONV_MODE_RIGHT_ALIGN, 2);
|
||||||
if (i != 3)
|
if (i != 3)
|
||||||
sub_814F65C(2, 3, gStringVar4, 4, 30 * i + 10, 1);
|
sub_814F65C(2, 3, gStringVar4, 4, 30 * i + 10, 1);
|
||||||
else
|
else
|
||||||
@@ -322,3 +326,111 @@ void sub_814F46C(u8 taskId)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_814F65C(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 palIdx)
|
||||||
|
{
|
||||||
|
struct TextColor textColor;
|
||||||
|
switch (palIdx)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
textColor.fgColor = 0;
|
||||||
|
textColor.bgColor = 2;
|
||||||
|
textColor.shadowColor = 3;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
textColor.fgColor = 0;
|
||||||
|
textColor.bgColor = 1;
|
||||||
|
textColor.shadowColor = 3;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
textColor.fgColor = 0;
|
||||||
|
textColor.bgColor = 4;
|
||||||
|
textColor.shadowColor = 5;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
textColor.fgColor = 0;
|
||||||
|
textColor.bgColor = 7;
|
||||||
|
textColor.shadowColor = 6;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
textColor.fgColor = 0;
|
||||||
|
textColor.bgColor = 1;
|
||||||
|
textColor.shadowColor = 2;
|
||||||
|
break;
|
||||||
|
// default: UB
|
||||||
|
}
|
||||||
|
AddTextPrinterParametrized2(windowId, fontId,x, y, fontId == 0 ? 0 : 1, 0, &textColor, -1, str);
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 sub_814F714(struct UnkStruct_x20 * unk20, u32 * arg1)
|
||||||
|
{
|
||||||
|
u32 r8 = unk20->unk.field_0.unk_0a_0;
|
||||||
|
s32 i, j, k;
|
||||||
|
|
||||||
|
for (i = 0; i < NELEMS(gUnknown_846FAC0); i++)
|
||||||
|
{
|
||||||
|
if (r8 == gUnknown_846FAC0[i][0] && unk20->field_1A_0 == 1)
|
||||||
|
{
|
||||||
|
if (gUnknown_846FAC0[i][2] == 0)
|
||||||
|
{
|
||||||
|
k = 0;
|
||||||
|
for (j = 0; j < 4; j++)
|
||||||
|
{
|
||||||
|
if (unk20->unk.field_0.unk_04[j] != 0) k++;
|
||||||
|
}
|
||||||
|
k++;
|
||||||
|
arg1[gUnknown_846FAC0[i][1]] += k;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
arg1[gUnknown_846FAC0[i][1]] += gUnknown_846FAC0[i][2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return r8;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 sub_814F7BC(const u32 * ptr0, const u32 * ptr1)
|
||||||
|
{
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
for (i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
if (ptr0[i] != ptr1[i])
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 sub_814F7E4(u32 * a0, u32 * a1, u32 * a2, u8 taskId)
|
||||||
|
{
|
||||||
|
bool32 r8 = FALSE;
|
||||||
|
u32 sp0[4] = {0, 0, 0, 0};
|
||||||
|
struct UnkStruct_Group * group = (void *)gTasks[taskId].data;
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
for (i = 0; i < 16; i++)
|
||||||
|
{
|
||||||
|
u32 r1 = sub_814F714(&group->field_0->arr[i], sp0);
|
||||||
|
if (r1 != a2[i])
|
||||||
|
{
|
||||||
|
a2[i] = r1;
|
||||||
|
r8 = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sub_814F7BC(sp0, a1) == FALSE)
|
||||||
|
{
|
||||||
|
if (r8 == TRUE)
|
||||||
|
return TRUE;
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(a0, sp0, sizeof(sp0));
|
||||||
|
memcpy(a1, sp0, sizeof(sp0));
|
||||||
|
a0[3] = a0[0] + a0[1] + a0[2];
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user