mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-21 14:07:29 -04:00
misc matches
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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() {
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user