diff --git a/asm/non_matchings/unknown_0255E0/func_80028C10.s b/asm/non_matchings/unknown_0255E0/func_80028C10.s deleted file mode 100644 index 04397708..00000000 --- a/asm/non_matchings/unknown_0255E0/func_80028C10.s +++ /dev/null @@ -1,52 +0,0 @@ -glabel func_80028C10 -/* 029810 80028C10 3C038012 */ lui $v1, %hi(D_8011B0B8) # $v1, 0x8012 -/* 029814 80028C14 2463B0B8 */ addiu $v1, %lo(D_8011B0B8) # addiu $v1, $v1, -0x4f48 -/* 029818 80028C18 8C6E0000 */ lw $t6, ($v1) -/* 02981C 80028C1C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 029820 80028C20 11C00027 */ beqz $t6, .L80028CC0 -/* 029824 80028C24 AFBF0014 */ sw $ra, 0x14($sp) -/* 029828 80028C28 0C01A748 */ jal func_80069D20 -/* 02982C 80028C2C 00000000 */ nop -/* 029830 80028C30 3C0F800E */ lui $t7, %hi(D_800DC91C) # $t7, 0x800e -/* 029834 80028C34 8DEFC91C */ lw $t7, %lo(D_800DC91C)($t7) -/* 029838 80028C38 3C038012 */ lui $v1, %hi(D_8011B0B8) # $v1, 0x8012 -/* 02983C 80028C3C 81F80049 */ lb $t8, 0x49($t7) -/* 029840 80028C40 2463B0B8 */ addiu $v1, %lo(D_8011B0B8) # addiu $v1, $v1, -0x4f48 -/* 029844 80028C44 1700000D */ bnez $t8, .L80028C7C -/* 029848 80028C48 3C048012 */ lui $a0, %hi(D_8011B0A0) # $a0, 0x8012 -/* 02984C 80028C4C C444000C */ lwc1 $f4, 0xc($v0) -/* 029850 80028C50 8C790000 */ lw $t9, ($v1) -/* 029854 80028C54 00000000 */ nop -/* 029858 80028C58 E724000C */ swc1 $f4, 0xc($t9) -/* 02985C 80028C5C 8C680000 */ lw $t0, ($v1) -/* 029860 80028C60 C4460010 */ lwc1 $f6, 0x10($v0) -/* 029864 80028C64 00000000 */ nop -/* 029868 80028C68 E5060010 */ swc1 $f6, 0x10($t0) -/* 02986C 80028C6C 8C690000 */ lw $t1, ($v1) -/* 029870 80028C70 C4480014 */ lwc1 $f8, 0x14($v0) -/* 029874 80028C74 00000000 */ nop -/* 029878 80028C78 E5280014 */ swc1 $f8, 0x14($t1) -.L80028C7C: -/* 02987C 80028C7C 3C058012 */ lui $a1, %hi(D_8011B0A4) # $a1, 0x8012 -/* 029880 80028C80 24A5B0A4 */ addiu $a1, %lo(D_8011B0A4) # addiu $a1, $a1, -0x4f5c -/* 029884 80028C84 0C01A102 */ jal func_80068408 -/* 029888 80028C88 2484B0A0 */ addiu $a0, %lo(D_8011B0A0) # addiu $a0, $a0, -0x4f60 -/* 02988C 80028C8C 3C0A8012 */ lui $t2, %hi(D_8011B0DC) # $t2, 0x8012 -/* 029890 80028C90 8D4AB0DC */ lw $t2, %lo(D_8011B0DC)($t2) -/* 029894 80028C94 3C038012 */ lui $v1, %hi(D_8011B0B8) # $v1, 0x8012 -/* 029898 80028C98 11400009 */ beqz $t2, .L80028CC0 -/* 02989C 80028C9C 2463B0B8 */ addiu $v1, %lo(D_8011B0B8) # addiu $v1, $v1, -0x4f48 -/* 0298A0 80028CA0 3C048012 */ lui $a0, %hi(D_8011B0A0) # $a0, 0x8012 -/* 0298A4 80028CA4 3C058012 */ lui $a1, %hi(D_8011B0A4) # $a1, 0x8012 -/* 0298A8 80028CA8 3C068012 */ lui $a2, %hi(D_8011B0A8) # $a2, 0x8012 -/* 0298AC 80028CAC 8C670000 */ lw $a3, ($v1) -/* 0298B0 80028CB0 24C6B0A8 */ addiu $a2, %lo(D_8011B0A8) # addiu $a2, $a2, -0x4f58 -/* 0298B4 80028CB4 24A5B0A4 */ addiu $a1, %lo(D_8011B0A4) # addiu $a1, $a1, -0x4f5c -/* 0298B8 80028CB8 0C004B57 */ jal func_80012D5C -/* 0298BC 80028CBC 2484B0A0 */ addiu $a0, %lo(D_8011B0A0) # addiu $a0, $a0, -0x4f60 -.L80028CC0: -/* 0298C0 80028CC0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0298C4 80028CC4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0298C8 80028CC8 03E00008 */ jr $ra -/* 0298CC 80028CCC 00000000 */ nop - diff --git a/src/unknown_0255E0.c b/src/unknown_0255E0.c index e89d8d4f..fe250e9d 100644 --- a/src/unknown_0255E0.c +++ b/src/unknown_0255E0.c @@ -3,10 +3,28 @@ #include "types.h" #include "macros.h" +#include "structs.h" +typedef struct{ +u8 pad00[0x49]; +s8 unk49; +} unk800DC91C; + +extern unk800DC91C* D_800DC91C; extern s32 D_800DC924; extern s32 D_8011D37C; extern s32 D_8011D474; + +extern s32 D_8011B0A0; +extern s32 D_8011B0A4; +extern s32 D_8011B0A8; + +typedef struct{ + Player * unk00; +} unk8011B0B8; + +extern unk8011B0B8 D_8011B0B8; + extern s32 D_8011B0DC; extern s32 D_8011B0F0; extern s32 D_8011B0F4; @@ -52,7 +70,25 @@ void func_80028044(s32 arg0) { GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80028050.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_800289B8.s") -GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80028C10.s") + +void func_80028C10(void){ + Player * v0_player; + if(D_8011B0B8.unk00 == NULL) + return; + + v0_player = func_80069D20(); + if(D_800DC91C->unk49 == 0){ + D_8011B0B8.unk00->x_position = v0_player->x_position; + D_8011B0B8.unk00->y_position = v0_player->y_position; + D_8011B0B8.unk00->z_position = v0_player->z_position; + } + + func_80068408(&D_8011B0A0, &D_8011B0A4); + if(D_8011B0DC){ + func_80012D5C(&D_8011B0A0, &D_8011B0A4, &D_8011B0A8, D_8011B0B8.unk00); + } +} + GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80028CD0.s") void func_80028FA0(s32 arg0) {