Fix fixed-point matrix type being used in floating-point matrix instances

This commit is contained in:
Mr-Wiseguy
2024-09-13 17:56:28 -04:00
parent b77274c9ea
commit 8d918e3505
18 changed files with 236 additions and 204 deletions

View File

@@ -1,16 +1,15 @@
#include <ultra64.h>
#include "functions.h"
#include "variables.h"
#include "ml/mtx.h"
Mtx *func_8024DD9C(void);
void mlMtxSet(Mtx *);
void func_80252330(f32, f32, f32);
void mlMtxApply(Mtx *);
void func_803382D8(s32 arg0);
void func_803382E4(s32 arg0);
void spriteRender_set1Primative(bool boolean);
void func_803382FC(s32 arg0);
void func_80338308(s32 arg0, s32 arg1);
BKSpriteTextureBlock *func_8033EFB0(Struct84s *arg0, s32 arg1);
/* .data */
Gfx D_80370260[] = {
@@ -263,17 +262,17 @@ void spriteRender_drawWithSegment(Gfx **gfx, Vtx **vtx, BKSprite *sprite, u32 fr
frame_ptr = spriteGetFramePtr(sprite, frame);
//load palette in indexed pixels
var_t2 = frame_ptr + 1;
var_t2 = (BKSpriteTextureBlock *)(frame_ptr + 1);
if (sprite->type & SPRITE_TYPE_CI4) {
gDPSetTextureLUT((*gfx)++, G_TT_RGBA16);
palette_mem = ALIGN(frame_ptr + 1, 8);
gDPLoadTLUT_pal16((*gfx)++, 0, palette_mem);
var_t2 = palette_mem + 0x20;
var_t2 = (BKSpriteTextureBlock *)(palette_mem + 0x20);
} else if (sprite->type & SPRITE_TYPE_CI8) {
gDPSetTextureLUT((*gfx)++, G_TT_RGBA16);
palette_mem = ALIGN(frame_ptr + 1, 8);
gDPLoadTLUT_pal256((*gfx)++, palette_mem);
var_t2 = palette_mem + 0x200;
var_t2 = (BKSpriteTextureBlock *)(palette_mem + 0x200);
}
//start new vtx seg
@@ -290,7 +289,7 @@ void spriteRender_drawWithSegment(Gfx **gfx, Vtx **vtx, BKSprite *sprite, u32 fr
// sp1B4 = sp1B4;
for(sp1BC = 0; sp1BC < frame_ptr->chunkCnt; sp1BC++){
temp_ra = var_t2->h;
tmem = ALIGN(var_t2 + 1, 8); //align
tmem = (u8*)ALIGN(var_t2 + 1, 8); //align
//load texture block
if (sprite->type & SPRITE_TYPE_RGBA16) {
@@ -342,7 +341,7 @@ void spriteRender_drawWithSegment(Gfx **gfx, Vtx **vtx, BKSprite *sprite, u32 fr
gSPVertex((*gfx)++, sp1B0, 0, 0);
}
}
var_t2 = tmem + ((s32) (var_t2->w * var_t2->h) * pixel_size_nibbles / 2);
var_t2 = (BKSpriteTextureBlock *)(tmem + ((s32) (var_t2->w * var_t2->h) * pixel_size_nibbles / 2));
}
// sp1B4 = reinterpret_cast(Gfx *,sp1B4);
*vtx = var_a3;