misc matches

This commit is contained in:
Jasper St. Pierre
2023-11-06 17:19:01 -08:00
parent 048f59ece8
commit 317107283a
5 changed files with 100 additions and 54 deletions
+1 -1
View File
@@ -141,7 +141,7 @@ public:
/* 0x014 */ u32 mUserArea;
/* 0x018 */ Vec mBaseScale;
/* 0x024 */ Mtx mBaseTransformMtx;
/* 0x054 */ Mtx mInternalView;
/* 0x054 */ Mtx mViewBaseMtx;
/* 0x084 */ u8* mpScaleFlagArr;
/* 0x088 */ u8* mpEvlpScaleFlagArr;
/* 0x08C */ Mtx* mpNodeMtx;
+1 -3
View File
@@ -152,7 +152,6 @@ J2DPicture::~J2DPicture() {
/* 802D3824-802D3A08 .text insert__10J2DPictureFPC7ResTIMGUcf */
bool J2DPicture::insert(const ResTIMG* pTimg, u8 idx, f32 param_3) {
/* Nonmatching */
if (!pTimg || mNumTexture >= 4 || idx >= 4 || idx > mNumTexture) {
return false;
}
@@ -162,8 +161,7 @@ bool J2DPicture::insert(const ResTIMG* pTimg, u8 idx, f32 param_3) {
mBlendKonstColorF[i] = mBlendKonstColorF[i - 1];
mBlendKonstAlphaF[i] = mBlendKonstAlphaF[i - 1];
}
s32 mask = (1 << idx) - 1;
mValidTexture = (mValidTexture & mask) | ((mValidTexture & ~mask) << 1);
mValidTexture = (mValidTexture & ((1 << idx) - 1)) | ((mValidTexture & ~((1 << idx) - 1)) << 1);
mpTexture[idx] = texture;
mValidTexture |= (1 << idx);
mBlendKonstColorF[idx] = param_3;
+2 -12
View File
@@ -4,25 +4,15 @@
//
#include "JSystem/J2DGraph/J2DScreen.h"
#include "JSystem/J2DGraph/J2DPicture.h"
#include "JSystem/J2DGraph/J2DTextBox.h"
#include "JSystem/J2DGraph/J2DWindow.h"
#include "JSystem/J2DGraph/J2DOrthoGraph.h"
#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/JKernel/JKRFileLoader.h"
#include "JSystem/JSupport/JSUMemoryStream.h"
#include "JSystem/JUtility/JUTAssert.h"
class J2DWindow : public J2DPane {
public:
J2DWindow(J2DPane * pPane, JSURandomInputStream * pStream);
u8 pad[0x114 - 0x0cc];
};
class J2DPicture : public J2DPane {
public:
J2DPicture(J2DPane * pPane, JSURandomInputStream * pStream);
u8 pad[0x124 - 0x0cc];
};
/* 802D08E4-802D0944 .text __dt__9J2DScreenFv */
J2DScreen::~J2DScreen() {
}
+64 -7
View File
@@ -4,21 +4,78 @@
//
#include "JSystem/J2DGraph/J2DTextBox.h"
#include "dolphin/types.h"
#include "JSystem/JKernel/JKRFileLoader.h"
#include "JSystem/JSupport/JSURandomInputStream.h"
#include "JSystem/JUtility/JUTResource.h"
/* 802D51D8-802D5268 .text __ct__10J2DTextBoxFPCcPCc */
J2DTextBox::J2DTextBox(const char*, const char*) {
/* Nonmatching */
J2DTextBox::J2DTextBox(const char* font, const char* str) : mpFont(NULL), mStringPtr(NULL) {
void * font_res = JKRFileLoader::getGlbResource(font, NULL);
initiate((ResFONT*) font_res, str, HBIND_LEFT, VBIND_TOP);
}
/* 802D5268-802D55D4 .text __ct__10J2DTextBoxFP7J2DPaneP20JSURandomInputStream */
J2DTextBox::J2DTextBox(J2DPane*, JSURandomInputStream*) {
/* Nonmatching */
J2DTextBox::J2DTextBox(J2DPane* parent, JSURandomInputStream* stream) : mpFont(NULL), mStringPtr(NULL) {
s32 streamPos = stream->getPosition();
J2DPaneHeader header;
s32 endPos;
u8 num;
stream->read(&header, sizeof(header));
mMagic = header.mMagic;
endPos = streamPos + header.mSize;
makePaneStream(parent, stream);
JUTResReference resRef;
num = stream->readU8();
ResFONT * font_res = (ResFONT *) resRef.getResource(stream, 'FONT', NULL);
if (font_res != NULL)
mpFont = new JUTResFont(font_res, NULL);
mCharColor.set(stream->readU32());
mGradColor.set(stream->readU32());
u8 bindingFlag = stream->readU8();
mBindingH = (bindingFlag >> 2) & 0x03;
mBindingV = (bindingFlag >> 0) & 0x03;
mCharSpace = stream->readS16();
mLineSpace = stream->readS16();
mFontSizeX = stream->readU16();
mFontSizeY = stream->readU16();
s16 stringLen = stream->readU16();
mStringPtr = new char[stringLen + 1];
stream->read(mStringPtr, stringLen);
mStringPtr[stringLen] = '\0';
num -= 10;
if (num) {
u8 isConnectParent = stream->readU8();
if (isConnectParent)
setConnectParent(true);
num--;
}
mBlack = JUtility::TColor(0);
mWhite = JUtility::TColor(0xffffffff);
if (num) {
mBlack.set(stream->readU32());
num--;
}
if (num) {
mWhite.set(stream->readU32());
num--;
}
field_0xd8 = 0.0f;
field_0xdc = 0.0f;
stream->seek(endPos, JSUStreamSeekFrom_SET);
mTextFontOwned = true;
}
/* 802D55D4-802D5660 .text __ct__10J2DTextBoxFUlRCQ29JGeometry8TBox2<f>PC7ResFONTPCc18J2DTextBoxHBinding18J2DTextBoxVBinding */
J2DTextBox::J2DTextBox(u32, const JGeometry::TBox2<f32>&, const ResFONT*, const char*, J2DTextBoxHBinding, J2DTextBoxVBinding) {
/* Nonmatching */
J2DTextBox::J2DTextBox(u32 tag, const JGeometry::TBox2<f32>& bounds, const ResFONT* font_res, const char* str, J2DTextBoxHBinding hbind, J2DTextBoxVBinding vbind) : J2DPane(tag, bounds), mpFont(NULL), mStringPtr(NULL) {
initiate(font_res, str, hbind, vbind);
}
/* 802D5660-802D5820 .text initiate__10J2DTextBoxFPC7ResFONTPCc18J2DTextBoxHBinding18J2DTextBoxVBinding */
+32 -31
View File
@@ -38,7 +38,7 @@ void J3DModel::initialize() {
mBaseScale.z = 1.0f;
MTXIdentity(mBaseTransformMtx);
MTXIdentity(mInternalView);
MTXIdentity(mViewBaseMtx);
mpScaleFlagArr = NULL;
mpEvlpScaleFlagArr = NULL;
@@ -319,19 +319,19 @@ s32 J3DModel::createMatPacket(J3DModelData* pModelData, u32 flag) {
}
/* 802EDF60-802EE1D4 .text createBumpMtxArray__8J3DModelFP12J3DModelDataUl */
s32 J3DModel::createBumpMtxArray(J3DModelData* modelData, u32 flag) {
s32 J3DModel::createBumpMtxArray(J3DModelData* modelData, u32 bufferNum) {
/* Nonmatching */
if (modelData->getModelDataType() == 0) {
u16 num = 0;
u16 bumpMtxNum = 0;
for (s32 matIdx = 0; matIdx < modelData->getMaterialNum(); matIdx++) {
J3DMaterial * pMaterial = getModelData()->getMaterialNodePointer(matIdx);
if (pMaterial->getNBTScale()->mbHasScale == 1)
num += pMaterial->getShape()->countBumpMtxNum();
bumpMtxNum += pMaterial->getShape()->countBumpMtxNum();
}
if (num != 0 && flag != 0) {
if (bumpMtxNum != 0 && bufferNum != 0) {
for (s32 i = 0; i < 2; i++) {
mpBumpMtxArr[i] = new Mtx33**[num];
mpBumpMtxArr[i] = new Mtx33**[bumpMtxNum];
if (mpBumpMtxArr[i] == NULL)
return kJ3DError_Alloc;
}
@@ -342,8 +342,8 @@ s32 J3DModel::createBumpMtxArray(J3DModelData* modelData, u32 flag) {
for (s32 matIdx = 0; matIdx < modelData->getMaterialNum(); matIdx++) {
J3DMaterial * pMaterial = getModelData()->getMaterialNodePointer(matIdx);
if (pMaterial->getNBTScale()->mbHasScale == 1) {
mpBumpMtxArr[i][matIdx] = new Mtx33*[num];
if (mpBumpMtxArr[i][matIdx] == NULL)
mpBumpMtxArr[i][bumpMtxOffset] = new Mtx33*[bufferNum];
if (mpBumpMtxArr[i][bumpMtxOffset] == NULL)
return kJ3DError_Alloc;
pMaterial->getShape()->setBumpMtxOffset(bumpMtxOffset);
bumpMtxOffset++;
@@ -356,16 +356,17 @@ s32 J3DModel::createBumpMtxArray(J3DModelData* modelData, u32 flag) {
for (s32 matIdx = 0; matIdx < modelData->getMaterialNum(); matIdx++) {
J3DMaterial * pMaterial = getModelData()->getMaterialNodePointer(matIdx);
if (pMaterial->getNBTScale()->mbHasScale == 1) {
for (u32 j = 0; j < flag; j++) {
mpBumpMtxArr[i][matIdx][j] = new(0x20) Mtx33[modelData->getDrawMtxNum()];
if (mpBumpMtxArr[i][matIdx][j] == NULL)
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;
}
bumpMtxOffset++;
}
}
}
if (num != 0)
if (bumpMtxNum != 0)
getModelData()->setBumpFlag(1);
}
@@ -403,7 +404,6 @@ void J3DModel::unlock() {
/* 802EE2C4-802EE42C .text calcMaterial__8J3DModelFv */
void J3DModel::calcMaterial() {
/* Nonmatching - regswap */
j3dSys.setModel(this);
j3dSys.setTexture(mModelData->getTexture());
@@ -419,10 +419,10 @@ void J3DModel::calcMaterial() {
j3dSys.offFlag(8);
}
for (u16 i = 0; i < mModelData->getMaterialNum(); i++) {
for (u16 i = 0; i < getModelData()->getMaterialNum(); i++) {
j3dSys.setMatPacket(&mpMatPacket[i]);
J3DMaterial* pMaterial = mModelData->getMaterialNodePointer(i);
J3DMaterial* pMaterial = getModelData()->getMaterialNodePointer(i);
if (pMaterial->getMaterialAnm() != NULL)
pMaterial->getMaterialAnm()->calc(pMaterial);
@@ -488,8 +488,8 @@ s32 J3DModel::setSkinDeform(J3DSkinDeform* pSkinDeform, u32 flags) {
/* 802EE5D8-802EE67C .text calcAnmMtx__8J3DModelFv */
void J3DModel::calcAnmMtx() {
j3dSys.setCurrentMtxCalc(getModelData()->getJointTree().getBasicMtxCalc());
j3dSys.setModel(this);
j3dSys.setCurrentMtxCalc(getModelData()->getJointTree().getBasicMtxCalc());
if (checkFlag(J3DMdlFlag_Unk00002))
j3dSys.getCurrentMtxCalc()->init(j3dDefaultScale, j3dDefaultMtx);
@@ -601,25 +601,25 @@ extern void J3DPSMtxArrayConcat(f32(*)[4], f32(*)[4], f32(*)[4], u32);
/* 802EEBDC-802EEE30 .text calcDrawMtx__8J3DModelFv */
void J3DModel::calcDrawMtx() {
switch (mFlags & 0x03) {
case 1:
for (u32 i = 0; i < getModelData()->getDrawFullWgtMtxNum(); i++)
switch (getMtxCalcMode()) {
case 0:
for (u16 i = 0; i < getModelData()->getDrawFullWgtMtxNum(); i++)
MTXConcat(j3dSys.getViewMtx(), getAnmMtx(getModelData()->getDrawMtxIndex(i)), getDrawMtxPtr()[i]);
if (getModelData()->getDrawFullWgtMtxNum() < getModelData()->getDrawMtxNum())
if (getModelData()->getDrawFullWgtMtxNum() > getModelData()->getDrawMtxNum())
J3DPSMtxArrayConcat(j3dSys.getViewMtx(), (MtxP)mpWeightEnvMtx, (MtxP)getDrawMtxPtr(), getModelData()->getWEvlpMtxNum());
break;
case 0:
for (u32 i = 0; i < getModelData()->getDrawFullWgtMtxNum(); i++)
case 1:
for (u16 i = 0; i < getModelData()->getDrawFullWgtMtxNum(); i++)
MTXCopy(getAnmMtx(getModelData()->getDrawMtxIndex(i)), getDrawMtxPtr()[i]);
for (u32 i = 0; i < getModelData()->getWEvlpMtxNum(); i++)
for (u16 i = 0; i < getModelData()->getWEvlpMtxNum(); i++)
MTXCopy(getWeightAnmMtx(i), getDrawMtxPtr()[getModelData()->getDrawFullWgtMtxNum() + i]);
break;
case 2:
calcViewBaseMtx(j3dSys.getViewMtx(), mBaseScale, mBaseTransformMtx, mInternalView);
for (u32 i = 0; i < getModelData()->getDrawFullWgtMtxNum(); i++)
MTXConcat(mInternalView, getAnmMtx(getModelData()->getDrawMtxIndex(i)), getDrawMtxPtr()[i]);
if (getModelData()->getDrawFullWgtMtxNum() < getModelData()->getDrawMtxNum())
J3DPSMtxArrayConcat(mInternalView, (MtxP)mpWeightEnvMtx, (MtxP)getDrawMtxPtr(), getModelData()->getWEvlpMtxNum());
calcViewBaseMtx(j3dSys.getViewMtx(), mBaseScale, mBaseTransformMtx, mViewBaseMtx);
for (u16 i = 0; i < getModelData()->getDrawFullWgtMtxNum(); i++)
MTXConcat(mViewBaseMtx, getAnmMtx(getModelData()->getDrawMtxIndex(i)), getDrawMtxPtr()[i]);
if (getModelData()->getDrawFullWgtMtxNum() > getModelData()->getDrawMtxNum())
J3DPSMtxArrayConcat(mViewBaseMtx, (MtxP)mpWeightEnvMtx, (MtxP)getDrawMtxPtr(), getModelData()->getWEvlpMtxNum());
break;
}
}
@@ -631,12 +631,12 @@ void J3DModel::viewCalc() {
if (mModelData->checkFlag(0x20)) {
if (getMtxCalcMode() == 2)
calcViewBaseMtx(j3dSys.getViewMtx(), mBaseScale, mBaseTransformMtx, (MtxP)&mInternalView);
calcViewBaseMtx(j3dSys.getViewMtx(), mBaseScale, mBaseTransformMtx, (MtxP)&mViewBaseMtx);
prepareShapePackets();
} else if (isCpuSkinningOn()) {
if (getMtxCalcMode() == 2)
calcViewBaseMtx(j3dSys.getViewMtx(), mBaseScale, mBaseTransformMtx, (MtxP)&mInternalView);
calcViewBaseMtx(j3dSys.getViewMtx(), mBaseScale, mBaseTransformMtx, (MtxP)&mViewBaseMtx);
prepareShapePackets();
} else {
@@ -737,6 +737,7 @@ void J3DModel::calcBBoard() {
void J3DModel::prepareShapePackets() {
/* Nonmatching */
u16 shapeNum = getModelData()->getShapeNum();
for (u16 i = 0; i < shapeNum; i++) {
J3DShapePacket* pkt = getShapePacket(i);
pkt->setScaleFlagArray(mpScaleFlagArr);
@@ -760,7 +761,7 @@ void J3DModel::prepareShapePackets() {
pShape->offFlag(J3DSysFlag_SkinNrmCpu);
if (getMtxCalcMode() == 2)
pkt->setBaseMtxPtr(&mInternalView);
pkt->setBaseMtxPtr(&mViewBaseMtx);
else
pkt->setBaseMtxPtr(&j3dSys.mViewMtx);
}