update hud.c to fix some struct errors

This commit is contained in:
Mallos31 2023-06-05 15:46:57 -04:00
parent 61cb609b49
commit 588a820c75
7 changed files with 223 additions and 84 deletions

View File

@ -1,6 +1,10 @@
#ifndef _MONSTERS_H_ #ifndef _MONSTERS_H_
#define _MONSTERS_H_ #define _MONSTERS_H_
#define ON_GROUND 0
#define FLYING 1
#define MAMMON 2
typedef struct { typedef struct {
u8 unk0[0x18]; u8 unk0[0x18];
}AIScript; }AIScript;
@ -31,10 +35,22 @@ typedef struct {
} MonsterBaseData; // size 0x38 } MonsterBaseData; // size 0x38
typedef struct { typedef struct {
u8 pad[0x86]; s16 unk0;
u16 unk86; s16 unk2;
char unk88[0xC]; s16 unk4;
f32 unk94; s16 unk6;
u16 unk8;
}UnknownMonsterData3;
typedef struct {
/*0x00*/ u8 pad[0x12];
/*0x12*/ u8 status[7];
/*0x19*/ char unk19[0x2B];
/*0x44*/ UnknownMonsterData3* unk44[4];
/*0x54*/ char unk54[0x32];
/*0x86*/ u16 unk86;
/*0x88*/ char unk88[0xC];
/*0x94*/ f32 unk94;
} UnknownMonsterData2; } UnknownMonsterData2;
typedef struct { typedef struct {

View File

@ -2,11 +2,19 @@
#include "player.h" #include "player.h"
typedef struct { typedef struct {
char unk0[0x8]; void* unk0;
u16 unk4;
u16 unk6;
f32 unk8; f32 unk8;
f32 unkC; f32 unkC;
f32 unk10; f32 unk10;
}test4; s8 unk14;
s8 unk15;
u8 unk16;
char unk17; //pad
s32 unk18;
char unk1C[4];
}unk1e138s;
typedef struct { typedef struct {
char unk0[0x52]; char unk0[0x52];
@ -90,10 +98,5 @@ void func_8001E0AC(s32 arg0, unk1e0acs *arg1, unk1e0acs2 *arg2)
} }
#pragma GLOBAL_ASM("asm/nonmatchings/1E4B0/func_8001E138.s") #pragma GLOBAL_ASM("asm/nonmatchings/1E4B0/func_8001E138.s")
#ifdef NON_MATCHING
void func_8001E138(MtxF* arg0, test4* arg1) {
arg0->mf[3][0] -= (arg0->mf[0][0] * arg1->unk8) + (arg0->mf[1][0] * arg1->unkC) + (arg0->mf[2][0] * arg1->unk10);
arg0->mf[3][1] -= (arg0->mf[0][1] * arg1->unk8) + (arg0->mf[1][1] * arg1->unkC) + (arg0->mf[2][1] * arg1->unk10);
arg0->mf[3][2] -= (arg0->mf[0][2] * arg1->unk8) + (arg0->mf[1][2] * arg1->unkC) + (arg0->mf[2][2] * arg1->unk10);
}
#endif

View File

@ -1,10 +1,23 @@
#include "common.h" #include "common.h"
//static s8 D_8008FD00[4] = {0, 0, 0, 0};
//static u16 D_8008FD0C = 0; //pause and save screen flags
//static u16 D_8008FD20 = 0; //unknown at this time, but found between save menu and pfs related vars.
void func_80026A40(); void func_80026A40();
void func_80026A7C(void* arg0);
#pragma GLOBAL_ASM("asm/nonmatchings/27640/func_80026A40.s") #pragma GLOBAL_ASM("asm/nonmatchings/27640/func_80026A40.s")
#ifdef NON_MATCHING //This function DOES match, but bss needs to be migrated. The variables will be commented out above.
void func_80026A40(void) {
s32 i;
D_8008FD0C = 0x8000;
D_8008FD20 = 0;
for(i=0; i<4; i++) {
D_8008FD00[i] = i;
}
}
#endif
#pragma GLOBAL_ASM("asm/nonmatchings/27640/func_80026A7C.s") #pragma GLOBAL_ASM("asm/nonmatchings/27640/func_80026A7C.s")

View File

@ -47,6 +47,7 @@ extern f64 D_800716E0;
extern f64 D_800716E8; extern f64 D_800716E8;
extern f64 D_800716F0; extern f64 D_800716F0;
extern f64 D_800716F8; extern f64 D_800716F8;
extern f32 D_8004D74C;
@ -67,7 +68,7 @@ void func_80023974(unk23df4s* arg0, f32 arg1, f32 arg2, f32 arg3, f32* arg4, f32
void func_80023BCC(Mtx* arg0, f32 arg1, f32 arg2, f32 arg3); void func_80023BCC(Mtx* arg0, f32 arg1, f32 arg2, f32 arg3);
void func_80023DF4(f32 (*arg0)[4], f32 arg1, f32 arg2, f32 arg3); void func_80023DF4(f32 (*arg0)[4], f32 arg1, f32 arg2, f32 arg3);
void func_80023E80(MtxF *arg0, MtxF *arg1, MtxF *arg2);
//#pragma GLOBAL_ASM("asm/nonmatchings/camera/getRandomNumber.s") //#pragma GLOBAL_ASM("asm/nonmatchings/camera/getRandomNumber.s")
u32 getRandomNumber(u32 arg0) u32 getRandomNumber(u32 arg0)
@ -397,6 +398,41 @@ void func_80023BCC(Mtx* arg0, f32 arg1, f32 arg2, f32 arg3) {
} }
#pragma GLOBAL_ASM("asm/nonmatchings/camera/func_80023C1C.s") #pragma GLOBAL_ASM("asm/nonmatchings/camera/func_80023C1C.s")
#ifdef NON_MATCHING
void func_80023C1C(MtxF *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9)
{
f32 s1;
f32 s2;
f32 s3;
f32 c2;
f32 c3;
f32 c1;
arg5 *= D_8004D74C;
arg6 *= D_8004D74C;
s1 = sinf(arg4 * D_8004D74C);
c1 = cosf(arg4 * ((0, D_8004D74C)));
s2 = sinf(arg5);
c2 = cosf(arg5);
s3 = sinf(arg6);
c3 = cosf(arg6);
arg0->mf[0][0] = ((c3 * c2) + ((s3 * s1) * s2)) * arg7;
arg0->mf[0][1] = (s3 * c1) * arg7;
arg0->mf[0][2] = (((-s2) * c3) + ((s3 * s1) * c2)) * arg7;
arg0->mf[0][3] = 0.0f;
arg0->mf[1][0] = (((-s3) * c2) + ((c3 * s1) * s2)) * arg8;
arg0->mf[1][1] = (c3 * c1) * arg8;
arg0->mf[1][2] = (((-s3) * (-s2)) + ((c3 * s1) * c2)) * arg8;
arg0->mf[1][3] = 0.0f;
arg0->mf[2][0] = (c1 * s2) * arg9;
arg0->mf[2][1] = (-s1) * arg9;
arg0->mf[2][2] = (c1 * c2) * arg9;
arg0->mf[2][3] = 0.0f;
arg0->mf[3][0] = arg1;
arg0->mf[3][1] = arg2;
arg0->mf[3][2] = arg3;
arg0->mf[3][3] = 1.0f;
}
#endif
//#pragma GLOBAL_ASM("asm/nonmatchings/camera/func_80023DF4.s") //#pragma GLOBAL_ASM("asm/nonmatchings/camera/func_80023DF4.s")
void func_80023DF4(f32 (*arg0)[4], f32 arg1, f32 arg2, f32 arg3) { void func_80023DF4(f32 (*arg0)[4], f32 arg1, f32 arg2, f32 arg3) {
@ -411,7 +447,95 @@ void func_80023DF4(f32 (*arg0)[4], f32 arg1, f32 arg2, f32 arg3) {
arg0[2][2] *= arg3; arg0[2][2] *= arg3;
} }
#pragma GLOBAL_ASM("asm/nonmatchings/camera/func_80023E80.s") //#pragma GLOBAL_ASM("asm/nonmatchings/camera/func_80023E80.s")
void func_80023E80(MtxF *arg0, MtxF *arg1, MtxF *arg2)
{
f32 temp_f2;
f32 temp_f20;
f32 temp_f14;
f32 temp_f12;
f32 temp_f0;
f32 temp_f16;
f32 temp_f22;
f32 temp_f24;
f32 temp_f18;
f32 sp58;
f32 sp54;
f32 sp50;
f32 temp_f10;
f32 sp48;
f32 temp_f6;
f32 temp_f8;
f32 sp3C;
f32 temp_f4;
f32 sp34;
f32 sp30;
f32 temp_f10_2;
f32 sp28;
f32 temp_f6_2;
f32 sp20;
temp_f0 = arg0->mf[0][0];
temp_f2 = arg0->mf[0][1];
temp_f12 = arg0->mf[0][2];
temp_f14 = arg0->mf[1][0];
temp_f16 = arg0->mf[1][1];
temp_f18 = arg0->mf[1][2];
temp_f20 = arg0->mf[2][0];
temp_f22 = arg0->mf[2][1];
temp_f24 = arg0->mf[2][2];
sp58 = arg0->mf[3][0];
sp54 = arg0->mf[3][1];
sp50 = arg0->mf[3][2];
temp_f10 = arg1->mf[0][0];
sp48 = arg1->mf[0][1];
temp_f6 = arg1->mf[0][2];
temp_f8 = arg1->mf[1][0];
sp3C = arg1->mf[1][1];
temp_f4 = arg1->mf[1][2];
sp34 = arg1->mf[2][0];
sp30 = arg1->mf[2][1];
temp_f10_2 = arg1->mf[2][2];
sp28 = arg1->mf[3][0];
temp_f6_2 = arg1->mf[3][1];
sp20 = arg1->mf[3][2];
arg2->mf[0][0] = ((temp_f0 * temp_f10) + (temp_f14 * sp48)) + (temp_f20 * temp_f6);
arg2->mf[1][0] = ((temp_f0 * temp_f8) + (temp_f14 * sp3C)) + (temp_f20 * temp_f4);
arg2->mf[2][0] = ((temp_f0 * sp34) + (temp_f14 * sp30)) + (temp_f20 * temp_f10_2);
arg2->mf[3][0] = (((temp_f0 * sp28) + (temp_f14 * temp_f6_2)) + (temp_f20 * sp20)) + sp58;
arg2->mf[0][1] = ((temp_f2 * temp_f10) + (temp_f16 * sp48)) + (temp_f22 * temp_f6);
arg2->mf[1][1] = ((temp_f2 * temp_f8) + (temp_f16 * sp3C)) + (temp_f22 * temp_f4);
arg2->mf[2][1] = ((temp_f2 * sp34) + (temp_f16 * sp30)) + (temp_f22 * temp_f10_2);
arg2->mf[3][1] = (((temp_f2 * sp28) + (temp_f16 * temp_f6_2)) + (temp_f22 * sp20)) + sp54;
arg2->mf[0][2] = ((temp_f12 * temp_f10) + (temp_f18 * sp48)) + (temp_f24 * temp_f6);
arg2->mf[1][2] = ((temp_f12 * temp_f8) + (temp_f18 * sp3C)) + (temp_f24 * temp_f4);
arg2->mf[2][2] = ((temp_f12 * sp34) + (temp_f18 * sp30)) + (temp_f24 * temp_f10_2);
arg2->mf[3][2] = (((temp_f12 * sp28) + (temp_f18 * temp_f6_2)) + (temp_f24 * sp20)) + sp50;
arg2->mf[0][3] = 0.0f;
arg2->mf[1][3] = 0.0f;
arg2->mf[2][3] = 0.0f;
arg2->mf[3][3] = 1.f;
}
#pragma GLOBAL_ASM("asm/nonmatchings/camera/func_8002413C.s") #pragma GLOBAL_ASM("asm/nonmatchings/camera/func_8002413C.s")
/*s32 func_8002413C(f32 arg0, f32 arg1, f32 arg2, s32 *arg3, s32 *arg4) /*s32 func_8002413C(f32 arg0, f32 arg1, f32 arg2, s32 *arg3, s32 *arg4)

116
src/hud.c
View File

@ -1,40 +1,18 @@
#include "common.h" #include "common.h"
#include "monsters.h" #include "monsters.h"
#include "player.h" #include "player.h"
//#include "hud.h" !TODO once everything at the top of this file is named and updated, put it in hud.h and uncomment.
#define ON_GROUND 0
#define FLYING 1
#define MAMMON 2
#define U_CBUTTONS CONT_E #define U_CBUTTONS CONT_E
#define L_CBUTTONS CONT_C #define L_CBUTTONS CONT_C
#define R_CBUTTONS CONT_F #define R_CBUTTONS CONT_F
#define D_CBUTTONS CONT_D #define D_CBUTTONS CONT_D
typedef struct { typedef struct {
s16 unk0; void* unk0;
s16 unk2;
s16 unk4;
s16 unk6;
u16 unk8;
}unk202e4s3;
typedef struct {
char unk0[0x12];
u8 unk12[7];
char unk19[0x2B];
unk202e4s3* unk44[4];
}unk202e4s2;
typedef struct {
char unk0[0x68];
unk202e4s2* unk68;
}unk202e4s;
typedef struct {
s32 unk0;
s32 unk4; s32 unk4;
s32 unk8; s32 unk8;
s32 unkC;
}unk20e2cs; }unk20e2cs;
typedef struct { typedef struct {
@ -119,10 +97,10 @@ extern s32 D_8008C658; //number of lines to draw from left to right (HUD)
extern s32 D_8008C65C; //number of lines to draw from top to bottom (HUD) extern s32 D_8008C65C; //number of lines to draw from top to bottom (HUD)
extern MissIcon gMISSData; extern MissIcon gMISSData;
extern u8 gBattleStatusPal[]; //Status icons palette extern u8 gBattleStatusPal[]; //Status icons palette
extern unk20e2cs D_803A6F70; extern unk20e2cs D_803A6F70; //pointers to status icons and text
extern u8 D_8004D44C[]; extern u8 gAlphaNumerics[]; //0-9, punctuation, and capital letters
extern u8 D_803A6F80[]; extern u8 gAlphaNumericTexture[]; //texture corresponds perfectly with gAlphaNumerics
extern void* D_803A6FB0[]; extern void* D_803A6FB0[]; //array of palettes
extern unk203d0s* D_8007D088; extern unk203d0s* D_8007D088;
extern s32 *D_8007D0AC; extern s32 *D_8007D0AC;
extern u8 D_80399AB0[]; extern u8 D_80399AB0[];
@ -151,7 +129,7 @@ void func_8001EA84(Mtx *arg0);
void func_80020D4C(u16 arg0, s32 arg1, s32 arg2, s32 arg3); void func_80020D4C(u16 arg0, s32 arg1, s32 arg2, s32 arg3);
s32 func_8002413C(f32 arg0, f32 arg1, f32 arg2, s32* arg3, s32* arg4); s32 func_8002413C(f32 arg0, f32 arg1, f32 arg2, s32* arg3, s32* arg4);
void func_80020F8C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7); void func_80020F8C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7);
void func_800210FC(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8); void func_800210FC(unk20e2cs* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8);
void func_80020E2C(unk20e2cs* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); void func_80020E2C(unk20e2cs* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
void func_80020B4C(temp4* arg0, s32 arg1, s32 arg2, u8* arg3); void func_80020B4C(temp4* arg0, s32 arg1, s32 arg2, u8* arg3);
@ -178,17 +156,17 @@ void func_8001E7FC(BrianData2 *arg0)
brianData = arg0->brianData1; brianData = arg0->brianData1;
gfxHUD = &gTex_HUD_and_Menu; gfxHUD = &gTex_HUD_and_Menu;
func_800210FC((s32) gfxHUD, 0, 1, 0x3E, 0x11, 0x20, 0x27, 0x400, 0x400); func_800210FC(gfxHUD, 0, 1, 0x3E, 0x11, 0x20, 0x27, 0x400, 0x400);
func_800210FC((s32) gfxHUD, 0, 0x12, 0x3E, 0x12, 0x20, 0x38, 0x400, 0x400); func_800210FC(gfxHUD, 0, 0x12, 0x3E, 0x12, 0x20, 0x38, 0x400, 0x400);
temp_lo = ((s32) (brianData->currHP * 0x38)) / ((s32) brianData->maxHP); temp_lo = ((s32) (brianData->currHP * 0x38)) / ((s32) brianData->maxHP);
if (temp_lo != 0) if (temp_lo != 0)
{ {
func_800210FC((s32) gfxHUD, 3, 0xB, temp_lo, 5, 0x5E, 0x27, 0x400, 0x400); func_800210FC(gfxHUD, 3, 0xB, temp_lo, 5, 0x5E, 0x27, 0x400, 0x400);
} }
temp_lo = ((s32) (brianData->currMP * 0x38)) / ((s32) brianData->maxMP); temp_lo = ((s32) (brianData->currMP * 0x38)) / ((s32) brianData->maxMP);
if (temp_lo != 0) if (temp_lo != 0)
{ {
func_800210FC((s32) gfxHUD, 3, 0x15, temp_lo, 5, 0x5E, 0x2C, 0x400, 0x400); func_800210FC(gfxHUD, 3, 0x15, temp_lo, 5, 0x5E, 0x2C, 0x400, 0x400);
} }
func_80020E2C(gfxHUD, 0x20, 0x1D, 0x80, 0xA); func_80020E2C(gfxHUD, 0x20, 0x1D, 0x80, 0xA);
func_80020D4C(3, 0xC, 0, (s32) brianData->currHP); func_80020D4C(3, 0xC, 0, (s32) brianData->currHP);
@ -218,7 +196,7 @@ void func_8001EA84(Mtx *arg0) {
gSPDisplayList(gMasterGfxPos++, D_803A8EA0); //Compass DL gSPDisplayList(gMasterGfxPos++, D_803A8EA0); //Compass DL
//Pointer to texture, X, Y, NumPixelsX, NumPixelsY, SheetLocationX, unknown, resolutionX, resolutionY //Pointer to texture, X, Y, NumPixelsX, NumPixelsY, SheetLocationX, unknown, resolutionX, resolutionY
func_800210FC((s32) &gTex_HUD_and_Menu, 0xD, 0xA, 0xB, 0xE, 0x93, 0, 0x400, 0x400); func_800210FC(&gTex_HUD_and_Menu, 0xD, 0xA, 0xB, 0xE, 0x93, 0, 0x400, 0x400);
} }
//#pragma GLOBAL_ASM("asm/nonmatchings/hud/func_8001EBDC.s") //#pragma GLOBAL_ASM("asm/nonmatchings/hud/func_8001EBDC.s")
void func_8001EBDC(unk1ebdcs* arg0) { void func_8001EBDC(unk1ebdcs* arg0) {
@ -227,11 +205,11 @@ void func_8001EBDC(unk1ebdcs* arg0) {
void* HUDTex; void* HUDTex;
HUDTex = &gTex_HUD_and_Menu; HUDTex = &gTex_HUD_and_Menu;
func_800210FC((s32)HUDTex, 0, 0, 0xC, 0xC, 0x20, 0x10, 0x400, 0x400); func_800210FC(HUDTex, 0, 0, 0xC, 0xC, 0x20, 0x10, 0x400, 0x400);
func_800210FC((s32)HUDTex, 0x16, 0, 0xC, 0xC, 0x2C, 0x10, 0x400, 0x400); func_800210FC(HUDTex, 0x16, 0, 0xC, 0xC, 0x2C, 0x10, 0x400, 0x400);
func_800210FC((s32)HUDTex, 0x2C, 0, 0xC, 0xC, 0x38, 0x10, 0x400, 0x400); func_800210FC(HUDTex, 0x2C, 0, 0xC, 0xC, 0x38, 0x10, 0x400, 0x400);
func_800210FC((s32)HUDTex, 0x42, 0, 0xC, 0xC, 0x44, 0x10, 0x400, 0x400); func_800210FC(HUDTex, 0x42, 0, 0xC, 0xC, 0x44, 0x10, 0x400, 0x400);
func_80020E2C((unk20e2cs*)HUDTex, 0x20, 0x1D, 0x80, 0xA); func_80020E2C(HUDTex, 0x20, 0x1D, 0x80, 0xA);
var_s0 = 6; var_s0 = 6;
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
@ -261,10 +239,10 @@ void func_8001F3DC(unk1f3dcTEST* arg0) {
gDPPipeSync(gMasterGfxPos++); gDPPipeSync(gMasterGfxPos++);
temp = &D_803A6F60; temp = &D_803A6F60;
func_800210FC((s32) temp, 0x81, 0x48, 0x40, 0x14, 0, 0, 0x400, 0x400); func_800210FC(temp, 0x81, 0x48, 0x40, 0x14, 0, 0, 0x400, 0x400);
func_800210FC((s32) temp, 0x81, 0x5C, 0x40, 0x14, 0, 0x14, 0x400, 0x400); func_800210FC(temp, 0x81, 0x5C, 0x40, 0x14, 0, 0x14, 0x400, 0x400);
func_800210FC((s32) temp, 0x81, 0x70, 0x40, 0x14, 0, 0x28, 0x400, 0x400); func_800210FC(temp, 0x81, 0x70, 0x40, 0x14, 0, 0x28, 0x400, 0x400);
func_800210FC((s32) temp, 0x81, 0x84, 0x40, 0x14, 0, 0x3C, 0x400, 0x400); func_800210FC(temp, 0x81, 0x84, 0x40, 0x14, 0, 0x3C, 0x400, 0x400);
func_80020E2C(&gTex_HUD_and_Menu, 0x20, 0x1D, 0x80, 0xA); func_80020E2C(&gTex_HUD_and_Menu, 0x20, 0x1D, 0x80, 0xA);
gDPSetTextureImage(gMasterGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_80399AB0); gDPSetTextureImage(gMasterGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_80399AB0);
@ -404,17 +382,19 @@ void func_8001FB94(void) {
#pragma GLOBAL_ASM("asm/nonmatchings/hud/func_8001FEEC.s") #pragma GLOBAL_ASM("asm/nonmatchings/hud/func_8001FEEC.s")
//#pragma GLOBAL_ASM("asm/nonmatchings/hud/func_800202E4.s")//Matched by EllipticEllipsis and StuckPixel //#pragma GLOBAL_ASM("asm/nonmatchings/hud/func_800202E4.s")//Matched by EllipticEllipsis and StuckPixel
void func_800202E4(unk202e4s *arg0)
/*This funciton has something to do with status effects and buffs/debuffs on monsters*/
void func_800202E4(MonsterBattleData *arg0)
{ {
u32 i; u32 i;
unk202e4s2 *temp_v0; UnknownMonsterData2 *temp_v0;
unk202e4s3 *temp_a0; UnknownMonsterData3 *temp_a0;
temp_v0 = arg0->unk68; temp_v0 = arg0->unk68;
for(i = 0; i < 7; i++) { for(i = 0; i < 7; i++) {
if(temp_v0->unk12[i] != 0) { if(temp_v0->status[i] != 0) {
temp_v0->unk12[i] = 0; temp_v0->status[i] = 0;
} }
} }
@ -457,16 +437,16 @@ void func_800203D0(void)
new_var = &D_803A6F60; new_var = &D_803A6F60;
if (D_8007D088->unk90 & 0x80) if (D_8007D088->unk90 & 0x80)
{ {
func_800210FC((s32) new_var, 0, 0, 0x6E, 0x10, 0x64, 0x1C, 0x400, 0x400); func_800210FC(new_var, 0, 0, 0x6E, 0x10, 0x64, 0x1C, 0x400, 0x400);
func_800210FC((s32) new_var, 0, 0x10, 0x6E, 0x10, 0x64, 0x2C, 0x400, 0x400); func_800210FC(new_var, 0, 0x10, 0x6E, 0x10, 0x64, 0x2C, 0x400, 0x400);
func_800210FC((s32) new_var, 0, 0x20, 0x6E, 0x10, 0x64, 0x3C, 0x400, 0x400); func_800210FC(new_var, 0, 0x20, 0x6E, 0x10, 0x64, 0x3C, 0x400, 0x400);
func_800210FC((s32) new_var, 0, 0x30, 0x6E, 4, 0x64, 0x4C, 0x400, 0x400); func_800210FC(new_var, 0, 0x30, 0x6E, 4, 0x64, 0x4C, 0x400, 0x400);
} }
else else
{ {
func_800210FC((s32) new_var, 0, 0, 0x6E, 0x10, 0x64, 0x1C, 0x400, 0x400); func_800210FC(new_var, 0, 0, 0x6E, 0x10, 0x64, 0x1C, 0x400, 0x400);
func_800210FC((s32) new_var, 0, 0x10, 0x6E, 0xA, 0x64, 0x2C, 0x400, 0x400); func_800210FC(new_var, 0, 0x10, 0x6E, 0xA, 0x64, 0x2C, 0x400, 0x400);
func_800210FC((s32) new_var, 0, 0x1A, 0x6E, 2, 0x64, 0x4E, 0x400, 0x400); func_800210FC(new_var, 0, 0x1A, 0x6E, 2, 0x64, 0x4E, 0x400, 0x400);
} }
func_80020B4C(4, 0x11, 0, D_8007D0AC[D_8007D088->unk20->unk2]); func_80020B4C(4, 0x11, 0, D_8007D0AC[D_8007D088->unk20->unk2]);
func_80020E2C(&gTex_HUD_and_Menu, 0x20, 0x1D, 0x80, 0xA); func_80020E2C(&gTex_HUD_and_Menu, 0x20, 0x1D, 0x80, 0xA);
@ -483,7 +463,7 @@ void func_800203D0(void)
func_80020D4C(3U, 0x46, 0x26, (s32) D_8007D088->unk20->unkC); func_80020D4C(3U, 0x46, 0x26, (s32) D_8007D088->unk20->unkC);
if (D_8007D088->unk20->unk26 != 4) if (D_8007D088->unk20->unk26 != 4)
{ {
func_800210FC((s32) (&gTex_HUD_and_Menu), 0x5B, 3, 0xC, 0xC, (D_8007D088->unk20->unk26 * 0xC) + 0x20, 0x10, 0x400, 0x400); func_800210FC(&gTex_HUD_and_Menu, 0x5B, 3, 0xC, 0xC, (D_8007D088->unk20->unk26 * 0xC) + 0x20, 0x10, 0x400, 0x400);
} }
} }
} }
@ -568,7 +548,7 @@ void Draw_MISS_Icon(void)
var_f0 += missIconData->pos->z; var_f0 += missIconData->pos->z;
} }
func_8002413C(var_f12, var_f14, var_f0, &sp74, &sp70); func_8002413C(var_f12, var_f14, var_f0, &sp74, &sp70);
func_800210FC((s32) new_var, sp74 - (((s32) missIconData->width) >> 1), sp70 - missIconData->height, (s32) missIconData->width, (s32) missIconData->height, (s32) missIconData->unk14, (s32) missIconData->unk16, 0x400, 0x400); func_800210FC(new_var, sp74 - (((s32) missIconData->width) >> 1), sp70 - missIconData->height, (s32) missIconData->width, (s32) missIconData->height, (s32) missIconData->unk14, (s32) missIconData->unk16, 0x400, 0x400);
missIconData->displayTimer--; missIconData->displayTimer--;
} }
var_s1--; var_s1--;
@ -606,7 +586,7 @@ void func_80020B4C(temp4* arg0, s32 arg1, s32 arg2, u8* arg3) {
continue; continue;
} else { } else {
for (i = 0; i < 44; i++) { for (i = 0; i < 44; i++) {
if (D_8004D44C[i] != *arg3) { if (gAlphaNumerics[i] != *arg3) {
continue; continue;
} else { } else {
break; break;
@ -614,7 +594,7 @@ void func_80020B4C(temp4* arg0, s32 arg1, s32 arg2, u8* arg3) {
} }
} }
func_800210FC(D_803A6F80, arg0, arg1, 6, 8, i * 6, 0, 0x400, 0x400); func_800210FC(gAlphaNumericTexture, arg0, arg1, 6, 8, i * 6, 0, 0x400, 0x400);
arg0++; arg0++;
arg3++; arg3++;
} }
@ -670,15 +650,15 @@ void func_80020E24(void) {
//#pragma GLOBAL_ASM("asm/nonmatchings/hud/func_80020E2C.s") //Assist by StuckPixel //#pragma GLOBAL_ASM("asm/nonmatchings/hud/func_80020E2C.s") //Assist by StuckPixel
/*This function sets up the graphics pipeline for loading a texture image and rendering it to the screen.*/ /*This function sets up the graphics pipeline for loading a texture image and rendering it to the screen.*/
void func_80020E2C(unk20e2cs* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { void func_80020E2C(unk20e2cs* arg0, s32 s, s32 t, s32 lrx, s32 lry) {
gDPSetTextureImage(gMasterGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, arg0->unk8, arg0->unk0); gDPSetTextureImage(gMasterGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, arg0->unk8, arg0->unk0);
gDPSetTile(gMasterGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, ((((arg1 + arg3) - arg1) + 8)) >> 3, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD); gDPSetTile(gMasterGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, ((((s + lrx) - s) + 8)) >> 3, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD);
gDPLoadSync(gMasterGfxPos++); gDPLoadSync(gMasterGfxPos++);
gDPLoadTile(gMasterGfxPos++, G_TX_LOADTILE, arg1 * 4, arg2 * 4, (arg1 + arg3) * 4, (arg2 + arg4) * 4); gDPLoadTile(gMasterGfxPos++, G_TX_LOADTILE, s * 4, t * 4, (s + lrx) * 4, (t + lry) * 4);
gDPPipeSync(gMasterGfxPos++); gDPPipeSync(gMasterGfxPos++);
gDPSetTile(gMasterGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, ((((arg1 + arg3) - arg1) + 8)) >> 3, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD); gDPSetTile(gMasterGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, ((((s + lrx) - s) + 8)) >> 3, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD);
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, arg1 * 4, arg2 * 4, (arg1 + arg3) * 4, (arg2 + arg4) * 4); gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, s * 4, t * 4, (s + lrx) * 4, (t + lry) * 4);
} }
//#pragma GLOBAL_ASM("asm/nonmatchings/hud/func_80020F8C.s") //#pragma GLOBAL_ASM("asm/nonmatchings/hud/func_80020F8C.s")
@ -716,7 +696,7 @@ void func_80020F8C(s32 ulx, s32 uly, s32 lrx, s32 lry, s32 s, s32 t, s32 dsdx, s
dummy_label_814065: ; dummy_label_814065: ;
} }
//#pragma GLOBAL_ASM("asm/nonmatchings/hud/func_800210FC.s") //#pragma GLOBAL_ASM("asm/nonmatchings/hud/func_800210FC.s")
void func_800210FC(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { void func_800210FC(unk20e2cs* arg0, s32 ulx, s32 uly, s32 lrx, s32 lry, s32 s, s32 t, s32 dsdx, s32 dtdy) {
func_80020E2C((unk20e2cs* ) arg0, arg5, arg6, arg3, arg4); func_80020E2C(arg0, s, t, lrx, lry);
func_80020F8C(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); func_80020F8C(ulx, uly, lrx, lry, s, t, dsdx, dtdy);
} }

View File

@ -367,6 +367,7 @@ alSeqNew = 0x80049c78;
alSynSetPriority = 0x80049d50; alSynSetPriority = 0x80049d50;
ldiv = 0x80049e60; ldiv = 0x80049e60;
gAlphaNumerics = 0x8004D44C;
gCheckItemUsableFuncs = 0x8004D480; gCheckItemUsableFuncs = 0x8004D480;
gUseItemFuncs = 0x8004D490; gUseItemFuncs = 0x8004D490;
dlScreenDimRectangle = 0x8004D4F0; dlScreenDimRectangle = 0x8004D4F0;

View File

@ -8,3 +8,5 @@ D_8008C592 = 0x8008C592;
gDL_StaffIcon = 0x803A8CF8; gDL_StaffIcon = 0x803A8CF8;
gExclamationMarkPalette = 0x803A8C08; gExclamationMarkPalette = 0x803A8C08;
gCurrentTime = 0x800859d0; gCurrentTime = 0x800859d0;
gAlphaNumerics = 0x8004D44C;
gAlphaNumericTexture = 0x803A6F80;