summaryrefslogtreecommitdiff
path: root/src/m_Do/m_Do_lib.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/m_Do/m_Do_lib.cpp')
-rw-r--r--src/m_Do/m_Do_lib.cpp83
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);
+}