mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-29 15:23:01 -04:00
update some actors to use sizeof for mSize, endian swap J2DScreen related structs, add 64bit endian swapping
game appears to be hanging on fully initing some processes, so while there isnt an immediate crash, nothing seems to be happening
This commit is contained in:
@@ -9,42 +9,42 @@
|
||||
#include <dolphin/types.h>
|
||||
|
||||
J2DMaterialFactory::J2DMaterialFactory(J2DMaterialBlock const& param_0) {
|
||||
field_0x0 = param_0.field_0x8;
|
||||
field_0x4 = JSUConvertOffsetToPtr<J2DMaterialInitData>(¶m_0, param_0.field_0xc);
|
||||
field_0x8 = JSUConvertOffsetToPtr<u16>(¶m_0, param_0.field_0x10);
|
||||
mMaterialNum = param_0.field_0x8;
|
||||
mpMaterialInitData = JSUConvertOffsetToPtr<J2DMaterialInitData>(¶m_0, param_0.field_0xc);
|
||||
mpMaterialID = JSUConvertOffsetToPtr<BE(u16)>(¶m_0, param_0.field_0x10);
|
||||
if (param_0.field_0x18 && param_0.field_0x18 - param_0.field_0x14 > 4) {
|
||||
field_0xc = JSUConvertOffsetToPtr<J2DIndInitData>(¶m_0, param_0.field_0x18);
|
||||
mpIndInitData = JSUConvertOffsetToPtr<J2DIndInitData>(¶m_0, param_0.field_0x18);
|
||||
}
|
||||
else {
|
||||
field_0xc = NULL;
|
||||
mpIndInitData = NULL;
|
||||
}
|
||||
field_0x30 = JSUConvertOffsetToPtr<BE(GXCullMode)>(¶m_0, param_0.field_0x1c);
|
||||
field_0x10 = JSUConvertOffsetToPtr<GXColor>(¶m_0, param_0.field_0x20);
|
||||
field_0x14 = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x24);
|
||||
field_0x18 = JSUConvertOffsetToPtr<J2DColorChanInfo>(¶m_0, param_0.field_0x28);
|
||||
field_0x1c = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x2c);
|
||||
field_0x20 = JSUConvertOffsetToPtr<J2DTexCoordInfo>(¶m_0, param_0.field_0x30);
|
||||
field_0x24 = JSUConvertOffsetToPtr<J2DTexMtxInfo>(¶m_0, param_0.field_0x34);
|
||||
field_0x28 = JSUConvertOffsetToPtr<u16>(¶m_0, param_0.field_0x38);
|
||||
field_0x2c = JSUConvertOffsetToPtr<u16>(¶m_0, param_0.field_0x3c);
|
||||
field_0x34 = JSUConvertOffsetToPtr<J2DTevOrderInfo>(¶m_0, param_0.field_0x40);
|
||||
field_0x38 = JSUConvertOffsetToPtr<BE(GXColorS10)>(¶m_0, param_0.field_0x44);
|
||||
field_0x3c = JSUConvertOffsetToPtr<GXColor>(¶m_0, param_0.field_0x48);
|
||||
field_0x40 = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x4c);
|
||||
field_0x44 = JSUConvertOffsetToPtr<J2DTevStageInfo>(¶m_0, param_0.field_0x50);
|
||||
field_0x48 = JSUConvertOffsetToPtr<J2DTevSwapModeInfo>(¶m_0, param_0.field_0x54);
|
||||
field_0x4c = JSUConvertOffsetToPtr<J2DTevSwapModeTableInfo>(¶m_0, param_0.field_0x58);
|
||||
field_0x50 = JSUConvertOffsetToPtr<J2DAlphaCompInfo>(¶m_0, param_0.field_0x5c);
|
||||
field_0x54 = JSUConvertOffsetToPtr<J2DBlendInfo>(¶m_0, param_0.field_0x60);
|
||||
field_0x58 = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x64);
|
||||
mpCullMode = JSUConvertOffsetToPtr<BE(GXCullMode)>(¶m_0, param_0.field_0x1c);
|
||||
mpMatColor = JSUConvertOffsetToPtr<GXColor>(¶m_0, param_0.field_0x20);
|
||||
mpColorChanNum = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x24);
|
||||
mpColorChanInfo = JSUConvertOffsetToPtr<J2DColorChanInfo>(¶m_0, param_0.field_0x28);
|
||||
mpTexGenNum = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x2c);
|
||||
mpTexCoordInfo = JSUConvertOffsetToPtr<J2DTexCoordInfo>(¶m_0, param_0.field_0x30);
|
||||
mpTexMtxInfo = JSUConvertOffsetToPtr<J2DTexMtxInfo>(¶m_0, param_0.field_0x34);
|
||||
mpTexNo = JSUConvertOffsetToPtr<BE(u16)>(¶m_0, param_0.field_0x38);
|
||||
mpFontNo = JSUConvertOffsetToPtr<BE(u16)>(¶m_0, param_0.field_0x3c);
|
||||
mpTevOrderInfo = JSUConvertOffsetToPtr<J2DTevOrderInfo>(¶m_0, param_0.field_0x40);
|
||||
mpTevColor = JSUConvertOffsetToPtr<BE(GXColorS10)>(¶m_0, param_0.field_0x44);
|
||||
mpTevKColor = JSUConvertOffsetToPtr<GXColor>(¶m_0, param_0.field_0x48);
|
||||
mpTevStageNum = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x4c);
|
||||
mpTevStageInfo = JSUConvertOffsetToPtr<J2DTevStageInfo>(¶m_0, param_0.field_0x50);
|
||||
mpTevSwapModeInfo = JSUConvertOffsetToPtr<J2DTevSwapModeInfo>(¶m_0, param_0.field_0x54);
|
||||
mpTevSwapModeTableInfo = JSUConvertOffsetToPtr<J2DTevSwapModeTableInfo>(¶m_0, param_0.field_0x58);
|
||||
mpAlphaCompInfo = JSUConvertOffsetToPtr<J2DAlphaCompInfo>(¶m_0, param_0.field_0x5c);
|
||||
mpBlendInfo = JSUConvertOffsetToPtr<J2DBlendInfo>(¶m_0, param_0.field_0x60);
|
||||
mpDither = JSUConvertOffsetToPtr<u8>(¶m_0, param_0.field_0x64);
|
||||
}
|
||||
|
||||
u32 J2DMaterialFactory::countStages(int param_0) const {
|
||||
J2DMaterialInitData* iVar5 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar5 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
u32 uVar4 = 0;
|
||||
u32 uVar3 = 0;
|
||||
if (iVar5->field_0x4 != 0xff) {
|
||||
uVar3 = field_0x40[iVar5->field_0x4];
|
||||
uVar3 = mpTevStageNum[iVar5->field_0x4];
|
||||
}
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (iVar5->field_0x38[i] != 0xffff) {
|
||||
@@ -121,11 +121,11 @@ J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 par
|
||||
param_0->getTevBlock()->setTevOrder(i, newTevOrder(index, i));
|
||||
}
|
||||
for (u8 i = 0; i < local_370; i++) {
|
||||
J2DMaterialInitData* local_38c = &field_0x4[field_0x8[index]];
|
||||
J2DMaterialInitData* local_38c = &mpMaterialInitData[mpMaterialID[index]];
|
||||
param_0->getTevBlock()->setTevStage(i, newTevStage(index, i));
|
||||
if (local_38c->field_0xba[i] != 0xffff) {
|
||||
param_0->getTevBlock()->getTevStage(i)->setTexSel(field_0x48[local_38c->field_0xba[i]].mTexSel);
|
||||
param_0->getTevBlock()->getTevStage(i)->setRasSel(field_0x48[local_38c->field_0xba[i]].mRasSel);
|
||||
param_0->getTevBlock()->getTevStage(i)->setTexSel(mpTevSwapModeInfo[local_38c->field_0xba[i]].mTexSel);
|
||||
param_0->getTevBlock()->getTevStage(i)->setRasSel(mpTevSwapModeInfo[local_38c->field_0xba[i]].mRasSel);
|
||||
}
|
||||
}
|
||||
for (u8 i = 0; i < 4; i++) {
|
||||
@@ -151,14 +151,14 @@ J2DMaterial* J2DMaterialFactory::create(J2DMaterial* param_0, int index, u32 par
|
||||
for (u8 i = 0; i < 8; i++) {
|
||||
param_0->getTexGenBlock()->setTexMtx(i, newTexMtx(index, i));
|
||||
}
|
||||
J2DMaterialInitData* local_394 = &field_0x4[field_0x8[index]];
|
||||
J2DMaterialInitData* local_394 = &mpMaterialInitData[mpMaterialID[index]];
|
||||
for (u8 i = 0; i < local_370; i++) {
|
||||
param_0->getTevBlock()->setTevKColorSel(i, local_394->field_0x52[i]);
|
||||
}
|
||||
for (u8 i = 0; i < local_370; i++) {
|
||||
param_0->getTevBlock()->setTevKAlphaSel(i, local_394->field_0x62[i]);
|
||||
}
|
||||
if (field_0xc != NULL || local_378 != 0) {
|
||||
if (mpIndInitData != NULL || local_378 != 0) {
|
||||
u8 local_410 = newIndTexStageNum(index);
|
||||
param_0->mIndBlock->setIndTexStageNum(local_410);
|
||||
for (u8 i = 0; i < local_410; i++) {
|
||||
@@ -183,52 +183,52 @@ JUtility::TColor J2DMaterialFactory::newMatColor(int param_0, int param_1) const
|
||||
#else
|
||||
JUtility::TColor local_20 = GXColor{0xff,0xff,0xff,0xff};
|
||||
#endif
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0x8[param_1] != 0xffff) {
|
||||
return field_0x10[iVar2->field_0x8[param_1]];
|
||||
return mpMatColor[iVar2->field_0x8[param_1]];
|
||||
}
|
||||
return local_20;
|
||||
}
|
||||
|
||||
u8 J2DMaterialFactory::newColorChanNum(int param_0) const {
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0x2 != 0xff) {
|
||||
return field_0x14[iVar2->field_0x2];
|
||||
return mpColorChanNum[iVar2->field_0x2];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
J2DColorChan J2DMaterialFactory::newColorChan(int param_0, int param_1) const {
|
||||
int r29 = 0;
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0xc[param_1] != 0xffff) {
|
||||
return J2DColorChan(field_0x18[iVar2->field_0xc[param_1]]);
|
||||
return J2DColorChan(mpColorChanInfo[iVar2->field_0xc[param_1]]);
|
||||
}
|
||||
return J2DColorChan();
|
||||
}
|
||||
|
||||
u32 J2DMaterialFactory::newTexGenNum(int param_0) const {
|
||||
int r30 = 0;
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0x3 != 0xff) {
|
||||
return field_0x1c[iVar2->field_0x3];
|
||||
return mpTexGenNum[iVar2->field_0x3];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
J2DTexCoord J2DMaterialFactory::newTexCoord(int param_0, int param_1) const {
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0x14[param_1] != 0xffff) {
|
||||
return J2DTexCoord(field_0x20[iVar2->field_0x14[param_1]]);
|
||||
return J2DTexCoord(mpTexCoordInfo[iVar2->field_0x14[param_1]]);
|
||||
}
|
||||
return J2DTexCoord();
|
||||
}
|
||||
|
||||
J2DTexMtx* J2DMaterialFactory::newTexMtx(int param_0, int param_1) const {
|
||||
J2DTexMtx* rv = NULL;
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0x24[param_1] != 0xffff) {
|
||||
rv = new J2DTexMtx(field_0x24[iVar2->field_0x24[param_1]]);
|
||||
rv = new J2DTexMtx(mpTexMtxInfo[iVar2->field_0x24[param_1]]);
|
||||
rv->calc();
|
||||
}
|
||||
return rv;
|
||||
@@ -236,33 +236,33 @@ J2DTexMtx* J2DMaterialFactory::newTexMtx(int param_0, int param_1) const {
|
||||
|
||||
u8 J2DMaterialFactory::newCullMode(int param_0) const {
|
||||
int r30 = 0;
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0x1 != 0xff) {
|
||||
return field_0x30[iVar2->field_0x1];
|
||||
return mpCullMode[iVar2->field_0x1];
|
||||
}
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
u16 J2DMaterialFactory::newTexNo(int param_0, int param_1) const {
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0x38[param_1] != 0xffff) {
|
||||
return field_0x28[iVar2->field_0x38[param_1]];
|
||||
return mpTexNo[iVar2->field_0x38[param_1]];
|
||||
}
|
||||
return 0x1FFFF;
|
||||
}
|
||||
|
||||
u16 J2DMaterialFactory::newFontNo(int param_0) const {
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0x48 != 0xffff) {
|
||||
return field_0x2c[iVar2->field_0x48];
|
||||
return mpFontNo[iVar2->field_0x48];
|
||||
}
|
||||
return 0x1FFFF;
|
||||
}
|
||||
|
||||
J2DTevOrder J2DMaterialFactory::newTevOrder(int param_0, int param_1) const {
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0x72[param_1] != 0xffff) {
|
||||
return J2DTevOrder(field_0x34[iVar2->field_0x72[param_1]]);
|
||||
return J2DTevOrder(mpTevOrderInfo[iVar2->field_0x72[param_1]]);
|
||||
}
|
||||
return J2DTevOrder();
|
||||
}
|
||||
@@ -270,10 +270,10 @@ J2DTevOrder J2DMaterialFactory::newTevOrder(int param_0, int param_1) const {
|
||||
J2DGXColorS10 J2DMaterialFactory::newTevColor(int param_0, int param_1) const {
|
||||
GXColorS10 color = {0, 0, 0, 0};
|
||||
J2DGXColorS10 rv = color;
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
|
||||
if (iVar2->field_0x92[param_1] != 0xffff) {
|
||||
return (GXColorS10) field_0x38[iVar2->field_0x92[param_1]];
|
||||
return (GXColorS10) mpTevColor[iVar2->field_0x92[param_1]];
|
||||
}
|
||||
|
||||
return rv;
|
||||
@@ -281,42 +281,42 @@ J2DGXColorS10 J2DMaterialFactory::newTevColor(int param_0, int param_1) const {
|
||||
|
||||
JUtility::TColor J2DMaterialFactory::newTevKColor(int param_0, int param_1) const {
|
||||
JUtility::TColor local_20 = COMPOUND_LITERAL(GXColor){0xFF, 0xFF, 0xFF, 0xFF};
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0x4a[param_1] != 0xffff) {
|
||||
return field_0x3c[iVar2->field_0x4a[param_1]];
|
||||
return mpTevKColor[iVar2->field_0x4a[param_1]];
|
||||
}
|
||||
return local_20;
|
||||
}
|
||||
|
||||
u8 J2DMaterialFactory::newTevStageNum(int param_0) const {
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0x4 != 0xff) {
|
||||
return field_0x40[iVar2->field_0x4];
|
||||
return mpTevStageNum[iVar2->field_0x4];
|
||||
}
|
||||
return 0xFF;
|
||||
}
|
||||
|
||||
J2DTevStage J2DMaterialFactory::newTevStage(int param_0, int param_1) const {
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0x9a[param_1] != 0xffff) {
|
||||
return J2DTevStage(field_0x44[iVar2->field_0x9a[param_1]]);
|
||||
return J2DTevStage(mpTevStageInfo[iVar2->field_0x9a[param_1]]);
|
||||
}
|
||||
return J2DTevStage();
|
||||
}
|
||||
|
||||
J2DTevSwapModeTable J2DMaterialFactory::newTevSwapModeTable(int param_0, int param_1) const {
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0xda[param_1] != 0xffff) {
|
||||
return J2DTevSwapModeTable(field_0x4c[iVar2->field_0xda[param_1]]);
|
||||
return J2DTevSwapModeTable(mpTevSwapModeTableInfo[iVar2->field_0xda[param_1]]);
|
||||
}
|
||||
return J2DTevSwapModeTable(j2dDefaultTevSwapModeTable);
|
||||
}
|
||||
|
||||
u8 J2DMaterialFactory::newIndTexStageNum(int param_0) const {
|
||||
u8 r31 = 0;
|
||||
if (field_0xc != NULL) {
|
||||
if (field_0xc[param_0].field_0x0 == 1) {
|
||||
return field_0xc[param_0].field_0x1;
|
||||
if (mpIndInitData != NULL) {
|
||||
if (mpIndInitData[param_0].field_0x0 == 1) {
|
||||
return mpIndInitData[param_0].field_0x1;
|
||||
}
|
||||
}
|
||||
return r31;
|
||||
@@ -324,9 +324,9 @@ u8 J2DMaterialFactory::newIndTexStageNum(int param_0) const {
|
||||
|
||||
J2DIndTexOrder J2DMaterialFactory::newIndTexOrder(int param_0, int param_1) const {
|
||||
J2DIndTexOrder rv;
|
||||
if (field_0xc != NULL) {
|
||||
if (field_0xc[param_0].field_0x0 == 1) {
|
||||
return J2DIndTexOrder(field_0xc[param_0].field_0x4[param_1]);
|
||||
if (mpIndInitData != NULL) {
|
||||
if (mpIndInitData[param_0].field_0x0 == 1) {
|
||||
return J2DIndTexOrder(mpIndInitData[param_0].field_0x4[param_1]);
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
@@ -334,9 +334,9 @@ J2DIndTexOrder J2DMaterialFactory::newIndTexOrder(int param_0, int param_1) cons
|
||||
|
||||
J2DIndTexMtx J2DMaterialFactory::newIndTexMtx(int param_0, int param_1) const {
|
||||
J2DIndTexMtx rv;
|
||||
if (field_0xc != NULL) {
|
||||
if (field_0xc[param_0].field_0x0 == 1) {
|
||||
return J2DIndTexMtx(field_0xc[param_0].field_0xc[param_1]);
|
||||
if (mpIndInitData != NULL) {
|
||||
if (mpIndInitData[param_0].field_0x0 == 1) {
|
||||
return J2DIndTexMtx(mpIndInitData[param_0].field_0xc[param_1]);
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
@@ -344,9 +344,9 @@ J2DIndTexMtx J2DMaterialFactory::newIndTexMtx(int param_0, int param_1) const {
|
||||
|
||||
J2DIndTevStage J2DMaterialFactory::newIndTevStage(int param_0, int param_1) const {
|
||||
J2DIndTevStage rv;
|
||||
if (field_0xc != NULL) {
|
||||
if (field_0xc[param_0].field_0x0 == 1) {
|
||||
return J2DIndTevStage(field_0xc[param_0].field_0x68[param_1]);
|
||||
if (mpIndInitData != NULL) {
|
||||
if (mpIndInitData[param_0].field_0x0 == 1) {
|
||||
return J2DIndTevStage(mpIndInitData[param_0].field_0x68[param_1]);
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
@@ -354,34 +354,34 @@ J2DIndTevStage J2DMaterialFactory::newIndTevStage(int param_0, int param_1) cons
|
||||
|
||||
J2DIndTexCoordScale J2DMaterialFactory::newIndTexCoordScale(int param_0, int param_1) const {
|
||||
J2DIndTexCoordScale rv;
|
||||
if (field_0xc != NULL) {
|
||||
if (field_0xc[param_0].field_0x0 == 1) {
|
||||
return J2DIndTexCoordScale(field_0xc[param_0].field_0x60[param_1]);
|
||||
if (mpIndInitData != NULL) {
|
||||
if (mpIndInitData[param_0].field_0x0 == 1) {
|
||||
return J2DIndTexCoordScale(mpIndInitData[param_0].field_0x60[param_1]);
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
J2DAlphaComp J2DMaterialFactory::newAlphaComp(int param_0) const {
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0xe2 != 0xffff) {
|
||||
return J2DAlphaComp(field_0x50[iVar2->field_0xe2]);
|
||||
return J2DAlphaComp(mpAlphaCompInfo[iVar2->field_0xe2]);
|
||||
}
|
||||
return J2DAlphaComp();
|
||||
}
|
||||
|
||||
J2DBlend J2DMaterialFactory::newBlend(int param_0) const {
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0xe4 != 0xffff) {
|
||||
return J2DBlend(field_0x54[iVar2->field_0xe4]);
|
||||
return J2DBlend(mpBlendInfo[iVar2->field_0xe4]);
|
||||
}
|
||||
return J2DBlend(j2dDefaultBlendInfo);
|
||||
}
|
||||
|
||||
u8 J2DMaterialFactory::newDither(int param_0) const {
|
||||
J2DMaterialInitData* iVar2 = &field_0x4[field_0x8[param_0]];
|
||||
J2DMaterialInitData* iVar2 = &mpMaterialInitData[mpMaterialID[param_0]];
|
||||
if (iVar2->field_0x5 != 0xff) {
|
||||
return field_0x58[iVar2->field_0x5];
|
||||
return mpDither[iVar2->field_0x5];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -630,23 +630,23 @@ J2DPane* J2DPane::getParentPane() {
|
||||
|
||||
/* name unknown */
|
||||
struct J2DPaneInfo {
|
||||
/* 0x00 */ u32 mKind;
|
||||
/* 0x04 */ u32 mSize;
|
||||
/* 0x08 */ u16 field_0x8;
|
||||
/* 0x0A */ u16 field_0xa;
|
||||
/* 0x00 */ BE(u32) mKind;
|
||||
/* 0x04 */ BE(u32) mSize;
|
||||
/* 0x08 */ BE(u16) field_0x8;
|
||||
/* 0x0A */ BE(u16) field_0xa;
|
||||
/* 0x0B */ u8 mVisible;
|
||||
/* 0x0C */ u8 mBasePosition;
|
||||
/* 0x10 */ u64 mInfoTag;
|
||||
/* 0x18 */ u64 mUserInfoTag;
|
||||
/* 0x20 */ f32 mRotOffsetX;
|
||||
/* 0x24 */ f32 mRotOffsetY;
|
||||
/* 0x28 */ f32 mScaleX;
|
||||
/* 0x2C */ f32 mScaleY;
|
||||
/* 0x30 */ f32 mRotateX;
|
||||
/* 0x34 */ f32 mRotateY;
|
||||
/* 0x38 */ f32 mRotateZ;
|
||||
/* 0x3C */ f32 mTranslateX;
|
||||
/* 0x40 */ f32 mTranslateY;
|
||||
/* 0x10 */ BE(u64) mInfoTag;
|
||||
/* 0x18 */ BE(u64) mUserInfoTag;
|
||||
/* 0x20 */ BE(f32) mRotOffsetX;
|
||||
/* 0x24 */ BE(f32) mRotOffsetY;
|
||||
/* 0x28 */ BE(f32) mScaleX;
|
||||
/* 0x2C */ BE(f32) mScaleY;
|
||||
/* 0x30 */ BE(f32) mRotateX;
|
||||
/* 0x34 */ BE(f32) mRotateY;
|
||||
/* 0x38 */ BE(f32) mRotateZ;
|
||||
/* 0x3C */ BE(f32) mTranslateX;
|
||||
/* 0x40 */ BE(f32) mTranslateY;
|
||||
}; // Size: 0x48
|
||||
|
||||
void J2DPane::makePaneExStream(J2DPane* p_parent, JSURandomInputStream* p_stream) {
|
||||
|
||||
@@ -45,7 +45,8 @@ J2DPicture::J2DPicture(J2DPane* p_pane, JSURandomInputStream* p_stream, J2DMater
|
||||
u16 matNum = picInfo.field_0x4;
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
field_0x10a[i] = picInfo.field_0x10[i];
|
||||
field_0x10a[i].x = picInfo.field_0x10[i].x;
|
||||
field_0x10a[i].y = picInfo.field_0x10[i].y;
|
||||
mCornerColor[i] = picInfo.mCornerColor[i];
|
||||
}
|
||||
|
||||
|
||||
@@ -21,11 +21,11 @@ J2DPictureEx::J2DPictureEx(J2DPane* param_0, JSURandomInputStream* param_1, u32
|
||||
field_0x194 = 0;
|
||||
field_0x198 = 0;
|
||||
s32 origPosition = param_1->getPosition();
|
||||
u32 local_68[2];
|
||||
BE(u32) local_68[2];
|
||||
param_1->read(local_68, 8);
|
||||
mKind = local_68[0];
|
||||
s32 iVar2 = param_1->getPosition();
|
||||
u32 auStack_70[2];
|
||||
BE(u32) auStack_70[2];
|
||||
param_1->peek(auStack_70, 8);
|
||||
makePaneExStream(param_0, param_1);
|
||||
param_1->seek(iVar2 + auStack_70[1], JSUStreamSeekFrom_SET);
|
||||
@@ -36,7 +36,8 @@ J2DPictureEx::J2DPictureEx(J2DPane* param_0, JSURandomInputStream* param_1, u32
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
field_0x158[i] = aJStack_60.field_0x8[i];
|
||||
field_0x10a[i] = aJStack_60.field_0x10[i];
|
||||
field_0x10a[i].x = aJStack_60.field_0x10[i].x;
|
||||
field_0x10a[i].y = aJStack_60.field_0x10[i].y;
|
||||
mCornerColor[i] = JUtility::TColor(aJStack_60.mCornerColor[i]);
|
||||
}
|
||||
|
||||
|
||||
@@ -368,9 +368,9 @@ bool J2DScreen::createMaterial(JSURandomInputStream* p_stream, u32 param_1, JKRA
|
||||
char* ptr = (char*)sec_s;
|
||||
u16 size = lastOffset;
|
||||
while (ptr[size] != 0) {
|
||||
size++;
|
||||
size++;
|
||||
}
|
||||
size++;
|
||||
size++;
|
||||
|
||||
u8* nametab = new u8[size];
|
||||
if (nametab == NULL) {
|
||||
|
||||
@@ -118,8 +118,8 @@ J2DTexCoordInfo const j2dDefaultTexCoordInfo[8] = {
|
||||
{GX_TG_MTX2x4, GX_TG_TEX6, GX_IDENTITY, 0}, {GX_TG_MTX2x4, GX_TG_TEX7, GX_IDENTITY, 0},
|
||||
};
|
||||
|
||||
J2DTexMtxInfo const j2dDefaultTexMtxInfo = {1, 1, 255, 255, 0.5f, 0.5f,
|
||||
0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f};
|
||||
J2DTexMtxInfo const j2dDefaultTexMtxInfo = {1, 1, 255, 255, {0.5f, 0.5f,
|
||||
0.0f}, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f};
|
||||
|
||||
J2DIndTexMtxInfo const j2dDefaultIndTexMtxInfo = {{0.5f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f}, 1};
|
||||
|
||||
|
||||
@@ -24,17 +24,17 @@ J2DWindow::J2DWindow(J2DPane* param_0, JSURandomInputStream* param_1, JKRArchive
|
||||
|
||||
struct J2DWindowData {
|
||||
u8 field_0x0[0x10];
|
||||
u16 field_0x10[4];
|
||||
BE(u16) field_0x10[4];
|
||||
u8 field_0x18;
|
||||
u8 field_0x19;
|
||||
u16 field_0x1a;
|
||||
u16 field_0x1c;
|
||||
u16 field_0x1e;
|
||||
u16 field_0x20;
|
||||
u16 field_0x22;
|
||||
u16 field_0x24;
|
||||
BE(u16) field_0x1a;
|
||||
BE(u16) field_0x1c;
|
||||
BE(u16) field_0x1e;
|
||||
BE(u16) field_0x20;
|
||||
BE(u16) field_0x22;
|
||||
BE(u16) field_0x24;
|
||||
u8 field_0x26[0xa];
|
||||
u32 field_0x30[4];
|
||||
BE(u32) field_0x30[4];
|
||||
};
|
||||
|
||||
J2DWindow::J2DWindow(J2DPane* param_0, JSURandomInputStream* param_1, J2DMaterial* param_2) :
|
||||
|
||||
@@ -3,21 +3,22 @@
|
||||
#include "JSystem/J2DGraph/J2DWindowEx.h"
|
||||
#include "JSystem/JUtility/JUTTexture.h"
|
||||
#include "JSystem/JSupport/JSURandomInputStream.h"
|
||||
#include "dusk/endian.h"
|
||||
|
||||
struct J2DWindowExDef {
|
||||
u32 field_0x0[4];
|
||||
u16 field_0x10[4];
|
||||
BE(u32) field_0x0[4];
|
||||
BE(u16) field_0x10[4];
|
||||
u8 field_0x18;
|
||||
u8 field_0x19;
|
||||
u16 field_0x1A;
|
||||
u16 field_0x1C;
|
||||
u16 field_0x1E;
|
||||
u16 field_0x20;
|
||||
u16 field_0x22;
|
||||
u16 field_0x24;
|
||||
u16 field_0x26;
|
||||
u16 field_0x28[4];
|
||||
u32 field_0x30[4];
|
||||
BE(u16) field_0x1A;
|
||||
BE(u16) field_0x1C;
|
||||
BE(u16) field_0x1E;
|
||||
BE(u16) field_0x20;
|
||||
BE(u16) field_0x22;
|
||||
BE(u16) field_0x24;
|
||||
BE(u16) field_0x26;
|
||||
BE(u16) field_0x28[4];
|
||||
BE(u32) field_0x30[4];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(J2DWindowExDef) == 0x40);
|
||||
|
||||
@@ -25,6 +25,7 @@ char* JSUInputStream::read(char* str) {
|
||||
setState(IOS_STATE_1);
|
||||
return 0;
|
||||
}
|
||||
be_swap(sp8);
|
||||
|
||||
s32 len = readData(str, sp8);
|
||||
str[len] = 0;
|
||||
|
||||
@@ -584,7 +584,7 @@ actor_process_profile_definition g_profile_CSTAF = {
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_CSTAF, // mProcName
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
0x00000B38, // mSize
|
||||
sizeof(daCstaF_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
|
||||
@@ -1220,7 +1220,7 @@ actor_process_profile_definition g_profile_CSTATUE = {
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_CSTATUE, // mProcName
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
0x00000B2C, // mSize
|
||||
sizeof(daCstatue_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
|
||||
@@ -273,18 +273,18 @@ static actor_method_class daObjHBombkoya_METHODS = {
|
||||
};
|
||||
|
||||
actor_process_profile_definition g_profile_Obj_HBombkoya = {
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
3, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_HBombkoya, // mProcName
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
0x000007C0, // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
675, // mPriority
|
||||
&daObjHBombkoya_METHODS, // sub_method
|
||||
0x00040100, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
fpcLy_CURRENT_e, // mLayerID
|
||||
3, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_HBombkoya, // mProcName
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
sizeof(daObjHBombkoya_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
675, // mPriority
|
||||
&daObjHBombkoya_METHODS, // sub_method
|
||||
0x00040100, // mStatus
|
||||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
@@ -261,7 +261,7 @@ actor_process_profile_definition g_profile_Obj_Ice_l = {
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_Ice_l, // mProcName
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
0x00000640, // mSize
|
||||
sizeof(daObjIce_l_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
|
||||
@@ -367,8 +367,8 @@ actor_process_profile_definition g_profile_Obj_MagLiftRot = {
|
||||
3, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_MagLiftRot, // mProcName
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
0x00000634, // mSize
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
sizeof(daMagLiftRot_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
|
||||
@@ -231,8 +231,8 @@ actor_process_profile_definition g_profile_Obj_Tornado = {
|
||||
7, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_Tornado, // mProcName
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
0x00000770, // mSize
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
sizeof(daObjTrnd_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
|
||||
@@ -388,8 +388,8 @@ actor_process_profile_definition g_profile_Obj_Wchain = {
|
||||
7, // mListID
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_Obj_Wchain, // mProcName
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
0x000007BC, // mSize
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
sizeof(daObjWchain_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
|
||||
@@ -110,7 +110,7 @@ actor_process_profile_definition2 g_profile_SCENE_EXIT = {
|
||||
fpcPi_CURRENT_e, // mListPrio
|
||||
PROC_SCENE_EXIT, // mProcName
|
||||
&g_fpcLf_Method.base, // sub_method
|
||||
0x0000059C, // mSize
|
||||
sizeof(daScex_c), // mSize
|
||||
0, // mSizeOther
|
||||
0, // mParameters
|
||||
&g_fopAc_Method.base, // sub_method
|
||||
|
||||
+18
-1
@@ -1071,7 +1071,7 @@ void dEvDtStaff_c::specialProcDirector() {
|
||||
dStage_MapEvent_dt_c* mapEvent = dEvt_control_c::searchMapEventData(data->unk);
|
||||
if (mapEvent != NULL) {
|
||||
if (mapEvent->type == dStage_MapEvent_dt_TYPE_MAPTOOLCAMERA) {
|
||||
data->unk2 = mapEvent->data.maptool.field_0x14;
|
||||
data->unk2 = (s16)mapEvent->data.maptool.field_0x14;
|
||||
} else {
|
||||
data->unk2 = -1;
|
||||
}
|
||||
@@ -1553,11 +1553,28 @@ int dEvDtBase_c::init(char* i_data, int i_roomNo) {
|
||||
}
|
||||
|
||||
if (getFDataNum() > 0) {
|
||||
#if TARGET_PC
|
||||
auto data = (f32*)(i_data + getFDataTop());
|
||||
int num = getFDataNum();
|
||||
for (int i = 0; i < num; i++)
|
||||
be_swap(data[i]);
|
||||
setFDataP(data);
|
||||
#else
|
||||
setFDataP((f32*)(i_data + getFDataTop()));
|
||||
#endif
|
||||
}
|
||||
|
||||
if (getIDataNum() > 0) {
|
||||
#if TARGET_PC
|
||||
// endian swap here
|
||||
auto data = (int*)(i_data + getIDataTop());
|
||||
int num = getIDataNum();
|
||||
for (int i = 0; i < num; i++)
|
||||
be_swap(data[i]);
|
||||
setIDataP(data);
|
||||
#else
|
||||
setIDataP((int*)(i_data + getIDataTop()));
|
||||
#endif
|
||||
}
|
||||
|
||||
if (getSDataNum() > 0) {
|
||||
|
||||
+18
-2
@@ -2,6 +2,7 @@
|
||||
* f_pc_base.cpp
|
||||
* Framework - Process Base
|
||||
*/
|
||||
#define PROCS_DUMP_NAMES 1
|
||||
|
||||
#include "f_pc/f_pc_base.h"
|
||||
#include "SSystem/SComponent/c_malloc.h"
|
||||
@@ -16,6 +17,21 @@
|
||||
#include "Z2AudioLib/Z2AudioMgr.h"
|
||||
#include <cstdio>
|
||||
|
||||
#if TARGET_PC
|
||||
#include "d/d_procname.h"
|
||||
|
||||
static const char* getProcName(s16 id) {
|
||||
for (auto procName : procNames) {
|
||||
if (procName.id == id) {
|
||||
return procName.name;
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
BOOL fpcBs_Is_JustOfType(int i_typeA, int i_typeB) {
|
||||
if (i_typeB == i_typeA) {
|
||||
return TRUE;
|
||||
@@ -119,8 +135,8 @@ base_process_class* fpcBs_Create(s16 i_profname, fpc_ProcID i_procID, void* i_ap
|
||||
u32 size;
|
||||
|
||||
pprofile = (process_profile_definition*)fpcPf_Get(i_profname);
|
||||
printf("[DIAG] fpcBs_Create: profname=%d profile=%p procSize=%d unkSize=%d\n",
|
||||
i_profname, pprofile, pprofile->process_size, pprofile->unk_size); fflush(stdout);
|
||||
printf("[DIAG] fpcBs_Create: pid=%d profname=%s (%d) profile=%p procSize=%d unkSize=%d\n",
|
||||
i_procID, getProcName(i_profname), i_profname, pprofile, pprofile->process_size, pprofile->unk_size); fflush(stdout);
|
||||
size = pprofile->process_size + pprofile->unk_size;
|
||||
|
||||
pprocess = (base_process_class*)cMl::memalignB(-4, size);
|
||||
|
||||
Reference in New Issue
Block a user