summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2024-01-08 12:10:05 +0200
committerGitHub <noreply@github.com>2024-01-08 12:10:05 +0200
commita8a159ae2c18e2ce3c0f98b1cc54e36ed14cff60 (patch)
tree81dfdf02a475a88f6f9ce3ba03daad018bbfac91 /libs
parentdea6243c35dbc373e39c3f4afcb1aba0063065f0 (diff)
Various Matches, J2DTextBoxEx and J2DTevs OK (#2025)
* Work on src/d/bg * misc work * J2dTextBoxEx OK * J2DTevs OK * Better return values for bool
Diffstat (limited to 'libs')
-rw-r--r--libs/JSystem/J2DGraph/J2DMatBlock.cpp10
-rw-r--r--libs/JSystem/J2DGraph/J2DMaterialFactory.cpp1
-rw-r--r--libs/JSystem/J2DGraph/J2DTevs.cpp169
-rw-r--r--libs/JSystem/J2DGraph/J2DTextBoxEx.cpp215
-rw-r--r--libs/SSystem/SComponent/c_m3d.cpp116
5 files changed, 167 insertions, 344 deletions
diff --git a/libs/JSystem/J2DGraph/J2DMatBlock.cpp b/libs/JSystem/J2DGraph/J2DMatBlock.cpp
index 99b0822df4..6706e140e8 100644
--- a/libs/JSystem/J2DGraph/J2DMatBlock.cpp
+++ b/libs/JSystem/J2DGraph/J2DMatBlock.cpp
@@ -353,14 +353,6 @@ extern "C" extern J2DTexCoordInfo const j2dDefaultTexCoordInfo[8];
extern "C" extern J2DTevStageInfo const j2dDefaultTevStageInfo;
extern "C" extern J2DIndTevStageInfo const j2dDefaultIndTevStageInfo;
extern "C" extern void* __vt__11J2DIndBlock[14];
-extern "C" extern GXColor j2dDefaultColInfo;
-extern "C" extern J2DTevOrderInfo j2dDefaultTevOrderInfoNull;
-extern "C" extern J2DGXColorS10 j2dDefaultTevColor;
-extern "C" extern GXColor j2dDefaultTevKColor;
-extern "C" extern J2DTevSwapModeInfo j2dDefaultTevSwapMode;
-extern "C" extern u8 data_804561A4;
-extern "C" extern J2DColorChanInfo j2dDefaultColorChanInfo;
-extern "C" extern u8 data_804561AC;
//
// Declarations:
@@ -2566,7 +2558,7 @@ void J2DIndBlockFull::setGX() {
void J2DPEBlock::initialize() {
mAlphaComp = J2DAlphaComp();
mBlend.setBlendInfo(j2dDefaultBlendInfo);
- mDither = data_804561A4;
+ mDither = j2dDefaultPEBlockDither;
}
/* 802F1840-802F18A0 2EC180 0060+00 0/0 1/1 0/0 .text setGX__10J2DPEBlockFv */
diff --git a/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp b/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp
index b9c18e4411..6de7d30801 100644
--- a/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp
+++ b/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp
@@ -82,7 +82,6 @@ extern "C" void _savegpr_29();
extern "C" void _restgpr_19();
extern "C" void _restgpr_29();
extern "C" u8 mDataManage__9J2DScreen[4 + 4 /* padding */];
-extern "C" extern u8 j2dDefaultTevSwapMode[4];
//
// Declarations:
diff --git a/libs/JSystem/J2DGraph/J2DTevs.cpp b/libs/JSystem/J2DGraph/J2DTevs.cpp
index c87724577a..c0e0043c3f 100644
--- a/libs/JSystem/J2DGraph/J2DTevs.cpp
+++ b/libs/JSystem/J2DGraph/J2DTevs.cpp
@@ -1,66 +1,13 @@
//
-// Generated By: dol2asm
-// Translation Unit: J2DTevs
+// J2DTevs
//
#include "JSystem/J2DGraph/J2DTevs.h"
#include "JSystem/J2DGraph/J2DMatBlock.h"
#include "JSystem/JUtility/TColor.h"
#include "math.h"
-#include "dol2asm.h"
#include "dolphin/gx/GX.h"
-//
-// Forward References:
-//
-
-extern "C" void load__9J2DTexMtxFUl();
-extern "C" void calc__9J2DTexMtxFv();
-extern "C" void getTextureMtx__9J2DTexMtxFRC17J2DTextureSRTInfo3VecPA4_f();
-extern "C" void getTextureMtxMaya__9J2DTexMtxFRC17J2DTextureSRTInfoPA4_f();
-extern "C" void load__14J2DIndTevStageFUc();
-extern "C" void load__12J2DIndTexMtxFUc();
-extern "C" void load__19J2DIndTexCoordScaleFUc();
-extern "C" void load__14J2DIndTexOrderFUc();
-extern "C" bool getTevSwapModeTable__11J2DTevBlockFUl();
-extern "C" bool getTevStage__11J2DTevBlockFUl();
-extern "C" bool getTevColor__11J2DTevBlockFUl();
-extern "C" bool getTevOrder__11J2DTevBlockFUl();
-extern "C" bool getTevKAlphaSel__11J2DTevBlockFUl();
-extern "C" bool getTevKColorSel__11J2DTevBlockFUl();
-extern "C" bool getTevKColor__11J2DTevBlockFUl();
-extern "C" void getFontNo__11J2DTevBlockCFv();
-extern "C" void getTexNo__11J2DTevBlockCFUl();
-extern "C" bool getTevStageNum__11J2DTevBlockCFv();
-extern "C" bool getIndTevStage__11J2DTevBlockFUl();
-extern "C" bool getIndTexCoordScale__11J2DIndBlockFUl();
-extern "C" bool getIndTexMtx__11J2DIndBlockFUl();
-extern "C" bool getIndTexOrder__11J2DIndBlockFUl();
-extern "C" bool getIndTexStageNum__11J2DIndBlockCFv();
-extern "C" extern J2DTexCoordInfo const j2dDefaultTexCoordInfo[8];
-extern "C" extern J2DTexMtxInfo const j2dDefaultTexMtxInfo;
-extern "C" extern J2DIndTexMtxInfo const j2dDefaultIndTexMtxInfo;
-extern "C" extern J2DTevStageInfo const j2dDefaultTevStageInfo;
-extern "C" extern GXColor j2dDefaultColInfo;
-extern "C" extern GXColorS10 j2dDefaultTevColor;
-extern "C" extern GXColor j2dDefaultTevKColor;
-extern "C" extern J2DTevSwapModeInfo j2dDefaultTevSwapMode;
-extern "C" extern J2DBlendInfo j2dDefaultBlendInfo;
-extern "C" extern u8 data_804561A4[4];
-extern "C" extern J2DColorChanInfo j2dDefaultColorChanInfo;
-extern "C" extern u8 data_804561AC;
-
-//
-// External References:
-//
-
-extern "C" void _savegpr_29();
-extern "C" void _restgpr_29();
-
-//
-// Declarations:
-//
-
/* 802E9C90-802E9CC4 2E45D0 0034+00 0/0 1/1 0/0 .text load__9J2DTexMtxFUl */
void J2DTexMtx::load(u32 mtxIdx) {
GXLoadTexMtxImm(mTexMtx, mtxIdx * 3 + GX_TEXMTX0, mInfo.getTexMtxType());
@@ -75,99 +22,45 @@ void J2DTexMtx::calc() {
}
}
-/* ############################################################################################## */
-/* 80456168-8045616C 004768 0004+00 2/2 0/0 0/0 .sdata2 @1488 */
-SECTION_SDATA2 static f32 lit_1488 = 3.1415927410125732f;
-
-/* 8045616C-80456170 00476C 0004+00 2/2 0/0 0/0 .sdata2 @1489 */
-SECTION_SDATA2 static f32 lit_1489 = 180.0f;
-
-/* 80456170-80456174 004770 0004+00 2/2 0/0 0/0 .sdata2 @1490 */
-SECTION_SDATA2 static u8 lit_1490[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
-
-/* 80456174-80456178 004774 0004+00 2/2 0/0 0/0 .sdata2 @1491 */
-SECTION_SDATA2 static f32 lit_1491 = 1.0f;
-
/* 802E9D2C-802E9EBC 2E466C 0190+00 1/1 0/0 0/0 .text
* getTextureMtx__9J2DTexMtxFRC17J2DTextureSRTInfo3VecPA4_f */
-// regalloc
-#ifdef NONMATCHING
void J2DTexMtx::getTextureMtx(J2DTextureSRTInfo const& param_0, Vec param_1, Mtx param_2) {
float f31 = (param_0.field_0x8 * M_PI) / 180.0f;
param_2[0][0] = param_0.field_0x0 * i_cosf(f31);
param_2[0][1] = -param_0.field_0x0 * i_sinf(f31);
param_2[0][2] = 0.0f;
- float f30 = i_sinf(f31);
- float tmp = i_cosf(f31);
- param_2[0][3] = -param_0.field_0x0 * tmp * param_1.x + param_1.y * (param_0.field_0x0 * f30) +
- param_0.field_0xc + param_1.x;
+ param_2[0][3] = -param_0.field_0x0 * i_cosf(f31) * param_1.x + param_1.y * (param_0.field_0x0 * i_sinf(f31)) +
+ param_1.x + param_0.field_0xc;
param_2[1][0] = param_0.field_0x4 * i_sinf(f31);
param_2[1][1] = param_0.field_0x4 * i_cosf(f31);
param_2[1][2] = 0.0f;
- f30 = i_cosf(f31);
- tmp = i_sinf(f31);
- param_2[1][3] = -param_0.field_0x4 * tmp * param_1.x - param_1.y * (param_0.field_0x4 * f30) +
- param_0.field_0x10 + param_1.y;
+ param_2[1][3] = -param_0.field_0x4 * i_sinf(f31) * param_1.x - param_1.y * (param_0.field_0x4 * i_cosf(f31)) +
+ param_1.y + param_0.field_0x10;
param_2[2][0] = 0.0f;
param_2[2][1] = 0.0f;
param_2[2][2] = 1.0f;
param_2[2][3] = 0.0f;
}
-#else
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void J2DTexMtx::getTextureMtx(J2DTextureSRTInfo const& param_0, Vec param_1, Mtx param_2) {
- nofralloc
-#include "asm/JSystem/J2DGraph/J2DTevs/getTextureMtx__9J2DTexMtxFRC17J2DTextureSRTInfo3VecPA4_f.s"
-}
-#pragma pop
-#endif
-
-/* ############################################################################################## */
-/* 80456178-8045617C 004778 0004+00 1/1 0/0 0/0 .sdata2 @1507 */
-SECTION_SDATA2 static f32 lit_1507 = 0.5f;
/* 802E9EBC-802EA044 2E47FC 0188+00 1/1 0/0 0/0 .text
* getTextureMtxMaya__9J2DTexMtxFRC17J2DTextureSRTInfoPA4_f */
-// regswap
-#ifdef NONMATCHING
void J2DTexMtx::getTextureMtxMaya(J2DTextureSRTInfo const& param_0, Mtx param_1) {
float f31 = (param_0.field_0x8 * M_PI) / 180.0f;
param_1[0][0] = param_0.field_0x0 * i_cosf(f31);
param_1[0][1] = param_0.field_0x4 * i_sinf(f31);
param_1[0][2] = 0.0f;
- float f30 = i_sinf(f31);
- float tmp = i_cosf(f31);
- param_1[0][3] = (param_0.field_0xc - 0.5f) * tmp -
- (param_0.field_0x10 - 0.5f + param_0.field_0x4) * f30 + 0.5f;
+ param_1[0][3] = (param_0.field_0xc - 0.5f) * i_cosf(f31) -
+ (param_0.field_0x10 - 0.5f + param_0.field_0x4) * i_sinf(f31) + 0.5f;
param_1[1][0] = -param_0.field_0x0 * i_sinf(f31);
param_1[1][1] = param_0.field_0x4 * i_cosf(f31);
param_1[1][2] = 0.0f;
- f30 = i_cosf(f31);
- tmp = i_sinf(f31);
- param_1[1][3] = -(param_0.field_0xc - 0.5f) * tmp -
- (param_0.field_0x10 - 0.5f + param_0.field_0x4) * f30 + 0.5f;
+ param_1[1][3] = -(param_0.field_0xc - 0.5f) * i_sinf(f31) -
+ (param_0.field_0x10 - 0.5f + param_0.field_0x4) * i_cosf(f31) + 0.5f;
param_1[2][0] = 0.0f;
param_1[2][1] = 0.0f;
param_1[2][2] = 1.0f;
param_1[2][3] = 0.0f;
}
-#else
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void J2DTexMtx::getTextureMtxMaya(J2DTextureSRTInfo const& param_0, Mtx param_1) {
- nofralloc
-#include "asm/JSystem/J2DGraph/J2DTevs/getTextureMtxMaya__9J2DTexMtxFRC17J2DTextureSRTInfoPA4_f.s"
-}
-#pragma pop
-#endif
/* 802EA044-802EA098 2E4984 0054+00 0/0 5/5 0/0 .text load__14J2DIndTevStageFUc */
void J2DIndTevStage::load(u8 tevStage) {
@@ -271,7 +164,7 @@ u8 J2DIndBlock::getIndTexStageNum() const {
/* ############################################################################################## */
/* 803A1B80-803A1BA0 02E1E0 0020+00 0/0 3/3 0/0 .rodata j2dDefaultTexCoordInfo */
-extern J2DTexCoordInfo const j2dDefaultTexCoordInfo[8] = {
+J2DTexCoordInfo const j2dDefaultTexCoordInfo[8] = {
{GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, 0}, {GX_TG_MTX2x4, GX_TG_TEX1, GX_IDENTITY, 0},
{GX_TG_MTX2x4, GX_TG_TEX2, GX_IDENTITY, 0}, {GX_TG_MTX2x4, GX_TG_TEX3, GX_IDENTITY, 0},
{GX_TG_MTX2x4, GX_TG_TEX4, GX_IDENTITY, 0}, {GX_TG_MTX2x4, GX_TG_TEX5, GX_IDENTITY, 0},
@@ -279,11 +172,11 @@ extern J2DTexCoordInfo const j2dDefaultTexCoordInfo[8] = {
};
/* 803A1BA0-803A1BC4 02E200 0024+00 0/0 3/3 0/0 .rodata j2dDefaultTexMtxInfo */
-extern 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};
/* 803A1BC4-803A1BE0 02E224 001C+00 0/0 3/3 0/0 .rodata j2dDefaultIndTexMtxInfo */
-extern J2DIndTexMtxInfo const j2dDefaultIndTexMtxInfo = {{0.5f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f}, 1};
+J2DIndTexMtxInfo const j2dDefaultIndTexMtxInfo = {{0.5f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f}, 1};
/* 803A1BE0-803A1BF4 02E240 0014+00 0/0 1/1 0/0 .rodata j2dDefaultTevStageInfo */
extern J2DTevStageInfo const j2dDefaultTevStageInfo = {
@@ -293,61 +186,55 @@ extern J2DTevStageInfo const j2dDefaultTevStageInfo = {
GX_TEVPREV};
/* 803A1BF4-803A1C00 02E254 000C+00 0/0 7/7 0/0 .rodata j2dDefaultIndTevStageInfo */
-SECTION_RODATA extern const J2DIndTevStageInfo j2dDefaultIndTevStageInfo = {
+extern const J2DIndTevStageInfo j2dDefaultIndTevStageInfo = {
GX_INDTEXSTAGE0, GX_ITB_NONE, GX_ITB_NONE, GX_ITM_OFF, GX_ITW_OFF,
GX_ITW_OFF, 0, 0, GX_ITBA_OFF,
};
-COMPILER_STRIP_GATE(0x803A1BF4, &j2dDefaultIndTevStageInfo);
/* 8045617C-80456180 00477C 0004+00 0/0 1/1 0/0 .sdata2 j2dDefaultColInfo */
-SECTION_SDATA2 extern GXColor j2dDefaultColInfo = {255, 255, 255, 255};
+extern const GXColor j2dDefaultColInfo = {255, 255, 255, 255};
/* 80456180-80456184 004780 0004+00 0/0 7/7 0/0 .sdata2 j2dDefaultTevOrderInfoNull */
-SECTION_SDATA2 extern J2DTevOrderInfo j2dDefaultTevOrderInfoNull = {
+extern const J2DTevOrderInfo j2dDefaultTevOrderInfoNull = {
GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL, 0};
/* 80456184-80456188 004784 0002+02 0/0 3/3 0/0 .sdata2 j2dDefaultIndTexOrderNull */
-SECTION_SDATA2 extern const J2DIndTexOrderInfo j2dDefaultIndTexOrderNull = {
+extern const J2DIndTexOrderInfo j2dDefaultIndTexOrderNull = {
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
};
/* 80456188-80456190 004788 0008+00 0/0 5/5 0/0 .sdata2 j2dDefaultTevColor */
-SECTION_SDATA2 extern GXColorS10 j2dDefaultTevColor = {255, 255, 255, 255};
+extern const GXColorS10 j2dDefaultTevColor = {255, 255, 255, 255};
/* 80456190-80456194 004790 0002+02 0/0 3/3 0/0 .sdata2 j2dDefaultIndTexCoordScaleInfo */
-SECTION_SDATA2 extern const J2DIndTexCoordScaleInfo j2dDefaultIndTexCoordScaleInfo = {
+extern const J2DIndTexCoordScaleInfo j2dDefaultIndTexCoordScaleInfo = {
GX_ITS_1,
GX_ITS_1,
};
/* 80456194-80456198 004794 0004+00 0/0 5/5 0/0 .sdata2 j2dDefaultTevKColor */
-SECTION_SDATA2 extern GXColor j2dDefaultTevKColor = {255, 255, 255, 255};
+extern const GXColor j2dDefaultTevKColor = {255, 255, 255, 255};
/* 80456198-8045619C 004798 0004+00 0/0 2/2 0/0 .sdata2 j2dDefaultTevSwapMode */
-SECTION_SDATA2 extern J2DTevSwapModeInfo j2dDefaultTevSwapMode = {GX_TEV_SWAP0, GX_TEV_SWAP0, 0, 0};
+extern const J2DTevSwapModeInfo j2dDefaultTevSwapMode = {GX_TEV_SWAP0, GX_TEV_SWAP0, 0, 0};
/* 8045619C-804561A0 00479C 0004+00 0/0 6/6 0/0 .sdata2 j2dDefaultTevSwapModeTable */
-SECTION_SDATA2 extern const J2DTevSwapModeTableInfo j2dDefaultTevSwapModeTable = {
+extern const J2DTevSwapModeTableInfo j2dDefaultTevSwapModeTable = {
GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA};
/* 804561A0-804561A4 0047A0 0004+00 0/0 3/3 0/0 .sdata2 j2dDefaultBlendInfo */
-SECTION_SDATA2 extern J2DBlendInfo j2dDefaultBlendInfo = {GX_BM_BLEND, GX_BL_SRC_ALPHA,
- GX_BL_INV_SRC_ALPHA, GX_LO_NOOP};
+extern const J2DBlendInfo j2dDefaultBlendInfo = {GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA,
+ GX_LO_NOOP};
/* 804561A4-804561A8 0047A4 0004+00 0/0 1/1 0/0 .sdata2 None */
-SECTION_SDATA2 extern u8 data_804561A4[4] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
-};
+extern const u8 j2dDefaultPEBlockDither = 0;
/* 804561A8-804561AC 0047A8 0004+00 0/0 3/3 0/0 .sdata2 j2dDefaultColorChanInfo */
-SECTION_SDATA2 extern J2DColorChanInfo j2dDefaultColorChanInfo = {0, 3, 0, 0};
+extern const J2DColorChanInfo j2dDefaultColorChanInfo = {0, 3, 0, 0};
/* 804561AC-804561AE 0047AC 0002+00 0/0 1/1 0/0 .sdata2 None */
-SECTION_SDATA2 extern u8 data_804561AC = 0x1B;
+extern const u8 data_804561AC = 0x1B;
/* 804561AE-804561B0 0047AE 0002+00 0/0 3/3 0/0 .sdata2 j2dDefaultAlphaCmp */
-SECTION_SDATA2 extern u16 j2dDefaultAlphaCmp = 0x00E7;
+extern const u16 j2dDefaultAlphaCmp = 0x00E7;
diff --git a/libs/JSystem/J2DGraph/J2DTextBoxEx.cpp b/libs/JSystem/J2DGraph/J2DTextBoxEx.cpp
index c7244c8bd9..693e0bf706 100644
--- a/libs/JSystem/J2DGraph/J2DTextBoxEx.cpp
+++ b/libs/JSystem/J2DGraph/J2DTextBoxEx.cpp
@@ -1,110 +1,13 @@
//
-// Generated By: dol2asm
-// Translation Unit: J2DTextBoxEx
+// J2DTextBoxEx
//
#include "JSystem/J2DGraph/J2DTextBoxEx.h"
#include "JSystem/J2DGraph/J2DPrint.h"
#include "JSystem/JSupport/JSURandomInputStream.h"
#include "JSystem/JUtility/JUTResFont.h"
-#include "dol2asm.h"
#include "dolphin/types.h"
-//
-// Forward References:
-//
-
-extern "C" void __ct__12J2DTextBoxExFP7J2DPaneP20JSURandomInputStreamUlP11J2DMaterial();
-extern "C" void __dt__12J2DTextBoxExFv();
-extern "C" void drawSelf__12J2DTextBoxExFffPA3_A4_f();
-extern "C" void draw__12J2DTextBoxExFff();
-extern "C" void draw__12J2DTextBoxExFfff18J2DTextBoxHBinding();
-extern "C" void setFont__12J2DTextBoxExFP7JUTFont();
-extern "C" void getFont__12J2DTextBoxExCFv();
-extern "C" void setTevOrder__12J2DTextBoxExFb();
-extern "C" void setTevStage__12J2DTextBoxExFb();
-extern "C" void setStage__12J2DTextBoxExFP11J2DTevStageQ212J2DTextBoxEx10stage_enum();
-extern "C" void setBlack__12J2DTextBoxExFQ28JUtility6TColor();
-extern "C" void setWhite__12J2DTextBoxExFQ28JUtility6TColor();
-extern "C" void setBlackWhite__12J2DTextBoxExFQ28JUtility6TColorQ28JUtility6TColor();
-extern "C" void getBlackWhite__12J2DTextBoxExCFPQ28JUtility6TColorPQ28JUtility6TColor();
-extern "C" void isSetBlackWhite__12J2DTextBoxExCFQ28JUtility6TColorQ28JUtility6TColor();
-extern "C" void getBlack__12J2DTextBoxExCFv();
-extern "C" void getWhite__12J2DTextBoxExCFv();
-extern "C" void setAlpha__12J2DTextBoxExFUc();
-extern "C" void setCullBack__12J2DTextBoxExF11_GXCullMode();
-extern "C" void rewriteAlpha__12J2DTextBoxExFv();
-extern "C" void isUsed__12J2DTextBoxExFPC7ResFONT();
-extern "C" void setAnimation__12J2DTextBoxExFP11J2DAnmColor();
-extern "C" void setAnimation__12J2DTextBoxExFP19J2DAnmTextureSRTKey();
-extern "C" void setAnimation__12J2DTextBoxExFP16J2DAnmTexPattern();
-extern "C" void setAnimation__12J2DTextBoxExFP15J2DAnmTevRegKey();
-extern "C" void setAnimation__12J2DTextBoxExFP20J2DAnmVisibilityFull();
-extern "C" void animationPane__12J2DTextBoxExFPC15J2DAnmTransform();
-extern "C" void setCullBack__12J2DTextBoxExFb();
-extern "C" void isUsed__12J2DTextBoxExFPC7ResTIMG();
-extern "C" void setAnimation__12J2DTextBoxExFP14J2DAnmVtxColor();
-extern "C" void setAnimation__12J2DTextBoxExFP10J2DAnmBase();
-extern "C" extern char const* const J2DTextBoxEx__stringBase0;
-
-//
-// External References:
-//
-
-extern "C" void calcMtx__7J2DPaneFv();
-extern "C" void makeMatrix__7J2DPaneFff();
-extern "C" void getMaterial__12J2DTextBoxExCFv();
-extern "C" void setAnimation__12J2DTextBoxExFP15J2DAnmTransform();
-extern "C" void* __nwa__FUl();
-extern "C" void __dl__FPv();
-extern "C" void read__14JSUInputStreamFPvl();
-extern "C" void peek__20JSURandomInputStreamFPvl();
-extern "C" void seek__20JSURandomInputStreamFl17JSUStreamSeekFrom();
-extern "C" void setGX__11J2DMaterialFv();
-extern "C" void setAnimation__11J2DMaterialFP11J2DAnmColor();
-extern "C" void setAnimation__11J2DMaterialFP19J2DAnmTextureSRTKey();
-extern "C" void setAnimation__11J2DMaterialFP16J2DAnmTexPattern();
-extern "C" void setAnimation__11J2DMaterialFP15J2DAnmTevRegKey();
-extern "C" void
-__ct__8J2DPrintFP7JUTFontffQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColor();
-extern "C" void __dt__8J2DPrintFv();
-extern "C" void locate__8J2DPrintFff();
-extern "C" void print__8J2DPrintFffUcPCce();
-extern "C" void printReturn__8J2DPrintFPCcff18J2DTextBoxHBinding18J2DTextBoxVBindingffUc();
-extern "C" void move__7J2DPaneFff();
-extern "C" void add__7J2DPaneFff();
-extern "C" void search__7J2DPaneFUx();
-extern "C" void searchUserInfo__7J2DPaneFUx();
-extern "C" void isUsed__7J2DPaneFPC7ResTIMG();
-extern "C" void isUsed__7J2DPaneFPC7ResFONT();
-extern "C" void makeMatrix__7J2DPaneFffff();
-extern "C" void setCullBack__7J2DPaneF11_GXCullMode();
-extern "C" void makePaneExStream__7J2DPaneFP7J2DPaneP20JSURandomInputStream();
-extern "C" void setAnimation__7J2DPaneFP10J2DAnmBase();
-extern "C" void clearAnmTransform__7J2DPaneFv();
-extern "C" void animationTransform__7J2DPaneFPC15J2DAnmTransform();
-extern "C" void setVisibileAnimation__7J2DPaneFP20J2DAnmVisibilityFull();
-extern "C" void setVtxColorAnimation__7J2DPaneFP14J2DAnmVtxColor();
-extern "C" void animationPane__7J2DPaneFPC15J2DAnmTransform();
-extern "C" void setAnimationVF__7J2DPaneFP20J2DAnmVisibilityFull();
-extern "C" void setAnimationVC__7J2DPaneFP14J2DAnmVtxColor();
-extern "C" void update__7J2DPaneFv();
-extern "C" void __ct__10J2DTextBoxFv();
-extern "C" void __dt__10J2DTextBoxFv();
-extern "C" void setConnectParent__10J2DTextBoxFb();
-extern "C" void drawSelf__10J2DTextBoxFff();
-extern "C" void resize__10J2DTextBoxFff();
-extern "C" s32 getTypeID__10J2DTextBoxCFv();
-extern "C" void getVisibility__20J2DAnmVisibilityFullCFUsPUc();
-extern "C" void _savegpr_25();
-extern "C" void _savegpr_28();
-extern "C" void _restgpr_25();
-extern "C" void _restgpr_28();
-
-//
-// Declarations:
-//
-
/* 803071E4-8030751C 301B24 0338+00 0/0 1/1 0/0 .text
* __ct__12J2DTextBoxExFP7J2DPaneP20JSURandomInputStreamUlP11J2DMaterial */
J2DTextBoxEx::J2DTextBoxEx(J2DPane* p_pane, JSURandomInputStream* p_stream, u32 param_2,
@@ -371,8 +274,6 @@ JUTFont* J2DTextBoxEx::getFont() const {
}
/* 80307E0C-80307EF0 30274C 00E4+00 1/1 0/0 0/0 .text setTevOrder__12J2DTextBoxExFb */
-// Stack issue
-#ifdef NONMATCHING
void J2DTextBoxEx::setTevOrder(bool param_0) {
u16 local_18[2];
if (!param_0) {
@@ -388,20 +289,11 @@ void J2DTextBoxEx::setTevOrder(bool param_0) {
info.mTexCoord = (local_18[i]) >> 8;
info.mTexMap = (local_18[i]) >> 8;
info.mColor = local_18[i] & 0xff;
- mMaterial->getTevBlock()->setTevOrder(i, J2DTevOrder(info));
+ J2DTevOrder tevOrder = info;
+ mMaterial->getTevBlock()->setTevOrder(i, tevOrder);
}
}
}
-#else
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void J2DTextBoxEx::setTevOrder(bool param_0) {
- nofralloc
-#include "asm/JSystem/J2DGraph/J2DTextBoxEx/setTevOrder__12J2DTextBoxExFb.s"
-}
-#pragma pop
-#endif
/* 80307EF0-80307F94 302830 00A4+00 1/1 0/0 0/0 .text setTevStage__12J2DTextBoxExFb */
void J2DTextBoxEx::setTevStage(bool param_0) {
@@ -415,82 +307,37 @@ void J2DTextBoxEx::setTevStage(bool param_0) {
}
}
-/* ############################################################################################## */
-/* 803A1DB8-803A1DC4 02E418 000C+00 1/1 0/0 0/0 .rodata @1953 */
-SECTION_RODATA static u8 const lit_1953[12] = {
- 0x0F, 0x08, 0x0A, 0x0F, 0x02, 0x04, 0x08, 0x0F, 0x0F, 0x0A, 0x00, 0x0F,
-};
-COMPILER_STRIP_GATE(0x803A1DB8, &lit_1953);
-
-/* 803A1DC4-803A1DD0 02E424 000C+00 0/1 0/0 0/0 .rodata @1954 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_1954[12] = {
- 0x07, 0x04, 0x05, 0x07, 0x01, 0x02, 0x04, 0x07, 0x07, 0x05, 0x00, 0x07,
-};
-COMPILER_STRIP_GATE(0x803A1DC4, &lit_1954);
-#pragma pop
-
-/* 803A1DD0-803A1DE0 02E430 000F+01 0/1 0/0 0/0 .rodata @1955 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_1955[15 + 1 /* padding */] = {
- 0x00,
- 0x00,
- 0x00,
- 0x01,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x01,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x01,
- 0x00,
- /* padding */
- 0x00,
-};
-COMPILER_STRIP_GATE(0x803A1DD0, &lit_1955);
-#pragma pop
-
-/* 803A1DE0-803A1DF0 02E440 000F+01 0/1 0/0 0/0 .rodata @1956 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const lit_1956[15 + 1 /* padding */] = {
- 0x00,
- 0x00,
- 0x00,
- 0x01,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x01,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x01,
- 0x00,
- /* padding */
- 0x00,
-};
-COMPILER_STRIP_GATE(0x803A1DE0, &lit_1956);
-#pragma pop
-
/* 80307F94-8030823C 3028D4 02A8+00 1/1 0/0 0/0 .text
* setStage__12J2DTextBoxExFP11J2DTevStageQ212J2DTextBoxEx10stage_enum */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void J2DTextBoxEx::setStage(J2DTevStage* param_0, J2DTextBoxEx::stage_enum param_1) {
- nofralloc
-#include "asm/JSystem/J2DGraph/J2DTextBoxEx/setStage__12J2DTextBoxExFP11J2DTevStageQ212J2DTextBoxEx10stage_enum.s"
+void J2DTextBoxEx::setStage(J2DTevStage* param_0, J2DTextBoxEx::stage_enum param_1) {
+ const u8 tevColors[3][4] = {
+ {0x0F, 0x08, 0x0A, 0x0F}, {0x02, 0x04, 0x08, 0x0F}, {0x0F, 0x0A, 0x00, 0x0F},
+ };
+ const u8 tevAlpha[3][4] = {
+ {0x07, 0x04, 0x05, 0x07}, {0x01, 0x02, 0x04, 0x07}, {0x07, 0x05, 0x00, 0x07},
+ };
+
+ const u8 tevColorOps[3][5] = {
+ {0x00, 0x00, 0x00, 0x01, 0x00},
+ {0x00, 0x00, 0x00, 0x01, 0x00},
+ {0x00, 0x00, 0x00, 0x01, 0x00},
+ };
+
+ const u8 tevAlphaOps[3][5] = {
+ {0x00, 0x00, 0x00, 0x01, 0x00},
+ {0x00, 0x00, 0x00, 0x01, 0x00},
+ {0x00, 0x00, 0x00, 0x01, 0x00},
+ };
+
+ param_0->setTevColorAB(tevColors[param_1][0], tevColors[param_1][1]);
+ param_0->setTevColorCD(tevColors[param_1][2], tevColors[param_1][3]);
+ param_0->setTevColorOp(
+ tevColorOps[param_1][0], tevColorOps[param_1][1], tevColorOps[param_1][2], tevColorOps[param_1][3], tevColorOps[param_1][4]);
+ param_0->setAlphaABCD(
+ tevAlpha[param_1][0], tevAlpha[param_1][1], tevAlpha[param_1][2], tevAlpha[param_1][3]);
+ param_0->setTevAlphaOp(
+ tevAlphaOps[param_1][0], tevAlphaOps[param_1][1], tevAlphaOps[param_1][2], tevAlphaOps[param_1][3], tevAlphaOps[param_1][4]);
}
-#pragma pop
/* 8030823C-803082C4 302B7C 0088+00 1/0 0/0 0/0 .text setBlack__12J2DTextBoxExFQ28JUtility6TColor
*/
diff --git a/libs/SSystem/SComponent/c_m3d.cpp b/libs/SSystem/SComponent/c_m3d.cpp
index 8897f1b82d..6d3d90db1a 100644
--- a/libs/SSystem/SComponent/c_m3d.cpp
+++ b/libs/SSystem/SComponent/c_m3d.cpp
@@ -10,7 +10,9 @@
#include "SSystem/SComponent/c_m3d_g_lin.h"
#include "SSystem/SComponent/c_m3d_g_sph.h"
#include "SSystem/SComponent/c_m3d_g_tri.h"
+#include "SSystem/SComponent/c_m3d_g_cps.h"
#include "SSystem/SComponent/c_math.h"
+#include "SSystem/SComponent/c_sxyz.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "global.h"
@@ -611,16 +613,48 @@ bool cM3d_InclusionCheckPosIn3PosBox3d(const Vec* pVecA, const Vec* pVecB, const
/* 80269D64-80269E18 2646A4 00B4+00 11/11 0/0 0/0 .text
* cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm bool cM3d_InclusionCheckPosIn3PosBox2d(f32 param_0, f32 param_1, f32 param_2,
- f32 param_3, f32 param_4, f32 param_5,
- f32 param_6, f32 param_7, f32 param_8) {
- nofralloc
-#include "asm/SSystem/SComponent/c_m3d/cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff.s"
+static bool cM3d_InclusionCheckPosIn3PosBox2d(f32 param_1, f32 param_2, f32 param_3,
+ f32 param_4, f32 param_5, f32 param_6,
+ f32 param_7, f32 param_8, f32 param_9) {
+ f32 dVar6 = param_9;
+ f32 dVar7;
+ if (param_1 < param_3) {
+ dVar7 = param_1;
+ } else {
+ dVar7 = param_3;
+ param_3 = param_1;
+ }
+
+ if (dVar7 > param_5) {
+ dVar7 = param_5;
+ } else if (param_3 < param_5) {
+ param_3 = param_5;
+ }
+
+ if (dVar7 - dVar6 > param_7 || param_3 + dVar6 < param_7) {
+ return false;
+ }
+
+ f32 fVar1;
+ if (param_2 < param_4) {
+ fVar1 = param_2;
+ } else {
+ fVar1 = param_4;
+ param_4 = param_2;
+ }
+
+ if (fVar1 > param_6) {
+ fVar1 = param_6;
+ } else if (param_4 < param_6) {
+ param_4 = param_6;
+ }
+
+ if (fVar1 - dVar6 > param_8 || param_4 + dVar6 < param_8)
+ {
+ return false;
+ }
+ return true;
}
-#pragma pop
/* ############################################################################################## */
/* 804551AC-804551B0 0037AC 0004+00 11/11 0/0 0/0 .sdata2 @3205 */
@@ -1036,6 +1070,36 @@ asm bool cM3d_Cross_CpsCyl(cM3dGCps const& param_0, cM3dGCyl const& param_1, Vec
/* 8026DAE0-8026DC3C 268420 015C+00 1/1 0/0 0/0 .text
* cM3d_Cross_CpsSph_CrossPos__FRC8cM3dGCpsRC8cM3dGSphRC3VecP3Vec */
+// Matches with literals
+#ifdef NONMATCHING
+static bool cM3d_Cross_CpsSph_CrossPos(cM3dGCps const& param_1, cM3dGSph const& param_2,
+ Vec const& param_3, Vec* param_4) {
+ Vec aVStack_70;
+ Vec VStack_7c;
+ int iVar5 = cM3d_Cross_LinSph_CrossPos(param_2, param_1, &aVStack_70, &VStack_7c);
+ if (iVar5 == 1) {
+ *param_4 = aVStack_70;
+ } else if (iVar5 == 2) {
+ f32 dVar8 = VECSquareDistance(&aVStack_70, &param_1.GetStartP());
+ f32 dVar9 = VECSquareDistance(&VStack_7c, &param_1.GetStartP());
+ if (dVar8 < dVar9) {
+ *param_4 = aVStack_70;
+ } else {
+ *param_4 = VStack_7c;
+ }
+ } else {
+ f32 dVar8 = param_1.GetR() + param_2.GetR();
+ *param_4 = param_3;
+ if (cM3d_IsZero(dVar8)) {
+ *param_4 = param_3;
+ }
+ Vec auStack_88;
+ VECSubtract(&param_3, param_2.GetCP(), &auStack_88);
+ VECScale(&auStack_88, &auStack_88, 0.5f);
+ VECAdd(param_4, &auStack_88, param_4);
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1045,9 +1109,33 @@ static asm bool cM3d_Cross_CpsSph_CrossPos(cM3dGCps const& param_0, cM3dGSph con
#include "asm/SSystem/SComponent/c_m3d/cM3d_Cross_CpsSph_CrossPos__FRC8cM3dGCpsRC8cM3dGSphRC3VecP3Vec.s"
}
#pragma pop
+#endif
/* 8026DC3C-8026DE2C 26857C 01F0+00 0/0 4/4 0/0 .text
* cM3d_Cross_CpsSph__FRC8cM3dGCpsRC8cM3dGSphP3Vec */
+// Matches with literals
+#ifdef NONMATCHING
+bool cM3d_Cross_CpsSph(cM3dGCps const& param_1, cM3dGSph const& param_2, Vec* param_3) {
+ f32 local_38 = VECDistance(&param_1.GetStartP(), param_2.GetCP());
+ if (local_38 < param_1.GetR() + param_2.GetR()) {
+ cM3d_Cross_CpsSph_CrossPos(param_1, param_2, param_1.GetStartP(), param_3);
+ return true;
+ }
+ local_38 = VECDistance(&param_1.GetEndP(), param_2.GetCP());
+ if (local_38 < param_1.GetR() + param_2.GetR()) {
+ cM3d_Cross_CpsSph_CrossPos(param_1, param_2, param_1.GetEndP(), param_3);
+ return true;
+ }
+ Vec auStack_34;
+ if (cM3d_Len3dSqPntAndSegLine(&param_1, param_2.GetCP(), &auStack_34, &local_38) != 0) {
+ if (sqrtf(local_38) < param_1.GetR() + param_2.GetR()) {
+ cM3d_Cross_CpsSph_CrossPos(param_1, param_2, auStack_34, param_3);
+ return true;
+ }
+ }
+ return false;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1056,6 +1144,7 @@ asm bool cM3d_Cross_CpsSph(cM3dGCps const& param_0, cM3dGSph const& param_1, Vec
#include "asm/SSystem/SComponent/c_m3d/cM3d_Cross_CpsSph__FRC8cM3dGCpsRC8cM3dGSphP3Vec.s"
}
#pragma pop
+#endif
/* 8026DE2C-8026E12C 26876C 0300+00 0/0 1/1 0/0 .text
* cM3d_Cross_TriTri__FRC8cM3dGTriRC8cM3dGTriP3Vec */
@@ -1096,6 +1185,14 @@ void cM3d_CalcVecAngle(const Vec& pVec, s16* pOutA, s16* pOutB) {
/* 8026E570-8026E6C4 268EB0 0154+00 0/0 1/1 0/0 .text cM3d_CalcVecZAngle__FRC3VecP5csXyz
*/
+// Matches with literals
+#ifdef NONMATCHING
+void cM3d_CalcVecZAngle(Vec const& param_0, csXyz* param_1) {
+ param_1->x = -cM_atan2s(param_0.y, sqrtf(param_0.x * param_0.x + param_0.z * param_0.z));;
+ param_1->y = cM_atan2s(param_0.x, param_0.z);
+ param_1->z = 0;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1104,6 +1201,7 @@ asm void cM3d_CalcVecZAngle(Vec const& param_0, csXyz* param_1) {
#include "asm/SSystem/SComponent/c_m3d/cM3d_CalcVecZAngle__FRC3VecP5csXyz.s"
}
#pragma pop
+#endif
/* 8026E6C4-8026E6F0 269004 002C+00 1/1 0/0 0/0 .text cM3d_PlaneCrossLineProcWork__FfffffffPfPf */
void cM3d_PlaneCrossLineProcWork(f32 f1, f32 f2, f32 f3, f32 f4, f32 f5, f32 f6, f32 f7, f32* pF1,