d_a_npc work

daBaseNpc_c::setBckAnm and J3DAnmTransform* daBaseNpc_c

daBaseNpc_c::setBtpAnm

daBaseNpc_c::attnSttsOn

daBaseNpc_c::orderEvent

daBaseNpc_c::setEnvTevColor

daBaseNpc_c::setRoomNo

daBaseNpc_c::checkEndAnm attempt

CheckCreateHeap

daNpcF_addIdx

daNpcF_subIdx

daNpcF_incIdx

daNpcF_decIdx

daNpcF_ActorMngr_c::initialize()

daNpcF_ActorMngr_c::entry

cleanup daNpcF_ActorMngr_c::entry

daNpcF_ActorMngr_c::remove

daNpcF_ActorMngr_c::getActorP

daNpcF_MatAnm_c::calc attempt

daNpcF_SPCurve_c::initialize

minor fixes

daNpcF_Path_c::initialize

daNpcF_Path_c::setPathInfo

daNpcF_Path_c::chkPassed

daNpcF_Path_c::reverse

daNpcF_Path_c::setNextIdx

daNpcF_Path_c::getNextIdx

daNpcF_Path_c::getBeforeIdx

daNpcF_Path_c::getBeforePos

daNpcF_Path_c::getNextPos

daNpcT_MatAnm_c::initialize

daNpcT_MatAnm_c::calc

daNpcT_addIdx

daNpcT_subIdx

daNpcT_decIdx

daNpcT_Path_c::hermite

daNpcT_Path_c::initialize

daNpcT_Path_c::setPathInfo attempt

daNpcT_Path_c::setNextPathInfo

daNpcT_Path_c::reverse

daNpcT_Path_c::setNextIdx

daNpcT_Path_c::getDstPos attempt

daNpcT_DmgStagger_c::setParam

Add FLOAT_LABEL where possible

fopEn_enemy / fix e_wb

move jasper's jsystem work over

d_attention / d_demo / d_lib work

remove asm

clean up dolphin files / work on some rels (#212)

* d_a_alldie / d_a_tboxSw / d_a_tag_gstart / d_a_tag_hstop

* dolphin OS work / cleanup

* dolphin GX work / cleanup

* finish changing dolphin files to C

* more files into C

* match rest of MSL_C math functions

* more dolphin files converted to C

* remove asm

* d_bg_w work

* remove asm

* d_a_alink work / kytag14

initial changes to d_a_e_yc

checkpoint until virtual destructor issue is solved

daNpcF_Lookat_c::adjustMoveDisAngle

daBaseNpc_c::setMtx

daBaseNpc_moveBgActor_c::daBaseNpc_moveBgActor_c()

daNpcT_c::ctrlFaceMotion

daNpcT_c::ctrlMsgAnm attempt

daNpcT_c::initTalk

daNpcF_clearMessageTmpBit

daNpcF_getDistTableIdx

daNpcF_offTmpBit

daNpcF_onTmpBit

daNpcF_chkTmpBit

daNpcF_onEvtBit

daNpcF_chkEvtBit

daNpcF_c::getDistTableIdx

daNpcF_chkPointInArea

daNpcF_chkDoBtnEqSpeak

daNpcF_getPlayerInfoFromPlayerList attempt

daNpcF_pntVsLineSegmentLengthSquare2D

daNpcF_c::chkPointInArea

daNpcF_c::chkPointInArea

daNpcF_c::getAttentionPos

daNpcT_chkTmpBit

daNpcT_offTmpBit

daNpcT_onTmpBit

daNpcT_chkEvtBit

daNpcT_offEvtBit

daNpcT_onEvtBit

daNpcT_chkDoBtnIsSpeak

daNpcT_getDistTableIdx

daBaseNpc_acMngr_c::entry

daNpcF_c::initTalk

undo override
This commit is contained in:
Pheenoh
2022-10-15 15:32:34 -06:00
parent 84950e08b4
commit 85ad8b190d
880 changed files with 23183 additions and 38749 deletions
+115 -160
View File
@@ -7,7 +7,6 @@
#include "JSystem/JKernel/JKRHeap.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "JSystem/J3DGraphBase/J3DPacket.h"
//
@@ -58,21 +57,15 @@ extern "C" void _restgpr_28();
/* 80456400-80456404 004A00 0004+00 2/2 0/0 0/0 .sdata2 @781 */
SECTION_SDATA2 static f32 lit_781 = 1.0f;
/* 80456404-80456408 004A04 0004+00 1/1 0/0 0/0 .sdata2 @782 */
SECTION_SDATA2 static f32 lit_782 = 10000.0f;
/* 80456408-80456410 004A08 0008+00 2/2 0/0 0/0 .sdata2 @784 */
SECTION_SDATA2 static f64 lit_784 = 4503599627370496.0 /* cast u32 to float */;
void J3DDrawBuffer::calcZRatio() {
mZRatio = (mZFar - mZNear) / (f32)mBufSize;
}
void J3DDrawBuffer::initialize() {
mDrawType = 0;
mSortType = 0;
mDrawType = DRAW_HEAD;
mSortType = SORT_MAT;
mZNear = lit_781;
mZFar = lit_782;
mZFar = 10000.0f;
mpZMtx = NULL;
mpCallBackPacket = NULL;
mBufSize = 0x20;
@@ -123,7 +116,7 @@ asm void J3DDrawBuffer::frameInit() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DDrawBuffer::entryMatSort(J3DMatPacket* param_0) {
asm int J3DDrawBuffer::entryMatSort(J3DMatPacket* param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/entryMatSort__13J3DDrawBufferFP12J3DMatPacket.s"
}
@@ -134,199 +127,161 @@ asm void J3DDrawBuffer::entryMatSort(J3DMatPacket* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DDrawBuffer::entryMatAnmSort(J3DMatPacket* param_0) {
asm int J3DDrawBuffer::entryMatAnmSort(J3DMatPacket* param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/entryMatAnmSort__13J3DDrawBufferFP12J3DMatPacket.s"
}
#pragma pop
inline f32 J3DCalcZValue(register MtxP m, register Vec v) {
register f32 out;
// clang-format off
asm {
lfs f1, lit_781(r2)
psq_l f0, 8(v), 0, 0 /* qr0 */
lfs f2, 0x10(v)
psq_l f4, 32(m), 0, 0 /* qr0 */
psq_l out, 40(m), 0, 0 /* qr0 */
ps_merge00 f2, f2, f1
ps_mul f4, f0, f4
ps_madd out, f2, out, f4
ps_sum0 out, out, out, out
}
// clang-format on
return out;
}
/* 8032529C-803253B4 31FBDC 0118+00 1/0 0/0 0/0 .text entryZSort__13J3DDrawBufferFP12J3DMatPacket
*/
// J3DCalcZValue needs work with the asm registers
#ifdef NONMATCHING
int J3DDrawBuffer::entryZSort(J3DMatPacket* i_packet) {
i_packet->drawClear();
i_packet->getShapePacket()->drawClear();
Vec tmp;
tmp.x = mpZMtx[0][3];
tmp.y = mpZMtx[1][3];
tmp.z = mpZMtx[2][3];
f32 value = -J3DCalcZValue(j3dSys.getViewMtx(), tmp);
u32 uvar4;
if (mZNear + mZRatio < value) {
if (mZFar - mZRatio > value) {
uvar4 = value / mZRatio;
} else {
uvar4 = mBufSize - 1;
}
} else {
uvar4 = 0;
}
u32 idx = (mBufSize - 1) - uvar4;
i_packet->setNextPacket(mpBuf[idx]);
mpBuf[idx] = i_packet;
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DDrawBuffer::entryZSort(J3DMatPacket* param_0) {
asm int J3DDrawBuffer::entryZSort(J3DMatPacket* param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/entryZSort__13J3DDrawBufferFP12J3DMatPacket.s"
}
#pragma pop
#endif
/* 803253B4-80325404 31FCF4 0050+00 1/0 0/0 0/0 .text
* entryModelSort__13J3DDrawBufferFP12J3DMatPacket */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DDrawBuffer::entryModelSort(J3DMatPacket* param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/entryModelSort__13J3DDrawBufferFP12J3DMatPacket.s"
int J3DDrawBuffer::entryModelSort(J3DMatPacket* i_packet) {
i_packet->drawClear();
i_packet->getShapePacket()->drawClear();
if (mpCallBackPacket != NULL) {
mpCallBackPacket->addChildPacket(i_packet);
return 1;
}
return 0;
}
#pragma pop
/* 80325404-80325458 31FD44 0054+00 1/0 0/0 0/0 .text
* entryInvalidSort__13J3DDrawBufferFP12J3DMatPacket */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DDrawBuffer::entryInvalidSort(J3DMatPacket* param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/entryInvalidSort__13J3DDrawBufferFP12J3DMatPacket.s"
}
#pragma pop
int J3DDrawBuffer::entryInvalidSort(J3DMatPacket* i_packet) {
i_packet->drawClear();
i_packet->getShapePacket()->drawClear();
bool J3DDrawBuffer::entryNonSort(J3DMatPacket* pMat) {
pMat->clear();
pMat->mpShapePacket->clear();
if (mpCallBackPacket != NULL) {
mpCallBackPacket->addChildPacket(i_packet->getShapePacket());
return 1;
}
// inlined copy of entryImm, add to start of buf
pMat->mpNextSibling = mpBuf[0];
mpBuf[0] = pMat;
return true;
return 0;
}
bool J3DDrawBuffer::entryImm(J3DPacket* pPacket, u16 index) {
pPacket->mpNextSibling = mpBuf[index];
mpBuf[index] = pPacket;
return true;
int J3DDrawBuffer::entryNonSort(J3DMatPacket* i_packet) {
i_packet->drawClear();
i_packet->mpShapePacket->drawClear();
i_packet->setNextPacket(mpBuf[0]);
mpBuf[0] = i_packet;
return 1;
}
/* ############################################################################################## */
/* 803CEBE8-803CEBF4 -00001 000C+00 1/1 0/0 0/0 .data @992 */
SECTION_DATA static void* lit_992[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)entryMatSort__13J3DDrawBufferFP12J3DMatPacket,
};
int J3DDrawBuffer::entryImm(J3DPacket* i_packet, u16 index) {
i_packet->setNextPacket(mpBuf[index]);
mpBuf[index] = i_packet;
/* 803CEBF4-803CEC00 -00001 000C+00 0/1 0/0 0/0 .data @993 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_993[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)entryMatAnmSort__13J3DDrawBufferFP12J3DMatPacket,
};
#pragma pop
/* 803CEC00-803CEC0C -00001 000C+00 0/1 0/0 0/0 .data @994 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_994[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)entryZSort__13J3DDrawBufferFP12J3DMatPacket,
};
#pragma pop
/* 803CEC0C-803CEC18 -00001 000C+00 0/1 0/0 0/0 .data @995 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_995[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)entryModelSort__13J3DDrawBufferFP12J3DMatPacket,
};
#pragma pop
/* 803CEC18-803CEC24 -00001 000C+00 0/1 0/0 0/0 .data @996 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_996[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)entryInvalidSort__13J3DDrawBufferFP12J3DMatPacket,
};
#pragma pop
/* 803CEC24-803CEC30 -00001 000C+00 0/1 0/0 0/0 .data @997 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_997[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)entryNonSort__13J3DDrawBufferFP12J3DMatPacket,
};
#pragma pop
return 1;
}
/* 803CEC30-803CEC78 02BD50 0048+00 0/1 1/1 0/0 .data sortFuncTable__13J3DDrawBuffer */
SECTION_DATA u8 J3DDrawBuffer::sortFuncTable[72] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
SECTION_DATA sortFunc J3DDrawBuffer::sortFuncTable[6] = {
&J3DDrawBuffer::entryMatSort, &J3DDrawBuffer::entryMatAnmSort, &J3DDrawBuffer::entryZSort,
&J3DDrawBuffer::entryModelSort, &J3DDrawBuffer::entryInvalidSort, &J3DDrawBuffer::entryNonSort,
};
/* 803CEC78-803CEC84 -00001 000C+00 0/1 0/0 0/0 .data @998 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_998[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)drawHead__13J3DDrawBufferCFv,
};
#pragma pop
/* 803CEC84-803CEC90 -00001 000C+00 0/1 0/0 0/0 .data @999 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_999[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)drawTail__13J3DDrawBufferCFv,
};
#pragma pop
/* 803CEC90-803CECA8 02BDB0 0018+00 1/2 0/0 0/0 .data drawFuncTable__13J3DDrawBuffer */
SECTION_DATA u8 J3DDrawBuffer::drawFuncTable[24] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
SECTION_DATA drawFunc J3DDrawBuffer::drawFuncTable[2] = {
&J3DDrawBuffer::drawHead,
&J3DDrawBuffer::drawTail,
};
/* 803254AC-80325500 31FDEC 0054+00 0/0 2/2 0/0 .text draw__13J3DDrawBufferCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DDrawBuffer::draw() const {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/draw__13J3DDrawBufferCFv.s"
void J3DDrawBuffer::draw() const {
drawFunc func = drawFuncTable[mDrawType];
(this->*func)();
}
#pragma pop
/* 80325500-80325578 31FE40 0078+00 1/0 0/0 0/0 .text drawHead__13J3DDrawBufferCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DDrawBuffer::drawHead() const {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/drawHead__13J3DDrawBufferCFv.s"
void J3DDrawBuffer::drawHead() const {
u32 size = mBufSize;
J3DPacket** buf = mpBuf;
for (u32 i = 0; i < size; i++) {
for (J3DPacket* packet = buf[i]; packet != NULL; packet = packet->getNextPacket()) {
packet->draw();
}
}
}
#pragma pop
/* 80325578-803255F0 31FEB8 0078+00 1/0 0/0 0/0 .text drawTail__13J3DDrawBufferCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J3DDrawBuffer::drawTail() const {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/drawTail__13J3DDrawBufferCFv.s"
}
#pragma pop
void J3DDrawBuffer::drawTail() const {
int num = mBufSize - 1;
/* 803255F0-803256C4 31FF30 00D4+00 0/0 1/0 0/0 .text __sinit_J3DDrawBuffer_cpp */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void __sinit_J3DDrawBuffer_cpp() {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DDrawBuffer/__sinit_J3DDrawBuffer_cpp.s"
for (int i = num; i >= 0; i--) {
for (J3DPacket* packet = mpBuf[i]; packet != NULL; packet = packet->getNextPacket()) {
packet->draw();
}
}
}
#pragma pop
#pragma push
#pragma force_active on
REGISTER_CTORS(0x803255F0, __sinit_J3DDrawBuffer_cpp);
#pragma pop
/* ############################################################################################## */
/* 804515E0-804515E8 000AE0 0004+04 0/0 1/1 0/0 .sbss entryNum__13J3DDrawBuffer */
u8 J3DDrawBuffer::entryNum[4 + 4 /* padding */];
int J3DDrawBuffer::entryNum;
-6
View File
@@ -7,12 +7,6 @@
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct _GXTlutSize {};
//
// Forward References:
//
@@ -484,7 +484,6 @@ extern "C" extern char const* const J3DMatBlock__stringBase0;
//
SECTION_INIT void memcpy();
extern "C" void OSReport();
extern "C" void patchTexNoAndTexCoordScale__11J3DTevBlockFv();
extern "C" void patch__10J3DPEBlockFv();
extern "C" void patch__11J3DTevBlockFv();
@@ -577,7 +576,6 @@ extern "C" void patchTexNo_PtrToIdx__FUlRCUs();
extern "C" void __as__16J3DIndTexMtxInfoFRC16J3DIndTexMtxInfo();
extern "C" void __as__10J3DFogInfoFRC10J3DFogInfo();
extern "C" void __as__15J3DNBTScaleInfoFRC15J3DNBTScaleInfo();
extern "C" void DCStoreRange();
extern "C" void GDOverflowed();
extern "C" void __destroy_arr();
extern "C" void _savegpr_24();
+27 -62
View File
@@ -5,6 +5,7 @@
#include "JSystem/J3DGraphBase/J3DPacket.h"
#include "JSystem/J3DGraphAnimator/J3DModel.h"
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
#include "JSystem/J3DGraphBase/J3DMaterial.h"
#include "JSystem/J3DGraphBase/J3DShape.h"
#include "JSystem/J3DGraphBase/J3DShapeMtx.h"
@@ -18,14 +19,6 @@
#include "dolphin/types.h"
#include "global.h"
//
// Types:
//
struct J3DDrawBuffer {
static u8 sortFuncTable[72];
};
//
// Forward References:
//
@@ -97,8 +90,10 @@ J3DError J3DDisplayListObj::newDisplayList(u32 capacity) {
mpData[0] = new (0x20) char[mCapacity];
mpData[1] = new (0x20) char[mCapacity];
mSize = 0;
if (mpData[0] == NULL || mpData[1] == NULL)
return kJ3DError_Alloc;
return kJ3DError_Success;
}
@@ -107,8 +102,10 @@ J3DError J3DDisplayListObj::newSingleDisplayList(u32 capacity) {
mpData[0] = new (0x20) char[mCapacity];
mpData[1] = mpData[0];
mSize = 0;
if (mpData[0] == NULL)
return kJ3DError_Alloc;
return kJ3DError_Success;
}
@@ -116,8 +113,10 @@ J3DError J3DDisplayListObj::newSingleDisplayList(u32 capacity) {
J3DError J3DDisplayListObj::single_To_Double() {
if (mpData[0] == mpData[1]) {
mpData[1] = new (0x20) char[mCapacity];
if (mpData[1] == NULL)
return kJ3DError_Alloc;
memcpy(mpData[1], mpData[0], mCapacity);
DCStoreRange(mpData[1], mCapacity);
}
@@ -182,61 +181,28 @@ u32 J3DDisplayListObj::endPatch() {
}
/* 80312750-80312758 30D090 0008+00 3/0 16/0 10/0 .text entry__9J3DPacketFP13J3DDrawBuffer */
bool J3DPacket::entry(J3DDrawBuffer* param_0) {
return true;
int J3DPacket::entry(J3DDrawBuffer*) {
return 1;
}
void J3DPacket::addChildPacket(J3DPacket* pPacket) {
if (mpFirstChild == NULL) {
mpFirstChild = pPacket;
} else {
pPacket->mpNextSibling = mpFirstChild;
pPacket->mpNextPacket = mpFirstChild;
mpFirstChild = pPacket;
}
}
/* ############################################################################################## */
/* 803CD900-803CD920 02AA20 0020+00 1/1 0/0 0/0 .data sDifferedRegister */
SECTION_DATA static u32 sDifferedRegister[8] = {0x00000004, 0x00000001, 0x00000002, 0x01000000,
0x10000000, 0x20000000, 0x02000000, 0x08000000};
SECTION_DATA static u32 sDifferedRegister[8] = {
0x00000004, 0x00000001, 0x00000002, 0x01000000, 0x10000000, 0x20000000, 0x02000000, 0x08000000,
};
/* 803CD920-803CD940 02AA40 0020+00 1/1 0/0 0/0 .data sSizeOfDiffered */
SECTION_DATA static s32 sSizeOfDiffered[8] = {13, 13, 21, 120, 55, 15, 19, 45};
/* 803CD940-803CD954 02AA60 0014+00 2/2 0/0 0/0 .data __vt__14J3DShapePacket */
SECTION_DATA extern void* __vt__14J3DShapePacket[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)entry__9J3DPacketFP13J3DDrawBuffer,
(void*)draw__14J3DShapePacketFv,
(void*)__dt__14J3DShapePacketFv,
};
/* 803CD954-803CD968 02AA74 0014+00 2/2 0/0 0/0 .data __vt__12J3DMatPacket */
SECTION_DATA extern void* __vt__12J3DMatPacket[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)entry__12J3DMatPacketFP13J3DDrawBuffer,
(void*)draw__12J3DMatPacketFv,
(void*)__dt__12J3DMatPacketFv,
};
/* 803CD968-803CD97C 02AA88 0014+00 2/2 0/0 0/0 .data __vt__13J3DDrawPacket */
SECTION_DATA extern void* __vt__13J3DDrawPacket[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)entry__9J3DPacketFP13J3DDrawBuffer,
(void*)draw__13J3DDrawPacketFv,
(void*)__dt__13J3DDrawPacketFv,
};
/* 803CD97C-803CD990 02AA9C 0014+00 2/2 34/34 23/23 .data __vt__9J3DPacket */
SECTION_DATA extern void* __vt__9J3DPacket[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)entry__9J3DPacketFP13J3DDrawBuffer,
(void*)draw__9J3DPacketFv,
(void*)__dt__9J3DPacketFv,
SECTION_DATA static s32 sSizeOfDiffered[8] = {
13, 13, 21, 120, 55, 15, 19, 45,
};
/* 80312778-803127B0 30D0B8 0038+00 2/2 0/0 0/0 .text __ct__13J3DDrawPacketFv */
@@ -287,7 +253,7 @@ J3DMatPacket::J3DMatPacket() {
mpInitShapePacket = NULL;
mpShapePacket = NULL;
mpMaterial = NULL;
mSortFlags = -1;
mDiffFlag = -1;
mpTexture = NULL;
mpMaterialAnm = NULL;
}
@@ -299,7 +265,7 @@ void J3DMatPacket::addShapePacket(J3DShapePacket* pShape) {
if (mpShapePacket == NULL) {
mpShapePacket = pShape;
} else {
pShape->mpNextSibling = mpShapePacket;
pShape->mpNextPacket = mpShapePacket;
mpShapePacket = pShape;
}
}
@@ -316,7 +282,7 @@ void J3DMatPacket::endDiff() {
bool J3DMatPacket::isSame(J3DMatPacket* pOther) const {
bool isSame = false;
if (mSortFlags == pOther->mSortFlags && !(mSortFlags >> 0x1F)) {
if (mDiffFlag == pOther->mDiffFlag && !(mDiffFlag >> 0x1F)) {
isSame = true;
}
return isSame;
@@ -430,6 +396,7 @@ asm void J3DShapePacket::prepareDraw() const {
void J3DShapePacket::draw() {
if (!checkFlag(J3DShpFlag_Hidden) && mpShape != NULL) {
prepareDraw();
if (mpTexMtx != NULL) {
J3DMaterial* material = mpShape->getMaterial();
J3DDifferedTexMtx::sTexGenBlock = material->getTexGenBlock();
@@ -437,9 +404,11 @@ void J3DShapePacket::draw() {
} else {
J3DDifferedTexMtx::sTexGenBlock = NULL;
}
if (mpDisplayListObj != NULL) {
mpDisplayListObj->callDL();
}
mpShape->draw();
}
}
@@ -448,6 +417,7 @@ void J3DShapePacket::draw() {
void J3DShapePacket::drawFast() {
if (!checkFlag(J3DShpFlag_Hidden) && mpShape != NULL) {
prepareDraw();
if (mpTexMtx != NULL) {
J3DMaterial* material = mpShape->getMaterial();
J3DDifferedTexMtx::sTexGenBlock = material->getTexGenBlock();
@@ -455,21 +425,16 @@ void J3DShapePacket::drawFast() {
} else {
J3DDifferedTexMtx::sTexGenBlock = NULL;
}
mpShape->drawFast();
}
}
/* 80313044-80313048 30D984 0004+00 1/0 0/0 0/0 .text draw__9J3DPacketFv */
void J3DPacket::draw() {
/* empty function */
}
void J3DPacket::draw() {}
/* 80313048-803130A8 30D988 0060+00 1/0 0/0 0/0 .text entry__12J3DMatPacketFP13J3DDrawBuffer */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool J3DMatPacket::entry(J3DDrawBuffer* param_0) {
nofralloc
#include "asm/JSystem/J3DGraphBase/J3DPacket/entry__12J3DMatPacketFP13J3DDrawBuffer.s"
int J3DMatPacket::entry(J3DDrawBuffer* i_buffer) {
sortFunc func = J3DDrawBuffer::sortFuncTable[i_buffer->mSortType];
return (i_buffer->*func)(this);
}
#pragma pop
+2 -4
View File
@@ -26,7 +26,7 @@ u32 J3DShapeDraw::countVertex(u32 stride) {
u32 count = 0;
u32 dlStart = (u32)getDisplayList();
for (u8* dl = (u8*)dlStart; ((u32)dl - dlStart) < getDisplayListSize();) {
if (*dl != 0xA0 && *dl != 0x98)
if (*dl != GX_TRIANGLEFAN && *dl != GX_TRIANGLESTRIP)
break;
u16 vtxNum = *((u16*)(dl + 1));
count += vtxNum;
@@ -50,7 +50,7 @@ void J3DShapeDraw::addTexMtxIndexInDL(u32 stride, u32 attrOffs, u32 valueBase) {
u8 h = *oldDL;
*newDL++ = h;
if (h != 0xA0 && h != 0x98)
if (h != GX_TRIANGLEFAN && h != GX_TRIANGLESTRIP)
break;
// Copy count
@@ -82,7 +82,6 @@ void J3DShapeDraw::addTexMtxIndexInDL(u32 stride, u32 attrOffs, u32 valueBase) {
DCStoreRange(newDLStart, mDisplayListSize);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -91,7 +90,6 @@ asm void J3DShapeDraw::addTexMtxIndexInDL(u32 param_0, u32 param_1, u32 param_2)
#include "asm/JSystem/J3DGraphBase/J3DShapeDraw/addTexMtxIndexInDL__12J3DShapeDrawFUlUlUl.s"
}
#pragma pop
#endif
/* 80314ABC-80314AD4 30F3FC 0018+00 0/0 1/1 0/0 .text __ct__12J3DShapeDrawFPCUcUl */
+2 -2
View File
@@ -719,7 +719,7 @@ u32 J3DShapeMtxMultiConcatView::getUseMtxNum() const {
/* 8031469C-803146AC 30EFDC 0010+00 1/0 0/0 0/0 .text
* getUseMtxIndex__26J3DShapeMtxMultiConcatViewCFUs */
u32 J3DShapeMtxMultiConcatView::getUseMtxIndex(u16 no) const {
return mUseMtxIndex[no];
return mUseMtxIndexTable[no];
}
/* 803146AC-803146B0 30EFEC 0004+00 1/0 0/0 0/0 .text
@@ -752,7 +752,7 @@ u32 J3DShapeMtxMulti::getUseMtxNum() const {
/* 80314720-80314730 30F060 0010+00 1/0 0/0 0/0 .text getUseMtxIndex__16J3DShapeMtxMultiCFUs */
u32 J3DShapeMtxMulti::getUseMtxIndex(u16 no) const {
return mUseMtxIndex[no];
return mUseMtxIndexTable[no];
}
/* 80314730-8031478C 30F070 005C+00 1/0 0/0 0/0 .text __dt__21J3DShapeMtxConcatViewFv */
+4 -4
View File
@@ -198,7 +198,7 @@ void J3DSys::drawInit() {
u8 i;
for (i = 0; i < 3; i++)
GXSetIndTexMtx((GXIndTexMtxID)(GX_ITM_0 + i), indTexMtx, 1);
GXSetIndTexMtx((GXIndTexMtxID)(GX_ITM_0 + i), (f32*)indTexMtx, 1);
GXSetChanMatColor(GX_COLOR0A0, j3dDefaultColInfo);
GXSetChanMatColor(GX_COLOR1A1, j3dDefaultColInfo);
@@ -380,9 +380,9 @@ void J3DSys::reinitIndStages() {
GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1);
GXSetIndTexCoordScale(GX_INDTEXSTAGE2, GX_ITS_1, GX_ITS_1);
GXSetIndTexCoordScale(GX_INDTEXSTAGE3, GX_ITS_1, GX_ITS_1);
GXSetIndTexMtx(GX_ITM_0, IndMtx, 1);
GXSetIndTexMtx(GX_ITM_1, IndMtx, 1);
GXSetIndTexMtx(GX_ITM_2, IndMtx, 1);
GXSetIndTexMtx(GX_ITM_0, (f32*)IndMtx, 1);
GXSetIndTexMtx(GX_ITM_1, (f32*)IndMtx, 1);
GXSetIndTexMtx(GX_ITM_2, (f32*)IndMtx, 1);
}
/* 80310E3C-80310ED0 30B77C 0094+00 1/1 0/0 0/0 .text reinitPixelProc__6J3DSysFv */
+3 -3
View File
@@ -97,7 +97,7 @@ void J3DVertexBuffer::setArray() const {
s32 J3DVertexBuffer::copyLocalVtxPosArray(u32 flag) {
if (flag & 1) {
for (int i = 0; i < 2; i++) {
mVtxPosArray[i] = new (0x20) VertexPosition[mVtxData->getVtxNum()];
mVtxPosArray[i] = new (0x20) Vec[mVtxData->getVtxNum()];
if (mVtxPosArray[i] == NULL) {
return kJ3DError_Alloc;
@@ -109,7 +109,7 @@ s32 J3DVertexBuffer::copyLocalVtxPosArray(u32 flag) {
mVtxPosArray[0] = mVtxData->getVtxPosArray();
if (mVtxPosArray[1] == NULL) {
mVtxPosArray[1] = new (0x20) VertexPosition[mVtxData->getVtxNum()];
mVtxPosArray[1] = new (0x20) Vec[mVtxData->getVtxNum()];
if (mVtxPosArray[1] == NULL) {
return kJ3DError_Alloc;
}
@@ -209,7 +209,7 @@ s32 J3DVertexBuffer::allocTransformedVtxPosArray() {
for (int i = 0; i < 2; i++) {
if (i == 0 || mTransformedVtxPosArray[i] == NULL) {
mTransformedVtxPosArray[i] = new (0x20) VertexPosition[mVtxData->getVtxNum()];
mTransformedVtxPosArray[i] = new (0x20) Vec[mVtxData->getVtxNum()];
if (mTransformedVtxPosArray[i] == NULL)
return kJ3DError_Alloc;
}