mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-17 14:06:42 -04:00
@@ -76,11 +76,13 @@ void J2DTexGenBlock::setTexMtx(u32 param_0, J2DTexMtx& param_1) {
|
||||
|
||||
void J2DTexGenBlock::getTexMtx(u32 param_0, J2DTexMtx& param_1) {
|
||||
J3D_PANIC(123, param_0 < 8, "Error : range over.");
|
||||
|
||||
if (mTexMtx[param_0]) {
|
||||
J2DTexMtxInfo& texMtxInfo = mTexMtx[param_0]->getTexMtxInfo();
|
||||
param_1.setTexMtxInfo(texMtxInfo);
|
||||
|
||||
if (!mTexMtx[param_0]) {
|
||||
return;
|
||||
}
|
||||
|
||||
J2DTexMtxInfo& texMtxInfo = mTexMtx[param_0]->getTexMtxInfo();
|
||||
param_1.setTexMtxInfo(texMtxInfo);
|
||||
}
|
||||
|
||||
JUTTexture* J2DTevBlock::getTexture(u32) {
|
||||
@@ -349,6 +351,7 @@ void J2DTevBlock1::shiftDeleteFlag(u8, bool) {
|
||||
|
||||
void J2DTevBlock1::setGX() {
|
||||
loadTexture(GX_TEXMAP0, 0);
|
||||
(void)bool(mFont);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, (GXTexCoordID)mTevOrder[0].getTexCoord(), (GXTexMapID)mTevOrder[0].getTexMap(), (GXChannelID)mTevOrder[0].getColor());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
@@ -366,10 +369,10 @@ void J2DTevBlock1::setGX() {
|
||||
GXTevAlphaArg(mTevStage[0].getAlphaD()));
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GXTevOp(mTevStage[0].getCOp()),
|
||||
GXTevBias(mTevStage[0].getCBias()), GXTevScale(mTevStage[0].getCScale()),
|
||||
mTevStage[0].getCClamp(), GXTevRegID(mTevStage[0].getCReg()));
|
||||
GXBool(mTevStage[0].getCClamp()), GXTevRegID(mTevStage[0].getCReg()));
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, (GXTevOp)mTevStage[0].getAOp(),
|
||||
GXTevBias(mTevStage[0].getABias()), GXTevScale(mTevStage[0].getAScale()),
|
||||
mTevStage[0].getAClamp(), GXTevRegID(mTevStage[0].getAReg()));
|
||||
GXBool(mTevStage[0].getAClamp()), GXTevRegID(mTevStage[0].getAReg()));
|
||||
GXSetTevKColorSel(GX_TEVSTAGE0, mTevKColorSel[0] != 0xff ? GXTevKColorSel(mTevKColorSel[0]) : GX_TEV_KCSEL_1);
|
||||
GXSetTevKAlphaSel(GX_TEVSTAGE0, mTevKAlphaSel[0] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[0]) : GX_TEV_KASEL_1);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
@@ -483,28 +486,27 @@ bool J2DTevBlock2::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
|
||||
return false;
|
||||
}
|
||||
|
||||
JUTTexture* tex;
|
||||
u8 tlutid = 0;
|
||||
if (p_timg->indexTexture && p_tlut == NULL) {
|
||||
tex = mTexture[0];
|
||||
if (tex != NULL && tex->getTexInfo() != NULL && tex->getTexInfo()->indexTexture) {
|
||||
int tlutname = tex->getTlutName();
|
||||
if (p_timg->indexTexture && p_tlut == NULL && mTexture[0] != NULL) {
|
||||
const ResTIMG* timg = mTexture[0]->getTexInfo();
|
||||
if (timg != NULL && timg->indexTexture) {
|
||||
int tlutname = mTexture[0]->getTlutName();
|
||||
if (tlutname == GX_TLUT0 || tlutname == GX_BIGTLUT0) {
|
||||
tlutid = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tex = mTexture[texNo];
|
||||
if (tex == NULL) {
|
||||
JUTTexture* newtex = new JUTTexture(p_timg, tlutid);
|
||||
JUTTexture* tex;
|
||||
if (mTexture[texNo] == NULL) {
|
||||
tex = new JUTTexture(p_timg, tlutid);
|
||||
|
||||
if (newtex == NULL) {
|
||||
if (tex == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (p_tlut != NULL) {
|
||||
newtex->storeTIMG(p_timg, p_tlut);
|
||||
tex->storeTIMG(p_timg, p_tlut);
|
||||
}
|
||||
|
||||
if (param_0 == 0) {
|
||||
@@ -512,10 +514,11 @@ bool J2DTevBlock2::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
|
||||
mPalette[1] = mPalette[0];
|
||||
mTexNo[1] = mTexNo[0];
|
||||
}
|
||||
mTexture[param_0] = newtex;
|
||||
mTexture[param_0] = tex;
|
||||
shiftDeleteFlag(param_0, true);
|
||||
mUndeleteFlag |= (1 << param_0);
|
||||
} else {
|
||||
tex = mTexture[texNo];
|
||||
if (p_tlut == NULL) {
|
||||
tex->storeTIMG(p_timg, tlutid);
|
||||
} else {
|
||||
@@ -604,9 +607,8 @@ bool J2DTevBlock2::setTexture(u32 param_0, ResTIMG const* p_timg) {
|
||||
const ResTIMG* timg = mTexture[idx]->getTexInfo();
|
||||
if (timg != NULL && timg->indexTexture) {
|
||||
int tlutname = mTexture[idx]->getTlutName();
|
||||
u8 tlut_no = tlutname - (tlutname >= GX_BIGTLUT0 ? GX_BIGTLUT0 : GX_TLUT0);
|
||||
|
||||
if (tlut_no == 0) {
|
||||
if (u8(tlutname - (tlutname >= GX_BIGTLUT0 ? GX_BIGTLUT0 : GX_TLUT0)) == 0) {
|
||||
tlutid = 1;
|
||||
}
|
||||
}
|
||||
@@ -763,7 +765,7 @@ void J2DTevBlock2::shiftDeleteFlag(u8 param_0, bool param_1) {
|
||||
mUndeleteFlag = (mUndeleteFlag & ((1 << param_0) - 1)) | ((mUndeleteFlag & ~((1 << (param_0 + 1)) - 1)) >> 1);
|
||||
}
|
||||
|
||||
mUndeleteFlag = (mUndeleteFlag | tmpFlags) & 0xFF;
|
||||
mUndeleteFlag = u8(mUndeleteFlag | tmpFlags);
|
||||
}
|
||||
|
||||
void J2DTevBlock2::setGX() {
|
||||
@@ -771,6 +773,8 @@ void J2DTevBlock2::setGX() {
|
||||
loadTexture(GXTexMapID(i), i);
|
||||
}
|
||||
|
||||
(void)bool(mFont);
|
||||
|
||||
for (int i = 0; i < mTevStageNum; i++) {
|
||||
GXSetTevOrder(GXTevStageID(i), (GXTexCoordID)mTevOrder[i].getTexCoord(), (GXTexMapID)mTevOrder[i].getTexMap(), (GXChannelID)mTevOrder[i].getColor());
|
||||
}
|
||||
@@ -791,10 +795,10 @@ void J2DTevBlock2::setGX() {
|
||||
GXTevAlphaArg(mTevStage[i].getAlphaD()));
|
||||
GXSetTevColorOp(GXTevStageID(i), GXTevOp(mTevStage[i].getCOp()),
|
||||
GXTevBias(mTevStage[i].getCBias()), GXTevScale(mTevStage[i].getCScale()),
|
||||
mTevStage[i].getCClamp(), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXBool(mTevStage[i].getCClamp()), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXSetTevAlphaOp(GXTevStageID(i), (GXTevOp)mTevStage[i].getAOp(),
|
||||
GXTevBias(mTevStage[i].getABias()), GXTevScale(mTevStage[i].getAScale()),
|
||||
mTevStage[i].getAClamp(), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXBool(mTevStage[i].getAClamp()), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXSetTevKColorSel(GXTevStageID(i), mTevKColorSel[i] != 0xff ? GXTevKColorSel(mTevKColorSel[i]) : GX_TEV_KCSEL_1);
|
||||
GXSetTevKAlphaSel(GXTevStageID(i), mTevKAlphaSel[i] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[i]) : GX_TEV_KASEL_1);
|
||||
}
|
||||
@@ -943,8 +947,9 @@ bool J2DTevBlock4::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
|
||||
}
|
||||
}
|
||||
}
|
||||
JUTTexture* texture;
|
||||
if (!mTexture[idx]) {
|
||||
JUTTexture* texture = new JUTTexture(p_timg, local_43);
|
||||
texture = new JUTTexture(p_timg, local_43);
|
||||
if (!texture) {
|
||||
return false;
|
||||
}
|
||||
@@ -960,7 +965,7 @@ bool J2DTevBlock4::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
|
||||
shiftDeleteFlag(param_0, true);
|
||||
mUndeleteFlag |= 1 << param_0;
|
||||
} else {
|
||||
JUTTexture* texture = mTexture[idx];
|
||||
texture = mTexture[idx];
|
||||
if (!p_tlut) {
|
||||
texture->storeTIMG(p_timg, local_43);
|
||||
} else {
|
||||
@@ -1037,10 +1042,9 @@ bool J2DTevBlock4::setTexture(u32 param_0, ResTIMG const* p_timg) {
|
||||
return false;
|
||||
}
|
||||
|
||||
u8 used_tlut;
|
||||
u8 tlutid = 0;
|
||||
if (p_timg != NULL && p_timg->indexTexture) {
|
||||
used_tlut = 0;
|
||||
u8 used_tlut = 0;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (i != param_0 && mTexture[i] != NULL) {
|
||||
const ResTIMG* timg = mTexture[i]->getTexInfo();
|
||||
@@ -1213,13 +1217,14 @@ void J2DTevBlock4::shiftDeleteFlag(u8 param_0, bool param_1) {
|
||||
mUndeleteFlag = (mUndeleteFlag & ((1 << param_0) - 1)) | ((mUndeleteFlag & ~((1 << (param_0 + 1)) - 1)) >> 1);
|
||||
}
|
||||
|
||||
mUndeleteFlag |= tmpFlags;
|
||||
mUndeleteFlag = u8(mUndeleteFlag | tmpFlags);
|
||||
}
|
||||
|
||||
void J2DTevBlock4::setGX() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
loadTexture(GXTexMapID(i), i);
|
||||
}
|
||||
(void)bool(mFont);
|
||||
for (int i = 0; i < mTevStageNum; i++) {
|
||||
GXSetTevOrder(GXTevStageID(i), (GXTexCoordID)mTevOrder[i].getTexCoord(), (GXTexMapID)mTevOrder[i].getTexMap(), (GXChannelID)mTevOrder[i].getColor());
|
||||
}
|
||||
@@ -1238,10 +1243,10 @@ void J2DTevBlock4::setGX() {
|
||||
GXTevAlphaArg(mTevStage[i].getAlphaD()));
|
||||
GXSetTevColorOp(GXTevStageID(i), GXTevOp(mTevStage[i].getCOp()),
|
||||
GXTevBias(mTevStage[i].getCBias()), GXTevScale(mTevStage[i].getCScale()),
|
||||
mTevStage[i].getCClamp(), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXBool(mTevStage[i].getCClamp()), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXSetTevAlphaOp(GXTevStageID(i), (GXTevOp)mTevStage[i].getAOp(),
|
||||
GXTevBias(mTevStage[i].getABias()), GXTevScale(mTevStage[i].getAScale()),
|
||||
mTevStage[i].getAClamp(), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXBool(mTevStage[i].getAClamp()), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXSetTevKColorSel(GXTevStageID(i), mTevKColorSel[i] != 0xff ? GXTevKColorSel(mTevKColorSel[i]) : GX_TEV_KCSEL_1);
|
||||
GXSetTevKAlphaSel(GXTevStageID(i), mTevKAlphaSel[i] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[i]) : GX_TEV_KASEL_1);
|
||||
}
|
||||
@@ -1387,8 +1392,9 @@ bool J2DTevBlock8::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
|
||||
}
|
||||
}
|
||||
}
|
||||
JUTTexture* texture;
|
||||
if (!mTexture[idx]) {
|
||||
JUTTexture* texture = new JUTTexture(p_timg, local_43);
|
||||
texture = new JUTTexture(p_timg, local_43);
|
||||
if (!texture) {
|
||||
return false;
|
||||
}
|
||||
@@ -1404,7 +1410,7 @@ bool J2DTevBlock8::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette*
|
||||
shiftDeleteFlag(param_0, true);
|
||||
mUndeleteFlag |= 1 << param_0;
|
||||
} else {
|
||||
JUTTexture* texture = mTexture[idx];
|
||||
texture = mTexture[idx];
|
||||
if (!p_tlut) {
|
||||
texture->storeTIMG(p_timg, local_43);
|
||||
} else {
|
||||
@@ -1459,7 +1465,7 @@ bool J2DTevBlock8::insertTexture(u32 param_0, JUTTexture* p_tex) {
|
||||
delete mTexture[7];
|
||||
}
|
||||
|
||||
mUndeleteFlag &= 0x7F;
|
||||
mUndeleteFlag &= ~0x80;
|
||||
}
|
||||
|
||||
for (u8 i = 7; i > param_0; i--) {
|
||||
@@ -1481,10 +1487,9 @@ bool J2DTevBlock8::setTexture(u32 param_0, ResTIMG const* p_timg) {
|
||||
return false;
|
||||
}
|
||||
|
||||
u8 used_tlut;
|
||||
u8 tlutid = 0;
|
||||
if (p_timg != NULL && p_timg->indexTexture) {
|
||||
used_tlut = 0;
|
||||
u8 used_tlut = 0;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (i != param_0 && mTexture[i] != NULL) {
|
||||
const ResTIMG* timg = mTexture[i]->getTexInfo();
|
||||
@@ -1659,6 +1664,7 @@ void J2DTevBlock8::setGX() {
|
||||
for (int i = 0; i < 8; i++) {
|
||||
loadTexture(GXTexMapID(i), i);
|
||||
}
|
||||
(void)bool(mFont);
|
||||
for (int i = 0; i < mTevStageNum; i++) {
|
||||
GXSetTevOrder(GXTevStageID(i), (GXTexCoordID)mTevOrder[i].getTexCoord(), (GXTexMapID)mTevOrder[i].getTexMap(), (GXChannelID)mTevOrder[i].getColor());
|
||||
}
|
||||
@@ -1677,10 +1683,10 @@ void J2DTevBlock8::setGX() {
|
||||
GXTevAlphaArg(mTevStage[i].getAlphaD()));
|
||||
GXSetTevColorOp(GXTevStageID(i), GXTevOp(mTevStage[i].getCOp()),
|
||||
GXTevBias(mTevStage[i].getCBias()), GXTevScale(mTevStage[i].getCScale()),
|
||||
mTevStage[i].getCClamp(), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXBool(mTevStage[i].getCClamp()), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXSetTevAlphaOp(GXTevStageID(i), (GXTevOp)mTevStage[i].getAOp(),
|
||||
GXTevBias(mTevStage[i].getABias()), GXTevScale(mTevStage[i].getAScale()),
|
||||
mTevStage[i].getAClamp(), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXBool(mTevStage[i].getAClamp()), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXSetTevKColorSel(GXTevStageID(i), mTevKColorSel[i] != 0xff ? GXTevKColorSel(mTevKColorSel[i]) : GX_TEV_KCSEL_1);
|
||||
GXSetTevKAlphaSel(GXTevStageID(i), mTevKAlphaSel[i] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[i]) : GX_TEV_KASEL_1);
|
||||
}
|
||||
@@ -1826,8 +1832,9 @@ bool J2DTevBlock16::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette
|
||||
}
|
||||
}
|
||||
}
|
||||
JUTTexture* texture;
|
||||
if (!mTexture[idx]) {
|
||||
JUTTexture* texture = new JUTTexture(p_timg, local_43);
|
||||
texture = new JUTTexture(p_timg, local_43);
|
||||
if (!texture) {
|
||||
return false;
|
||||
}
|
||||
@@ -1843,7 +1850,7 @@ bool J2DTevBlock16::insertTexture(u32 param_0, ResTIMG const* p_timg, JUTPalette
|
||||
shiftDeleteFlag(param_0, true);
|
||||
mUndeleteFlag |= 1 << param_0;
|
||||
} else {
|
||||
JUTTexture* texture = mTexture[idx];
|
||||
texture = mTexture[idx];
|
||||
if (!p_tlut) {
|
||||
texture->storeTIMG(p_timg, local_43);
|
||||
} else {
|
||||
@@ -1898,7 +1905,7 @@ bool J2DTevBlock16::insertTexture(u32 param_0, JUTTexture* p_tex) {
|
||||
delete mTexture[7];
|
||||
}
|
||||
|
||||
mUndeleteFlag &= 0x7F;
|
||||
mUndeleteFlag &= ~0x80;
|
||||
}
|
||||
|
||||
for (u8 i = 7; i > param_0; i--) {
|
||||
@@ -1920,10 +1927,9 @@ bool J2DTevBlock16::setTexture(u32 param_0, ResTIMG const* p_timg) {
|
||||
return false;
|
||||
}
|
||||
|
||||
u8 used_tlut;
|
||||
u8 tlutid = 0;
|
||||
if (p_timg != NULL && p_timg->indexTexture) {
|
||||
used_tlut = 0;
|
||||
u8 used_tlut = 0;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (i != param_0 && mTexture[i] != NULL) {
|
||||
const ResTIMG* timg = mTexture[i]->getTexInfo();
|
||||
@@ -2098,6 +2104,7 @@ void J2DTevBlock16::setGX() {
|
||||
for (int i = 0; i < 8; i++) {
|
||||
loadTexture(GXTexMapID(i), i);
|
||||
}
|
||||
(void)bool(mFont);
|
||||
for (int i = 0; i < mTevStageNum; i++) {
|
||||
GXSetTevOrder(GXTevStageID(i), (GXTexCoordID)mTevOrder[i].getTexCoord(), (GXTexMapID)mTevOrder[i].getTexMap(), (GXChannelID)mTevOrder[i].getColor());
|
||||
}
|
||||
@@ -2116,10 +2123,10 @@ void J2DTevBlock16::setGX() {
|
||||
GXTevAlphaArg(mTevStage[i].getAlphaD()));
|
||||
GXSetTevColorOp(GXTevStageID(i), GXTevOp(mTevStage[i].getCOp()),
|
||||
GXTevBias(mTevStage[i].getCBias()), GXTevScale(mTevStage[i].getCScale()),
|
||||
mTevStage[i].getCClamp(), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXBool(mTevStage[i].getCClamp()), GXTevRegID(mTevStage[i].getCReg()));
|
||||
GXSetTevAlphaOp(GXTevStageID(i), (GXTevOp)mTevStage[i].getAOp(),
|
||||
GXTevBias(mTevStage[i].getABias()), GXTevScale(mTevStage[i].getAScale()),
|
||||
mTevStage[i].getAClamp(), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXBool(mTevStage[i].getAClamp()), GXTevRegID(mTevStage[i].getAReg()));
|
||||
GXSetTevKColorSel(GXTevStageID(i), mTevKColorSel[i] != 0xff ? GXTevKColorSel(mTevKColorSel[i]) : GX_TEV_KCSEL_1);
|
||||
GXSetTevKAlphaSel(GXTevStageID(i), mTevKAlphaSel[i] != 0xff ? GXTevKAlphaSel(mTevKAlphaSel[i]) : GX_TEV_KASEL_1);
|
||||
}
|
||||
@@ -2149,13 +2156,13 @@ void J2DTevBlock16::loadTexture(GXTexMapID texmapID, u32 texIndex) {
|
||||
void J2DIndBlockFull::initialize() {
|
||||
mIndTexStageNum = 0;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mIndTexOrder[i] = j2dDefaultIndTexOrderNull;
|
||||
mIndTexOrder[i].setIndTexOrderInfo(j2dDefaultIndTexOrderNull);
|
||||
}
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mIndTexMtx[i] = j2dDefaultIndTexMtxInfo;
|
||||
mIndTexMtx[i].setIndTexMtxInfo(j2dDefaultIndTexMtxInfo);
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mTexCoordScale[i] = j2dDefaultIndTexCoordScaleInfo;
|
||||
mTexCoordScale[i].setIndTexCoordScaleInfo(j2dDefaultIndTexCoordScaleInfo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2181,5 +2188,5 @@ void J2DPEBlock::initialize() {
|
||||
void J2DPEBlock::setGX() {
|
||||
GXSetAlphaCompare(GXCompare(mAlphaComp.getComp0()), mAlphaComp.getRef0(), GXAlphaOp(mAlphaComp.getOp()), GXCompare(mAlphaComp.getComp1()), mAlphaComp.getRef1());
|
||||
GXSetBlendMode(GXBlendMode(mBlend.getType()), GXBlendFactor(mBlend.getSrcFactor()), GXBlendFactor(mBlend.getDstFactor()), GXLogicOp(mBlend.getOp()));
|
||||
GXSetDither(mDither);
|
||||
GXSetDither(GXBool(mDither));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user