summaryrefslogtreecommitdiff
path: root/src/m_Do/m_Do_ext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/m_Do/m_Do_ext.cpp')
-rw-r--r--src/m_Do/m_Do_ext.cpp162
1 files changed, 119 insertions, 43 deletions
diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp
index 5288636ec2..3c28dc8e07 100644
--- a/src/m_Do/m_Do_ext.cpp
+++ b/src/m_Do/m_Do_ext.cpp
@@ -3,23 +3,26 @@
* Model, Animation, and Heap Functions
*/
-#include "m_Do/m_Do_ext.h"
-#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
+#include "d/dolzel.h"
+
+#include <dolphin/gf/GFPixel.h>
+#include <dolphin/gx.h>
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
+#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
#include "JSystem/J3DGraphBase/J3DMaterial.h"
+#include "JSystem/J3DGraphLoader/J3DMaterialFactory.h"
#include "JSystem/JKernel/JKRAssertHeap.h"
#include "JSystem/JKernel/JKRExpHeap.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
-#include "JSystem/JUtility/JUTResFont.h"
#include "JSystem/JUtility/JUTCacheFont.h"
-#include "stdio.h"
+#include "JSystem/JUtility/JUTResFont.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/d_com_inf_game.h"
#include "dol2asm.h"
-#include <dolphin/gx.h>
-#include <dolphin/gf/GFPixel.h>
#include "global.h"
+#include "m_Do/m_Do_ext.h"
#include "m_Do/m_Do_mtx.h"
+#include "stdio.h"
/* 8000D0AC-8000D320 0079EC 0274+00 5/5 0/0 0/0 .text
* mDoExt_setJ3DData__FPA4_fPC16J3DTransformInfoUs */
@@ -305,6 +308,12 @@ void mDoExt_modelTexturePatch(J3DModelData* i_modelData) {
}
}
+static void dummy1() {
+ ((J3DTevBlock*)NULL)->patch();
+ ((J3DColorBlock*)NULL)->patchLight();
+ ((J3DPEBlock*)NULL)->patch();
+}
+
/* 8000DBD8-8000DC2C 008518 0054+00 3/3 0/0 0/0 .text mDoExt_modelDiff__FP8J3DModel */
static void mDoExt_modelDiff(J3DModel* i_model) {
i_model->calcMaterial();
@@ -391,6 +400,92 @@ void mDoExt_brkAnmRemove(J3DModelData* i_modelData) {
}
}
+// this needs a lot of work still
+static void dummy2() {
+ J3DGXColor gxColor;
+ J3DColorChan colorChan;
+ J3DTexCoord texCoord;
+ J3DGXColorS10 gxColorS10;
+ J3DIndTevStage indTevStage;
+ J3DTevOrder tevOrder;
+ J3DTevSwapModeTable tevSwapModeTable;
+ J3DIndTexOrder indTexOrder;
+ J3DIndTexMtx indTexMtx;
+ J3DIndTexCoordScale indTexCoordScale;
+
+ J3DColorBlock* colorBlock = NULL;
+ colorBlock->setColorChanNum((const u8*)NULL);
+ colorBlock->setMatColor(0, gxColor);
+ colorBlock->setColorChan(0, colorChan);
+ colorBlock->setAmbColor(0, gxColor);
+
+ J3DTexGenBlock* texGenBlock = NULL;
+ texGenBlock->setTexGenNum((const u32*)NULL);
+ texGenBlock->setTexCoord(0, NULL);
+
+ J3DTevBlock* tevBlock = NULL;
+ tevBlock->setTevStageNum((const u8*)NULL);
+ tevBlock->setTevColor(0, J3DGXColorS10());
+ tevBlock->setTevKColor(0, gxColor);
+ tevBlock->setTevOrder(0, tevOrder);
+ tevBlock->setTevKColorSel(0, (const u8*)NULL);
+ tevBlock->setTevKAlphaSel(0, (const u8*)NULL);
+ tevBlock->setTevSwapModeTable(0, tevSwapModeTable);
+ tevBlock->setTexNo(0, (const u16*)NULL);
+ J3DTevStage tevStage;
+ tevBlock->setTevStage(0, tevStage);
+ tevBlock->setIndTevStage(0, indTevStage);
+
+ J3DIndBlock* indBlock = NULL;
+ indBlock->setIndTexStageNum(0);
+ indBlock->setIndTexMtx(0, indTexMtx);
+ indBlock->setIndTexCoordScale(0, indTexCoordScale);
+ indTexCoordScale.~J3DIndTexCoordScale();
+
+ J3DPEBlock* peBlock = NULL;
+ J3DAlphaComp alphaComp;
+ peBlock->setAlphaComp(alphaComp);
+ J3DBlend blend;
+ peBlock->setBlend(blend);
+ J3DZMode zMode;
+ peBlock->setZMode(zMode);
+ u8 compLoc;
+ peBlock->setZCompLoc(&compLoc);
+
+ colorBlock->getColorChanNum();
+ colorBlock->getMatColor(0);
+ colorBlock->getColorChan(0);
+ colorBlock->getAmbColor(0);
+
+ texGenBlock->getTexGenNum();
+ texGenBlock->getTexCoord(0);
+ texGenBlock->getTexMtx(0);
+
+ tevBlock->getTevStageNum();
+ tevBlock->getTevColor(0);
+ tevBlock->getTevKColor(0);
+ tevBlock->getTevOrder(0);
+ tevBlock->getTevKColorSel(0);
+ tevBlock->getTevKAlphaSel(0);
+ tevBlock->getTevSwapModeTable(0);
+ tevBlock->getTexNo(0);
+ tevBlock->getTevStage(0);
+ tevBlock->getIndTevStage(0);
+
+ indBlock = NULL;
+ indBlock->getIndTexStageNum();
+ indBlock->getIndTexOrder(0);
+ indBlock->getIndTexMtx(0);
+ indBlock->getIndTexCoordScale(0);
+
+ peBlock = NULL;
+ peBlock->getFog();
+ peBlock->getAlphaComp();
+ peBlock->getBlend();
+ peBlock->getZMode();
+ peBlock->getZCompLoc();
+}
+
/* 8000E53C-8000E5F8 008E7C 00BC+00 0/0 0/0 19/19 .text create__21mDoExt_invisibleModelFP8J3DModelUc */
int mDoExt_invisibleModel::create(J3DModel* i_model, u8 param_1) {
J3DModelData* model_data = i_model->getModelData();
@@ -491,19 +586,15 @@ void mDoExt_setupShareTexture(J3DModelData* i_modelData, J3DModelData* i_shareMo
}
}
-/* ############################################################################################## */
-/* 803740FC-803740FC 00075C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-// MWCC ignores mapping of some japanese characters using the
-// byte 0x5C (ASCII '\'). This is why this string is hex-encoded.
+static const char* dummy3() {
+ // MWCC ignores mapping of some japanese characters using the
+ // byte 0x5C (ASCII '\'). This is why this string is hex-encoded.
-// "ソリッドヒープちゃうがな!\n"
-// "This isn't a solid heap! \n"
-SECTION_DEAD static char const* const stringBase_803740FC =
- "\x83\x5C\x83\x8A\x83\x62\x83\x68\x83\x71\x81\x5B\x83\x76\x82\xBF\x82\xE1\x82\xA4\x82\xAA\x82"
- "\xC8\x81\x49\x0A";
-#pragma pop
+ // "ソリッドヒープちゃうがな!\n"
+ // "This isn't a solid heap! \n"
+ return "\x83\x5C\x83\x8A\x83\x62\x83\x68\x83\x71\x81\x5B\x83\x76\x82\xBF\x82\xE1\x82\xA4\x82"
+ "\xAA\x82\xC8\x81\x49\x0A";
+}
/* 8000EA80-8000ECC0 0093C0 0240+00 0/0 0/0 6/6 .text mDoExt_setupStageTexture__FP12J3DModelData
*/
@@ -1387,7 +1478,7 @@ int mDoExt_McaMorfSO::create(J3DModelData* i_modelData, mDoExt_McaMorfCallBack1_
// NONMATCHING regalloc
void mDoExt_McaMorfSO::calc() {
if (mpModel != NULL) {
- u16 jnt_no = J3DMtxCalc::getJoint()->getJntNo();
+ u16 jnt_no = getJoint()->getJntNo();
j3dSys.setCurrentMtxCalc(this);
J3DTransformInfo trans;
@@ -1494,7 +1585,7 @@ void mDoExt_McaMorfSO::setAnm(J3DAnmTransform* i_anm, int i_attr, f32 i_morf, f3
setPlayMode(i_attr);
setPlaySpeed(i_rate);
-
+
if (i_rate >= 0.0f) {
setFrame(i_start);
} else {
@@ -1669,7 +1760,7 @@ mDoExt_McaMorf2::~mDoExt_McaMorf2() {
*var_r29 = *sp2C;
JMAEulerToQuat(var_r29->mRotation.x, var_r29->mRotation.y, var_r29->mRotation.z, var_r26);
-
+
var_r29++;
var_r26++;
}
@@ -1745,7 +1836,7 @@ void mDoExt_McaMorf2::calc() {
if (mpCallback1 != NULL) {
mpCallback1->execute(jnt_no, &spF0[0]);
}
-
+
JMAEulerToQuat(spF0[0].mRotation.x, spF0[0].mRotation.y, spF0[0].mRotation.z,
var_r27);
J3DMtxCalcCalcTransformMaya::calcTransform(spF0[0]);
@@ -1886,7 +1977,7 @@ void mDoExt_McaMorf2::setAnm(J3DAnmTransform* param_0, J3DAnmTransform* param_1,
setPlayMode(i_attr);
setPlaySpeed(i_speed);
-
+
if (i_speed >= 0.0f) {
setFrame(i_start);
} else {
@@ -2044,7 +2135,6 @@ void mDoExt_invJntPacket::draw() {
}
/* 800123D0-800125DC 00CD10 020C+00 2/2 0/0 0/0 .text init__15mDoExt_3Dline_cFUsii */
-// NONMATCHING - regalloc, probably some types are wrong
int mDoExt_3Dline_c::init(u16 param_0, int param_1, BOOL param_2) {
field_0x0 = new cXyz[param_0];
if (field_0x0 == NULL) {
@@ -2052,7 +2142,7 @@ int mDoExt_3Dline_c::init(u16 param_0, int param_1, BOOL param_2) {
}
if (param_1 != 0) {
- field_0x4 = new f32[param_1];
+ field_0x4 = new f32[param_0];
if (field_0x4 == NULL) {
return 0;
}
@@ -2072,23 +2162,23 @@ int mDoExt_3Dline_c::init(u16 param_0, int param_1, BOOL param_2) {
return 0;
}
- field_0x10 = new mDoExt_3Dline_field_0x10_c[param_0];
+ field_0x10 = new mDoExt_3Dline_field_0x10_c[sp20];
if (field_0x10 == NULL) {
return 0;
}
- field_0x14 = new mDoExt_3Dline_field_0x10_c[param_0];
+ field_0x14 = new mDoExt_3Dline_field_0x10_c[sp20];
if (field_0x14 == NULL) {
return 0;
}
if (param_2) {
- field_0x18 = new mDoExt_3Dline_field_0x18_c[param_0];
+ field_0x18 = new mDoExt_3Dline_field_0x18_c[sp20];
if (field_0x18 == NULL) {
return 0;
}
- field_0x1c = new mDoExt_3Dline_field_0x18_c[param_0];
+ field_0x1c = new mDoExt_3Dline_field_0x18_c[sp20];
if (field_0x1c == NULL) {
return 0;
}
@@ -3107,17 +3197,3 @@ OSThread* mDoExt_GetCurrentRunningThread() {
return thread;
}
-
-/* 80014E20-80014E7C 00F760 005C+00 1/0 2/2 0/0 .text __dt__26mDoExt_3DlineMatSortPacketFv */
-mDoExt_3DlineMatSortPacket::~mDoExt_3DlineMatSortPacket() {
-}
-
-/* 80014E7C-80014E84 00F7BC 0008+00 1/0 0/0 0/0 .text getMaterialID__19mDoExt_3DlineMat1_cFv */
-int mDoExt_3DlineMat1_c::getMaterialID() {
- return 1;
-}
-
-/* 80014E84-80014E8C 00F7C4 0008+00 1/0 0/0 0/0 .text getMaterialID__19mDoExt_3DlineMat0_cFv */
-int mDoExt_3DlineMat0_c::getMaterialID() {
- return 0;
-}