mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-21 14:07:29 -04:00
d_a_obj_adnno, d_a_obj_dmgroom, d_a_obj_dragonhead, d_a_obj_eayogn, d_a_obj_gong work
This commit is contained in:
+3
-3
@@ -1511,10 +1511,10 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_obj_buoyflag"),
|
||||
ActorRel(NonMatching, "d_a_obj_buoyrace"),
|
||||
ActorRel(NonMatching, "d_a_obj_correct"),
|
||||
ActorRel(NonMatching, "d_a_obj_dmgroom"),
|
||||
ActorRel(NonMatching, "d_a_obj_dragonhead"),
|
||||
ActorRel(Matching, "d_a_obj_dmgroom", extra_cflags=['-pragma "nosyminline on"']),
|
||||
ActorRel(NonMatching, "d_a_obj_dragonhead", extra_cflags=['-pragma "nosyminline on"']),
|
||||
ActorRel(NonMatching, "d_a_obj_drift"),
|
||||
ActorRel(NonMatching, "d_a_obj_eayogn"),
|
||||
ActorRel(Matching, "d_a_obj_eayogn"),
|
||||
ActorRel(NonMatching, "d_a_obj_ebomzo"),
|
||||
ActorRel(NonMatching, "d_a_obj_ekskz"),
|
||||
ActorRel(NonMatching, "d_a_obj_eskban"),
|
||||
|
||||
@@ -14,6 +14,7 @@ class JUTNameTab;
|
||||
enum J3DMaterialCopyFlag {
|
||||
J3DMatCopyFlag_Material = 0x01,
|
||||
J3DMatCopyFlag_Texture = 0x02,
|
||||
J3DMatCopyFlag_All = 0x03,
|
||||
};
|
||||
|
||||
class J3DModelData {
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
|
||||
// Perhaps move to a new J3DEnum.h?
|
||||
enum J3DError {
|
||||
kJ3DError_Success = 0,
|
||||
kJ3DError_Alloc = 4,
|
||||
J3DErrType_Success = 0,
|
||||
J3DErrType_OutOfMemory = 4,
|
||||
};
|
||||
|
||||
enum J3DSysDrawBuffer {
|
||||
|
||||
@@ -45,7 +45,7 @@ public:
|
||||
return GetTriPla(polyInfo.GetBgIndex(), polyInfo.GetPolyIndex());
|
||||
}
|
||||
bool Regist(cBgW*, unsigned int, void*);
|
||||
int Release(cBgW*);
|
||||
bool Release(cBgW*);
|
||||
bool LineCross(cBgS_LinChk*);
|
||||
f32 GroundCross(cBgS_GndChk*);
|
||||
static void* ConvDzb(void*);
|
||||
|
||||
@@ -73,7 +73,7 @@ static inline u32 getMdlDataFlag_MtxLoadType(u32 flag) {
|
||||
|
||||
/* 802ED6C4-802ED8D8 .text entryModelData__8J3DModelFP12J3DModelDataUlUl */
|
||||
s32 J3DModel::entryModelData(J3DModelData* pModelData, u32 modelFlag, u32 mtxBufferFlag) {
|
||||
s32 ret = kJ3DError_Success;
|
||||
s32 ret = J3DErrType_Success;
|
||||
|
||||
mModelData = pModelData;
|
||||
mMtxBufferFlag = mtxBufferFlag;
|
||||
@@ -90,16 +90,16 @@ s32 J3DModel::entryModelData(J3DModelData* pModelData, u32 modelFlag, u32 mtxBuf
|
||||
}
|
||||
|
||||
if (mpScaleFlagArr == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
|
||||
if (pModelData->getWEvlpMtxNum() != 0 && mpEvlpScaleFlagArr == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
|
||||
if (mpNodeMtx == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
|
||||
if (pModelData->getWEvlpMtxNum() != 0 && mpWeightEnvMtx == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
|
||||
if (pModelData->checkFlag(J3DMdlDataFlag_NoAnimation)) {
|
||||
setNoUseDrawMtx();
|
||||
@@ -118,28 +118,28 @@ s32 J3DModel::entryModelData(J3DModelData* pModelData, u32 modelFlag, u32 mtxBuf
|
||||
}
|
||||
}
|
||||
|
||||
if (ret != kJ3DError_Success)
|
||||
if (ret != J3DErrType_Success)
|
||||
return ret;
|
||||
|
||||
ret = createShapePacket(pModelData);
|
||||
if (ret != kJ3DError_Success)
|
||||
if (ret != J3DErrType_Success)
|
||||
return ret;
|
||||
|
||||
ret = createMatPacket(pModelData, modelFlag);
|
||||
if (ret != kJ3DError_Success)
|
||||
if (ret != J3DErrType_Success)
|
||||
return ret;
|
||||
|
||||
if (pModelData->checkFlag(J3DMdlDataFlag_ConcatView)) {
|
||||
mModelData->setBumpFlag(0);
|
||||
} else {
|
||||
ret = createBumpMtxArray(pModelData, mtxBufferFlag);
|
||||
if (ret != kJ3DError_Success)
|
||||
if (ret != J3DErrType_Success)
|
||||
return ret;
|
||||
}
|
||||
|
||||
mVertexBuffer.setVertexData(&pModelData->getVertexData());
|
||||
prepareShapePackets();
|
||||
ret = kJ3DError_Success;
|
||||
ret = J3DErrType_Success;
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -152,7 +152,7 @@ s32 J3DModel::setNoUseDrawMtx() {
|
||||
mpNrmMtxBuf[0] = &sNoUseNrmMtxPtr;
|
||||
mpBumpMtxArr[1] = NULL;
|
||||
mpBumpMtxArr[0] = NULL;
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802ED904-802EDA14 .text createSingleDrawMtx__8J3DModelFP12J3DModelData */
|
||||
@@ -165,9 +165,9 @@ s32 J3DModel::createSingleDrawMtx(J3DModelData* pModelData) {
|
||||
mpBumpMtxArr[1] = NULL;
|
||||
|
||||
if (mpDrawMtxBuf[0] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
if (mpNrmMtxBuf[0] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
|
||||
if (pModelData->getDrawMtxNum() != 0) {
|
||||
mpDrawMtxBuf[0][0] = new (0x20) Mtx[pModelData->getDrawMtxNum()];
|
||||
@@ -177,9 +177,9 @@ s32 J3DModel::createSingleDrawMtx(J3DModelData* pModelData) {
|
||||
}
|
||||
|
||||
if (pModelData->getDrawMtxNum() != 0 && mpDrawMtxBuf[0][0] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802EDA14-802EDBC0 .text createDoubleDrawMtx__8J3DModelFP12J3DModelDataUl */
|
||||
@@ -195,9 +195,9 @@ s32 J3DModel::createDoubleDrawMtx(J3DModelData* pModelData, u32 num) {
|
||||
if (num != 0) {
|
||||
for (u32 i = 0; i < 2; i++) {
|
||||
if (mpDrawMtxBuf[i] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
if (mpNrmMtxBuf[i] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -214,14 +214,14 @@ s32 J3DModel::createDoubleDrawMtx(J3DModelData* pModelData, u32 num) {
|
||||
for (u32 j = 0; j < num; j++) {
|
||||
if (pModelData->getDrawMtxNum() != 0) {
|
||||
if (mpDrawMtxBuf[i][j] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
if (mpNrmMtxBuf[i][j] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802EDBC0-802EDC8C .text createShapePacket__8J3DModelFP12J3DModelData */
|
||||
@@ -231,7 +231,7 @@ s32 J3DModel::createShapePacket(J3DModelData* pModelData) {
|
||||
|
||||
mpShapePacket = new J3DShapePacket[shapeNum];
|
||||
if (mpShapePacket == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
|
||||
for (int i = 0; i < pModelData->getShapeNum(); i++) {
|
||||
J3DShape* shapeNode = pModelData->getShapeNodePointer(i);
|
||||
@@ -240,7 +240,7 @@ s32 J3DModel::createShapePacket(J3DModelData* pModelData) {
|
||||
}
|
||||
}
|
||||
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802EDC8C-802EDF60 .text createMatPacket__8J3DModelFP12J3DModelDataUl */
|
||||
@@ -249,7 +249,7 @@ s32 J3DModel::createMatPacket(J3DModelData* pModelData, u32 flag) {
|
||||
mpMatPacket = new J3DMatPacket[pModelData->getMaterialNum()];
|
||||
|
||||
if (mpMatPacket == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
}
|
||||
|
||||
s32 ret;
|
||||
@@ -275,7 +275,7 @@ s32 J3DModel::createMatPacket(J3DModelData* pModelData, u32 flag) {
|
||||
} else {
|
||||
J3DDisplayListObj* sharedDL = pModelData->getMaterialNodePointer(i)->getSharedDisplayListObj();
|
||||
ret = sharedDL->single_To_Double();
|
||||
if (ret != kJ3DError_Success)
|
||||
if (ret != J3DErrType_Success)
|
||||
return ret;
|
||||
|
||||
mpMatPacket[i].mpDisplayListObj = sharedDL;
|
||||
@@ -283,18 +283,18 @@ s32 J3DModel::createMatPacket(J3DModelData* pModelData, u32 flag) {
|
||||
} else if (!!(flag & 0x20000)) {
|
||||
if (!!(flag & 0x40000)) {
|
||||
ret = pModelData->getMaterialNodePointer(i)->newSingleSharedDisplayList(pModelData->getMaterialNodePointer(i)->countDLSize());
|
||||
if (ret != kJ3DError_Success)
|
||||
if (ret != J3DErrType_Success)
|
||||
return ret;
|
||||
|
||||
mpMatPacket[i].mpDisplayListObj = pModelData->getMaterialNodePointer(i)->getSharedDisplayListObj();
|
||||
} else {
|
||||
ret = pModelData->getMaterialNodePointer(i)->newSharedDisplayList(pModelData->getMaterialNodePointer(i)->countDLSize());
|
||||
if (ret != kJ3DError_Success)
|
||||
if (ret != J3DErrType_Success)
|
||||
return ret;
|
||||
|
||||
J3DDisplayListObj* sharedDL = pModelData->getMaterialNodePointer(i)->getSharedDisplayListObj();
|
||||
ret = sharedDL->single_To_Double();
|
||||
if (ret != kJ3DError_Success)
|
||||
if (ret != J3DErrType_Success)
|
||||
return ret;
|
||||
|
||||
mpMatPacket[i].mpDisplayListObj = sharedDL;
|
||||
@@ -303,19 +303,19 @@ s32 J3DModel::createMatPacket(J3DModelData* pModelData, u32 flag) {
|
||||
if (!!(flag & 0x40000)) {
|
||||
u32 size = pModelData->getMaterialNodePointer(i)->countDLSize();
|
||||
ret = mpMatPacket[i].newSingleDisplayList(size);
|
||||
if (ret != kJ3DError_Success)
|
||||
if (ret != J3DErrType_Success)
|
||||
return ret;
|
||||
} else {
|
||||
u32 size = pModelData->getMaterialNodePointer(i)->countDLSize();
|
||||
ret = mpMatPacket[i].newDisplayList(size);
|
||||
if (ret != kJ3DError_Success)
|
||||
if (ret != J3DErrType_Success)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802EDF60-802EE1D4 .text createBumpMtxArray__8J3DModelFP12J3DModelDataUl */
|
||||
@@ -333,7 +333,7 @@ s32 J3DModel::createBumpMtxArray(J3DModelData* modelData, u32 bufferNum) {
|
||||
for (s32 i = 0; i < 2; i++) {
|
||||
mpBumpMtxArr[i] = new Mtx33**[bumpMtxNum];
|
||||
if (mpBumpMtxArr[i] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -344,7 +344,7 @@ s32 J3DModel::createBumpMtxArray(J3DModelData* modelData, u32 bufferNum) {
|
||||
if (pMaterial->getNBTScale()->mbHasScale == 1) {
|
||||
mpBumpMtxArr[i][bumpMtxOffset] = new Mtx33*[bufferNum];
|
||||
if (mpBumpMtxArr[i][bumpMtxOffset] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
pMaterial->getShape()->setBumpMtxOffset(bumpMtxOffset);
|
||||
bumpMtxOffset++;
|
||||
}
|
||||
@@ -359,7 +359,7 @@ s32 J3DModel::createBumpMtxArray(J3DModelData* modelData, u32 bufferNum) {
|
||||
for (u32 j = 0; j < bufferNum; j++) {
|
||||
mpBumpMtxArr[i][bumpMtxOffset][j] = new(0x20) Mtx33[modelData->getDrawMtxNum()];
|
||||
if (mpBumpMtxArr[i][bumpMtxOffset][j] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
}
|
||||
bumpMtxOffset++;
|
||||
}
|
||||
@@ -370,7 +370,7 @@ s32 J3DModel::createBumpMtxArray(J3DModelData* modelData, u32 bufferNum) {
|
||||
getModelData()->setBumpFlag(1);
|
||||
}
|
||||
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802EE1D4-802EE254 .text newDifferedDisplayList__8J3DModelFUl */
|
||||
@@ -378,10 +378,10 @@ s32 J3DModel::newDifferedDisplayList(u32 flag) {
|
||||
mDiffFlag = flag;
|
||||
for (u16 i = 0; i < getModelData()->getShapeNum(); i++) {
|
||||
s32 ret = getShapePacket(i)->newDifferedDisplayList(flag);
|
||||
if (ret != kJ3DError_Success)
|
||||
if (ret != J3DErrType_Success)
|
||||
return ret;
|
||||
}
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802EE254-802EE28C .text lock__8J3DModelFv */
|
||||
@@ -443,7 +443,7 @@ void J3DModel::diff() {
|
||||
s32 J3DModel::setSkinDeform(J3DSkinDeform* pSkinDeform, u32 flags) {
|
||||
mpSkinDeform = pSkinDeform;
|
||||
|
||||
s32 ret = kJ3DError_Success;
|
||||
s32 ret = J3DErrType_Success;
|
||||
|
||||
if (pSkinDeform == NULL) {
|
||||
offFlag(J3DMdlFlag_SkinPosCpu);
|
||||
@@ -453,7 +453,7 @@ s32 J3DModel::setSkinDeform(J3DSkinDeform* pSkinDeform, u32 flags) {
|
||||
mpSkinDeform->initMtxIndexArray(mModelData);
|
||||
|
||||
ret = mModelData->checkFlag(0x100);
|
||||
if (ret != kJ3DError_Success) {
|
||||
if (ret != J3DErrType_Success) {
|
||||
mpSkinDeform->changeFastSkinDL(mModelData);
|
||||
flags &= ~2;
|
||||
flags &= ~4;
|
||||
@@ -462,7 +462,7 @@ s32 J3DModel::setSkinDeform(J3DSkinDeform* pSkinDeform, u32 flags) {
|
||||
ret = 0;
|
||||
if ((~flags & 2)) {
|
||||
ret = mVertexBuffer.allocTransformedVtxPosArray();
|
||||
if (ret != kJ3DError_Success) {
|
||||
if (ret != J3DErrType_Success) {
|
||||
offFlag(J3DMdlFlag_SkinPosCpu);
|
||||
return ret;
|
||||
}
|
||||
@@ -473,7 +473,7 @@ s32 J3DModel::setSkinDeform(J3DSkinDeform* pSkinDeform, u32 flags) {
|
||||
|
||||
if ((~flags & 4)) {
|
||||
ret = mVertexBuffer.allocTransformedVtxNrmArray();
|
||||
if (ret != kJ3DError_Success) {
|
||||
if (ret != J3DErrType_Success) {
|
||||
offFlag(J3DMdlFlag_SkinNrmCpu);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -32,12 +32,12 @@ void J3DDrawBuffer::initialize() {
|
||||
J3DError J3DDrawBuffer::allocBuffer(u32 bufSize) {
|
||||
mpBuf = new (0x20) J3DPacket*[bufSize];
|
||||
if (mpBuf == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
|
||||
mBufSize = bufSize;
|
||||
frameInit();
|
||||
calcZRatio();
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802EC84C-802EC8AC .text __dt__13J3DDrawBufferFv */
|
||||
|
||||
@@ -315,17 +315,17 @@ s32 J3DMaterial::newSharedDisplayList(u32 param_0) {
|
||||
if (mSharedDLObj == NULL) {
|
||||
mSharedDLObj = new J3DDisplayListObj();
|
||||
if (mSharedDLObj == NULL) {
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
}
|
||||
s32 res = mSharedDLObj->newDisplayList(param_0);
|
||||
switch (res) {
|
||||
case kJ3DError_Success:
|
||||
case J3DErrType_Success:
|
||||
break;
|
||||
default:
|
||||
return res;
|
||||
}
|
||||
}
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802DF1AC-802DF240 .text newSingleSharedDisplayList__11J3DMaterialFUl */
|
||||
@@ -333,17 +333,17 @@ s32 J3DMaterial::newSingleSharedDisplayList(u32 param_0) {
|
||||
if (mSharedDLObj == NULL) {
|
||||
mSharedDLObj = new J3DDisplayListObj();
|
||||
if (mSharedDLObj == NULL) {
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
}
|
||||
s32 res = mSharedDLObj->newSingleDisplayList(param_0);
|
||||
switch (res) {
|
||||
case kJ3DError_Success:
|
||||
case J3DErrType_Success:
|
||||
break;
|
||||
default:
|
||||
return res;
|
||||
}
|
||||
}
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802DF240-802DF260 .text initialize__18J3DPatchedMaterialFv */
|
||||
|
||||
@@ -20,9 +20,9 @@ J3DError J3DDisplayListObj::newDisplayList(u32 capacity) {
|
||||
mSize = 0;
|
||||
|
||||
if (mpData[0] == NULL || mpData[1] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802DAE9C-802DAF00 .text newSingleDisplayList__17J3DDisplayListObjFUl */
|
||||
@@ -33,9 +33,9 @@ J3DError J3DDisplayListObj::newSingleDisplayList(u32 capacity) {
|
||||
mSize = 0;
|
||||
|
||||
if (mpData[0] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802DAF00-802DAF78 .text single_To_Double__17J3DDisplayListObjFv */
|
||||
@@ -44,13 +44,13 @@ J3DError J3DDisplayListObj::single_To_Double() {
|
||||
mpData[1] = new (0x20) char[mCapacity];
|
||||
|
||||
if (mpData[1] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
|
||||
memcpy(mpData[1], mpData[0], mCapacity);
|
||||
DCStoreRange(mpData[1], mCapacity);
|
||||
}
|
||||
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802DAF78-802DAF98 .text setSingleDisplayList__17J3DDisplayListObjFPvUl */
|
||||
@@ -153,13 +153,13 @@ J3DError J3DDrawPacket::newDisplayList(u32 size) {
|
||||
mpDisplayListObj = new J3DDisplayListObj();
|
||||
|
||||
if (mpDisplayListObj == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
|
||||
J3DError ret = mpDisplayListObj->newDisplayList(size);
|
||||
if (ret != kJ3DError_Success)
|
||||
if (ret != J3DErrType_Success)
|
||||
return ret;
|
||||
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802DB2BC-802DB348 .text newSingleDisplayList__13J3DDrawPacketFUl */
|
||||
@@ -167,13 +167,13 @@ J3DError J3DDrawPacket::newSingleDisplayList(u32 size) {
|
||||
mpDisplayListObj = new J3DDisplayListObj();
|
||||
|
||||
if (mpDisplayListObj == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
|
||||
J3DError ret = mpDisplayListObj->newSingleDisplayList(size);
|
||||
if (ret != kJ3DError_Success)
|
||||
if (ret != J3DErrType_Success)
|
||||
return ret;
|
||||
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802DB348-802DB36C .text draw__13J3DDrawPacketFv */
|
||||
@@ -326,12 +326,12 @@ J3DError J3DShapePacket::newDifferedDisplayList(u32 flag) {
|
||||
u32 bufSize = calcDifferedBufferSize(flag);
|
||||
J3DError error = newDisplayList(bufSize);
|
||||
|
||||
if (error != kJ3DError_Success) {
|
||||
if (error != J3DErrType_Success) {
|
||||
return error;
|
||||
}
|
||||
|
||||
setDisplayListObj(getDisplayListObj());
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802DB818-802DB890 .text prepareDraw__14J3DShapePacketCFv */
|
||||
|
||||
@@ -94,33 +94,33 @@ void J3DVertexBuffer::setArray() const {
|
||||
/* 802D9EF0-802D9FA4 .text allocTransformedVtxPosArray__15J3DVertexBufferFv */
|
||||
s32 J3DVertexBuffer::allocTransformedVtxPosArray() {
|
||||
if (mTransformedVtxPosArray[0] != NULL && mTransformedVtxPosArray[1] != NULL)
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (i == 0 || mTransformedVtxPosArray[i] == NULL) {
|
||||
mTransformedVtxPosArray[i] = new (0x20) Vec[mVtxData->getVtxNum()];
|
||||
if (mTransformedVtxPosArray[i] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
}
|
||||
}
|
||||
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802D9FA4-802DA058 .text allocTransformedVtxNrmArray__15J3DVertexBufferFv */
|
||||
s32 J3DVertexBuffer::allocTransformedVtxNrmArray() {
|
||||
if (mTransformedVtxNrmArray[0] != NULL && mTransformedVtxNrmArray[1] != NULL)
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (i == 0 || mTransformedVtxNrmArray[i] == NULL) {
|
||||
mTransformedVtxNrmArray[i] = new (0x20) VertexNormal[mVtxData->getNrmNum()];
|
||||
if (mTransformedVtxNrmArray[i] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
return J3DErrType_OutOfMemory;
|
||||
}
|
||||
}
|
||||
|
||||
return kJ3DError_Success;
|
||||
return J3DErrType_Success;
|
||||
}
|
||||
|
||||
/* 802DA058-802DA06C .text __ct__14J3DDrawMtxDataFv */
|
||||
|
||||
+132
-18
@@ -3,51 +3,165 @@
|
||||
// Translation Unit: d_a_obj_adnno.cpp
|
||||
//
|
||||
|
||||
#include "d_a_obj_adnno.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "d/d_bg_w.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
class daObjAdnno_c : public fopAc_ac_c {
|
||||
public:
|
||||
inline s32 _create();
|
||||
inline bool _execute();
|
||||
inline bool _draw();
|
||||
inline bool _delete();
|
||||
BOOL CreateHeap();
|
||||
void CreateInit();
|
||||
void set_mtx();
|
||||
|
||||
public:
|
||||
/* 0x290 */ request_of_phase_process_class mPhs;
|
||||
/* 0x298 */ J3DModel * mpModel[16];
|
||||
};
|
||||
|
||||
static const u32 daObjAdnno_bmt_table[16] = {
|
||||
0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16,
|
||||
};
|
||||
|
||||
/* 00000078-00000098 .text CheckCreateHeap__FP10fopAc_ac_c */
|
||||
void CheckCreateHeap(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
BOOL CheckCreateHeap(fopAc_ac_c* i_this) {
|
||||
return ((daObjAdnno_c*)i_this)->CreateHeap();
|
||||
}
|
||||
|
||||
/* 00000098-00000178 .text CreateHeap__12daObjAdnno_cFv */
|
||||
void daObjAdnno_c::CreateHeap() {
|
||||
/* Nonmatching */
|
||||
BOOL daObjAdnno_c::CreateHeap() {
|
||||
J3DModelData* modelData = (J3DModelData*)(dComIfG_getObjectRes("Adnno", 0x04));
|
||||
JUT_ASSERT(0x5c, modelData != 0);
|
||||
for (s32 i = 0; i < 16; i++) {
|
||||
mpModel[i] = mDoExt_J3DModel__create(modelData, 0x80000, 0x37441422);
|
||||
if (!mpModel[i])
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00000178-000001E8 .text CreateInit__12daObjAdnno_cFv */
|
||||
void daObjAdnno_c::CreateInit() {
|
||||
/* Nonmatching */
|
||||
fopAcM_SetMtx(this, mpModel[0]->getBaseTRMtx());
|
||||
fopAcM_setCullSizeBox(this, -600.0f, -0.0f, -600.0f, 600.0f, 900.0f, 600.0f);
|
||||
fopAcM_setCullSizeFar(this, 1.0f);
|
||||
set_mtx();
|
||||
}
|
||||
|
||||
/* 000001E8-00000330 .text set_mtx__12daObjAdnno_cFv */
|
||||
void daObjAdnno_c::set_mtx() {
|
||||
/* Nonmatching */
|
||||
for (s32 i = 0; i < 16; i++) {
|
||||
J3DModel * model = mpModel[i];
|
||||
model->setBaseScale(mScale);
|
||||
|
||||
mDoMtx_stack_c::transS(getPosition());
|
||||
mDoMtx_stack_c::YrotM(current.angle.y);
|
||||
/* Nonmatching - this translation code is wrong */
|
||||
mDoMtx_stack_c::transM(40.0f + i * 60.0f, 60.0f - 40.0f * i, 0.0f);
|
||||
mpModel[i]->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
}
|
||||
|
||||
s32 daObjAdnno_c::_create() {
|
||||
fopAcM_SetupActor(this, daObjAdnno_c);
|
||||
|
||||
s32 ret = dComIfG_resLoad(&mPhs, "Adnno");
|
||||
|
||||
if (ret == cPhs_COMPLEATE_e) {
|
||||
if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckCreateHeap, 0x9C00) == 0) {
|
||||
ret = cPhs_ERROR_e;
|
||||
} else {
|
||||
CreateInit();
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool daObjAdnno_c::_delete() {
|
||||
dComIfG_resDelete(&mPhs, "Adnno");
|
||||
return true;
|
||||
}
|
||||
|
||||
bool daObjAdnno_c::_execute() {
|
||||
set_mtx();
|
||||
return true;
|
||||
}
|
||||
|
||||
static const u16 daObjAdnno_event_bit_table[16] = {
|
||||
0x3508, 0x3504, 0x3502, 0x3501,
|
||||
0x3680, 0x3640, 0x3620, 0x3610,
|
||||
0x3608, 0x3604, 0x3602, 0x3601,
|
||||
0x3780, 0x3740, 0x3720, 0x3710,
|
||||
};
|
||||
|
||||
bool daObjAdnno_c::_draw() {
|
||||
dComIfGd_setListBG();
|
||||
for (s32 i = 0; i < 16; i++) {
|
||||
if (dComIfGs_isEventBit(daObjAdnno_event_bit_table[i])) {
|
||||
J3DMaterialTable* pBmt = (J3DMaterialTable*)dComIfG_getObjectRes("Adnno", daObjAdnno_bmt_table[i]);
|
||||
mpModel[i]->getModelData()->setMaterialTable(pBmt, J3DMatCopyFlag_All);
|
||||
mDoExt_modelUpdateDL(mpModel[i]);
|
||||
}
|
||||
}
|
||||
dComIfGd_setList();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 00000330-000003D4 .text daObjAdnno_Create__FPv */
|
||||
void daObjAdnno_Create(void*) {
|
||||
/* Nonmatching */
|
||||
s32 daObjAdnno_Create(void* i_this) {
|
||||
return ((daObjAdnno_c*)i_this)->_create();
|
||||
}
|
||||
|
||||
/* 000003D4-00000404 .text daObjAdnno_Delete__FPv */
|
||||
void daObjAdnno_Delete(void*) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjAdnno_Delete(void* i_this) {
|
||||
return ((daObjAdnno_c*)i_this)->_delete();
|
||||
}
|
||||
|
||||
/* 00000404-000004F8 .text daObjAdnno_Draw__FPv */
|
||||
void daObjAdnno_Draw(void*) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjAdnno_Draw(void* i_this) {
|
||||
return ((daObjAdnno_c*)i_this)->_draw();
|
||||
}
|
||||
|
||||
/* 000004F8-0000051C .text daObjAdnno_Execute__FPv */
|
||||
void daObjAdnno_Execute(void*) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjAdnno_Execute(void* i_this) {
|
||||
return ((daObjAdnno_c*)i_this)->_execute();
|
||||
}
|
||||
|
||||
/* 0000051C-00000524 .text daObjAdnno_IsDelete__FPv */
|
||||
void daObjAdnno_IsDelete(void*) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjAdnno_IsDelete(void* i_this) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static actor_method_class daObj_AdnnoMethodTable = {
|
||||
(process_method_func)daObjAdnno_Create,
|
||||
(process_method_func)daObjAdnno_Delete,
|
||||
(process_method_func)daObjAdnno_Execute,
|
||||
(process_method_func)daObjAdnno_IsDelete,
|
||||
(process_method_func)daObjAdnno_Draw,
|
||||
};
|
||||
|
||||
actor_process_profile_definition g_profile_Obj_Adnno = {
|
||||
/* LayerID */ fpcLy_CURRENT_e,
|
||||
/* ListID */ 7,
|
||||
/* ListPrio */ fpcPi_CURRENT_e,
|
||||
/* ProcName */ PROC_Obj_Adnno,
|
||||
/* Proc SubMtd */ &g_fpcLf_Method.mBase,
|
||||
/* Size */ sizeof(daObjAdnno_c),
|
||||
/* SizeOther */ 0,
|
||||
/* Parameters */ 0,
|
||||
/* Leaf SubMtd */ &g_fopAc_Method.base,
|
||||
/* Priority */ 0x007E,
|
||||
/* Actor SubMtd */ &daObj_AdnnoMethodTable,
|
||||
/* Status */ fopAcStts_UNK40000_e | fopAcStts_CULL_e | fopAcStts_NOCULLEXEC_e,
|
||||
/* Group */ fopAc_ACTOR_e,
|
||||
/* CullType */ fopAc_CULLBOX_CUSTOM_e,
|
||||
};
|
||||
|
||||
+123
-28
@@ -3,61 +3,156 @@
|
||||
// Translation Unit: d_a_obj_dmgroom.cpp
|
||||
//
|
||||
|
||||
#include "d_a_obj_dmgroom.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "d/d_bg_w.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
class daObjDmgroom_c : public fopAc_ac_c {
|
||||
public:
|
||||
inline s32 _create();
|
||||
inline bool _execute();
|
||||
inline bool _draw();
|
||||
inline bool _delete();
|
||||
BOOL CreateHeap();
|
||||
void CreateInit();
|
||||
void set_mtx();
|
||||
|
||||
public:
|
||||
/* 0x290 */ request_of_phase_process_class mPhs;
|
||||
/* 0x298 */ J3DModel * mpModel;
|
||||
/* 0x29C */ mDoExt_brkAnm mBrkAnm;
|
||||
};
|
||||
|
||||
/* 00000078-00000098 .text CheckCreateHeap__FP10fopAc_ac_c */
|
||||
void CheckCreateHeap(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
BOOL CheckCreateHeap(fopAc_ac_c* i_this) {
|
||||
return ((daObjDmgroom_c*)i_this)->CreateHeap();
|
||||
}
|
||||
|
||||
/* 00000098-000001FC .text CreateHeap__14daObjDmgroom_cFv */
|
||||
void daObjDmgroom_c::CreateHeap() {
|
||||
/* Nonmatching */
|
||||
BOOL daObjDmgroom_c::CreateHeap() {
|
||||
J3DModelData* modelData = (J3DModelData*)(dComIfG_getObjectRes("Dmgroom", 0x04));
|
||||
JUT_ASSERT(0x52, modelData != 0);
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x00, 0x11020203);
|
||||
if (!mpModel)
|
||||
return FALSE;
|
||||
|
||||
J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)(dComIfG_getObjectRes("Dmgroom", 0x07));
|
||||
JUT_ASSERT(0x5c, brk != 0);
|
||||
if (!mBrkAnm.init(modelData, brk, true, J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0, -1, false, 0))
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 000001FC-0000026C .text CreateInit__14daObjDmgroom_cFv */
|
||||
void daObjDmgroom_c::CreateInit() {
|
||||
/* Nonmatching */
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
fopAcM_setCullSizeBox(this, -600.0f, -0.0f, -600.0f, 600.0f, 900.0f, 600.0f);
|
||||
fopAcM_setCullSizeFar(this, 1.0f);
|
||||
set_mtx();
|
||||
}
|
||||
|
||||
/* 0000026C-000002EC .text set_mtx__14daObjDmgroom_cFv */
|
||||
void daObjDmgroom_c::set_mtx() {
|
||||
/* Nonmatching */
|
||||
mpModel->setBaseScale(mScale);
|
||||
mDoMtx_stack_c::transS(getPosition());
|
||||
mDoMtx_stack_c::YrotM(current.angle.y);
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
|
||||
s32 daObjDmgroom_c::_create() {
|
||||
fopAcM_SetupActor(this, daObjDmgroom_c);
|
||||
|
||||
s32 ret = dComIfG_resLoad(&mPhs, "Dmgroom");
|
||||
|
||||
if (ret == cPhs_COMPLEATE_e) {
|
||||
if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckCreateHeap, 0x1460) == 0) {
|
||||
ret = cPhs_ERROR_e;
|
||||
} else {
|
||||
CreateInit();
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool daObjDmgroom_c::_delete() {
|
||||
dComIfG_resDelete(&mPhs, "Dmgroom");
|
||||
return true;
|
||||
}
|
||||
|
||||
bool daObjDmgroom_c::_execute() {
|
||||
if (mDemoActorId != 0) {
|
||||
dDemo_actor_c * demoAc = dComIfGp_demo_getActor(mDemoActorId);
|
||||
if (demoAc != NULL && demoAc->checkEnable(0x40))
|
||||
mBrkAnm.setFrame(demoAc->mAnimationFrame);
|
||||
}
|
||||
set_mtx();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool daObjDmgroom_c::_draw() {
|
||||
g_env_light.settingTevStruct(TEV_TYPE_BG0, getPositionP(), &mTevStr);
|
||||
g_env_light.setLightTevColorType(mpModel, &mTevStr);
|
||||
dComIfGd_setListBG();
|
||||
mBrkAnm.entry(mpModel->getModelData());
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
mBrkAnm.remove(mpModel->getModelData());
|
||||
dComIfGd_setList();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 000002EC-000003B4 .text daObjDmgroom_Create__FPv */
|
||||
void daObjDmgroom_Create(void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 000003B4-00000410 .text __dt__13mDoExt_brkAnmFv */
|
||||
mDoExt_brkAnm::~mDoExt_brkAnm() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000410-00000458 .text __dt__14mDoExt_baseAnmFv */
|
||||
mDoExt_baseAnm::~mDoExt_baseAnm() {
|
||||
/* Nonmatching */
|
||||
s32 daObjDmgroom_Create(void* i_this) {
|
||||
return ((daObjDmgroom_c*)i_this)->_create();
|
||||
}
|
||||
|
||||
/* 00000458-00000488 .text daObjDmgroom_Delete__FPv */
|
||||
void daObjDmgroom_Delete(void*) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjDmgroom_Delete(void* i_this) {
|
||||
return ((daObjDmgroom_c*)i_this)->_delete();
|
||||
}
|
||||
|
||||
/* 00000488-00000558 .text daObjDmgroom_Draw__FPv */
|
||||
void daObjDmgroom_Draw(void*) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjDmgroom_Draw(void* i_this) {
|
||||
return ((daObjDmgroom_c*)i_this)->_draw();
|
||||
}
|
||||
|
||||
/* 00000558-000005CC .text daObjDmgroom_Execute__FPv */
|
||||
void daObjDmgroom_Execute(void*) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjDmgroom_Execute(void* i_this) {
|
||||
return ((daObjDmgroom_c*)i_this)->_execute();
|
||||
}
|
||||
|
||||
/* 000005CC-000005D4 .text daObjDmgroom_IsDelete__FPv */
|
||||
void daObjDmgroom_IsDelete(void*) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjDmgroom_IsDelete(void* i_this) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static actor_method_class daObj_DmgroomMethodTable = {
|
||||
(process_method_func)daObjDmgroom_Create,
|
||||
(process_method_func)daObjDmgroom_Delete,
|
||||
(process_method_func)daObjDmgroom_Execute,
|
||||
(process_method_func)daObjDmgroom_IsDelete,
|
||||
(process_method_func)daObjDmgroom_Draw,
|
||||
};
|
||||
|
||||
actor_process_profile_definition g_profile_Obj_Dmgroom = {
|
||||
/* LayerID */ fpcLy_CURRENT_e,
|
||||
/* ListID */ 7,
|
||||
/* ListPrio */ fpcPi_CURRENT_e,
|
||||
/* ProcName */ PROC_Obj_Dmgroom,
|
||||
/* Proc SubMtd */ &g_fpcLf_Method.mBase,
|
||||
/* Size */ sizeof(daObjDmgroom_c),
|
||||
/* SizeOther */ 0,
|
||||
/* Parameters */ 0,
|
||||
/* Leaf SubMtd */ &g_fopAc_Method.base,
|
||||
/* Priority */ 0x001D,
|
||||
/* Actor SubMtd */ &daObj_DmgroomMethodTable,
|
||||
/* Status */ fopAcStts_UNK40000_e,
|
||||
/* Group */ fopAc_ACTOR_e,
|
||||
/* CullType */ fopAc_CULLBOX_CUSTOM_e,
|
||||
};
|
||||
|
||||
+232
-127
@@ -3,161 +3,266 @@
|
||||
// Translation Unit: d_a_obj_dragonhead.cpp
|
||||
//
|
||||
|
||||
#include "d_a_obj_dragonhead.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "d/d_bg_w.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
class daObjDragonhead_c : public fopAc_ac_c {
|
||||
public:
|
||||
inline s32 _create();
|
||||
inline bool _execute();
|
||||
inline bool _draw();
|
||||
inline bool _delete();
|
||||
BOOL CreateHeap();
|
||||
void CreateInit();
|
||||
void set_mtx();
|
||||
|
||||
public:
|
||||
/* 0x290 */ request_of_phase_process_class mPhs;
|
||||
/* 0x298 */ J3DModel * mpModel;
|
||||
/* 0x29C */ dCcD_Stts mStts;
|
||||
/* 0x2D8 */ dCcD_Sph mSph;
|
||||
/* 0x404 */ u8 mAlpha;
|
||||
/* 0x405 */ bool mSwitchOn;
|
||||
/* 0x408 */ dBgW * mpBgW;
|
||||
/* 0x40C */ u8 field_0x40c;
|
||||
/* 0x410 */ cXyz mSphCenter;
|
||||
/* 0x41C */ Mtx mtx;
|
||||
};
|
||||
|
||||
dCcD_SrcSph sph_check_src = {
|
||||
// dCcD_SrcGObjInf
|
||||
{
|
||||
/* Flags */ 0,
|
||||
/* SrcObjAt Type */ 0,
|
||||
/* SrcObjAt Atp */ 0,
|
||||
/* SrcObjAt SPrm */ 0,
|
||||
/* SrcObjTg Type */ AT_TYPE_FIRE_ARROW,
|
||||
/* SrcObjTg SPrm */ 0x09,
|
||||
/* SrcObjCo SPrm */ 0,
|
||||
/* SrcGObjAt Se */ 0,
|
||||
/* SrcGObjAt HitMark */ 0,
|
||||
/* SrcGObjAt Spl */ 0,
|
||||
/* SrcGObjAt Mtrl */ 0,
|
||||
/* SrcGObjAt GFlag */ 0,
|
||||
/* SrcGObjTg Se */ 0,
|
||||
/* SrcGObjTg HitMark */ 0,
|
||||
/* SrcGObjTg Spl */ 0,
|
||||
/* SrcGObjTg Mtrl */ 0,
|
||||
/* SrcGObjTg GFlag */ 0,
|
||||
/* SrcGObjCo GFlag */ 0,
|
||||
},
|
||||
// cM3dGSphS
|
||||
{
|
||||
/* Center */ 0.0f, 0.0f, 0.0f,
|
||||
/* Radius */ 1000.0f,
|
||||
},
|
||||
};
|
||||
|
||||
/* 00000078-00000098 .text CheckCreateHeap__FP10fopAc_ac_c */
|
||||
void CheckCreateHeap(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
BOOL CheckCreateHeap(fopAc_ac_c* i_this) {
|
||||
return ((daObjDragonhead_c*)i_this)->CreateHeap();
|
||||
}
|
||||
|
||||
namespace daObjDragonhead_prm {
|
||||
inline u8 getSwitchNo(daObjDragonhead_c* ac) { return (fopAcM_GetParam(ac) >> 8) & 0xFF; }
|
||||
};
|
||||
|
||||
/* 00000098-00000228 .text CreateHeap__17daObjDragonhead_cFv */
|
||||
void daObjDragonhead_c::CreateHeap() {
|
||||
/* Nonmatching */
|
||||
BOOL daObjDragonhead_c::CreateHeap() {
|
||||
J3DModelData* model_data = (J3DModelData*)(dComIfG_getObjectRes("Qdghd", 0x04));
|
||||
JUT_ASSERT(0xA0, model_data != 0);
|
||||
mpModel = mDoExt_J3DModel__create(model_data, 0x00, 0x11020203);
|
||||
if (!mpModel)
|
||||
return FALSE;
|
||||
|
||||
s32 ret = 1;
|
||||
|
||||
mDoMtx_stack_c::transS(getPosition());
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mDoMtx_stack_c::scaleM(mScale);
|
||||
mDoMtx_copy(mDoMtx_stack_c::get(), mtx);
|
||||
|
||||
mpBgW = new dBgW();
|
||||
if (!mpBgW || mpBgW->Set((cBgD_t*)dComIfG_getObjectRes("Qdghd", 0x07), cBgW::MOVE_BG_e, &mtx))
|
||||
ret = 0;
|
||||
|
||||
if (ret != 1)
|
||||
return false;
|
||||
|
||||
return mpModel != NULL;
|
||||
}
|
||||
|
||||
/* 00000228-0000034C .text CreateInit__17daObjDragonhead_cFv */
|
||||
void daObjDragonhead_c::CreateInit() {
|
||||
/* Nonmatching */
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
fopAcM_setCullSizeFar(this, 1.0f);
|
||||
set_mtx();
|
||||
|
||||
field_0x40c = 0;
|
||||
/* Nonmatching -- swapped switchNo and g_dComIfG_gameInfo load */
|
||||
if (dComIfGs_isSwitch(daObjDragonhead_prm::getSwitchNo(this), fopAcM_GetHomeRoomNo(this))) {
|
||||
mSwitchOn = true;
|
||||
mAlpha = 0;
|
||||
} else {
|
||||
mSwitchOn = false;
|
||||
mAlpha = 0xFF;
|
||||
if (field_0x40c == 0 && !dComIfG_Bgsp()->Regist(mpBgW, this))
|
||||
field_0x40c = 1;
|
||||
}
|
||||
|
||||
mStts.Init(0xFF, 0xFF, this);
|
||||
mSph.Set(sph_check_src);
|
||||
mSphCenter.set(79338.0f, 950.0f, 220000.0f);
|
||||
mSph.SetC(mSphCenter);
|
||||
mSph.SetStts(&mStts);
|
||||
}
|
||||
|
||||
/* 0000034C-000003CC .text set_mtx__17daObjDragonhead_cFv */
|
||||
void daObjDragonhead_c::set_mtx() {
|
||||
/* Nonmatching */
|
||||
mpModel->setBaseScale(mScale);
|
||||
mDoMtx_stack_c::transS(getPosition());
|
||||
mDoMtx_stack_c::YrotM(current.angle.y);
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
|
||||
s32 daObjDragonhead_c::_create() {
|
||||
fopAcM_SetupActor(this, daObjDragonhead_c);
|
||||
|
||||
s32 ret = dComIfG_resLoad(&mPhs, "Qdghd");
|
||||
|
||||
if (ret == cPhs_COMPLEATE_e) {
|
||||
if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)CheckCreateHeap, 0x10500) == 0) {
|
||||
ret = cPhs_ERROR_e;
|
||||
} else {
|
||||
CreateInit();
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool daObjDragonhead_c::_delete() {
|
||||
if (heap != NULL && field_0x40c == 1)
|
||||
dComIfG_Bgsp()->Release(mpBgW);
|
||||
|
||||
mDoAud_seDeleteObject(&mSphCenter);
|
||||
dComIfG_resDelete(&mPhs, "Qdghd");
|
||||
return true;
|
||||
}
|
||||
|
||||
bool daObjDragonhead_c::_execute() {
|
||||
dComIfG_Ccsp()->Set(&mSph);
|
||||
if (!mSwitchOn) {
|
||||
mDoAud_seStart(JA_SE_OBJ_ICEBERG_BREATH, &mSphCenter, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
|
||||
if (mSph.ChkTgHit()) {
|
||||
cCcD_Obj* at = mSph.GetTgHitObj();
|
||||
if (at != NULL && at->ChkAtType(AT_TYPE_FIRE_ARROW)) {
|
||||
dComIfGs_onSwitch(daObjDragonhead_prm::getSwitchNo(this), fopAcM_GetHomeRoomNo(this));
|
||||
mSwitchOn = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Nonmatching -- swapped switchNo and g_dComIfG_gameInfo load */
|
||||
if (dComIfGs_isSwitch(daObjDragonhead_prm::getSwitchNo(this), fopAcM_GetHomeRoomNo(this))) {
|
||||
if (field_0x40c == 1) {
|
||||
if (!dComIfG_Bgsp()->Release(mpBgW))
|
||||
field_0x40c = 0;
|
||||
|
||||
mDoAud_seStart(JA_SE_OBJ_ICEVERG_MELT, &mEyePos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
|
||||
}
|
||||
|
||||
if (mAlpha != 0) {
|
||||
if (mAlpha >= 2)
|
||||
mAlpha -= 2;
|
||||
else
|
||||
mAlpha = 0;
|
||||
}
|
||||
} else {
|
||||
mSwitchOn = false;
|
||||
if (field_0x40c == 0 && !dComIfG_Bgsp()->Regist(mpBgW, this))
|
||||
field_0x40c = 1;
|
||||
|
||||
if (mAlpha < 0xFF) {
|
||||
if (mAlpha <= 0xFD)
|
||||
mAlpha += 2;
|
||||
else
|
||||
mAlpha = 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
set_mtx();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool daObjDragonhead_c::_draw() {
|
||||
g_env_light.settingTevStruct(TEV_TYPE_BG0, getPositionP(), &mTevStr);
|
||||
g_env_light.setLightTevColorType(mpModel, &mTevStr);
|
||||
dComIfGd_setListBG();
|
||||
J3DModelData* modelData = mpModel->getModelData();
|
||||
u16 materialNum = modelData->getMaterialNum();
|
||||
for (u16 i = 0; i < materialNum; i++) {
|
||||
J3DMaterial* mat = modelData->getMaterialNodePointer(i);
|
||||
mat->getTevKColor(3)->mColor.a = mAlpha;
|
||||
}
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
dComIfGd_setList();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 000003CC-000004FC .text daObjDragonhead_Create__FPv */
|
||||
void daObjDragonhead_Create(void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 000004FC-000005C8 .text __dt__8dCcD_SphFv */
|
||||
dCcD_Sph::~dCcD_Sph() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 000005C8-00000610 .text __dt__8cM3dGSphFv */
|
||||
cM3dGSph::~cM3dGSph() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000610-0000066C .text __dt__14cCcD_ShapeAttrFv */
|
||||
cCcD_ShapeAttr::~cCcD_ShapeAttr() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 0000066C-000006B4 .text __dt__8cM3dGAabFv */
|
||||
cM3dGAab::~cM3dGAab() {
|
||||
/* Nonmatching */
|
||||
s32 daObjDragonhead_Create(void* i_this) {
|
||||
return ((daObjDragonhead_c*)i_this)->_create();
|
||||
}
|
||||
|
||||
/* 000006B4-00000730 .text daObjDragonhead_Delete__FPv */
|
||||
void daObjDragonhead_Delete(void*) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjDragonhead_Delete(void* i_this) {
|
||||
return ((daObjDragonhead_c*)i_this)->_delete();
|
||||
}
|
||||
|
||||
/* 00000730-00000824 .text daObjDragonhead_Draw__FPv */
|
||||
void daObjDragonhead_Draw(void*) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjDragonhead_Draw(void* i_this) {
|
||||
return ((daObjDragonhead_c*)i_this)->_draw();
|
||||
}
|
||||
|
||||
/* 00000824-00000A48 .text daObjDragonhead_Execute__FPv */
|
||||
void daObjDragonhead_Execute(void*) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjDragonhead_Execute(void* i_this) {
|
||||
return ((daObjDragonhead_c*)i_this)->_execute();
|
||||
}
|
||||
|
||||
/* 00000A48-00000A50 .text daObjDragonhead_IsDelete__FPv */
|
||||
void daObjDragonhead_IsDelete(void*) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjDragonhead_IsDelete(void* i_this) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00000A50-00000A60 .text GetShapeAttr__8dCcD_SphFv */
|
||||
void dCcD_Sph::GetShapeAttr() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000A60-00000A68 .text GetCoCP__12cCcD_SphAttrFv */
|
||||
void cCcD_SphAttr::GetCoCP() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000A68-00000A70 .text GetCoCP__12cCcD_SphAttrCFv */
|
||||
void cCcD_SphAttr::GetCoCP() const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000A70-00000A78 .text CrossAtTg__12cCcD_SphAttrCFRC12cCcD_AabAttrP4cXyz */
|
||||
void cCcD_SphAttr::CrossAtTg(const cCcD_AabAttr&, cXyz*) const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000A78-00000A80 .text CrossAtTg__12cCcD_SphAttrCFRC12cCcD_PntAttrP4cXyz */
|
||||
void cCcD_SphAttr::CrossAtTg(const cCcD_PntAttr&, cXyz*) const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000A80-00000AB8 .text CrossAtTg__12cCcD_SphAttrCFRC14cCcD_ShapeAttrP4cXyz */
|
||||
void cCcD_SphAttr::CrossAtTg(const cCcD_ShapeAttr&, cXyz*) const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000AB8-00000AC0 .text CrossCo__12cCcD_SphAttrCFRC12cCcD_AabAttrPf */
|
||||
void cCcD_SphAttr::CrossCo(const cCcD_AabAttr&, float*) const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000AC0-00000AC8 .text CrossCo__12cCcD_SphAttrCFRC12cCcD_TriAttrPf */
|
||||
void cCcD_SphAttr::CrossCo(const cCcD_TriAttr&, float*) const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000AC8-00000AD0 .text CrossCo__12cCcD_SphAttrCFRC12cCcD_PntAttrPf */
|
||||
void cCcD_SphAttr::CrossCo(const cCcD_PntAttr&, float*) const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000AD0-00000B08 .text CrossCo__12cCcD_SphAttrCFRC14cCcD_ShapeAttrPf */
|
||||
void cCcD_SphAttr::CrossCo(const cCcD_ShapeAttr&, float*) const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000B08-00000B0C .text GetGObjInf__12cCcD_GObjInfCFv */
|
||||
void cCcD_GObjInf::GetGObjInf() const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000B0C-00000B14 .text GetShapeAttr__8cCcD_ObjCFv */
|
||||
void cCcD_Obj::GetShapeAttr() const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000B14-00000B1C .text CrossAtTg__14cCcD_ShapeAttrCFRC14cCcD_ShapeAttrP4cXyz */
|
||||
void cCcD_ShapeAttr::CrossAtTg(const cCcD_ShapeAttr&, cXyz*) const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000B1C-00000B24 .text CrossCo__14cCcD_ShapeAttrCFRC14cCcD_ShapeAttrPf */
|
||||
void cCcD_ShapeAttr::CrossCo(const cCcD_ShapeAttr&, float*) const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000B24-00000B30 .text GetCoCP__14cCcD_ShapeAttrFv */
|
||||
void cCcD_ShapeAttr::GetCoCP() {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000B30-00000B3C .text GetCoCP__14cCcD_ShapeAttrCFv */
|
||||
void cCcD_ShapeAttr::GetCoCP() const {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000B3C-00000B44 .text @280@__dt__8dCcD_SphFv */
|
||||
void @280@__dt__8dCcD_SphFv {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 00000B44-00000B4C .text @248@__dt__8dCcD_SphFv */
|
||||
void @248@__dt__8dCcD_SphFv {
|
||||
/* Nonmatching */
|
||||
}
|
||||
static actor_method_class daObj_DragonheadMethodTable = {
|
||||
(process_method_func)daObjDragonhead_Create,
|
||||
(process_method_func)daObjDragonhead_Delete,
|
||||
(process_method_func)daObjDragonhead_Execute,
|
||||
(process_method_func)daObjDragonhead_IsDelete,
|
||||
(process_method_func)daObjDragonhead_Draw,
|
||||
};
|
||||
|
||||
actor_process_profile_definition g_profile_Obj_Dragonhead = {
|
||||
/* LayerID */ fpcLy_CURRENT_e,
|
||||
/* ListID */ 3,
|
||||
/* ListPrio */ fpcPi_CURRENT_e,
|
||||
/* ProcName */ PROC_Obj_Dragonhead,
|
||||
/* Proc SubMtd */ &g_fpcLf_Method.mBase,
|
||||
/* Size */ sizeof(daObjDragonhead_c),
|
||||
/* SizeOther */ 0,
|
||||
/* Parameters */ 0,
|
||||
/* Leaf SubMtd */ &g_fopAc_Method.base,
|
||||
/* Priority */ 0x0025,
|
||||
/* Actor SubMtd */ &daObj_DragonheadMethodTable,
|
||||
/* Status */ fopAcStts_UNK40000_e | fopAcStts_UNK4000_e,
|
||||
/* Group */ fopAc_ACTOR_e,
|
||||
/* CullType */ fopAc_CULLBOX_CUSTOM_e,
|
||||
};
|
||||
|
||||
+143
-40
@@ -3,71 +3,174 @@
|
||||
// Translation Unit: d_a_obj_eayogn.cpp
|
||||
//
|
||||
|
||||
#include "d_a_obj_eayogn.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "d/d_bg_w.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
class daObjEayogn_c : public fopAc_ac_c {
|
||||
public:
|
||||
s32 _create();
|
||||
bool _execute();
|
||||
bool _draw();
|
||||
bool _delete();
|
||||
bool create_heap();
|
||||
static bool solidHeapCB(fopAc_ac_c *i_this);
|
||||
void init_mtx();
|
||||
BOOL check_ev_bit() const;
|
||||
static const char M_arcname[7];
|
||||
|
||||
public:
|
||||
/* 0x290 */ J3DModel * mpModel;
|
||||
/* 0x294 */ request_of_phase_process_class mPhs;
|
||||
/* 0x2A0 */ dBgW * mpBgW;
|
||||
};
|
||||
|
||||
const char daObjEayogn_c::M_arcname[7] = "Eayogn";
|
||||
|
||||
/* 00000078-00000098 .text solidHeapCB__13daObjEayogn_cFP10fopAc_ac_c */
|
||||
void daObjEayogn_c::solidHeapCB(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
bool daObjEayogn_c::solidHeapCB(fopAc_ac_c* i_this) {
|
||||
return ((daObjEayogn_c*)i_this)->create_heap();
|
||||
}
|
||||
|
||||
/* 00000098-00000198 .text create_heap__13daObjEayogn_cFv */
|
||||
void daObjEayogn_c::create_heap() {
|
||||
/* Nonmatching */
|
||||
bool daObjEayogn_c::create_heap() {
|
||||
bool ret = false;
|
||||
|
||||
J3DModelData* mdl_data = static_cast<J3DModelData*>(dComIfG_getObjectRes(M_arcname, 0x04));
|
||||
JUT_ASSERT(0x5c, mdl_data != 0);
|
||||
|
||||
if (mdl_data != NULL) {
|
||||
mpModel = mDoExt_J3DModel__create(mdl_data, 0x00, 0x11020203);
|
||||
if (mpModel != NULL) {
|
||||
mpBgW = dBgW_NewSet((cBgD_t*)dComIfG_getObjectRes(M_arcname, 0x07), cBgW::MOVE_BG_e, &mpModel->getBaseTRMtx());
|
||||
if (mpBgW != NULL)
|
||||
ret = true;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 00000198-0000029C .text _create__13daObjEayogn_cFv */
|
||||
void daObjEayogn_c::_create() {
|
||||
/* Nonmatching */
|
||||
s32 daObjEayogn_c::_create() {
|
||||
s32 ret = cPhs_ERROR_e;
|
||||
|
||||
fopAcM_SetupActor(this, daObjEayogn_c);
|
||||
|
||||
if (check_ev_bit()) {
|
||||
ret = dComIfG_resLoad(&mPhs, M_arcname);
|
||||
|
||||
if (ret == cPhs_COMPLEATE_e) {
|
||||
ret = cPhs_ERROR_e;
|
||||
if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)solidHeapCB, 0x0)) {
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
init_mtx();
|
||||
dComIfG_Bgsp()->Regist(mpBgW, this);
|
||||
mpBgW->Move();
|
||||
fopAcM_setCullSizeBox(this, -550.0f, -50.0f, -600.0f, 550.0f, 50.0f, 600.0f);
|
||||
ret = cPhs_COMPLEATE_e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 0000029C-00000330 .text _delete__13daObjEayogn_cFv */
|
||||
void daObjEayogn_c::_delete() {
|
||||
/* Nonmatching */
|
||||
bool daObjEayogn_c::_delete() {
|
||||
if (heap != NULL && mpBgW != NULL) {
|
||||
if (mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp()->Release(mpBgW);
|
||||
mpBgW = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
dComIfG_resDelete(&mPhs, M_arcname);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 00000330-00000360 .text check_ev_bit__13daObjEayogn_cCFv */
|
||||
void daObjEayogn_c::check_ev_bit() const {
|
||||
/* Nonmatching */
|
||||
BOOL daObjEayogn_c::check_ev_bit() const {
|
||||
return dComIfGs_isSymbol(1);
|
||||
}
|
||||
|
||||
/* 00000360-000003E8 .text init_mtx__13daObjEayogn_cFv */
|
||||
void daObjEayogn_c::init_mtx() {
|
||||
/* Nonmatching */
|
||||
mpModel->setBaseScale(mScale);
|
||||
mDoMtx_stack_c::transS(getPosition());
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
|
||||
/* 000003E8-000003F0 .text _execute__13daObjEayogn_cFv */
|
||||
void daObjEayogn_c::_execute() {
|
||||
/* Nonmatching */
|
||||
bool daObjEayogn_c::_execute() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 000003F0-00000490 .text _draw__13daObjEayogn_cFv */
|
||||
void daObjEayogn_c::_draw() {
|
||||
/* Nonmatching */
|
||||
bool daObjEayogn_c::_draw() {
|
||||
g_env_light.settingTevStruct(TEV_TYPE_BG0, getPositionP(), &mTevStr);
|
||||
g_env_light.setLightTevColorType(mpModel, &mTevStr);
|
||||
dComIfGd_setListBG();
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
dComIfGd_setList();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 00000490-000004B0 .text Mthd_Create__28@unnamed@d_a_obj_eayogn_cpp@FPv */
|
||||
void @unnamed@d_a_obj_eayogn_cpp@::Mthd_Create(void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 000004B0-000004D4 .text Mthd_Delete__28@unnamed@d_a_obj_eayogn_cpp@FPv */
|
||||
void @unnamed@d_a_obj_eayogn_cpp@::Mthd_Delete(void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 000004D4-000004F8 .text Mthd_Execute__28@unnamed@d_a_obj_eayogn_cpp@FPv */
|
||||
void @unnamed@d_a_obj_eayogn_cpp@::Mthd_Execute(void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 000004F8-0000051C .text Mthd_Draw__28@unnamed@d_a_obj_eayogn_cpp@FPv */
|
||||
void @unnamed@d_a_obj_eayogn_cpp@::Mthd_Draw(void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 0000051C-00000524 .text Mthd_IsDelete__28@unnamed@d_a_obj_eayogn_cpp@FPv */
|
||||
void @unnamed@d_a_obj_eayogn_cpp@::Mthd_IsDelete(void*) {
|
||||
/* Nonmatching */
|
||||
namespace {
|
||||
/* 00000490-000004B0 .text Mthd_Create__28@unnamed@d_a_obj_eayogn_cpp@FPv */
|
||||
s32 Mthd_Create(void* i_this) {
|
||||
return ((daObjEayogn_c*)i_this)->_create();
|
||||
}
|
||||
|
||||
/* 000004B0-000004D4 .text Mthd_Delete__28@unnamed@d_a_obj_eayogn_cpp@FPv */
|
||||
BOOL Mthd_Delete(void* i_this) {
|
||||
return ((daObjEayogn_c*)i_this)->_delete();
|
||||
}
|
||||
|
||||
/* 000004D4-000004F8 .text Mthd_Execute__28@unnamed@d_a_obj_eayogn_cpp@FPv */
|
||||
BOOL Mthd_Execute(void* i_this) {
|
||||
return ((daObjEayogn_c*)i_this)->_execute();
|
||||
}
|
||||
|
||||
/* 000004F8-0000051C .text Mthd_Draw__28@unnamed@d_a_obj_eayogn_cpp@FPv */
|
||||
BOOL Mthd_Draw(void* i_this) {
|
||||
return ((daObjEayogn_c*)i_this)->_draw();
|
||||
}
|
||||
|
||||
/* 0000051C-00000524 .text Mthd_IsDelete__28@unnamed@d_a_obj_eayogn_cpp@FPv */
|
||||
BOOL Mthd_IsDelete(void* i_this) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static actor_method_class Eayogn_Mthd_Table = {
|
||||
(process_method_func)Mthd_Create,
|
||||
(process_method_func)Mthd_Delete,
|
||||
(process_method_func)Mthd_Execute,
|
||||
(process_method_func)Mthd_IsDelete,
|
||||
(process_method_func)Mthd_Draw,
|
||||
};
|
||||
}
|
||||
|
||||
actor_process_profile_definition g_profile_Obj_Eayogn = {
|
||||
/* LayerID */ fpcLy_CURRENT_e,
|
||||
/* ListID */ 3,
|
||||
/* ListPrio */ fpcPi_CURRENT_e,
|
||||
/* ProcName */ PROC_Obj_Eayogn,
|
||||
/* Proc SubMtd */ &g_fpcLf_Method.mBase,
|
||||
/* Size */ sizeof(daObjEayogn_c),
|
||||
/* SizeOther */ 0,
|
||||
/* Parameters */ 0,
|
||||
/* Leaf SubMtd */ &g_fopAc_Method.base,
|
||||
/* Priority */ 0x004C,
|
||||
/* Actor SubMtd */ &Eayogn_Mthd_Table,
|
||||
/* Status */ fopAcStts_UNK40000_e | fopAcStts_CULL_e | fopAcStts_NOCULLEXEC_e,
|
||||
/* Group */ fopAc_ACTOR_e,
|
||||
/* CullType */ fopAc_CULLBOX_CUSTOM_e,
|
||||
};
|
||||
|
||||
+159
-41
@@ -3,76 +3,194 @@
|
||||
// Translation Unit: d_a_obj_gong.cpp
|
||||
//
|
||||
|
||||
#include "d_a_obj_gong.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "d/d_a_obj.h"
|
||||
#include "d/d_bg_w.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_drawlist.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
namespace daObjGong {
|
||||
namespace {
|
||||
struct L_attr_entry {
|
||||
/* 0x00 */ f32 spec;
|
||||
/* 0x04 */ f32 offsetY;
|
||||
};
|
||||
|
||||
static const L_attr_entry L_attr = {
|
||||
0.75f, 125.0f,
|
||||
};
|
||||
|
||||
inline const L_attr_entry & attr() { return L_attr; }
|
||||
}
|
||||
|
||||
class Act_c : fopAc_ac_c {
|
||||
public:
|
||||
s32 _create();
|
||||
bool _execute();
|
||||
bool _draw();
|
||||
bool _delete();
|
||||
bool create_heap();
|
||||
void init_mtx();
|
||||
void set_mtx();
|
||||
bool demo_move();
|
||||
static BOOL solidHeapCB(fopAc_ac_c *i_this);
|
||||
static const char M_arcname[6];
|
||||
|
||||
public:
|
||||
/* 0x290 */ request_of_phase_process_class mPhs;
|
||||
/* 0x298 */ mDoExt_McaMorf * mpMorf;
|
||||
};
|
||||
}
|
||||
|
||||
const char daObjGong::Act_c::M_arcname[6] = "Vdora";
|
||||
|
||||
/* 00000078-0000009C .text solidHeapCB__Q29daObjGong5Act_cFP10fopAc_ac_c */
|
||||
void daObjGong::Act_c::solidHeapCB(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
BOOL daObjGong::Act_c::solidHeapCB(fopAc_ac_c* i_this) {
|
||||
return ((Act_c*)i_this)->create_heap();
|
||||
}
|
||||
|
||||
/* 0000009C-0000028C .text create_heap__Q29daObjGong5Act_cFv */
|
||||
void daObjGong::Act_c::create_heap() {
|
||||
/* Nonmatching */
|
||||
bool daObjGong::Act_c::create_heap() {
|
||||
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(M_arcname, 0x04));
|
||||
J3DAnmTransformKey* bck = static_cast<J3DAnmTransformKey*>(dComIfG_getObjectRes(M_arcname, 0x07));
|
||||
JUT_ASSERT(0xbd, (modelData != 0) && (bck != 0));
|
||||
|
||||
mpMorf = new mDoExt_McaMorf(modelData, NULL, NULL, bck, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, 0, NULL, 0, 0x11020203);
|
||||
J3DModel * model = mpMorf != NULL ? mpMorf->getModel() : NULL;
|
||||
|
||||
bool ret = false;
|
||||
if (model != NULL) {
|
||||
J3DSkinDeform * deform = new J3DSkinDeform();
|
||||
if (deform != NULL) {
|
||||
s32 err = model->setSkinDeform(deform, 1);
|
||||
JUT_ASSERT(0xd7, (err == J3DErrType_Success) || (err == J3DErrType_OutOfMemory));
|
||||
if (err == J3DErrType_Success)
|
||||
ret = true;
|
||||
}
|
||||
}
|
||||
|
||||
return model != NULL && ret;
|
||||
}
|
||||
|
||||
/* 0000028C-00000374 .text _create__Q29daObjGong5Act_cFv */
|
||||
void daObjGong::Act_c::_create() {
|
||||
/* Nonmatching */
|
||||
s32 daObjGong::Act_c::_create() {
|
||||
fopAcM_SetupActor(this, Act_c);
|
||||
|
||||
s32 ret = dComIfG_resLoad(&mPhs, M_arcname);
|
||||
|
||||
if (ret == cPhs_COMPLEATE_e) {
|
||||
if (fopAcM_entrySolidHeap(this, (heapCallbackFunc)solidHeapCB, 0x0)) {
|
||||
fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx());
|
||||
init_mtx();
|
||||
fopAcM_setCullSizeBox(this, -100.0f, -1.0f, -50.0f, 100.0f, 230.0f, 50.0f);
|
||||
mEyePos.y += attr().offsetY;
|
||||
} else {
|
||||
ret = cPhs_ERROR_e;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 00000374-000003A4 .text _delete__Q29daObjGong5Act_cFv */
|
||||
void daObjGong::Act_c::_delete() {
|
||||
/* Nonmatching */
|
||||
bool daObjGong::Act_c::_delete() {
|
||||
dComIfG_resDelete(&mPhs, M_arcname);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 000003A4-00000414 .text set_mtx__Q29daObjGong5Act_cFv */
|
||||
void daObjGong::Act_c::set_mtx() {
|
||||
/* Nonmatching */
|
||||
mDoMtx_stack_c::transS(getPosition());
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
mpMorf->getModel()->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
|
||||
/* 00000414-00000454 .text init_mtx__Q29daObjGong5Act_cFv */
|
||||
void daObjGong::Act_c::init_mtx() {
|
||||
/* Nonmatching */
|
||||
mpMorf->getModel()->setBaseScale(mScale);
|
||||
set_mtx();
|
||||
}
|
||||
|
||||
/* 00000454-000004A4 .text demo_move__Q29daObjGong5Act_cFv */
|
||||
void daObjGong::Act_c::demo_move() {
|
||||
/* Nonmatching */
|
||||
bool daObjGong::Act_c::demo_move() {
|
||||
return dDemo_setDemoData(this, 0x6A, mpMorf, "Vdora", 0, NULL, 0, 0);
|
||||
}
|
||||
|
||||
/* 000004A4-000004F0 .text _execute__Q29daObjGong5Act_cFv */
|
||||
void daObjGong::Act_c::_execute() {
|
||||
/* Nonmatching */
|
||||
bool daObjGong::Act_c::_execute() {
|
||||
demo_move();
|
||||
mpMorf->play(NULL, 0, 0);
|
||||
set_mtx();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 000004F0-00000580 .text _draw__Q29daObjGong5Act_cFv */
|
||||
void daObjGong::Act_c::_draw() {
|
||||
/* Nonmatching */
|
||||
bool daObjGong::Act_c::_draw() {
|
||||
/* Nonmatching - just some tiny regalloc */
|
||||
J3DModel* model = mpMorf->getModel();
|
||||
J3DModelData* modelData = model->getModelData();
|
||||
g_env_light.settingTevStruct(TEV_TYPE_ACTOR, getPositionP(), &mTevStr);
|
||||
g_env_light.setLightTevColorType(model, &mTevStr);
|
||||
dDlst_texSpecmapST(&mEyePos, &mTevStr, modelData, attr().spec);
|
||||
mpMorf->updateDL();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 00000580-000005A0 .text Mthd_Create__Q29daObjGong26@unnamed@d_a_obj_gong_cpp@FPv */
|
||||
void daObjGong::@unnamed@d_a_obj_gong_cpp@::Mthd_Create(void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 000005A0-000005C4 .text Mthd_Delete__Q29daObjGong26@unnamed@d_a_obj_gong_cpp@FPv */
|
||||
void daObjGong::@unnamed@d_a_obj_gong_cpp@::Mthd_Delete(void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 000005C4-000005E8 .text Mthd_Execute__Q29daObjGong26@unnamed@d_a_obj_gong_cpp@FPv */
|
||||
void daObjGong::@unnamed@d_a_obj_gong_cpp@::Mthd_Execute(void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 000005E8-0000060C .text Mthd_Draw__Q29daObjGong26@unnamed@d_a_obj_gong_cpp@FPv */
|
||||
void daObjGong::@unnamed@d_a_obj_gong_cpp@::Mthd_Draw(void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 0000060C-00000614 .text Mthd_IsDelete__Q29daObjGong26@unnamed@d_a_obj_gong_cpp@FPv */
|
||||
void daObjGong::@unnamed@d_a_obj_gong_cpp@::Mthd_IsDelete(void*) {
|
||||
/* Nonmatching */
|
||||
namespace daObjGong {
|
||||
namespace {
|
||||
/* 00000580-000005A0 .text Mthd_Create__Q29daObjGong26@unnamed@d_a_obj_gong_cpp@FPv */
|
||||
s32 Mthd_Create(void* i_this) {
|
||||
return ((Act_c*)i_this)->_create();
|
||||
}
|
||||
|
||||
/* 000005A0-000005C4 .text Mthd_Delete__Q29daObjGong26@unnamed@d_a_obj_gong_cpp@FPv */
|
||||
BOOL Mthd_Delete(void* i_this) {
|
||||
return ((Act_c*)i_this)->_delete();
|
||||
}
|
||||
|
||||
/* 000005C4-000005E8 .text Mthd_Execute__Q29daObjGong26@unnamed@d_a_obj_gong_cpp@FPv */
|
||||
BOOL Mthd_Execute(void* i_this) {
|
||||
return ((Act_c*)i_this)->_execute();
|
||||
}
|
||||
|
||||
/* 000005E8-0000060C .text Mthd_Draw__Q29daObjGong26@unnamed@d_a_obj_gong_cpp@FPv */
|
||||
BOOL Mthd_Draw(void* i_this) {
|
||||
return ((Act_c*)i_this)->_draw();
|
||||
}
|
||||
|
||||
/* 0000060C-00000614 .text Mthd_IsDelete__Q29daObjGong26@unnamed@d_a_obj_gong_cpp@FPv */
|
||||
BOOL Mthd_IsDelete(void* i_this) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static actor_method_class Mthd_Table = {
|
||||
(process_method_func)Mthd_Create,
|
||||
(process_method_func)Mthd_Delete,
|
||||
(process_method_func)Mthd_Execute,
|
||||
(process_method_func)Mthd_IsDelete,
|
||||
(process_method_func)Mthd_Draw,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
actor_process_profile_definition g_profile_Obj_Gong = {
|
||||
/* LayerID */ fpcLy_CURRENT_e,
|
||||
/* ListID */ 3,
|
||||
/* ListPrio */ fpcPi_CURRENT_e,
|
||||
/* ProcName */ PROC_Obj_Gong,
|
||||
/* Proc SubMtd */ &g_fpcLf_Method.mBase,
|
||||
/* Size */ sizeof(daObjGong::Act_c),
|
||||
/* SizeOther */ 0,
|
||||
/* Parameters */ 0,
|
||||
/* Leaf SubMtd */ &g_fopAc_Method.base,
|
||||
/* Priority */ 0x004C,
|
||||
/* Actor SubMtd */ &daObjGong::Mthd_Table,
|
||||
/* Status */ fopAcStts_UNK40000_e | fopAcStts_CULL_e | fopAcStts_NOCULLEXEC_e,
|
||||
/* Group */ fopAc_ACTOR_e,
|
||||
/* CullType */ fopAc_CULLBOX_CUSTOM_e,
|
||||
};
|
||||
|
||||
@@ -1650,14 +1650,14 @@ J3DModel* mDoExt_J3DModel__create(J3DModelData* i_modelData, u32 i_modelFlag, u3
|
||||
}
|
||||
|
||||
int ret = model->entryModelData(i_modelData, i_modelFlag, 1);
|
||||
if (ret == kJ3DError_Success) {
|
||||
if (ret == J3DErrType_Success) {
|
||||
if (i_modelFlag == 0x80000) {
|
||||
if (i_differedDlistFlag & 0x2) {
|
||||
i_differedDlistFlag |= 0x20;
|
||||
}
|
||||
|
||||
ret = model->newDifferedDisplayList(i_differedDlistFlag);
|
||||
if (ret != kJ3DError_Success) {
|
||||
if (ret != J3DErrType_Success) {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user