mirror of
https://github.com/HarbourMasters/Starship
synced 2026-06-04 19:08:34 -04:00
more "hud" functions (#24)
* decompile func_80086444 * func_80084930 * func_80084B94 * decompile func_80084E78 * pr review
This commit is contained in:
committed by
GitHub
parent
3fbfdf01d2
commit
d34a5e370a
+11
-10
@@ -11,10 +11,11 @@ typedef struct UnkStruct_func_80095350 {
|
||||
/* 0xB6 */ s16 unkB6;
|
||||
} UnkStruct_func_80095350;
|
||||
|
||||
void func_80084E78(Gfx**, void*, void*, s32, s32, f32, f32, f32, f32, f32, f32);
|
||||
void func_80084E78(Gfx** gfxP, void* arg1, void* arg2, u32 arg3, u32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8,
|
||||
f32 arg9, f32 argA);
|
||||
void func_80085944(void);
|
||||
void func_80086CC8(void);
|
||||
void func_80086DCC(void);
|
||||
void func_80086CC8(void);
|
||||
void func_80086DCC(void);
|
||||
void func_80087B5C(void);
|
||||
void func_80089994(s32 arg0);
|
||||
void func_8008A4DC(void);
|
||||
@@ -24,18 +25,18 @@ void func_8008B2F0(void);
|
||||
void func_8008B734(void);
|
||||
void func_8008B9E8(void);
|
||||
void func_8008BAE4(void);
|
||||
void func_8008CBE4(void);
|
||||
void func_8008D250(void);
|
||||
void func_8008D31C(void);
|
||||
void func_8008D4F0(f32, f32);
|
||||
void func_8008D7F4(void);
|
||||
void func_8008D984(void);
|
||||
void func_8008CBE4(void);
|
||||
void func_8008D250(void);
|
||||
void func_8008D31C(void);
|
||||
void func_8008D4F0(f32, f32);
|
||||
void func_8008D7F4(void);
|
||||
void func_8008D984(void);
|
||||
void func_8008DC34(void);
|
||||
void func_8008E5E8(void);
|
||||
s32 func_80090E8C(Object_2F4* arg0);
|
||||
s32 func_800910C0(Object_2F4* arg0);
|
||||
void func_8009C320(Gfx**, void*, void*, s32, s32, f32, f32, f32, f32);
|
||||
void func_8009D0BC(Gfx**, void*, void*, u32, u32, f32, f32, f32, f32);
|
||||
void func_8009D0BC(Gfx**, void*, void*, u32, u32, f32, f32, f32, f32);
|
||||
void func_8009E1E8(Gfx**, u16*, s32, s32, f32, f32, f32, f32);
|
||||
|
||||
// Weird addresses, assets maybe?
|
||||
|
||||
+1
-1
@@ -135,7 +135,7 @@ typedef struct UnkStruct_D_80178280 {
|
||||
/* 0x138 */ f32 unk_138;
|
||||
/* 0x13C */ char pad13C[0x8C];
|
||||
/* 0x1C8 */ s32 unk_1C8;
|
||||
/* 0x1CC */ char pad1CC[0x4];
|
||||
/* 0x1CC */ s32 unk_1CC;
|
||||
/* 0x1D0 */ s32 unk_1D0;
|
||||
/* 0x1D4 */ char pad1D4[0x3C];
|
||||
/* 0x210 */ s32 unk_210;
|
||||
|
||||
@@ -513,6 +513,8 @@ extern Gfx D_200F080[];
|
||||
extern Gfx D_200F910[];
|
||||
extern Gfx D_20101A0[];
|
||||
|
||||
extern u8 D_3000000[];
|
||||
extern u16 D_3000080[];
|
||||
extern u16 D_3000BC0[];
|
||||
extern u8 D_300D350[];
|
||||
extern u16 D_300D398[];
|
||||
@@ -542,6 +544,7 @@ extern u8 D_500A500[];
|
||||
extern u8 D_500A5F0[];
|
||||
extern u8 D_500A6E0[];
|
||||
extern u8 D_500A7D0[];
|
||||
extern Gfx D_500B600[];
|
||||
|
||||
extern ObjectInit* D_6010088[];
|
||||
extern ObjectInit* D_602B148[];
|
||||
@@ -549,6 +552,8 @@ extern ObjectInit* D_602F18C[];
|
||||
extern ObjectInit* D_C0356A4[];
|
||||
|
||||
extern Gfx D_6004570[];
|
||||
extern u8 D_6001B80[];
|
||||
extern u8 D_60020D0[];
|
||||
extern Gfx D_D0098B0[];
|
||||
extern Gfx D_F014180[];
|
||||
|
||||
|
||||
+153
-1
@@ -1,10 +1,124 @@
|
||||
#include "hud.h"
|
||||
|
||||
#ifdef IMPORT_DATA_PENDING
|
||||
void func_80084930(f32 arg0, f32 arg1, s32 arg2) {
|
||||
u8* D_800D1A58[] = {
|
||||
D_3000000,
|
||||
D_3000000,
|
||||
D_3000000,
|
||||
};
|
||||
u16* D_800D1A64[] = {
|
||||
D_3000080,
|
||||
D_3000080,
|
||||
D_3000080,
|
||||
};
|
||||
UnkStruct_D_80178280* temp;
|
||||
s32 var_t0;
|
||||
s32 var_v0;
|
||||
s32 i;
|
||||
|
||||
func_800B8DD0(&gMasterDisp, 0x4E);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
|
||||
|
||||
temp = D_80178280;
|
||||
var_t0 = 0;
|
||||
|
||||
switch (temp->unk_1CC) {
|
||||
case 0:
|
||||
var_t0 = 0;
|
||||
break;
|
||||
case 1:
|
||||
var_t0 = 1;
|
||||
break;
|
||||
case 2:
|
||||
var_t0 = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
func_8009C320(&gMasterDisp, D_800D1A58[var_t0], D_800D1A64[var_t0], 16, 16, arg0, arg1 - 2.0f, 1.0f, 1.0f);
|
||||
func_8009C320(&gMasterDisp, D_1011ED0, D_1011F08, 16, 7, arg0 + 16.0f, arg1 + 7.0f, 1.0f, 1.0f);
|
||||
|
||||
if (arg2 >= 0) {
|
||||
arg0 += 11.0f;
|
||||
arg1 -= 1.0f;
|
||||
|
||||
func_800B8DD0(&gMasterDisp, 0x4C);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
|
||||
|
||||
var_v0 = 10;
|
||||
|
||||
if (arg2 < 0) {
|
||||
arg2 = 0;
|
||||
}
|
||||
|
||||
if (arg2 > 99) {
|
||||
arg2 = 99;
|
||||
}
|
||||
|
||||
for (var_v0 = 10, i = 1; arg2 >= var_v0; i++) {
|
||||
var_v0 *= 10;
|
||||
}
|
||||
|
||||
arg0 += 16.0f + 8 * (2 - i);
|
||||
func_800869A0(arg0, arg1, arg2, 1.0f, 1, 99);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80084930.s")
|
||||
#endif
|
||||
|
||||
#ifdef IMPORT_DATA_PENDING
|
||||
void func_80084B94(s32 arg0) {
|
||||
s32 i;
|
||||
Vec3f D_800D1A70[] = {
|
||||
{ 191.0f, -129.0f, -600.0f },
|
||||
{ 0.0f, -129.0f, -600.0f },
|
||||
{ -191.0f, -129.0f, -600.0f },
|
||||
};
|
||||
|
||||
func_800B8DD0(&gMasterDisp, 0x24);
|
||||
if (arg0 == 0) {
|
||||
for (i = 1; i < 4; i++) {
|
||||
if (((D_801778B0[i] != 0) || (D_80178280->unk_1C8 != 7)) && (D_801778B0[i] <= 0) && (D_801778B0[i] != -2)) {
|
||||
Matrix_Push(&D_8013B3C0);
|
||||
Matrix_Translate(D_8013B3C0, D_800D1A70[i - 1].x, D_800D1A70[i - 1].y, D_800D1A70[i - 1].z, 1);
|
||||
Matrix_Scale(D_8013B3C0, 0.68f, 0.68f, 1.0f, 1);
|
||||
Matrix_RotateZ(D_8013B3C0, 0.7853982f, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_500B600);
|
||||
Matrix_RotateZ(D_8013B3C0, 4.712389f, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_500B600);
|
||||
Matrix_Pop(&D_8013B3C0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Matrix_Push(&D_8013B3C0);
|
||||
Matrix_Translate(D_8013B3C0, -234.0f, -167.0f, -600.0f, 1);
|
||||
Matrix_RotateZ(D_8013B3C0, 0.7853982f, 1);
|
||||
Matrix_Scale(D_8013B3C0, 0.68f, 0.68f, 1.0f, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_500B600);
|
||||
Matrix_RotateZ(D_8013B3C0, 4.712389f, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_500B600);
|
||||
Matrix_Pop(&D_8013B3C0);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80084B94.s")
|
||||
#endif
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80084E78.s")
|
||||
void func_80084E78(Gfx** gfxP, void* arg1, void* arg2, u32 arg3, u32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8,
|
||||
f32 arg9, f32 argA) {
|
||||
gDPPipeSync((*gfxP)++);
|
||||
gDPLoadTLUT((*gfxP)++, 0x100, 0x100, arg2);
|
||||
gDPLoadTextureBlock((*gfxP)++, arg1, G_IM_FMT_CI, G_IM_SIZ_8b, arg3, arg4, 0, G_TX_NOMIRROR, G_TX_NOMIRROR,
|
||||
G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPTextureRectangle((*gfxP)++, (arg5 * 4.0f), (arg6 * 4.0f), ((arg5 + (arg9 * arg7)) * 4.0f),
|
||||
((arg6 + (argA * arg8)) * 4.0f), G_TX_RENDERTILE, 0 * 0x20, 0 * 0x20, (s32) (1 / arg7 * 0x400),
|
||||
(s32) (1 / arg8 * 0x400));
|
||||
}
|
||||
|
||||
void func_800853A4(f32 arg0, f32 arg1, f32 arg2, f32 arg3) {
|
||||
func_8009D0BC(&gMasterDisp, &D_1013170, &D_1013570, 24, 17, arg0, arg1, arg2, arg3);
|
||||
@@ -160,7 +274,45 @@ s32 func_800863C8(void) {
|
||||
return var_v1;
|
||||
}
|
||||
|
||||
#ifdef IMPORT_DATA_PENDING
|
||||
void func_80086444(void) {
|
||||
s32 i = 9;
|
||||
s32 j;
|
||||
|
||||
u8* D_800D1C9C[] = { D_6001B80, D_60020D0 };
|
||||
s32 D_800D1CA4[] = { 128, 104 };
|
||||
s32 D_800D1CAC[] = { 19, 19 };
|
||||
f32 D_800D1CB4[] = { 96.0f, 112.0f };
|
||||
f32 D_800D1CBC[] = { 89.0f, 89.0f };
|
||||
f32 D_800D1CC4[] = { 2.0f, 5.0f };
|
||||
f32 D_800D1CCC[] = { 1.6f, 1.6f };
|
||||
|
||||
switch (D_80178234) {
|
||||
case 19:
|
||||
i = 1;
|
||||
break;
|
||||
|
||||
case 6:
|
||||
i = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (i != 9) {
|
||||
func_800B8DD0(&gMasterDisp, 0x4C);
|
||||
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
|
||||
|
||||
for (j = 0; j < 19; j++) {
|
||||
func_8009D994(&gMasterDisp, D_800D1C9C[i] + (D_800D1CA4[i] * j), D_800D1CA4[i], 1, D_800D1CB4[i],
|
||||
D_800D1CBC[i] + j - 28.0f, 1.0f, 1.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80086444.s")
|
||||
#endif
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80086664.s")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user