diff options
| author | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2025-11-25 11:32:34 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-25 18:32:34 +0200 |
| commit | 2f2f37a7345d889aa1072b10e3a5022ad1bd15f1 (patch) | |
| tree | 5844529921578f759ec79e96769f8d809bc0c350 /src/m_Do/m_Do_lib.cpp | |
| parent | cd3d634133040864768d9cc7364b02ce1f22e99b (diff) | |
Misc fixes (#2860)
* Misc matches
* Remove more old dol2asm stuff
* Remove dCcS::SetMass-related fakematches
No longer necessary with the PCH for some reason.
* Use attention types enum in more places
* Remove more dol2asm stuff
* Clean up matDL_dis.py
Diffstat (limited to 'src/m_Do/m_Do_lib.cpp')
| -rw-r--r-- | src/m_Do/m_Do_lib.cpp | 83 |
1 files changed, 47 insertions, 36 deletions
diff --git a/src/m_Do/m_Do_lib.cpp b/src/m_Do/m_Do_lib.cpp index 9407fd22b0..500df9a52f 100644 --- a/src/m_Do/m_Do_lib.cpp +++ b/src/m_Do/m_Do_lib.cpp @@ -12,27 +12,26 @@ /* 8001513C-8001528C 00FA7C 0150+00 0/0 3/3 2/2 .text * mDoLib_setResTimgObj__FPC7ResTIMGP9_GXTexObjUlP10_GXTlutObj */ -u8 mDoLib_setResTimgObj(ResTIMG const* res, _GXTexObj* o_texObj, u32 tlut_name, - _GXTlutObj* o_tlutObj) { - ResTIMG* _res = (ResTIMG*)res; - - if (_res->indexTexture) { - GXInitTlutObj(o_tlutObj, (void*)((u8*)_res + _res->paletteOffset), - (GXTlutFmt)_res->colorFormat, _res->numColors); - GXInitTexObjCI(o_texObj, (void*)((u8*)_res + _res->imageOffset), _res->width, _res->height, - (GXCITexFmt)_res->format, (GXTexWrapMode)_res->wrapS, - (GXTexWrapMode)_res->wrapT, _res->mipmapCount > 1, tlut_name); +u32 mDoLib_setResTimgObj(ResTIMG const* i_img, GXTexObj* o_texObj, u32 tlut_name, + GXTlutObj* o_tlutObj) { + if (i_img->indexTexture) { + JUT_ASSERT(44, o_tlutObj != NULL); + GXInitTlutObj(o_tlutObj, (void*)((u8*)i_img + i_img->paletteOffset), + (GXTlutFmt)i_img->colorFormat, (u16)i_img->numColors); + GXInitTexObjCI(o_texObj, (void*)((u8*)i_img + i_img->imageOffset), i_img->width, i_img->height, + (GXCITexFmt)i_img->format, (GXTexWrapMode)i_img->wrapS, + (GXTexWrapMode)i_img->wrapT, i_img->mipmapCount > 1 ? GX_TRUE : GX_FALSE, tlut_name); } else { - GXInitTexObj(o_texObj, (void*)((u8*)_res + _res->imageOffset), _res->width, _res->height, - (GXTexFmt)_res->format, (GXTexWrapMode)_res->wrapS, (GXTexWrapMode)_res->wrapT, - _res->mipmapCount > 1); + GXInitTexObj(o_texObj, (void*)((u8*)i_img + i_img->imageOffset), i_img->width, i_img->height, + (GXTexFmt)i_img->format, (GXTexWrapMode)i_img->wrapS, (GXTexWrapMode)i_img->wrapT, + i_img->mipmapCount > 1 ? GX_TRUE : GX_FALSE); } - GXInitTexObjLOD(o_texObj, (GXTexFilter)_res->minFilter, (GXTexFilter)_res->magFilter, - (f32)_res->minLOD * 0.125f, (f32)_res->maxLOD * 0.125f, - (f32)_res->LODBias * 0.01f, (s32)_res->biasClamp, (s32)_res->doEdgeLOD, - (GXAnisotropy)_res->maxAnisotropy); + GXInitTexObjLOD(o_texObj, (GXTexFilter)i_img->minFilter, (GXTexFilter)i_img->magFilter, + (f32)i_img->minLOD * 0.125f, (f32)i_img->maxLOD * 0.125f, + (f32)i_img->LODBias * 0.01f, (s32)i_img->biasClamp, (s32)i_img->doEdgeLOD, + (GXAnisotropy)i_img->maxAnisotropy); - return _res->indexTexture; + return i_img->indexTexture; } /* 803DD8E4-803DD940 00A604 005C+00 2/2 5/5 5/5 .bss mClipper__14mDoLib_clipper */ @@ -66,37 +65,38 @@ void mDoLib_project(Vec* src, Vec* dst) { dst->z = 0.0f; return; } - Mtx44* projMtx = dComIfGd_getProjViewMtx(); + + { int unused; } + Vec multVec; - cMtx_multVec(*projMtx, src, &multVec); + cMtx_multVec(*dComIfGd_getProjViewMtx(), src, &multVec); - float calcFloat = (src->x * (*dComIfGd_getProjViewMtx())[3][0]) + - (src->y * (*dComIfGd_getProjViewMtx())[3][1]) + - (src->z * (*dComIfGd_getProjViewMtx())[3][2]) + - (*dComIfGd_getProjViewMtx())[3][3]; + f32 calcFloat = (src->x * (*dComIfGd_getProjViewMtx())[3][0]) + + (src->y * (*dComIfGd_getProjViewMtx())[3][1]) + + (src->z * (*dComIfGd_getProjViewMtx())[3][2]) + + (*dComIfGd_getProjViewMtx())[3][3]; if (multVec.z >= 0.0f) { multVec.z = 0.0f; } - float f3; if (calcFloat <= 0.0f) { if (calcFloat == 0.0f) { dst->z = multVec.z * 500000.0f; } else { dst->z = multVec.z * (0.5f / calcFloat); } - f3 = 500000.0f; + calcFloat = 500000.0f; } else { - f3 = 0.5f / calcFloat; - dst->z = multVec.z * f3; + calcFloat = 0.5f / calcFloat; + dst->z = multVec.z * calcFloat; } view_port_class* viewPort = dComIfGd_getViewport(); - float xOffset; - float yOffset; - float xSize; - float ySize; + f32 xOffset; + f32 yOffset; + f32 xSize; + f32 ySize; if (viewPort->x_orig != 0.0f) { - xOffset = (0.5f * ((2.0f * viewPort->x_orig) + viewPort->width)) - (FB_WIDTH / 2); + xOffset = (0.5f * ((2.0f * viewPort->x_orig) + viewPort->width)) - (int)(FB_WIDTH / 2); xSize = FB_WIDTH; } else { xOffset = viewPort->x_orig; @@ -104,15 +104,15 @@ void mDoLib_project(Vec* src, Vec* dst) { } if (viewPort->y_orig != 0.0f) { - yOffset = (0.5f * ((2.0f * viewPort->y_orig) + viewPort->height)) - (FB_HEIGHT / 2); + yOffset = (0.5f * ((2.0f * viewPort->y_orig) + viewPort->height)) - (int)(FB_HEIGHT / 2); ySize = FB_HEIGHT; } else { yOffset = viewPort->y_orig; ySize = viewPort->height; } - dst->x = ((0.5f + (multVec.x * f3)) * xSize) + xOffset; - dst->y = ((0.5f + (multVec.y * (-f3))) * ySize) + yOffset; + dst->x = ((0.5f + (multVec.x * calcFloat)) * xSize) + xOffset; + dst->y = ((0.5f + (multVec.y * (-calcFloat))) * ySize) + yOffset; } /* 800154EC-80015544 00FE2C 0058+00 0/0 2/2 9/9 .text mDoLib_pos2camera__FP3VecP3Vec */ @@ -125,3 +125,14 @@ void mDoLib_pos2camera(Vec* src, Vec* dst) { } cMtx_multVec(dComIfGd_getView()->viewMtx, src, dst); } + +static void dummy() { + J3DAlphaComp* alphaComp = NULL; + alphaComp->setAlphaCompInfo((J3DAlphaCompInfo){}); + J3DPEBlock* peBlock = NULL; + peBlock->getZMode()->setZModeInfo((J3DZModeInfo){}); + dComIfGd_getInvViewMtx(); + J3DMaterial* mat = NULL; + mat->getTevKColor(0); + mDoLib_clipper::clip(j3dSys.getViewMtx(), (Vec){}, 0.0f); +} |
