mirror of https://github.com/zeldaret/tp.git
949 lines
30 KiB
C++
949 lines
30 KiB
C++
//
|
|
// Generated By: dol2asm
|
|
// Translation Unit: J2DPane
|
|
//
|
|
|
|
#include "JSystem/J2DGraph/J2DPane.h"
|
|
#include "dol2asm.h"
|
|
#include "dolphin/types.h"
|
|
|
|
//
|
|
// Types:
|
|
//
|
|
|
|
struct JUTResReference {
|
|
/* 802DE078 */ void getResource(JSUInputStream*, u32, JKRArchive*);
|
|
};
|
|
|
|
struct J2DOrthoGraph {
|
|
/* 802E987C */ void scissorBounds(JGeometry::TBox2<f32>*, JGeometry::TBox2<f32> const*);
|
|
};
|
|
|
|
struct J2DDataManage {
|
|
/* 8030CE7C */ void get(JSUInputStream*);
|
|
};
|
|
|
|
//
|
|
// Forward References:
|
|
//
|
|
|
|
extern "C" void __ct__7J2DPaneFv();
|
|
extern "C" void initiate__7J2DPaneFv();
|
|
extern "C" void func_802F5D40();
|
|
extern "C" void func_802F5DD0();
|
|
extern "C" void func_802F5E88();
|
|
extern "C" void func_802F5F08();
|
|
extern "C" void __ct__7J2DPaneFP7J2DPaneP20JSURandomInputStreamUc();
|
|
extern "C" void makePaneStream__7J2DPaneFP7J2DPaneP20JSURandomInputStream();
|
|
extern "C" void changeUseTrans__7J2DPaneFP7J2DPane();
|
|
extern "C" void __dt__7J2DPaneFv();
|
|
extern "C" void appendChild__7J2DPaneFP7J2DPane();
|
|
extern "C" void insertChild__7J2DPaneFP7J2DPaneP7J2DPane();
|
|
extern "C" void draw__7J2DPaneFffPC14J2DGrafContextbb();
|
|
extern "C" void func_802F6D18();
|
|
extern "C" void move__7J2DPaneFff();
|
|
extern "C" void add__7J2DPaneFff();
|
|
extern "C" void resize__7J2DPaneFff();
|
|
extern "C" void getBounds__7J2DPaneFv();
|
|
extern "C" void rotate__7J2DPaneFff13J2DRotateAxisf();
|
|
extern "C" void rotate__7J2DPaneFf();
|
|
extern "C" void func_802F7264();
|
|
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 setBasePosition__7J2DPaneF15J2DBasePosition();
|
|
extern "C" void setInfluencedAlpha__7J2DPaneFbb();
|
|
extern "C" void getGlbVtx__7J2DPaneCFUc();
|
|
extern "C" void getFirstChildPane__7J2DPaneFv();
|
|
extern "C" void getNextChildPane__7J2DPaneFv();
|
|
extern "C" void getParentPane__7J2DPaneFv();
|
|
extern "C" void makePaneExStream__7J2DPaneFP7J2DPaneP20JSURandomInputStream();
|
|
extern "C" void J2DCast_F32_to_S16__7J2DPaneFfUc();
|
|
extern "C" void getPointer__7J2DPaneFP20JSURandomInputStreamUlP10JKRArchive();
|
|
extern "C" void setAnimation__7J2DPaneFP10J2DAnmBase();
|
|
extern "C" void setAnimation__7J2DPaneFP15J2DAnmTransform();
|
|
extern "C" void animationTransform__7J2DPaneFv();
|
|
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 updateTransform__7J2DPaneFPC15J2DAnmTransform();
|
|
extern "C" void drawSelf__7J2DPaneFffPA3_A4_f();
|
|
extern "C" void rewriteAlpha__7J2DPaneFv();
|
|
extern "C" void setAnimationVF__7J2DPaneFP20J2DAnmVisibilityFull();
|
|
extern "C" void setAnimationVC__7J2DPaneFP14J2DAnmVtxColor();
|
|
extern "C" void setCullBack__7J2DPaneFb();
|
|
extern "C" void setConnectParent__7J2DPaneFb();
|
|
extern "C" void update__7J2DPaneFv();
|
|
extern "C" void drawSelf__7J2DPaneFff();
|
|
extern "C" void __sinit_J2DPane_cpp();
|
|
extern "C" f32 static_mBounds__7J2DPane[4];
|
|
|
|
//
|
|
// External References:
|
|
//
|
|
|
|
extern "C" void setAlpha__7J2DPaneFUc();
|
|
extern "C" void calcMtx__7J2DPaneFv();
|
|
extern "C" void makeMatrix__7J2DPaneFff();
|
|
extern "C" s32 getTypeID__7J2DPaneCFv();
|
|
extern "C" void setAnimation__7J2DPaneFP15J2DAnmTevRegKey();
|
|
extern "C" void setAnimation__7J2DPaneFP11J2DAnmColor();
|
|
extern "C" void setAnimation__7J2DPaneFP19J2DAnmTextureSRTKey();
|
|
extern "C" void setAnimation__7J2DPaneFP14J2DAnmVtxColor();
|
|
extern "C" void setAnimation__7J2DPaneFP20J2DAnmVisibilityFull();
|
|
extern "C" void setAnimation__7J2DPaneFP16J2DAnmTexPattern();
|
|
extern "C" void __dl__FPv();
|
|
extern "C" void __ct__10JSUPtrLinkFPv();
|
|
extern "C" void __dt__10JSUPtrLinkFv();
|
|
extern "C" void __dt__10JSUPtrListFv();
|
|
extern "C" void initiate__10JSUPtrListFv();
|
|
extern "C" void append__10JSUPtrListFP10JSUPtrLink();
|
|
extern "C" void insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink();
|
|
extern "C" void read__14JSUInputStreamFPvl();
|
|
extern "C" void align__20JSURandomInputStreamFl();
|
|
extern "C" void peek__20JSURandomInputStreamFPvl();
|
|
extern "C" void seek__20JSURandomInputStreamFl17JSUStreamSeekFrom();
|
|
extern "C" void getResource__15JUTResReferenceFP14JSUInputStreamUlP10JKRArchive();
|
|
extern "C" void setScissor__14J2DGrafContextFv();
|
|
extern "C" void func_802E90C0();
|
|
extern "C" void func_802E987C();
|
|
extern "C" void get__13J2DDataManageFP14JSUInputStream();
|
|
extern "C" void GXSetCullMode();
|
|
extern "C" void _savegpr_25();
|
|
extern "C" void _savegpr_27();
|
|
extern "C" void _savegpr_28();
|
|
extern "C" void _savegpr_29();
|
|
extern "C" void _restgpr_25();
|
|
extern "C" void _restgpr_27();
|
|
extern "C" void _restgpr_28();
|
|
extern "C" void _restgpr_29();
|
|
extern "C" extern void* __vt__14J2DGrafContext[10];
|
|
extern "C" u8 mDataManage__9J2DScreen[4 + 4 /* padding */];
|
|
|
|
//
|
|
// Declarations:
|
|
//
|
|
|
|
/* ############################################################################################## */
|
|
/* 803CCFB0-803CCFD0 -00001 0020+00 1/1 0/0 0/0 .data @2709 */
|
|
SECTION_DATA static void* lit_2709[8] = {
|
|
(void*)(((char*)setAnimation__7J2DPaneFP10J2DAnmBase) + 0x38),
|
|
(void*)(((char*)setAnimation__7J2DPaneFP10J2DAnmBase) + 0x4C),
|
|
(void*)(((char*)setAnimation__7J2DPaneFP10J2DAnmBase) + 0x88),
|
|
(void*)(((char*)setAnimation__7J2DPaneFP10J2DAnmBase) + 0xC0),
|
|
(void*)(((char*)setAnimation__7J2DPaneFP10J2DAnmBase) + 0x74),
|
|
(void*)(((char*)setAnimation__7J2DPaneFP10J2DAnmBase) + 0xB0),
|
|
(void*)(((char*)setAnimation__7J2DPaneFP10J2DAnmBase) + 0x9C),
|
|
(void*)(((char*)setAnimation__7J2DPaneFP10J2DAnmBase) + 0x60),
|
|
};
|
|
|
|
/* 803CCFD0-803CD068 02A0F0 0094+04 5/5 0/0 0/0 .data __vt__7J2DPane */
|
|
SECTION_DATA extern void* __vt__7J2DPane[37 + 1 /* padding */] = {
|
|
(void*)NULL /* RTTI */,
|
|
(void*)NULL,
|
|
(void*)__dt__7J2DPaneFv,
|
|
(void*)getTypeID__7J2DPaneCFv,
|
|
(void*)move__7J2DPaneFff,
|
|
(void*)add__7J2DPaneFff,
|
|
(void*)resize__7J2DPaneFff,
|
|
(void*)setCullBack__7J2DPaneFb,
|
|
(void*)setCullBack__7J2DPaneF11_GXCullMode,
|
|
(void*)setAlpha__7J2DPaneFUc,
|
|
(void*)setConnectParent__7J2DPaneFb,
|
|
(void*)calcMtx__7J2DPaneFv,
|
|
(void*)update__7J2DPaneFv,
|
|
(void*)drawSelf__7J2DPaneFff,
|
|
(void*)drawSelf__7J2DPaneFffPA3_A4_f,
|
|
(void*)search__7J2DPaneFUx,
|
|
(void*)searchUserInfo__7J2DPaneFUx,
|
|
(void*)makeMatrix__7J2DPaneFff,
|
|
(void*)makeMatrix__7J2DPaneFffff,
|
|
(void*)isUsed__7J2DPaneFPC7ResTIMG,
|
|
(void*)isUsed__7J2DPaneFPC7ResFONT,
|
|
(void*)clearAnmTransform__7J2DPaneFv,
|
|
(void*)rewriteAlpha__7J2DPaneFv,
|
|
(void*)setAnimation__7J2DPaneFP10J2DAnmBase,
|
|
(void*)setAnimation__7J2DPaneFP15J2DAnmTransform,
|
|
(void*)setAnimation__7J2DPaneFP11J2DAnmColor,
|
|
(void*)setAnimation__7J2DPaneFP16J2DAnmTexPattern,
|
|
(void*)setAnimation__7J2DPaneFP19J2DAnmTextureSRTKey,
|
|
(void*)setAnimation__7J2DPaneFP15J2DAnmTevRegKey,
|
|
(void*)setAnimation__7J2DPaneFP20J2DAnmVisibilityFull,
|
|
(void*)setAnimation__7J2DPaneFP14J2DAnmVtxColor,
|
|
(void*)animationTransform__7J2DPaneFPC15J2DAnmTransform,
|
|
(void*)setVisibileAnimation__7J2DPaneFP20J2DAnmVisibilityFull,
|
|
(void*)setAnimationVF__7J2DPaneFP20J2DAnmVisibilityFull,
|
|
(void*)setVtxColorAnimation__7J2DPaneFP14J2DAnmVtxColor,
|
|
(void*)setAnimationVC__7J2DPaneFP14J2DAnmVtxColor,
|
|
(void*)animationPane__7J2DPaneFPC15J2DAnmTransform,
|
|
/* padding */
|
|
NULL,
|
|
};
|
|
|
|
/* 804561F0-804561F4 0047F0 0004+00 12/12 0/0 0/0 .sdata2 @1469 */
|
|
SECTION_SDATA2 static u8 lit_1469[4] = {
|
|
0x00,
|
|
0x00,
|
|
0x00,
|
|
0x00,
|
|
};
|
|
|
|
/* 802F5BF8-802F5CB8 2F0538 00C0+00 0/0 10/10 0/0 .text __ct__7J2DPaneFv */
|
|
J2DPane::J2DPane() : mBounds(), mGlobalBounds(), mClipRect(), mPaneTree(this) {
|
|
mTransform = NULL;
|
|
id = 'PAN1';
|
|
mVisible = true;
|
|
mInfoTag = 0;
|
|
mUserInfoTag = 0;
|
|
mBounds.set(FLOAT_LABEL(lit_1469), FLOAT_LABEL(lit_1469), FLOAT_LABEL(lit_1469),
|
|
FLOAT_LABEL(lit_1469));
|
|
initiate();
|
|
changeUseTrans(NULL);
|
|
calcMtx();
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 804561F4-804561F8 0047F4 0004+00 3/3 0/0 0/0 .sdata2 @1489 */
|
|
SECTION_SDATA2 static f32 lit_1489 = 1.0f;
|
|
|
|
/* 802F5CB8-802F5D40 2F05F8 0088+00 3/3 0/0 0/0 .text initiate__7J2DPaneFv */
|
|
void J2DPane::initiate() {
|
|
_4 = -1;
|
|
mRotateOffsetY = mRotateOffsetX = mRotateZ = mRotateY = mRotateX = FLOAT_LABEL(lit_1469);
|
|
mBasePosition = 0;
|
|
mRotAxis = ROTATE_Z;
|
|
mScaleY = mScaleX = lit_1489;
|
|
mCullMode = GX_CULL_NONE;
|
|
mAlpha = 0xFF;
|
|
mIsInfluencedAlpha = true;
|
|
mColorAlpha = 0xFF;
|
|
mConnected = false;
|
|
|
|
calcMtx();
|
|
}
|
|
|
|
/* 802F5D40-802F5DD0 2F0680 0090+00 0/0 1/1 0/0 .text
|
|
* __ct__7J2DPaneFP7J2DPanebUxRCQ29JGeometry8TBox2<f> */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm J2DPane::J2DPane(J2DPane* param_0, bool param_1, u64 param_2,
|
|
JGeometry::TBox2<f32> const& param_3) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/func_802F5D40.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802F5DD0-802F5E88 2F0710 00B8+00 1/1 0/0 0/0 .text
|
|
* initialize__7J2DPaneFP7J2DPanebUxRCQ29JGeometry8TBox2<f> */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::initialize(J2DPane* param_0, bool param_1, u64 param_2,
|
|
JGeometry::TBox2<f32> const& param_3) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/func_802F5DD0.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802F5E88-802F5F08 2F07C8 0080+00 0/0 3/3 0/0 .text __ct__7J2DPaneFUxRCQ29JGeometry8TBox2<f> */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm J2DPane::J2DPane(u64 param_0, JGeometry::TBox2<f32> const& param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/func_802F5E88.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802F5F08-802F5F9C 2F0848 0094+00 1/1 0/0 0/0 .text
|
|
* initialize__7J2DPaneFUxRCQ29JGeometry8TBox2<f> */
|
|
#ifdef NONMATCHING // templating..... again
|
|
void J2DPane::initialize(u64 tag, const TBox2<f32>& dim) {
|
|
id = 'PAN1';
|
|
mVisible = true;
|
|
mInfoTag = tag;
|
|
mUserInfoTag = tag;
|
|
mBounds.set(dim);
|
|
initiate();
|
|
changeUseTrans(NULL);
|
|
calcMtx();
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::initialize(u64 param_0, JGeometry::TBox2<f32> const& param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/func_802F5F08.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 802F5F9C-802F60C4 2F08DC 0128+00 0/0 1/1 0/0 .text
|
|
* __ct__7J2DPaneFP7J2DPaneP20JSURandomInputStreamUc */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm J2DPane::J2DPane(J2DPane* param_0, JSURandomInputStream* param_1, u8 param_2) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/__ct__7J2DPaneFP7J2DPaneP20JSURandomInputStreamUc.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* ############################################################################################## */
|
|
/* 804561F8-80456200 0047F8 0008+00 3/3 0/0 0/0 .sdata2 @1651 */
|
|
SECTION_SDATA2 static f64 lit_1651 = 4503601774854144.0 /* cast s32 to float */;
|
|
|
|
/* 80456200-80456208 004800 0008+00 3/3 0/0 0/0 .sdata2 @1655 */
|
|
SECTION_SDATA2 static f64 lit_1655 = 4503599627370496.0 /* cast u32 to float */;
|
|
|
|
/* 802F60C4-802F63F8 2F0A04 0334+00 1/1 3/3 0/0 .text
|
|
* makePaneStream__7J2DPaneFP7J2DPaneP20JSURandomInputStream */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::makePaneStream(J2DPane* param_0, JSURandomInputStream* param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/makePaneStream__7J2DPaneFP7J2DPaneP20JSURandomInputStream.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* ############################################################################################## */
|
|
/* 80456208-8045620C 004808 0004+00 4/4 0/0 0/0 .sdata2 @1725 */
|
|
SECTION_SDATA2 static f32 lit_1725 = 0.5f;
|
|
|
|
/* 802F63F8-802F658C 2F0D38 0194+00 4/4 0/0 0/0 .text changeUseTrans__7J2DPaneFP7J2DPane
|
|
*/
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::changeUseTrans(J2DPane* param_0) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/changeUseTrans__7J2DPaneFP7J2DPane.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802F658C-802F666C 2F0ECC 00E0+00 1/0 4/4 0/0 .text __dt__7J2DPaneFv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
// asm J2DPane::~J2DPane() {
|
|
extern "C" asm void __dt__7J2DPaneFv() {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/__dt__7J2DPaneFv.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802F666C-802F6714 2F0FAC 00A8+00 0/0 2/2 0/0 .text appendChild__7J2DPaneFP7J2DPane */
|
|
bool J2DPane::appendChild(J2DPane* pChild) {
|
|
if (pChild == NULL)
|
|
return false;
|
|
|
|
const J2DPane* parent = pChild->getParentPane();
|
|
bool result = mPaneTree.appendChild(&pChild->mPaneTree);
|
|
|
|
if (result && parent == NULL) {
|
|
pChild->add(mBounds.i.x, mBounds.i.y);
|
|
pChild->calcMtx();
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
/* 802F6714-802F67E0 2F1054 00CC+00 0/0 1/1 0/0 .text insertChild__7J2DPaneFP7J2DPaneP7J2DPane */
|
|
#ifdef NONMATCHING
|
|
bool J2DPane::insertChild(J2DPane* before, J2DPane* child) {
|
|
if (child == NULL)
|
|
return false;
|
|
|
|
const J2DPane* parent = child->getParentPane();
|
|
|
|
bool result = mPaneTree.insertChild(&before->mPaneTree, &child->mPaneTree);
|
|
|
|
if (result && parent == NULL) {
|
|
child->add(mBounds.i.x, mBounds.i.y);
|
|
child->calcMtx();
|
|
}
|
|
|
|
return result;
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm bool J2DPane::insertChild(J2DPane* param_0, J2DPane* param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/insertChild__7J2DPaneFP7J2DPaneP7J2DPane.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 802F67E0-802F6D18 2F1120 0538+00 0/0 1/1 0/0 .text draw__7J2DPaneFffPC14J2DGrafContextbb */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::draw(f32 param_0, f32 param_1, J2DGrafContext const* param_2, bool param_3,
|
|
bool param_4) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/draw__7J2DPaneFffPC14J2DGrafContextbb.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802F6D18-802F6F60 2F1658 0248+00 2/2 4/4 0/0 .text place__7J2DPaneFRCQ29JGeometry8TBox2<f> */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::place(JGeometry::TBox2<f32> const& param_0) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/func_802F6D18.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802F6F60-802F6FB4 2F18A0 0054+00 1/0 7/0 0/0 .text move__7J2DPaneFff */
|
|
#ifdef NONMATCHING
|
|
void J2DPane::move(f32 x, f32 y) {
|
|
place(TBox2<f32>(x, y, x + getWidth(), y + getHeight()));
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::move(f32 param_0, f32 param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/move__7J2DPaneFff.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 802F6FB4-802F6FF8 2F18F4 0044+00 1/0 7/0 0/0 .text add__7J2DPaneFff */
|
|
void J2DPane::add(f32 x, f32 y) {
|
|
mTranslateX += x;
|
|
mTranslateY += y;
|
|
calcMtx();
|
|
}
|
|
|
|
/* 802F6FF8-802F7100 2F1938 0108+00 1/0 5/2 0/0 .text resize__7J2DPaneFff */
|
|
#ifdef NONMATCHING
|
|
void J2DPane::resize(f32 x, f32 y) {
|
|
TBox2<f32> box = mBounds;
|
|
|
|
box.addPos(TVec2<f32>(mTranslateX, mTranslateY));
|
|
|
|
const J2DPane* parent = getParentPane();
|
|
if (parent != NULL) {
|
|
box.addPos(TVec2<f32>(-parent->mBounds.i.x, -parent->mBounds.i.y));
|
|
}
|
|
|
|
box.f.x = box.i.x + x;
|
|
box.f.y = box.i.y + y;
|
|
place(box);
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::resize(f32 param_0, f32 param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/resize__7J2DPaneFff.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* ############################################################################################## */
|
|
/* 804349B0-804349C0 0616D0 0010+00 2/2 0/0 0/0 .bss static_mBounds__7J2DPane */
|
|
f32 J2DPane::static_mBounds[4];
|
|
|
|
/* 802F7100-802F71DC 2F1A40 00DC+00 0/0 25/25 1/1 .text getBounds__7J2DPaneFv */
|
|
#ifdef NONMATCHING // close ish
|
|
TBox2<f32>& J2DPane::getBounds() {
|
|
lbl_804349B0 = mBounds;
|
|
lbl_804349B0.addPos(TVec2<f32>(mTranslateX, mTranslateY));
|
|
|
|
const J2DPane* parent = getParentPane();
|
|
if (parent != NULL) {
|
|
lbl_804349B0.addPos(TVec2<f32>(-parent->mBounds.i.x, -parent->mBounds.i.y));
|
|
}
|
|
|
|
return lbl_804349B0;
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm JGeometry::TBox2<f32>& J2DPane::getBounds() {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/getBounds__7J2DPaneFv.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 802F71DC-802F720C 2F1B1C 0030+00 0/0 12/12 0/0 .text rotate__7J2DPaneFff13J2DRotateAxisf */
|
|
void J2DPane::rotate(f32 offsetX, f32 offsetY, J2DRotateAxis axis, f32 angle) {
|
|
mRotateOffsetX = offsetX;
|
|
mRotateOffsetY = offsetY;
|
|
mRotAxis = axis;
|
|
rotate(angle);
|
|
}
|
|
|
|
/* 802F720C-802F7264 2F1B4C 0058+00 1/1 0/0 0/0 .text rotate__7J2DPaneFf */
|
|
void J2DPane::rotate(f32 angle) {
|
|
if (mRotAxis == ROTATE_X) {
|
|
mRotateX = angle;
|
|
} else if (mRotAxis == ROTATE_Y) {
|
|
mRotateY = angle;
|
|
} else {
|
|
mRotateZ = angle;
|
|
}
|
|
|
|
calcMtx();
|
|
}
|
|
|
|
/* 802F7264-802F72E0 2F1BA4 007C+00 0/0 2/2 0/0 .text clip__7J2DPaneFRCQ29JGeometry8TBox2<f> */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::clip(JGeometry::TBox2<f32> const& param_0) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/func_802F7264.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802F72E0-802F7388 2F1C20 00A8+00 1/0 7/1 0/0 .text search__7J2DPaneFUx */
|
|
J2DPane* J2DPane::search(u64 tag) {
|
|
if (tag == mInfoTag) {
|
|
return this;
|
|
}
|
|
|
|
JSUTreeIterator<J2DPane> iter;
|
|
for (iter = mPaneTree.getFirstChild(); iter != mPaneTree.getEndChild(); ++iter) {
|
|
if (J2DPane* result = iter.getObject()->search(tag)) {
|
|
return result;
|
|
}
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 802F7388-802F7430 2F1CC8 00A8+00 1/0 7/1 0/0 .text searchUserInfo__7J2DPaneFUx */
|
|
J2DPane* J2DPane::searchUserInfo(u64 tag) {
|
|
if (tag == mUserInfoTag) {
|
|
return this;
|
|
}
|
|
|
|
JSUTreeIterator<J2DPane> iter;
|
|
for (iter = mPaneTree.getFirstChild(); iter != mPaneTree.getEndChild(); ++iter) {
|
|
if (J2DPane* result = iter.getObject()->searchUserInfo(tag)) {
|
|
return result;
|
|
}
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 802F7430-802F74B8 2F1D70 0088+00 1/0 7/7 0/0 .text isUsed__7J2DPaneFPC7ResTIMG */
|
|
bool J2DPane::isUsed(const ResTIMG* timg) {
|
|
JSUTreeIterator<J2DPane> iter;
|
|
for (iter = mPaneTree.getFirstChild(); iter != mPaneTree.getEndChild(); ++iter) {
|
|
if (iter.getObject()->isUsed(timg))
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/* 802F74B8-802F7540 2F1DF8 0088+00 1/0 7/7 0/0 .text isUsed__7J2DPaneFPC7ResFONT */
|
|
bool J2DPane::isUsed(const ResFONT* font) {
|
|
JSUTreeIterator<J2DPane> iter;
|
|
for (iter = mPaneTree.getFirstChild(); iter != mPaneTree.getEndChild(); ++iter) {
|
|
if (iter.getObject()->isUsed(font))
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 8045620C-80456210 00480C 0004+00 1/1 0/0 0/0 .sdata2 @2466 */
|
|
SECTION_SDATA2 static f32 lit_2466 = 0.01745329238474369f;
|
|
|
|
/* 802F7540-802F7680 2F1E80 0140+00 1/0 7/0 0/0 .text makeMatrix__7J2DPaneFffff */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::makeMatrix(f32 param_0, f32 param_1, f32 param_2, f32 param_3) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/makeMatrix__7J2DPaneFffff.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802F7680-802F76F8 2F1FC0 0078+00 1/0 7/3 0/0 .text setCullBack__7J2DPaneF11_GXCullMode
|
|
*/
|
|
void J2DPane::setCullBack(_GXCullMode mode) {
|
|
mCullMode = mode;
|
|
|
|
JSUTreeIterator<J2DPane> iter;
|
|
for (iter = mPaneTree.getFirstChild(); iter != mPaneTree.getEndChild(); ++iter) {
|
|
iter.getObject()->setCullBack(mode);
|
|
}
|
|
}
|
|
|
|
/* 802F76F8-802F77D0 2F2038 00D8+00 0/0 8/8 0/0 .text setBasePosition__7J2DPaneF15J2DBasePosition
|
|
*/
|
|
void J2DPane::setBasePosition(J2DBasePosition position) {
|
|
mBasePosition = position;
|
|
mRotAxis = ROTATE_Z;
|
|
|
|
mRotateOffsetX = FLOAT_LABEL(lit_1469);
|
|
|
|
if (position % 3 == 1) {
|
|
f32 width = getWidth();
|
|
mRotateOffsetX = width * lit_1725;
|
|
} else if (position % 3 == 2) {
|
|
f32 width = getWidth();
|
|
mRotateOffsetX = width;
|
|
}
|
|
|
|
mRotateOffsetY = FLOAT_LABEL(lit_1469);
|
|
if (position / 3 == 1) {
|
|
f32 height = getHeight();
|
|
mRotateOffsetY = height * lit_1725;
|
|
} else if (position / 3 == 2) {
|
|
f32 height = getHeight();
|
|
mRotateOffsetY = height;
|
|
}
|
|
|
|
calcMtx();
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 80456210-80456214 004810 0004+00 1/1 0/0 0/0 .sdata2 @2547 */
|
|
SECTION_SDATA2 static f32 lit_2547 = 255.0f;
|
|
|
|
/* 802F77D0-802F79A8 2F2110 01D8+00 0/0 1/1 0/0 .text setInfluencedAlpha__7J2DPaneFbb */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::setInfluencedAlpha(bool param_0, bool param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/setInfluencedAlpha__7J2DPaneFbb.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802F79A8-802F7A8C 2F22E8 00E4+00 0/0 3/3 0/0 .text getGlbVtx__7J2DPaneCFUc */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::getGlbVtx(u8 param_0) const {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/getGlbVtx__7J2DPaneCFUc.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802F7A8C-802F7AC4 2F23CC 0038+00 1/1 15/15 0/0 .text getFirstChildPane__7J2DPaneFv */
|
|
#ifdef NONMATCHING // probably an issue with JSUTree
|
|
const J2DPane* J2DPane::getFirstChildPane() {
|
|
if (!getFirstChild())
|
|
return NULL;
|
|
|
|
return getFirstChild()->getObject();
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm J2DPane* J2DPane::getFirstChildPane() {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/getFirstChildPane__7J2DPaneFv.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 802F7AC4-802F7AFC 2F2404 0038+00 1/1 8/8 0/0 .text getNextChildPane__7J2DPaneFv */
|
|
J2DPane* J2DPane::getNextChildPane() {
|
|
if (getPaneTree()->getNextChild() == NULL)
|
|
return NULL;
|
|
|
|
return getPaneTree()->getNextChild()->getObject();
|
|
}
|
|
|
|
/* 802F7AFC-802F7B18 2F243C 001C+00 6/6 11/11 0/0 .text getParentPane__7J2DPaneFv */
|
|
J2DPane* J2DPane::getParentPane() {
|
|
if (getPaneTree()->getParent() == NULL)
|
|
return NULL;
|
|
|
|
return getPaneTree()->getParent()->getObject();
|
|
}
|
|
|
|
/* 802F7B18-802F7D00 2F2458 01E8+00 1/1 6/6 0/0 .text
|
|
* makePaneExStream__7J2DPaneFP7J2DPaneP20JSURandomInputStream */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::makePaneExStream(J2DPane* param_0, JSURandomInputStream* param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/makePaneExStream__7J2DPaneFP7J2DPaneP20JSURandomInputStream.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802F7D00-802F7DB8 2F2640 00B8+00 0/0 1/1 0/0 .text J2DCast_F32_to_S16__7J2DPaneFfUc */
|
|
#ifdef NONMATCHING // not happening
|
|
s16 J2DPane::J2DCast_F32_to_S16(f32 value, u8 arg2) {
|
|
f32 temp;
|
|
s32 temp2;
|
|
s16 result;
|
|
|
|
if (arg2 < 0xf) {
|
|
temp = value;
|
|
if (temp < lbl_804561F0)
|
|
temp = -value;
|
|
|
|
temp2 = value;
|
|
|
|
if (temp2 < 0x8000) {
|
|
if (value >= lbl_804561F0) {
|
|
result = temp2;
|
|
} else {
|
|
result = ~temp2 + 1;
|
|
}
|
|
} else {
|
|
if (value >= lbl_804561F0) {
|
|
result = 0x7fff;
|
|
} else {
|
|
result = -0x8000;
|
|
}
|
|
}
|
|
} else {
|
|
result = 0;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm s16 J2DPane::J2DCast_F32_to_S16(f32 param_0, u8 param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/J2DCast_F32_to_S16__7J2DPaneFfUc.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 802F7DB8-802F7EF4 2F26F8 013C+00 0/0 3/3 0/0 .text
|
|
* getPointer__7J2DPaneFP20JSURandomInputStreamUlP10JKRArchive */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void* J2DPane::getPointer(JSURandomInputStream* param_0, u32 param_1, JKRArchive* param_2) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/getPointer__7J2DPaneFP20JSURandomInputStreamUlP10JKRArchive.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802F7EF4-802F7FC4 2F2834 00D0+00 2/0 7/4 0/0 .text setAnimation__7J2DPaneFP10J2DAnmBase */
|
|
#ifdef NONMATCHING // matching in diff.py, what gives?
|
|
void J2DPane::setAnimation(J2DAnmBase* anm) {
|
|
if (anm != NULL) {
|
|
switch (anm->getKind()) {
|
|
default:
|
|
break;
|
|
case 0:
|
|
setAnimation(static_cast<J2DAnmTransform*>(anm));
|
|
break;
|
|
case 1:
|
|
setAnimation(static_cast<J2DAnmColor*>(anm));
|
|
break;
|
|
case 2:
|
|
setAnimation(static_cast<J2DAnmVtxColor*>(anm));
|
|
break;
|
|
case 4:
|
|
setAnimation(static_cast<J2DAnmTextureSRTKey*>(anm));
|
|
break;
|
|
case 5:
|
|
setAnimation(static_cast<J2DAnmTexPattern*>(anm));
|
|
break;
|
|
case 6:
|
|
setAnimation(static_cast<J2DAnmVisibilityFull*>(anm));
|
|
break;
|
|
case 7:
|
|
setAnimation(static_cast<J2DAnmTevRegKey*>(anm));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
#else
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::setAnimation(J2DAnmBase* param_0) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/setAnimation__7J2DPaneFP10J2DAnmBase.s"
|
|
}
|
|
#pragma pop
|
|
#endif
|
|
|
|
/* 802F7FC4-802F7FCC -00001 0008+00 0/0 0/0 0/0 .text setAnimation__7J2DPaneFP15J2DAnmTransform */
|
|
void J2DPane::setAnimation(J2DAnmTransform* anm) {
|
|
mTransform = anm;
|
|
}
|
|
|
|
/* 802F7FCC-802F8004 2F290C 0038+00 0/0 57/57 0/0 .text animationTransform__7J2DPaneFv */
|
|
void J2DPane::animationTransform() {
|
|
if (mTransform != NULL)
|
|
animationTransform(mTransform);
|
|
}
|
|
|
|
/* 802F8004-802F8080 2F2944 007C+00 1/0 7/1 0/0 .text clearAnmTransform__7J2DPaneFv */
|
|
void J2DPane::clearAnmTransform() {
|
|
J2DAnmTransform* none = NULL;
|
|
setAnimation(none);
|
|
|
|
JSUTreeIterator<J2DPane> iter;
|
|
for (iter = mPaneTree.getFirstChild(); iter != mPaneTree.getEndChild(); ++iter) {
|
|
iter.getObject()->clearAnmTransform();
|
|
}
|
|
}
|
|
|
|
/* 802F8080-802F8118 2F29C0 0098+00 1/0 7/0 0/0 .text
|
|
* animationTransform__7J2DPaneFPC15J2DAnmTransform */
|
|
const J2DAnmTransform* J2DPane::animationTransform(const J2DAnmTransform* transform) {
|
|
const J2DAnmTransform* p = transform;
|
|
if (mTransform != NULL)
|
|
p = mTransform;
|
|
|
|
JSUTreeIterator<J2DPane> iter;
|
|
for (iter = mPaneTree.getFirstChild(); iter != mPaneTree.getEndChild(); ++iter) {
|
|
iter.getObject()->animationTransform(p);
|
|
}
|
|
|
|
updateTransform(p);
|
|
return p;
|
|
}
|
|
|
|
/* 802F8118-802F81A0 2F2A58 0088+00 1/0 8/1 0/0 .text
|
|
* setVisibileAnimation__7J2DPaneFP20J2DAnmVisibilityFull */
|
|
void J2DPane::setVisibileAnimation(J2DAnmVisibilityFull* visibility) {
|
|
setAnimationVF(visibility);
|
|
|
|
JSUTreeIterator<J2DPane> iter;
|
|
for (iter = mPaneTree.getFirstChild(); iter != mPaneTree.getEndChild(); ++iter) {
|
|
iter.getObject()->setVisibileAnimation(visibility);
|
|
}
|
|
}
|
|
|
|
/* 802F81A0-802F8228 2F2AE0 0088+00 1/0 8/1 0/0 .text
|
|
* setVtxColorAnimation__7J2DPaneFP14J2DAnmVtxColor */
|
|
void J2DPane::setVtxColorAnimation(J2DAnmVtxColor* vtx_color) {
|
|
setAnimationVC(vtx_color);
|
|
|
|
JSUTreeIterator<J2DPane> iter;
|
|
for (iter = mPaneTree.getFirstChild(); iter != mPaneTree.getEndChild(); ++iter) {
|
|
iter.getObject()->setVtxColorAnimation(vtx_color);
|
|
}
|
|
}
|
|
|
|
/* 802F8228-802F82C0 2F2B68 0098+00 1/0 7/3 0/0 .text animationPane__7J2DPaneFPC15J2DAnmTransform
|
|
*/
|
|
const J2DAnmTransform* J2DPane::animationPane(const J2DAnmTransform* transform) {
|
|
const J2DAnmTransform* p = transform;
|
|
if (mTransform != NULL)
|
|
p = mTransform;
|
|
|
|
JSUTreeIterator<J2DPane> iter;
|
|
for (iter = mPaneTree.getFirstChild(); iter != mPaneTree.getEndChild(); ++iter) {
|
|
iter.getObject()->animationPane(p);
|
|
}
|
|
|
|
updateTransform(p);
|
|
return p;
|
|
}
|
|
|
|
/* ############################################################################################## */
|
|
/* 80456214-80456218 004814 0004+00 1/1 0/0 0/0 .sdata2 @2890 */
|
|
SECTION_SDATA2 static f32 lit_2890 = 360.0f;
|
|
|
|
/* 80456218-80456220 004818 0004+04 1/1 0/0 0/0 .sdata2 @2891 */
|
|
SECTION_SDATA2 static f32 lit_2891[1 + 1 /* padding */] = {
|
|
65535.0f,
|
|
/* padding */
|
|
0.0f,
|
|
};
|
|
|
|
/* 802F82C0-802F83C8 2F2C00 0108+00 2/2 0/0 0/0 .text
|
|
* updateTransform__7J2DPaneFPC15J2DAnmTransform */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void J2DPane::updateTransform(J2DAnmTransform const* param_0) {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/updateTransform__7J2DPaneFPC15J2DAnmTransform.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802F83C8-802F83CC 2F2D08 0004+00 1/0 0/0 0/0 .text drawSelf__7J2DPaneFffPA3_A4_f */
|
|
void J2DPane::drawSelf(f32 param_0, f32 param_1, f32 (*param_2)[3][4]) {
|
|
/* empty function */
|
|
}
|
|
|
|
/* 802F83CC-802F83D0 2F2D0C 0004+00 1/0 1/0 0/0 .text rewriteAlpha__7J2DPaneFv */
|
|
void J2DPane::rewriteAlpha() {
|
|
/* empty function */
|
|
}
|
|
|
|
/* 802F83D0-802F83FC 2F2D10 002C+00 1/0 6/0 0/0 .text
|
|
* setAnimationVF__7J2DPaneFP20J2DAnmVisibilityFull */
|
|
void J2DPane::setAnimationVF(J2DAnmVisibilityFull* visibility) {
|
|
setAnimation(visibility);
|
|
}
|
|
|
|
/* 802F83FC-802F8428 2F2D3C 002C+00 1/0 6/0 0/0 .text setAnimationVC__7J2DPaneFP14J2DAnmVtxColor
|
|
*/
|
|
void J2DPane::setAnimationVC(J2DAnmVtxColor* vtx_color) {
|
|
setAnimation(vtx_color);
|
|
}
|
|
|
|
/* 802F8428-802F8464 2F2D68 003C+00 1/0 4/0 0/0 .text setCullBack__7J2DPaneFb */
|
|
void J2DPane::setCullBack(bool cull) {
|
|
GXCullMode mode;
|
|
|
|
if (!cull)
|
|
mode = GX_CULL_NONE;
|
|
else
|
|
mode = GX_CULL_BACK;
|
|
|
|
setCullBack(mode);
|
|
}
|
|
|
|
/* 802F8464-802F8474 2F2DA4 0010+00 1/0 5/0 0/0 .text setConnectParent__7J2DPaneFb */
|
|
bool J2DPane::setConnectParent(bool connected) {
|
|
mConnected = false;
|
|
return false;
|
|
}
|
|
|
|
/* 802F8474-802F8478 2F2DB4 0004+00 1/0 7/0 0/0 .text update__7J2DPaneFv */
|
|
void J2DPane::update() {
|
|
/* empty function */
|
|
}
|
|
|
|
/* 802F8478-802F847C 2F2DB8 0004+00 1/0 1/0 0/0 .text drawSelf__7J2DPaneFff */
|
|
void J2DPane::drawSelf(f32 param_0, f32 param_1) {
|
|
/* empty function */
|
|
}
|
|
|
|
/* 802F847C-802F8498 2F2DBC 001C+00 0/0 1/0 0/0 .text __sinit_J2DPane_cpp */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void __sinit_J2DPane_cpp() {
|
|
nofralloc
|
|
#include "asm/JSystem/J2DGraph/J2DPane/__sinit_J2DPane_cpp.s"
|
|
}
|
|
#pragma pop
|
|
|
|
#pragma push
|
|
#pragma force_active on
|
|
REGISTER_CTORS(0x802F847C, __sinit_J2DPane_cpp);
|
|
#pragma pop
|