From a443a0a7c7119ee4fc13957c6a70fd16d7eb29dd Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Fri, 4 Apr 2025 01:31:35 +0200 Subject: [PATCH] GXSETARRAY macro and used that at some places --- include/dolphin/gx/GXGeometry.h | 2 ++ src/REL/m405Dll/main.c | 2 +- src/REL/m406Dll/map.c | 12 ++++++------ src/game/hsfanim.c | 7 ++++--- src/game/printfunc.c | 4 ++-- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/include/dolphin/gx/GXGeometry.h b/include/dolphin/gx/GXGeometry.h index 632ebc69..77effd85 100644 --- a/include/dolphin/gx/GXGeometry.h +++ b/include/dolphin/gx/GXGeometry.h @@ -20,8 +20,10 @@ void GXSetPointSize(u8 pointSize, GXTexOffset texOffsets); void GXEnableTexOffsets(GXTexCoordID coord, GXBool line_enable, GXBool point_enable); #ifdef TARGET_PC void GXSetArray(GXAttr attr, const void* data, u32 size, u8 stride); +#define GXSETARRAY(attr, data, size, stride) GXSetArray((attr), (data), (size), (stride)) #else void GXSetArray(GXAttr attr, const void* data, u8 stride); +#define GXSETARRAY(attr, data, size, stride) GXSetArray((attr), (data), (stride)) #endif void GXInvalidateVtxCache(void); diff --git a/src/REL/m405Dll/main.c b/src/REL/m405Dll/main.c index 0eade3f2..8eafe1d9 100755 --- a/src/REL/m405Dll/main.c +++ b/src/REL/m405Dll/main.c @@ -1002,7 +1002,7 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, lbl_1_bss_5AC.unk14, 0xC); + GXSETARRAY(GX_VA_POS, lbl_1_bss_5AC.unk14, 900 * sizeof(Vec), 0xC); GXSetCullMode(GX_CULL_BACK); GXCallDisplayList(lbl_1_bss_5AC.unk24, lbl_1_bss_5AC.unk28); GXSetNumIndStages(0); diff --git a/src/REL/m406Dll/map.c b/src/REL/m406Dll/map.c index e995e73a..47ff2ff0 100644 --- a/src/REL/m406Dll/map.c +++ b/src/REL/m406Dll/map.c @@ -1111,19 +1111,19 @@ void fn_1_45BC(ModelData *arg0, Mtx arg1) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetArray(GX_VA_POS, var_r31->unk_84, sizeof(Vec)); + GXSETARRAY(GX_VA_POS, var_r31->unk_84, var_r31->unk_80 * sizeof(Vec), sizeof(Vec)); GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSetArray(GX_VA_NRM, var_r31->unk_88, sizeof(Vec)); + GXSETARRAY(GX_VA_NRM, var_r31->unk_88, var_r31->unk_80 * sizeof(Vec), sizeof(Vec)); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSetArray(GX_VA_CLR0, var_r31->unk_90, 4); + GXSETARRAY(GX_VA_CLR0, var_r31->unk_90, var_r31->unk_80 * sizeof(GXColor), sizeof(GXColor)); GXCallDisplayList(var_r31->unk_A4, var_r31->unk_A0); for (var_r30 = 1; var_r30 < 29; var_r30++) { var_r29 = var_r30 * 35; - GXSetArray(GX_VA_POS, &var_r31->unk_84[var_r29], sizeof(Vec)); - GXSetArray(GX_VA_NRM, &var_r31->unk_88[var_r29], sizeof(Vec)); - GXSetArray(GX_VA_CLR0, &var_r31->unk_90[var_r29], sizeof(GXColor)); + GXSETARRAY(GX_VA_POS, &var_r31->unk_84[var_r29], 35 * sizeof(Vec), sizeof(Vec)); + GXSETARRAY(GX_VA_NRM, &var_r31->unk_88[var_r29], 35 * sizeof(Vec), sizeof(Vec)); + GXSETARRAY(GX_VA_CLR0, &var_r31->unk_90[var_r29], 35 * sizeof(GXColor), sizeof(GXColor)); GXCallDisplayList(var_r31->unk_A4, var_r31->unk_A0); } } diff --git a/src/game/hsfanim.c b/src/game/hsfanim.c index b5a73d37..1db1cd21 100755 --- a/src/game/hsfanim.c +++ b/src/game/hsfanim.c @@ -1,4 +1,5 @@ #include "game/hsfanim.h" +#include "dolphin/gx/GXStruct.h" #include "game/hsfdraw.h" #include "game/init.h" #include "game/memory.h" @@ -824,13 +825,13 @@ static void particleFunc(ModelData *arg0, Mtx arg1) { GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, temp_r31->unk_4C, 0xC); + GXSETARRAY(GX_VA_POS, temp_r31->unk_4C, temp_r31->unk_30 * 4, 0xC); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSetArray(GX_VA_CLR0, &temp_r31->unk_48->unk40, 0x44); + GXSETARRAY(GX_VA_CLR0, &temp_r31->unk_48->unk40, temp_r31->unk_30, 0x44); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); - GXSetArray(GX_VA_TEX0, baseST, 8); + GXSETARRAY(GX_VA_TEX0, baseST, sizeof(baseST), 8); GXCallDisplayList(temp_r31->unk_50, temp_r31->unk_40); } if (shadowModelDrawF == 0) { diff --git a/src/game/printfunc.c b/src/game/printfunc.c index 4f85f5a9..9be9b5df 100644 --- a/src/game/printfunc.c +++ b/src/game/printfunc.c @@ -156,7 +156,7 @@ void pfDrawFonts(void) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_S16, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSetArray(GX_VA_CLR0, fcoltbl, sizeof(GXColor)); + GXSETARRAY(GX_VA_CLR0, fcoltbl, sizeof(fcoltbl), sizeof(GXColor)); GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE); GXInvalidateTexAll(); GXInitTexObj(&font_tex, ank8x8_4b, 128, 128, GX_TF_I4, GX_CLAMP, GX_CLAMP, GX_FALSE); @@ -203,7 +203,7 @@ void pfDrawFonts(void) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_S16, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSetArray(GX_VA_CLR0, fcoltbl, sizeof(GXColor)); + GXSETARRAY(GX_VA_CLR0, fcoltbl, sizeof(fcoltbl), sizeof(GXColor)); GXSetNumTevStages(1); GXSetNumTexGens(1); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);