mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-30 23:44:28 -04:00
Merge remote-tracking branch 'Upstream/master'
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -501,7 +501,8 @@ asm void J2DAnmFullLoader_v15::setAnmVtxColor(J2DAnmVtxColorFull* param_0,
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J2DAnmVtxColor::~J2DAnmVtxColor() {
|
||||
// asm J2DAnmVtxColor::~J2DAnmVtxColor() {
|
||||
extern "C" asm void __dt__14J2DAnmVtxColorFv() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DAnmLoader/__dt__14J2DAnmVtxColorFv.s"
|
||||
}
|
||||
@@ -511,7 +512,8 @@ asm J2DAnmVtxColor::~J2DAnmVtxColor() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J2DAnmVisibilityFull::~J2DAnmVisibilityFull() {
|
||||
// asm J2DAnmVisibilityFull::~J2DAnmVisibilityFull() {
|
||||
extern "C" asm void __dt__20J2DAnmVisibilityFullFv() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DAnmLoader/__dt__20J2DAnmVisibilityFullFv.s"
|
||||
}
|
||||
@@ -521,7 +523,8 @@ asm J2DAnmVisibilityFull::~J2DAnmVisibilityFull() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J2DAnmLoader::~J2DAnmLoader() {
|
||||
// asm J2DAnmLoader::~J2DAnmLoader() {
|
||||
extern "C" asm void __dt__12J2DAnmLoaderFv() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DAnmLoader/__dt__12J2DAnmLoaderFv.s"
|
||||
}
|
||||
|
||||
@@ -116,36 +116,36 @@ void J2DGrafContext::setColor(JUtility::TColor colorTL, JUtility::TColor colorTR
|
||||
mColorTR = colorTR;
|
||||
mColorBR = colorBR;
|
||||
mColorBL = colorBL;
|
||||
field_0xb0 = GX_BM_BLEND;
|
||||
field_0xb1 = GX_BL_SRC_ALPHA;
|
||||
field_0xb2 = GX_BL_INV_SRC_ALPHA;
|
||||
mLineBlendMode = GX_BM_BLEND;
|
||||
mLineSrcBlendFactor = GX_BL_SRC_ALPHA;
|
||||
mLineDstBlendFactor = GX_BL_INV_SRC_ALPHA;
|
||||
mBoxBlendMode = GX_BM_BLEND;
|
||||
mBoxSrcBlendFactor = GX_BL_SRC_ALPHA;
|
||||
mBoxDstBlendFactor = GX_BL_INV_SRC_ALPHA;
|
||||
field_0xb0.mType = GX_BM_BLEND;
|
||||
field_0xb0.mSrcFactor = GX_BL_SRC_ALPHA;
|
||||
field_0xb0.mDstFactor = GX_BL_INV_SRC_ALPHA;
|
||||
mLinePart.mType = GX_BM_BLEND;
|
||||
mLinePart.mSrcFactor = GX_BL_SRC_ALPHA;
|
||||
mLinePart.mDstFactor = GX_BL_INV_SRC_ALPHA;
|
||||
mBoxPart.mType = GX_BM_BLEND;
|
||||
mBoxPart.mSrcFactor = GX_BL_SRC_ALPHA;
|
||||
mBoxPart.mDstFactor = GX_BL_INV_SRC_ALPHA;
|
||||
if ((mColorTL & 0xFF) != 0xFF) {
|
||||
return;
|
||||
}
|
||||
field_0xb0 = GX_BM_NONE;
|
||||
field_0xb1 = GX_BL_ONE;
|
||||
field_0xb2 = GX_BL_ZERO;
|
||||
field_0xb0.mType = GX_BM_NONE;
|
||||
field_0xb0.mSrcFactor = GX_BL_ONE;
|
||||
field_0xb0.mDstFactor = GX_BL_ZERO;
|
||||
if ((mColorBR & 0xFF) != 0xFF) {
|
||||
return;
|
||||
}
|
||||
mLineBlendMode = GX_BM_NONE;
|
||||
mLineSrcBlendFactor = GX_BL_ONE;
|
||||
mLineDstBlendFactor = GX_BL_ZERO;
|
||||
mLinePart.mType = GX_BM_NONE;
|
||||
mLinePart.mSrcFactor = GX_BL_ONE;
|
||||
mLinePart.mDstFactor = GX_BL_ZERO;
|
||||
if ((mColorTR & 0xFF) != 0xFF) {
|
||||
return;
|
||||
}
|
||||
if ((mColorBL & 0xFF) != 0xFF) {
|
||||
return;
|
||||
}
|
||||
mBoxBlendMode = GX_BM_NONE;
|
||||
mBoxSrcBlendFactor = GX_BL_ONE;
|
||||
mBoxDstBlendFactor = GX_BL_ZERO;
|
||||
mBoxPart.mType = GX_BM_NONE;
|
||||
mBoxPart.mSrcFactor = GX_BL_ONE;
|
||||
mBoxPart.mDstFactor = GX_BL_ZERO;
|
||||
}
|
||||
|
||||
/* 802E9234-802E9260 2E3B74 002C+00 1/1 2/2 0/0 .text setLineWidth__14J2DGrafContextFUc
|
||||
@@ -158,8 +158,8 @@ void J2DGrafContext::setLineWidth(u8 lineWidth) {
|
||||
/* 802E9260-802E9368 2E3BA0 0108+00 0/0 2/2 0/0 .text
|
||||
* fillBox__14J2DGrafContextFRCQ29JGeometry8TBox2<f> */
|
||||
void J2DGrafContext::fillBox(JGeometry::TBox2<f32> const& box) {
|
||||
GXSetBlendMode((GXBlendMode)mBoxBlendMode, (GXBlendFactor)mBoxSrcBlendFactor,
|
||||
(GXBlendFactor)mBoxDstBlendFactor, GX_LO_SET);
|
||||
GXSetBlendMode((GXBlendMode)mBoxPart.mType, (GXBlendFactor)mBoxPart.mSrcFactor,
|
||||
(GXBlendFactor)mBoxPart.mDstFactor, GX_LO_SET);
|
||||
GXLoadPosMtxImm(mPosMtx, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_F32, 0);
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
@@ -178,8 +178,8 @@ void J2DGrafContext::fillBox(JGeometry::TBox2<f32> const& box) {
|
||||
/* 802E9368-802E9488 2E3CA8 0120+00 0/0 1/1 0/0 .text
|
||||
* drawFrame__14J2DGrafContextFRCQ29JGeometry8TBox2<f> */
|
||||
void J2DGrafContext::drawFrame(JGeometry::TBox2<f32> const& box) {
|
||||
GXSetBlendMode((GXBlendMode)mBoxBlendMode, (GXBlendFactor)mBoxSrcBlendFactor,
|
||||
(GXBlendFactor)mBoxDstBlendFactor, GX_LO_SET);
|
||||
GXSetBlendMode((GXBlendMode)mBoxPart.mType, (GXBlendFactor)mBoxPart.mSrcFactor,
|
||||
(GXBlendFactor)mBoxPart.mDstFactor, GX_LO_SET);
|
||||
GXLoadPosMtxImm(mPosMtx, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_F32, 0);
|
||||
GXBegin(GX_LINESTRIP, GX_VTXFMT0, 5);
|
||||
@@ -200,8 +200,8 @@ void J2DGrafContext::drawFrame(JGeometry::TBox2<f32> const& box) {
|
||||
/* 802E9488-802E9564 2E3DC8 00DC+00 1/1 0/0 0/0 .text
|
||||
* line__14J2DGrafContextFQ29JGeometry8TVec2<f>Q29JGeometry8TVec2<f> */
|
||||
void J2DGrafContext::line(JGeometry::TVec2<f32> start, JGeometry::TVec2<f32> end) {
|
||||
GXSetBlendMode((GXBlendMode)mLineBlendMode, (GXBlendFactor)mLineSrcBlendFactor,
|
||||
(GXBlendFactor)mLineDstBlendFactor, GX_LO_SET);
|
||||
GXSetBlendMode((GXBlendMode)mLinePart.mType, (GXBlendFactor)mLinePart.mSrcFactor,
|
||||
(GXBlendFactor)mLinePart.mDstFactor, GX_LO_SET);
|
||||
GXLoadPosMtxImm(mPosMtx, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_F32, 0);
|
||||
GXBegin(GX_LINES, GX_VTXFMT0, 2);
|
||||
|
||||
@@ -4,71 +4,85 @@
|
||||
//
|
||||
|
||||
#include "JSystem/J2DGraph/J2DManage.h"
|
||||
#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void get__13J2DDataManageFPCc();
|
||||
extern "C" void get__13J2DDataManageFP14JSUInputStream();
|
||||
extern "C" void getResReference__15J2DResReferenceCFUs();
|
||||
extern "C" void getName__15J2DResReferenceCFUs();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void read__14JSUInputStreamFPvl();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" void strcmp();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8030CE18-8030CE7C 307758 0064+00 1/1 3/3 0/0 .text get__13J2DDataManageFPCc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DDataManage::get(char const* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DManage/get__13J2DDataManageFPCc.s"
|
||||
void* J2DDataManage::get(char const* name) {
|
||||
for (J2DataManageLink* link = mList; link != NULL; link = link->mNext) {
|
||||
if (strcmp(link->mName, name) == 0) {
|
||||
return link->mData;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8030CE7C-8030CF10 3077BC 0094+00 0/0 1/1 0/0 .text get__13J2DDataManageFP14JSUInputStream */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DDataManage::get(JSUInputStream* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DManage/get__13J2DDataManageFP14JSUInputStream.s"
|
||||
void* J2DDataManage::get(JSUInputStream* inputStream) {
|
||||
inputStream->skip(1);
|
||||
u8 nameLen = inputStream->readU8();
|
||||
if (nameLen == 0) {
|
||||
return NULL;
|
||||
} else {
|
||||
char nameBuffer[257];
|
||||
inputStream->read(&nameBuffer, nameLen);
|
||||
nameBuffer[nameLen] = 0;
|
||||
return this->get(nameBuffer);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8030CF10-8030CF44 307850 0034+00 1/1 2/2 0/0 .text getResReference__15J2DResReferenceCFUs */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DResReference::getResReference(u16 param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DManage/getResReference__15J2DResReferenceCFUs.s"
|
||||
s8* J2DResReference::getResReference(u16 idx) const {
|
||||
if (mCount <= idx || idx == 0xFFFF) {
|
||||
return NULL;
|
||||
} else {
|
||||
return (((s8*)this) + mOffsets[idx]);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804349C0-80434AC8 0616E0 0101+07 1/1 0/0 0/0 .bss p_name$494 */
|
||||
static u8 p_name[257 + 7 /* padding */];
|
||||
static char p_name[257];
|
||||
|
||||
/* 8030CF44-8030D098 307884 0154+00 0/0 2/2 0/0 .text getName__15J2DResReferenceCFUs */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DResReference::getName(u16 param_0) const {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J2DGraph/J2DManage/getName__15J2DResReferenceCFUs.s"
|
||||
char* J2DResReference::getName(u16 idx) const {
|
||||
s8* resRef = this->getResReference(idx);
|
||||
if (resRef == NULL) {
|
||||
p_name[0] = 0;
|
||||
return p_name;
|
||||
} else {
|
||||
s8 first = resRef[0];
|
||||
switch (first) {
|
||||
case 2:
|
||||
case 3:
|
||||
for (s32 i = 0; i < resRef[1]; i++) {
|
||||
p_name[i] = resRef[2 + i];
|
||||
}
|
||||
p_name[resRef[1]] = 0;
|
||||
break;
|
||||
case 4:
|
||||
s32 pos = resRef[1] + 1;
|
||||
for (; pos >= 2; pos--) {
|
||||
if (resRef[pos] == '\\' || resRef[pos] == '/') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
s32 i = 0;
|
||||
pos++;
|
||||
for (; pos < resRef[1] + 2; i++, pos++) {
|
||||
p_name[i] = resRef[pos];
|
||||
}
|
||||
p_name[i] = 0;
|
||||
|
||||
break;
|
||||
default:
|
||||
p_name[0] = 0;
|
||||
}
|
||||
return p_name;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
@@ -7,12 +7,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct J3DTextureSRTInfo {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
+474
-486
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "JSystem/J2DGraph/J2DScreen.h"
|
||||
#include "JSystem/JGeometry.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -247,6 +248,19 @@ SECTION_SDATA2 static f32 lit_1563[1 + 1 /* padding */] = {
|
||||
};
|
||||
|
||||
/* 802F8498-802F8540 2F2DD8 00A8+00 0/0 59/59 4/4 .text __ct__9J2DScreenFv */
|
||||
#ifdef NONMATCHING
|
||||
J2DScreen::J2DScreen()
|
||||
: J2DPane(NULL, true, 'root', JGeometry::TBox2<f32>(0.0f, 0.0f, 640.0f, 480.0f)) {
|
||||
field_0x114 = -1;
|
||||
_4 = -1;
|
||||
mScissor = false;
|
||||
mMaterialNum = 0;
|
||||
mMaterials = NULL;
|
||||
field_0x108 = NULL;
|
||||
field_0x10c = NULL;
|
||||
mNameTable = NULL;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -255,6 +269,7 @@ asm J2DScreen::J2DScreen() {
|
||||
#include "asm/JSystem/J2DGraph/J2DScreen/__ct__9J2DScreenFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802F8540-802F85A8 2F2E80 0068+00 1/0 0/0 0/0 .text __dt__9J2DScreenFv */
|
||||
#pragma push
|
||||
|
||||
@@ -767,6 +767,7 @@ asm void J2DWindowEx::setAnimation(J2DAnmBase* param_0) {
|
||||
|
||||
/* 8030363C-80303640 2FDF7C 0004+00 0/0 1/0 0/0 .text getColor__14J2DAnmVtxColorCFUcUsP8_GXColor
|
||||
*/
|
||||
void J2DAnmVtxColor::getColor(u8 param_0, u16 param_1, _GXColor* param_2) const {
|
||||
// void J2DAnmVtxColor::getColor(u8 param_0, u16 param_1, _GXColor* param_2) const {
|
||||
extern "C" void getColor__14J2DAnmVtxColorCFUcUsP8_GXColor() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
@@ -283,7 +283,7 @@ SECTION_SDATA2 static f32 lit_889[1 + 1 /* padding */] = {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DAnmLoaderDataBase::load(void const* param_0, J3DAnmLoaderDataBaseFlag param_1) {
|
||||
asm void* J3DAnmLoaderDataBase::load(void const* param_0, J3DAnmLoaderDataBaseFlag param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphLoader/J3DAnmLoader/load__20J3DAnmLoaderDataBaseFPCv24J3DAnmLoaderDataBaseFlag.s"
|
||||
}
|
||||
|
||||
@@ -20,105 +20,6 @@ struct JKRHeap {
|
||||
/* 802CE474 */ void alloc(u32, int, JKRHeap*);
|
||||
};
|
||||
|
||||
struct JPABaseShapeData {
|
||||
// Common header.
|
||||
/* 0x00 */ u8 mMagic[4];
|
||||
/* 0x04 */ u32 mSize;
|
||||
|
||||
/* 0x08 */ u32 mFlags;
|
||||
/* 0x0C */ s16 mClrPrmAnmOffset;
|
||||
/* 0x0E */ s16 mClrEnvAnmOffset;
|
||||
/* 0x10 */ f32 mBaseSizeX;
|
||||
/* 0x14 */ f32 mBaseSizeY;
|
||||
/* 0x18 */ u16 mBlendModeCfg;
|
||||
/* 0x1A */ u8 mAlphaCompareCfg;
|
||||
/* 0x1B */ u8 mAlphaRef0;
|
||||
/* 0x1C */ u8 mAlphaRef1;
|
||||
/* 0x1D */ u8 mZModeCfg;
|
||||
/* 0x1E */ u8 mTexFlg;
|
||||
/* 0x1F */ u8 mTexAnmNum;
|
||||
/* 0x20 */ u8 mTexIdx;
|
||||
/* 0x21 */ u8 mClrFlg;
|
||||
/* 0x22 */ u8 mClrPrmKeyNum;
|
||||
/* 0x23 */ u8 mClrEnvKeyNum;
|
||||
/* 0x24 */ s16 mClrAnmFrmMax;
|
||||
/* 0x26 */ GXColor mClrPrm;
|
||||
/* 0x2A */ GXColor mClrEnv;
|
||||
/* 0x2E */ u8 mAnmRndm;
|
||||
/* 0x2F */ u8 mClrAnmRndmMask;
|
||||
/* 0x30 */ u8 mTexAnmRndmMask;
|
||||
};
|
||||
|
||||
struct JPABaseShape {
|
||||
public:
|
||||
/* 8027A6DC */ JPABaseShape(u8 const*, JKRHeap*);
|
||||
/* 8027A7E8 */ void setGX(JPAEmitterWorkData*) const;
|
||||
|
||||
static GXBlendMode st_bm[3];
|
||||
static GXBlendFactor st_bf[10];
|
||||
static GXLogicOp st_lo[16];
|
||||
static GXCompare st_c[8];
|
||||
static GXAlphaOp st_ao[4];
|
||||
static GXTevColorArg st_ca[6][4];
|
||||
static GXTevAlphaArg st_aa[2][4];
|
||||
|
||||
GXBlendMode getBlendMode() const { return st_bm[mpData->mBlendModeCfg & 0x03]; }
|
||||
GXBlendFactor getBlendSrc() const { return st_bf[(mpData->mBlendModeCfg >> 2) & 0x0F]; }
|
||||
GXBlendFactor getBlendDst() const { return st_bf[(mpData->mBlendModeCfg >> 6) & 0x0F]; }
|
||||
GXLogicOp getLogicOp() const { return st_lo[(mpData->mBlendModeCfg >> 10) & 0x0F]; }
|
||||
GXBool getZCompLoc() const { return (GXBool)((mpData->mZModeCfg >> 5) & 0x01); }
|
||||
|
||||
GXBool getZEnable() const { return (GXBool)(mpData->mZModeCfg & 0x01); }
|
||||
GXCompare getZCmp() const { return st_c[(mpData->mZModeCfg >> 1) & 0x07]; }
|
||||
GXBool getZUpd() const { return (GXBool)((mpData->mZModeCfg >> 4) & 0x01); }
|
||||
|
||||
GXCompare getAlphaCmp0() const { return st_c[mpData->mAlphaCompareCfg & 0x07]; }
|
||||
u8 getAlphaRef0() const { return mpData->mAlphaRef0; }
|
||||
GXAlphaOp getAlphaOp() const { return st_ao[(mpData->mAlphaCompareCfg >> 3) & 0x03]; }
|
||||
GXCompare getAlphaCmp1() const { return st_c[(mpData->mAlphaCompareCfg >> 5) & 0x07]; }
|
||||
u8 getAlphaRef1() const { return mpData->mAlphaRef1; }
|
||||
|
||||
const GXTevColorArg* getTevColorArg() const { return st_ca[(mpData->mFlags >> 0x0F) & 0x07]; }
|
||||
const GXTevAlphaArg* getTevAlphaArg() const { return st_aa[(mpData->mFlags >> 0x12) & 0x01]; }
|
||||
|
||||
u32 getType() const { return (mpData->mFlags >> 0) & 0x0F; }
|
||||
u32 getDirType() const { return (mpData->mFlags >> 4) & 0x07; }
|
||||
u32 getRotType() const { return (mpData->mFlags >> 7) & 0x07; }
|
||||
u32 getBasePlaneType() const { return (mpData->mFlags >> 10) & 0x07; }
|
||||
u32 getTilingS() const { return (mpData->mFlags >> 25) & 0x01; }
|
||||
u32 getTilingT() const { return (mpData->mFlags >> 26) & 0x01; }
|
||||
bool isGlblClrAnm() const { return !!(mpData->mFlags & 0x00001000); }
|
||||
bool isGlblTexAnm() const { return !!(mpData->mFlags & 0x00004000); }
|
||||
bool isPrjTex() const { return !!(mpData->mFlags & 0x00100000); }
|
||||
bool isDrawFwdAhead() const { return !!(mpData->mFlags & 0x00200000); }
|
||||
bool isDrawPrntAhead() const { return !!(mpData->mFlags & 0x00400000); }
|
||||
bool isClipOn() const { return !!(mpData->mFlags & 0x00800000); }
|
||||
bool isTexCrdAnm() const { return !!(mpData->mFlags & 0x01000000); }
|
||||
bool isNoDrawParent() const { return !!(mpData->mFlags & 0x08000000); }
|
||||
bool isNoDrawChild() const { return !!(mpData->mFlags & 0x10000000); }
|
||||
|
||||
bool isPrmAnm() const { return !!(mpData->mClrFlg & 0x02); }
|
||||
bool isEnvAnm() const { return !!(mpData->mClrFlg & 0x08); }
|
||||
u8 getClrAnmType() const { return (mpData->mClrFlg >> 4) & 0x07; }
|
||||
s16 getClrAnmMaxFrm() const { return mpData->mClrAnmFrmMax; }
|
||||
void getPrmClr(s16 idx, GXColor* dst) { *dst = mpPrmClrAnmTbl[idx]; }
|
||||
void getEnvClr(s16 idx, GXColor* dst) { *dst = mpEnvClrAnmTbl[idx]; }
|
||||
|
||||
bool isTexAnm() const { return !!(mpData->mTexFlg & 0x01); }
|
||||
u8 getTexAnmType() const { return (mpData->mTexFlg >> 2) & 0x07; }
|
||||
u32 getTexIdx() const { return mpData->mTexIdx; }
|
||||
|
||||
f32 getBaseSizeX() const { return mpData->mBaseSizeX; }
|
||||
f32 getBaseSizeY() const { return mpData->mBaseSizeY; }
|
||||
|
||||
public:
|
||||
const JPABaseShapeData* mpData;
|
||||
const void* mpTexCrdMtxAnmTbl;
|
||||
const u8* mpTexIdxAnimTbl;
|
||||
GXColor* mpPrmClrAnmTbl;
|
||||
GXColor* mpEnvClrAnmTbl;
|
||||
};
|
||||
|
||||
struct JMath {
|
||||
static u8 sincosTable_[65536];
|
||||
};
|
||||
@@ -259,90 +160,119 @@ void JPASetLineWidth(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
GXSetLineWidth((u8)(lit_2262[0] * work->mGlobalPtclScl.x * ptcl->mParticleScaleX), GX_TO_ONE);
|
||||
}
|
||||
|
||||
/* 80276B90-80276C2C 2714D0 009C+00 0/0 1/1 0/0 .text JPARegistPrm__FP18JPAEmitterWorkData */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPARegistPrm(JPAEmitterWorkData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPABaseShape/JPARegistPrm__FP18JPAEmitterWorkData.s"
|
||||
static inline u8 COLOR_MULTI(u32 a, u32 b) {
|
||||
return ((a * (b + 1)) * 0x10000) >> 24;
|
||||
}
|
||||
|
||||
/* 80276B90-80276C2C 2714D0 009C+00 0/0 1/1 0/0 .text JPARegistPrm__FP18JPAEmitterWorkData */
|
||||
void JPARegistPrm(JPAEmitterWorkData* work) {
|
||||
JPABaseEmitter* emtr = work->mpEmtr;
|
||||
GXColor prm = emtr->mPrmClr;
|
||||
prm.r = COLOR_MULTI(prm.r, emtr->mGlobalPrmClr.r);
|
||||
prm.g = COLOR_MULTI(prm.g, emtr->mGlobalPrmClr.g);
|
||||
prm.b = COLOR_MULTI(prm.b, emtr->mGlobalPrmClr.b);
|
||||
prm.a = COLOR_MULTI(prm.a, emtr->mGlobalPrmClr.a);
|
||||
GXSetTevColor(GX_TEVREG0, prm);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80276C2C-80276CB0 27156C 0084+00 0/0 1/1 0/0 .text JPARegistEnv__FP18JPAEmitterWorkData */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPARegistEnv(JPAEmitterWorkData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPABaseShape/JPARegistEnv__FP18JPAEmitterWorkData.s"
|
||||
void JPARegistEnv(JPAEmitterWorkData* work) {
|
||||
JPABaseEmitter* emtr = work->mpEmtr;
|
||||
GXColor env = emtr->mEnvClr;
|
||||
env.r = COLOR_MULTI(env.r, emtr->mGlobalEnvClr.r);
|
||||
env.g = COLOR_MULTI(env.g, emtr->mGlobalEnvClr.g);
|
||||
env.b = COLOR_MULTI(env.b, emtr->mGlobalEnvClr.b);
|
||||
GXSetTevColor(GX_TEVREG1, env);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80276CB0-80276DB0 2715F0 0100+00 0/0 1/1 0/0 .text JPARegistPrmEnv__FP18JPAEmitterWorkData */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPARegistPrmEnv(JPAEmitterWorkData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPABaseShape/JPARegistPrmEnv__FP18JPAEmitterWorkData.s"
|
||||
void JPARegistPrmEnv(JPAEmitterWorkData* work) {
|
||||
JPABaseEmitter* emtr = work->mpEmtr;
|
||||
GXColor prm = emtr->mPrmClr;
|
||||
GXColor env = emtr->mEnvClr;
|
||||
prm.r = COLOR_MULTI(prm.r, emtr->mGlobalPrmClr.r);
|
||||
prm.g = COLOR_MULTI(prm.g, emtr->mGlobalPrmClr.g);
|
||||
prm.b = COLOR_MULTI(prm.b, emtr->mGlobalPrmClr.b);
|
||||
prm.a = COLOR_MULTI(prm.a, emtr->mGlobalPrmClr.a);
|
||||
env.r = COLOR_MULTI(env.r, emtr->mGlobalEnvClr.r);
|
||||
env.g = COLOR_MULTI(env.g, emtr->mGlobalEnvClr.g);
|
||||
env.b = COLOR_MULTI(env.b, emtr->mGlobalEnvClr.b);
|
||||
GXSetTevColor(GX_TEVREG0, prm);
|
||||
GXSetTevColor(GX_TEVREG1, env);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80276DB0-80276E60 2716F0 00B0+00 0/0 1/1 0/0 .text
|
||||
* JPARegistAlpha__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPARegistAlpha(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPABaseShape/JPARegistAlpha__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPARegistAlpha(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
JPABaseEmitter* emtr = work->mpEmtr;
|
||||
GXColor prm = emtr->mPrmClr;
|
||||
prm.r = COLOR_MULTI(prm.r, emtr->mGlobalPrmClr.r);
|
||||
prm.g = COLOR_MULTI(prm.g, emtr->mGlobalPrmClr.g);
|
||||
prm.b = COLOR_MULTI(prm.b, emtr->mGlobalPrmClr.b);
|
||||
prm.a = COLOR_MULTI(prm.a, emtr->mGlobalPrmClr.a);
|
||||
prm.a = COLOR_MULTI(prm.a, ptcl->mPrmColorAlphaAnm);
|
||||
GXSetTevColor(GX_TEVREG0, prm);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80276E60-80276F10 2717A0 00B0+00 0/0 1/1 0/0 .text
|
||||
* JPARegistPrmAlpha__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPARegistPrmAlpha(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPABaseShape/JPARegistPrmAlpha__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPARegistPrmAlpha(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
JPABaseEmitter* emtr = work->mpEmtr;
|
||||
GXColor prm = ptcl->mPrmClr;
|
||||
prm.r = COLOR_MULTI(prm.r, emtr->mGlobalPrmClr.r);
|
||||
prm.g = COLOR_MULTI(prm.g, emtr->mGlobalPrmClr.g);
|
||||
prm.b = COLOR_MULTI(prm.b, emtr->mGlobalPrmClr.b);
|
||||
prm.a = COLOR_MULTI(prm.a, emtr->mGlobalPrmClr.a);
|
||||
prm.a = COLOR_MULTI(prm.a, ptcl->mPrmColorAlphaAnm);
|
||||
GXSetTevColor(GX_TEVREG0, prm);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80276F10-80277024 271850 0114+00 0/0 1/1 0/0 .text
|
||||
* JPARegistPrmAlphaEnv__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPARegistPrmAlphaEnv(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPABaseShape/JPARegistPrmAlphaEnv__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPARegistPrmAlphaEnv(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
JPABaseEmitter* emtr = work->mpEmtr;
|
||||
GXColor prm = ptcl->mPrmClr;
|
||||
GXColor env = ptcl->mEnvClr;
|
||||
prm.r = COLOR_MULTI(prm.r, emtr->mGlobalPrmClr.r);
|
||||
prm.g = COLOR_MULTI(prm.g, emtr->mGlobalPrmClr.g);
|
||||
prm.b = COLOR_MULTI(prm.b, emtr->mGlobalPrmClr.b);
|
||||
prm.a = COLOR_MULTI(prm.a, emtr->mGlobalPrmClr.a);
|
||||
prm.a = COLOR_MULTI(prm.a, ptcl->mPrmColorAlphaAnm);
|
||||
env.r = COLOR_MULTI(env.r, emtr->mGlobalEnvClr.r);
|
||||
env.g = COLOR_MULTI(env.g, emtr->mGlobalEnvClr.g);
|
||||
env.b = COLOR_MULTI(env.b, emtr->mGlobalEnvClr.b);
|
||||
GXSetTevColor(GX_TEVREG0, prm);
|
||||
GXSetTevColor(GX_TEVREG1, env);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80277024-80277138 271964 0114+00 0/0 1/1 0/0 .text
|
||||
* JPARegistAlphaEnv__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPARegistAlphaEnv(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPABaseShape/JPARegistAlphaEnv__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPARegistAlphaEnv(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
JPABaseEmitter* emtr = work->mpEmtr;
|
||||
GXColor prm = emtr->mPrmClr;
|
||||
GXColor env = ptcl->mEnvClr;
|
||||
prm.r = COLOR_MULTI(prm.r, emtr->mGlobalPrmClr.r);
|
||||
prm.g = COLOR_MULTI(prm.g, emtr->mGlobalPrmClr.g);
|
||||
prm.b = COLOR_MULTI(prm.b, emtr->mGlobalPrmClr.b);
|
||||
prm.a = COLOR_MULTI(prm.a, emtr->mGlobalPrmClr.a);
|
||||
prm.a = COLOR_MULTI(prm.a, ptcl->mPrmColorAlphaAnm);
|
||||
env.r = COLOR_MULTI(env.r, emtr->mGlobalEnvClr.r);
|
||||
env.g = COLOR_MULTI(env.g, emtr->mGlobalEnvClr.g);
|
||||
env.b = COLOR_MULTI(env.b, emtr->mGlobalEnvClr.b);
|
||||
GXSetTevColor(GX_TEVREG0, prm);
|
||||
GXSetTevColor(GX_TEVREG1, env);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80277138-802771BC 271A78 0084+00 0/0 1/1 0/0 .text
|
||||
* JPARegistEnv__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPARegistEnv(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPABaseShape/JPARegistEnv__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPARegistEnv(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
JPABaseEmitter* emtr = work->mpEmtr;
|
||||
GXColor env = ptcl->mEnvClr;
|
||||
env.r = COLOR_MULTI(env.r, emtr->mGlobalEnvClr.r);
|
||||
env.g = COLOR_MULTI(env.g, emtr->mGlobalEnvClr.g);
|
||||
env.b = COLOR_MULTI(env.b, emtr->mGlobalEnvClr.b);
|
||||
GXSetTevColor(GX_TEVREG1, env);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#define MIN(a, b) ((a) < (b) ? (a) : (b))
|
||||
|
||||
@@ -976,6 +906,22 @@ asm void JPADrawRotation(JPAEmitterWorkData* param_0, JPABaseParticle* param_1)
|
||||
|
||||
/* 80279110-802791B0 273A50 00A0+00 0/0 1/1 0/0 .text
|
||||
* JPADrawPoint__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#ifdef NONMATCHING
|
||||
// literal only
|
||||
void JPADrawPoint(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
if (!!(ptcl->mStatus & JPAPtclStts_Invisible))
|
||||
return;
|
||||
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||
GXBegin(GX_POINTS, GX_VTXFMT1, 1);
|
||||
GXPosition3f32(ptcl->mPosition.x, ptcl->mPosition.y, ptcl->mPosition.z);
|
||||
GXTexCoord2f32(0.0f, 0.0f);
|
||||
GXEnd();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_INDEX8);
|
||||
GXSetVtxDesc(GX_VA_TEX0, GX_INDEX8);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -984,6 +930,7 @@ asm void JPADrawPoint(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
#include "asm/JSystem/JParticle/JPABaseShape/JPADrawPoint__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802791B0-80279364 273AF0 01B4+00 0/0 1/1 0/0 .text
|
||||
* JPADrawLine__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
@@ -1049,14 +996,12 @@ asm void JPADrawEmitterCallBackB(JPAEmitterWorkData* param_0) {
|
||||
|
||||
/* 8027A414-8027A454 274D54 0040+00 0/0 1/1 0/0 .text
|
||||
* JPADrawParticleCallBack__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPADrawParticleCallBack(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPABaseShape/JPADrawParticleCallBack__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPADrawParticleCallBack(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
if (work->mpEmtr->mpPtclCallBack == NULL)
|
||||
return;
|
||||
|
||||
work->mpEmtr->mpPtclCallBack->draw(work->mpEmtr, ptcl);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8027A454-8027A6DC 274D94 0288+00 1/1 0/0 0/0 .text
|
||||
* makeColorTable__FPP8_GXColorPC16JPAClrAnmKeyDataUcsP7JKRHeap */
|
||||
|
||||
@@ -7,81 +7,59 @@
|
||||
#include "JSystem/JParticle/JPAParticle.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JPAChildShape {
|
||||
public:
|
||||
/* 8027B038 */ JPAChildShape(u8 const*);
|
||||
|
||||
public:
|
||||
u8 const* mpData;
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void JPARegistChildPrmEnv__FP18JPAEmitterWorkData();
|
||||
extern "C" void JPACalcChildAlphaOut__FP18JPAEmitterWorkDataP15JPABaseParticle();
|
||||
extern "C" void JPACalcChildScaleOut__FP18JPAEmitterWorkDataP15JPABaseParticle();
|
||||
extern "C" void __ct__13JPAChildShapeFPCUc();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
static inline u32 COLOR_MULTI(u32 a, u32 b) {
|
||||
return ((a * (b + 1)) * 0x10000) >> 24;
|
||||
}
|
||||
|
||||
/* 8027AEBC-8027AFDC 2757FC 0120+00 0/0 1/1 0/0 .text JPARegistChildPrmEnv__FP18JPAEmitterWorkData
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPARegistChildPrmEnv(JPAEmitterWorkData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAChildShape/JPARegistChildPrmEnv__FP18JPAEmitterWorkData.s"
|
||||
void JPARegistChildPrmEnv(JPAEmitterWorkData* work) {
|
||||
JPAChildShape* csp = work->mpRes->getCsp();
|
||||
JPABaseEmitter* emtr = work->mpEmtr;
|
||||
GXColor prm, env;
|
||||
csp->getPrmClr(&prm);
|
||||
csp->getEnvClr(&env);
|
||||
prm.r = COLOR_MULTI(prm.r, emtr->mGlobalPrmClr.r);
|
||||
prm.g = COLOR_MULTI(prm.g, emtr->mGlobalPrmClr.g);
|
||||
prm.b = COLOR_MULTI(prm.b, emtr->mGlobalPrmClr.b);
|
||||
prm.a = COLOR_MULTI(prm.a, emtr->mGlobalPrmClr.a);
|
||||
env.r = COLOR_MULTI(env.r, emtr->mGlobalEnvClr.r);
|
||||
env.g = COLOR_MULTI(env.g, emtr->mGlobalEnvClr.g);
|
||||
env.b = COLOR_MULTI(env.b, emtr->mGlobalEnvClr.b);
|
||||
GXSetTevColor(GX_TEVREG0, prm);
|
||||
GXSetTevColor(GX_TEVREG1, env);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80455308-8045530C 003908 0004+00 1/1 0/0 0/0 .sdata2 @2318 */
|
||||
SECTION_SDATA2 static f32 lit_2318 = 255.0f;
|
||||
|
||||
/* 8045530C-80455310 00390C 0004+00 2/2 0/0 0/0 .sdata2 @2319 */
|
||||
SECTION_SDATA2 static f32 lit_2319 = 1.0f;
|
||||
|
||||
/* 8027AFDC-8027B008 27591C 002C+00 0/0 1/1 0/0 .text
|
||||
* JPACalcChildAlphaOut__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPACalcChildAlphaOut(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAChildShape/JPACalcChildAlphaOut__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPACalcChildAlphaOut(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
f32 anm = (1.0f - ptcl->mTime) * 255.0f;
|
||||
OSf32tou8(&anm, &ptcl->mPrmColorAlphaAnm);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8027B008-8027B038 275948 0030+00 0/0 1/1 0/0 .text
|
||||
* JPACalcChildScaleOut__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#ifdef NONMATCHING
|
||||
void JPACalcChildScaleOut(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
// literal
|
||||
ptcl->mParticleScaleX = ptcl->mScaleOut * (1.0f - ptcl->mTime);
|
||||
ptcl->mParticleScaleY = ptcl->mAlphaWaveRandom * (1.0f - ptcl->mTime);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPACalcChildScaleOut(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAChildShape/JPACalcChildScaleOut__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8027B038-8027B040 -00001 0008+00 0/0 0/0 0/0 .text __ct__13JPAChildShapeFPCUc */
|
||||
JPAChildShape::JPAChildShape(u8 const* pData) {
|
||||
mpData = pData;
|
||||
mpData = (JPAChildShapeData*)pData;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
//
|
||||
|
||||
#include "JSystem/JParticle/JPADynamicsBlock.h"
|
||||
#include "JSystem/JParticle/JPAParticle.h"
|
||||
#include "JSystem/JMath/JMATrigonometric.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -11,27 +13,17 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JPAEmitterWorkData {};
|
||||
|
||||
struct JPABaseEmitter {
|
||||
/* 8027EA40 */ void createParticle();
|
||||
};
|
||||
|
||||
struct JMath {
|
||||
static u8 sincosTable_[65536];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void JPAVolumePoint__FP18JPAEmitterWorkData();
|
||||
extern "C" static void JPAVolumeLine__FP18JPAEmitterWorkData();
|
||||
extern "C" static void JPAVolumeCircle__FP18JPAEmitterWorkData();
|
||||
extern "C" static void JPAVolumeCube__FP18JPAEmitterWorkData();
|
||||
extern "C" static void JPAVolumeSphere__FP18JPAEmitterWorkData();
|
||||
extern "C" static void JPAVolumeCylinder__FP18JPAEmitterWorkData();
|
||||
extern "C" static void JPAVolumeTorus__FP18JPAEmitterWorkData();
|
||||
extern "C" static void JPAVolumePoint(JPAEmitterWorkData*);
|
||||
extern "C" static void JPAVolumeLine(JPAEmitterWorkData*);
|
||||
extern "C" static void JPAVolumeCircle(JPAEmitterWorkData*);
|
||||
extern "C" static void JPAVolumeCube(JPAEmitterWorkData*);
|
||||
extern "C" static void JPAVolumeSphere(JPAEmitterWorkData*);
|
||||
extern "C" static void JPAVolumeCylinder(JPAEmitterWorkData*);
|
||||
extern "C" static void JPAVolumeTorus(JPAEmitterWorkData*);
|
||||
extern "C" void __ct__16JPADynamicsBlockFPCUc();
|
||||
extern "C" void init__16JPADynamicsBlockFv();
|
||||
extern "C" void create__16JPADynamicsBlockFP18JPAEmitterWorkData();
|
||||
@@ -67,6 +59,17 @@ SECTION_SDATA2 static f32 lit_2289[1 + 1 /* padding */] = {
|
||||
};
|
||||
|
||||
/* 8027B144-8027B220 275A84 00DC+00 1/1 0/0 0/0 .text JPAVolumePoint__FP18JPAEmitterWorkData */
|
||||
#ifdef NONMATCHING
|
||||
|
||||
// bug in diff.py preventing me from seeing what's wrong
|
||||
void JPAVolumePoint(JPAEmitterWorkData* work) {
|
||||
work->mVolumePos.zero();
|
||||
work->mVelOmni.set(work->mpEmtr->get_r_zh(), work->mpEmtr->get_r_zh(), work->mpEmtr->get_r_zh());
|
||||
work->mVelAxis.set(work->mVelOmni.x, 0.0f, work->mVelOmni.z);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -76,11 +79,30 @@ static asm void JPAVolumePoint(JPAEmitterWorkData* param_0) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80455320-80455328 003920 0008+00 6/6 0/0 0/0 .sdata2 @2321 */
|
||||
SECTION_SDATA2 static f64 lit_2321 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 8027B220-8027B33C 275B60 011C+00 1/1 0/0 0/0 .text JPAVolumeLine__FP18JPAEmitterWorkData */
|
||||
#ifdef NONMATCHING
|
||||
|
||||
// bug in diff.py preventing me from seeing what's wrong
|
||||
void JPAVolumeLine(JPAEmitterWorkData* work) {
|
||||
if (work->mpEmtr->checkFlag(JPADynFlag_FixedInterval)) {
|
||||
work->mVolumePos.set(0.0f, 0.0f, work->mVolumeSize * (s32)((work->mVolumeEmitIdx / (work->mEmitCount - 1.0f) - 0.5f)));
|
||||
work->mVolumeEmitIdx++;
|
||||
} else {
|
||||
work->mVolumePos.set(0.0f, 0.0f, work->mVolumeSize * work->mpEmtr->get_r_zh());
|
||||
}
|
||||
|
||||
work->mVelOmni.set(0.0f, 0.0f, work->mVolumePos.z * work->mGlobalScl.z);
|
||||
work->mVelAxis.set(0.0f, 0.0f, work->mVolumePos.z);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -90,7 +112,34 @@ static asm void JPAVolumeLine(JPAEmitterWorkData* param_0) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#endif
|
||||
|
||||
/* 8027B33C-8027B4E8 275C7C 01AC+00 1/1 0/0 0/0 .text JPAVolumeCircle__FP18JPAEmitterWorkData */
|
||||
|
||||
#ifdef NONMATCHING
|
||||
|
||||
// bug in diff.py preventing me from seeing what's wrong
|
||||
void JPAVolumeCircle(JPAEmitterWorkData* work) {
|
||||
f32 theta, distance, sizeXZ;
|
||||
if (work->mpEmtr->checkFlag(JPADynFlag_FixedInterval)) {
|
||||
theta = work->mVolumeSweep * (work->mVolumeEmitIdx++ / work->mEmitCount);
|
||||
} else {
|
||||
theta = work->mVolumeSweep * work->mpEmtr->get_r_ss();
|
||||
}
|
||||
|
||||
distance = work->mpEmtr->get_r_f();
|
||||
if (work->mpEmtr->checkFlag(JPADynFlag_FixedDensity)) {
|
||||
distance = 1.0f - (distance * distance);
|
||||
}
|
||||
|
||||
sizeXZ = work->mVolumeSize * (work->mVolumeMinRad + distance * (1.0f - work->mVolumeMinRad));
|
||||
work->mVolumePos.set(sizeXZ * JMASSin(theta), 0.0f, sizeXZ * JMASCos(theta));
|
||||
work->mVelOmni.mul(work->mVolumePos, work->mGlobalScl);
|
||||
work->mVelAxis.set(work->mVolumePos.x, 0.0f, work->mVolumePos.z);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -100,7 +149,22 @@ static asm void JPAVolumeCircle(JPAEmitterWorkData* param_0) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#endif
|
||||
|
||||
/* 8027B4E8-8027B5F0 275E28 0108+00 1/1 0/0 0/0 .text JPAVolumeCube__FP18JPAEmitterWorkData */
|
||||
|
||||
#ifdef NONMATCHING
|
||||
|
||||
// bug in diff.py preventing me from seeing what's wrong
|
||||
void JPAVolumeCube(JPAEmitterWorkData* work) {
|
||||
f32 size = work->mVolumeSize;
|
||||
work->mVolumePos.set(size * work->mpEmtr->get_r_zh(), size * work->mpEmtr->get_r_zh(), size * work->mpEmtr->get_r_zh());
|
||||
work->mVelOmni.mul(work->mVolumePos, work->mGlobalScl);
|
||||
work->mVelAxis.set(work->mVolumePos.x, 0.0f, work->mVolumePos.z);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -110,6 +174,8 @@ static asm void JPAVolumeCube(JPAEmitterWorkData* param_0) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80455328-80455330 003928 0004+04 1/1 0/0 0/0 .sdata2 @2501 */
|
||||
SECTION_SDATA2 static f32 lit_2501[1 + 1 /* padding */] = {
|
||||
@@ -152,41 +218,94 @@ static asm void JPAVolumeTorus(JPAEmitterWorkData* param_0) {
|
||||
#pragma pop
|
||||
|
||||
/* 8027BB18-8027BB4C 276458 0034+00 0/0 1/1 0/0 .text __ct__16JPADynamicsBlockFPCUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JPADynamicsBlock::JPADynamicsBlock(u8 const* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPADynamicsBlock/__ct__16JPADynamicsBlockFPCUc.s"
|
||||
JPADynamicsBlock::JPADynamicsBlock(u8 const* data) {
|
||||
mpData = (const JPADynamicsBlockData*)data;
|
||||
init();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C4488-803C44A8 -00001 001C+04 1/1 0/0 0/0 .data @2631 */
|
||||
SECTION_DATA static void* lit_2631[7 + 1 /* padding */] = {
|
||||
(void*)(((char*)init__16JPADynamicsBlockFv) + 0x2C),
|
||||
(void*)(((char*)init__16JPADynamicsBlockFv) + 0x3C),
|
||||
(void*)(((char*)init__16JPADynamicsBlockFv) + 0x4C),
|
||||
(void*)(((char*)init__16JPADynamicsBlockFv) + 0x5C),
|
||||
(void*)(((char*)init__16JPADynamicsBlockFv) + 0x6C),
|
||||
(void*)(((char*)init__16JPADynamicsBlockFv) + 0x7C),
|
||||
(void*)(((char*)init__16JPADynamicsBlockFv) + 0x8C),
|
||||
/* padding */
|
||||
NULL,
|
||||
enum {
|
||||
VOL_Cube = 0x00,
|
||||
VOL_Sphere = 0x01,
|
||||
VOL_Cylinder = 0x02,
|
||||
VOL_Torus = 0x03,
|
||||
VOL_Point = 0x04,
|
||||
VOL_Circle = 0x05,
|
||||
VOL_Line = 0x06,
|
||||
};
|
||||
|
||||
/* 8027BB4C-8027BBE8 27648C 009C+00 2/1 0/0 0/0 .text init__16JPADynamicsBlockFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPADynamicsBlock::init() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPADynamicsBlock/init__16JPADynamicsBlockFv.s"
|
||||
void JPADynamicsBlock::init() {
|
||||
switch (getVolumeType()) {
|
||||
case VOL_Cube: mpCalcVolumeFunc = &JPAVolumeCube; break;
|
||||
case VOL_Sphere: mpCalcVolumeFunc = &JPAVolumeSphere; break;
|
||||
case VOL_Cylinder: mpCalcVolumeFunc = &JPAVolumeCylinder; break;
|
||||
case VOL_Torus: mpCalcVolumeFunc = &JPAVolumeTorus; break;
|
||||
case VOL_Point: mpCalcVolumeFunc = &JPAVolumePoint; break;
|
||||
case VOL_Circle: mpCalcVolumeFunc = &JPAVolumeCircle; break;
|
||||
case VOL_Line: mpCalcVolumeFunc = &JPAVolumeLine; break;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8027BBE8-8027BDEC 276528 0204+00 0/0 1/1 0/0 .text
|
||||
* create__16JPADynamicsBlockFP18JPAEmitterWorkData */
|
||||
|
||||
#ifdef NONMATCHING
|
||||
|
||||
// literal only
|
||||
void JPADynamicsBlock::create(JPAEmitterWorkData* work) {
|
||||
if (work->mpEmtr->checkStatus(JPAEmtrStts_RateStepEmit)) {
|
||||
s32 emitCount;
|
||||
s32 createCount;
|
||||
|
||||
// Probably an inlined function.
|
||||
if (work->mpEmtr->checkFlag(JPADynFlag_FixedInterval)) {
|
||||
s32 count;
|
||||
if (getVolumeType() == VOL_Sphere) {
|
||||
count = 4 * getDivNumber() * getDivNumber() + 2;
|
||||
} else {
|
||||
count = getDivNumber();
|
||||
}
|
||||
emitCount = count;
|
||||
|
||||
work->mVolumeEmitIdx = 0;
|
||||
} else {
|
||||
f32 newPtclCount = work->mpEmtr->mRate * (getRateRndm() * work->mpEmtr->get_r_zp() + 1.0f);
|
||||
f32 newEmitCount = work->mpEmtr->mEmitCount + newPtclCount;
|
||||
work->mpEmtr->mEmitCount = newEmitCount;
|
||||
emitCount = (s32)newEmitCount;
|
||||
work->mpEmtr->mEmitCount -= emitCount;
|
||||
|
||||
if (work->mpEmtr->checkStatus(JPAEmtrStts_FirstEmit) && 0.0f < newPtclCount && newPtclCount < 1.0f)
|
||||
emitCount = 1;
|
||||
}
|
||||
|
||||
work->mEmitCount = emitCount;
|
||||
if (work->mpEmtr->checkStatus(JPAEmtrStts_StopEmit)) {
|
||||
emitCount = 0;
|
||||
}
|
||||
|
||||
// Probably an inlined function.
|
||||
createCount = emitCount;
|
||||
while (createCount > 0) {
|
||||
JPABaseParticle* ptcl = work->mpEmtr->createParticle();
|
||||
if (ptcl == NULL)
|
||||
break;
|
||||
createCount--;
|
||||
}
|
||||
}
|
||||
|
||||
if (++work->mpEmtr->mRateStepTimer >= (work->mpEmtr->mRateStep + 1)) {
|
||||
work->mpEmtr->mRateStepTimer -= (work->mpEmtr->mRateStep + 1);
|
||||
work->mpEmtr->setStatus(JPAEmtrStts_RateStepEmit);
|
||||
} else {
|
||||
work->mpEmtr->clearStatus(JPAEmtrStts_RateStepEmit);
|
||||
}
|
||||
|
||||
work->mpEmtr->clearStatus(JPAEmtrStts_FirstEmit);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -195,3 +314,5 @@ asm void JPADynamicsBlock::create(JPAEmitterWorkData* param_0) {
|
||||
#include "asm/JSystem/JParticle/JPADynamicsBlock/create__16JPADynamicsBlockFP18JPAEmitterWorkData.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#endif
|
||||
|
||||
@@ -14,12 +14,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JPAResource;
|
||||
struct JPAResource {
|
||||
/* 802755E8 */ bool calc(JPAEmitterWorkData*, JPABaseEmitter*);
|
||||
/* 80275A94 */ void draw(JPAEmitterWorkData*, JPABaseEmitter*);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
@@ -4,214 +4,144 @@
|
||||
//
|
||||
|
||||
#include "JSystem/JParticle/JPAExtraShape.h"
|
||||
#include "JSystem/JParticle/JPAParticle.h"
|
||||
#include "JSystem/JParticle/JPAResource.h"
|
||||
#include "JSystem/JParticle/JPAResourceManager.h"
|
||||
#include "JSystem/JMath/JMATrigonometric.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JPAExtraShape {
|
||||
/* 8027AD88 */ JPAExtraShape(u8 const*);
|
||||
/* 8027ADBC */ void init();
|
||||
};
|
||||
|
||||
struct JPAEmitterWorkData {};
|
||||
|
||||
struct JPABaseParticle {};
|
||||
|
||||
struct JMath {
|
||||
static u8 sincosTable_[65536];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void JPACalcScaleX__FP18JPAEmitterWorkDataP15JPABaseParticle();
|
||||
extern "C" void JPACalcScaleY__FP18JPAEmitterWorkDataP15JPABaseParticle();
|
||||
extern "C" void JPACalcScaleCopy__FP18JPAEmitterWorkDataP15JPABaseParticle();
|
||||
extern "C" void JPACalcScaleAnmNormal__FP18JPAEmitterWorkDataP15JPABaseParticle();
|
||||
extern "C" void JPACalcScaleAnmRepeatX__FP18JPAEmitterWorkDataP15JPABaseParticle();
|
||||
extern "C" void JPACalcScaleAnmRepeatY__FP18JPAEmitterWorkDataP15JPABaseParticle();
|
||||
extern "C" void JPACalcScaleAnmReverseX__FP18JPAEmitterWorkDataP15JPABaseParticle();
|
||||
extern "C" void JPACalcScaleAnmReverseY__FP18JPAEmitterWorkDataP15JPABaseParticle();
|
||||
extern "C" void JPACalcAlphaAnm__FP18JPAEmitterWorkDataP15JPABaseParticle();
|
||||
extern "C" void JPACalcAlphaFlickAnm__FP18JPAEmitterWorkDataP15JPABaseParticle();
|
||||
extern "C" void __ct__13JPAExtraShapeFPCUc();
|
||||
extern "C" void init__13JPAExtraShapeFv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804552E0-804552E8 0038E0 0004+04 6/6 0/0 0/0 .sdata2 @2270 */
|
||||
SECTION_SDATA2 static f32 lit_2270[1 + 1 /* padding */] = {
|
||||
1.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 8027A918-8027A990 275258 0078+00 0/0 1/1 0/0 .text
|
||||
* JPACalcScaleX__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPACalcScaleX(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAExtraShape/JPACalcScaleX__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPACalcScaleX(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
JPAExtraShape* esp = work->mpRes->getEsp();
|
||||
if (work->mScaleAnm < esp->getScaleInTiming()) {
|
||||
ptcl->mParticleScaleX = ptcl->mScaleOut * (esp->getScaleIncRateX() * work->mScaleAnm + esp->getScaleInValueX());
|
||||
} else if (work->mScaleAnm > esp->getScaleOutTiming()) {
|
||||
ptcl->mParticleScaleX = ptcl->mScaleOut * (esp->getScaleDecRateX() * (work->mScaleAnm - esp->getScaleOutTiming()) + 1.0f);
|
||||
} else {
|
||||
ptcl->mParticleScaleX = ptcl->mScaleOut;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8027A990-8027AA08 2752D0 0078+00 0/0 1/1 0/0 .text
|
||||
* JPACalcScaleY__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPACalcScaleY(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAExtraShape/JPACalcScaleY__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPACalcScaleY(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
JPAExtraShape* esp = work->mpRes->getEsp();
|
||||
if (work->mScaleAnm < esp->getScaleInTiming()) {
|
||||
ptcl->mParticleScaleY = ptcl->mScaleOut * (esp->getScaleIncRateY() * work->mScaleAnm + esp->getScaleInValueY());
|
||||
} else if (work->mScaleAnm > esp->getScaleOutTiming()) {
|
||||
ptcl->mParticleScaleY = ptcl->mScaleOut * (esp->getScaleDecRateY() * (work->mScaleAnm - esp->getScaleOutTiming()) + 1.0f);
|
||||
} else {
|
||||
ptcl->mParticleScaleY = ptcl->mScaleOut;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8027AA08-8027AA14 275348 000C+00 0/0 1/1 0/0 .text
|
||||
* JPACalcScaleCopy__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPACalcScaleCopy(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAExtraShape/JPACalcScaleCopy__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPACalcScaleCopy(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
JPAExtraShape* esp = work->mpRes->getEsp();
|
||||
ptcl->mParticleScaleY = ptcl->mParticleScaleX;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8027AA14-8027AA20 275354 000C+00 0/0 1/1 0/0 .text
|
||||
* JPACalcScaleAnmNormal__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPACalcScaleAnmNormal(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAExtraShape/JPACalcScaleAnmNormal__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPACalcScaleAnmNormal(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
work->mScaleAnm = ptcl->mTime;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804552E8-804552F0 0038E8 0008+00 5/5 0/0 0/0 .sdata2 @2312 */
|
||||
SECTION_SDATA2 static f64 lit_2312 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 8027AA20-8027AA84 275360 0064+00 0/0 1/1 0/0 .text
|
||||
* JPACalcScaleAnmRepeatX__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPACalcScaleAnmRepeatX(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAExtraShape/JPACalcScaleAnmRepeatX__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPACalcScaleAnmRepeatX(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
JPAExtraShape* esp = work->mpRes->getEsp();
|
||||
work->mScaleAnm = (ptcl->mAge % esp->getScaleAnmCycleX()) / (f32)esp->getScaleAnmCycleX();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8027AA84-8027AAE8 2753C4 0064+00 0/0 1/1 0/0 .text
|
||||
* JPACalcScaleAnmRepeatY__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPACalcScaleAnmRepeatY(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAExtraShape/JPACalcScaleAnmRepeatY__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPACalcScaleAnmRepeatY(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
JPAExtraShape* esp = work->mpRes->getEsp();
|
||||
work->mScaleAnm = (ptcl->mAge % esp->getScaleAnmCycleY()) / (f32)esp->getScaleAnmCycleY();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804552F0-804552F4 0038F0 0004+00 2/2 0/0 0/0 .sdata2 @2339 */
|
||||
SECTION_SDATA2 static f32 lit_2339 = 2.0f;
|
||||
|
||||
/* 8027AAE8-8027AB7C 275428 0094+00 0/0 1/1 0/0 .text
|
||||
* JPACalcScaleAnmReverseX__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPACalcScaleAnmReverseX(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAExtraShape/JPACalcScaleAnmReverseX__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPACalcScaleAnmReverseX(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
JPAExtraShape* esp = work->mpRes->getEsp();
|
||||
s32 cycle = ptcl->mAge / esp->getScaleAnmCycleX();
|
||||
f32 base = (ptcl->mAge % esp->getScaleAnmCycleX()) / (f32)esp->getScaleAnmCycleX();
|
||||
work->mScaleAnm = base + ((cycle & 1) * (1.0f - base * 2.0f));
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8027AB7C-8027AC10 2754BC 0094+00 0/0 1/1 0/0 .text
|
||||
* JPACalcScaleAnmReverseY__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPACalcScaleAnmReverseY(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAExtraShape/JPACalcScaleAnmReverseY__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPACalcScaleAnmReverseY(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
JPAExtraShape* esp = work->mpRes->getEsp();
|
||||
s32 cycle = ptcl->mAge / esp->getScaleAnmCycleY();
|
||||
f32 base = (ptcl->mAge % esp->getScaleAnmCycleY()) / (f32)esp->getScaleAnmCycleY();
|
||||
work->mScaleAnm = base + ((cycle & 1) * (1.0f - base * 2.0f));
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804552F4-804552F8 0038F4 0004+00 2/2 0/0 0/0 .sdata2 @2390 */
|
||||
SECTION_SDATA2 static f32 lit_2390 = 255.0f;
|
||||
|
||||
/* 8027AC10-8027AC98 275550 0088+00 0/0 1/1 0/0 .text
|
||||
* JPACalcAlphaAnm__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPACalcAlphaAnm(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAExtraShape/JPACalcAlphaAnm__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPACalcAlphaAnm(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
JPAExtraShape* esp = work->mpRes->getEsp();
|
||||
f32 alpha;
|
||||
if (ptcl->mTime < esp->getAlphaInTiming()) {
|
||||
alpha = 255.0f * (esp->getAlphaInValue() + esp->getAlphaIncRate() * ptcl->mTime);
|
||||
} else if (ptcl->mTime > esp->getAlphaOutTiming()) {
|
||||
alpha = 255.0f * ((ptcl->mTime - esp->getAlphaOutTiming()) * esp->getAlphaDecRate() + esp->getAlphaBaseValue());
|
||||
} else {
|
||||
alpha = 255.0f * esp->getAlphaBaseValue();
|
||||
}
|
||||
OSf32tou8(&alpha, &ptcl->mPrmColorAlphaAnm);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804552F8-804552FC 0038F8 0004+00 1/1 0/0 0/0 .sdata2 @2433 */
|
||||
SECTION_SDATA2 static f32 lit_2433 = 16384.0f;
|
||||
|
||||
/* 804552FC-80455300 0038FC 0004+00 1/1 0/0 0/0 .sdata2 @2434 */
|
||||
SECTION_SDATA2 static f32 lit_2434 = 0.5f;
|
||||
|
||||
/* 8027AC98-8027AD88 2755D8 00F0+00 0/0 1/1 0/0 .text
|
||||
* JPACalcAlphaFlickAnm__FP18JPAEmitterWorkDataP15JPABaseParticle */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPACalcAlphaFlickAnm(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAExtraShape/JPACalcAlphaFlickAnm__FP18JPAEmitterWorkDataP15JPABaseParticle.s"
|
||||
void JPACalcAlphaFlickAnm(JPAEmitterWorkData* work, JPABaseParticle* ptcl) {
|
||||
JPAExtraShape* esp = work->mpRes->getEsp();
|
||||
f32 alpha;
|
||||
if (ptcl->mTime < esp->getAlphaInTiming()) {
|
||||
alpha = (esp->getAlphaInValue() + esp->getAlphaIncRate() * ptcl->mTime);
|
||||
} else if (ptcl->mTime > esp->getAlphaOutTiming()) {
|
||||
alpha = ((ptcl->mTime - esp->getAlphaOutTiming()) * esp->getAlphaDecRate() + esp->getAlphaBaseValue());
|
||||
} else {
|
||||
alpha = esp->getAlphaBaseValue();
|
||||
}
|
||||
s32 theta = ptcl->mAlphaWaveRandom * ptcl->mAge * 16384.0f * (1.0f - esp->getAlphaFreq());
|
||||
f32 wave = JMASSin(theta);
|
||||
alpha *= (1.0f + esp->getAlphaAmp() * (wave - 1.0f) * 0.5f) * 255.0f;
|
||||
OSf32tou8(&alpha, &ptcl->mPrmColorAlphaAnm);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8027AD88-8027ADBC 2756C8 0034+00 0/0 1/1 0/0 .text __ct__13JPAExtraShapeFPCUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JPAExtraShape::JPAExtraShape(u8 const* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAExtraShape/__ct__13JPAExtraShapeFPCUc.s"
|
||||
JPAExtraShape::JPAExtraShape(u8 const* data) {
|
||||
mpData = (const JPAExtraShapeData*)data;
|
||||
init();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80455300-80455308 003900 0004+04 1/1 0/0 0/0 .sdata2 @2503 */
|
||||
SECTION_SDATA2 static f32 lit_2503[1 + 1 /* padding */] = {
|
||||
0.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 8027ADBC-8027AEBC 2756FC 0100+00 1/1 0/0 0/0 .text init__13JPAExtraShapeFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPAExtraShape::init() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAExtraShape/init__13JPAExtraShapeFv.s"
|
||||
void JPAExtraShape::init() {
|
||||
mAlphaIncRate = (getAlphaInTiming() != 0.0f) ? (getAlphaBaseValue() - getAlphaInValue()) / getAlphaInTiming() : 1.0f;
|
||||
mAlphaDecRate = (getAlphaOutTiming() != 1.0f) ? (getAlphaOutValue() - getAlphaBaseValue()) / (1.0f - getAlphaOutTiming()) : 1.0f;
|
||||
|
||||
if (getScaleInTiming() != 0.0f) {
|
||||
mScaleIncRateX = (1.0f - getScaleInValueX()) / getScaleInTiming();
|
||||
mScaleIncRateY = (1.0f - getScaleInValueY()) / getScaleInTiming();
|
||||
} else {
|
||||
mScaleIncRateX = mScaleIncRateY = 1.0f;
|
||||
}
|
||||
|
||||
if (getScaleOutTiming() != 1.0f) {
|
||||
mScaleDecRateX = (getScaleOutValueX() - 1.0f) / (1.0f - getScaleOutTiming());
|
||||
mScaleDecRateY = (getScaleOutValueY() - 1.0f) / (1.0f - getScaleOutTiming());
|
||||
} else {
|
||||
mScaleDecRateX = mScaleDecRateY = 1.0f;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
@@ -7,16 +7,6 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JPAResource {
|
||||
/* 8027658C */ void calc_p(JPAEmitterWorkData*, JPABaseParticle*);
|
||||
/* 80276608 */ void calc_c(JPAEmitterWorkData*, JPABaseParticle*);
|
||||
/* 80276684 */ void calcField(JPAEmitterWorkData*, JPABaseParticle*);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "JSystem/JParticle/JPAResource.h"
|
||||
#include "JSystem/JParticle/JPAMath.h"
|
||||
#include "JSystem/JParticle/JPABaseShape.h"
|
||||
#include "JSystem/JParticle/JPAParticle.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/mtx/mtx.h"
|
||||
@@ -148,14 +149,34 @@ extern "C" void _restgpr_28();
|
||||
//
|
||||
|
||||
/* 80274010-80274080 26E950 0070+00 0/0 1/1 0/0 .text __ct__11JPAResourceFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm JPAResource::JPAResource() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAResource/__ct__11JPAResourceFv.s"
|
||||
JPAResource::JPAResource() {
|
||||
mpDrawEmitterChildFuncList = NULL;
|
||||
mpDrawEmitterFuncList = NULL;
|
||||
mpCalcEmitterFuncList = NULL;
|
||||
mpDrawParticleChildFuncList = NULL;
|
||||
mpCalcParticleChildFuncList = NULL;
|
||||
mpDrawParticleFuncList = NULL;
|
||||
mpCalcParticleFuncList = NULL;
|
||||
mpBaseShape = NULL;
|
||||
mpExtraShape = NULL;
|
||||
mpChildShape = NULL;
|
||||
mpExTexShape = NULL;
|
||||
mpDynamicsBlock = NULL;
|
||||
mpFieldBlocks = NULL;
|
||||
mpKeyBlocks = NULL;
|
||||
mpTDB1 = NULL;
|
||||
mpDrawParticleChildFuncListNum = 0;
|
||||
mpCalcParticleChildFuncListNum = 0;
|
||||
mpDrawParticleFuncListNum = 0;
|
||||
mpCalcParticleFuncListNum = 0;
|
||||
mpDrawEmitterChildFuncListNum = 0;
|
||||
mpDrawEmitterFuncListNum = 0;
|
||||
mpCalcEmitterFuncListNum = 0;
|
||||
mTDB1Num = 0;
|
||||
mKeyBlockNum = 0;
|
||||
mFieldBlockNum = 0;
|
||||
mUsrIdx = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C40C0-803C4220 0211E0 0144+1C 2/2 0/0 0/0 .data jpa_pos */
|
||||
@@ -566,7 +587,7 @@ asm void JPAResource::init(JKRHeap* param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPAResource::calc(JPAEmitterWorkData* param_0, JPABaseEmitter* param_1) {
|
||||
asm bool JPAResource::calc(JPAEmitterWorkData* param_0, JPABaseEmitter* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAResource/calc__11JPAResourceFP18JPAEmitterWorkDataP14JPABaseEmitter.s"
|
||||
}
|
||||
@@ -574,14 +595,21 @@ asm void JPAResource::calc(JPAEmitterWorkData* param_0, JPABaseEmitter* param_1)
|
||||
|
||||
/* 80275A94-80275B74 2703D4 00E0+00 0/0 1/1 0/0 .text
|
||||
* draw__11JPAResourceFP18JPAEmitterWorkDataP14JPABaseEmitter */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JPAResource::draw(JPAEmitterWorkData* param_0, JPABaseEmitter* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JParticle/JPAResource/draw__11JPAResourceFP18JPAEmitterWorkDataP14JPABaseEmitter.s"
|
||||
void JPAResource::draw(JPAEmitterWorkData* work, JPABaseEmitter* emtr) {
|
||||
work->mpEmtr = emtr;
|
||||
work->mpRes = this;
|
||||
work->mDrawCount = 0;
|
||||
calcWorkData_d(work);
|
||||
mpBaseShape->setGX(work);
|
||||
for (s32 i = 1; i <= emtr->getDrawTimes(); i++) {
|
||||
work->mDrawCount++;
|
||||
if (mpBaseShape->isDrawPrntAhead() && mpChildShape != NULL)
|
||||
drawC(work);
|
||||
drawP(work);
|
||||
if (!mpBaseShape->isDrawPrntAhead() && mpChildShape != NULL)
|
||||
drawC(work);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80455290-80455294 003890 0004+00 2/2 0/0 0/0 .sdata2 @3189 */
|
||||
|
||||
@@ -1,35 +1,7 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: fvb-data
|
||||
//
|
||||
|
||||
#include "JSystem/JStudio/JStudio/fvb-data.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" f32 ga4cSignature__Q37JStudio3fvb4data[1 + 1 /* padding */];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80455450-80455458 003A50 0004+04 0/0 1/1 0/0 .sdata2 ga4cSignature__Q37JStudio3fvb4data
|
||||
*/
|
||||
SECTION_SDATA2 f32 JStudio::fvb::data::ga4cSignature[1 + 1 /* padding */] = {
|
||||
13712.5f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
namespace JStudio {
|
||||
namespace fvb {
|
||||
namespace data {
|
||||
extern const char ga4cSignature[] = "FVB";
|
||||
} // namespace data
|
||||
} // namespace fvb
|
||||
} // namespace JStudio
|
||||
|
||||
@@ -1,39 +1,5 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: jstudio-data
|
||||
//
|
||||
|
||||
#include "JSystem/JStudio/JStudio/jstudio-data.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
namespace JStudio {
|
||||
struct data {
|
||||
static u8 ga8cSignature[8];
|
||||
};
|
||||
|
||||
}; // namespace JStudio
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" u8 ga8cSignature__Q27JStudio4data[8];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80455460-80455468 003A60 0008+00 0/0 1/1 0/0 .sdata2 ga8cSignature__Q27JStudio4data */
|
||||
SECTION_SDATA2 u8 JStudio::data::ga8cSignature[8] = {
|
||||
0x6A, 0x73, 0x74, 0x75, 0x64, 0x69, 0x6F, 0x00,
|
||||
};
|
||||
namespace data {
|
||||
extern const char ga8cSignature[] = "jstudio";
|
||||
} // namespace data
|
||||
} // namespace JStudio
|
||||
|
||||
@@ -95,4 +95,4 @@ asm void TParse_TParagraph_data::getData(TParse_TParagraph_data::TData* param_0)
|
||||
|
||||
} // namespace data
|
||||
} // namespace stb
|
||||
} // namespace JStudio
|
||||
} // namespace JStudio
|
||||
|
||||
@@ -1,23 +1,9 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: stb-data
|
||||
//
|
||||
|
||||
#include "JSystem/JStudio/JStudio/stb-data.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JStudio {
|
||||
namespace stb {
|
||||
namespace data {
|
||||
|
||||
const u8 gauDataSize_TEParagraph_data[32] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04,
|
||||
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40,
|
||||
};
|
||||
|
||||
const u32 ga4cSignature = 'STB\0';
|
||||
|
||||
extern const s32 gauDataSize_TEParagraph_data[8] = {0x0, 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40};
|
||||
extern const char ga4cSignature[] = "STB";
|
||||
} // namespace data
|
||||
} // namespace stb
|
||||
} // namespace JStudio
|
||||
|
||||
@@ -161,4 +161,4 @@ JSUPtrLink* JSUPtrList::getNthLink(u32 index) const {
|
||||
}
|
||||
|
||||
return node;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "JSystem/JUtility/JUTResource.h"
|
||||
#include "JSystem/JKernel/JKRFileLoader.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -11,25 +12,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JSUInputStream {
|
||||
/* 802DC298 */ void read(void*, s32);
|
||||
};
|
||||
|
||||
struct JKRArchive {
|
||||
/* 802D5B38 */ void getGlbResource(u32, char const*, JKRArchive*);
|
||||
};
|
||||
|
||||
struct JUTResReference {
|
||||
/* 802DE078 */ void getResource(JSUInputStream*, u32, JKRArchive*);
|
||||
/* 802DE120 */ void getResource(void const*, u32, JKRArchive*);
|
||||
/* 802DE1BC */ void getResource(u32, JKRArchive*);
|
||||
};
|
||||
|
||||
struct JKRFileLoader {
|
||||
/* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*);
|
||||
/* 802D4224 */ void getGlbResource(char const*);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -61,7 +43,7 @@ extern "C" void _restgpr_29();
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JUTResReference::getResource(JSUInputStream* param_0, u32 param_1, JKRArchive* param_2) {
|
||||
asm void* JUTResReference::getResource(JSUInputStream* param_0, u32 param_1, JKRArchive* param_2) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JUtility/JUTResource/getResource__15JUTResReferenceFP14JSUInputStreamUlP10JKRArchive.s"
|
||||
}
|
||||
@@ -72,7 +54,7 @@ asm void JUTResReference::getResource(JSUInputStream* param_0, u32 param_1, JKRA
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JUTResReference::getResource(void const* param_0, u32 param_1, JKRArchive* param_2) {
|
||||
asm void* JUTResReference::getResource(void const* param_0, u32 param_1, JKRArchive* param_2) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JUtility/JUTResource/getResource__15JUTResReferenceFPCvUlP10JKRArchive.s"
|
||||
}
|
||||
@@ -83,7 +65,7 @@ asm void JUTResReference::getResource(void const* param_0, u32 param_1, JKRArchi
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void JUTResReference::getResource(u32 param_0, JKRArchive* param_1) {
|
||||
asm void* JUTResReference::getResource(u32 param_0, JKRArchive* param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/JUtility/JUTResource/getResource__15JUTResReferenceFUlP10JKRArchive.s"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user