mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-27 15:57:23 -04:00
Merge remote-tracking branch 'upstream/main' into d_menu_dmap
This commit is contained in:
@@ -10,7 +10,7 @@ CompileFlags:
|
||||
"-Wsometimes-uninitialized",
|
||||
"-Wlogical-op-parentheses",
|
||||
"-Wbitwise-op-parentheses",
|
||||
"-Wunused-variable",
|
||||
# "-Wunused-variable",
|
||||
# "-Wunused-but-set-variable",
|
||||
"-Wunused-parameter",
|
||||
"-Wunused-but-set-parameter",
|
||||
|
||||
+12
-12
@@ -409,7 +409,7 @@ config.libs = [
|
||||
Object(NonMatching, "m_Do/m_Do_graphic.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "m_Do/m_Do_machine.cpp"),
|
||||
Object(Matching, "m_Do/m_Do_mtx.cpp"),
|
||||
Object(NonMatching, "m_Do/m_Do_ext.cpp"),
|
||||
Object(MatchingFor("D44J01"), "m_Do/m_Do_ext.cpp"),
|
||||
Object(Matching, "m_Do/m_Do_lib.cpp"),
|
||||
Object(Matching, "m_Do/m_Do_hostIO.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "m_Do/m_Do_Reset.cpp"),
|
||||
@@ -565,7 +565,7 @@ config.libs = [
|
||||
Object(Matching, "d/d_bg_w_deform.cpp"),
|
||||
Object(Matching, "d/d_bg_w_hf.cpp"),
|
||||
Object(Matching, "d/d_bg_w_sv.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_cc_d.cpp"),
|
||||
Object(Matching, "d/d_cc_d.cpp"),
|
||||
Object(Matching, "d/d_cc_mass_s.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_cc_s.cpp"),
|
||||
Object(Matching, "d/d_cc_uty.cpp"),
|
||||
@@ -593,7 +593,7 @@ config.libs = [
|
||||
Object(Matching, "d/actor/d_a_bomb.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_bomb2.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_boomerang.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_dai_item.cpp"),
|
||||
Object(Matching, "d/actor/d_a_dai_item.cpp"),
|
||||
Object(Matching, "d/actor/d_a_demo00.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_disappear.cpp"),
|
||||
Object(Matching, "d/actor/d_a_esa.cpp"),
|
||||
@@ -1232,7 +1232,7 @@ config.libs = [
|
||||
[
|
||||
Object(NonMatching, "dolphin/gx/GXInit.c", extra_cflags=["-opt nopeephole"]),
|
||||
Object(Matching, "dolphin/gx/GXFifo.c"),
|
||||
Object(NonMatching, "dolphin/gx/GXAttr.c"),
|
||||
Object(Matching, "dolphin/gx/GXAttr.c"),
|
||||
Object(NonMatching, "dolphin/gx/GXMisc.c"),
|
||||
Object(NonMatching, "dolphin/gx/GXGeometry.c"),
|
||||
Object(NonMatching, "dolphin/gx/GXFrameBuf.c"),
|
||||
@@ -1451,7 +1451,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_lamp"),
|
||||
ActorRel(NonMatching, "d_a_lod_bg"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_lwood"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_magma"),
|
||||
ActorRel(Matching, "d_a_magma"),
|
||||
ActorRel(Matching, "d_a_majuu_flag"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_mdoor"),
|
||||
ActorRel(MatchingFor("D44J01"), "d_a_msw"),
|
||||
@@ -1471,7 +1471,7 @@ config.libs = [
|
||||
ActorRel(Matching, "d_a_obj_hfuck1"),
|
||||
ActorRel(Matching, "d_a_obj_hole"),
|
||||
ActorRel(Matching, "d_a_obj_ice"),
|
||||
ActorRel(NonMatching, "d_a_obj_ikada"),
|
||||
ActorRel(Matching, "d_a_obj_ikada"),
|
||||
ActorRel(Matching, "d_a_obj_kanat"),
|
||||
ActorRel(Matching, "d_a_obj_leaves"),
|
||||
ActorRel(Matching, "d_a_obj_lpalm"),
|
||||
@@ -1653,7 +1653,7 @@ config.libs = [
|
||||
ActorRel(Matching, "d_a_npc_ah"),
|
||||
ActorRel(NonMatching, "d_a_npc_aj1"),
|
||||
ActorRel(NonMatching, "d_a_npc_auction"),
|
||||
ActorRel(NonMatching, "d_a_npc_ba1"),
|
||||
ActorRel(Matching, "d_a_npc_ba1"),
|
||||
ActorRel(NonMatching, "d_a_npc_bj1"),
|
||||
ActorRel(Matching, "d_a_npc_bm1"),
|
||||
ActorRel(NonMatching, "d_a_npc_bmcon1"),
|
||||
@@ -1938,11 +1938,11 @@ config.progress_report_args = [
|
||||
"--config preferredStringEncoding=shift_jis",
|
||||
]
|
||||
|
||||
# Disable missing return type warnings for incomplete objects
|
||||
for lib in config.libs:
|
||||
for obj in lib["objects"]:
|
||||
if not obj.completed:
|
||||
obj.options["extra_clang_flags"].append("-Wno-return-type")
|
||||
# # Disable missing return type warnings for incomplete objects
|
||||
# for lib in config.libs:
|
||||
# for obj in lib["objects"]:
|
||||
# if not obj.completed:
|
||||
# obj.options["extra_clang_flags"].append("-Wno-return-type")
|
||||
|
||||
if args.mode == "configure":
|
||||
# Write build.ninja and objdiff.json
|
||||
|
||||
@@ -44,14 +44,10 @@ public:
|
||||
param_0.mBR = mColorBR;
|
||||
}
|
||||
const JUtility::TColor& getWhite() const { return mWhite; }
|
||||
bool setBlack(JUtility::TColor black) { mBlack = black; return true; }
|
||||
void setContentsColor(TContentsColor c) {
|
||||
setContentsColor(c.mTL, c.mTR, c.mBL, c.mBR);
|
||||
}
|
||||
void setContentsColor(JUtility::TColor c) {
|
||||
setContentsColor(c, c, c, c);
|
||||
}
|
||||
bool setWhite(JUtility::TColor white) { mWhite = white; return true; }
|
||||
void setBlack(JUtility::TColor black) { mBlack = black; }
|
||||
void setContentsColor(TContentsColor param_0) { setContentsColor(param_0.mTL, param_0.mTR, param_0.mBL, param_0.mBR); }
|
||||
void setContentsColor(JUtility::TColor param_0) { setContentsColor(param_0, param_0, param_0, param_0); }
|
||||
void setWhite(JUtility::TColor white) { mWhite = white; }
|
||||
|
||||
public:
|
||||
/* 0x0CC */ JUTTexture* mpFrameTexture1;
|
||||
|
||||
@@ -430,7 +430,7 @@ public:
|
||||
}
|
||||
u16 getUpdateMaterialNum() const { return mTrackNum / 3; }
|
||||
JUTNameTab * getUpdateMaterialName() { return &mUpdateMaterialName; }
|
||||
u16 getUpdateTexMtxID(u16 idx) const {
|
||||
int getUpdateTexMtxID(u16 idx) const {
|
||||
J3D_ASSERT(1017, idx < (mTrackNum / 3), "Error : range over.");
|
||||
return mUpdateTexMtxID[idx];
|
||||
}
|
||||
|
||||
@@ -119,7 +119,6 @@ class J3DMtxCalcMayaAnm : public J3DMtxCalcMaya, public J3DMtxCalcAnm {
|
||||
public:
|
||||
J3DMtxCalcMayaAnm(J3DAnmTransform* pAnmTransform)
|
||||
: J3DMtxCalcMaya(), J3DMtxCalcAnm(pAnmTransform) {}
|
||||
virtual ~J3DMtxCalcMayaAnm() {}
|
||||
virtual void calc(u16 jnt_no) { J3DMtxCalcAnm::calc(jnt_no); }
|
||||
};
|
||||
|
||||
|
||||
@@ -9,8 +9,18 @@
|
||||
|
||||
struct J3DGXColorS10 {
|
||||
J3DGXColorS10() {}
|
||||
J3DGXColorS10(GXColorS10& other) { mColor = other; }
|
||||
J3DGXColorS10(J3DGXColorS10& other) { mColor = other.mColor; }
|
||||
J3DGXColorS10(GXColorS10& other) {
|
||||
mColor.r = other.r;
|
||||
mColor.g = other.g;
|
||||
mColor.b = other.b;
|
||||
mColor.a = other.a;
|
||||
}
|
||||
J3DGXColorS10(J3DGXColorS10& other) {
|
||||
mColor.r = other.mColor.r;
|
||||
mColor.g = other.mColor.g;
|
||||
mColor.b = other.mColor.b;
|
||||
mColor.a = other.mColor.a;
|
||||
}
|
||||
J3DGXColorS10& operator=(const J3DGXColorS10& other) {
|
||||
mColor = other.mColor;
|
||||
return *this;
|
||||
@@ -25,8 +35,18 @@ struct J3DGXColorS10 {
|
||||
|
||||
struct J3DGXColor {
|
||||
J3DGXColor() {}
|
||||
J3DGXColor(GXColor& other) { mColor = other; }
|
||||
J3DGXColor(J3DGXColor& other) { mColor = other.mColor; }
|
||||
J3DGXColor(GXColor& other) {
|
||||
mColor.r = other.r;
|
||||
mColor.g = other.g;
|
||||
mColor.b = other.b;
|
||||
mColor.a = other.a;
|
||||
}
|
||||
J3DGXColor(J3DGXColor& other) {
|
||||
mColor.r = other.mColor.r;
|
||||
mColor.g = other.mColor.g;
|
||||
mColor.b = other.mColor.b;
|
||||
mColor.a = other.mColor.a;
|
||||
}
|
||||
J3DGXColor& operator=(const J3DGXColor& other) {
|
||||
mColor = other.mColor;
|
||||
return *this;
|
||||
|
||||
@@ -12,9 +12,10 @@ enum J3DError {
|
||||
J3DErrType_OutOfMemory = 4,
|
||||
};
|
||||
|
||||
enum J3DSysDrawBuffer {
|
||||
/* 0x0 */ OPA_BUFFER,
|
||||
/* 0x1 */ XLU_BUFFER
|
||||
enum J3DSysDrawBuf {
|
||||
/* 0x0 */ J3DSysDrawBuf_Opa,
|
||||
/* 0x1 */ J3DSysDrawBuf_Xlu,
|
||||
/* 0x2 */ J3DSysDrawBuf_MAX,
|
||||
};
|
||||
|
||||
class J3DMtxCalc;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef JSYSTEM_PCH
|
||||
#define JSYSTEM_PCH
|
||||
|
||||
#include "JSystem/JSupport/JSUList.h"
|
||||
#include "JSystem/J3DGraphBase/J3DShape.h"
|
||||
#include "JSystem/JSupport/JSUList.h" // IWYU pragma: export
|
||||
#include "JSystem/J3DGraphBase/J3DShape.h" // IWYU pragma: export
|
||||
|
||||
#endif /* JSYSTEM_PCH */
|
||||
|
||||
@@ -380,9 +380,9 @@ public:
|
||||
cCcD_ObjCommonBase() { ct(); }
|
||||
virtual ~cCcD_ObjCommonBase() {}
|
||||
void ct() {
|
||||
SetSPrm(0);
|
||||
SetRPrm(0);
|
||||
ClrObj();
|
||||
mSPrm = 0;
|
||||
mRPrm = 0;
|
||||
mHitObj = NULL;
|
||||
}
|
||||
void SetSPrm(u32 sprm) { mSPrm = sprm; }
|
||||
void SetRPrm(u32 rprm) { mRPrm = rprm; }
|
||||
|
||||
@@ -35,14 +35,26 @@ public:
|
||||
void SetR(f32 r);
|
||||
#endif
|
||||
void Set(const cM3dGCylS & src) {
|
||||
#if VERSION == VERSION_DEMO
|
||||
mCenter = src.mCenter;
|
||||
mRadius = src.mRadius;
|
||||
mHeight = src.mHeight;
|
||||
#else
|
||||
SetC(src.mCenter);
|
||||
SetR(src.mRadius);
|
||||
SetH(src.mHeight);
|
||||
#endif
|
||||
}
|
||||
void Set(const cXyz& center, f32 radius, f32 height) {
|
||||
#if VERSION == VERSION_DEMO
|
||||
mCenter = center;
|
||||
mRadius = radius;
|
||||
mHeight = height;
|
||||
#else
|
||||
SetC(center);
|
||||
SetR(radius);
|
||||
SetH(height);
|
||||
#endif
|
||||
}
|
||||
bool cross(const cM3dGSph*, cXyz*) const;
|
||||
bool cross(const cM3dGCyl*, cXyz*) const;
|
||||
|
||||
@@ -29,12 +29,22 @@ public:
|
||||
#endif
|
||||
void SetC(f32 x, f32 y, f32 z) { mCenter.x = x; mCenter.y = y; mCenter.z = z; }
|
||||
void Set(const cM3dGSphS & src) {
|
||||
#if VERSION == VERSION_DEMO
|
||||
mCenter = src.mCenter;
|
||||
mRadius = src.mRadius;
|
||||
#else
|
||||
SetC(src.mCenter);
|
||||
SetR(src.mRadius);
|
||||
#endif
|
||||
}
|
||||
void Set(const cXyz& srcCenter, f32 srcRadius) {
|
||||
#if VERSION == VERSION_DEMO
|
||||
mCenter = srcCenter;
|
||||
mRadius = srcRadius;
|
||||
#else
|
||||
SetC(srcCenter);
|
||||
SetR(srcRadius);
|
||||
#endif
|
||||
}
|
||||
bool Cross(const cM3dGCps* cps, cXyz* dst) const {
|
||||
return cM3d_Cross_CpsSph(*cps, *this, dst);
|
||||
|
||||
@@ -23,7 +23,7 @@ public:
|
||||
void check_col();
|
||||
void lift_smooth_move();
|
||||
void lift_normal_move();
|
||||
BOOL check_path_point(cXyz, cXyz, cXyz, s8);
|
||||
BOOL check_path_point(cXyz, cXyz, s8);
|
||||
void set_next_pnt();
|
||||
BOOL setNextPath();
|
||||
bool chkSwitchPathType();
|
||||
|
||||
@@ -9,7 +9,7 @@ class daMagma_c : public fopAc_ac_c {
|
||||
public:
|
||||
inline ~daMagma_c();
|
||||
inline cPhs_State create();
|
||||
inline s32 getPathNo() { return fopAcM_GetParam(this); }
|
||||
inline s16 getPathNo() { return fopAcM_GetParam(this); }
|
||||
|
||||
public:
|
||||
/* 0x290 */ request_of_phase_process_class mPhs;
|
||||
|
||||
@@ -6,9 +6,11 @@
|
||||
#include "d/d_drawlist.h"
|
||||
#include "dolphin/dvd/dvd.h"
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
typedef u8 THPSample;
|
||||
typedef s16 THPCoeff;
|
||||
@@ -45,8 +47,10 @@ static void __THPInverseDCTY8(THPCoeff* in, u32 xPos);
|
||||
static void __THPGQRSetup();
|
||||
static s32 __THPHuffDecodeTab(THPFileInfo* info, THPHuffmanTab* h);
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
} // extern "C"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
class daMP_c : public fopAc_ac_c {
|
||||
@@ -63,7 +67,7 @@ public:
|
||||
|
||||
public:
|
||||
/* 0x290 */ u32 (*mpGetMovieRestFrame)();
|
||||
/* 0x294 */ u32 (*mpSetPercentMovieVol)(f32);
|
||||
/* 0x294 */ void (*mpSetPercentMovieVol)(f32);
|
||||
#if VERSION == VERSION_PAL
|
||||
/* 0x29C */ u32 (*mpTHPGetTotalFrame)(void);
|
||||
#endif
|
||||
|
||||
+143
-76
@@ -1,63 +1,70 @@
|
||||
#ifndef D_A_NPC_BA1_H
|
||||
#define D_A_NPC_BA1_H
|
||||
|
||||
#include "d/d_npc.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
|
||||
class J3DNode;
|
||||
|
||||
class daNpc_Ba1_c : public fopAc_ac_c {
|
||||
class daNpc_Ba1_c : public fopNpc_npc_c {
|
||||
public:
|
||||
typedef BOOL (daNpc_Ba1_c::*ProcFunc)(void*);
|
||||
struct anm_prm_c {
|
||||
|
||||
/* 0x00 */ s8 mAnmNum;
|
||||
/* 0x01 */ s8 mBtpNum;
|
||||
/* 0x02 */ s16 field_0x02;
|
||||
/* 0x04 */ f32 mMorf;
|
||||
/* 0x08 */ f32 mSpeed;
|
||||
/* 0x0C */ int mLoopMode;
|
||||
};
|
||||
|
||||
void holdEventOn() { mHoldEvent = 1; }
|
||||
void holdEventOn() { mbHoldEvent = 1; }
|
||||
|
||||
void nodeBa1Control(J3DNode*, J3DModel*);
|
||||
void XyCheck_cB(int);
|
||||
void XyEvent_cB(int);
|
||||
void init_BA1_0();
|
||||
void init_BA1_1();
|
||||
void init_BA1_2();
|
||||
void init_BA1_3();
|
||||
void init_BA1_4();
|
||||
void createInit();
|
||||
bool XyCheck_cB(int);
|
||||
s16 XyEvent_cB(int);
|
||||
bool init_BA1_0();
|
||||
bool init_BA1_1();
|
||||
bool init_BA1_2();
|
||||
bool init_BA1_3();
|
||||
bool init_BA1_4();
|
||||
bool createInit();
|
||||
void setMtx(bool);
|
||||
void anmNum_toResID(int);
|
||||
void btpNum_toResID(int);
|
||||
void setBtp(bool, int);
|
||||
void iniTexPttrnAnm(bool);
|
||||
int anmNum_toResID(int);
|
||||
int btpNum_toResID(int);
|
||||
bool setBtp(bool, int);
|
||||
bool iniTexPttrnAnm(bool);
|
||||
void plyTexPttrnAnm();
|
||||
void setAnm_tex(signed char);
|
||||
void setAnm_anm(anm_prm_c*);
|
||||
void setAnm_tex(s8);
|
||||
BOOL setAnm_anm(anm_prm_c*);
|
||||
void setAnm_NUM(int, int);
|
||||
void setAnm();
|
||||
bool setAnm();
|
||||
void chg_anmTag();
|
||||
void control_anmTag();
|
||||
void chg_anmAtr(unsigned char);
|
||||
void chg_anmAtr(u8);
|
||||
void control_anmAtr();
|
||||
void setAnm_ATR(int);
|
||||
void anmAtr(unsigned short);
|
||||
void anmAtr(u16);
|
||||
void eventOrder();
|
||||
void checkOrder();
|
||||
void chk_talk();
|
||||
void chk_drct(float);
|
||||
void chk_partsNotMove();
|
||||
bool chk_talk();
|
||||
bool chk_drct(f32);
|
||||
bool chk_partsNotMove();
|
||||
void lookBack();
|
||||
void next_msgStatus(unsigned long*);
|
||||
void getMsg_BA1_0();
|
||||
void getMsg_BA1_1();
|
||||
void getMsg_BA1_3();
|
||||
void getMsg_BA1_4();
|
||||
void getMsg();
|
||||
void chkAttention();
|
||||
u16 next_msgStatus(u32*);
|
||||
u32 getMsg_BA1_0();
|
||||
u32 getMsg_BA1_1();
|
||||
u32 getMsg_BA1_3();
|
||||
u32 getMsg_BA1_4();
|
||||
u32 getMsg();
|
||||
bool chkAttention();
|
||||
void setAttention(bool);
|
||||
void searchByID(fpc_ProcID);
|
||||
void partner_srch_sub(void* (*)(void*, void*));
|
||||
fopAc_ac_c* searchByID(fpc_ProcID);
|
||||
bool partner_srch_sub(fpcLyIt_JudgeFunc);
|
||||
void partner_srch();
|
||||
void check_useFairyArea();
|
||||
void checkCommandTalk();
|
||||
void charDecide(int);
|
||||
bool check_useFairyArea();
|
||||
bool checkCommandTalk();
|
||||
bool charDecide(int);
|
||||
void eInit_SET_PLYER_GOL_();
|
||||
void eInit_PLYER_INI_POS_();
|
||||
void eInit_USE_FAIRY_END_();
|
||||
@@ -66,61 +73,121 @@ public:
|
||||
void eInit_ACTOR_DRW_CONTROL_(int*, int*);
|
||||
void eInit_setEvTimer(int*);
|
||||
void eInit_CHK_FAIRY_(int*);
|
||||
void eInit_prmFloat(float*, float);
|
||||
void eInit_SET_EYE_OFF_(float*);
|
||||
void eInit_EYE_OFF_ZRO_(float*);
|
||||
f32 eInit_prmFloat(f32*, f32);
|
||||
void eInit_SET_EYE_OFF_(f32*);
|
||||
void eInit_EYE_OFF_ZRO_(f32*);
|
||||
void eInit_CHK_FAIRY_MOV_1(int*);
|
||||
void event_actionInit(int);
|
||||
void eMove_MOV_POS_();
|
||||
void eMove_CHK_FAIRY_();
|
||||
void eMove_EYE_OFF_ZRO_();
|
||||
void eMove_CHK_FAIRY_MOV_1();
|
||||
void event_action();
|
||||
bool eMove_MOV_POS_();
|
||||
bool eMove_CHK_FAIRY_();
|
||||
bool eMove_EYE_OFF_ZRO_();
|
||||
bool eMove_CHK_FAIRY_MOV_1();
|
||||
bool event_action();
|
||||
void cut_init_START_TALE1(int);
|
||||
void cut_move_START_TALE1();
|
||||
bool cut_move_START_TALE1();
|
||||
void privateCut(int);
|
||||
void endEvent();
|
||||
void isEventEntry();
|
||||
BOOL isEventEntry();
|
||||
void event_proc(int);
|
||||
void set_action(int (daNpc_Ba1_c::*)(void*), void*);
|
||||
void setStt(signed char);
|
||||
void wait_0();
|
||||
void wait_1();
|
||||
void talk_1();
|
||||
void talk_2();
|
||||
void wait_2();
|
||||
void wait_3();
|
||||
void ZZZwai();
|
||||
void wait_action1(void*);
|
||||
void wait_action2(void*);
|
||||
void demo_action1(void*);
|
||||
void wait_action3(void*);
|
||||
void wait_action4(void*);
|
||||
void demo();
|
||||
BOOL set_action(int (daNpc_Ba1_c::*)(void*), void*);
|
||||
void setStt(s8);
|
||||
BOOL wait_0();
|
||||
BOOL wait_1();
|
||||
BOOL talk_1();
|
||||
BOOL talk_2();
|
||||
BOOL wait_2();
|
||||
BOOL wait_3();
|
||||
BOOL ZZZwai();
|
||||
BOOL wait_action1(void*);
|
||||
BOOL wait_action2(void*);
|
||||
BOOL demo_action1(void*);
|
||||
BOOL wait_action3(void*);
|
||||
BOOL wait_action4(void*);
|
||||
bool demo();
|
||||
void shadowDraw();
|
||||
BOOL _draw();
|
||||
BOOL _execute();
|
||||
BOOL _delete();
|
||||
cPhs_State _create();
|
||||
void create_Anm();
|
||||
void create_itm_Mdl();
|
||||
void CreateHeap();
|
||||
J3DModelData* create_Anm();
|
||||
bool create_itm_Mdl();
|
||||
BOOL CreateHeap();
|
||||
|
||||
public:
|
||||
/* 0x290 */ u8 m290[0x7F8 - 0x290];
|
||||
/* 0x6C4 */ request_of_phase_process_class mPhs;
|
||||
/* 0x6CC */ s8 m_hed_jnt_num;
|
||||
/* 0x6CD */ s8 m_bbone_jnt_num;
|
||||
/* 0x6CE */ s8 m_footL_jnt_num;
|
||||
/* 0x6D0 */ J3DModel* mpClothModel;
|
||||
/* 0x6D4 */ u32 mShadowID;
|
||||
/* 0x6D8 */ J3DAnmTexPattern* m_hed_tex_pttrn;
|
||||
/* 0x6DC */ mDoExt_btpAnm mHeadBtpAnm;
|
||||
/* 0x6F0 */ u8 mBlinkFrame;
|
||||
/* 0x6F2 */ s16 mBlinkTimer;
|
||||
/* 0x6F4 */ ProcFunc mCurrProcFunc;
|
||||
/* 0x700 */ u8 field_0x700[0x708 - 0x700];
|
||||
/* 0x708 */ dNpc_EventCut_c mEventCut;
|
||||
/* 0x774 */ fpc_ProcID mPartnerProcID;
|
||||
/* 0x778 */ cXyz mInitialPos;
|
||||
/* 0x784 */ csXyz mInitialAngle;
|
||||
/* 0x78A */ csXyz m78A;
|
||||
/* 0x790 */ cXyz mTransformedEyePos;
|
||||
/* 0x79C */ cXyz m79C;
|
||||
/* 0x7A8 */ u8 field_0x7A8[0x7C0 - 0x7A8];
|
||||
/* 0x7C0 */ f32 mPrevMorfFrame;
|
||||
/* 0x7C4 */ f32 mEyeOffset;
|
||||
/* 0x7C8 */ f32 mEyeOffsetZero;
|
||||
/* 0x7CC */ s16 mJointHeadY;
|
||||
/* 0x7CE */ s16 mJointBackboneY;
|
||||
/* 0x7D0 */ s16 mActorAngleY;
|
||||
/* 0x7D2 */ s16 mEventIdTable[6];
|
||||
/* 0x7DE */ s16 mEventIdx;
|
||||
/* 0x7E0 */ s16 mEvTimer;
|
||||
/* 0x7E2 */ s16 mEvTimer2;
|
||||
/* 0x7E4 */ u8 field_0x7E4[0x7E8 - 0x7E4];
|
||||
/* 0x7E8 */ s16 mLookAtMaxVel;
|
||||
/* 0x7EA */ s16 mTargetYRot;
|
||||
/* 0x7EC */ u8 field_0x7EC[0x7EE - 0x7EC];
|
||||
/* 0x7EE */ s8 mbMorfAnimStopped;
|
||||
/* 0x7EF */ u8 m7EF;
|
||||
/* 0x7F0 */ s8 m7F0;
|
||||
/* 0x7F1 */ u8 mItemNo;
|
||||
#if VERSION > VERSION_JPN
|
||||
/* 0x7F8 */ u8 m7F8;
|
||||
/* 0x7F2 */ u8 m7F2;
|
||||
#endif
|
||||
/* Offsets below are for USA/PAL */
|
||||
/* 0x7F9 */ u8 mHoldEvent;
|
||||
};
|
||||
|
||||
class daNpc_Ba1_HIO_c {
|
||||
public:
|
||||
daNpc_Ba1_HIO_c();
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
/* 0x7F3 */ u8 field_0x7F3[0x7F4 - 0x7F3];
|
||||
/* 0x7F4 */ bool mbInitGrandma0;
|
||||
/* 0x7F5 */ bool m7F5;
|
||||
/* 0x7F6 */ bool m7F6;
|
||||
/* 0x7F7 */ bool m7F7;
|
||||
/* 0x7F8 */ bool m7F8;
|
||||
/* 0x7F9 */ bool mbHoldEvent;
|
||||
/* 0x7FA */ bool m7FA;
|
||||
/* 0x7FB */ bool m7FB;
|
||||
/* 0x7FC */ bool mFairyUsed;
|
||||
/* 0x7FD */ bool m7FD;
|
||||
/* 0x7FE */ bool m7FE;
|
||||
/* 0x7FF */ bool m7FF;
|
||||
/* 0x800 */ bool mbRanExecute;
|
||||
/* 0x804 */ BOOL mbSetEyePos;
|
||||
/* 0x808 */ bool mbAttention;
|
||||
/* 0x809 */ bool m809;
|
||||
/* 0x80A */ bool mHeadOnlyFollow;
|
||||
/* 0x80B */ bool mbInDemo;
|
||||
/* 0x80C */ s8 mActionIndex;
|
||||
/* 0x80D */ s8 mActNo;
|
||||
/* 0x80E */ u8 m80E;
|
||||
/* 0x80F */ u8 mMesgAnimeTagInfo;
|
||||
/* 0x810 */ s8 mBtpNum;
|
||||
/* 0x811 */ s8 mAnmNum;
|
||||
/* 0x812 */ s8 m812;
|
||||
/* 0x813 */ s8 mStatus;
|
||||
/* 0x814 */ s8 mPrevStatus;
|
||||
/* 0x815 */ s8 mLookBackState;
|
||||
/* 0x816 */ s8 mType;
|
||||
/* 0x817 */ s8 mSpecificType;
|
||||
/* 0x818 */ s8 m818;
|
||||
/* 0x819 */ s8 m819;
|
||||
}; // Size: 0x81C
|
||||
|
||||
#endif /* D_A_NPC_BA1_H */
|
||||
|
||||
@@ -73,7 +73,7 @@ public:
|
||||
u8 getMode() { return mMode; }
|
||||
void setMode(u8 mode) { mMode = mode; }
|
||||
bool isLinkMode() { return mMode == Mode_PLAYER_MOVE_e; }
|
||||
void isBabaMode() {}
|
||||
bool isBabaMode() { return mMode == Mode_BOTTLE_BABA_MOVE_e; }
|
||||
u8 getSubMode() { return mSubMode; }
|
||||
void setSubMode(u8 submode) { mSubMode = submode; }
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
#include "d/d_path.h"
|
||||
#include "d/d_lib.h"
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
|
||||
class daObj_Ikada_c : public fopAc_ac_c {
|
||||
public:
|
||||
@@ -185,54 +184,4 @@ public:
|
||||
/* 0x1328 */ cXyz mInitPos;
|
||||
};
|
||||
|
||||
class daObj_Ikada_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daObj_Ikada_HIO_c();
|
||||
virtual ~daObj_Ikada_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext* ctx) {}
|
||||
|
||||
public:
|
||||
/* 0x04 */ u8 mbDebugDraw;
|
||||
/* 0x05 */ u8 m05;
|
||||
/* 0x06 */ u8 m06;
|
||||
/* 0x07 */ u8 mbNoRotAnim;
|
||||
/* 0x08 */ u8 m08;
|
||||
/* 0x09 */ u8 m09[0x0C - 0x09];
|
||||
/* 0x0C */ Vec mFlagOffset;
|
||||
/* 0x18 */ f32 mFlagScale;
|
||||
/* 0x1C */ s16 m1C;
|
||||
/* 0x1E */ s16 m1E;
|
||||
/* 0x20 */ f32 m20;
|
||||
/* 0x24 */ s16 m24;
|
||||
/* 0x26 */ u8 m26[0x28 - 0x26];
|
||||
/* 0x28 */ f32 m28;
|
||||
/* 0x2C */ f32 mShipOffsY_Attention;
|
||||
/* 0x30 */ f32 mShipOffsY_Eye;
|
||||
/* 0x34 */ f32 mTerryWaveOffsZ;
|
||||
/* 0x38 */ f32 mTerryWaveOffsY;
|
||||
/* 0x3C */ f32 mTerryTrackOffsZ;
|
||||
/* 0x40 */ f32 mSvWaveOffsX;
|
||||
/* 0x44 */ f32 mSvTrackOffsX;
|
||||
/* 0x48 */ f32 mSvOffsX[4];
|
||||
/* 0x58 */ f32 mTrackIndTransY;
|
||||
/* 0x5C */ f32 mTrackIndScaleY;
|
||||
/* 0x60 */ f32 mSplashScaleMax;
|
||||
/* 0x64 */ f32 mSplashMaxScaleTimer;
|
||||
/* 0x68 */ f32 mWaveVelFade;
|
||||
/* 0x6C */ f32 mTrackVel;
|
||||
/* 0x70 */ f32 mWaveVelSpeed;
|
||||
/* 0x74 */ f32 mWaveVelOffs;
|
||||
/* 0x78 */ f32 mWaveMaxVelocity;
|
||||
/* 0x7C */ Vec mWaveCollapsePos[2];
|
||||
/* 0x94 */ s16 m94;
|
||||
/* 0x96 */ s16 mPlayerStopDistance;
|
||||
/* 0x98 */ s16 m98;
|
||||
/* 0x9A */ s16 m9A;
|
||||
/* 0x9C */ f32 m9C;
|
||||
/* 0xA0 */ f32 mVelocityTargetTerry1;
|
||||
/* 0xA4 */ f32 mVelocityTargetTerry3;
|
||||
/* 0xA8 */ f32 mA8;
|
||||
}; // size = 0xAC
|
||||
|
||||
#endif /* D_A_OBJ_IKADA_H */
|
||||
|
||||
@@ -83,6 +83,7 @@ public:
|
||||
|
||||
class dDlst_2DOutFont_c {
|
||||
public:
|
||||
dDlst_2DOutFont_c() { m20 = NULL; m18 = NULL; m2C = NULL; m74 = 0; }
|
||||
void setLeftUpPos(f32 x, f32 y) { mPosTopLeftX = x; mPosTopLeftY = y; }
|
||||
|
||||
void initial();
|
||||
@@ -107,9 +108,13 @@ public:
|
||||
/* 0x18 */ J2DPane* m18;
|
||||
/* 0x1C */ u8 m1C[0x20 - 0x1C];
|
||||
/* 0x20 */ JUTFont* m20;
|
||||
/* 0x24 */ u8 m24[0x30 - 0x24];
|
||||
/* 0x24 */ u8 m24[0x2C - 0x24];
|
||||
/* 0x2C */ JUTFont* m2C;
|
||||
/* 0x30 */ f32 mPosTopLeftX;
|
||||
/* 0x34 */ f32 mPosTopLeftY;
|
||||
};
|
||||
/* 0x38 */ u8 m38[0x74 - 0x38];
|
||||
/* 0x74 */ u8 m74;
|
||||
/* 0x75 */ u8 m75[0x150 - 0x75];
|
||||
}; // Size = 0x150
|
||||
|
||||
#endif /* D_2DNUMBER_H */
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "d/d_drawlist.h"
|
||||
#include "d/d_event.h"
|
||||
#include "d/d_event_manager.h"
|
||||
#include "d/d_item_data.h"
|
||||
#include "d/d_map.h"
|
||||
#include "d/d_particle.h"
|
||||
#include "d/d_resorce.h"
|
||||
|
||||
@@ -535,8 +535,8 @@ public:
|
||||
J3DDrawBuffer* getXluList() { return mpXluList; }
|
||||
J3DDrawBuffer* getXluListP1() { return mpXluListP1; }
|
||||
|
||||
void setXluDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, XLU_BUFFER); }
|
||||
void setOpaDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, OPA_BUFFER); }
|
||||
void setXluDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, J3DSysDrawBuf_Xlu); }
|
||||
void setOpaDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, J3DSysDrawBuf_Opa); }
|
||||
void setOpaList() { setOpaDrawList(mpOpaList); }
|
||||
void setXluList() { setXluDrawList(mpXluList); }
|
||||
void setOpaListInvisible() { setOpaDrawList(mpOpaListInvisible); }
|
||||
|
||||
@@ -52,6 +52,9 @@ public:
|
||||
|
||||
class CSTControl : public STControl {
|
||||
public:
|
||||
CSTControl(s16 a, s16 b, s16 c, s16 d, f32 e = 0.9f, f32 f = 0.5f, s16 g = 0, s16 h = 0x2000)
|
||||
: STControl(a, b, c, d, e, f, g, h)
|
||||
{}
|
||||
virtual f32 getValueStick();
|
||||
virtual s16 getAngleStick();
|
||||
};
|
||||
|
||||
@@ -5,13 +5,14 @@
|
||||
|
||||
class dMenu_base_c : public dDlst_base_c {
|
||||
public:
|
||||
virtual void draw() {}
|
||||
virtual ~dMenu_base_c() {}
|
||||
virtual void _create() {}
|
||||
virtual void _delete() {}
|
||||
virtual void _move() {}
|
||||
virtual void _draw() {}
|
||||
virtual bool _open() = 0;
|
||||
virtual bool _close() = 0;
|
||||
virtual void draw() {}
|
||||
};
|
||||
|
||||
#endif //D_MENU_BASE_H
|
||||
|
||||
+19
-15
@@ -20,6 +20,7 @@ class JUTFont;
|
||||
|
||||
class dMenu_Collect_c : public dMenu_base_c {
|
||||
public:
|
||||
~dMenu_Collect_c() {}
|
||||
virtual void draw() { _draw(); }
|
||||
|
||||
void alphaChange(fopMsgM_pane_class* pane, float alpha) { pane->mInitAlpha *= alpha; }
|
||||
@@ -32,15 +33,15 @@ public:
|
||||
void setQuitArchive(JKRArchive* arc) { mpSaveArc = arc; }
|
||||
|
||||
void setFont(JUTFont* font, JUTFont* rfont) {
|
||||
mFont = font;
|
||||
mRFont = rfont;
|
||||
mpFont = font;
|
||||
mpRubyFont = rfont;
|
||||
}
|
||||
|
||||
void setTactTexBuffer(void* ptr) { mTactTexBuffer = (ResTIMG*)ptr; }
|
||||
void setMapTexBuffer(void* ptr) { mMapTexBuffer = (ResTIMG*)ptr; }
|
||||
void setTriforceTexBuffer(int idx, void* ptr) { mTriforceTexBuffer[idx] = (ResTIMG*)ptr; }
|
||||
void setSymbolTexBuffer(int idx, void* ptr) { mSymbolTexBuffer[idx] = ptr; }
|
||||
void setItemTexBuffer(int idx, void* ptr) { mItemTexBuffer[idx] = ptr; }
|
||||
void setSymbolTexBuffer(int idx, void* ptr) { mSymbolTexBuffer[idx] = (ResTIMG*)ptr; }
|
||||
void setItemTexBuffer(int idx, void* ptr) { mItemTexBuffer[idx] = (ResTIMG*)ptr; }
|
||||
|
||||
void setTextArea(char* name0, char* name1, char* note0, char* note1, char* dummy0, char* dummy1) {
|
||||
name[0] = name0;
|
||||
@@ -58,7 +59,7 @@ public:
|
||||
void initialize();
|
||||
void cursorAnime();
|
||||
int stickDirection(unsigned char);
|
||||
int cursorMainMove();
|
||||
u8 cursorMainMove();
|
||||
u8 noteCheck();
|
||||
void noteInit();
|
||||
void noteAppear();
|
||||
@@ -176,16 +177,21 @@ private:
|
||||
/* 0x2464 */ JKRArchive* mpArc;
|
||||
/* 0x2468 */ JKRArchive* mpOptArc;
|
||||
/* 0x246C */ JKRArchive* mpSaveArc;
|
||||
/* 0x2470 */ JUTFont* mFont;
|
||||
/* 0x2474 */ JUTFont* mRFont;
|
||||
/* 0x2470 */ JUTFont* mpFont;
|
||||
/* 0x2474 */ JUTFont* mpRubyFont;
|
||||
/* 0x2478 */ J2DPane* m2478;
|
||||
/* 0x247C */ JPABaseEmitter* m247C[3];
|
||||
/* 0x2488 */ J2DWindow::TContentsColor m2488;
|
||||
/* 0x2498 */ ResTIMG* mTactTexBuffer;
|
||||
/* 0x249C */ ResTIMG* mMapTexBuffer;
|
||||
/* 0x24A0 */ ResTIMG* mTriforceTexBuffer[8];
|
||||
/* 0x24C0 */ void* mSymbolTexBuffer[3];
|
||||
/* 0x24CC */ void* mItemTexBuffer[5];
|
||||
/* 0x24C0 */ ResTIMG* mSymbolTexBuffer[3];
|
||||
/* 0x24CC */ ResTIMG* mItemTexBuffer[5];
|
||||
#if VERSION == VERSION_PAL
|
||||
/* 0x24E0 */ ResTIMG* mWordSaveTexBuffer;
|
||||
/* 0x24E4 */ ResTIMG* mWordOptionTexBuffer;
|
||||
/* 0x24E8 */ ResTIMG* mTitleCollectTexBuffer;
|
||||
#endif
|
||||
/* 0x24E0 */ fopMsgM_msgDataProc_c mMsgProc;
|
||||
/* 0x2780 */ dMenu_Option_c* dMo_c;
|
||||
/* 0x2784 */ dMenu_save_c* dMs_c;
|
||||
@@ -197,12 +203,12 @@ private:
|
||||
/* 0x27B8 */ char* note[2];
|
||||
/* 0x27C0 */ char* dummy[2];
|
||||
/* 0x27C8 */ u8 m27C8[0x27DC - 0x27C8];
|
||||
/* 0x27DC */ u32 m27DC;
|
||||
/* 0x27DC */ s32 m27DC;
|
||||
/* 0x27E0 */ s16 m27E0;
|
||||
/* 0x27E2 */ s16 mTimer;
|
||||
/* 0x27E4 */ u16 m27E4;
|
||||
/* 0x27E6 */ u16 m27E6;
|
||||
/* 0x27E8 */ u16 m27E8;
|
||||
/* 0x27E4 */ s16 m27E4;
|
||||
/* 0x27E6 */ s16 m27E6;
|
||||
/* 0x27E8 */ s16 m27E8;
|
||||
/* 0x27EA */ u8 m27EA;
|
||||
/* 0x27EB */ u8 m27EB;
|
||||
/* 0x27EC */ u8 mTriggerInfo;
|
||||
@@ -215,8 +221,6 @@ private:
|
||||
/* 0x27F3 */ u8 m27F3;
|
||||
}; // Size: 0x27F4
|
||||
|
||||
STATIC_ASSERT(sizeof(dMenu_Collect_c) == 0x27F4);
|
||||
|
||||
class dMc_HIO_c : public JORReflexible {
|
||||
public:
|
||||
dMc_HIO_c();
|
||||
|
||||
@@ -11,16 +11,19 @@ struct fopMsgM_pane_class;
|
||||
class JKRArchive;
|
||||
class JUTFont;
|
||||
|
||||
class dMenu_Option_c : public dDlst_base_c {
|
||||
class dMenu_Option_c {
|
||||
public:
|
||||
dMenu_Option_c() { }
|
||||
virtual ~dMenu_Option_c() {}
|
||||
|
||||
void alphaChange(fopMsgM_pane_class*, f32) {}
|
||||
u8 getQuitStatus() { return mE40; }
|
||||
void setArchive(JKRArchive* archive) {
|
||||
mpArchive = archive;
|
||||
}
|
||||
void setFont(JUTFont* font_1, JUTFont* font_2) {
|
||||
mD2C = font_1;
|
||||
mD30 = font_2;
|
||||
void setFont(JUTFont* i_font, JUTFont* i_rubyFont) {
|
||||
mpFont = i_font;
|
||||
mpRubyFont = i_rubyFont;
|
||||
}
|
||||
void setTextArea(char* param_1, char* param_2, char* param_3, char* param_4) {
|
||||
mD38 = param_1;
|
||||
@@ -83,8 +86,8 @@ private:
|
||||
/* 0xC80 */ fopMsgM_pane_class mC80[2];
|
||||
/* 0xCF0 */ fopMsgM_pane_class mCF0;
|
||||
/* 0xD28 */ JKRArchive* mpArchive;
|
||||
/* 0xD2C */ JUTFont* mD2C;
|
||||
/* 0xD30 */ JUTFont* mD30;
|
||||
/* 0xD2C */ JUTFont* mpFont;
|
||||
/* 0xD30 */ JUTFont* mpRubyFont;
|
||||
/* 0xD34 */ STControl* stick;
|
||||
/* 0xD38 */ char* mD38;
|
||||
/* 0xD3C */ char* mD3C;
|
||||
|
||||
@@ -45,12 +45,12 @@ public:
|
||||
/* 0x0502 */ UNK_0502 = 0x0502,
|
||||
/* 0x0501 */ UNK_0501 = 0x0501,
|
||||
/* 0x0640 */ UNK_0640 = 0x0640,
|
||||
/* 0x0608 */ UNK_0608 = 0x0608,
|
||||
/* 0x0608 */ UNK_0608 = 0x0608, // Set by an unused dialogue
|
||||
/* 0x0604 */ UNK_0604 = 0x0604,
|
||||
/* 0x0602 */ UNK_0602 = 0x0602,
|
||||
/* 0x0601 */ UNK_0601 = 0x0601,
|
||||
/* 0x0602 */ UNK_0602 = 0x0602, // Grandma dialogue after sword obtained
|
||||
/* 0x0601 */ UNK_0601 = 0x0601, // Grandma dialogue after Helmaroc cutscene (prologue)
|
||||
/* 0x0780 */ UNK_0780 = 0x0780,
|
||||
/* 0x0740 */ UNK_0740 = 0x0740,
|
||||
/* 0x0740 */ UNK_0740 = 0x0740, // Grandma dialogue after Aryll kidnapped
|
||||
/* 0x0720 */ UNK_0720 = 0x0720,
|
||||
/* 0x0710 */ UNK_0710 = 0x0710,
|
||||
/* 0x0704 */ UNK_0704 = 0x0704,
|
||||
@@ -317,7 +317,7 @@ public:
|
||||
/* 0x2901 */ UNK_2901 = 0x2901,
|
||||
/* 0x2A80 */ UNK_2A80 = 0x2A80,
|
||||
/* 0x2A40 */ UNK_2A40 = 0x2A40,
|
||||
/* 0x2A20 */ UNK_2A20 = 0x2A20,
|
||||
/* 0x2A20 */ GRANDMA_HEALED = 0x2A20,
|
||||
/* 0x2A10 */ UNK_2A10 = 0x2A10,
|
||||
/* 0x2A08 */ RODE_KORL = 0x2A08,
|
||||
/* 0x2A04 */ UNK_2A04 = 0x2A04,
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@ enum {
|
||||
/* 0x47 */ DSNAP_TYPE_UNK47,
|
||||
/* 0x48 */ DSNAP_TYPE_UNK48,
|
||||
/* 0x49 */ DSNAP_TYPE_NPC_LS1,
|
||||
/* 0x4A */ DSNAP_TYPE_UNK4A,
|
||||
/* 0x4A */ DSNAP_TYPE_NPC_BA1,
|
||||
/* 0x4B */ DSNAP_TYPE_UNK4B,
|
||||
/* 0x4C */ DSNAP_TYPE_UNK4C,
|
||||
/* 0x4D */ DSNAP_TYPE_NPC_JI1,
|
||||
|
||||
@@ -29,8 +29,10 @@
|
||||
#include "JSystem/JKernel/JKRFileFinder.h" // IWYU pragma: export
|
||||
#include "d/d_bg_s_lin_chk.h" // IWYU pragma: export
|
||||
#include "m_Do/m_Do_hostIO.h" // IWYU pragma: export
|
||||
#include "m_Do/m_Do_graphic.h" // IWYU pragma: export
|
||||
#include "d/d_cc_uty.h" // IWYU pragma: export
|
||||
#include "d/d_magma.h" // IWYU pragma: export
|
||||
#include "d/d_mesg.h" // IWYU pragma: export
|
||||
#include "d/d_menu_base.h" // IWYU pragma: export
|
||||
|
||||
#endif /* DOLZEL_PCH */
|
||||
|
||||
@@ -42,6 +42,8 @@ extern "C" {
|
||||
(reg) = ((u32) (reg) & ~(((1 << (nbits)) - 1) << (shift))) | \
|
||||
((u32) (value) << (shift));
|
||||
|
||||
#define GET_REG_FIELD(reg, size, shift) ((int)((reg) >> (shift)) & ((1 << (size)) - 1))
|
||||
|
||||
#define SET_REG_FIELD(reg, size, shift, val) \
|
||||
(reg) = ((u32)(reg) & ~(((1 << (size)) - 1) << (shift))) | ((u32)(val) << (shift)); \
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ void GXSetNumTexGens(u8 numTexGens);
|
||||
void GXGetVtxAttrFmtv(GXVtxFmt param_0, GXVtxAttrFmtList* param_1);
|
||||
void GXGetVtxAttrFmt(GXVtxFmt param_0, int param_1, GXCompCnt* param_2, GXCompType* param_3,
|
||||
u8* param_4);
|
||||
void GXGetVtxDesc(GXAttr attr, GXAttrType* type);
|
||||
void GXGetVtxDescv(GXVtxDescList* attrPtr);
|
||||
|
||||
static inline void GXSetTexCoordGen(GXTexCoordID dst, GXTexGenType type, GXTexGenSrc src, u32 mtx) {
|
||||
|
||||
+1
-32
@@ -28,7 +28,7 @@ typedef struct _THPComponent {
|
||||
THPCoeff predDC;
|
||||
} THPComponent;
|
||||
|
||||
typedef struct _THPFileInfo {
|
||||
typedef struct _local_THPFileInfo {
|
||||
THPQuantTab quantTabs[3];
|
||||
THPHuffmanTab huffmanTabs[4];
|
||||
THPComponent components[3];
|
||||
@@ -116,37 +116,6 @@ typedef struct THPHeader {
|
||||
#define THP_READ_BUFFER_COUNT 10
|
||||
#define THP_TEXTURE_SET_COUNT 3
|
||||
|
||||
static u32 THPAudioDecode(s16* audioBuffer, u8* audioFrame, s32 flag);
|
||||
static s32 __THPAudioGetNewSample(THPAudioDecodeInfo* info);
|
||||
static void __THPAudioInitialize(THPAudioDecodeInfo* info, u8* ptr);
|
||||
|
||||
s32 __THPAudioGetNewSample(THPAudioDecodeInfo*);
|
||||
void __THPAudioInitialize(THPAudioDecodeInfo*, u8*);
|
||||
|
||||
static void __THPSetupBuffers(void);
|
||||
static u8 __THPReadFrameHeader(void);
|
||||
static u8 __THPReadScaneHeader(void);
|
||||
static u8 __THPReadQuantizationTable(void);
|
||||
static u8 __THPReadHuffmanTableSpecification(void);
|
||||
static void __THPHuffGenerateSizeTable(void);
|
||||
static void __THPHuffGenerateCodeTable(void);
|
||||
static void __THPHuffGenerateDecoderTables(u8 tabIndex);
|
||||
static void __THPRestartDefinition(void);
|
||||
static void __THPPrepBitStream(void);
|
||||
static void __THPDecompressYUV(void* tileY, void* tileU, void* tileV);
|
||||
static void __THPGQRRestore(void);
|
||||
static void __THPDecompressiMCURow512x448(void);
|
||||
static void __THPDecompressiMCURow640x480(void);
|
||||
static void __THPDecompressiMCURowNxN(void);
|
||||
static void __THPInverseDCTNoYPos(THPCoeff* in, u32 xPos);
|
||||
static void __THPHuffDecodeDCTCompY(THPFileInfo* info, THPCoeff* block);
|
||||
static void __THPHuffDecodeDCTCompU(THPFileInfo* info, THPCoeff* block);
|
||||
static void __THPHuffDecodeDCTCompV(THPFileInfo* info, THPCoeff* block);
|
||||
|
||||
static void __THPInverseDCTY8(THPCoeff* in, u32 xPos);
|
||||
static void __THPGQRSetup();
|
||||
static s32 __THPHuffDecodeTab(THPFileInfo* info, THPHuffmanTab* h);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
+12
-12
@@ -17,7 +17,7 @@ public:
|
||||
|
||||
public:
|
||||
/* 0x04 */ s8 mNo;
|
||||
/* 0x05 */ u8 field_0x05;
|
||||
/* 0x05 */ u8 mUsingHostIO;
|
||||
/* 0x06 */ u8 mDisplayMeter;
|
||||
/* 0x07 */ u8 mDisplayFlag;
|
||||
/* 0x08 */ u8 field_0x08;
|
||||
@@ -41,7 +41,7 @@ public:
|
||||
/* 0x1D */ u8 field_0x1d;
|
||||
/* 0x1E */ u8 field_0x1e;
|
||||
/* 0x1F */ u8 field_0x1f;
|
||||
/* 0x20 */ JUtility::TColor field_0x20;
|
||||
/* 0x20 */ JUtility::TColor mColor;
|
||||
/* 0x24 */ f32 mTriggerThreshLo;
|
||||
/* 0x28 */ f32 mTriggerThreshHi;
|
||||
/* 0x2C */ s16 mFbWidth;
|
||||
@@ -58,16 +58,16 @@ public:
|
||||
/* 0x39 */ u8 field_0x39;
|
||||
/* 0x3A */ u8 field_0x3a;
|
||||
/* 0x3B */ u8 field_0x3b;
|
||||
/* 0x3C */ JUtility::TColor field_0x3c;
|
||||
/* 0x40 */ JUtility::TColor field_0x40;
|
||||
/* 0x44 */ JUtility::TColor field_0x44;
|
||||
/* 0x48 */ JUtility::TColor field_0x48;
|
||||
/* 0x4C */ u16 field_0x4c;
|
||||
/* 0x4E */ u16 field_0x4e;
|
||||
/* 0x50 */ u16 field_0x50;
|
||||
/* 0x52 */ u16 field_0x52;
|
||||
/* 0x54 */ u16 field_0x54;
|
||||
/* 0x56 */ u8 field_0x56;
|
||||
/* 0x3C */ JUtility::TColor mLetterTopColor;
|
||||
/* 0x40 */ JUtility::TColor mLetterBottomColor;
|
||||
/* 0x44 */ JUtility::TColor mLetterTopShadowColor;
|
||||
/* 0x48 */ JUtility::TColor mLetterBottomShadowColor;
|
||||
/* 0x4C */ u16 mLetterPositionX;
|
||||
/* 0x4E */ u16 mLetterPositionY;
|
||||
/* 0x50 */ u16 mLineSpacing;
|
||||
/* 0x52 */ u16 mLetterSpacing;
|
||||
/* 0x54 */ u16 mLetterFontSize;
|
||||
/* 0x56 */ u8 mBackgroundAlpha;
|
||||
}; // Size: 0x58
|
||||
|
||||
extern fapGm_HIO_c g_HIO;
|
||||
|
||||
@@ -127,22 +127,6 @@ inline MtxP fopAcM_GetMtx(fopAc_ac_c* pActor) {
|
||||
return pActor->cullMtx;
|
||||
}
|
||||
|
||||
inline u32 fopAcM_CheckStatus(fopAc_ac_c* pActor, u32 status) {
|
||||
return pActor->actor_status & status;
|
||||
}
|
||||
|
||||
inline u32 fopAcM_checkCarryNow(fopAc_ac_c* pActor) {
|
||||
return pActor->actor_status & fopAcStts_CARRY_e;
|
||||
}
|
||||
|
||||
inline void fopAcM_ClearStatusMap(fopAc_ac_c* pActor) {
|
||||
pActor->actor_status &= ~0x3F;
|
||||
}
|
||||
|
||||
inline bool fopAcM_checkHookCarryNow(fopAc_ac_c* pActor) {
|
||||
return fopAcM_CheckStatus(pActor, fopAcStts_HOOK_CARRY_e);
|
||||
}
|
||||
|
||||
inline u32 fopAcM_GetParam(void* pActor) {
|
||||
return fpcM_GetParam(pActor);
|
||||
}
|
||||
@@ -179,6 +163,10 @@ inline void fopAcM_SetGroup(fopAc_ac_c* pActor, u8 group) {
|
||||
pActor->group = group;
|
||||
}
|
||||
|
||||
inline u32 fopAcM_CheckStatus(fopAc_ac_c* pActor, u32 status) {
|
||||
return pActor->actor_status & status;
|
||||
}
|
||||
|
||||
inline void fopAcM_OnStatus(fopAc_ac_c* pActor, u32 flag) {
|
||||
pActor->actor_status |= flag;
|
||||
}
|
||||
@@ -187,6 +175,14 @@ inline void fopAcM_OffStatus(fopAc_ac_c* pActor, u32 flag) {
|
||||
pActor->actor_status &= ~flag;
|
||||
}
|
||||
|
||||
inline u32 fopAcM_checkCarryNow(fopAc_ac_c* pActor) {
|
||||
return pActor->actor_status & fopAcStts_CARRY_e;
|
||||
}
|
||||
|
||||
inline bool fopAcM_checkHookCarryNow(fopAc_ac_c* pActor) {
|
||||
return fopAcM_CheckStatus(pActor, fopAcStts_HOOK_CARRY_e);
|
||||
}
|
||||
|
||||
inline BOOL fopAcM_CheckStatusMap(fopAc_ac_c* pActor, u32) {
|
||||
// TODO: This implementation probably isn't right, the u32 argument is likely used for something
|
||||
return (pActor->actor_status & fopAcStts_SHOWMAP_e) && (pActor->actor_status & 0x1F) == 0;
|
||||
@@ -196,6 +192,10 @@ inline void fopAcM_SetStatusMap(fopAc_ac_c* pActor, u32 flag) {
|
||||
pActor->actor_status = (pActor->actor_status & ~0x3F) | fopAcStts_SHOWMAP_e | flag;
|
||||
}
|
||||
|
||||
inline void fopAcM_ClearStatusMap(fopAc_ac_c* pActor) {
|
||||
pActor->actor_status &= ~0x3F;
|
||||
}
|
||||
|
||||
inline fopAc_ac_c* fopAcM_Search(fopAcIt_JudgeFunc func, void* param) {
|
||||
return (fopAc_ac_c*)fopAcIt_Judge(func, param);
|
||||
}
|
||||
|
||||
@@ -354,7 +354,9 @@ inline void mDoAud_tact_melodyPlay(s32 param_1) {
|
||||
mDoAud_zelAudio_c::getTact().melodyPlay(param_1);
|
||||
}
|
||||
|
||||
inline void mDoAud_tact_melodyStop() {}
|
||||
inline void mDoAud_tact_melodyStop() {
|
||||
mDoAud_zelAudio_c::getTact().melodyStop();
|
||||
}
|
||||
|
||||
inline BOOL mDoAud_checkCbPracticePlay() {
|
||||
return mDoAud_zelAudio_c::getInterface()->checkCbPracticePlay();
|
||||
|
||||
@@ -95,6 +95,10 @@ inline void cMtx_copy(CMtxP src, MtxP dst) {
|
||||
mDoMtx_copy(src, dst);
|
||||
}
|
||||
|
||||
inline void cMtx_trans(Mtx dst, f32 x, f32 y, f32 z) {
|
||||
mDoMtx_trans(dst, x, y, z);
|
||||
}
|
||||
|
||||
inline void cMtx_multVecArray(Mtx mtx, const Vec* src, Vec* dst, u32 count) {
|
||||
mDoMtx_multVecArray(mtx, src, dst, count);
|
||||
}
|
||||
|
||||
@@ -82,6 +82,7 @@ static BOOL nodeCallBack(J3DNode* node, int calcTiming) {
|
||||
case AM_JNT_EYE_e:
|
||||
cMtx_YrotM(*calc_mtx, i_this->mEyeRot.y);
|
||||
cMtx_XrotM(*calc_mtx, i_this->mEyeRot.x);
|
||||
break;
|
||||
}
|
||||
|
||||
if (jntNo >= AM_JNT_KOSI_e && jntNo <= AM_JNT_EYE_e) {
|
||||
|
||||
@@ -2027,7 +2027,7 @@ static cPhs_State daBmd_Create(fopAc_ac_c* a_this) {
|
||||
i_this->mB71 = 1;
|
||||
}
|
||||
dKyw_pntwind_set(&i_this->mWindInfluence);
|
||||
a_this->attention_info.distances[2] = 4;
|
||||
a_this->attention_info.distances[fopAc_Attn_TYPE_BATTLE_e] = 4;
|
||||
daBmd_Execute(i_this);
|
||||
res = cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
@@ -4385,11 +4385,11 @@ void body_create_init(bpw_class* i_this) {
|
||||
fopAcM_SetMtx(actor, i_this->mpMorf->getModel()->getBaseTRMtx());
|
||||
fopAcM_setCullSizeBox(actor, -300.0f, -300.0f, -300.0f, 300.0f, 300.0f, 300.0f);
|
||||
actor->attention_info.flags = fopAc_Attn_LOCKON_BATTLE_e;
|
||||
actor->attention_info.distances[2] = 4;
|
||||
actor->attention_info.distances[fopAc_Attn_TYPE_BATTLE_e] = 4;
|
||||
fopAcM_OnStatus(actor, fopAcStts_BOSS_e);
|
||||
i_this->mAcch.Set(fopAcM_GetPosition_p(actor), fopAcM_GetOldPosition_p(actor), actor, 1, &i_this->mAcchCir, fopAcM_GetSpeed_p(actor));
|
||||
i_this->mStts.Init(0xfe, 1, actor);
|
||||
actor->attention_info.distances[4] = 0x25;
|
||||
actor->attention_info.distances[fopAc_Attn_TYPE_CARRY_e] = 0x25;
|
||||
fopAcM_OnStatus(actor, fopAcStts_UNK10000_e);
|
||||
i_this->mBodyCoSph.Set(body_co_sph_src);
|
||||
i_this->mBodyCoSph.SetStts(&i_this->mStts);
|
||||
|
||||
@@ -2508,7 +2508,7 @@ static cPhs_State daBwd_Create(fopAc_ac_c* a_this) {
|
||||
}
|
||||
}
|
||||
a_this->attention_info.flags = fopAc_Attn_LOCKON_BATTLE_e;
|
||||
a_this->attention_info.distances[2] = 0x22;
|
||||
a_this->attention_info.distances[fopAc_Attn_TYPE_BATTLE_e] = 0x22;
|
||||
if (hio_set == 0) {
|
||||
i_this->m3C51 = 1;
|
||||
hio_set = 1;
|
||||
|
||||
@@ -133,7 +133,6 @@ cPhs_State daDai_c::_create() {
|
||||
if (PVar3 != cPhs_COMPLEATE_e) {
|
||||
return PVar3;
|
||||
}
|
||||
|
||||
#else
|
||||
if (PVar2 != cPhs_COMPLEATE_e) {
|
||||
return PVar2;
|
||||
|
||||
@@ -202,8 +202,8 @@ bool daStandItem_c::_delete() {
|
||||
m698 = NULL;
|
||||
}
|
||||
|
||||
dComIfG_resDelete(&mPhsDai, m_arcname);
|
||||
dComIfG_resDelete(&mPhsCloth, "Cloth");
|
||||
dComIfG_resDeleteDemo(&mPhsDai, m_arcname);
|
||||
dComIfG_resDeleteDemo(&mPhsCloth, "Cloth");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -215,7 +215,7 @@ static BOOL CheckCreateHeap(fopAc_ac_c* i_ac) {
|
||||
/* 800E37B8-800E3AF8 .text CreateHeap__13daStandItem_cFv */
|
||||
BOOL daStandItem_c::CreateHeap() {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(m_arcname, m_bmdidx[mItemType]);
|
||||
JUT_ASSERT(0x239, modelData != NULL);
|
||||
JUT_ASSERT(DEMO_SELECT(566, 569), modelData != NULL);
|
||||
|
||||
if (mItemNo == dItemNo_SHOP_GURU_STATUE_e) {
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x0, 0x11020203);
|
||||
@@ -228,7 +228,7 @@ BOOL daStandItem_c::CreateHeap() {
|
||||
|
||||
if (m_bckidx[mItemType] != -1) {
|
||||
J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(m_arcname, m_bckidx[mItemType]);
|
||||
JUT_ASSERT(0x250, pbck != NULL);
|
||||
JUT_ASSERT(DEMO_SELECT(589, 592), pbck != NULL);
|
||||
mpBckAnm = new mDoExt_bckAnm();
|
||||
|
||||
static const u32 playmode[] = {
|
||||
@@ -297,6 +297,37 @@ BOOL daStandItem_c::CreateHeap() {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
// Note: Retail moved this into d_com_static.cpp as daStandItem_c::daiItemNodeCallBack
|
||||
static BOOL nodeCallBack(J3DNode* node, int calcTiming) {
|
||||
if (calcTiming == J3DNodeCBCalcTiming_In) {
|
||||
J3DJoint* joint = (J3DJoint*)node;
|
||||
s32 jntNo = joint->getJntNo();
|
||||
J3DModel* model = j3dSys.getModel();
|
||||
void* userArea = (void*)model->getUserArea();
|
||||
if (userArea && fopAcM_IsActor(userArea) && fopAcM_GetName(userArea) == fpcNm_STANDITEM_e) {
|
||||
daStandItem_c* i_this = (daStandItem_c*)userArea;
|
||||
mDoMtx_stack_c::copy(model->getAnmMtx(jntNo));
|
||||
switch (i_this->getItemNo()) {
|
||||
case dItemNo_PINWHEEL_e:
|
||||
mDoMtx_stack_c::XrotM(i_this->m6B4);
|
||||
break;
|
||||
case dItemNo_FOUNTAIN_IDOL_e:
|
||||
if (jntNo == FOBJ09_JNT_TUBOKO_BASE_e) {
|
||||
mDoMtx_copy(mDoMtx_stack_c::get(), i_this->m630);
|
||||
} else if (jntNo == FOBJ09_JNT_TUBOKO_HEAD_e) {
|
||||
mDoMtx_copy(mDoMtx_stack_c::get(), i_this->m660);
|
||||
}
|
||||
break;
|
||||
}
|
||||
model->setAnmMtx(jntNo, mDoMtx_stack_c::get());
|
||||
cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 800E3AF8-800E3E94 .text CreateInit__13daStandItem_cFv */
|
||||
void daStandItem_c::CreateInit() {
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
@@ -312,7 +343,9 @@ void daStandItem_c::CreateInit() {
|
||||
m6A4 = *dKyw_get_wind_vec();
|
||||
m6A2 = cM_atan2s(m6A4.x, m6A4.z);
|
||||
set_mtx();
|
||||
#if VERSION > VERSION_DEMO
|
||||
mpModel->setUserArea(NULL);
|
||||
#endif
|
||||
|
||||
JUTNameTab* jointNameTab = mpModel->getModelData()->getJointName();
|
||||
const char* jointName;
|
||||
@@ -323,7 +356,7 @@ void daStandItem_c::CreateInit() {
|
||||
for (i = 0; i < mpModel->getModelData()->getJointNum(); i++) {
|
||||
jointName = jointNameTab->getName(i);
|
||||
if (strcmp("top", jointName) == 0) {
|
||||
mpModel->getModelData()->getJointNodePointer(i)->setCallBack(daiItemNodeCallBack);
|
||||
mpModel->getModelData()->getJointNodePointer(i)->setCallBack(DEMO_SELECT(nodeCallBack, daiItemNodeCallBack));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -336,7 +369,7 @@ void daStandItem_c::CreateInit() {
|
||||
for (i = 0; i < mpModel->getModelData()->getJointNum(); i++) {
|
||||
jointName = jointNameTab->getName(i);
|
||||
if (strcmp("tuboko_head", jointName) == 0 || strcmp("tuboko_base", jointName) == 0)
|
||||
mpModel->getModelData()->getJointNodePointer(i)->setCallBack(daiItemNodeCallBack);
|
||||
mpModel->getModelData()->getJointNodePointer(i)->setCallBack(DEMO_SELECT(nodeCallBack, daiItemNodeCallBack));
|
||||
}
|
||||
mpModel->setUserArea((u32)this);
|
||||
mpModel->calc();
|
||||
@@ -352,18 +385,20 @@ void daStandItem_c::CreateInit() {
|
||||
s16 stopMaxTime = m_stop_max_time[mItemType];
|
||||
s16 r29 = (animMinTime + animMaxTime) / 2;
|
||||
s16 r28 = (animMaxTime - animMinTime) / 2;
|
||||
s16 temp3 = (stopMinTime + stopMaxTime) / 2;
|
||||
s16 temp = (stopMaxTime - stopMinTime) / 2;
|
||||
mBckPlayTimer = 0;
|
||||
f32 temp2 = cM_rndFX(temp);
|
||||
s16 temp3 = (stopMinTime + stopMaxTime) / 2;
|
||||
mBckStopTimer = temp3 + temp2;
|
||||
if (stopMaxTime == 0) {
|
||||
mBckPlayTimer = r29 + cM_rndFX(r28);
|
||||
}
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
m690 = NULL;
|
||||
m694 = NULL;
|
||||
m698 = NULL;
|
||||
#endif
|
||||
#if VERSION > VERSION_JPN
|
||||
g_env_light.settingTevStruct(TEV_TYPE_ACTOR, ¤t.pos, &tevStr);
|
||||
#endif
|
||||
@@ -376,6 +411,23 @@ cPhs_State daStandItem_c::_create() {
|
||||
mItemNo = fopAcM_GetParam(this);
|
||||
mItemType = convItemNo(mItemNo);
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
cPhs_State rt;
|
||||
cPhs_State cloth_rt;
|
||||
rt = dComIfG_resLoad(&mPhsDai, m_arcname);
|
||||
cloth_rt = dComIfG_resLoad(&mPhsCloth, "Cloth");
|
||||
|
||||
if (rt == cPhs_ERROR_e || cloth_rt == cPhs_ERROR_e) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
if (rt != cPhs_COMPLEATE_e) {
|
||||
return rt;
|
||||
}
|
||||
// !@bug They meant to check cloth_rt here, instead they check rt a second time.
|
||||
if (rt != cPhs_COMPLEATE_e) {
|
||||
return cloth_rt;
|
||||
}
|
||||
#else
|
||||
cPhs_State rt = dComIfG_resLoad(&mPhsDai, m_arcname);
|
||||
if (rt != cPhs_COMPLEATE_e)
|
||||
return rt;
|
||||
@@ -383,6 +435,7 @@ cPhs_State daStandItem_c::_create() {
|
||||
cPhs_State cloth_rt = dComIfG_resLoad(&mPhsCloth, "Cloth");
|
||||
if (cloth_rt != cPhs_COMPLEATE_e)
|
||||
return cloth_rt;
|
||||
#endif
|
||||
|
||||
if (rt == cPhs_COMPLEATE_e && cloth_rt == cPhs_COMPLEATE_e) {
|
||||
if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, m_heapsize[mItemType]))
|
||||
@@ -509,7 +562,8 @@ bool daStandItem_c::actionFobj06() {
|
||||
m6C4 = 4.0f;
|
||||
}
|
||||
|
||||
m6B2 = m6C4 * 0x600;
|
||||
int r0 = 0x600;
|
||||
m6B2 = (f32)r0 * m6C4;
|
||||
cLib_addCalc(&m6C4, 0.0f, 0.08f, dKyw_get_wind_pow() + 0.3f, dKyw_get_wind_pow() + 0.1f);
|
||||
m6B4 += m6B2;
|
||||
return true;
|
||||
@@ -572,7 +626,10 @@ bool daStandItem_c::actionFobj09() {
|
||||
if (m694 == NULL) {
|
||||
m694 = dComIfGp_particle_set(dPa_name::ID_AK_SN_FOUNTAINFIGURE01, ¤t.pos, ¤t.angle, NULL, 0xFF, NULL, fopAcM_GetRoomNo(this), &tevStr.mColorK0);
|
||||
}
|
||||
if (m698 == NULL) {
|
||||
#if VERSION > VERSION_DEMO
|
||||
if (m698 == NULL)
|
||||
#endif
|
||||
{
|
||||
m698 = dComIfGp_particle_set(dPa_name::ID_AK_SN_FOUNTAINFIGURE02, ¤t.pos, ¤t.angle);
|
||||
}
|
||||
if (m698) {
|
||||
@@ -627,8 +684,8 @@ void daStandItem_c::animTest() {
|
||||
}
|
||||
if (mBckSpeed == 0.0f || mBckPlayTimer == 0) {
|
||||
mpBckAnm->setPlaySpeed(0.0f);
|
||||
s16 temp = (stopMaxTime - stopMinTime) / 2;
|
||||
s16 temp2 = (stopMinTime + stopMaxTime) / 2;
|
||||
s16 temp = (stopMaxTime - stopMinTime) / 2;
|
||||
mBckStopTimer = temp2 + cM_rndFX(temp);
|
||||
}
|
||||
} else if (mBckStopTimer > 0) {
|
||||
@@ -637,8 +694,8 @@ void daStandItem_c::animTest() {
|
||||
mBckStopTimer = 1;
|
||||
}
|
||||
if (mBckStopTimer == 0) {
|
||||
s16 temp = (animMaxTime - animMinTime) / 2;
|
||||
s16 temp2 = (animMinTime + animMaxTime) / 2;
|
||||
s16 temp = (animMaxTime - animMinTime) / 2;
|
||||
mBckPlayTimer = temp2 + cM_rndFX(temp);
|
||||
mBckSpeed = 1.0f;
|
||||
if (mpBckAnm) {
|
||||
@@ -662,8 +719,8 @@ void daStandItem_c::animTestForOneTime() {
|
||||
if (mBckStopTimer == 0) {
|
||||
mpBckAnm->setPlaySpeed(1.0f);
|
||||
mpBckAnm->setFrame(0.0f);
|
||||
s16 temp = (animMaxTime - animMinTime) / 2;
|
||||
s16 temp2 = (animMinTime + animMaxTime) / 2;
|
||||
s16 temp = (animMaxTime - animMinTime) / 2;
|
||||
mBckPlayTimer = temp2 + cM_rndFX(temp);
|
||||
}
|
||||
} else if (mBckPlayTimer > 0) {
|
||||
@@ -672,8 +729,8 @@ void daStandItem_c::animTestForOneTime() {
|
||||
mpBckAnm->setPlaySpeed(1.0f);
|
||||
mpBckAnm->setFrame(0.0f);
|
||||
} else if (mBckPlayTimer == 0 && isStop) {
|
||||
s16 temp = (stopMaxTime - stopMinTime) / 2;
|
||||
s16 temp2 = (stopMinTime + stopMaxTime) / 2;
|
||||
s16 temp = (stopMaxTime - stopMinTime) / 2;
|
||||
mBckStopTimer = temp2 + cM_rndFX(temp);
|
||||
} else if (mBckPlayTimer == 0) {
|
||||
mBckPlayTimer = 1;
|
||||
@@ -754,13 +811,22 @@ void daStandItem_c::mode_drop() {
|
||||
bool daStandItem_c::_draw() {
|
||||
g_env_light.settingTevStruct(TEV_TYPE_ACTOR, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType(mpModel, &tevStr);
|
||||
#if VERSION == VERSION_DEMO
|
||||
if (mpBckAnm != NULL)
|
||||
mpBckAnm->entry(mpModel->getModelData());
|
||||
if (mItemNo == dItemNo_PINWHEEL_e)
|
||||
mDoExt_bckAnmRemove(mpModel->getModelData());
|
||||
#else
|
||||
if (mItemNo == dItemNo_PINWHEEL_e)
|
||||
mDoExt_bckAnmRemove(mpModel->getModelData());
|
||||
else if (mpBckAnm != NULL)
|
||||
mpBckAnm->entry(mpModel->getModelData());
|
||||
#endif
|
||||
|
||||
if (mItemNo == dItemNo_SHOP_GURU_STATUE_e)
|
||||
dDlst_texSpecmapST(&eyePos, &tevStr, mpModel->getModelData(), 1.0f);
|
||||
if (mItemNo == dItemNo_SHOP_GURU_STATUE_e) {
|
||||
f32 scale = 1.0f;
|
||||
dDlst_texSpecmapST(&eyePos, &tevStr, mpModel->getModelData(), scale);
|
||||
}
|
||||
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
if (mpCloth != NULL)
|
||||
|
||||
@@ -174,7 +174,7 @@ BOOL daDaiocta_Eye_c::_createHeap() {
|
||||
}
|
||||
|
||||
/* 000004E4-00000510 .text coHit_CB__FP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf */
|
||||
void coHit_CB(fopAc_ac_c* i_this, dCcD_GObjInf*, fopAc_ac_c* i_actor, dCcD_GObjInf*) {
|
||||
static void coHit_CB(fopAc_ac_c* i_this, dCcD_GObjInf*, fopAc_ac_c* i_actor, dCcD_GObjInf*) {
|
||||
if(i_actor) {
|
||||
((daDaiocta_Eye_c *)i_this)->_coHit(i_actor);
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ BOOL daFallRock_c::execute() {
|
||||
fopAcM_posMoveF(this, mStts.GetCCMoveP());
|
||||
field_0x29C.CrrPos(*dComIfG_Bgsp());
|
||||
|
||||
field_0x610 = fabs(speed.y) + (f64)field_0x610;
|
||||
field_0x610 = fabs(speed.y) + field_0x610;
|
||||
if (field_0x610 > m_falllen) {
|
||||
if (deleted == FALSE) {
|
||||
deleted = fopAcM_delete(this);
|
||||
|
||||
@@ -526,7 +526,7 @@ bool daFm_c::jntHitCreateHeap() {
|
||||
}
|
||||
|
||||
/* 00000A30-00000A6C .text pathMove_CB__FP4cXyzP4cXyzP4cXyzPv */
|
||||
BOOL pathMove_CB(cXyz* param_1, cXyz* param_2, cXyz* param_3, void* i_this) {
|
||||
static BOOL pathMove_CB(cXyz* param_1, cXyz* param_2, cXyz* param_3, void* i_this) {
|
||||
return ((daFm_c*)i_this)->_pathMove(param_1, param_2, param_3 );
|
||||
}
|
||||
|
||||
@@ -551,7 +551,7 @@ BOOL daFm_c::_pathMove(cXyz* param_1, cXyz* param_2, cXyz* param_3) {
|
||||
}
|
||||
|
||||
/* 00000D40-00000D6C .text searchNearOtherActor_CB__FPvPv */
|
||||
void* searchNearOtherActor_CB(void* param_1, void* param_2) {
|
||||
static void* searchNearOtherActor_CB(void* param_1, void* param_2) {
|
||||
return ((daFm_c*)param_2)->searchNearOtherActor((fopAc_ac_c*)param_1);
|
||||
}
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ daGy_Ctrl_HIO_c::daGy_Ctrl_HIO_c() {
|
||||
}
|
||||
|
||||
/* 000001B8-000001E4 .text searchNearActor_CB__FPvPv */
|
||||
void* searchNearActor_CB(void* arg0, void* arg1) {
|
||||
static void* searchNearActor_CB(void* arg0, void* arg1) {
|
||||
return ((daGy_Ctrl_c*)arg1)->searchNearActor((fopAc_ac_c*)arg0);
|
||||
}
|
||||
|
||||
|
||||
@@ -416,7 +416,9 @@ void daHmlif_c::lift_normal_move() {
|
||||
cLib_addCalcPos2(¤t.pos, m450, 1.0f, fopAcM_GetSpeedF(this));
|
||||
}
|
||||
|
||||
BOOL daHmlif_c::check_path_point(cXyz, cXyz, cXyz, s8) {
|
||||
BOOL daHmlif_c::check_path_point(cXyz, cXyz, s8) {
|
||||
// Unused stripped function
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 00001270-00001410 .text set_next_pnt__9daHmlif_cFv */
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
#include "d/d_magma.h"
|
||||
|
||||
daMagma_c::~daMagma_c() {
|
||||
dComIfG_resDelete(&mPhs, "Magma");
|
||||
dComIfG_resDeleteDemo(&mPhs, "Magma");
|
||||
}
|
||||
|
||||
cPhs_State daMagma_c::create() {
|
||||
fopAcM_ct(this, daMagma_c);
|
||||
fopAcM_ct_Retail(this, daMagma_c);
|
||||
|
||||
cPhs_State result = dComIfG_resLoad(&mPhs, "Magma");
|
||||
if (result != cPhs_COMPLEATE_e) {
|
||||
@@ -25,7 +25,7 @@ cPhs_State daMagma_c::create() {
|
||||
dComIfGp_getMagma()->newFloor(
|
||||
current.pos,
|
||||
scale,
|
||||
current.roomNo,
|
||||
fopAcM_GetRoomNo(this),
|
||||
getPathNo()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -62,68 +62,72 @@ static const f64 __THPAANScaleFactor[8] = {
|
||||
|
||||
#define THPROUNDUP(a, b) ((((s32)(a)) + ((s32)(b)-1L)) / ((s32)(b)))
|
||||
|
||||
daMP_Player_c daMP_ActivePlayer;
|
||||
static daMP_Player_c daMP_ActivePlayer;
|
||||
|
||||
BOOL daMP_ReadThreadCreated;
|
||||
OSMessageQueue daMP_FreeReadBufferQueue;
|
||||
OSMessageQueue daMP_ReadedBufferQueue;
|
||||
OSMessageQueue daMP_ReadedBufferQueue2;
|
||||
OSMessage daMP_FreeReadBufferMessage[10];
|
||||
OSMessage daMP_ReadedBufferMessage[10];
|
||||
OSMessage daMP_ReadedBufferMessage2[10];
|
||||
OSThread daMP_ReadThread;
|
||||
u8 daMP_ReadThreadStack[0x1000];
|
||||
static BOOL daMP_ReadThreadCreated;
|
||||
static OSMessageQueue daMP_FreeReadBufferQueue;
|
||||
static OSMessageQueue daMP_ReadedBufferQueue;
|
||||
static OSMessageQueue daMP_ReadedBufferQueue2;
|
||||
static OSMessage daMP_FreeReadBufferMessage[10];
|
||||
static OSMessage daMP_ReadedBufferMessage[10];
|
||||
static OSMessage daMP_ReadedBufferMessage2[10];
|
||||
static OSThread daMP_ReadThread;
|
||||
static u8 daMP_ReadThreadStack[0x1000];
|
||||
|
||||
BOOL daMP_VideoDecodeThreadCreated;
|
||||
OSThread daMP_VideoDecodeThread;
|
||||
u8 daMP_VideoDecodeThreadStack[0x64000];
|
||||
static BOOL daMP_VideoDecodeThreadCreated;
|
||||
static OSThread daMP_VideoDecodeThread;
|
||||
static u8 daMP_VideoDecodeThreadStack[0x64000];
|
||||
|
||||
OSMessageQueue daMP_FreeTextureSetQueue;
|
||||
OSMessageQueue daMP_DecodedTextureSetQueue;
|
||||
OSMessage daMP_FreeTextureSetMessage[3];
|
||||
OSMessage daMP_DecodedTextureSetMessage[3];
|
||||
static OSMessageQueue daMP_FreeTextureSetQueue;
|
||||
static OSMessageQueue daMP_DecodedTextureSetQueue;
|
||||
static OSMessage daMP_FreeTextureSetMessage[3];
|
||||
static OSMessage daMP_DecodedTextureSetMessage[3];
|
||||
|
||||
BOOL daMP_First;
|
||||
static BOOL daMP_First;
|
||||
|
||||
BOOL daMP_AudioDecodeThreadCreated;
|
||||
OSThread daMP_AudioDecodeThread;
|
||||
u8 daMP_AudioDecodeThreadStack[0x64000];
|
||||
OSMessageQueue daMP_FreeAudioBufferQueue;
|
||||
OSMessageQueue daMP_DecodedAudioBufferQueue;
|
||||
OSMessage daMP_FreeAudioBufferMessage[3];
|
||||
OSMessage daMP_DecodedAudioBufferMessage[3];
|
||||
static BOOL daMP_AudioDecodeThreadCreated;
|
||||
static OSThread daMP_AudioDecodeThread;
|
||||
static u8 daMP_AudioDecodeThreadStack[0x64000];
|
||||
static OSMessageQueue daMP_FreeAudioBufferQueue;
|
||||
static OSMessageQueue daMP_DecodedAudioBufferQueue;
|
||||
static OSMessage daMP_FreeAudioBufferMessage[3];
|
||||
static OSMessage daMP_DecodedAudioBufferMessage[3];
|
||||
|
||||
BOOL daMP_Initialized;
|
||||
u32 daMP_WorkBuffer[16] ALIGN_DECL(32);
|
||||
OSMessageQueue daMP_PrepareReadyQueue;
|
||||
OSMessageQueue daMP_UsedTextureSetQueue;
|
||||
OSMessage daMP_PrepareReadyMessage;
|
||||
OSMessage daMP_UsedTextureSetMessage[3];
|
||||
VIRetraceCallback daMP_OldVIPostCallback;
|
||||
static BOOL daMP_Initialized;
|
||||
static u32 daMP_WorkBuffer[16] ALIGN_DECL(32);
|
||||
static OSMessageQueue daMP_PrepareReadyQueue;
|
||||
static OSMessageQueue daMP_UsedTextureSetQueue;
|
||||
static OSMessage daMP_PrepareReadyMessage;
|
||||
static OSMessage daMP_UsedTextureSetMessage[3];
|
||||
static VIRetraceCallback daMP_OldVIPostCallback;
|
||||
|
||||
u32 daMP_SoundBufferIndex;
|
||||
u32 daMP_OldAIDCallback;
|
||||
static u32 daMP_SoundBufferIndex;
|
||||
static u32 daMP_OldAIDCallback;
|
||||
|
||||
void* daMP_LastAudioBuffer;
|
||||
void* daMP_CurAudioBuffer;
|
||||
s32 daMP_AudioSystem;
|
||||
s16 daMP_SoundBuffer[2][0x460] ALIGN_DECL(32);
|
||||
static void* daMP_LastAudioBuffer;
|
||||
static void* daMP_CurAudioBuffer;
|
||||
static s32 daMP_AudioSystem;
|
||||
static s16 daMP_SoundBuffer[2][0x460] ALIGN_DECL(32);
|
||||
|
||||
THPVideoInfo daMP_videoInfo;
|
||||
THPAudioInfo daMP_audioInfo;
|
||||
u32 daMP_DrawPosX;
|
||||
u32 daMP_DrawPosY;
|
||||
void* daMP_buffer;
|
||||
static THPVideoInfo daMP_videoInfo;
|
||||
static THPAudioInfo daMP_audioInfo;
|
||||
static u32 daMP_DrawPosX;
|
||||
static u32 daMP_DrawPosY;
|
||||
static void* daMP_buffer;
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
BOOL daMP_Fail_alloc;
|
||||
u16 daMP_backup_FrameRate;
|
||||
u8 daMP_backup_vfilter[7];
|
||||
#endif
|
||||
|
||||
daMP_Dlst_base_c daMP_c_Dlst_base;
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* 000000EC-00000584 .text THPAudioDecode */
|
||||
static u32 THPAudioDecode(s16* audioBuffer, u8* audioFrame, s32 flag) {
|
||||
@@ -2618,8 +2622,10 @@ static BOOL THPInit() {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
} // extern "C"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* 00003208-0000323C .text daMP_PopReadedBuffer__Fv */
|
||||
@@ -4150,8 +4156,7 @@ static u32 daMP_Get_MovieRestFrame() {
|
||||
}
|
||||
|
||||
/* 000062F0-00006370 .text daMP_Set_PercentMovieVolume__Ff */
|
||||
static u32 daMP_Set_PercentMovieVolume(f32 volume) {
|
||||
/* Nonmatching - regalloc */
|
||||
static void daMP_Set_PercentMovieVolume(f32 volume) {
|
||||
#if VERSION > VERSION_DEMO
|
||||
if (!daMP_Fail_alloc)
|
||||
#endif
|
||||
|
||||
@@ -37,7 +37,7 @@ static BOOL CheckCreateHeap(fopAc_ac_c*) {
|
||||
}
|
||||
|
||||
/* 0000044C-0000046C .text daNpc_Aj1_XyCheck_CB__FPvi */
|
||||
void daNpc_Aj1_XyCheck_CB(void*, int) {
|
||||
static void daNpc_Aj1_XyCheck_CB(void*, int) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
+1764
-185
File diff suppressed because it is too large
Load Diff
@@ -52,8 +52,9 @@ public:
|
||||
class daNpc_Bm1_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daNpc_Bm1_HIO_c();
|
||||
virtual ~daNpc_Bm1_HIO_c() {};
|
||||
void genMessage(JORMContext* ctx);
|
||||
virtual ~daNpc_Bm1_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext* ctx) {}
|
||||
|
||||
public:
|
||||
/* 0x04 */ s8 m4;
|
||||
@@ -687,8 +688,8 @@ bool daNpc_Bm1_c::createInit() {
|
||||
mEventIdTable[i] = dComIfGp_evmng_getEventIdx(l_evn_tbl[i]);
|
||||
}
|
||||
attention_info.flags = fopAc_Attn_LOCKON_TALK_e | fopAc_Attn_ACTION_SPEAK_e;
|
||||
attention_info.distances[1] = a_att_dis_TBL[mType][0];
|
||||
attention_info.distances[3] = a_att_dis_TBL[mType][1];
|
||||
attention_info.distances[fopAc_Attn_TYPE_TALK_e] = a_att_dis_TBL[mType][0];
|
||||
attention_info.distances[fopAc_Attn_TYPE_SPEAK_e] = a_att_dis_TBL[mType][1];
|
||||
gravity = -4.5;
|
||||
m82C = current.pos;
|
||||
s32 iVar5 = 0xFF;
|
||||
@@ -2940,6 +2941,7 @@ void daNpc_Bm1_c::privateCut(int arg0) {
|
||||
break;
|
||||
case 1:
|
||||
cut_init_360_TRN(arg0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
bool cVar3;
|
||||
|
||||
@@ -473,6 +473,7 @@ void daNpc_Km1_c::privateCut() {
|
||||
switch(field_0x7C9){
|
||||
case 0:
|
||||
event_actionInit(staffIdx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
bool bVar1;
|
||||
|
||||
@@ -900,13 +900,13 @@ BOOL daNpc_P1_c::privateCut() {
|
||||
switch (actIdx) {
|
||||
case 2:
|
||||
evn_setAnm_init(staffIdx);
|
||||
|
||||
break;
|
||||
case 3:
|
||||
mHeadAnm.swing_vertical_init(2, 0x1000, 0x800, 1);
|
||||
break;
|
||||
case 4:
|
||||
evn_talk_init(staffIdx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
switch (actIdx) {
|
||||
@@ -1043,8 +1043,8 @@ cPhs_State daNpc_P1_c::_create() {
|
||||
mKajiTimer = 300;
|
||||
|
||||
if (mType == TYPE_P1B_e) {
|
||||
attention_info.distances[1] = 0xAA;
|
||||
attention_info.distances[3] = 0xAA;
|
||||
attention_info.distances[fopAc_Attn_TYPE_TALK_e] = 0xAA;
|
||||
attention_info.distances[fopAc_Attn_TYPE_SPEAK_e] = 0xAA;
|
||||
u8 type = mParam;
|
||||
if (mParam == 1) {
|
||||
if (dComIfGp_getStartStagePoint() == 0 || dComIfGp_getStartStagePoint() == 2) {
|
||||
@@ -1064,8 +1064,8 @@ cPhs_State daNpc_P1_c::_create() {
|
||||
setAction(&daNpc_P1_c::normalAction, NULL, 0);
|
||||
}
|
||||
} else if (mType == TYPE_P1C_e) {
|
||||
attention_info.distances[1] = 0xAA;
|
||||
attention_info.distances[3] = 0xAA;
|
||||
attention_info.distances[fopAc_Attn_TYPE_TALK_e] = 0xAA;
|
||||
attention_info.distances[fopAc_Attn_TYPE_SPEAK_e] = 0xAA;
|
||||
if (!dComIfGs_isEventBit(0x820) && !dComIfGs_isEventBit(dSv_event_flag_c::UNK_0808)) {
|
||||
current.pos.x -= cM_scos(current.angle.y) * 40.0f;
|
||||
current.pos.z += cM_ssin(current.angle.y) * 40.0f;
|
||||
@@ -1076,8 +1076,8 @@ cPhs_State daNpc_P1_c::_create() {
|
||||
}
|
||||
mCyl.SetR(100.0f);
|
||||
} else {
|
||||
attention_info.distances[1] = 0xAB;
|
||||
attention_info.distances[3] = 0xAB;
|
||||
attention_info.distances[fopAc_Attn_TYPE_TALK_e] = 0xAB;
|
||||
attention_info.distances[fopAc_Attn_TYPE_SPEAK_e] = 0xAB;
|
||||
if (m671 != 0) {
|
||||
setAnm(9, 0.0f);
|
||||
mCyl.SetR(REG10_F(5) + 90.0f);
|
||||
|
||||
@@ -940,7 +940,7 @@ BOOL daNpc_Rsh1_c::CreateInit() {
|
||||
mActorAngle = current.angle;
|
||||
attention_info.flags = fopAc_Attn_LOCKON_TALK_e | fopAc_Attn_ACTION_SPEAK_e;
|
||||
attention_info.distances[fopAc_Attn_TYPE_BATTLE_e] = 173;
|
||||
attention_info.distances[8] = 173; // Bug?
|
||||
attention_info.distances[8] = 173; // !@bug: There is no distances[8], this overwrites the first byte of position.x
|
||||
gravity = -30.0f;
|
||||
|
||||
switch (m95E) {
|
||||
|
||||
@@ -12,7 +12,7 @@ daNpc_So_HIO_c::daNpc_So_HIO_c() {
|
||||
}
|
||||
|
||||
/* 000002A4-000002D0 .text searchEsa_CB__FPvPv */
|
||||
void searchEsa_CB(void*, void*) {
|
||||
static void searchEsa_CB(void*, void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ void daNpc_So_c::_nodeControl(J3DNode*, J3DModel*) {
|
||||
}
|
||||
|
||||
/* 000004B0-000004DC .text searchTagSo_CB__FPvPv */
|
||||
void searchTagSo_CB(void*, void*) {
|
||||
static void searchTagSo_CB(void*, void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ void daNpc_So_c::_searchTagSo(fopAc_ac_c*) {
|
||||
}
|
||||
|
||||
/* 0000054C-00000578 .text searchMinigameTagSo_CB__FPvPv */
|
||||
void searchMinigameTagSo_CB(void*, void*) {
|
||||
static void searchMinigameTagSo_CB(void*, void*) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -83,6 +83,7 @@ void daNpc_Tc_c::cutProc() {
|
||||
break;
|
||||
case 8:
|
||||
cutPayProc(staffIdx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,57 @@
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "f_op/f_op_kankyo_mng.h"
|
||||
|
||||
class daObj_Ikada_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daObj_Ikada_HIO_c();
|
||||
virtual ~daObj_Ikada_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext* ctx) {}
|
||||
|
||||
public:
|
||||
/* 0x04 */ u8 mbDebugDraw;
|
||||
/* 0x05 */ u8 m05;
|
||||
/* 0x06 */ u8 m06;
|
||||
/* 0x07 */ u8 mbNoRotAnim;
|
||||
/* 0x08 */ u8 m08;
|
||||
/* 0x09 */ u8 m09[0x0C - 0x09];
|
||||
/* 0x0C */ cXyz mFlagOffset;
|
||||
/* 0x18 */ f32 mFlagScale;
|
||||
/* 0x1C */ s16 m1C;
|
||||
/* 0x1E */ s16 m1E;
|
||||
/* 0x20 */ f32 m20;
|
||||
/* 0x24 */ s16 m24;
|
||||
/* 0x26 */ u8 m26[0x28 - 0x26];
|
||||
/* 0x28 */ f32 m28;
|
||||
/* 0x2C */ f32 mShipOffsY_Attention;
|
||||
/* 0x30 */ f32 mShipOffsY_Eye;
|
||||
/* 0x34 */ f32 mTerryWaveOffsZ;
|
||||
/* 0x38 */ f32 mTerryWaveOffsY;
|
||||
/* 0x3C */ f32 mTerryTrackOffsZ;
|
||||
/* 0x40 */ f32 mSvWaveOffsX;
|
||||
/* 0x44 */ f32 mSvTrackOffsX;
|
||||
/* 0x48 */ f32 mSvOffsX[4];
|
||||
/* 0x58 */ f32 mTrackIndTransY;
|
||||
/* 0x5C */ f32 mTrackIndScaleY;
|
||||
/* 0x60 */ f32 mSplashScaleMax;
|
||||
/* 0x64 */ f32 mSplashMaxScaleTimer;
|
||||
/* 0x68 */ f32 mWaveVelFade;
|
||||
/* 0x6C */ f32 mTrackVel;
|
||||
/* 0x70 */ f32 mWaveVelSpeed;
|
||||
/* 0x74 */ f32 mWaveVelOffs;
|
||||
/* 0x78 */ f32 mWaveMaxVelocity;
|
||||
/* 0x7C */ cXyz mWaveCollapsePos0;
|
||||
/* 0x88 */ cXyz mWaveCollapsePos1;
|
||||
/* 0x94 */ s16 m94;
|
||||
/* 0x96 */ s16 mPlayerStopDistance;
|
||||
/* 0x98 */ s16 m98;
|
||||
/* 0x9A */ s16 m9A;
|
||||
/* 0x9C */ f32 m9C;
|
||||
/* 0xA0 */ f32 mVelocityTargetTerry1;
|
||||
/* 0xA4 */ f32 mVelocityTargetTerry3;
|
||||
/* 0xA8 */ f32 mA8;
|
||||
}; // size = 0xAC
|
||||
|
||||
cXyz daObj_Ikada_c::m_rope_base_vec(0.0f, -10.0f, 0.0f);
|
||||
cXyz daObj_Ikada_c::m_crane_offset(200.0f, -340.0f, 0.0f);
|
||||
static daObj_Ikada_HIO_c l_HIO;
|
||||
@@ -94,12 +145,12 @@ daObj_Ikada_HIO_c::daObj_Ikada_HIO_c() {
|
||||
mWaveVelSpeed = 2.0f;
|
||||
mWaveMaxVelocity = 15.0f;
|
||||
mWaveVelOffs = 0.0f;
|
||||
mWaveCollapsePos[0].x = -80.0f;
|
||||
mWaveCollapsePos[0].y = -50.0f;
|
||||
mWaveCollapsePos[0].z = -150.0f;
|
||||
mWaveCollapsePos[1].x = -40.0f;
|
||||
mWaveCollapsePos[1].y = -100.0f;
|
||||
mWaveCollapsePos[1].z = -350.0f;
|
||||
mWaveCollapsePos0.x = -80.0f;
|
||||
mWaveCollapsePos0.y = -50.0f;
|
||||
mWaveCollapsePos0.z = -150.0f;
|
||||
mWaveCollapsePos1.x = -40.0f;
|
||||
mWaveCollapsePos1.y = -100.0f;
|
||||
mWaveCollapsePos1.z = -350.0f;
|
||||
m94 = 3000;
|
||||
mPlayerStopDistance = 6000;
|
||||
m98 = 1000;
|
||||
@@ -127,7 +178,7 @@ void daObj_Ikada_c::_nodeControl(J3DNode* node, J3DModel* model) {
|
||||
J3DJoint* joint = (J3DJoint*)node;
|
||||
s32 jntNo = joint->getJntNo();
|
||||
mDoMtx_stack_c::copy(model->getAnmMtx(jntNo));
|
||||
mDoMtx_stack_c::ZXYrotM(mJointRot[jntNo].x, mJointRot[jntNo].y, mJointRot[jntNo].z);
|
||||
mDoMtx_stack_c::ZXYrotM(mJointRot[jntNo]);
|
||||
if (jntNo == VSVSP_JNT_SV_CREAN_e) {
|
||||
mDoMtx_stack_c::XrotM(m115A + m115E * (REG12_S(5) + 5) * cM_ssin(m115C));
|
||||
}
|
||||
@@ -136,7 +187,7 @@ void daObj_Ikada_c::_nodeControl(J3DNode* node, J3DModel* model) {
|
||||
}
|
||||
|
||||
/* 00000458-00000494 .text pathMove_CB__FP4cXyzP4cXyzP4cXyzPv */
|
||||
BOOL pathMove_CB(cXyz* arg1, cXyz* arg2, cXyz* arg3, void* v_this) {
|
||||
static BOOL pathMove_CB(cXyz* arg1, cXyz* arg2, cXyz* arg3, void* v_this) {
|
||||
return ((daObj_Ikada_c*)v_this)->_pathMove(arg1, arg2, arg3);
|
||||
}
|
||||
|
||||
@@ -179,7 +230,7 @@ BOOL daObj_Ikada_c::_pathMove(cXyz* arg1, cXyz* arg2, cXyz* arg3) {
|
||||
}
|
||||
|
||||
/* 000007A0-000007C8 .text ride_CB__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
|
||||
void ride_CB(dBgW*, fopAc_ac_c* ac1, fopAc_ac_c* ac2) {
|
||||
static void ride_CB(dBgW*, fopAc_ac_c* ac1, fopAc_ac_c* ac2) {
|
||||
((daObj_Ikada_c*)ac1)->_ride(ac2);
|
||||
}
|
||||
|
||||
@@ -347,8 +398,7 @@ void daObj_Ikada_c::createWave() {
|
||||
JPABaseEmitter* emitter = mTrackCallBack.getEmitter();
|
||||
if (emitter != NULL) {
|
||||
JGeometry::TVec3<f32> scale = (Vec){1.0f, 1.0f, 1.0f};
|
||||
emitter->setGlobalDynamicsScale(scale);
|
||||
emitter->setGlobalParticleScale(scale);
|
||||
emitter->setGlobalScale(scale);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -391,14 +441,14 @@ void daObj_Ikada_c::setWave() {
|
||||
mWaveRCallback.setPitch(l_HIO.mWaveVelOffs + 1.0f);
|
||||
mWaveLCallback.setPitch(1.0f - l_HIO.mWaveVelOffs);
|
||||
|
||||
cXyz sp2C = l_HIO.mWaveCollapsePos[0];
|
||||
cXyz sp20 = l_HIO.mWaveCollapsePos[1];
|
||||
cXyz sp14 = l_HIO.mWaveCollapsePos[0];
|
||||
cXyz sp08 = l_HIO.mWaveCollapsePos[1];
|
||||
cXyz sp2C = l_HIO.mWaveCollapsePos0;
|
||||
cXyz sp20 = l_HIO.mWaveCollapsePos1;
|
||||
cXyz sp14 = sp2C;
|
||||
cXyz sp08 = sp20;
|
||||
|
||||
mWaveRCallback.setAnchor(&sp2C, &sp20);
|
||||
sp14.x = (f32)(f64)sp14.x * -1.0f;
|
||||
sp08.x = (f32)(f64)sp08.x * -1.0f;
|
||||
sp14.x *= -1.0f;
|
||||
sp08.x *= -1.0f;
|
||||
mWaveLCallback.setAnchor(&sp14, &sp08);
|
||||
|
||||
mWaveRCallback.setMaxDisSpeed(l_HIO.mWaveVelSpeed);
|
||||
@@ -464,7 +514,7 @@ void daObj_Ikada_c::setRopePos() {
|
||||
spBC = *pcVar6;
|
||||
|
||||
mDoMtx_stack_c::copy(mpModel->getAnmMtx(VSVSP_JNT_SV_CREAN_e));
|
||||
mDoMtx_stack_c::transM(m_crane_offset.x, m_crane_offset.y, m_crane_offset.z);
|
||||
mDoMtx_stack_c::transM(m_crane_offset);
|
||||
mDoMtx_stack_c::multVecZero(pcVar6);
|
||||
|
||||
if (mCurMode == 1) {
|
||||
@@ -514,7 +564,7 @@ void daObj_Ikada_c::setRopePos() {
|
||||
iVar4 = 0;
|
||||
} else {
|
||||
mDoMtx_stack_c::copy(mpModel->getAnmMtx(VSVSP_JNT_SV_CREAN_e));
|
||||
mDoMtx_stack_c::transM(m_crane_offset.x, m_crane_offset.y, m_crane_offset.z);
|
||||
mDoMtx_stack_c::transM(m_crane_offset);
|
||||
cMtx_copy(mDoMtx_stack_c::get(), ropeEndMtx);
|
||||
spA4.set(pcVar7->x - ropeEndMtx[0][3], pcVar7->y - ropeEndMtx[1][3], pcVar7->z - ropeEndMtx[2][3]);
|
||||
iVar3 = 0;
|
||||
@@ -632,7 +682,7 @@ void daObj_Ikada_c::setMtx() {
|
||||
|
||||
mDoMtx_stack_c::copy(mpModel->getBaseTRMtx());
|
||||
mDoMtx_stack_c::multVec(&sp24, &mFirePos);
|
||||
mDoMtx_stack_c::transM(sp24.x, sp24.y, sp24.z);
|
||||
mDoMtx_stack_c::transM(sp24);
|
||||
mDoMtx_stack_c::YrotM(mLightRotY);
|
||||
mDoMtx_stack_c::XrotM(mLightRotX);
|
||||
mDoMtx_stack_c::scaleM(mLightPower, mLightPower, mLightPower);
|
||||
@@ -1203,22 +1253,25 @@ bool daObj_Ikada_c::_execute() {
|
||||
return false;
|
||||
}
|
||||
|
||||
const u32 unused_5617[] = {
|
||||
0xFFFF0080,
|
||||
0xFF80,
|
||||
0xFF80,
|
||||
0xFF000080,
|
||||
0xFF000080,
|
||||
0xFF80,
|
||||
0xFF000080,
|
||||
0xFF000080,
|
||||
0xFF000080,
|
||||
};
|
||||
|
||||
/* 00003CA0-00003CD4 .text debugDraw__13daObj_Ikada_cFv */
|
||||
void daObj_Ikada_c::debugDraw() {
|
||||
cXyz sp08 = current.pos;
|
||||
sp08.y += 20.0f;
|
||||
// Unused colors, needed for the .rodata section to match.
|
||||
GXColor unused_5617 = {0xFF, 0xFF, 0x00, 0x80};
|
||||
GXColor unused_5621 = {0x00, 0x00, 0xFF, 0x80};
|
||||
GXColor unused_5623 = {0x00, 0x00, 0xFF, 0x80};
|
||||
GXColor unused_5625 = {0xFF, 0x00, 0x00, 0x80};
|
||||
GXColor unused_5629 = {0xFF, 0x00, 0x00, 0x80};
|
||||
GXColor unused_5631 = {0x00, 0x00, 0xFF, 0x80};
|
||||
GXColor unused_5636 = {0xFF, 0x00, 0x00, 0x80};
|
||||
GXColor unused_5640 = {0xFF, 0x00, 0x00, 0x80};
|
||||
GXColor unused_5646 = {0xFF, 0x00, 0x00, 0x80};
|
||||
// dDbVw_drawSphereOpa__FR4cXyzfRC8_GXColorUc
|
||||
// dDbVw_drawCircleOpa__FR4cXyzfRC8_GXColorUcUc
|
||||
if (isWave()) {
|
||||
// ?
|
||||
}
|
||||
}
|
||||
|
||||
/* 00003CD4-00003EE0 .text _draw__13daObj_Ikada_cFv */
|
||||
@@ -1246,7 +1299,7 @@ bool daObj_Ikada_c::_draw() {
|
||||
J3DModelData* modelData = mpModel->getModelData();
|
||||
mBckAnm.entry(modelData);
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
mpModel->getModelData()->getJointNodePointer(VSVSP_JNT_SV_SHIP_ROOT_e)->setMtxCalc(NULL);
|
||||
mBckAnm.remove(mpModel->getModelData());
|
||||
} else {
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
}
|
||||
@@ -1366,10 +1419,10 @@ void daObj_Ikada_c::createInit() {
|
||||
cXyz(0.0f, 0.0f, 0.0f),
|
||||
cXyz(100.0f, 530.0f, 0.0f),
|
||||
};
|
||||
static const u32 params[] = {4, 4, 4, 4, 0x2000000};
|
||||
static const u32 param[] = {4, 4, 4, 4, 0x2000000};
|
||||
static const f32 flag_scale[] = {0.2f, 0.0f, 0.0f, 0.0f, 0.12f};
|
||||
|
||||
mFlagPcId = fopAcM_create(fpcNm_MAJUU_FLAG_e, params[mType], ¤t.pos, tevStr.mRoomNo, ¤t.angle);
|
||||
mFlagPcId = fopAcM_create(fpcNm_MAJUU_FLAG_e, param[mType], ¤t.pos, tevStr.mRoomNo, ¤t.angle);
|
||||
mFlagOffset = flag_offset[mType];
|
||||
mFlagScale = flag_scale[mType];
|
||||
}
|
||||
@@ -1385,7 +1438,7 @@ void daObj_Ikada_c::createInit() {
|
||||
cXyz* pcVar7 = &m07DC[m07D8 - 1];
|
||||
|
||||
mDoMtx_stack_c::copy(mpModel->getAnmMtx(VSVSP_JNT_SV_CREAN_e));
|
||||
mDoMtx_stack_c::transM(m_crane_offset.x, m_crane_offset.y, m_crane_offset.z);
|
||||
mDoMtx_stack_c::transM(m_crane_offset);
|
||||
mDoMtx_stack_c::multVecZero(pcVar8);
|
||||
|
||||
cXyz sp80(0.0f, -1.0f, 0.0f);
|
||||
|
||||
@@ -209,7 +209,7 @@ void daObj_MjDoor_c::smoke_set() {
|
||||
dComIfGp_particle_setToon(dPa_name::ID_IT_ST_MJMON_SMOKE00,
|
||||
&mPos, &mAngle, NULL, 0xB9, &mSmoke, fopAcM_GetRoomNo(this));
|
||||
if (mSmoke.getEmitter() != NULL) {
|
||||
mSmoke.getEmitter()->mGlobalPrmColor.a = 200;
|
||||
mSmoke.getEmitter()->setGlobalAlpha(200);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -185,7 +185,7 @@ BOOL daObjMkie::Act_c::Create() {
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
if (daObj::PrmAbstract<Prm_e>(this, PRM_FLAG_W, PRM_FLAG_S) != 0) {
|
||||
actor_status &= ~0x3F;
|
||||
fopAcM_ClearStatusMap(this);
|
||||
gbaName = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -419,6 +419,7 @@ bool daObjVgnfd_c::_execute() {
|
||||
dComIfGp_getVibration().StartShock(8, 27, cXyz(0.0f, 1.0f, 0.0f));
|
||||
mCurModel = 2;
|
||||
fopAcM_seStartCurrent(this, JA_SE_OBJ_B_BOSS_DR_BRK_3, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -226,7 +226,7 @@ bool daObj_Warpt_c::createBodyHeap() {
|
||||
}
|
||||
|
||||
/* 00000620-00000648 .text ride_CB__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
|
||||
void ride_CB(dBgW*, fopAc_ac_c* a_this, fopAc_ac_c* arg2) {
|
||||
static void ride_CB(dBgW*, fopAc_ac_c* a_this, fopAc_ac_c* arg2) {
|
||||
((daObj_Warpt_c*)a_this)->_ride(arg2);
|
||||
}
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ void daOship_c::_nodeControl(J3DNode* i_nodeP, J3DModel* i_modelP) {
|
||||
}
|
||||
|
||||
/* 0000044C-00000488 .text pathMove_CB__FP4cXyzP4cXyzP4cXyzPv */
|
||||
int pathMove_CB(cXyz* param_1, cXyz* param_2, cXyz* param_3, void* i_this) {
|
||||
static int pathMove_CB(cXyz* param_1, cXyz* param_2, cXyz* param_3, void* i_this) {
|
||||
return ((daOship_c *)i_this)->_pathMove(param_1, param_2, param_3);
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ daTag_Ba1_HIO_c::daTag_Ba1_HIO_c() {
|
||||
}
|
||||
|
||||
/* 00000144-00000164 .text daTag_Ba1_XyCheck_cB__FPvi */
|
||||
void daTag_Ba1_XyCheck_cB(void*, int) {
|
||||
static void daTag_Ba1_XyCheck_cB(void*, int) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ void daTag_Ba1_c::XyCheck_cB(int) {
|
||||
}
|
||||
|
||||
/* 00000184-000001A4 .text daTag_Ba1_XyEvent_cB__FPvi */
|
||||
void daTag_Ba1_XyEvent_cB(void*, int) {
|
||||
static void daTag_Ba1_XyEvent_cB(void*, int) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -253,6 +253,7 @@ void daTagPhoto_c::privateCut() {
|
||||
switch(mActIdx) {
|
||||
case 0:
|
||||
eventMesSetInit(staffIdx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2701,6 +2701,7 @@ static void Tn_move(tn_class* i_this) {
|
||||
break;
|
||||
case ACTION_S_DEMO:
|
||||
s_demo(i_this);
|
||||
break;
|
||||
}
|
||||
#if VERSION == VERSION_DEMO
|
||||
if (r29 != 0) {
|
||||
|
||||
@@ -357,7 +357,7 @@ void dCloth_packet_c::setMtx(Mtx mtx) {
|
||||
|
||||
/* 800642FC-80064330 .text cloth_draw__15dCloth_packet_cFv */
|
||||
void dCloth_packet_c::cloth_draw() {
|
||||
j3dSys.getDrawBuffer(OPA_BUFFER)->entryImm(this, 0);
|
||||
j3dSys.getDrawBuffer(J3DSysDrawBuf_Opa)->entryImm(this, 0);
|
||||
}
|
||||
|
||||
/* 80064330-8006441C .text TexObjInit__15dCloth_packet_cFP7ResTIMG */
|
||||
|
||||
@@ -457,6 +457,7 @@ void daTitle_proc_c::daTitle_Kirakira_Sound_flag_on() {
|
||||
}
|
||||
#endif
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
/* 80056CCC-80056DE0 .text daiItemNodeCallBack__13daStandItem_cFP7J3DNodei */
|
||||
BOOL daStandItem_c::daiItemNodeCallBack(J3DNode* node, int calcTiming) {
|
||||
if (calcTiming == J3DNodeCBCalcTiming_In) {
|
||||
@@ -485,6 +486,7 @@ BOOL daStandItem_c::daiItemNodeCallBack(J3DNode* node, int calcTiming) {
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
u8 daNpc_Ji1_c::game_life_point;
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ static void dKankyo_DayProc() {
|
||||
dComIfGs_offEventBit(dSv_event_flag_c::UNK_2680);
|
||||
|
||||
#if VERSION > VERSION_JPN
|
||||
if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_2A20))
|
||||
if (dComIfGs_isEventBit(dSv_event_flag_c::GRANDMA_HEALED))
|
||||
#endif
|
||||
{
|
||||
clamped = cLib_maxLimit(dComIfGs_getEventReg(dSv_event_flag_c::UNK_A60F) + 1, 3);
|
||||
|
||||
+2116
-266
File diff suppressed because it is too large
Load Diff
+13
-13
@@ -95,22 +95,22 @@ void dMenu_Option_c::screenSet() {
|
||||
fopMsgM_messageGet(mDE8[3], 0x1D6);
|
||||
#endif
|
||||
|
||||
((J2DTextBox*)m008.pane)->setFont(mD2C);
|
||||
((J2DTextBox*)m008.pane)->setFont(mpFont);
|
||||
#if VERSION > VERSION_JPN
|
||||
((J2DTextBox*)m008.pane)->setString(mD48);
|
||||
#endif
|
||||
((J2DTextBox*)m740[0].pane)->setFont(mD2C);
|
||||
((J2DTextBox*)m740[1].pane)->setFont(mD30);
|
||||
((J2DTextBox*)m740[0].pane)->setFont(mpFont);
|
||||
((J2DTextBox*)m740[1].pane)->setFont(mpRubyFont);
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
((J2DTextBox*)m9A8[i].pane)->setFont(mD2C);
|
||||
((J2DTextBox*)m9A8[i].pane)->setFont(mpFont);
|
||||
#if VERSION <= VERSION_JPN
|
||||
((J2DTextBox*)mA18_jpn[i].pane)->setFont(mD2C);
|
||||
((J2DTextBox*)mA18_jpn[i].pane)->setFont(mpFont);
|
||||
#endif
|
||||
#if VERSION > VERSION_JPN
|
||||
((J2DTextBox*)m9A8[i].pane)->setString(mD5C[i]);
|
||||
#endif
|
||||
((J2DTextBox*)mAC0[i].pane)->setFont(mD2C);
|
||||
((J2DTextBox*)mAC0[i].pane)->setFont(mpFont);
|
||||
#if VERSION > VERSION_JPN
|
||||
((J2DTextBox*)mAC0[i].pane)->setString(mD84[i]);
|
||||
changeScaleCenter(&m9A8[i], mD5C[i]);
|
||||
@@ -119,7 +119,7 @@ void dMenu_Option_c::screenSet() {
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
((J2DTextBox*)mA18[i].pane)->setFont(mD2C);
|
||||
((J2DTextBox*)mA18[i].pane)->setFont(mpFont);
|
||||
#if VERSION > VERSION_JPN
|
||||
((J2DTextBox*)mA18[i].pane)->setString(mDAC[i]);
|
||||
changeScaleCenter(&mA18[i], mDAC[i]);
|
||||
@@ -130,7 +130,7 @@ void dMenu_Option_c::screenSet() {
|
||||
#if VERSION > VERSION_JPN
|
||||
if (i == 1) continue;
|
||||
#endif
|
||||
((J2DTextBox*)m8C8[i].pane)->setFont(mD2C);
|
||||
((J2DTextBox*)m8C8[i].pane)->setFont(mpFont);
|
||||
#if VERSION > VERSION_JPN
|
||||
((J2DTextBox*)m8C8[i].pane)->setString(mDE8[i]);
|
||||
changeScaleRight(&m8C8[i], mDE8[i]);
|
||||
@@ -666,8 +666,8 @@ void dMenu_Option_c::noteSet() {
|
||||
msgDataProc.dataInit();
|
||||
msgDataProc.setBmgData((char*)mesg);
|
||||
msgDataProc.setOutMessage(mD38, mD3C, mD40, mD44);
|
||||
msgDataProc.setFont(mD2C);
|
||||
msgDataProc.setRubyFont(mD30);
|
||||
msgDataProc.setFont(mpFont);
|
||||
msgDataProc.setRubyFont(mpRubyFont);
|
||||
msgDataProc.setCharSpace(((J2DTextBox*)m740[0].pane)->getCharSpace());
|
||||
msgDataProc.setRubyCharSpace(((J2DTextBox*)m740[1].pane)->getCharSpace());
|
||||
msgDataProc.setLineSpace(((J2DTextBox*)m740[0].pane)->getLineSpace());
|
||||
@@ -763,16 +763,16 @@ f32 dMenu_Option_c::stringlength(fopMsgM_pane_class* r30, char* r31) {
|
||||
J2DTextBox::TFontSize sp18;
|
||||
((J2DTextBox*)r30->pane)->getFontSize(sp18);
|
||||
f32 f31 = ((J2DTextBox*)r30->pane)->getCharSpace();
|
||||
f30 = sp18.mSizeX / mD2C->getCellWidth();
|
||||
f30 = sp18.mSizeX / mpFont->getCellWidth();
|
||||
while (*r31 != 0) {
|
||||
if ((u8)*r31 == 0x1A) {
|
||||
r31++;
|
||||
r31 += (*r31 - 1);
|
||||
} else {
|
||||
int r26 = (u8)*r31++;
|
||||
int r28 = mD2C->getWidth(r26);
|
||||
int r28 = mpFont->getWidth(r26);
|
||||
if (!r27) {
|
||||
f29 = f30 * (r28 + mD2C->getOffset(r26));
|
||||
f29 = f30 * (r28 + mpFont->getOffset(r26));
|
||||
r27 = true;
|
||||
} else{
|
||||
f29 += f31 + r28 * f30;
|
||||
|
||||
+260
-426
@@ -1,42 +1,34 @@
|
||||
#include "dolphin/gx/GXAttr.h"
|
||||
#include "dolphin/gx/GX.h"
|
||||
|
||||
static inline void SETVCDATTR(GXAttr name, GXAttrType type) {
|
||||
switch (name) {
|
||||
static inline void SETVCDATTR(GXAttr attr, GXAttrType type) {
|
||||
switch (attr) {
|
||||
case GX_VA_PNMTXIDX:
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_POSMTXIDX_ST, GX_CP_VCD_LO_POSMTXIDX_END);
|
||||
break;
|
||||
case GX_VA_TEX0MTXIDX:
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX0MTXIDX_ST,
|
||||
GX_CP_VCD_LO_TEX0MTXIDX_END);
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX0MTXIDX_ST, GX_CP_VCD_LO_TEX0MTXIDX_END);
|
||||
break;
|
||||
case GX_VA_TEX1MTXIDX:
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX1MTXIDX_ST,
|
||||
GX_CP_VCD_LO_TEX1MTXIDX_END);
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX1MTXIDX_ST, GX_CP_VCD_LO_TEX1MTXIDX_END);
|
||||
break;
|
||||
case GX_VA_TEX2MTXIDX:
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX2MTXIDX_ST,
|
||||
GX_CP_VCD_LO_TEX2MTXIDX_END);
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX2MTXIDX_ST, GX_CP_VCD_LO_TEX2MTXIDX_END);
|
||||
break;
|
||||
case GX_VA_TEX3MTXIDX:
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX3MTXIDX_ST,
|
||||
GX_CP_VCD_LO_TEX3MTXIDX_END);
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX3MTXIDX_ST, GX_CP_VCD_LO_TEX3MTXIDX_END);
|
||||
break;
|
||||
case GX_VA_TEX4MTXIDX:
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX4MTXIDX_ST,
|
||||
GX_CP_VCD_LO_TEX4MTXIDX_END);
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX4MTXIDX_ST, GX_CP_VCD_LO_TEX4MTXIDX_END);
|
||||
break;
|
||||
case GX_VA_TEX5MTXIDX:
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX5MTXIDX_ST,
|
||||
GX_CP_VCD_LO_TEX5MTXIDX_END);
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX5MTXIDX_ST, GX_CP_VCD_LO_TEX5MTXIDX_END);
|
||||
break;
|
||||
case GX_VA_TEX6MTXIDX:
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX6MTXIDX_ST,
|
||||
GX_CP_VCD_LO_TEX6MTXIDX_END);
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX6MTXIDX_ST, GX_CP_VCD_LO_TEX6MTXIDX_END);
|
||||
break;
|
||||
case GX_VA_TEX7MTXIDX:
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX7MTXIDX_ST,
|
||||
GX_CP_VCD_LO_TEX7MTXIDX_END);
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_TEX7MTXIDX_ST, GX_CP_VCD_LO_TEX7MTXIDX_END);
|
||||
break;
|
||||
case GX_VA_POS:
|
||||
GX_SET_REG(gx->vcdLo, type, GX_CP_VCD_LO_POS_ST, GX_CP_VCD_LO_POS_END);
|
||||
@@ -92,6 +84,29 @@ static inline void SETVCDATTR(GXAttr name, GXAttrType type) {
|
||||
}
|
||||
}
|
||||
|
||||
static void __GXXfVtxSpecs(void) {
|
||||
u32 nCols = 0;
|
||||
u32 nNrm;
|
||||
u32 nTex;
|
||||
u32 reg;
|
||||
|
||||
nCols = GET_REG_FIELD(gx->vcdLo, 2, 13) ? 1 : 0;
|
||||
nCols += GET_REG_FIELD(gx->vcdLo, 2, 15) ? 1 : 0;
|
||||
nNrm = gx->hasBiNrms ? 2 : gx->hasNrms ? 1 : 0;
|
||||
nTex = 0;
|
||||
nTex += GET_REG_FIELD(gx->vcdHi, 2, 0) ? 1 : 0;
|
||||
nTex += GET_REG_FIELD(gx->vcdHi, 2, 2) ? 1 : 0;
|
||||
nTex += GET_REG_FIELD(gx->vcdHi, 2, 4) ? 1 : 0;
|
||||
nTex += GET_REG_FIELD(gx->vcdHi, 2, 6) ? 1 : 0;
|
||||
nTex += GET_REG_FIELD(gx->vcdHi, 2, 8) ? 1 : 0;
|
||||
nTex += GET_REG_FIELD(gx->vcdHi, 2, 10) ? 1 : 0;
|
||||
nTex += GET_REG_FIELD(gx->vcdHi, 2, 12) ? 1 : 0;
|
||||
nTex += GET_REG_FIELD(gx->vcdHi, 2, 14) ? 1 : 0;
|
||||
reg = (nCols) | (nNrm << 2) | (nTex << 4);
|
||||
GX_WRITE_XF_REG(8, reg);
|
||||
gx->bpSentNot = GX_TRUE;
|
||||
}
|
||||
|
||||
void GXSetVtxDesc(GXAttr name, GXAttrType type) {
|
||||
SETVCDATTR(name, type);
|
||||
|
||||
@@ -120,25 +135,6 @@ void GXSetVtxDescv(GXVtxDescList* list) {
|
||||
gx->dirtyState |= GX_DIRTY_VCD;
|
||||
}
|
||||
|
||||
static void __GXXfVtxSpecs(void) {
|
||||
u32 normCount, colorCount, texCount;
|
||||
|
||||
normCount = gx->hasBiNrms ? 2 : (gx->hasNrms ? 1 : 0);
|
||||
|
||||
// Both fields in one access
|
||||
colorCount = 33 - __cntlzw((gx->vcdLo & (0xf << 0xd)) >> 0xd);
|
||||
colorCount /= 2; // equivalent to /=2 and >>= 1
|
||||
|
||||
// All 16 assigned bits in VCD_Hi
|
||||
texCount = 33 - __cntlzw((gx->vcdHi & (0xffff << 0)) >> 0);
|
||||
texCount /= 2; // equivalent to /=2 and >>= 1
|
||||
|
||||
GX_XF_LOAD_REG(GX_XF_REG_INVERTEXSPEC, (colorCount) | (normCount << 2) | (texCount << 4));
|
||||
gx->bpSentNot = GX_TRUE;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void __GXSetVCD(void) {
|
||||
GX_CP_LOAD_REG(GX_CP_REG_VCD_LO, gx->vcdLo);
|
||||
GX_CP_LOAD_REG(GX_CP_REG_VCD_HI, gx->vcdHi);
|
||||
@@ -195,105 +191,45 @@ void __GXCalculateVLim(void) {
|
||||
gx->vLim = vlim;
|
||||
}
|
||||
|
||||
void GXGetVtxDesc(int param_0, GXAttrType* param_1) {
|
||||
int local_38;
|
||||
void GXGetVtxDesc(GXAttr attr, GXAttrType* type) {
|
||||
u32 cpType;
|
||||
|
||||
switch (param_0) {
|
||||
case 0:
|
||||
local_38 = gx->vcdLo & 1;
|
||||
break;
|
||||
case 1:
|
||||
local_38 = (gx->vcdLo & 2) >> 1;
|
||||
break;
|
||||
case 2:
|
||||
local_38 = (gx->vcdLo & 4) >> 2;
|
||||
break;
|
||||
case 3:
|
||||
local_38 = (gx->vcdLo & 8) >> 3;
|
||||
break;
|
||||
case 4:
|
||||
local_38 = (gx->vcdLo & 0x10) >> 4;
|
||||
break;
|
||||
case 5:
|
||||
local_38 = (gx->vcdLo & 0x20) >> 5;
|
||||
break;
|
||||
case 6:
|
||||
local_38 = (gx->vcdLo & 0x40) >> 6;
|
||||
break;
|
||||
case 7:
|
||||
local_38 = (gx->vcdLo & 0x80) >> 7;
|
||||
break;
|
||||
case 8:
|
||||
local_38 = (gx->vcdLo & 0x100) >> 8;
|
||||
break;
|
||||
case 9:
|
||||
local_38 = (gx->vcdLo & 0x600) >> 9;
|
||||
break;
|
||||
case 10:
|
||||
if (gx->hasNrms != 0) {
|
||||
local_38 = (gx->vcdLo & 0x1800) >> 11;
|
||||
} else {
|
||||
local_38 = 0;
|
||||
}
|
||||
break;
|
||||
case 0x19:
|
||||
if (gx->hasBiNrms != 0) {
|
||||
local_38 = (gx->vcdLo & 0x1800) >> 11;
|
||||
} else {
|
||||
local_38 = 0;
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
local_38 = (gx->vcdLo & 0x6000) >> 13;
|
||||
break;
|
||||
case 12:
|
||||
local_38 = (gx->vcdLo & 0x18000) >> 15;
|
||||
break;
|
||||
case 13:
|
||||
local_38 = (gx->vcdHi & 3);
|
||||
break;
|
||||
case 14:
|
||||
local_38 = (gx->vcdHi & 0xC) >> 2;
|
||||
break;
|
||||
case 15:
|
||||
local_38 = (gx->vcdHi & 0x30) >> 4;
|
||||
break;
|
||||
case 16:
|
||||
local_38 = (gx->vcdHi & 0xC0) >> 6;
|
||||
break;
|
||||
case 17:
|
||||
local_38 = (gx->vcdHi & 0x300) >> 8;
|
||||
break;
|
||||
case 18:
|
||||
local_38 = (gx->vcdHi & 0xC00) >> 10;
|
||||
break;
|
||||
case 19:
|
||||
local_38 = (gx->vcdHi & 0x3000) >> 12;
|
||||
break;
|
||||
case 20:
|
||||
local_38 = (gx->vcdHi & 0xC000) >> 14;
|
||||
break;
|
||||
default:
|
||||
local_38 = 0;
|
||||
break;
|
||||
switch (attr) {
|
||||
case GX_VA_PNMTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 0); break;
|
||||
case GX_VA_TEX0MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 1); break;
|
||||
case GX_VA_TEX1MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 2); break;
|
||||
case GX_VA_TEX2MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 3); break;
|
||||
case GX_VA_TEX3MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 4); break;
|
||||
case GX_VA_TEX4MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 5); break;
|
||||
case GX_VA_TEX5MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 6); break;
|
||||
case GX_VA_TEX6MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 7); break;
|
||||
case GX_VA_TEX7MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 8); break;
|
||||
case GX_VA_POS: cpType = GET_REG_FIELD(gx->vcdLo, 2, 9); break;
|
||||
case GX_VA_NRM: cpType = gx->hasNrms ? GET_REG_FIELD(gx->vcdLo, 2, 11) : 0; break;
|
||||
case GX_VA_NBT: cpType = gx->hasBiNrms ? GET_REG_FIELD(gx->vcdLo, 2, 11) : 0; break;
|
||||
case GX_VA_CLR0: cpType = GET_REG_FIELD(gx->vcdLo, 2, 13); break;
|
||||
case GX_VA_CLR1: cpType = GET_REG_FIELD(gx->vcdLo, 2, 15); break;
|
||||
case GX_VA_TEX0: cpType = GET_REG_FIELD(gx->vcdHi, 2, 0); break;
|
||||
case GX_VA_TEX1: cpType = GET_REG_FIELD(gx->vcdHi, 2, 2); break;
|
||||
case GX_VA_TEX2: cpType = GET_REG_FIELD(gx->vcdHi, 2, 4); break;
|
||||
case GX_VA_TEX3: cpType = GET_REG_FIELD(gx->vcdHi, 2, 6); break;
|
||||
case GX_VA_TEX4: cpType = GET_REG_FIELD(gx->vcdHi, 2, 8); break;
|
||||
case GX_VA_TEX5: cpType = GET_REG_FIELD(gx->vcdHi, 2, 10); break;
|
||||
case GX_VA_TEX6: cpType = GET_REG_FIELD(gx->vcdHi, 2, 12); break;
|
||||
case GX_VA_TEX7: cpType = GET_REG_FIELD(gx->vcdHi, 2, 14); break;
|
||||
default: cpType = 0; break;
|
||||
}
|
||||
|
||||
*param_1 = local_38;
|
||||
*type = cpType;
|
||||
}
|
||||
|
||||
void GXGetVtxDescv(GXVtxDescList* attrPtr) {
|
||||
int i;
|
||||
void GXGetVtxDescv(GXVtxDescList* vcd) {
|
||||
GXAttr attr;
|
||||
|
||||
for (i = 0; i <= 0x14; i++) {
|
||||
attrPtr[i].attr = (GXAttr)i;
|
||||
GXGetVtxDesc(i, &attrPtr[i].type);
|
||||
for (attr = 0; attr < GX_VA_MAX_ATTR; attr++) {
|
||||
vcd[attr].attr = attr;
|
||||
GXGetVtxDesc(attr, &vcd[attr].type);
|
||||
}
|
||||
|
||||
attrPtr[i].attr = (GXAttr)0x19;
|
||||
GXGetVtxDesc(0x19, &attrPtr[i].type);
|
||||
|
||||
i++;
|
||||
attrPtr[i].attr = (GXAttr)0xFF;
|
||||
vcd[attr].attr = 0xFF;
|
||||
}
|
||||
|
||||
void GXClearVtxDesc(void) {
|
||||
@@ -329,13 +265,11 @@ static inline void SETVAT(u32* vatA, u32* vatB, u32* vatC, GXAttr attr, GXCompCn
|
||||
break;
|
||||
case GX_VA_CLR0:
|
||||
GX_SET_REG(*vatA, compCnt, GX_CP_VAT_GRP0_CLRDIFF_CNT_ST, GX_CP_VAT_GRP0_CLRDIFF_CNT_END);
|
||||
GX_SET_REG(*vatA, compType, GX_CP_VAT_GRP0_CLRDIFF_TYPE_ST,
|
||||
GX_CP_VAT_GRP0_CLRDIFF_TYPE_END);
|
||||
GX_SET_REG(*vatA, compType, GX_CP_VAT_GRP0_CLRDIFF_TYPE_ST, GX_CP_VAT_GRP0_CLRDIFF_TYPE_END);
|
||||
break;
|
||||
case GX_VA_CLR1:
|
||||
GX_SET_REG(*vatA, compCnt, GX_CP_VAT_GRP0_CLRSPEC_CNT_ST, GX_CP_VAT_GRP0_CLRSPEC_CNT_END);
|
||||
GX_SET_REG(*vatA, compType, GX_CP_VAT_GRP0_CLRSPEC_TYPE_ST,
|
||||
GX_CP_VAT_GRP0_CLRSPEC_TYPE_END);
|
||||
GX_SET_REG(*vatA, compType, GX_CP_VAT_GRP0_CLRSPEC_TYPE_ST, GX_CP_VAT_GRP0_CLRSPEC_TYPE_END);
|
||||
break;
|
||||
case GX_VA_TEX0:
|
||||
GX_SET_REG(*vatA, compCnt, GX_CP_VAT_GRP0_TXC0_CNT_ST, GX_CP_VAT_GRP0_TXC0_CNT_END);
|
||||
@@ -409,343 +343,243 @@ void GXSetVtxAttrFmtv(GXVtxFmt format, GXVtxAttrFmtList* list) {
|
||||
}
|
||||
|
||||
void __GXSetVAT(void) {
|
||||
u32 i = 0;
|
||||
u32 dirtyVAT = gx->dirtyVAT;
|
||||
do {
|
||||
if (dirtyVAT & (1)) {
|
||||
GX_CP_LOAD_REG(GX_CP_REG_VAT_GRP0 | i, gx->vatA[i]);
|
||||
GX_CP_LOAD_REG(GX_CP_REG_VAT_GRP1 | i, gx->vatB[i]);
|
||||
GX_CP_LOAD_REG(GX_CP_REG_VAT_GRP2 | i, gx->vatC[i]);
|
||||
}
|
||||
dirtyVAT >>= 1;
|
||||
i++;
|
||||
} while (dirtyVAT != 0);
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (gx->dirtyVAT & (1 << (u8)i)) {
|
||||
GX_WRITE_SOME_REG4(8, i | 0x70, gx->vatA[i], i - 12);
|
||||
GX_WRITE_SOME_REG4(8, i | 0x80, gx->vatB[i], i - 12);
|
||||
GX_WRITE_SOME_REG4(8, i | 0x90, gx->vatC[i], i - 12);
|
||||
}
|
||||
}
|
||||
gx->dirtyVAT = 0;
|
||||
}
|
||||
|
||||
static u8 GetFracForNrm(int param_0) {
|
||||
int var_r31;
|
||||
static inline u8 GetFracForNrm(GXCompType type) {
|
||||
u8 frac;
|
||||
|
||||
switch (param_0) {
|
||||
case 1:
|
||||
var_r31 = 6;
|
||||
switch (type) {
|
||||
case GX_S8:
|
||||
frac = 6;
|
||||
break;
|
||||
case 3:
|
||||
var_r31 = 14;
|
||||
case GX_S16:
|
||||
frac = 14;
|
||||
break;
|
||||
default:
|
||||
case 2:
|
||||
var_r31 = 0;
|
||||
case GX_U16:
|
||||
frac = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
return var_r31;
|
||||
return frac;
|
||||
}
|
||||
|
||||
void GXGetVtxAttrFmtv(GXVtxFmt param_0, GXVtxAttrFmtList* param_1) {
|
||||
s32 tmp;
|
||||
s32 tmp2;
|
||||
s32 tmp3;
|
||||
int i;
|
||||
void GXGetVtxAttrFmt(GXVtxFmt fmt, int attr, GXCompCnt* cnt, GXCompType* type, u8* frac) {
|
||||
u32 *va;
|
||||
u32 *vb;
|
||||
u32 *vc;
|
||||
|
||||
#ifdef DEBUG
|
||||
// not fully matching
|
||||
/* tmp = 1;
|
||||
if (data_8074d3c8 != 0) {
|
||||
OSPanic("GXAttr.c", 941, "\'GXGetVtxAttrFmtv\' is not allowed between GXBegin/GXEnd");
|
||||
tmp = 0;
|
||||
}
|
||||
|
||||
tmp2 = 1;
|
||||
if (param_1 == NULL) {
|
||||
OSPanic("GXAttr.c", 942, "GXSetVtxAttrFmt: list pointer is NULL");
|
||||
tmp2 = 0;
|
||||
}
|
||||
|
||||
tmp3 = 1;
|
||||
if (param_0 >= 8) {
|
||||
OSPanic("GXAttr.c", 943, "GXSetVtxAttrFmt: Format Index is out of range");
|
||||
tmp3 = 0;
|
||||
} */
|
||||
#endif
|
||||
|
||||
for (i = 9; i <= 0x14; i++) {
|
||||
param_1->attr = i;
|
||||
GXGetVtxAttrFmt(param_0, i, ¶m_1->cnt, ¶m_1->type, ¶m_1->frac);
|
||||
param_1++;
|
||||
}
|
||||
|
||||
param_1->attr = 0xFF;
|
||||
}
|
||||
|
||||
void GXGetVtxAttrFmt(GXVtxFmt param_0, int param_1, GXCompCnt* param_2, GXCompType* param_3,
|
||||
u8* param_4) {
|
||||
s32 tmp;
|
||||
s32 tmp2;
|
||||
GXCompCnt* tmp_1;
|
||||
GXCompCnt* tmp_2;
|
||||
u32* tmp_3;
|
||||
|
||||
#ifdef DEBUG
|
||||
// not fully matching
|
||||
/* tmp = 1;
|
||||
if (data_8074d3c8) {
|
||||
OSPanic("GXAttr.c", 844, "\'GXGetVtxAttrFmt\' is not allowed between GXBegin/GXEnd");
|
||||
tmp = 0;
|
||||
}
|
||||
|
||||
tmp2 = 1;
|
||||
if (param_0 >= 8) {
|
||||
OSPanic("GXAttr.c", 845, "GXSetVtxAttrFmt: Format Index is out of range");
|
||||
tmp2 = 0;
|
||||
} */
|
||||
#endif
|
||||
|
||||
tmp_1 = (GXCompCnt*)&gx->vatA[param_0];
|
||||
tmp_2 = (GXCompCnt*)&gx->vatB[param_0];
|
||||
tmp_3 = &gx->vatC[param_0];
|
||||
|
||||
switch (param_1) {
|
||||
case 9:
|
||||
*param_2 = *tmp_1 & 1;
|
||||
*param_3 = (*tmp_1 & 0xE) >> 1;
|
||||
*param_4 = (*tmp_1 & 0x1F0) >> 4;
|
||||
break;
|
||||
case 10:
|
||||
case 0x19:
|
||||
*param_2 = (*tmp_1 & 0x200) >> 9;
|
||||
if (*param_2 == 1 && ((*tmp_1 & 0x80000000) >> 31) != 0) {
|
||||
*param_2 = 2;
|
||||
va = &gx->vatA[fmt];
|
||||
vb = &gx->vatB[fmt];
|
||||
vc = &gx->vatC[fmt];
|
||||
switch (attr) {
|
||||
case GX_VA_POS:
|
||||
*cnt = GET_REG_FIELD(*va, 1, 0);
|
||||
*type = GET_REG_FIELD(*va, 3, 1);
|
||||
*frac = GET_REG_FIELD(*va, 5, 4);
|
||||
return;
|
||||
case GX_VA_NRM:
|
||||
case GX_VA_NBT:
|
||||
*cnt = GET_REG_FIELD(*va, 1, 9);
|
||||
if (*cnt == GX_TEX_ST && (u8)(*va >> 0x1F) != 0) {
|
||||
*cnt = GX_NRM_NBT3;
|
||||
}
|
||||
|
||||
*param_3 = (*tmp_1 & 0x1C00) >> 10;
|
||||
*param_4 = GetFracForNrm(*param_3);
|
||||
break;
|
||||
case 11:
|
||||
*param_2 = (*tmp_1 & 0x2000) >> 0xd;
|
||||
*param_3 = (*tmp_1 & 0x1C000) >> 0xe;
|
||||
*param_4 = 0;
|
||||
break;
|
||||
case 12:
|
||||
*param_2 = (*tmp_1 & 0x20000) >> 0x11;
|
||||
*param_3 = (*tmp_1 & 0x1C0000) >> 0x12;
|
||||
*param_4 = 0;
|
||||
break;
|
||||
case 13:
|
||||
*param_2 = (*tmp_1 & 0x200000) >> 0x15;
|
||||
*param_3 = (*tmp_1 & 0x1C00000) >> 0x16;
|
||||
*param_4 = ((*tmp_1 & 0x3e000000)) >> 25;
|
||||
break;
|
||||
case 14:
|
||||
*param_2 = *tmp_2 & 1;
|
||||
*param_3 = (*tmp_2 & 0xE) >> 1;
|
||||
*param_4 = (*tmp_2 & 0x1F0) >> 4;
|
||||
break;
|
||||
case 15:
|
||||
*param_2 = (*tmp_2 & 0x200) >> 9;
|
||||
*param_3 = (*tmp_2 & 0x1C00) >> 10;
|
||||
*param_4 = (*tmp_2 & 0x3E000) >> 13;
|
||||
break;
|
||||
case 16:
|
||||
*param_2 = (*tmp_2 & 0x40000) >> 0x12;
|
||||
*param_3 = (*tmp_2 & 0x380000) >> 0x13;
|
||||
*param_4 = (*tmp_2 & 0x7C00000) >> 0x16;
|
||||
break;
|
||||
case 17:
|
||||
*param_2 = (*tmp_2 & 0x8000000) >> 0x1B;
|
||||
*param_3 = (*tmp_2 & 0x70000000) >> 0x1C;
|
||||
*param_4 = (*tmp_3 & 0x1F);
|
||||
break;
|
||||
case 18:
|
||||
*param_2 = (*tmp_3 & 0x20) >> 5;
|
||||
*param_3 = (*tmp_3 & 0x1C0) >> 6;
|
||||
*param_4 = (*tmp_3 & 0x3E00) >> 9;
|
||||
break;
|
||||
case 19:
|
||||
*param_2 = (*tmp_3 & 0x4000) >> 0xe;
|
||||
*param_3 = (*tmp_3 & 0x38000) >> 0xf;
|
||||
*param_4 = (*tmp_3 & 0x7c0000) >> 0x12;
|
||||
break;
|
||||
case 20:
|
||||
*param_2 = (*tmp_3 & 0x800000) >> 0x17;
|
||||
*param_3 = (*tmp_3 & 0x7000000) >> 0x18;
|
||||
*param_4 = (*tmp_3 & 0xF8000000) >> 0x1b;
|
||||
break;
|
||||
*type = GET_REG_FIELD(*va, 3, 10);
|
||||
*frac = GetFracForNrm(*type);
|
||||
return;
|
||||
case GX_VA_CLR0:
|
||||
*cnt = GET_REG_FIELD(*va, 1, 13);
|
||||
*type = GET_REG_FIELD(*va, 3, 14);
|
||||
*frac = 0;
|
||||
return;
|
||||
case GX_VA_CLR1:
|
||||
*cnt = GET_REG_FIELD(*va, 1, 17);
|
||||
*type = GET_REG_FIELD(*va, 3, 18);
|
||||
*frac = 0;
|
||||
return;
|
||||
case GX_VA_TEX0:
|
||||
*cnt = GET_REG_FIELD(*va, 1, 21);
|
||||
*type = GET_REG_FIELD(*va, 3, 22);
|
||||
*frac = (u8)(*va >> 0x19U) & 0x1F;
|
||||
return;
|
||||
case GX_VA_TEX1:
|
||||
*cnt = GET_REG_FIELD(*vb, 1, 0);
|
||||
*type = GET_REG_FIELD(*vb, 3, 1);
|
||||
*frac = (u8)(*vb >> 4U) & 0x1F;
|
||||
return;
|
||||
case GX_VA_TEX2:
|
||||
*cnt = GET_REG_FIELD(*vb, 1, 9);
|
||||
*type = GET_REG_FIELD(*vb, 3, 10);
|
||||
*frac = (u8)(*vb >> 0xDU) & 0x1F;
|
||||
return;
|
||||
case GX_VA_TEX3:
|
||||
*cnt = GET_REG_FIELD(*vb, 1, 18);
|
||||
*type = GET_REG_FIELD(*vb, 3, 19);
|
||||
*frac = (u8)(*vb >> 0x16U) & 0x1F;
|
||||
return;
|
||||
case GX_VA_TEX4:
|
||||
*cnt = GET_REG_FIELD(*vb, 1, 27);
|
||||
*type = GET_REG_FIELD(*vb, 3, 28);
|
||||
*frac = GET_REG_FIELD(*vc, 5, 0);
|
||||
return;
|
||||
case GX_VA_TEX5:
|
||||
*cnt = GET_REG_FIELD(*vc, 1, 5);
|
||||
*type = GET_REG_FIELD(*vc, 3, 6);
|
||||
*frac = (u8)(*vc >> 9U) & 0x1F;
|
||||
return;
|
||||
case GX_VA_TEX6:
|
||||
*cnt = GET_REG_FIELD(*vc, 1, 14);
|
||||
*type = GET_REG_FIELD(*vc, 3, 15);
|
||||
*frac = (u8)(*vc >> 0x12) & 0x1F;
|
||||
return;
|
||||
case GX_VA_TEX7:
|
||||
*cnt = GET_REG_FIELD(*vc, 1, 23);
|
||||
*type = GET_REG_FIELD(*vc, 3, 24);
|
||||
*frac = (int)(*vc >> 0x1BU);
|
||||
return;
|
||||
default:
|
||||
*param_2 = 1;
|
||||
*param_3 = 0;
|
||||
*param_4 = 0;
|
||||
*cnt = GX_TEX_ST;
|
||||
*type = GX_RGB565;
|
||||
*frac = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void GXSetArray(GXAttr attr, void* basePtr, u8 stride) {
|
||||
s32 newAttr;
|
||||
s32 attrReg;
|
||||
void GXGetVtxAttrFmtv(GXVtxFmt fmt, GXVtxAttrFmtList* vat) {
|
||||
GXAttr attr;
|
||||
|
||||
newAttr = attr;
|
||||
if (newAttr == GX_VA_NBT) {
|
||||
newAttr = GX_VA_NRM;
|
||||
for (attr = GX_VA_POS; attr <= GX_VA_TEX7; attr++) {
|
||||
vat->attr = attr;
|
||||
GXGetVtxAttrFmt(fmt, attr, &vat->cnt, &vat->type, &vat->frac);
|
||||
vat++;
|
||||
}
|
||||
vat->attr = GX_VA_NULL;
|
||||
}
|
||||
|
||||
attrReg = newAttr - GX_VA_POS;
|
||||
void GXSetArray(GXAttr attr, void* base_ptr, u8 stride) {
|
||||
GXAttr cpAttr;
|
||||
u32 phyAddr;
|
||||
|
||||
GX_CP_LOAD_REG(GX_BP_REG_SETMODE0_TEX4 | attrReg,
|
||||
// Address -> offset?
|
||||
(u32)basePtr & ~0xC0000000);
|
||||
|
||||
GX_CP_LOAD_REG(GX_BP_REG_SETIMAGE2_TEX4 | attrReg, stride);
|
||||
if (attr == GX_VA_NBT) {
|
||||
attr = GX_VA_NRM;
|
||||
}
|
||||
cpAttr = attr - GX_VA_POS;
|
||||
phyAddr = (u32)base_ptr & 0x3FFFFFFF;
|
||||
GX_WRITE_SOME_REG2(8, cpAttr | GX_BP_REG_SETMODE0_TEX4, phyAddr, cpAttr - 12);
|
||||
GX_WRITE_SOME_REG3(8, cpAttr | GX_BP_REG_SETIMAGE2_TEX4, stride, cpAttr - 12);
|
||||
}
|
||||
|
||||
void GXInvalidateVtxCache(void) {
|
||||
GXFIFO.u8 = GX_FIFO_CMD_INVAL_VTX;
|
||||
}
|
||||
|
||||
void GXSetTexCoordGen2(GXTexCoordID id, GXTexGenType type, GXTexGenSrc src, u32 texMtxIdx,
|
||||
GXBool normalize, u32 dualTexMtxIdx) {
|
||||
u32 reg;
|
||||
u32 inputRow;
|
||||
GXXfTexReg inputForm;
|
||||
void GXSetTexCoordGen2(GXTexCoordID dst_coord, GXTexGenType func, GXTexGenSrc src_param, u32 mtx, GXBool normalize, u32 pt_texmtx) {
|
||||
u32 reg = 0;
|
||||
u32 row;
|
||||
u32 bumprow; // unused
|
||||
u32 form;
|
||||
GXAttr mtxIdAttr;
|
||||
|
||||
reg = 0;
|
||||
inputForm = GX_XF_TEX_FORM_AB11;
|
||||
inputRow = 5;
|
||||
|
||||
switch (src) {
|
||||
case GX_TG_POS:
|
||||
inputRow = 0;
|
||||
inputForm = GX_XF_TEX_FORM_ABC1;
|
||||
break;
|
||||
case GX_TG_NRM:
|
||||
inputRow = 1;
|
||||
inputForm = GX_XF_TEX_FORM_ABC1;
|
||||
break;
|
||||
case GX_TG_BINRM:
|
||||
inputRow = 3;
|
||||
inputForm = GX_XF_TEX_FORM_ABC1;
|
||||
break;
|
||||
case GX_TG_TANGENT:
|
||||
inputRow = 4;
|
||||
inputForm = GX_XF_TEX_FORM_ABC1;
|
||||
break;
|
||||
case GX_TG_COLOR0:
|
||||
inputRow = 2;
|
||||
break;
|
||||
case GX_TG_COLOR1:
|
||||
inputRow = 2;
|
||||
break;
|
||||
case GX_TG_TEX0:
|
||||
inputRow = 5;
|
||||
break;
|
||||
case GX_TG_TEX1:
|
||||
inputRow = 6;
|
||||
break;
|
||||
case GX_TG_TEX2:
|
||||
inputRow = 7;
|
||||
break;
|
||||
case GX_TG_TEX3:
|
||||
inputRow = 8;
|
||||
break;
|
||||
case GX_TG_TEX4:
|
||||
inputRow = 9;
|
||||
break;
|
||||
case GX_TG_TEX5:
|
||||
inputRow = 10;
|
||||
break;
|
||||
case GX_TG_TEX6:
|
||||
inputRow = 11;
|
||||
break;
|
||||
case GX_TG_TEX7:
|
||||
inputRow = 12;
|
||||
form = 0;
|
||||
row = 5;
|
||||
switch (src_param) {
|
||||
case GX_TG_POS: row = 0; form = 1; break;
|
||||
case GX_TG_NRM: row = 1; form = 1; break;
|
||||
case GX_TG_BINRM: row = 3; form = 1; break;
|
||||
case GX_TG_TANGENT: row = 4; form = 1; break;
|
||||
case GX_TG_COLOR0: row = 2; break;
|
||||
case GX_TG_COLOR1: row = 2; break;
|
||||
case GX_TG_TEX0: row = 5; break;
|
||||
case GX_TG_TEX1: row = 6; break;
|
||||
case GX_TG_TEX2: row = 7; break;
|
||||
case GX_TG_TEX3: row = 8; break;
|
||||
case GX_TG_TEX4: row = 9; break;
|
||||
case GX_TG_TEX5: row = 10; break;
|
||||
case GX_TG_TEX6: row = 11; break;
|
||||
case GX_TG_TEX7: row = 12; break;
|
||||
case GX_TG_TEXCOORD0: bumprow; break;
|
||||
case GX_TG_TEXCOORD1: bumprow; break;
|
||||
case GX_TG_TEXCOORD2: bumprow; break;
|
||||
case GX_TG_TEXCOORD3: bumprow; break;
|
||||
case GX_TG_TEXCOORD4: bumprow; break;
|
||||
case GX_TG_TEXCOORD5: bumprow; break;
|
||||
case GX_TG_TEXCOORD6: bumprow; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
case GX_TG_NRM:
|
||||
GX_SET_REG(reg, GX_XF_TEX_PROJ_ST, GX_XF_TEX_PROJTYPE_ST,
|
||||
GX_XF_TEX_PROJTYPE_END); // 2x4 projection
|
||||
GX_SET_REG(reg, inputForm, GX_XF_TEX_INPUTFORM_ST, GX_XF_TEX_INPUTFORM_END);
|
||||
GX_SET_REG(reg, GX_TG_POS, GX_XF_TEX_TEXGENTYPE_ST, GX_XF_TEX_TEXGENTYPE_END);
|
||||
GX_SET_REG(reg, inputRow, GX_XF_TEX_SRCROW_ST, GX_XF_TEX_SRCROW_END);
|
||||
switch (func)
|
||||
{
|
||||
case GX_TG_MTX2x4:
|
||||
SET_REG_FIELD(reg, 1, 1, 0);
|
||||
SET_REG_FIELD(reg, 1, 2, form);
|
||||
SET_REG_FIELD(reg, 3, 4, 0);
|
||||
SET_REG_FIELD(reg, 5, 7, row);
|
||||
break;
|
||||
case GX_TG_POS:
|
||||
GX_SET_REG(reg, GX_XF_TEX_PROJ_STQ, GX_XF_TEX_PROJTYPE_ST,
|
||||
GX_XF_TEX_PROJTYPE_END); // 3x4 projection
|
||||
GX_SET_REG(reg, inputForm, GX_XF_TEX_INPUTFORM_ST, GX_XF_TEX_INPUTFORM_END);
|
||||
GX_SET_REG(reg, GX_TG_POS, GX_XF_TEX_TEXGENTYPE_ST, GX_XF_TEX_TEXGENTYPE_END);
|
||||
GX_SET_REG(reg, inputRow, GX_XF_TEX_SRCROW_ST, GX_XF_TEX_SRCROW_END);
|
||||
case GX_TG_MTX3x4:
|
||||
SET_REG_FIELD(reg, 1, 1, 1);
|
||||
SET_REG_FIELD(reg, 1, 2, form);
|
||||
SET_REG_FIELD(reg, 3, 4, 0);
|
||||
SET_REG_FIELD(reg, 5, 7, row);
|
||||
break;
|
||||
case GX_TG_BUMP0:
|
||||
case GX_TG_BUMP1:
|
||||
case GX_TG_BUMP2:
|
||||
case GX_TG_BUMP3:
|
||||
case GX_TG_BUMP4:
|
||||
case GX_TG_BUMP5:
|
||||
case GX_TG_BUMP6:
|
||||
case GX_TG_BUMP7:
|
||||
GX_SET_REG(reg, GX_XF_TEX_PROJ_ST, GX_XF_TEX_PROJTYPE_ST,
|
||||
GX_XF_TEX_PROJTYPE_END); // 2x4 projection
|
||||
GX_SET_REG(reg, inputForm, GX_XF_TEX_INPUTFORM_ST, GX_XF_TEX_INPUTFORM_END);
|
||||
GX_SET_REG(reg, GX_TG_NRM, GX_XF_TEX_TEXGENTYPE_ST, GX_XF_TEX_TEXGENTYPE_END);
|
||||
GX_SET_REG(reg, inputRow, GX_XF_TEX_SRCROW_ST, GX_XF_TEX_SRCROW_END);
|
||||
GX_SET_REG(reg, src - GX_TG_TEXCOORD0, GX_XF_TEX_BUMPSRCTEX_ST, GX_XF_TEX_BUMPSRCTEX_END);
|
||||
GX_SET_REG(reg, type - GX_TG_BUMP0, GX_XF_TEX_BUMPSRCLIGHT_ST, GX_XF_TEX_BUMPSRCLIGHT_END);
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
SET_REG_FIELD(reg, 1, 1, 0);
|
||||
SET_REG_FIELD(reg, 1, 2, form);
|
||||
SET_REG_FIELD(reg, 3, 4, 1);
|
||||
SET_REG_FIELD(reg, 5, 7, row);
|
||||
SET_REG_FIELD(reg, 3, 12, src_param - 12);
|
||||
SET_REG_FIELD(reg, 3, 15, func - 2);
|
||||
break;
|
||||
case GX_TG_SRTG:
|
||||
GX_SET_REG(reg, GX_XF_TEX_PROJ_ST, GX_XF_TEX_PROJTYPE_ST,
|
||||
GX_XF_TEX_PROJTYPE_END); // 2x4 projection
|
||||
GX_SET_REG(reg, inputForm, GX_XF_TEX_INPUTFORM_ST, GX_XF_TEX_INPUTFORM_END);
|
||||
|
||||
if (src == GX_TG_COLOR0) {
|
||||
GX_SET_REG(reg, GX_XF_TG_CLR0, GX_XF_TEX_TEXGENTYPE_ST, GX_XF_TEX_TEXGENTYPE_END);
|
||||
SET_REG_FIELD(reg, 1, 1, 0);
|
||||
SET_REG_FIELD(reg, 1, 2, form);
|
||||
if (src_param == GX_TG_COLOR0) {
|
||||
SET_REG_FIELD(reg, 3, 4, 2);
|
||||
} else {
|
||||
GX_SET_REG(reg, GX_XF_TG_CLR1, GX_XF_TEX_TEXGENTYPE_ST, GX_XF_TEX_TEXGENTYPE_END);
|
||||
SET_REG_FIELD(reg, 3, 4, 3);
|
||||
}
|
||||
GX_SET_REG(reg, 2, GX_XF_TEX_SRCROW_ST, GX_XF_TEX_SRCROW_END);
|
||||
SET_REG_FIELD(reg, 5, 7, 2);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
GX_XF_LOAD_REG(GX_XF_REG_TEX0 + id, reg);
|
||||
|
||||
GX_WRITE_XF_REG(dst_coord + 0x40, reg);
|
||||
reg = 0;
|
||||
GX_SET_REG(reg, dualTexMtxIdx - 0x40, GX_XF_MTXIDX0_GEOM_ST, GX_XF_MTXIDX0_GEOM_END);
|
||||
GX_SET_REG(reg, normalize, GX_XF_DUALTEX_NORMALISE_ST, GX_XF_DUALTEX_NORMALISE_END);
|
||||
|
||||
GX_XF_LOAD_REG(GX_XF_REG_DUALTEX0 + id, reg);
|
||||
|
||||
switch (id) {
|
||||
case GX_TEXCOORD0:
|
||||
GX_SET_REG(gx->matIdxA, texMtxIdx, GX_XF_MTXIDX0_TEX0_ST, GX_XF_MTXIDX0_TEX0_END);
|
||||
break;
|
||||
case GX_TEXCOORD1:
|
||||
GX_SET_REG(gx->matIdxA, texMtxIdx, GX_XF_MTXIDX0_TEX1_ST, GX_XF_MTXIDX0_TEX1_END);
|
||||
break;
|
||||
case GX_TEXCOORD2:
|
||||
GX_SET_REG(gx->matIdxA, texMtxIdx, GX_XF_MTXIDX0_TEX2_ST, GX_XF_MTXIDX0_TEX2_END);
|
||||
break;
|
||||
case GX_TEXCOORD3:
|
||||
GX_SET_REG(gx->matIdxA, texMtxIdx, GX_XF_MTXIDX0_TEX3_ST, GX_XF_MTXIDX0_TEX3_END);
|
||||
break;
|
||||
case GX_TEXCOORD4:
|
||||
GX_SET_REG(gx->matIdxB, texMtxIdx, GX_XF_MTXIDX1_TEX4_ST, GX_XF_MTXIDX1_TEX4_END);
|
||||
break;
|
||||
case GX_TEXCOORD5:
|
||||
GX_SET_REG(gx->matIdxB, texMtxIdx, GX_XF_MTXIDX1_TEX5_ST, GX_XF_MTXIDX1_TEX5_END);
|
||||
break;
|
||||
case GX_TEXCOORD6:
|
||||
GX_SET_REG(gx->matIdxB, texMtxIdx, GX_XF_MTXIDX1_TEX6_ST, GX_XF_MTXIDX1_TEX6_END);
|
||||
break;
|
||||
default:
|
||||
GX_SET_REG(gx->matIdxB, texMtxIdx, GX_XF_MTXIDX1_TEX7_ST, GX_XF_MTXIDX1_TEX7_END);
|
||||
break;
|
||||
SET_REG_FIELD(reg, 6, 0, pt_texmtx - 64);
|
||||
SET_REG_FIELD(reg, 1, 8, normalize);
|
||||
GX_WRITE_XF_REG(dst_coord + 0x50, reg);
|
||||
switch (dst_coord) {
|
||||
case GX_TEXCOORD0: SET_REG_FIELD(gx->matIdxA, 6, 6, mtx); break;
|
||||
case GX_TEXCOORD1: SET_REG_FIELD(gx->matIdxA, 6, 12, mtx); break;
|
||||
case GX_TEXCOORD2: SET_REG_FIELD(gx->matIdxA, 6, 18, mtx); break;
|
||||
case GX_TEXCOORD3: SET_REG_FIELD(gx->matIdxA, 6, 24, mtx); break;
|
||||
case GX_TEXCOORD4: SET_REG_FIELD(gx->matIdxB, 6, 0, mtx); break;
|
||||
case GX_TEXCOORD5: SET_REG_FIELD(gx->matIdxB, 6, 6, mtx); break;
|
||||
case GX_TEXCOORD6: SET_REG_FIELD(gx->matIdxB, 6, 12, mtx); break;
|
||||
default: SET_REG_FIELD(gx->matIdxB, 6, 18, mtx); break;
|
||||
}
|
||||
__GXSetMatrixIndex(id + 1);
|
||||
mtxIdAttr = dst_coord + 1;
|
||||
__GXSetMatrixIndex(mtxIdAttr);
|
||||
}
|
||||
|
||||
void GXSetNumTexGens(u8 count) {
|
||||
GX_SET_REG(gx->genMode, count, GX_BP_GENMODE_NUMTEX_ST, GX_BP_GENMODE_NUMTEX_END);
|
||||
GX_XF_LOAD_REG(GX_XF_REG_NUMTEX, count);
|
||||
void GXSetNumTexGens(u8 nTexGens) {
|
||||
SET_REG_FIELD(gx->genMode, 4, 0, nTexGens);
|
||||
GX_WRITE_XF_REG(0x3F, nTexGens);
|
||||
gx->dirtyState |= GX_DIRTY_GEN_MODE;
|
||||
}
|
||||
|
||||
+18
-17
@@ -16,7 +16,7 @@ fapGm_HIO_c g_HIO;
|
||||
|
||||
/* 8002306C-800231BC .text __ct__11fapGm_HIO_cFv */
|
||||
fapGm_HIO_c::fapGm_HIO_c() {
|
||||
field_0x05 = 1;
|
||||
mUsingHostIO = true;
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
if (mDoMain::developmentMode) {
|
||||
@@ -45,25 +45,26 @@ fapGm_HIO_c::fapGm_HIO_c() {
|
||||
field_0x1a = 0;
|
||||
field_0x1b = 1;
|
||||
field_0x1c = 0;
|
||||
mFbWidth = 0x280;
|
||||
mEfbHeight = 0x1e0;
|
||||
mFbWidth = 640;
|
||||
mEfbHeight = 480;
|
||||
field_0x30 = 0;
|
||||
field_0x20.r = 0xff;
|
||||
field_0x20.g = 0xff;
|
||||
field_0x20.b = 0xff;
|
||||
field_0x20.a = 0xff;
|
||||
|
||||
mColor = JUtility::TColor(0xff, 0xff, 0xff, 0xff);
|
||||
|
||||
mTriggerThreshLo = 0.9f;
|
||||
mTriggerThreshHi = 0.6f;
|
||||
field_0x3c = JUtility::TColor(0xff, 0x96, 0x00, 0xff);
|
||||
field_0x40 = JUtility::TColor(0xff, 0x78, 0x00, 0xff);
|
||||
field_0x44 = JUtility::TColor(0x00, 0x00, 0x00, 0xff);
|
||||
field_0x48 = JUtility::TColor(0x00, 0x00, 0x00, 0xff);
|
||||
field_0x4c = 0;
|
||||
field_0x4e = 10;
|
||||
field_0x54 = 0x1b;
|
||||
field_0x50 = 0;
|
||||
field_0x52 = 0;
|
||||
field_0x56 = 0x82;
|
||||
|
||||
mLetterTopColor = JUtility::TColor(0xff, 0x96, 0x00, 0xff);
|
||||
mLetterBottomColor = JUtility::TColor(0xff, 0x78, 0x00, 0xff);
|
||||
mLetterTopShadowColor = JUtility::TColor(0x00, 0x00, 0x00, 0xff);
|
||||
mLetterBottomShadowColor = JUtility::TColor(0x00, 0x00, 0x00, 0xff);
|
||||
|
||||
mLetterPositionX = 0;
|
||||
mLetterPositionY = 10;
|
||||
mLetterFontSize = 27;
|
||||
mLineSpacing = 0;
|
||||
mLetterSpacing = 0;
|
||||
mBackgroundAlpha = 130;
|
||||
}
|
||||
|
||||
/* 800231BC-800231E4 .text fapGm_After__Fv */
|
||||
|
||||
@@ -1127,7 +1127,7 @@ void* fopAcM_fastCreateItem(cXyz* pos, int i_itemNo, int roomNo, csXyz* angle, c
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
/* 80027254-80027280 .text stealItem_CB__FPv */
|
||||
BOOL stealItem_CB(void* actor) {
|
||||
static BOOL stealItem_CB(void* actor) {
|
||||
if (actor) {
|
||||
daItem_c* item = (daItem_c*)actor;
|
||||
item->scale.setall(1.0f);
|
||||
|
||||
@@ -3202,8 +3202,9 @@ u32 fopMsgM_msgDataProc_c::stringLength() {
|
||||
|
||||
int r7 = sp18[sp14];
|
||||
#if VERSION <= VERSION_JPN
|
||||
sp18[sp14] = (int)((f32)sp0C + 0.5f);
|
||||
sp18[sp14] = (int)(sp0C + 0.5f);
|
||||
#else
|
||||
// Fakematch? Why the (f64) cast?
|
||||
sp18[sp14] = (int)((f32)(f64)sp0C + 0.5f);
|
||||
#endif
|
||||
if (!r27) {
|
||||
|
||||
+71
-60
@@ -159,15 +159,15 @@ int mDoExt_bpkAnm::init(J3DMaterialTable* i_matTable, J3DAnmColor* i_bpk, BOOL i
|
||||
|
||||
if (i_anmPlay) {
|
||||
int attribute;
|
||||
#if VERSION == VERSION_JPN
|
||||
#if VERSION == VERSION_JPN
|
||||
if (i_attribute < 0) {
|
||||
attribute = mpAnm->getAttribute();
|
||||
} else {
|
||||
attribute = i_attribute;
|
||||
}
|
||||
#else
|
||||
#else
|
||||
attribute = i_attribute;
|
||||
#endif
|
||||
#endif
|
||||
if (initPlay(mpAnm->getFrameMax(), attribute, i_rate, i_startF, i_endF, i_modify) == 0) {
|
||||
return 0;
|
||||
}
|
||||
@@ -260,7 +260,7 @@ int mDoExt_btkAnm::init(J3DMaterialTable* i_matTable, J3DAnmTextureSRTKey* i_btk
|
||||
J3DMaterial* material = i_matTable->getMaterialNodePointer(materialId);
|
||||
u8 texMtxId = mpAnm->getUpdateTexMtxID(i);
|
||||
if (texMtxId != 0xFF) {
|
||||
J3DTexMtx* texMtx = material->getTexGenBlock()->getTexMtx(texMtxId);
|
||||
J3DTexMtx* texMtx = material->getTexMtx(texMtxId);
|
||||
if (!texMtx) {
|
||||
texMtx = new J3DTexMtx();
|
||||
}
|
||||
@@ -286,15 +286,15 @@ int mDoExt_btkAnm::init(J3DMaterialTable* i_matTable, J3DAnmTextureSRTKey* i_btk
|
||||
|
||||
if (i_anmPlay) {
|
||||
int attribute;
|
||||
#if VERSION == VERSION_JPN
|
||||
#if VERSION == VERSION_JPN
|
||||
if (i_attribute < 0) {
|
||||
attribute = mpAnm->getAttribute();
|
||||
} else {
|
||||
attribute = i_attribute;
|
||||
}
|
||||
#else
|
||||
#else
|
||||
attribute = i_attribute;
|
||||
#endif
|
||||
#endif
|
||||
if (initPlay(mpAnm->getFrameMax(), attribute, i_rate, i_startF, i_endF, i_modify) == 0) {
|
||||
return 0;
|
||||
}
|
||||
@@ -365,15 +365,15 @@ int mDoExt_brkAnm::init(J3DMaterialTable* i_matTable, J3DAnmTevRegKey* i_brk, BO
|
||||
|
||||
if (i_anmPlay) {
|
||||
int attribute;
|
||||
#if VERSION == VERSION_JPN
|
||||
#if VERSION == VERSION_JPN
|
||||
if (i_attribute < 0) {
|
||||
attribute = mpAnm->getAttribute();
|
||||
} else {
|
||||
attribute = i_attribute;
|
||||
}
|
||||
#else
|
||||
#else
|
||||
attribute = i_attribute;
|
||||
#endif
|
||||
#endif
|
||||
if (initPlay(mpAnm->getFrameMax(), attribute, i_rate, i_startF, i_endF, i_modify) == 0) {
|
||||
return 0;
|
||||
}
|
||||
@@ -405,15 +405,15 @@ int mDoExt_bvaAnm::init(J3DModel* i_model, J3DAnmVisibilityFull* i_bva, BOOL i_a
|
||||
}
|
||||
if (i_anmPlay) {
|
||||
int attribute;
|
||||
#if VERSION == VERSION_JPN
|
||||
#if VERSION == VERSION_JPN
|
||||
if (i_attribute < 0) {
|
||||
attribute = mpAnm->getAttribute();
|
||||
} else {
|
||||
attribute = i_attribute;
|
||||
}
|
||||
#else
|
||||
#else
|
||||
attribute = i_attribute;
|
||||
#endif
|
||||
#endif
|
||||
if (initPlay(mpAnm->getFrameMax(), attribute, i_rate, i_startF, i_endF, i_modify) == 0) {
|
||||
return 0;
|
||||
}
|
||||
@@ -442,15 +442,15 @@ int mDoExt_bckAnm::init(J3DModelData* i_modelData, J3DAnmTransform* i_bck, BOOL
|
||||
}
|
||||
if (i_anmPlay) {
|
||||
int attribute;
|
||||
#if VERSION == VERSION_JPN
|
||||
#if VERSION == VERSION_JPN
|
||||
if (i_attribute < 0) {
|
||||
attribute = mpAnm->getAttribute();
|
||||
} else {
|
||||
attribute = i_attribute;
|
||||
}
|
||||
#else
|
||||
#else
|
||||
attribute = i_attribute;
|
||||
#endif
|
||||
#endif
|
||||
if (initPlay(mpAnm->getFrameMax(), attribute, i_rate, i_startF, i_endF, i_modify) == 0) {
|
||||
return 0;
|
||||
}
|
||||
@@ -850,9 +850,9 @@ JKRExpHeap* gameHeap;
|
||||
JKRExpHeap* mDoExt_createGameHeap(u32 heapSize, JKRHeap* i_heap) {
|
||||
JUT_ASSERT(VERSION_SELECT(2036, 2035, 2050, 2050), gameHeap == NULL || heapSize == 0);
|
||||
gameHeap = JKRCreateExpHeap(heapSize, i_heap, true);
|
||||
#if VERSION > VERSION_DEMO
|
||||
#if VERSION > VERSION_DEMO
|
||||
gameHeap->setAllocationMode(JKRExpHeap::ALLOC_MODE_1);
|
||||
#endif
|
||||
#endif
|
||||
return gameHeap;
|
||||
}
|
||||
|
||||
@@ -935,9 +935,9 @@ JKRExpHeap* archiveHeap;
|
||||
JKRExpHeap* mDoExt_createArchiveHeap(u32 heapSize, JKRHeap* i_heap) {
|
||||
JUT_ASSERT(VERSION_SELECT(2173, 2222, 2237, 2237), archiveHeap == NULL || heapSize == 0);
|
||||
archiveHeap = JKRCreateExpHeap(heapSize, i_heap, true);
|
||||
#if VERSION > VERSION_DEMO
|
||||
#if VERSION > VERSION_DEMO
|
||||
archiveHeap->setAllocationMode(JKRExpHeap::ALLOC_MODE_1);
|
||||
#endif
|
||||
#endif
|
||||
return archiveHeap;
|
||||
}
|
||||
|
||||
@@ -955,25 +955,28 @@ s32 mDoExt_getSafeArchiveHeapSize() {
|
||||
}
|
||||
#endif
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
static u8 archiveHeapGroupID;
|
||||
#endif
|
||||
|
||||
JKRHeap* mDoExt_SaveCurrentHeap;
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
static u8 archiveHeapGroupID;
|
||||
static u8 SolidHeapGroupID;
|
||||
#endif
|
||||
|
||||
/* 80011AB4-80011ABC .text mDoExt_getArchiveHeap__Fv */
|
||||
JKRExpHeap* mDoExt_getArchiveHeap() {
|
||||
#if VERSION == VERSION_DEMO
|
||||
#if VERSION == VERSION_DEMO
|
||||
JKRExpHeap* heap = archiveHeap;
|
||||
heap->changeGroupID(archiveHeapGroupID++);
|
||||
if (archiveHeapGroupID >= 200) {
|
||||
archiveHeapGroupID = 0;
|
||||
}
|
||||
return heap;
|
||||
#else
|
||||
#else
|
||||
return archiveHeap;
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static void dummy() {
|
||||
@@ -993,9 +996,9 @@ JKRSolidHeap* mDoExt_createSolidHeap(u32 i_size, JKRHeap* i_heap, u32 i_alignmen
|
||||
u32 size;
|
||||
JKRSolidHeap* createdHeap;
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
#if VERSION == VERSION_DEMO
|
||||
u8 groupID = i_heap->changeGroupID(SolidHeapGroupID);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (i_size == 0 || i_size == -1) {
|
||||
createdHeap = JKRSolidHeap::create(-1, i_heap, false);
|
||||
@@ -1010,15 +1013,15 @@ JKRSolidHeap* mDoExt_createSolidHeap(u32 i_size, JKRHeap* i_heap, u32 i_alignmen
|
||||
createdHeap = JKRSolidHeap::create(size, i_heap, false);
|
||||
}
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
#if VERSION == VERSION_DEMO
|
||||
i_heap->changeGroupID(groupID);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (createdHeap != NULL) {
|
||||
createdHeap->setErrorFlag(true);
|
||||
}
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
#if VERSION == VERSION_DEMO
|
||||
if (createdHeap == NULL) {
|
||||
// "mDoExt_createMaxSolidHeap: Failed to allocate a %fK solid heap. Contiguous free space=%fK Remaining free space=%f\n"
|
||||
OSReport_Warning(
|
||||
@@ -1034,7 +1037,7 @@ JKRSolidHeap* mDoExt_createSolidHeap(u32 i_size, JKRHeap* i_heap, u32 i_alignmen
|
||||
} else {
|
||||
SolidHeapGroupID = SolidHeapGroupID < 199 ? (u8)(SolidHeapGroupID + 1) : 0;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
return createdHeap;
|
||||
}
|
||||
@@ -1055,9 +1058,9 @@ JKRSolidHeap* mDoExt_createSolidHeapToCurrent(u32 i_size, JKRHeap* i_parent, u32
|
||||
if (!resultHeap) {
|
||||
return NULL;
|
||||
}
|
||||
#if VERSION > VERSION_DEMO
|
||||
#if VERSION > VERSION_DEMO
|
||||
JUT_ASSERT(VERSION_SELECT(0, 2530, 2545, 2545), OSGetCurrentThread() == &mainThread);
|
||||
#endif
|
||||
#endif
|
||||
JUT_ASSERT(VERSION_SELECT(2441, 2531, 2546, 2546), mDoExt_SaveCurrentHeap == NULL);
|
||||
mDoExt_SaveCurrentHeap = JKRGetCurrentHeap();
|
||||
mDoExt_setCurrentHeap(resultHeap);
|
||||
@@ -1102,9 +1105,9 @@ JKRHeap* mDoExt_getCurrentHeap() {
|
||||
|
||||
/* 80011DDC-80011E98 .text mDoExt_restoreCurrentHeap__Fv */
|
||||
void mDoExt_restoreCurrentHeap() {
|
||||
#if VERSION > VERSION_DEMO
|
||||
#if VERSION > VERSION_DEMO
|
||||
JUT_ASSERT(VERSION_SELECT(0, 2739, 2754, 2754), OSGetCurrentThread() == &mainThread);
|
||||
#endif
|
||||
#endif
|
||||
JUT_ASSERT(VERSION_SELECT(2647, 2740, 2755, 2755), mDoExt_SaveCurrentHeap != NULL);
|
||||
mDoExt_SaveCurrentHeap->becomeCurrentHeap();
|
||||
mDoExt_SaveCurrentHeap = NULL;
|
||||
@@ -1136,6 +1139,7 @@ void mDoExt_MtxCalcAnmBlendTbl::calc(u16 jnt_no) {
|
||||
Quaternion quat3;
|
||||
mAnmRatio->getAnmTransform()->getTransform(jnt_no, &info2);
|
||||
JMAEulerToQuat(info2.mRotation.x, info2.mRotation.y, info2.mRotation.z, &quat1);
|
||||
f32 f30 = mAnmRatio[0].getRatio();
|
||||
quat3 = quat1;
|
||||
for (int i = 1; i < mNum; i++) {
|
||||
J3DAnmTransform* transform = mAnmRatio[i].getAnmTransform();
|
||||
@@ -1143,7 +1147,7 @@ void mDoExt_MtxCalcAnmBlendTbl::calc(u16 jnt_no) {
|
||||
J3DTransformInfo info3;
|
||||
transform->getTransform(jnt_no, &info3);
|
||||
f32 ratio = mAnmRatio[i].getRatio();
|
||||
f32 f30 = 1.0f - ratio;
|
||||
f30 = 1.0f - ratio;
|
||||
JMAEulerToQuat(info3.mRotation.x, info3.mRotation.y, info3.mRotation.z, &quat2);
|
||||
JMAQuatLerp(&quat1, &quat2, ratio, &quat3);
|
||||
quat1 = quat3;
|
||||
@@ -1316,7 +1320,7 @@ mDoExt_McaMorf::mDoExt_McaMorf(J3DModelData* modelData, mDoExt_McaMorfCallBack1_
|
||||
J3DTransformInfo* info = mpTransformInfo;
|
||||
Quaternion* quat = mpQuat;
|
||||
J3DModelData* r23 = mpModel->getModelData();
|
||||
u16 jointNum = r23->getJointNum();
|
||||
int jointNum = r23->getJointNum();
|
||||
for (int i = 0; i < jointNum; i++) {
|
||||
*info = r23->getJointNodePointer(i)->getTransformInfo();
|
||||
JMAEulerToQuat(info->mRotation.x, info->mRotation.y, info->mRotation.z, quat);
|
||||
@@ -1604,7 +1608,7 @@ mDoExt_McaMorf2::mDoExt_McaMorf2(J3DModelData* modelData, mDoExt_McaMorfCallBack
|
||||
J3DTransformInfo* info = mpTransformInfo;
|
||||
Quaternion* quat = mpQuat;
|
||||
J3DModelData* r23 = mpModel->getModelData();
|
||||
u16 jointNum = r23->getJointNum();
|
||||
int jointNum = r23->getJointNum();
|
||||
for (int i = 0; i < jointNum; i++) {
|
||||
*info = r23->getJointNodePointer(i)->getTransformInfo();
|
||||
JMAEulerToQuat(info->mRotation.x, info->mRotation.y, info->mRotation.z, quat);
|
||||
@@ -1954,9 +1958,9 @@ void mDoExt_3DlineMat0_c::setMaterial() {
|
||||
{0xC0, 0x00, 0x00},
|
||||
};
|
||||
j3dSys.reinitGX();
|
||||
#if VERSION > VERSION_JPN
|
||||
#if VERSION > VERSION_JPN
|
||||
GXSetNumIndStages(0);
|
||||
#endif
|
||||
#endif
|
||||
dKy_setLight_again();
|
||||
|
||||
GXClearVtxDesc();
|
||||
@@ -2220,9 +2224,9 @@ void mDoExt_3DlineMat1_c::setMaterial() {
|
||||
{0xC0, 0x00, 0x00},
|
||||
};
|
||||
j3dSys.reinitGX();
|
||||
#if VERSION > VERSION_JPN
|
||||
#if VERSION > VERSION_JPN
|
||||
GXSetNumIndStages(0);
|
||||
#endif
|
||||
#endif
|
||||
dKy_setLight_again();
|
||||
|
||||
GXClearVtxDesc();
|
||||
@@ -2341,7 +2345,7 @@ void mDoExt_3DlineMat1_c::update(u16 i_segs, f32 i_size, GXColor& i_color, u16 i
|
||||
delta = delta.outprod(eyeDelta);
|
||||
f32 scale = delta.abs();
|
||||
if (scale != 0.0f) {
|
||||
scale = i_size / scale;
|
||||
scale = r_size / scale;
|
||||
delta *= scale;
|
||||
}
|
||||
|
||||
@@ -2531,9 +2535,9 @@ void mDoExt_3DlineMatSortPacket::draw() {
|
||||
lineMat->draw();
|
||||
lineMat = lineMat->mpNextLineMat;
|
||||
} while (lineMat);
|
||||
#if VERSION > VERSION_JPN
|
||||
#if VERSION > VERSION_JPN
|
||||
J3DShape::resetVcdVatCache();
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
/* 800165E4-8001683C .text mDoExt_initFontCommon__FPP7JUTFontPP7ResFONTP7JKRHeapPCcP10JKRArchiveUcUlUl */
|
||||
@@ -2549,11 +2553,11 @@ void mDoExt_initFontCommon(JUTFont** p_font, ResFONT** p_resfont, JKRHeap* p_hea
|
||||
JUT_ASSERT(VERSION_SELECT(6544, 6637, 6651, 6651), mDoExt_resfont != NULL);
|
||||
|
||||
if (param_6 == 0) {
|
||||
#if VERSION <= VERSION_JPN
|
||||
#if VERSION <= VERSION_JPN
|
||||
u32 temp = (param_8 + 0x40) * param_7;
|
||||
#else
|
||||
#else
|
||||
u32 temp = (((param_8+0x1F) & ~0x1F) + 0x40) * param_7;
|
||||
#endif
|
||||
#endif
|
||||
JUTCacheFont* cacheFont = new(p_heap, 0) JUTCacheFont(*p_resfont, temp, p_heap);
|
||||
if (cacheFont->isValid()) {
|
||||
*p_font = cacheFont;
|
||||
@@ -2576,18 +2580,29 @@ void mDoExt_initFontCommon(JUTFont** p_font, ResFONT** p_resfont, JKRHeap* p_hea
|
||||
JUT_ASSERT(VERSION_SELECT(6575, 6668, 6685, 6685), mDoExt_font != NULL);
|
||||
}
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
JUTFont* mDoExt_font0;
|
||||
ResFONT* mDoExt_resfont0;
|
||||
JUTFont* mDoExt_font1;
|
||||
s32 mDoExt_font0_getCount;
|
||||
s32 mDoExt_font1_getCount;
|
||||
ResFONT* mDoExt_resfont0;
|
||||
ResFONT* mDoExt_resfont1;
|
||||
#else
|
||||
JUTFont* mDoExt_font0;
|
||||
s32 mDoExt_font0_getCount;
|
||||
ResFONT* mDoExt_resfont0;
|
||||
JUTFont* mDoExt_font1;
|
||||
s32 mDoExt_font1_getCount;
|
||||
ResFONT* mDoExt_resfont1;
|
||||
#endif
|
||||
|
||||
#if VERSION <= VERSION_JPN
|
||||
void mDoExt_initFont0() {
|
||||
/* Nonmatching */
|
||||
static const char* fontdata[] = {
|
||||
static const char* const fontdata[] = {
|
||||
"rock_24_20_4i1.bfn",
|
||||
"rock_e_24_20_4i.bfn",
|
||||
};
|
||||
u8 r30 = g_msgDHIO.field_0x08;
|
||||
const u8 r30 = g_msgDHIO.field_0x08;
|
||||
mDoExt_initFontCommon(&mDoExt_font0, &mDoExt_resfont0, mDoExt_getZeldaHeap(), fontdata[r30], dComIfGp_getFontArchive(), r30, 0xB4, 0x800);
|
||||
}
|
||||
#else
|
||||
@@ -2598,10 +2613,6 @@ void mDoExt_initFont0() {
|
||||
}
|
||||
#endif
|
||||
|
||||
JUTFont* mDoExt_font1;
|
||||
ResFONT* mDoExt_resfont1;
|
||||
s32 mDoExt_font1_getCount;
|
||||
|
||||
#if VERSION <= VERSION_JPN
|
||||
void mDoExt_initFont1() {
|
||||
mDoExt_initFontCommon(&mDoExt_font1, &mDoExt_resfont1, mDoExt_getZeldaHeap(), "rodb_16_11_4i.bfn", dComIfGp_getRubyArchive(), 1, 1, 0x8000);
|
||||
@@ -2640,11 +2651,11 @@ void mDoExt_removeMesgFont() {
|
||||
mDoExt_font0 = NULL;
|
||||
|
||||
if (mDoExt_resfont0) {
|
||||
#if VERSION <= VERSION_JPN
|
||||
#if VERSION <= VERSION_JPN
|
||||
if (g_msgDHIO.field_0x08 == 0) {
|
||||
JKRFileLoader::removeResource(mDoExt_resfont0, NULL);
|
||||
} else
|
||||
#endif
|
||||
#endif
|
||||
{
|
||||
JKRHeap::free(mDoExt_resfont0, NULL);
|
||||
}
|
||||
@@ -2657,12 +2668,12 @@ void mDoExt_removeMesgFont() {
|
||||
#if VERSION > VERSION_JPN
|
||||
/* 80016A1C-80016A7C .text mDoExt_initFont1__Fv */
|
||||
void mDoExt_initFont1() {
|
||||
#if VERSION <= VERSION_JPN
|
||||
#if VERSION <= VERSION_JPN
|
||||
mDoExt_initFontCommon(&mDoExt_font1, &mDoExt_resfont1, mDoExt_getZeldaHeap(), "rodb_16_11_4i.bfn", dComIfGp_getRubyArchive(), 1, 1, 0x8000);
|
||||
#else
|
||||
#else
|
||||
static const char fontdata[] = "hyrule.bfn";
|
||||
mDoExt_initFontCommon(&mDoExt_font1, &mDoExt_resfont1, mDoExt_getZeldaHeap(), fontdata, dComIfGp_getRubyArchive(), 1, 1, 0x8000);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user