wii building OK / m_Do_graphic debug work (#2815)

* wii building OK + m_Do_graphic debug work

* d_meter_HIO debug cleanup

* wii m_Do_graphic stuff

* tag_attack_item OK, mirror_chain almost

* fix build

* mg_fshop matching
This commit is contained in:
TakaRikka 2025-11-17 10:01:03 -08:00 committed by GitHub
parent 4350a38fe0
commit 540217c31b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
99 changed files with 3837 additions and 1964 deletions

View File

@ -134,7 +134,7 @@ m_Do/m_Do_machine_exception.cpp:
c/c_damagereaction.cpp: c/c_damagereaction.cpp:
.text start:0x8001DD0C end:0x8001DFE4 .text start:0x8001DD0C end:0x8001DFE4
.ctors start:0x803CE25C end:0x803CE260 .ctors start:0x803CE25C end:0x803CE260
.data start:0x803F7238 end:0x803F9CF0 .data start:0x803F7238 end:0x803F7288
.bss start:0x8047D480 end:0x8047D490 .bss start:0x8047D480 end:0x8047D490
.sdata start:0x805377B8 end:0x80537808 .sdata start:0x805377B8 end:0x80537808
.sbss start:0x8053A8F4 end:0x8053A8FC .sbss start:0x8053A8F4 end:0x8053A8FC
@ -143,7 +143,7 @@ c/c_damagereaction.cpp:
c/c_dylink.cpp: c/c_dylink.cpp:
.text start:0x8001DFE4 end:0x8001E4D4 .text start:0x8001DFE4 end:0x8001E4D4
.rodata start:0x803CE450 end:0x803CFC00 .rodata start:0x803CE450 end:0x803CFC00
.data start:0x803F9CF0 end:0x803F9D00 .data start:0x803F7288 end:0x803F9D00
.bss start:0x8047D490 end:0x8047E0E8 .bss start:0x8047D490 end:0x8047E0E8
.sbss start:0x8053A8FC end:0x8053A908 .sbss start:0x8053A8FC end:0x8053A908

View File

@ -258,9 +258,9 @@ cflags_base = [
] ]
if config.version == "ShieldD": if config.version == "ShieldD":
cflags_base.extend(["-O0", "-inline off", "-RTTI on", "-str reuse", "-enc SJIS", "-DDEBUG=1"]) cflags_base.extend(["-O0", "-inline off", "-RTTI on", "-str reuse", "-enc SJIS", "-DDEBUG=1", "-DWIDESCREEN_SUPPORT=1"])
elif config.version == "RZDE01_00" or config.version == "RZDE01_02" or config.version == "Shield": elif config.version == "RZDE01_00" or config.version == "RZDE01_02" or config.version == "Shield":
cflags_base.extend(["-O4,p", "-inline auto", "-ipa file", "-RTTI on", "-str reuse", "-enc SJIS"]) cflags_base.extend(["-O4,p", "-inline auto", "-ipa file", "-RTTI on", "-str reuse", "-enc SJIS", "-DWIDESCREEN_SUPPORT=1"])
else: else:
cflags_base.extend(["-O4,p", "-inline auto", "-RTTI off", "-str reuse", "-multibyte"]) cflags_base.extend(["-O4,p", "-inline auto", "-RTTI off", "-str reuse", "-multibyte"])
@ -396,15 +396,11 @@ def MWVersion(cfg_version: str | None) -> str:
case "GZ2J01": case "GZ2J01":
return "GC/2.7" return "GC/2.7"
case "RZDE01_00" | "RZDE01_02": case "RZDE01_00" | "RZDE01_02":
# TODO: Find right compiler for Wii # NOTE: we use a modified version of GC/3.0a3 to be able to handle multi-char constants.
# GC/3.0a3 codegen seems better than Wii compilers, but it fails linking (linker version?) and can't handle multi-char constants # This was probably a change made in some compiler version in the early days of transitioning GC to Wii development,
# Potentially missing an early Wii compiler that had the earlier codegen and reverted char constant change? # but we don't have that version. GC/3.0a3 appears to have the best overall codegen of any available GC/Wii compiler
# Or some specific compiler used in the early days of transitioning GC to Wii development # However GC/3.0a5 is required for the linker version, GC/3.0a3 won't work.
# Additionally, "-ipa file" seems to needed, so it can't be earlier than GC 3.0 return "GC/3.0a3t"
# GC/3.0a5.2 breaks when compiling TUs like m_Do_graphic, but none of the other 3.0+ ones do
# Wii/1.0RC1 is the earliest Wii one we have at this time but it doesn't have the right codegen from GC/3.0+
# (GC 3.0a3 - Dec 2005 | GC 3.0a5.2 - Aug 2006 | Wii 1.0RC - May 2008)
return "Wii/1.0RC1"
case "ShieldD": case "ShieldD":
return "Wii/1.0" return "Wii/1.0"
case "Shield": case "Shield":
@ -412,7 +408,10 @@ def MWVersion(cfg_version: str | None) -> str:
case _: case _:
return "GC/2.7" return "GC/2.7"
config.linker_version = MWVersion(config.version) if config.version == "RZDE01_00" or config.version == "RZDE01_02":
config.linker_version = "GC/3.0a5"
else:
config.linker_version = MWVersion(config.version)
# Helper function for Dolphin libraries # Helper function for Dolphin libraries
@ -600,6 +599,7 @@ config.libs = [
"host": True, "host": True,
"objects": [ "objects": [
Object(NonMatching, "d/d_home_button.cpp"), Object(NonMatching, "d/d_home_button.cpp"),
Object(NonMatching, "d/d_cursor_mng.cpp"),
Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_stage.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_stage.cpp"),
Object(Equivalent, "d/d_map.cpp"), # weak func order Object(Equivalent, "d/d_map.cpp"), # weak func order
Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_com_inf_game.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d/d_com_inf_game.cpp"),
@ -780,6 +780,16 @@ config.libs = [
Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "DynamicLink.cpp"), Object(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "DynamicLink.cpp"),
], ],
}, },
{
"lib": "CaptureScreen",
"mw_version": MWVersion(config.version),
"cflags": cflags_framework,
"progress_category": "core",
"host": True,
"objects": [
Object(NonMatching, "CaptureScreen.cpp"),
],
},
{ {
"lib": "SSystem", "lib": "SSystem",
"mw_version": MWVersion(config.version), "mw_version": MWVersion(config.version),
@ -1679,7 +1689,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_swc00"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_swc00"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_tag_CstaSw"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_tag_CstaSw"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_tag_ajnot"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_tag_ajnot"),
ActorRel(NonMatching, "d_a_tag_attack_item"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_tag_attack_item"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_tag_gstart"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_tag_gstart"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_tag_hinit"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_tag_hinit"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_tag_hjump"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_tag_hjump"),
@ -1834,7 +1844,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_kytag15"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_kytag15"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_kytag16"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_kytag16"),
ActorRel(NonMatching, "d_a_mant"), ActorRel(NonMatching, "d_a_mant"),
ActorRel(NonMatching, "d_a_mg_fshop"), ActorRel(MatchingFor("GZ2E01"), "d_a_mg_fshop"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_mirror"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_mirror"),
ActorRel(NonMatching, "d_a_movie_player", extra_cflags=["-O3,p"]), ActorRel(NonMatching, "d_a_movie_player", extra_cflags=["-O3,p"]),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_myna"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_myna"),
@ -2129,7 +2139,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mhole"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mhole"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mie"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mie"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mirror_6pole"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mirror_6pole"),
ActorRel(NonMatching, "d_a_obj_mirror_chain"), ActorRel(Equivalent, "d_a_obj_mirror_chain"), # stack order
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mirror_sand"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mirror_sand"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mirror_screw"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mirror_screw"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mirror_table"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_mirror_table"),

21
include/CaptureScreen.h Normal file
View File

@ -0,0 +1,21 @@
#ifndef CAPTURESCREEN_H
#define CAPTURESCREEN_H
#include "JSystem/JFramework/JFWDisplay.h"
class CaptureScreen {
public:
CaptureScreen(const JFWDisplay*);
static int getAlignedWidthBytes(int);
static int getBmpBufferSize(int, int);
void makeBmpFromEfb(void*, int, int, int, int, int, int);
void openBmp(int, int);
void closeBmp();
void saveBmp(void*, u32);
/* 0x0 */ const JFWDisplay* mpDisplay;
/* 0x4 */ int field_0x4;
};
#endif /* CAPTURESCREEN_H */

View File

@ -72,6 +72,10 @@ public:
static JFWDisplay* getManager() { return sManager; } static JFWDisplay* getManager() { return sManager; }
static JFWDisplay* createManager(JKRHeap* i_heap, JUTXfb::EXfbNumber i_xfbNum, bool param_2) {
return createManager(NULL, i_heap, i_xfbNum, param_2);
}
bool startFadeOut(int param_0) { bool startFadeOut(int param_0) {
if (mFader != NULL) { if (mFader != NULL) {
return mFader->startFadeOut(param_0); return mFader->startFadeOut(param_0);

View File

@ -28,7 +28,7 @@ public:
void newGroupId(u8 groupId) { mGroupId = groupId; } void newGroupId(u8 groupId) { mGroupId = groupId; }
bool isValid() const { return mMagic == 'HM'; } bool isValid() const { return mMagic == 'HM'; }
bool _isTempMemBlock() const { return (mFlags & 0x80) ? true : false; } bool isTempMemBlock() const { return mFlags & 0x80; }
int getAlignment() const { return mFlags & 0x7f; } int getAlignment() const { return mFlags & 0x7f; }
void* getContent() const { return (void*)(this + 1); } void* getContent() const { return (void*)(this + 1); }
CMemBlock* getPrevBlock() const { return mPrev; } CMemBlock* getPrevBlock() const { return mPrev; }

View File

@ -68,4 +68,8 @@ inline JKRFileCache* JKRMountDvdDrive(const char* path, JKRHeap* heap, const cha
return JKRFileCache::mount(path, heap, param_2); return JKRFileCache::mount(path, heap, param_2);
} }
inline void JKRUnmountDvdDrive(JKRFileCache* filecache) {
filecache->unmount();
}
#endif /* JKRFILECACHE_H */ #endif /* JKRFILECACHE_H */

View File

@ -91,7 +91,7 @@ public:
void setDebugFill(bool debugFill) { mDebugFill = debugFill; } void setDebugFill(bool debugFill) { mDebugFill = debugFill; }
bool getDebugFill() const { return mDebugFill; } bool getDebugFill() const { return mDebugFill; }
void* getStartAddr() { return (void*)mStart; } void* getStartAddr() { return (void*)mStart; }
void* getEndAddr() const { return (void*)mEnd; } void* getEndAddr() { return (void*)mEnd; }
u32 getSize() const { return mSize; } u32 getSize() const { return mSize; }
bool getErrorFlag() const { return mErrorFlag; } bool getErrorFlag() const { return mErrorFlag; }
void callErrorHandler(JKRHeap* heap, u32 size, int alignment) { void callErrorHandler(JKRHeap* heap, u32 size, int alignment) {

View File

@ -9,12 +9,12 @@
*/ */
class JPADrawInfo { class JPADrawInfo {
public: public:
JPADrawInfo(Mtx param_0, f32 fovY, f32 aspect) { JPADrawInfo(const Mtx param_0, f32 fovY, f32 aspect) {
MTXCopy(param_0, mCamMtx); MTXCopy(param_0, mCamMtx);
C_MTXLightPerspective(mPrjMtx, fovY, aspect, 0.5f, -0.5f, 0.5f, 0.5f); C_MTXLightPerspective(mPrjMtx, fovY, aspect, 0.5f, -0.5f, 0.5f, 0.5f);
} }
JPADrawInfo(Mtx param_0, f32 top, f32 bottom, f32 left, f32 right) { JPADrawInfo(const Mtx param_0, f32 top, f32 bottom, f32 left, f32 right) {
MTXCopy(param_0, mCamMtx); MTXCopy(param_0, mCamMtx);
C_MTXLightOrtho(mPrjMtx, top, bottom, left, right, 0.5f, 0.5f, 0.5f, 0.5f); C_MTXLightOrtho(mPrjMtx, top, bottom, left, right, 0.5f, 0.5f, 0.5f, 0.5f);
} }
@ -24,6 +24,8 @@ public:
void getCamMtx(Mtx dst) const { MTXCopy(mCamMtx, dst); } void getCamMtx(Mtx dst) const { MTXCopy(mCamMtx, dst); }
void getPrjMtx(Mtx dst) const { MTXCopy(mPrjMtx, dst); } void getPrjMtx(Mtx dst) const { MTXCopy(mPrjMtx, dst); }
void setPrjMtx(const Mtx src) { MTXCopy(src, mPrjMtx); }
}; };
#endif #endif

View File

@ -110,7 +110,10 @@ public:
void stopMotor() { mRumble.stopMotor(mPortNum, false); } void stopMotor() { mRumble.stopMotor(mPortNum, false); }
void stopMotorHard() { mRumble.stopMotorHard(mPortNum); } void stopMotorHard() { mRumble.stopMotorHard(mPortNum); }
static s8 getPortStatus(u32 port) { return mPadStatus[port].err; } static s8 getPortStatus(EPadPort port) {
JUT_ASSERT(360, 0 <= port && port < 4);
return mPadStatus[port].err;
}
struct CButton { struct CButton {
CButton() { clear(); } CButton() { clear(); }

View File

@ -71,6 +71,19 @@ inline T cLib_maxLimit(T val, T max) {
return (T)ret; return (T)ret;
} }
template <typename T>
inline T cLib_minLimit(T val, T min) {
T ret;
if (val < min) {
ret = min;
} else {
ret = val;
}
return (T)ret;
}
template <typename T> template <typename T>
T cLib_getRndValue(T min, T range) { T cLib_getRndValue(T min, T range) {
return (T)(min + cM_rndF((f32)range)); return (T)(min + cM_rndF((f32)range));

View File

@ -36,7 +36,7 @@ struct fs_rod_s {
/* 0x4C */ int field_0x4c; /* 0x4C */ int field_0x4c;
/* 0x50 */ u8 field_0x50[0x54 - 0x50]; /* 0x50 */ u8 field_0x50[0x54 - 0x50];
/* 0x54 */ f32 field_0x54; /* 0x54 */ f32 field_0x54;
/* 0x58 */ u8 field_0x58[0x5C - 0x58]; /* 0x58 */ s16 field_0x58;
}; };
struct fs_lure_s { struct fs_lure_s {
@ -82,8 +82,9 @@ struct fs_koro2_s {
* @details * @details
* *
*/ */
class fshop_class : public fopAc_ac_c { class fshop_class {
public: public:
/* 0x0000 */ fopAc_ac_c actor;
/* 0x0568 */ request_of_phase_process_class mPhase; /* 0x0568 */ request_of_phase_process_class mPhase;
/* 0x0570 */ s16 field_0x0570; /* 0x0570 */ s16 field_0x0570;
/* 0x0572 */ s16 field_0x0572; /* 0x0572 */ s16 field_0x0572;

View File

@ -38,7 +38,7 @@ public:
/* 80C96E40 */ int createHeap(); /* 80C96E40 */ int createHeap();
/* 80C975EC */ void initBaseMtx(); /* 80C975EC */ void initBaseMtx();
/* 80C97618 */ void setBaseMtx(); /* 80C97618 */ void setBaseMtx();
/* 80C976B8 */ int draw(); /* 80C976B8 */ inline int draw();
/* 80C97988 */ int execute(); /* 80C97988 */ int execute();
inline ~daObjMirrorChain_c(); inline ~daObjMirrorChain_c();
inline void create_init(); inline void create_init();

View File

@ -1,5 +1,35 @@
#ifndef D_A_TAG_ATTACK_ITEM_H #ifndef D_A_TAG_ATTACK_ITEM_H
#define D_A_TAG_ATTACK_ITEM_H #define D_A_TAG_ATTACK_ITEM_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_event_lib.h"
#include "d/d_cc_d.h"
class daTagAtkItem_c : public fopAc_ac_c , public dEvLib_callback_c {
public:
daTagAtkItem_c() : dEvLib_callback_c(this) {}
/* 805A2958 */ void setBaseMtx();
/* 805A2990 */ int Create();
/* 805A2A34 */ int create();
/* 805A2C48 */ int execute();
/* 805A2CA8 */ void action();
/* 805A2D58 */ BOOL checkHit();
/* 805A2F54 */ void createItem();
/* 805A3038 */ int _delete();
/* 805A3118 */ virtual ~daTagAtkItem_c() {}
/* 805A2D10 */ virtual bool eventStart();
/* 805A2D34 */ virtual bool eventEnd();
u8 getEvId() { return fopAcM_GetParamBit(this, 0x18, 8); }
u8 getNum() { return fopAcM_GetParamBit(this, 8, 8); }
u8 getItemBit() { return fopAcM_GetParamBit(this, 0x10, 8); }
u8 getItemNo() { return fopAcM_GetParamBit(this, 0, 8); }
/* 0x57C */ u8 field_0x57C[0x584 - 0x57C];
/* 0x584 */ dCcD_Stts mCcStts;
/* 0x5C0 */ dCcD_Cyl mCyl;
};
#endif /* D_A_TAG_ATTACK_ITEM_H */ #endif /* D_A_TAG_ATTACK_ITEM_H */

View File

@ -10,6 +10,7 @@
#include "d/d_stage.h" #include "d/d_stage.h"
#include "d/actor/d_a_player.h" #include "d/actor/d_a_player.h"
#include "f_op/f_op_actor.h" #include "f_op/f_op_actor.h"
#include "m_Do/m_Do_graphic.h"
dAttention_c* dComIfGp_getAttention(); dAttention_c* dComIfGp_getAttention();
@ -1063,7 +1064,7 @@ public:
bool CheckFlag(u32 i_flag) { return mEventFlags & i_flag; } bool CheckFlag(u32 i_flag) { return mEventFlags & i_flag; }
void ResetView() { setView(0.0f, 0.0f, 608.0f, 448.0f); } void ResetView() { setView(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT); }
void clearInfo(dCamInfo_c* i_info, s16 param_1) { void clearInfo(dCamInfo_c* i_info, s16 param_1) {
i_info->field_0x1e = param_1; i_info->field_0x1e = param_1;

View File

@ -236,7 +236,7 @@ public:
/* 0x04F69 */ u8 mNeedLightDropNum; /* 0x04F69 */ u8 mNeedLightDropNum;
/* 0x04F6A */ u8 field_0x4f6a[18]; /* 0x04F6A */ u8 field_0x4f6a[18];
/* 0x04F7C */ u8 mMesgBgm; /* 0x04F7C */ u8 mMesgBgm;
/* 0x04F7D */ bool mPauseFlag; /* 0x04F7D */ u8 mPauseFlag;
/* 0x04F7E */ u8 mItemLifeCountType; /* 0x04F7E */ u8 mItemLifeCountType;
/* 0x04F7F */ u8 mOxygenShowFlag; /* 0x04F7F */ u8 mOxygenShowFlag;
/* 0x04F80 */ u8 mShow2D; /* 0x04F80 */ u8 mShow2D;
@ -715,7 +715,7 @@ public:
void setDirection(u8 i_dir) { mItemInfo.mDirection = i_dir; } void setDirection(u8 i_dir) { mItemInfo.mDirection = i_dir; }
bool& isPauseFlag() { return mItemInfo.mPauseFlag; } u8 isPauseFlag() { return mItemInfo.mPauseFlag; }
void offPauseFlag() { mItemInfo.mPauseFlag = false; } void offPauseFlag() { mItemInfo.mPauseFlag = false; }
void onPauseFlag() { mItemInfo.mPauseFlag = true; } void onPauseFlag() { mItemInfo.mPauseFlag = true; }
u8 getOxygenShowFlag() { return mItemInfo.mOxygenShowFlag; } u8 getOxygenShowFlag() { return mItemInfo.mOxygenShowFlag; }
@ -3095,7 +3095,7 @@ inline bool dComIfGp_isBottleSetFlag(u8 flag) {
return g_dComIfG_gameInfo.play.isBottleSetFlag(flag); return g_dComIfG_gameInfo.play.isBottleSetFlag(flag);
} }
inline bool dComIfGp_isPauseFlag() { inline u8 dComIfGp_isPauseFlag() {
return g_dComIfG_gameInfo.play.isPauseFlag(); return g_dComIfG_gameInfo.play.isPauseFlag();
} }
@ -4069,6 +4069,10 @@ inline JPABaseEmitter* dComIfGp_particle_getEmitter(u32 param_0) {
return g_dComIfG_gameInfo.play.getParticle()->getEmitter(param_0); return g_dComIfG_gameInfo.play.getParticle()->getEmitter(param_0);
} }
inline void dComIfGp_particle_levelExecute(u32 param_0) {
g_dComIfG_gameInfo.play.getParticle()->levelExecute(param_0);
}
inline u32 dComIfGp_particle_setSimpleFoot(u32 param_0, u32* param_1, cBgS_PolyInfo& param_2, inline u32 dComIfGp_particle_setSimpleFoot(u32 param_0, u32* param_1, cBgS_PolyInfo& param_2,
cXyz const* param_3, dKy_tevstr_c const* param_4, cXyz const* param_3, dKy_tevstr_c const* param_4,
int param_5, csXyz const* param_6, cXyz const* param_7, int param_5, csXyz const* param_6, cXyz const* param_7,

9
include/d/d_cursor_mng.h Normal file
View File

@ -0,0 +1,9 @@
#ifndef D_CURSOR_MNG_H
#define D_CURSOR_MNG_H
#include "m_Do/m_Re_controller_pad.h"
// TODO: putting this here until a more appropriate place is found
extern u8 data_8053a730;
#endif /* D_CURSOR_MNG_H */

View File

@ -312,6 +312,11 @@ bool dMeter2Info_isItemOpenCheck();
bool dMeter2Info_isMapOpenCheck(); bool dMeter2Info_isMapOpenCheck();
s16 dMeter2Info_getNowLifeGauge(); s16 dMeter2Info_getNowLifeGauge();
#if WIDESCREEN_SUPPORT
void dMeter2Info_onWide2D();
void dMeter2Info_offWide2D();
#endif
inline void dMeter2Info_Initialize() { inline void dMeter2Info_Initialize() {
g_meter2_info.init(); g_meter2_info.init();
} }

View File

@ -3,17 +3,27 @@
#include "JSystem/JUtility/TColor.h" #include "JSystem/JUtility/TColor.h"
#include "JSystem/JHostIO/JORReflexible.h" #include "JSystem/JHostIO/JORReflexible.h"
#include "JSystem/JHostIO/JORServer.h"
#include "SSystem/SComponent/c_sxyz.h" #include "SSystem/SComponent/c_sxyz.h"
#include "SSystem/SComponent/c_xyz.h" #include "SSystem/SComponent/c_xyz.h"
#include "global.h" #include "global.h"
struct subJOREventCallbackListNode : public JOREventCallbackListNode {
subJOREventCallbackListNode() : JOREventCallbackListNode(0x81000000, 0x81000000, true) {}
virtual int JORAct(u32, const char*);
virtual ~subJOREventCallbackListNode() {}
};
class JKRAramArchive; class JKRAramArchive;
class dMeter_menuHIO_c { class dMeter_menuHIO_c : public JORReflexible {
public: public:
/* 801FE330 */ dMeter_menuHIO_c(); /* 801FE330 */ dMeter_menuHIO_c();
/* 8020123C */ virtual ~dMeter_menuHIO_c() {} /* 8020123C */ virtual ~dMeter_menuHIO_c() {}
void genMessage(JORMContext*);
/* 0x0 */ // vtable /* 0x0 */ // vtable
/* 0x4 */ u8 field_0x4[2]; /* 0x4 */ u8 field_0x4[2];
/* 0x6 */ s16 mGameover; /* 0x6 */ s16 mGameover;
@ -21,11 +31,13 @@ public:
STATIC_ASSERT(sizeof(dMeter_menuHIO_c) == 8); STATIC_ASSERT(sizeof(dMeter_menuHIO_c) == 8);
class dMeter_drawCollectHIO_c { class dMeter_drawCollectHIO_c : public JORReflexible {
public: public:
dMeter_drawCollectHIO_c(); dMeter_drawCollectHIO_c();
virtual ~dMeter_drawCollectHIO_c() {} virtual ~dMeter_drawCollectHIO_c() {}
void genMessage(JORMContext*);
enum { enum {
/* 0x0 */ VESSEL_HEART, /* 0x0 */ VESSEL_HEART,
/* 0x1 */ VESSEL_DECOR /* 0x1 */ VESSEL_DECOR
@ -70,11 +82,13 @@ public:
/* 0x9C */ bool mButtonDebugON; /* 0x9C */ bool mButtonDebugON;
}; // Size = 0xA0 }; // Size = 0xA0
class dMeter_drawOptionHIO_c { class dMeter_drawOptionHIO_c : public JORReflexible {
public: public:
/* 801FE4EC */ dMeter_drawOptionHIO_c(); /* 801FE4EC */ dMeter_drawOptionHIO_c();
/* 80200F98 */ virtual ~dMeter_drawOptionHIO_c() {} /* 80200F98 */ virtual ~dMeter_drawOptionHIO_c() {}
void genMessage(JORMContext*);
enum OptionType { enum OptionType {
/* 0x0 */ ATTENTION, /* 0x0 */ ATTENTION,
/* 0x1 */ RUMBLE, /* 0x1 */ RUMBLE,
@ -106,11 +120,13 @@ public:
/* 0x6D */ u8 mBackgroundAlpha; /* 0x6D */ u8 mBackgroundAlpha;
}; // Size: 0x70 }; // Size: 0x70
class dMeter_drawLetterHIO_c { class dMeter_drawLetterHIO_c : public JORReflexible {
public: public:
/* 801FE5CC */ dMeter_drawLetterHIO_c(); /* 801FE5CC */ dMeter_drawLetterHIO_c();
/* 80200F50 */ virtual ~dMeter_drawLetterHIO_c() {} /* 80200F50 */ virtual ~dMeter_drawLetterHIO_c() {}
void genMessage(JORMContext*);
enum { enum {
/* 0x0 */ WINDOW_FRAME, /* 0x0 */ WINDOW_FRAME,
/* 0x1 */ LETTER_FRAME /* 0x1 */ LETTER_FRAME
@ -146,11 +162,13 @@ public:
/* 0x5F */ bool mDebugON; /* 0x5F */ bool mDebugON;
}; // Size: 0x60 }; // Size: 0x60
class dMeter_drawFishingHIO_c { class dMeter_drawFishingHIO_c : public JORReflexible {
public: public:
/* 801FE730 */ dMeter_drawFishingHIO_c(); /* 801FE730 */ dMeter_drawFishingHIO_c();
/* 80200F08 */ virtual ~dMeter_drawFishingHIO_c() {} /* 80200F08 */ virtual ~dMeter_drawFishingHIO_c() {}
void genMessage(JORMContext*);
enum { enum {
/* 0x0 */ HYLIAN_BASS, /* 0x0 */ HYLIAN_BASS,
/* 0x1 */ HYLIAN_LOACH, /* 0x1 */ HYLIAN_LOACH,
@ -196,11 +214,13 @@ public:
/* 0x250 */ bool mDebug; /* 0x250 */ bool mDebug;
}; // Size: 0x254 }; // Size: 0x254
class dMeter_drawInsectHIO_c { class dMeter_drawInsectHIO_c : public JORReflexible {
public: public:
/* 801FE8DC */ dMeter_drawInsectHIO_c(); /* 801FE8DC */ dMeter_drawInsectHIO_c();
/* 80200EC0 */ virtual ~dMeter_drawInsectHIO_c() {} /* 80200EC0 */ virtual ~dMeter_drawInsectHIO_c() {}
void genMessage(JORMContext*);
enum Type { enum Type {
/* 0x0 */ DEFAULT, /* 0x0 */ DEFAULT,
/* 0x1 */ COLLECT, /* 0x1 */ COLLECT,
@ -227,11 +247,13 @@ public:
/* 0x3D */ bool mDebugON; /* 0x3D */ bool mDebugON;
}; // Size: 0x40 }; // Size: 0x40
class dMeter_drawCalibrationHIO_c { class dMeter_drawCalibrationHIO_c : public JORReflexible {
public: public:
/* 801FE954 */ dMeter_drawCalibrationHIO_c(); /* 801FE954 */ dMeter_drawCalibrationHIO_c();
/* 80200E78 */ virtual ~dMeter_drawCalibrationHIO_c() {} /* 80200E78 */ virtual ~dMeter_drawCalibrationHIO_c() {}
void genMessage(JORMContext*);
/* 0x00 */ // vtable /* 0x00 */ // vtable
/* 0x04 */ u8 field_0x4[4]; /* 0x04 */ u8 field_0x4[4];
/* 0x08 */ f32 mCircleScale; /* 0x08 */ f32 mCircleScale;
@ -242,11 +264,13 @@ public:
/* 0x16 */ bool mDebug; /* 0x16 */ bool mDebug;
}; // Size: 0x18 }; // Size: 0x18
class dMeter_drawSkillHIO_c { class dMeter_drawSkillHIO_c : public JORReflexible {
public: public:
/* 801FE990 */ dMeter_drawSkillHIO_c(); /* 801FE990 */ dMeter_drawSkillHIO_c();
/* 80200E30 */ virtual ~dMeter_drawSkillHIO_c() {} /* 80200E30 */ virtual ~dMeter_drawSkillHIO_c() {}
void genMessage(JORMContext*);
enum { enum {
/* 0x0 */ WINDOW, /* 0x0 */ WINDOW,
/* 0x1 */ SKILL_DESC, /* 0x1 */ SKILL_DESC,
@ -280,11 +304,13 @@ public:
/* 0x5B */ bool mDebug; /* 0x5B */ bool mDebug;
}; // Size: 0x5C }; // Size: 0x5C
class dMeter_drawEmpButtonHIO_c { class dMeter_drawEmpButtonHIO_c : public JORReflexible {
public: public:
/* 801FEAF0 */ dMeter_drawEmpButtonHIO_c(); /* 801FEAF0 */ dMeter_drawEmpButtonHIO_c();
/* 80200DA0 */ virtual ~dMeter_drawEmpButtonHIO_c() {} /* 80200DA0 */ virtual ~dMeter_drawEmpButtonHIO_c() {}
void genMessage(JORMContext*);
/* 0x000 */ // vtable /* 0x000 */ // vtable
/* 0x004 */ u8 field_0x4[4]; /* 0x004 */ u8 field_0x4[4];
/* 0x008 */ f32 mEmpButtonPosX; /* 0x008 */ f32 mEmpButtonPosX;
@ -381,18 +407,14 @@ public:
/* 0x17C */ f32 mHawkeyeZoomPosY; /* 0x17C */ f32 mHawkeyeZoomPosY;
/* 0x180 */ f32 mHawkeyeZoomScale; /* 0x180 */ f32 mHawkeyeZoomScale;
/* 0x184 */ f32 mHawkeyeZoomScale_4x3; /* 0x184 */ f32 mHawkeyeZoomScale_4x3;
/* 0x188 */ f32 mHawkeyeTextIconPosX; /* 0x188 */ f32 mHawkeyeIconPosX[3];
/* 0x18C */ f32 mHawkeyeZoomTextPosX;
/* 0x190 */ f32 mHawkeyeIconPosX;
/* 0x194 */ f32 mHawkeyeTextIconPosY_4x3; /* 0x194 */ f32 mHawkeyeTextIconPosY_4x3;
/* 0x198 */ f32 mHawkeyeTextPosY_4x3; /* 0x198 */ f32 mHawkeyeTextPosY_4x3;
/* 0x19C */ f32 mHawkeyeIconPosY_4x3; /* 0x19C */ f32 mHawkeyeIconPosY_4x3;
/* 0x1A0 */ f32 mHawkeyeTextIconPosY; /* 0x1A0 */ f32 mHawkeyeTextIconPosY;
/* 0x1A4 */ f32 mHawkeyeZoomTextPosY; /* 0x1A4 */ f32 mHawkeyeZoomTextPosY;
/* 0x1A8 */ f32 mHawkeyeIconPosY; /* 0x1A8 */ f32 mHawkeyeIconPosY;
/* 0x1AC */ f32 mHawkeyeTextIconScale; /* 0x1AC */ f32 mHawkeyeIconScale[3];
/* 0x1B0 */ f32 mHawkeyeTextScale;
/* 0x1B4 */ f32 mHawkeyeIconScale;
/* 0x1B8 */ JUtility::TColor mPointerONBlack[2]; /* 0x1B8 */ JUtility::TColor mPointerONBlack[2];
/* 0x1C0 */ JUtility::TColor mPointerONWhite[2]; /* 0x1C0 */ JUtility::TColor mPointerONWhite[2];
/* 0x1C8 */ JUtility::TColor mPointerOFFBlack; /* 0x1C8 */ JUtility::TColor mPointerOFFBlack;
@ -432,11 +454,13 @@ public:
/* 0x25A */ bool mHawkeyeZoomDebugON; /* 0x25A */ bool mHawkeyeZoomDebugON;
}; // Size: 0x25C }; // Size: 0x25C
class dMeter_drawMiniGameHIO_c { class dMeter_drawMiniGameHIO_c : public JORReflexible {
public: public:
/* 801FEFF0 */ dMeter_drawMiniGameHIO_c(); /* 801FEFF0 */ dMeter_drawMiniGameHIO_c();
/* 80200DE8 */ virtual ~dMeter_drawMiniGameHIO_c() {} /* 80200DE8 */ virtual ~dMeter_drawMiniGameHIO_c() {}
void genMessage(JORMContext*);
/* 0x000 */ // vtable /* 0x000 */ // vtable
/* 0x004 */ u8 field_0x4[4]; /* 0x004 */ u8 field_0x4[4];
/* 0x008 */ f32 field_0x8[3]; /* 0x008 */ f32 field_0x8[3];
@ -506,11 +530,13 @@ public:
/* 0x18C */ s16 mReadyFightPikariAppearFrames; /* 0x18C */ s16 mReadyFightPikariAppearFrames;
}; // Size: 0x190 }; // Size: 0x190
class dMeter_drawLightDropHIO_c { class dMeter_drawLightDropHIO_c : public JORReflexible {
public: public:
/* 801FF31C */ dMeter_drawLightDropHIO_c(); /* 801FF31C */ dMeter_drawLightDropHIO_c();
/* 80200D58 */ virtual ~dMeter_drawLightDropHIO_c() {} /* 80200D58 */ virtual ~dMeter_drawLightDropHIO_c() {}
void genMessage(JORMContext*);
/* 0x00 */ // vtable /* 0x00 */ // vtable
/* 0x04 */ u8 field_0x4[4]; /* 0x04 */ u8 field_0x4[4];
/* 0x08 */ f32 mVesselScale; /* 0x08 */ f32 mVesselScale;
@ -555,11 +581,22 @@ public:
class dMeter_drawHIO_c : public JORReflexible { class dMeter_drawHIO_c : public JORReflexible {
public: public:
/* 801FF5B8 */ dMeter_drawHIO_c(); /* 801FF5B8 */ dMeter_drawHIO_c();
/* 80201128 */ virtual ~dMeter_drawHIO_c() {} /* 80201128 */ virtual ~dMeter_drawHIO_c() {
#if DEBUG
field_0x8_debug = 0;
#endif
}
#ifdef DEBUG #ifdef DEBUG
virtual void listenPropertyEvent(const JORPropertyEvent*); virtual void listenPropertyEvent(const JORPropertyEvent*);
virtual void genMessage(JORMContext*); virtual void genMessage(JORMContext*);
void updateFMsgDebug();
#endif
#if WIDESCREEN_SUPPORT
void updateOnWide();
void updateOffWide();
#endif #endif
/* 0x000 */ // vtable /* 0x000 */ // vtable
@ -916,11 +953,18 @@ public:
STATIC_ASSERT(sizeof(dMeter_drawHIO_c) == 3880); STATIC_ASSERT(sizeof(dMeter_drawHIO_c) == 3880);
class dMeter_ringHIO_c { class dMeter_ringHIO_c : public JORReflexible {
public: public:
/* 802001AC */ dMeter_ringHIO_c(); /* 802001AC */ dMeter_ringHIO_c();
/* 802010E0 */ virtual ~dMeter_ringHIO_c() {} /* 802010E0 */ virtual ~dMeter_ringHIO_c() {}
void genMessage(JORMContext*);
#if WIDESCREEN_SUPPORT
void updateOnWide();
void updateOffWide();
#endif
enum { enum {
/* 0x0 */ SET_ITEM, /* 0x0 */ SET_ITEM,
/* 0x1 */ DIRECT_SELECT, /* 0x1 */ DIRECT_SELECT,
@ -1007,11 +1051,13 @@ public:
STATIC_ASSERT(sizeof(dMeter_ringHIO_c) == 344); STATIC_ASSERT(sizeof(dMeter_ringHIO_c) == 344);
class dMeter_mapIconHIO_c { class dMeter_mapIconHIO_c : public JORReflexible {
public: public:
/* 802004B4 */ dMeter_mapIconHIO_c(); /* 802004B4 */ dMeter_mapIconHIO_c();
/* 80201028 */ virtual ~dMeter_mapIconHIO_c() {} /* 80201028 */ virtual ~dMeter_mapIconHIO_c() {}
void genMessage(JORMContext*);
enum { enum {
/* 0x00 */ ICON_PORTAL, /* 0x00 */ ICON_PORTAL,
/* 0x01 */ ICON_LINK, /* 0x01 */ ICON_LINK,
@ -1141,6 +1187,8 @@ public:
/* 802006C8 */ dMeter_fmapHIO_c(); /* 802006C8 */ dMeter_fmapHIO_c();
#ifdef DEBUG #ifdef DEBUG
void update(); void update();
void createEvtCallBackObject();
void deleteEvtCallBackObject();
virtual void listenPropertyEvent(const JORPropertyEvent*); virtual void listenPropertyEvent(const JORPropertyEvent*);
virtual void genMessage(JORMContext*); virtual void genMessage(JORMContext*);
@ -1148,11 +1196,17 @@ public:
/* 80200BCC */ virtual ~dMeter_fmapHIO_c(); /* 80200BCC */ virtual ~dMeter_fmapHIO_c();
/* 0x004 */ s8 field_0x4; /* 0x004 */ s8 field_0x4;
/* 0x008 */ JKRAramArchive* mpArchive; #if DEBUG
/* 0x00C */ void* field_0xc; /* 0x008 */ subJOREventCallbackListNode* mpEvtCallBack;
/* 0x010 */ void* field_0x10; #endif
/* 0x008 */ JKRAramArchive* mpArcData;
/* 0x00C */ void* mpArcFile;
/* 0x010 */ void* mpDecompBuf;
/* 0x014 */ void* field_0x14; /* 0x014 */ void* field_0x14;
/* 0x018 */ void* field_0x18; /* 0x018 */ void* field_0x18;
#if DEBUG
/* 0x020 */ u8 unk_0x20[4];
#endif
/* 0x01C */ MapBlinkAnime mMapBlink[3]; /* 0x01C */ MapBlinkAnime mMapBlink[3];
/* 0x094 */ s16 mDisplayFrameNum; /* 0x094 */ s16 mDisplayFrameNum;
/* 0x096 */ s16 mUndisplayFrameNum; /* 0x096 */ s16 mUndisplayFrameNum;
@ -1255,11 +1309,13 @@ public:
STATIC_ASSERT(sizeof(dMeter_fmapHIO_c) == 1188); STATIC_ASSERT(sizeof(dMeter_fmapHIO_c) == 1188);
class dMeter_cursorHIO_c { class dMeter_cursorHIO_c : public JORReflexible {
public: public:
/* 80200CD4 */ dMeter_cursorHIO_c(); /* 80200CD4 */ dMeter_cursorHIO_c();
/* 80201098 */ virtual ~dMeter_cursorHIO_c() {} /* 80201098 */ virtual ~dMeter_cursorHIO_c() {}
void genMessage(JORMContext*);
/* 0x04 */ s8 field_0x4; /* 0x04 */ s8 field_0x4;
/* 0x08 */ cXyz mSeraShopObjZoom; /* 0x08 */ cXyz mSeraShopObjZoom;
/* 0x14 */ cXyz mObjZoom; /* 0x14 */ cXyz mObjZoom;

View File

@ -409,6 +409,13 @@ public:
void levelAllForceOnEventMove() { field_0x210.allForceOnEventMove(); } void levelAllForceOnEventMove() { field_0x210.allForceOnEventMove(); }
void levelExecute(u32 param_0) {
level_c::emitter_c* emitter = field_0x210.get(param_0);
if (emitter != NULL) {
field_0x210.execute(emitter);
}
}
static void onStatus(u8 status) { mStatus |= status; } static void onStatus(u8 status) { mStatus |= status; }
static void offStatus(u8 status) { mStatus &= ~status; } static void offStatus(u8 status) { mStatus &= ~status; }
static bool isStatus(u8 status) { return mStatus & status; } static bool isStatus(u8 status) { return mStatus & status; }

View File

@ -798,6 +798,8 @@ enum {
/* 0x315 */ PROC_TIMER, /* 0x315 */ PROC_TIMER,
/* 0x316 */ PROC_METER2, /* 0x316 */ PROC_METER2,
/* 0x317 */ PROC_GAMEOVER, /* 0x317 */ PROC_GAMEOVER,
PROC_MAX_NUM,
}; };
#endif /* D_PROCNAME_H */ #endif /* D_PROCNAME_H */

View File

@ -5,22 +5,13 @@
#include "JSystem/JHostIO/JORReflexible.h" #include "JSystem/JHostIO/JORReflexible.h"
#include "JSystem/JFramework/JFWDisplay.h" #include "JSystem/JFramework/JFWDisplay.h"
#include "JSystem/JUtility/JUTAssert.h" #include "JSystem/JUtility/JUTAssert.h"
#include "CaptureScreen.h"
#include <string.h> #include <string.h>
void fapGm_After(); void fapGm_After();
void fapGm_Create(); void fapGm_Create();
void fapGm_Execute(); void fapGm_Execute();
struct CaptureScreen {
CaptureScreen(const JFWDisplay* i_display) {
field_0x0 = i_display;
field_0x4 = 0;
}
/* 0x0 */ const JFWDisplay* field_0x0;
/* 0x4 */ int field_0x4;
};
class fapGm_HIO_c : public JORReflexible { class fapGm_HIO_c : public JORReflexible {
public: public:
/* 80018944 */ fapGm_HIO_c(); /* 80018944 */ fapGm_HIO_c();
@ -42,6 +33,10 @@ public:
JUT_ASSERT(46, mCaptureScreen != NULL); JUT_ASSERT(46, mCaptureScreen != NULL);
} }
static u8 isCaptureScreen() {
return mCaptureScreenFlag;
}
static void onCpuTimer() { static void onCpuTimer() {
m_CpuTimerOn = TRUE; m_CpuTimerOn = TRUE;
} }
@ -81,7 +76,7 @@ public:
/* 0x17 */ u8 mDisplay2D; /* 0x17 */ u8 mDisplay2D;
/* 0x18 */ u8 mDisplayParticle; /* 0x18 */ u8 mDisplayParticle;
/* 0x19 */ u8 mDisplayProcessID; /* 0x19 */ u8 mDisplayProcessID;
#if DEBUG #if PLATFORM_WII || PLATFORM_SHIELD
/* 0x1A */ u8 mTrapFilter; /* 0x1A */ u8 mTrapFilter;
/* 0x1B */ u8 mGammaCorrection; /* 0x1B */ u8 mGammaCorrection;
#endif #endif
@ -119,7 +114,7 @@ inline BOOL fapGmHIO_isMenu() {
return g_HIO.mDisplayPrint & 2; return g_HIO.mDisplayPrint & 2;
} }
inline bool fapGmHIO_isPrint() { inline BOOL fapGmHIO_isPrint() {
return g_HIO.mDisplayPrint & 1; return g_HIO.mDisplayPrint & 1;
} }
@ -155,6 +150,20 @@ inline void fapGmHIO_onPrint() {
g_HIO.mDisplayPrint |= (u8)0x1; g_HIO.mDisplayPrint |= (u8)0x1;
} }
inline u8 fapGmHIO_getParticle() {
return g_HIO.mDisplayParticle;
}
#if PLATFORM_WII || PLATFORM_SHIELD
inline u8 fapGmHIO_getTrapFilter() {
return g_HIO.mTrapFilter;
}
inline u8 fapGmHIO_getGamma() {
return g_HIO.mGammaCorrection;
}
#endif
struct fapGm_dataMem { struct fapGm_dataMem {
enum HeapType_e { enum HeapType_e {
HeapType_Error_e, HeapType_Error_e,

View File

@ -59,7 +59,7 @@ public:
static s16 getSubStickAngle(u32 pad) { return getCpadInfo(pad).mCStickAngle; } static s16 getSubStickAngle(u32 pad) { return getCpadInfo(pad).mCStickAngle; }
static f32 getAnalogR(u32 pad) { return getCpadInfo(pad).mTriggerRight; } static f32 getAnalogR(u32 pad) { return getCpadInfo(pad).mTriggerRight; }
static f32 getAnalogL(u32 pad) { return getCpadInfo(pad).mTriggerLeft; } static f32 getAnalogL(u32 pad) { return getCpadInfo(pad).mTriggerLeft; }
static BOOL isConnect(u32 pad) { return JUTGamePad::getPortStatus(pad) == 0; } static BOOL isConnect(u32 pad) { return JUTGamePad::getPortStatus((JUTGamePad::EPadPort)pad) == 0; }
static void startMotorWave(u32 pad, void* data, JUTGamePad::CRumble::ERumble rumble, u32 length) { static void startMotorWave(u32 pad, void* data, JUTGamePad::CRumble::ERumble rumble, u32 length) {
m_gamePad[pad]->startMotorWave(data, rumble, length); m_gamePad[pad]->startMotorWave(data, rumble, length);
} }

View File

@ -12,8 +12,8 @@ public:
void check(); void check();
void diff(); void diff();
static void easyCreate(void*, s32); static FixedMemoryCheck* easyCreate(void*, s32);
static void easyCreate(void*, u32); static FixedMemoryCheck* easyCreate(void*, u32);
static void checkAll(); static void checkAll();
static void diffAll(); static void diffAll();
static void saveAll(); static void saveAll();

View File

@ -2,13 +2,22 @@
#define M_DO_M_DO_GRAPHIC_H #define M_DO_M_DO_GRAPHIC_H
#include "JSystem/JFramework/JFWDisplay.h" #include "JSystem/JFramework/JFWDisplay.h"
#include "dolphin/mtx.h" #include "m_Do/m_Do_mtx.h"
#include "global.h" #include "global.h"
#if WIDESCREEN_SUPPORT
#define FB_WIDTH (640)
#define FB_HEIGHT (456)
#else
#define FB_WIDTH (608)
#define FB_HEIGHT (448)
#endif
int mDoGph_Create(); int mDoGph_Create();
void mDoGph_drawFilterQuad(s8 param_0, s8 param_1); void mDoGph_drawFilterQuad(s8 param_0, s8 param_1);
struct ResTIMG; struct ResTIMG;
class JKRSolidHeap;
class mDoGph_gInf_c { class mDoGph_gInf_c {
public: public:
class bloom_c { class bloom_c {
@ -43,6 +52,20 @@ public:
/* 0x10 */ void* m_buffer; /* 0x10 */ void* m_buffer;
}; };
#if PLATFORM_WII || PLATFORM_SHIELD
class csr_c {
public:
virtual ~csr_c();
virtual bool isPointer();
void particleExecute();
static u32 m_blurID;
};
static void entryBaseCsr(csr_c*);
#endif
/* 80007E44 */ static void create(); /* 80007E44 */ static void create();
/* 80007F90 */ static void beginRender(); /* 80007F90 */ static void beginRender();
/* 800080D0 */ static void fadeOut(f32); /* 800080D0 */ static void fadeOut(f32);
@ -71,7 +94,7 @@ public:
static u8 isFade() { return mFade; } static u8 isFade() { return mFade; }
static void fadeIn_f(f32 i_fadeSpeed, _GXColor& i_fadeColor) { fadeOut_f(-i_fadeSpeed, i_fadeColor); } static void fadeIn_f(f32 i_fadeSpeed, _GXColor& i_fadeColor) { fadeOut_f(-i_fadeSpeed, i_fadeColor); }
static void offBlure() { mBlureFlag = false; } static void offBlure() { mBlureFlag = false; }
static bool isBlure() { return mBlureFlag; } static u8 isBlure() { return mBlureFlag; }
static void setBlureRate(u8 i_rate) { mBlureRate = i_rate; } static void setBlureRate(u8 i_rate) { mBlureRate = i_rate; }
static u8 getBlureRate() { return mBlureRate; } static u8 getBlureRate() { return mBlureRate; }
static MtxP getBlureMtx() { return mBlureMtx; } static MtxP getBlureMtx() { return mBlureMtx; }
@ -80,11 +103,15 @@ public:
static void setTickRate(u32 rate) { JFWDisplay::getManager()->setTickRate(rate); } static void setTickRate(u32 rate) { JFWDisplay::getManager()->setTickRate(rate); }
static void waitBlanking(int wait) { JFWDisplay::getManager()->waitBlanking(wait); } static void waitBlanking(int wait) { JFWDisplay::getManager()->waitBlanking(wait); }
static void setBlureMtx(const Mtx m) {
cMtx_copy(m, mBlureMtx);
}
static f32 getWidthF() { static f32 getWidthF() {
#if PLATFORM_WII || PLATFORM_SHIELD #if PLATFORM_WII || PLATFORM_SHIELD
return m_widthF; return m_widthF;
#else #else
return 608.0f; return FB_WIDTH;
#endif #endif
} }
@ -92,12 +119,12 @@ public:
#if PLATFORM_WII || PLATFORM_SHIELD #if PLATFORM_WII || PLATFORM_SHIELD
return m_heightF; return m_heightF;
#else #else
return 448.0f; return FB_HEIGHT;
#endif #endif
} }
static f32 getWidth() { return 608.0f; } static f32 getWidth() { return FB_WIDTH; }
static f32 getHeight() { return 448.0f; } static f32 getHeight() { return FB_HEIGHT; }
static f32 getMinYF() { static f32 getMinYF() {
#if PLATFORM_WII || PLATFORM_SHIELD #if PLATFORM_WII || PLATFORM_SHIELD
@ -119,7 +146,7 @@ public:
#if PLATFORM_WII || PLATFORM_SHIELD #if PLATFORM_WII || PLATFORM_SHIELD
return m_maxYF; return m_maxYF;
#else #else
return 448.0f; return FB_HEIGHT;
#endif #endif
} }
@ -127,15 +154,50 @@ public:
#if PLATFORM_WII || PLATFORM_SHIELD #if PLATFORM_WII || PLATFORM_SHIELD
return m_maxXF; return m_maxXF;
#else #else
return 608.0f; return FB_WIDTH;
#endif
}
static f32 getAspect() {
#if WIDESCREEN_SUPPORT
return m_aspect;
#else
return 1.3571428f;
#endif
}
static int getMinY() {
#if WIDESCREEN_SUPPORT
return m_minY;
#else
return 0;
#endif
}
static int getMinX() {
#if WIDESCREEN_SUPPORT
return m_minX;
#else
return 0;
#endif
}
static int getMaxY() {
#if WIDESCREEN_SUPPORT
return m_maxY;
#else
return FB_HEIGHT;
#endif
}
static int getMaxX() {
#if WIDESCREEN_SUPPORT
return m_maxX;
#else
return FB_WIDTH;
#endif #endif
} }
static f32 getAspect() { return 1.3571428f; }
static int getMinY() { return 0; }
static int getMinX() { return 0; }
static int getMaxY() { return 448; }
static int getMaxX() { return 608; }
static ResTIMG* getFrameBufferTimg() { return mFrameBufferTimg; } static ResTIMG* getFrameBufferTimg() { return mFrameBufferTimg; }
static ResTIMG* getZbufferTimg() { return mZbufferTimg; } static ResTIMG* getZbufferTimg() { return mZbufferTimg; }
static void* getFrameBufferTex() { return mFrameBufferTex; } static void* getFrameBufferTex() { return mFrameBufferTex; }
@ -148,9 +210,6 @@ public:
static void endRender() { JFWDisplay::getManager()->endRender(); } static void endRender() { JFWDisplay::getManager()->endRender(); }
static GXTexObj* getZbufferTexObj() { return &mZbufferTexObj; } static GXTexObj* getZbufferTexObj() { return &mZbufferTexObj; }
static GXTexObj* getFrameBufferTexObj() { return &mFrameBufferTexObj; } static GXTexObj* getFrameBufferTexObj() { return &mFrameBufferTexObj; }
static f32 getInvScale() { return 1.0f; }
static f32 getScale() { return 1.0f; }
static void setWideZoomLightProjection(Mtx m) {}
static void setFrameRate(u16 i_rate) { JFWDisplay::getManager()->setFrameRate(i_rate); } static void setFrameRate(u16 i_rate) { JFWDisplay::getManager()->setFrameRate(i_rate); }
static int getFrameBufferSize() { static int getFrameBufferSize() {
@ -162,22 +221,30 @@ public:
return JFWDisplay::getManager()->getXfbManager()->getDisplayingXfb(); return JFWDisplay::getManager()->getXfbManager()->getDisplayingXfb();
} }
// NONMATCHING - Need to define all mDoGph_gInf_c shieldD members static f32 getInvScale() {
static u8 isWide() { #if WIDESCREEN_SUPPORT
#if PLATFORM_WII || PLATFORM_SHIELD return m_invScale;
return mWide == TRUE;
#else #else
return false; return 1.0f;
#endif #endif
} }
static void onWideZoom() { static f32 getScale() { return 1.0f; }
//TODO
}
static void offWideZoom() { #if WIDESCREEN_SUPPORT
//TODO static void setTvSize();
}
static void onWide();
static void offWide();
static u8 isWide();
static void onWideZoom();
static void offWideZoom();
static BOOL isWideZoom();
static void setWideZoomProjection(Mtx44& m);
static void setWideZoomLightProjection(Mtx& m);
#endif
static GXTexObj mFrameBufferTexObj; static GXTexObj mFrameBufferTexObj;
static GXTexObj mZbufferTexObj; static GXTexObj mZbufferTexObj;
@ -192,28 +259,57 @@ public:
static void* mZbufferTex; static void* mZbufferTex;
static f32 mFadeRate; static f32 mFadeRate;
static f32 mFadeSpeed; static f32 mFadeSpeed;
static bool mBlureFlag; static u8 mBlureFlag;
static u8 mBlureRate; static u8 mBlureRate;
static u8 mFade; static u8 mFade;
static bool mAutoForcus; static bool mAutoForcus;
#if PLATFORM_WII || PLATFORM_SHIELD #if PLATFORM_SHIELD
static JKRHeap* getHeap() { static JKRHeap* getHeap() {
return m_heap; return m_heap;
} }
static void setHeap(JKRSolidHeap* i_heap) {
m_heap = (JKRHeap*)i_heap;
}
static JKRHeap* m_heap; static JKRHeap* m_heap;
#endif
#if PLATFORM_WII || PLATFORM_SHIELD
static void resetDimming();
static csr_c* m_baseCsr;
static csr_c* m_csr;
static cXyz m_nowEffPos; static cXyz m_nowEffPos;
static cXyz m_oldEffPos; static cXyz m_oldEffPos;
static cXyz m_oldOldEffPos; static cXyz m_oldOldEffPos;
#endif
#if WIDESCREEN_SUPPORT
static u8 mWide; static u8 mWide;
static u8 mWideZoom;
static ResTIMG* m_fullFrameBufferTimg; static ResTIMG* m_fullFrameBufferTimg;
static void* m_fullFrameBufferTex; static void* m_fullFrameBufferTex;
static GXTexObj m_fullFrameBufferTexObj; static GXTexObj m_fullFrameBufferTexObj;
static f32 m_aspect;
static f32 m_scale;
static f32 m_invScale;
static f32 m_minXF; static f32 m_minXF;
static f32 m_minYF; static f32 m_minYF;
static int m_minX;
static int m_minY;
static f32 m_maxXF; static f32 m_maxXF;
static f32 m_maxYF; static f32 m_maxYF;
static int m_maxX;
static int m_maxY;
static int m_width;
static int m_height;
static f32 m_heightF; static f32 m_heightF;
static f32 m_widthF; static f32 m_widthF;
#endif #endif

View File

@ -45,7 +45,7 @@ inline void mDoMtx_multVecArray(Mtx m, const Vec* src, Vec* dst, u32 count) {
} }
inline void mDoMtx_copy(const Mtx src, Mtx dst) { inline void mDoMtx_copy(const Mtx src, Mtx dst) {
MTXCopy(src, dst); PSMTXCopy(src, dst);
} }
inline void mDoMtx_trans(Mtx m, f32 x, f32 y, f32 z) { inline void mDoMtx_trans(Mtx m, f32 x, f32 y, f32 z) {

View File

@ -29,6 +29,10 @@ void* VIGetCurrentFrameBuffer(void);
u32 VIGetScanMode(void); u32 VIGetScanMode(void);
u32 VIGetDTVStatus(void); u32 VIGetDTVStatus(void);
void VISetTrapFilter(u8);
void VIEnableDimming(BOOL);
void VISetGamma(int);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

30
src/CaptureScreen.cpp Normal file
View File

@ -0,0 +1,30 @@
#include "CaptureScreen.h"
CaptureScreen::CaptureScreen(const JFWDisplay* pDisplay) {
mpDisplay = pDisplay;
field_0x4 = 0;
}
int CaptureScreen::getAlignedWidthBytes(int param_0) {
return ROUND((param_0 * 4) - param_0, 4);
}
int CaptureScreen::getBmpBufferSize(int param_0, int param_1) {
return param_1 * getAlignedWidthBytes(param_0) + 0x36;
}
void CaptureScreen::makeBmpFromEfb(void* param_0, int param_1, int param_2, int param_3, int param_4, int param_5, int param_6) {
// NONMATCHING
}
void CaptureScreen::openBmp(int param_0, int param_1) {
// NONMATCHING
}
void CaptureScreen::closeBmp() {
// NONMATCHING
}
void CaptureScreen::saveBmp(void* param_0, u32 param_1) {
// NONMATCHING
}

View File

@ -826,7 +826,7 @@ bool JKRExpHeap::dump() {
} }
JUTReportConsole_f("%s %08x: %08x %3d %3d (%08x %08x)\n", JUTReportConsole_f("%s %08x: %08x %3d %3d (%08x %08x)\n",
block->_isTempMemBlock() ? " temp" : "alloc", block->getContent(), block->isTempMemBlock() ? " temp" : "alloc", block->getContent(),
block->size, block->mGroupId, block->getAlignment(), block->mPrev, block->size, block->mGroupId, block->getAlignment(), block->mPrev,
block->mNext); block->mNext);
usedBytes += sizeof(CMemBlock) + block->size + block->getAlignment(); usedBytes += sizeof(CMemBlock) + block->size + block->getAlignment();
@ -886,7 +886,7 @@ bool JKRExpHeap::dump_sort() {
int offset = block->getAlignment(); int offset = block->getAlignment();
void* content = block->getContent(); void* content = block->getContent();
const char* type = block->_isTempMemBlock() ? " temp" : "alloc"; const char* type = block->isTempMemBlock() ? " temp" : "alloc";
JUTReportConsole_f("%s %08x: %08x %3d %3d (%08x %08x)\n", type, content, block->size, JUTReportConsole_f("%s %08x: %08x %3d %3d (%08x %08x)\n", type, content, block->size,
block->getGroupId(), offset, block->mPrev, block->mNext); block->getGroupId(), offset, block->mPrev, block->mNext);
usedBytes += sizeof(CMemBlock) + block->size + block->getAlignment(); usedBytes += sizeof(CMemBlock) + block->size + block->getAlignment();

View File

@ -70,7 +70,7 @@ double sqrt(double);
double tan(double); double tan(double);
float tanf(float); float tanf(float);
#if PLATFORM_SHIELD #if PLATFORM_WII || PLATFORM_SHIELD
inline float sqrtf(float mag) { inline float sqrtf(float mag) {
return sqrt(mag); return sqrt(mag);
} }

View File

@ -10,6 +10,11 @@
#include "d/d_com_inf_game.h" #include "d/d_com_inf_game.h"
#include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_ext.h"
#if DEBUG
#include "f_pc/f_pc_debug_sv.h"
#include "m_Do/m_Do_ext2.h"
#endif
/* 80374640-80375DE8 -00001 17A8+00 1/1 0/0 0/0 .rodata DynamicNameTable */ /* 80374640-80375DE8 -00001 17A8+00 1/1 0/0 0/0 .rodata DynamicNameTable */
static DynamicNameTableEntry const DynamicNameTable[] = { static DynamicNameTableEntry const DynamicNameTable[] = {
{PROC_ALLDIE, "d_a_alldie"}, {PROC_ALLDIE, "d_a_alldie"},
@ -17,6 +22,9 @@ static DynamicNameTableEntry const DynamicNameTable[] = {
{PROC_Obj_Swpush2, "d_a_obj_swpush2"}, {PROC_Obj_Swpush2, "d_a_obj_swpush2"},
{PROC_Obj_Swpush5, "d_a_obj_swpush5"}, {PROC_Obj_Swpush5, "d_a_obj_swpush5"},
{PROC_Tag_Gstart, "d_a_tag_gstart"}, {PROC_Tag_Gstart, "d_a_tag_gstart"},
#if PLATFORM_WII || PLATFORM_SHIELD
{PROC_NO_CHG_ROOM, "d_a_no_chg_room"},
#endif
{PROC_Obj_Lv6ElevtA, "d_a_obj_lv6elevta"}, {PROC_Obj_Lv6ElevtA, "d_a_obj_lv6elevta"},
{PROC_OBJ_SO, "d_a_obj_so"}, {PROC_OBJ_SO, "d_a_obj_so"},
{PROC_Obj_Movebox, "d_a_obj_movebox"}, {PROC_Obj_Movebox, "d_a_obj_movebox"},
@ -91,7 +99,9 @@ static DynamicNameTableEntry const DynamicNameTable[] = {
{PROC_Obj_BkDoor, "d_a_obj_bkdoor"}, {PROC_Obj_BkDoor, "d_a_obj_bkdoor"},
{PROC_Obj_Cboard, "d_a_obj_cboard"}, {PROC_Obj_Cboard, "d_a_obj_cboard"},
{PROC_Obj_MGate, "d_a_obj_mgate"}, {PROC_Obj_MGate, "d_a_obj_mgate"},
#if !PLATFORM_SHIELD
{PROC_Obj_Ikada, "d_a_obj_ikada"}, {PROC_Obj_Ikada, "d_a_obj_ikada"},
#endif
{PROC_Obj_Ice_l, "d_a_obj_ice_l"}, {PROC_Obj_Ice_l, "d_a_obj_ice_l"},
{PROC_Obj_Ice_s, "d_a_obj_ice_s"}, {PROC_Obj_Ice_s, "d_a_obj_ice_s"},
{PROC_Obj_E_CREATE, "d_a_obj_enemy_create"}, {PROC_Obj_E_CREATE, "d_a_obj_enemy_create"},
@ -530,14 +540,18 @@ static DynamicNameTableEntry const DynamicNameTable[] = {
{PROC_Obj_LifeContainer, "d_a_obj_life_container"}, {PROC_Obj_LifeContainer, "d_a_obj_life_container"},
{PROC_Obj_Shield, "d_a_obj_shield"}, {PROC_Obj_Shield, "d_a_obj_shield"},
{PROC_Demo_Item, "d_a_demo_item"}, {PROC_Demo_Item, "d_a_demo_item"},
#if !PLATFORM_SHIELD
{PROC_ShopItem, "d_a_shop_item"}, {PROC_ShopItem, "d_a_shop_item"},
#endif
{PROC_Obj_Drop, "d_a_obj_drop"}, {PROC_Obj_Drop, "d_a_obj_drop"},
{PROC_OBJ_RW, "d_a_obj_rw"}, {PROC_OBJ_RW, "d_a_obj_rw"},
{PROC_NBOMB, "d_a_nbomb"}, {PROC_NBOMB, "d_a_nbomb"},
{PROC_TAG_CSW, "d_a_tag_csw"}, {PROC_TAG_CSW, "d_a_tag_csw"},
{PROC_TAG_QS, "d_a_tag_qs"}, {PROC_TAG_QS, "d_a_tag_qs"},
{PROC_HOZELDA, "d_a_hozelda"}, {PROC_HOZELDA, "d_a_hozelda"},
#if !PLATFORM_SHIELD
{PROC_SWC00, "d_a_swc00"}, {PROC_SWC00, "d_a_swc00"},
#endif
{PROC_KNOB20, "d_a_door_knob00"}, {PROC_KNOB20, "d_a_door_knob00"},
{PROC_DBDOOR, "d_a_door_dbdoor00"}, {PROC_DBDOOR, "d_a_door_dbdoor00"},
{PROC_BOSS_DOOR, "d_a_door_boss"}, {PROC_BOSS_DOOR, "d_a_door_boss"},
@ -549,7 +563,9 @@ static DynamicNameTableEntry const DynamicNameTable[] = {
{PROC_Tag_ChgRestart, "d_a_tag_chgrestart"}, {PROC_Tag_ChgRestart, "d_a_tag_chgrestart"},
{PROC_Tag_Restart, "d_a_tag_setrestart"}, {PROC_Tag_Restart, "d_a_tag_setrestart"},
{PROC_ANDSW, "d_a_andsw"}, {PROC_ANDSW, "d_a_andsw"},
#if !PLATFORM_SHIELD
{PROC_ANDSW2, "d_a_andsw2"}, {PROC_ANDSW2, "d_a_andsw2"},
#endif
{PROC_MYNA, "d_a_myna"}, {PROC_MYNA, "d_a_myna"},
{PROC_NPC_GND, "d_a_npc_gnd"}, {PROC_NPC_GND, "d_a_npc_gnd"},
{PROC_NPC_GRA, "d_a_npc_gra"}, {PROC_NPC_GRA, "d_a_npc_gra"},
@ -668,10 +684,14 @@ static DynamicNameTableEntry const DynamicNameTable[] = {
{PROC_NPC_CHIN, "d_a_npc_chin"}, {PROC_NPC_CHIN, "d_a_npc_chin"},
{PROC_NPC_INS, "d_a_npc_ins"}, {PROC_NPC_INS, "d_a_npc_ins"},
{PROC_NPC_SHOP0, "d_a_npc_shop0"}, {PROC_NPC_SHOP0, "d_a_npc_shop0"},
#if !PLATFORM_SHIELD
{PROC_NPC_MK, "d_a_npc_mk"}, {PROC_NPC_MK, "d_a_npc_mk"},
#endif
{PROC_NPC_P2, "d_a_npc_p2"}, {PROC_NPC_P2, "d_a_npc_p2"},
{PROC_KYTAG00, "d_a_kytag00"}, {PROC_KYTAG00, "d_a_kytag00"},
#if !PLATFORM_SHIELD
{PROC_KYTAG01, "d_a_kytag01"}, {PROC_KYTAG01, "d_a_kytag01"},
#endif
{PROC_KYTAG02, "d_a_kytag02"}, {PROC_KYTAG02, "d_a_kytag02"},
{PROC_KYTAG03, "d_a_kytag03"}, {PROC_KYTAG03, "d_a_kytag03"},
{PROC_KYTAG04, "d_a_kytag04"}, {PROC_KYTAG04, "d_a_kytag04"},
@ -709,11 +729,15 @@ static DynamicNameTableEntry const DynamicNameTable[] = {
{PROC_DEMO00, "d_a_demo00"}, {PROC_DEMO00, "d_a_demo00"},
{PROC_TAG_CAMERA, "d_a_tag_camera"}, {PROC_TAG_CAMERA, "d_a_tag_camera"},
{PROC_TAG_CHKPOINT, "d_a_tag_chkpoint"}, {PROC_TAG_CHKPOINT, "d_a_tag_chkpoint"},
#if !PLATFORM_SHIELD
{PROC_TAG_EVENT, "d_a_tag_event"}, {PROC_TAG_EVENT, "d_a_tag_event"},
#endif
{PROC_TAG_EVT, "d_a_tag_evt"}, {PROC_TAG_EVT, "d_a_tag_evt"},
{PROC_TAG_TELOP, "d_a_tag_telop"}, {PROC_TAG_TELOP, "d_a_tag_telop"},
{PROC_TAG_HOWL, "d_a_tag_howl"}, {PROC_TAG_HOWL, "d_a_tag_howl"},
#if !PLATFORM_SHIELD
{PROC_TAG_MSG, "d_a_tag_msg"}, {PROC_TAG_MSG, "d_a_tag_msg"},
#endif
{PROC_TAG_LANTERN, "d_a_tag_lantern"}, {PROC_TAG_LANTERN, "d_a_tag_lantern"},
{PROC_Tag_Mist, "d_a_tag_mist"}, {PROC_Tag_Mist, "d_a_tag_mist"},
{PROC_DMIDNA, "d_a_dmidna"}, {PROC_DMIDNA, "d_a_dmidna"},
@ -724,7 +748,9 @@ static DynamicNameTableEntry const DynamicNameTable[] = {
{PROC_BG_OBJ, "d_a_bg_obj"}, {PROC_BG_OBJ, "d_a_bg_obj"},
{PROC_MIRROR, "d_a_mirror"}, {PROC_MIRROR, "d_a_mirror"},
{PROC_MOVIE_PLAYER, "d_a_movie_player"}, {PROC_MOVIE_PLAYER, "d_a_movie_player"},
#if !PLATFORM_SHIELD
{PROC_TITLE, "d_a_title"}, {PROC_TITLE, "d_a_title"},
#endif
{PROC_FR, "d_a_fr"}, {PROC_FR, "d_a_fr"},
{PROC_ECONT, "d_a_econt"}, {PROC_ECONT, "d_a_econt"},
{PROC_MG_ROD, "d_a_mg_rod"}, {PROC_MG_ROD, "d_a_mg_rod"},
@ -767,70 +793,134 @@ static DynamicNameTableEntry const DynamicNameTable[] = {
{PROC_Obj_Timer, "d_a_obj_timer"}, {PROC_Obj_Timer, "d_a_obj_timer"},
{PROC_SCENE_EXIT, "d_a_scene_exit"}, {PROC_SCENE_EXIT, "d_a_scene_exit"},
{PROC_SUSPEND, "d_a_suspend"}, {PROC_SUSPEND, "d_a_suspend"},
#if !PLATFORM_SHIELD
{PROC_GRASS, "d_a_grass"}, {PROC_GRASS, "d_a_grass"},
#endif
{0xFFFF, NULL}, {0xFFFF, NULL},
}; };
/* 803F0F50-803F1BB0 01DC70 0C60+00 4/4 0/0 0/0 .bss DMC */ /* 803F0F50-803F1BB0 01DC70 0C60+00 4/4 0/0 0/0 .bss DMC */
static DynamicModuleControlBase* DMC[792]; static DynamicModuleControlBase* DMC[PROC_MAX_NUM];
/* 80450CA8-80450CAC 0001A8 0004+00 1/1 0/0 0/0 .sbss None */ /* 80450CA8-80450CAC 0001A8 0004+00 1/1 0/0 0/0 .sbss None */
static bool DMC_initialized; static bool DMC_initialized;
/* 80450CAC-80450CB0 0001AC 0004+00 2/2 0/0 0/0 .sbss cDyl_Initialized */
static BOOL cDyl_Initialized;
/* 800183DC-80018544 012D1C 0168+00 1/1 0/0 0/0 .text cCc_Init__Fv */ /* 800183DC-80018544 012D1C 0168+00 1/1 0/0 0/0 .text cCc_Init__Fv */
static int cCc_Init() { int cCc_Init() {
JKRHeap* arcHeap = mDoExt_getArchiveHeap(); JUT_ASSERT(37, !DMC_initialized);
JKRSolidHeap* heap = JKRSolidHeap::create(0x8820, arcHeap, false);
JKRHeap* prev = heap->becomeCurrentHeap(); #if PLATFORM_GCN
JKRHeap* parentHeap = mDoExt_getArchiveHeap();
#else
JKRHeap* parentHeap = DynamicModuleControlBase::getHeap();
#endif
u32 dmcHeapSize = sizeof(DynamicModuleControl) * PROC_MAX_NUM;
JKRSolidHeap* dmcHeap = JKRCreateSolidHeap(dmcHeapSize, parentHeap, false);
JKRHeap* prevHeap = JKRSetCurrentHeap(dmcHeap);
memset(&DMC, 0, sizeof(DMC)); memset(&DMC, 0, sizeof(DMC));
for (int i = 0; i < ARRAY_SIZEU(DynamicNameTable); i++) {
const DynamicNameTableEntry* d = &DynamicNameTable[i];
if (d->name != NULL) { for (int i = 0; i < ARRAY_SIZEU(DynamicNameTable); i++) {
const DynamicNameTableEntry& d = DynamicNameTable[i];
if (d.name != NULL) {
JUT_ASSERT(52, d.mKey < ARRAY_SIZEU(DMC));
JUT_ASSERT(53, DMC[d.mKey] == NULL);
for (int j = 0; j < ARRAY_SIZEU(DMC); j++) { for (int j = 0; j < ARRAY_SIZEU(DMC); j++) {
if (DMC[j] != NULL) { if (DMC[j] != NULL) {
if (!strcmp(d->name, DMC[j]->getModuleName())) { if (!strcmp(d.name, DMC[j]->getModuleName())) {
DMC[d->mKey] = DMC[j]; DMC[d.mKey] = DMC[j];
break; break;
} }
} }
} }
if (DMC[d->mKey] == NULL) { if (DMC[d.mKey] == NULL) {
DMC[d->mKey] = new DynamicModuleControl(d->name); DMC[d.mKey] = new DynamicModuleControl(d.name);
} }
} }
} }
heap->adjustSize(); dmcHeap->adjustSize();
prev->becomeCurrentHeap(); JKRSetCurrentHeap(prevHeap);
#if DEBUG
FixedMemoryCheck* check = FixedMemoryCheck::easyCreate(DMC, sizeof(DMC));
#endif
DMC_initialized = true; DMC_initialized = true;
return 1; return 1;
} }
BOOL cCc_Check() {
BOOL rt = TRUE;
for (int i = 0; i < ARRAY_SIZEU(DynamicNameTable); i++) {
uintptr_t ptr = (uintptr_t)DMC[i];
if (ptr != NULL) {
u32 ptr_hi_byte = ptr >> 0x18;
if (ptr_hi_byte < 0x80 || ptr_hi_byte > 0x83) {
// "cCc_Check invalid pointer detected"
OS_REPORT_ERROR("cCc_Check ポインタ破壊を発見 %d %08x\n", i, ptr);
rt = FALSE;
}
}
}
return rt;
}
BOOL cDyl_IsInitialized() {
return cDyl_Initialized;
}
/* 80018544-8001857C 012E84 0038+00 0/0 1/1 0/0 .text cDyl_IsLinked__Fs */ /* 80018544-8001857C 012E84 0038+00 0/0 1/1 0/0 .text cDyl_IsLinked__Fs */
BOOL cDyl_IsLinked(s16 i_ProfName) { BOOL cDyl_IsLinked(s16 i_ProfName) {
if (DMC[i_ProfName] != NULL) { JUT_ASSERT(183, cDyl_Initialized);
return DMC[i_ProfName]->isLinked();
DynamicModuleControlBase* d = DMC[i_ProfName];
BOOL rt;
if (d != NULL) {
rt = d->isLinked();
} else {
rt = TRUE;
} }
return true;
return rt;
} }
/* 8001857C-800185C0 012EBC 0044+00 1/1 1/1 0/0 .text cDyl_Unlink__Fs */ /* 8001857C-800185C0 012EBC 0044+00 1/1 1/1 0/0 .text cDyl_Unlink__Fs */
BOOL cDyl_Unlink(s16 i_ProfName) { BOOL cDyl_Unlink(s16 i_ProfName) {
if (DMC[i_ProfName] != NULL) { #if DEBUG
return DMC[i_ProfName]->unlink(); cCc_Check();
} #endif
return false;
}
/* 80450CAC-80450CB0 0001AC 0004+00 2/2 0/0 0/0 .sbss cDyl_Initialized */ JUT_ASSERT(206, cDyl_Initialized);
static BOOL cDyl_Initialized; JUT_ASSERT(207, i_ProfName < ARRAY_SIZEU(DMC));
DynamicModuleControlBase* d = DMC[i_ProfName];
if (d != NULL) {
return d->unlink();
}
return FALSE;
}
/* 800185C0-80018688 012F00 00C8+00 1/1 1/1 0/0 .text cDyl_LinkASync__Fs */ /* 800185C0-80018688 012F00 00C8+00 1/1 1/1 0/0 .text cDyl_LinkASync__Fs */
int cDyl_LinkASync(s16 i_ProfName) { int cDyl_LinkASync(s16 i_ProfName) {
if (cDyl_Initialized == false) { #if DEBUG
cCc_Check();
#endif
JUT_ASSERT(266, DMC_initialized);
if (!cDyl_Initialized) {
OS_REPORT_ERROR("初期化が終わってないのに呼んでもらっても困ります %d %s\n", i_ProfName, fpcDbSv_getNameString(i_ProfName));
return cPhs_INIT_e; return cPhs_INIT_e;
} }
@ -839,8 +929,12 @@ int cDyl_LinkASync(s16 i_ProfName) {
return cPhs_ERROR_e; return cPhs_ERROR_e;
} }
JUT_ASSERT(282, i_ProfName < ARRAY_SIZEU(DMC));
DynamicModuleControlBase* d = DMC[i_ProfName]; DynamicModuleControlBase* d = DMC[i_ProfName];
if (d != NULL) { if (d != NULL) {
JUT_ASSERT(286, cDyl_Initialized);
if (d->load_async()) { if (d->load_async()) {
if (d->link()) { if (d->link()) {
return cPhs_COMPLEATE_e; return cPhs_COMPLEATE_e;
@ -859,71 +953,85 @@ int cDyl_LinkASync(s16 i_ProfName) {
/* 80018688-80018764 012FC8 00DC+00 1/1 0/0 0/0 .text cDyl_InitCallback__FPv */ /* 80018688-80018764 012FC8 00DC+00 1/1 0/0 0/0 .text cDyl_InitCallback__FPv */
static int cDyl_InitCallback(void* param_0) { static int cDyl_InitCallback(void* param_0) {
JKRExpHeap* heap = mDoExt_getArchiveHeap(); JUT_ASSERT(335, !cDyl_Initialized);
JKRFileLoader* loader = JKRFileCache::mount("/", heap, NULL);
#if PLATFORM_GCN
JKRHeap* parentHeap = mDoExt_getArchiveHeap();
#else
JKRHeap* parentHeap = DynamicModuleControlBase::getHeap();
#endif
JKRFileCache* loader = JKRMountDvdDrive("/", parentHeap, NULL);
DynamicModuleControl::initialize(); DynamicModuleControl::initialize();
void* strTbl = JKRFileLoader::getGlbResource("/dvd/str/Final/Release/frameworkF.str"); #if PLATFORM_GCN
JKRFileLoader::detachResource(strTbl, loader); void* strTbl = JKRGetResource("/dvd/str/Final/Release/frameworkF.str");
loader->unmount(); #elif PLATFORM_WII
void* strTbl = JKRGetResource("/dvd/str/Rfinal/Release/RframeworkF.str");
#else
void* strTbl = JKRGetResource("/dvd/str/Final/Release/frameworkF.str");
#endif
JKRDetachResource(strTbl, loader);
JKRUnmountDvdDrive(loader);
OSSetStringTable(strTbl); OSSetStringTable(strTbl);
DynamicModuleControl dmc("f_pc_profile_lst"); DynamicModuleControl dmc("f_pc_profile_lst");
dmc.link(); dmc.link();
cDyl_Initialized = true; cDyl_Initialized = true;
fopScnM_CreateReq(PROC_LOGO_SCENE, 0x7FFF, 0, 0);
fopScnM_CreateReq(PROC_LOGO_SCENE, 0x7FFF, 0, 0);
return 1; return 1;
} }
/* ############################################################################################## */
/* 80450CB0-80450CB8 0001B0 0004+04 2/2 0/0 0/0 .sbss cDyl_DVD */ /* 80450CB0-80450CB8 0001B0 0004+04 2/2 0/0 0/0 .sbss cDyl_DVD */
static mDoDvdThd_callback_c* cDyl_DVD; static mDoDvdThd_callback_c* cDyl_DVD;
/* 80018764-80018798 0130A4 0034+00 0/0 1/1 0/0 .text cDyl_InitAsync__Fv */ /* 80018764-80018798 0130A4 0034+00 0/0 1/1 0/0 .text cDyl_InitAsync__Fv */
void cDyl_InitAsync() { void cDyl_InitAsync() {
cCc_Init(); cCc_Init();
JUT_ASSERT(367, cDyl_DVD == NULL);
cDyl_DVD = mDoDvdThd_callback_c::create((mDoDvdThd_callback_func)cDyl_InitCallback, NULL); cDyl_DVD = mDoDvdThd_callback_c::create((mDoDvdThd_callback_func)cDyl_InitCallback, NULL);
} }
/* 80018798-80018804 0130D8 006C+00 0/0 2/1 0/0 .text cDyl_InitAsyncIsDone__Fv */ /* 80018798-80018804 0130D8 006C+00 0/0 2/1 0/0 .text cDyl_InitAsyncIsDone__Fv */
int cDyl_InitAsyncIsDone() { BOOL cDyl_InitAsyncIsDone() {
if (cDyl_DVD == NULL) { if (cDyl_DVD == NULL) {
return 1; return TRUE;
} }
if (cDyl_DVD->sync()) { if (cDyl_DVD->sync()) {
cDyl_DVD->destroy(); cDyl_DVD->destroy();
cDyl_DVD = NULL; cDyl_DVD = NULL;
return 1; return TRUE;
} }
return 0; return FALSE;
} }
/* 80018804-8001880C 013144 0008+00 1/0 0/0 0/0 .text phase_01__7cDylPhsFPv */ /* 80018804-8001880C 013144 0008+00 1/0 0/0 0/0 .text phase_01__7cDylPhsFPv */
int cDylPhs::phase_01(void* param_0) { int cDylPhs::phase_01(void* param_0) {
return 2; return cPhs_NEXT_e;
} }
/* 8001880C-80018844 01314C 0038+00 1/0 0/0 0/0 .text phase_02__7cDylPhsFPs */ /* 8001880C-80018844 01314C 0038+00 1/0 0/0 0/0 .text phase_02__7cDylPhsFPs */
int cDylPhs::phase_02(s16* p_profName) { int cDylPhs::phase_02(s16* p_profName) {
int ret = cDyl_LinkASync(*p_profName); int ret = cDyl_LinkASync(*p_profName);
if (ret == cPhs_COMPLEATE_e) {
if (ret != 4) { return cPhs_NEXT_e;
return ret;
} }
return 2;
return ret;
} }
/* 80018844-8001884C 013184 0008+00 1/0 0/0 0/0 .text phase_03__7cDylPhsFPv */ /* 80018844-8001884C 013184 0008+00 1/0 0/0 0/0 .text phase_03__7cDylPhsFPv */
int cDylPhs::phase_03(void* param_0) { int cDylPhs::phase_03(void* param_0) {
return 0; return cPhs_INIT_e;
} }
/* 8001884C-80018890 01318C 0044+00 0/0 2/2 0/0 .text /* 8001884C-80018890 01318C 0044+00 0/0 2/2 0/0 .text
* Link__7cDylPhsFP30request_of_phase_process_classs */ * Link__7cDylPhsFP30request_of_phase_process_classs */
int cDylPhs::Link(request_of_phase_process_class* i_phase, s16 param_1) { int cDylPhs::Link(request_of_phase_process_class* i_phase, s16 i_ProfName) {
static request_of_phase_process_fn l_method[3] = { static request_of_phase_process_fn l_method[3] = {
(request_of_phase_process_fn)cDylPhs::phase_01, (request_of_phase_process_fn)cDylPhs::phase_01,
(request_of_phase_process_fn)cDylPhs::phase_02, (request_of_phase_process_fn)cDylPhs::phase_02,
@ -934,20 +1042,19 @@ int cDylPhs::Link(request_of_phase_process_class* i_phase, s16 param_1) {
return cPhs_COMPLEATE_e; return cPhs_COMPLEATE_e;
} }
return dComLbG_PhaseHandler(i_phase, l_method, &param_1); return dComLbG_PhaseHandler(i_phase, l_method, &i_ProfName);
} }
/* 80018890-800188DC 0131D0 004C+00 0/0 1/1 0/0 .text /* 80018890-800188DC 0131D0 004C+00 0/0 1/1 0/0 .text
* Unlink__7cDylPhsFP30request_of_phase_process_classs */ * Unlink__7cDylPhsFP30request_of_phase_process_classs */
int cDylPhs::Unlink(request_of_phase_process_class* i_phase, s16 i_ProfName) { int cDylPhs::Unlink(request_of_phase_process_class* i_phase, s16 i_ProfName) {
int ret; JUT_ASSERT(460, i_phase->id != cPhs_LOADING_e);
if (i_phase->id == cPhs_NEXT_e) { if (i_phase->id == cPhs_NEXT_e) {
ret = cDyl_Unlink(i_ProfName); int ret = cDyl_Unlink(i_ProfName);
i_phase->id = cPhs_INIT_e; i_phase->id = cPhs_INIT_e;
} else { return ret;
ret = 0;
} }
return ret; return 0;
} }

View File

@ -207,7 +207,7 @@ void daAlink_c::preKandelaarDraw() {
var_f3 = 0.0f; var_f3 = 0.0f;
} }
if (proj.x > 0.0f && proj.x < 608.0f && proj.y > var_f3 && proj.y < 448.0f - var_f3) { if (proj.x > 0.0f && proj.x < FB_WIDTH && proj.y > var_f3 && proj.y < FB_HEIGHT - var_f3) {
dComIfGd_peekZ(proj.x, proj.y, &field_0x32c8); dComIfGd_peekZ(proj.x, proj.y, &field_0x32c8);
} else { } else {
field_0x32c8 = 0; field_0x32c8 = 0;

View File

@ -567,7 +567,7 @@ void daBalloon2D_c::setHIO(bool param_1) {
field_0x5a0->paneTrans(l_HOSTIO.m.mBalloonSmallPosX, l_HOSTIO.m.mBalloonSmallPosY); field_0x5a0->paneTrans(l_HOSTIO.m.mBalloonSmallPosX, l_HOSTIO.m.mBalloonSmallPosY);
field_0x5a0->scale(l_HOSTIO.m.mBalloonSmallSize, l_HOSTIO.m.mBalloonSmallSize); field_0x5a0->scale(l_HOSTIO.m.mBalloonSmallSize, l_HOSTIO.m.mBalloonSmallSize);
field_0x5a0->setAlphaRate(l_HOSTIO.m.mBalloonSmallAlpha * mAllAlpha); field_0x5a0->setAlphaRate(l_HOSTIO.m.mBalloonSmallAlpha * mAllAlpha);
#if DEBUG #if WIDESCREEN_SUPPORT
if (mDoGph_gInf_c::isWide()) { if (mDoGph_gInf_c::isWide()) {
field_0x5a4->paneTrans(l_HOSTIO.m.m2DNumberCombo2PosX, l_HOSTIO.m.m2DNumberCombo2PosY); field_0x5a4->paneTrans(l_HOSTIO.m.m2DNumberCombo2PosX, l_HOSTIO.m.m2DNumberCombo2PosY);
} else { } else {

View File

@ -466,7 +466,7 @@ void daE_FK_c::DamageAction() {
bool daE_FK_c::checkViewArea() { bool daE_FK_c::checkViewArea() {
Vec proj; Vec proj;
mDoLib_project(&current.pos, &proj); mDoLib_project(&current.pos, &proj);
return (proj.x >= 0.0f && proj.x <= 608.0f) && (proj.y >= 0.0f && proj.y <= 448.0f); return (proj.x >= 0.0f && proj.x <= FB_WIDTH) && (proj.y >= 0.0f && proj.y <= FB_HEIGHT);
} }
namespace { namespace {

View File

@ -480,7 +480,7 @@ static bool checkViewArea(cXyz* i_pos) {
Vec proj; Vec proj;
mDoLib_project(i_pos, &proj); mDoLib_project(i_pos, &proj);
bool ret = false; bool ret = false;
if (proj.x >= 0.0f && proj.x <= 608.0f && proj.y >= 0.0f && proj.y <= 448.0f) { if (proj.x >= 0.0f && proj.x <= FB_WIDTH && proj.y >= 0.0f && proj.y <= FB_HEIGHT) {
ret = true; ret = true;
} }
return ret; return ret;

View File

@ -1394,7 +1394,7 @@ bool daE_SM_c::CheckViewArea() {
mDoLib_project(&current.pos, &vec); mDoLib_project(&current.pos, &vec);
bool rv = false; bool rv = false;
if (vec.x >= 0.0f && vec.x <= 608.0f && vec.y >= 0.0f && vec.y <= 448.0f) { if (vec.x >= 0.0f && vec.x <= FB_WIDTH && vec.y >= 0.0f && vec.y <= FB_HEIGHT) {
rv = true; rv = true;
} }

File diff suppressed because it is too large Load Diff

View File

@ -342,16 +342,16 @@ void dMirror_packet_c::mainDraw() {
f32 var_f5; f32 var_f5;
f32 var_f6; f32 var_f6;
if (view_port->x_orig != 0.0f) { if (view_port->x_orig != 0.0f) {
var_f3 = (((view_port->x_orig * 2.0f) + view_port->width) * 0.5f) - (608.0f / 2); var_f3 = (((view_port->x_orig * 2.0f) + view_port->width) * 0.5f) - (FB_WIDTH / 2);
var_f5 = 608.0f; var_f5 = FB_WIDTH;
} else { } else {
var_f3 = view_port->x_orig; var_f3 = view_port->x_orig;
var_f5 = view_port->width; var_f5 = view_port->width;
} }
if (view_port->y_orig != 0.0f) { if (view_port->y_orig != 0.0f) {
var_f4 = (((view_port->y_orig * 2.0f) + view_port->height) * 0.5f) - (448.0f / 2); var_f4 = (((view_port->y_orig * 2.0f) + view_port->height) * 0.5f) - (FB_HEIGHT / 2);
var_f6 = 448.0f; var_f6 = FB_HEIGHT;
} else { } else {
var_f4 = view_port->y_orig; var_f4 = view_port->y_orig;
var_f6 = view_port->height; var_f6 = view_port->height;

View File

@ -2977,9 +2977,9 @@ static void daMP_THPGXYuv2RgbSetup(GXRenderModeObj const* param_0) {
int height = param_0->efbHeight; int height = param_0->efbHeight;
f32 var_f31 = 0.0f; f32 var_f31 = 0.0f;
#if PLATFORM_WII || PLATFORM_SHIELD #if WIDESCREEN_SUPPORT
if (!mDoGph_gInf_c::isWide()) { if (!mDoGph_gInf_c::isWide()) {
var_f31 = ((u16)height - (width * 808.0f) / 608.0f) * 0.5f; var_f31 = ((u16)height - (width * 808.0f) / FB_WIDTH) * 0.5f;
} }
#endif #endif

View File

@ -2646,7 +2646,7 @@ BOOL daNpcT_chkActorInScreen(fopAc_ac_c* i_ActorP, f32 param_1, f32 param_2, f32
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
mDoLib_project(&pos_array[i], &proj); mDoLib_project(&pos_array[i], &proj);
if (0.0f < proj.x && proj.x < 608.0f && 0.0f < proj.y && proj.y < 448.0f) { if (0.0f < proj.x && proj.x < FB_WIDTH && 0.0f < proj.y && proj.y < FB_HEIGHT) {
continue; continue;
} }
return false; return false;

View File

@ -1868,14 +1868,14 @@ static void demo_camera_shop(npc_henna_class* i_this) {
} }
case 73: { case 73: {
koro_shop = (fshop_class*)fpcM_Search(s_koro2ball_sub, i_this); koro_shop = (fshop_class*)fpcM_Search(s_koro2ball_sub, i_this);
unkXyz_54 = koro_shop->current.pos; unkXyz_54 = koro_shop->actor.current.pos;
fshop = (fshop_class*)fpcM_Search(s_shop_sub, i_this); fshop = (fshop_class*)fpcM_Search(s_shop_sub, i_this);
cMtx_YrotS(*calc_mtx, fshop->field_0x4060); cMtx_YrotS(*calc_mtx, fshop->field_0x4060);
unkXyz_78.x = -500.0f; unkXyz_78.x = -500.0f;
unkXyz_78.y = 600.0f; unkXyz_78.y = 600.0f;
unkXyz_78.z = 0.0f; unkXyz_78.z = 0.0f;
MtxPosition(&unkXyz_78, &unkXyz_60); MtxPosition(&unkXyz_78, &unkXyz_60);
unkXyz_60 += koro_shop->current.pos; unkXyz_60 += koro_shop->actor.current.pos;
if (koro2_reset != 0) { if (koro2_reset != 0) {
koro2_reset = 0; koro2_reset = 0;
i_this->field_0x76c = unkXyz_54; i_this->field_0x76c = unkXyz_54;

View File

@ -531,7 +531,7 @@ void daObjARI_c::Z_BufferChk() {
} else { } else {
trim_height = 0.0f; trim_height = 0.0f;
} }
if (vec2.x > 0.0f && vec2.x < 608.0f && vec2.y > trim_height && vec2.y < 448.0f - trim_height) { if (vec2.x > 0.0f && vec2.x < FB_WIDTH && vec2.y > trim_height && vec2.y < FB_HEIGHT - trim_height) {
dComIfGd_peekZ(vec2.x, vec2.y, &mBufferZ); dComIfGd_peekZ(vec2.x, vec2.y, &mBufferZ);
} }

View File

@ -316,7 +316,7 @@ void daObjCHO_c::Z_BufferChk() {
} else { } else {
trim_height = 0.0f; trim_height = 0.0f;
} }
if (vec2.x > 0.0f && vec2.x < 608.0f && vec2.y > trim_height && vec2.y < 448.0f - trim_height) { if (vec2.x > 0.0f && vec2.x < FB_WIDTH && vec2.y > trim_height && vec2.y < FB_HEIGHT - trim_height) {
dComIfGd_peekZ(vec2.x, vec2.y, &mBufferZ); dComIfGd_peekZ(vec2.x, vec2.y, &mBufferZ);
} }

View File

@ -242,7 +242,7 @@ bool daObjCRVFENCE_c::checkViewArea(cXyz* param_1) {
#ifdef DEBUG #ifdef DEBUG
if (sp24.x >= 0.0f) { if (sp24.x >= 0.0f) {
if (sp24.y <= 640.0f) { if (sp24.y <= FB_WIDTH) {
bVar1 = true; bVar1 = true;
} }
} }
@ -251,7 +251,7 @@ bool daObjCRVFENCE_c::checkViewArea(cXyz* param_1) {
bVar1 = false; bVar1 = false;
if (sp24.y >= 0.0f) { if (sp24.y >= 0.0f) {
if (sp24.y <= 456.0f) { if (sp24.y <= FB_HEIGHT) {
bVar1 = true; bVar1 = true;
} }
} }
@ -261,7 +261,7 @@ bool daObjCRVFENCE_c::checkViewArea(cXyz* param_1) {
} }
} }
#else #else
if (sp24.x >= 0.0f && sp24.x <= 608.0f && sp24.y >= 0.0f && sp24.y <= 448.0f) { if (sp24.x >= 0.0f && sp24.x <= FB_WIDTH && sp24.y >= 0.0f && sp24.y <= FB_HEIGHT) {
rv = true; rv = true;
} }
#endif #endif

View File

@ -151,7 +151,7 @@ bool daObjCRVHAHEN_c::checkViewArea(cXyz* i_this) {
bool ret = false; bool ret = false;
if (proj.x >= 0.0f && proj.x <= 608.0f && proj.y >= 0.0f && proj.y <= 448.0f) { if (proj.x >= 0.0f && proj.x <= FB_WIDTH && proj.y >= 0.0f && proj.y <= FB_HEIGHT) {
ret = true; ret = true;
} }

View File

@ -292,7 +292,7 @@ void daObjDAN_c::Z_BufferChk() {
} else { } else {
trim_height = 0.0f; trim_height = 0.0f;
} }
if (vec2.x > 0.0f && vec2.x < 608.0f && vec2.y > trim_height && vec2.y < 448.0f - trim_height) { if (vec2.x > 0.0f && vec2.x < FB_WIDTH && vec2.y > trim_height && vec2.y < FB_HEIGHT - trim_height) {
dComIfGd_peekZ(vec2.x, vec2.y, &mBufferZ); dComIfGd_peekZ(vec2.x, vec2.y, &mBufferZ);
} }

View File

@ -219,7 +219,7 @@ bool daObjGOMIKABE_c::checkViewArea(cXyz param_1) {
Vec local_24; Vec local_24;
mDoLib_project(&param_1, &local_24); mDoLib_project(&param_1, &local_24);
bool rv = false; bool rv = false;
if (local_24.x >= 0.0f && local_24.x <= 608.0f && local_24.y >= 0.0f && local_24.y <= 448.0f) { if (local_24.x >= 0.0f && local_24.x <= FB_WIDTH && local_24.y >= 0.0f && local_24.y <= FB_HEIGHT) {
rv = true; rv = true;
} }

View File

@ -324,7 +324,9 @@ int daGrdWater_c::Draw() {
Mtx afStack_50; Mtx afStack_50;
C_MTXLightPerspective(afStack_50, dComIfGd_getView()->fovy, dComIfGd_getView()->aspect, C_MTXLightPerspective(afStack_50, dComIfGd_getView()->fovy, dComIfGd_getView()->aspect,
1.0f, 1.0f, -0.01f, 0.0f); 1.0f, 1.0f, -0.01f, 0.0f);
#if WIDESCREEN_SUPPORT
mDoGph_gInf_c::setWideZoomLightProjection(afStack_50); mDoGph_gInf_c::setWideZoomLightProjection(afStack_50);
#endif
mtxInfo->setEffectMtx(afStack_50); mtxInfo->setEffectMtx(afStack_50);
modelData2->simpleCalcMaterial(0, (MtxP)j3dDefaultMtx); modelData2->simpleCalcMaterial(0, (MtxP)j3dDefaultMtx);
} }

View File

@ -229,7 +229,7 @@ bool daObjHHASHI_c::checkViewArea(int param_1) {
Vec local_20; Vec local_20;
mDoLib_project(&field_0x5b0[param_1], &local_20); mDoLib_project(&field_0x5b0[param_1], &local_20);
bool rv = false; bool rv = false;
if (local_20.x >= 0.0f && local_20.x <= 608.0f && local_20.y >= 0.0f && local_20.y <= 448.0f) { if (local_20.x >= 0.0f && local_20.x <= FB_WIDTH && local_20.y >= 0.0f && local_20.y <= FB_HEIGHT) {
rv = true; rv = true;
} }
return rv; return rv;

View File

@ -457,7 +457,7 @@ void daObjKABUTO_c::Z_BufferChk() {
} else { } else {
trim_height = 0.0f; trim_height = 0.0f;
} }
if (vec2.x > 0.0f && vec2.x < 608.0f && vec2.y > trim_height && vec2.y < 448.0f - trim_height) { if (vec2.x > 0.0f && vec2.x < FB_WIDTH && vec2.y > trim_height && vec2.y < FB_HEIGHT - trim_height) {
dComIfGd_peekZ(vec2.x, vec2.y, &mBufferZ); dComIfGd_peekZ(vec2.x, vec2.y, &mBufferZ);
} }

View File

@ -543,11 +543,11 @@ void daObjKAM_c::Z_BufferChk() {
cameraHeight = 0.0f; cameraHeight = 0.0f;
} }
#ifdef DEBUG #ifdef DEBUG
#define Z_BUFFERCHK_X_MAX 640.0f #define Z_BUFFERCHK_X_MAX FB_WIDTH
#define Z_BUFFERCHK_Y_MAX 456.0f #define Z_BUFFERCHK_Y_MAX FB_HEIGHT
#else #else
#define Z_BUFFERCHK_X_MAX 608.0f #define Z_BUFFERCHK_X_MAX FB_WIDTH
#define Z_BUFFERCHK_Y_MAX 448.0f #define Z_BUFFERCHK_Y_MAX FB_HEIGHT
#endif #endif
if (currentProj.x > 0.0f && currentProj.x < Z_BUFFERCHK_X_MAX && currentProj.y > cameraHeight && if (currentProj.x > 0.0f && currentProj.x < Z_BUFFERCHK_X_MAX && currentProj.y > cameraHeight &&
currentProj.y < Z_BUFFERCHK_Y_MAX - cameraHeight) currentProj.y < Z_BUFFERCHK_Y_MAX - cameraHeight)

View File

@ -622,10 +622,10 @@ void daObjKAT_c::Z_BufferChk() {
#if DEBUG #if DEBUG
#define KAT_Z_BUFFERCHK_MAX_X 640.0f #define KAT_Z_BUFFERCHK_MAX_X 640.0f
#define KAT_Z_BUFFERCHK_MAX_Y 456.0f #define KAT_Z_BUFFERCHK_MAX_Y FB_HEIGHT
#else #else
#define KAT_Z_BUFFERCHK_MAX_X 608.0f #define KAT_Z_BUFFERCHK_MAX_X FB_WIDTH
#define KAT_Z_BUFFERCHK_MAX_Y 448.0f #define KAT_Z_BUFFERCHK_MAX_Y FB_HEIGHT
#endif #endif
if (projected.x > 0.0f && projected.x < KAT_Z_BUFFERCHK_MAX_X && projected.y > unkFloat1 && if (projected.x > 0.0f && projected.x < KAT_Z_BUFFERCHK_MAX_X && projected.y > unkFloat1 &&
projected.y < KAT_Z_BUFFERCHK_MAX_Y - unkFloat1) projected.y < KAT_Z_BUFFERCHK_MAX_Y - unkFloat1)

View File

@ -558,8 +558,8 @@ void daObjKUW_c::Z_BufferChk() {
trimHeight = 0.0f; trimHeight = 0.0f;
} }
if (local_5c.x > 0.0f && local_5c.x < 608.0f && if (local_5c.x > 0.0f && local_5c.x < FB_WIDTH &&
local_5c.y > trimHeight && local_5c.y < 448.0f - trimHeight) { local_5c.y > trimHeight && local_5c.y < FB_HEIGHT - trimHeight) {
dComIfGd_peekZ(local_5c.x, local_5c.y, &field_0x9bc); dComIfGd_peekZ(local_5c.x, local_5c.y, &field_0x9bc);
} }

View File

@ -236,7 +236,7 @@ int daLv3Water2_c::Draw() {
Mtx lightProjMtx; Mtx lightProjMtx;
C_MTXLightPerspective(lightProjMtx, dComIfGd_getView()->fovy, dComIfGd_getView()->aspect, 1.0f, 1.0f, -0.01f, 0); C_MTXLightPerspective(lightProjMtx, dComIfGd_getView()->fovy, dComIfGd_getView()->aspect, 1.0f, 1.0f, -0.01f, 0);
#ifdef DEBUG #if WIDESCREEN_SUPPORT
mDoGph_gInf_c::setWideZoomLightProjection(lightProjMtx); mDoGph_gInf_c::setWideZoomLightProjection(lightProjMtx);
/* TODO: Handle screen capture perspective calculations */ /* TODO: Handle screen capture perspective calculations */
#endif #endif

View File

@ -342,7 +342,9 @@ int daObjMHole_c::draw() {
Mtx effect_mtx; Mtx effect_mtx;
MTXLightPerspective(effect_mtx, dComIfGd_getView()->fovy, MTXLightPerspective(effect_mtx, dComIfGd_getView()->fovy,
dComIfGd_getView()->aspect, 1.0f, 1.0f, -0.01f, 0.0f); dComIfGd_getView()->aspect, 1.0f, 1.0f, -0.01f, 0.0f);
#if WIDESCREEN_SUPPORT
mDoGph_gInf_c::setWideZoomLightProjection(effect_mtx); mDoGph_gInf_c::setWideZoomLightProjection(effect_mtx);
#endif
tex_mtx_info->setEffectMtx(effect_mtx); tex_mtx_info->setEffectMtx(effect_mtx);
modelData->simpleCalcMaterial((MtxP)j3dDefaultMtx); modelData->simpleCalcMaterial((MtxP)j3dDefaultMtx);
} }

View File

@ -7,186 +7,280 @@
#include "d/actor/d_a_obj_mirror_chain.h" #include "d/actor/d_a_obj_mirror_chain.h"
#include "d/d_com_inf_game.h" #include "d/d_com_inf_game.h"
#include "dol2asm.h"
/* 80C98080-80C98084 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ /* 80C98080-80C98084 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
static char const* l_arcName = "MR-Chain"; static char const* l_arcName = "MR-Chain";
/* ############################################################################################## */
/* 80C98028-80C9802C 000000 0004+00 2/2 0/0 0/0 .rodata @3915 */
SECTION_RODATA static u32 const lit_3915 = 0x3C8EFA35;
COMPILER_STRIP_GATE(0x80C98028, &lit_3915);
/* 80C9802C-80C98030 000004 0004+00 0/1 0/0 0/0 .rodata @3916 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3916 = 0.5f;
COMPILER_STRIP_GATE(0x80C9802C, &lit_3916);
#pragma pop
/* 80C98034-80C98038 00000C 0004+00 0/1 0/0 0/0 .rodata @3918 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3918 = 2.0f;
COMPILER_STRIP_GATE(0x80C98034, &lit_3918);
#pragma pop
/* 80C98038-80C9803C 000010 0004+00 0/1 0/0 0/0 .rodata @3919 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3919 = 304.0f;
COMPILER_STRIP_GATE(0x80C98038, &lit_3919);
#pragma pop
/* 80C9803C-80C98040 000014 0004+00 0/1 0/0 0/0 .rodata @3920 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3920 = 608.0f;
COMPILER_STRIP_GATE(0x80C9803C, &lit_3920);
#pragma pop
/* 80C98040-80C98044 000018 0004+00 0/1 0/0 0/0 .rodata @3921 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3921 = 224.0f;
COMPILER_STRIP_GATE(0x80C98040, &lit_3921);
#pragma pop
/* 80C98044-80C98048 00001C 0004+00 0/1 0/0 0/0 .rodata @3922 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3922 = 448.0f;
COMPILER_STRIP_GATE(0x80C98044, &lit_3922);
#pragma pop
/* 80C98048-80C98050 000020 0004+04 1/3 0/0 0/0 .rodata @3923 */
SECTION_RODATA static f32 const lit_3923[1 + 1 /* padding */] = {
1.0f,
/* padding */
0.0f,
};
COMPILER_STRIP_GATE(0x80C98048, &lit_3923);
/* 80C98050-80C98058 000028 0008+00 0/1 0/0 0/0 .rodata @3925 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3925[8] = {
0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80C98050, &lit_3925);
#pragma pop
/* 80C98138-80C98148 000000 0010+00 2/2 0/0 0/0 .bss l_scissor */ /* 80C98138-80C98148 000000 0010+00 2/2 0/0 0/0 .bss l_scissor */
static u32 l_scissor[4]; static u32 l_scissor[4];
/* 80C96698-80C96DAC 000078 0714+00 1/0 0/0 0/0 .text draw__22dScissorBegin_packet_cFv */ #if DEBUG
void dScissorBegin_packet_c::draw() { static u8 l_begin;
// NONMATCHING #endif
}
// Temporary fake function to make the cXyz destructor appear here /* 80C96698-80C96DAC 000078 0714+00 1/0 0/0 0/0 .text draw__22dScissorBegin_packet_cFv */
// delete once dScissorBegin_packet_c::draw() is matched // NONMATCHING - slight stack order issue
static void fake() { void dScissorBegin_packet_c::draw() {
cXyz vec; GXGetScissor(&l_scissor[0], &l_scissor[1], &l_scissor[2], &l_scissor[3]);
vec.normalize();
#if DEBUG
JUT_ASSERT(76, !l_begin);
l_begin = TRUE;
#endif
f32 var_f31 = FLT_MAX;
f32 var_f30 = FLT_MAX;
f32 sp7C = -FLT_MAX;
f32 sp78 = -FLT_MAX;
f32 sp74 = -FLT_MAX;
f32 sp70 = l_scissor[0];
f32 sp6C = sp70 + l_scissor[2];
f32 sp68 = l_scissor[1];
f32 sp64 = sp68 + l_scissor[3];
cXyz spEC[4];
cXyz sp11C;
int sp60 = 4;
view_class* view_p = dComIfGd_getView();
f32 sp58 = -view_p->near;
cXyz* sp54 = mQuad;
cXyz* var_r30 = spEC;
int sp50 = 0;
int sp4C = 0;
for (int i = 0; i < 4; i++) {
cMtx_multVec(view_p->viewMtx, sp54, var_r30);
if (var_r30->z >= sp58) {
sp50++;
} else {
sp4C = i;
}
sp54++;
var_r30++;
}
if (sp50 >= 4) {
GXSetScissor(FB_WIDTH + 1, FB_HEIGHT + 1, 0, 0);
return;
}
if (sp50 != 0) {
int sp44 = -1;
for (int i = 0; i < 4; i++) {
int sp3C = (sp4C + 1) % 4;
if (sp44 < 0) {
if (spEC[sp3C].z >= sp58) {
sp44 = sp3C;
}
} else if (spEC[sp3C].z < sp58) {
int sp38 = (sp44 + 3) % 4;
cXyz spE0 = spEC[sp44] - spEC[sp38];
f32 sp34 = (sp58 - spEC[sp38].z) / spE0.z;
spE0 *= sp34;
spEC[sp60] = spEC[sp38] + spE0;
sp60++;
spE0 = spEC[sp4C] - spEC[sp3C];
sp34 = (sp58 - spEC[sp3C].z) / spE0.z;
spE0 *= sp34;
spEC[sp4C] = spEC[sp3C] + spE0;
for (int sp30 = sp44; sp30 != sp4C; sp30 = (sp30 + 1) % 4) {
spEC[sp30] = spEC[sp4C];
}
break;
}
sp4C = (sp4C + 1) % 4;
}
}
f32 sp2C = view_p->fovy;
f32 sp28 = view_p->aspect;
f32 sp24 = std::tan(0.017453292f * (0.5f * sp2C));
f32 sp20, sp1C, sp18, sp14;
view_port_class* viewport_p = dComIfGd_getViewport();
if (0.0f != viewport_p->x_orig) {
sp20 = (0.5f * ((2.0f * viewport_p->x_orig) + viewport_p->width)) - (FB_WIDTH / 2);
sp18 = FB_WIDTH;
} else {
sp20 = viewport_p->x_orig;
sp18 = viewport_p->width;
}
if (0.0f != viewport_p->y_orig) {
sp1C = (0.5f * ((2.0f * viewport_p->y_orig) + viewport_p->height)) - (FB_HEIGHT / 2);
sp14 = FB_HEIGHT;
} else {
sp1C = viewport_p->y_orig;
sp14 = viewport_p->height;
}
var_r30 = spEC;
for (int i = 0; i < sp60; i++) {
var_r30->y = var_r30->y / (var_r30->z * sp24);
var_r30->x = var_r30->x / (sp28 * (-var_r30->z * sp24));
#if WIDESCREEN_SUPPORT
if (mDoGph_gInf_c::isWideZoom()) {
var_r30->x *= mDoGph_gInf_c::getScale();
var_r30->y *= mDoGph_gInf_c::getScale();
}
#endif
var_r30->x = sp20 + ((1.0f + var_r30->x) * (0.5f * sp18));
var_r30->y = sp1C + ((1.0f + var_r30->y) * (0.5f * sp14));
if (var_r30->x < var_f31) {
var_f31 = var_r30->x;
}
if (var_r30->x > sp7C) {
sp7C = var_r30->x;
}
if (var_r30->y < var_f30) {
var_f30 = var_r30->y;
}
if (var_r30->y > sp78) {
sp78 = var_r30->y;
}
if (var_r30->z > sp74) {
sp74 = var_r30->z;
}
var_r30++;
}
var_r30 = spEC;
cXyz spD4 = var_r30[1] - var_r30[0];
cXyz spC8;
cXyz spBC(0.0f, 0.0f, 1.0f);
for (int i = 0; i < 2; i++) {
var_r30++;
spC8 = var_r30[1] - var_r30[0];
if (!spD4.isZero()) {
spBC = spD4.outprod(spC8);
if (spBC.z < 0.0f) {
break;
}
}
spD4 = spC8;
}
if (spBC.z < 0.0f || var_f31 > sp6C || sp7C < sp70 || var_f30 > sp64 || sp78 < sp68) {
GXSetScissor(FB_WIDTH + 1, FB_HEIGHT + 1, 0, 0);
} else {
var_f31 = cLib_minLimit<f32>(var_f31, sp70);
sp7C = cLib_maxLimit<f32>(sp7C, sp6C);
var_f30 = cLib_minLimit<f32>(var_f30, sp68);
sp78 = cLib_maxLimit<f32>(sp78, sp64);
GXSetScissor((u32)var_f31, (u32)var_f30, (u32)(sp7C - var_f31), (u32)(sp78 - var_f30));
}
} }
/* 80C96DE8-80C96E20 0007C8 0038+00 1/0 0/0 0/0 .text draw__20dScissorEnd_packet_cFv */ /* 80C96DE8-80C96E20 0007C8 0038+00 1/0 0/0 0/0 .text draw__20dScissorEnd_packet_cFv */
void dScissorEnd_packet_c::draw() { void dScissorEnd_packet_c::draw() {
#if DEBUG
JUT_ASSERT(246, l_begin);
l_begin = FALSE;
#endif
GXSetScissor(l_scissor[0], l_scissor[1], l_scissor[2], l_scissor[3]); GXSetScissor(l_scissor[0], l_scissor[1], l_scissor[2], l_scissor[3]);
} }
/* 80C96E20-80C96E40 000800 0020+00 1/1 0/0 0/0 .text createSolidHeap__FP10fopAc_ac_c */ /* 80C96E20-80C96E40 000800 0020+00 1/1 0/0 0/0 .text createSolidHeap__FP10fopAc_ac_c */
static int createSolidHeap(fopAc_ac_c* i_this) { static int createSolidHeap(fopAc_ac_c* i_this) {
return static_cast<daObjMirrorChain_c*>(i_this)->createHeap(); return ((daObjMirrorChain_c*)i_this)->createHeap();
} }
/* ############################################################################################## */
/* 80C98058-80C98060 000030 0008+00 1/1 0/0 0/0 .rodata @4164 */
SECTION_RODATA static u8 const lit_4164[8] = {
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80C98058, &lit_4164);
extern void* __vt__12J3DFrameCtrl[3];
/* 80C96E40-80C975A4 000820 0764+00 1/1 0/0 0/0 .text createHeap__18daObjMirrorChain_cFv /* 80C96E40-80C975A4 000820 0764+00 1/1 0/0 0/0 .text createHeap__18daObjMirrorChain_cFv
*/ */
int daObjMirrorChain_c::createHeap() { int daObjMirrorChain_c::createHeap() {
J3DModelData* model_data; J3DModelData* modelData;
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */ /* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) { if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) {
model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 16); modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 16);
mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000284); JUT_ASSERT(306, modelData != NULL);
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284);
J3DAnmTevRegKey* brk_anm = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 21); J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 21);
JUT_ASSERT(316, brk != NULL);
mpBrkAnm = new mDoExt_brkAnm(); mpBrkAnm = new mDoExt_brkAnm();
if (mpBrkAnm == NULL || !mpBrkAnm->init(model_data, brk_anm, 1, 2, 1.0f, 0, -1)) { if (mpBrkAnm == NULL || !mpBrkAnm->init(modelData, brk, 1, 2, 1.0f, 0, -1)) {
return 0; return 0;
} }
} else { } else {
model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 15); modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 15);
mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084); JUT_ASSERT(323, modelData != NULL);
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
mpBrkAnm = NULL; mpBrkAnm = NULL;
} }
if (mpModel == NULL) { if (mpModel == NULL) {
return 0; return 0;
} }
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */ /* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) { if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) {
J3DModelData* portal_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 12); J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 12);
mpPortalModel = mDoExt_J3DModel__create(portal_model_data, 0, 0x11000084); JUT_ASSERT(336, modelData != NULL);
mpPortalModel = mDoExt_J3DModel__create(modelData, 0, 0x11000084);
if (mpPortalModel == NULL) { if (mpPortalModel == NULL) {
return 0; return 0;
} }
J3DAnmTransform* bck_anm = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 9); J3DAnmTransform* bck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 9);
JUT_ASSERT(344, bck != NULL);
mpBckAnm = new mDoExt_bckAnm(); mpBckAnm = new mDoExt_bckAnm();
if (mpBckAnm == NULL if (mpBckAnm == NULL || !mpBckAnm->init(bck, 1, 2, 1.0f, 0, -1, false)) {
|| !mpBckAnm->init(bck_anm, 1, 2, 1.0f, 0, -1, false))
{
return 0; return 0;
} }
mpBckAnm->setEndFrame(300); mpBckAnm->setEndFrame(300);
J3DAnmTevRegKey* portal_brk_anm = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 20); J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 20);
JUT_ASSERT(353, brk != NULL);
mpPortalBrkAnm = new mDoExt_brkAnm(); mpPortalBrkAnm = new mDoExt_brkAnm();
if (mpPortalBrkAnm == NULL if (mpPortalBrkAnm == NULL || !mpPortalBrkAnm->init(modelData, brk, 1, 0, 1.0f, 0, -1))
|| !mpPortalBrkAnm->init(portal_model_data, portal_brk_anm, 1, 2, 1.0f, 0, -1))
{ {
return 0; return 0;
} }
mpPortalBrkAnm->setFrame(portal_brk_anm->getFrameMax()); mpPortalBrkAnm->setFrame(brk->getFrameMax());
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes(l_arcName, 26); cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes(l_arcName, 26);
if (mBgW[1].Set(dzb, 1, &mMtx)) { if (mBgW[1].Set(dzb, 1, &mMtx)) {
return 0; return 0;
} }
mBgW[0] = mBgW[1]; mBgW[0] = mBgW[1];
} else { } else {
J3DAnmTransform* bck_anm = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 8); J3DAnmTransform* bck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 8);
JUT_ASSERT(367, bck != NULL);
mpBckAnm = new mDoExt_bckAnm(); mpBckAnm = new mDoExt_bckAnm();
bool b = fopAcM_isSwitch(this, getSwitchNo())
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */ /* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
|| dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361]); f32 rate = (fopAcM_isSwitch(this, getSwitchNo()) || dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361])) ? 1.0f : 0.0f;
f32 rate = b ? 1.0f : 0.0f; if (mpBckAnm == NULL || !mpBckAnm->init(bck, 1, 0, rate, 0, -1, false))
if (mpBckAnm == NULL
|| !mpBckAnm->init(bck_anm, 1, 0, rate, 0, -1, false))
{ {
return 0; return 0;
} }
if (fopAcM_isSwitch(this, getSwitchNo())
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */ /* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
|| dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361])) if (fopAcM_isSwitch(this, getSwitchNo()) || dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361])) {
{ mpBckAnm->setFrame(bck->getFrameMax());
mpBckAnm->setFrame(bck_anm->getFrameMax());
} }
J3DAnmTevRegKey* brk_anm = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 19); J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 19);
JUT_ASSERT(381, brk != NULL);
mpBrkAnm = new mDoExt_brkAnm(); mpBrkAnm = new mDoExt_brkAnm();
if (mpBrkAnm == NULL if (mpBrkAnm == NULL || !mpBrkAnm->init(modelData, brk, 1, 0, 0.0f, 0, -1))
|| !mpBrkAnm->init(model_data, brk_anm, 1, 0, 1.0f, 0, -1))
{ {
return 0; return 0;
} }
@ -208,13 +302,6 @@ int daObjMirrorChain_c::createHeap() {
return 1; return 1;
} }
/* 80C975A4-80C975EC 000F84 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
// J3DFrameCtrl::~J3DFrameCtrl() {
extern "C" void __dt__12J3DFrameCtrlFv() {
// NONMATCHING
}
/* 80C975EC-80C97618 000FCC 002C+00 1/1 0/0 0/0 .text initBaseMtx__18daObjMirrorChain_cFv /* 80C975EC-80C97618 000FCC 002C+00 1/1 0/0 0/0 .text initBaseMtx__18daObjMirrorChain_cFv
*/ */
void daObjMirrorChain_c::initBaseMtx() { void daObjMirrorChain_c::initBaseMtx() {
@ -228,9 +315,11 @@ void daObjMirrorChain_c::setBaseMtx() {
mDoMtx_stack_c::transS(current.pos); mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::ZXYrotM(shape_angle); mDoMtx_stack_c::ZXYrotM(shape_angle);
mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
if (mpPortalModel != NULL) { if (mpPortalModel != NULL) {
mpPortalModel->setBaseTRMtx(mDoMtx_stack_c::get()); mpPortalModel->setBaseTRMtx(mDoMtx_stack_c::get());
} }
MTXCopy(mDoMtx_stack_c::get(), mMtx); MTXCopy(mDoMtx_stack_c::get(), mMtx);
mpActiveBgW->Move(); mpActiveBgW->Move();
} }
@ -243,32 +332,40 @@ static int daObjMirrorChain_Draw(daObjMirrorChain_c* i_this) {
/* 80C976B8-80C97968 001098 02B0+00 1/1 0/0 0/0 .text draw__18daObjMirrorChain_cFv */ /* 80C976B8-80C97968 001098 02B0+00 1/1 0/0 0/0 .text draw__18daObjMirrorChain_cFv */
int daObjMirrorChain_c::draw() { int daObjMirrorChain_c::draw() {
static f32 const SCISSOR_CENTER_X = 1799.2f; static const f32 SCISSOR_CENTER_X = 1799.2f;
static f32 const SCISSOR_CENTER_Y = 4779.58f; static const f32 SCISSOR_CENTER_Y = 4779.58f;
static f32 const SCISSOR_CENTER_Z = -23024.53f; static const f32 SCISSOR_CENTER_Z = -23024.53f;
static f32 const SCISSOR_SIZE = 984.0f; static const f32 SCISSOR_SIZE = 984.0f;
g_env_light.settingTevStruct(0x10, &current.pos, &tevStr); g_env_light.settingTevStruct(0x10, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr); g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */ /* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) { if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) {
g_env_light.setLightTevColorType_MAJI(mpPortalModel, &tevStr); g_env_light.setLightTevColorType_MAJI(mpPortalModel, &tevStr);
if (mpBckAnm != NULL) { if (mpBckAnm != NULL) {
mpBckAnm->entry(mpPortalModel->getModelData()); mpBckAnm->entry(mpPortalModel->getModelData());
} }
if (mpBrkAnm != NULL) { if (mpBrkAnm != NULL) {
mpBrkAnm->entry(mpModel->getModelData()); mpBrkAnm->entry(mpModel->getModelData());
} }
if (mpPortalBrkAnm != NULL) { if (mpPortalBrkAnm != NULL) {
mpPortalBrkAnm->entry(mpPortalModel->getModelData()); mpPortalBrkAnm->entry(mpPortalModel->getModelData());
} }
dComIfGd_setListBG(); dComIfGd_setListBG();
mDoExt_modelUpdateDL(mpModel); mDoExt_modelUpdateDL(mpModel);
static Vec l_offsetScissor[4] = { static Vec l_offsetScissor[4] = {
{SCISSOR_CENTER_X - SCISSOR_SIZE / 2, SCISSOR_CENTER_Y + SCISSOR_SIZE, SCISSOR_CENTER_Z}, {SCISSOR_CENTER_X - SCISSOR_SIZE / 2, SCISSOR_CENTER_Y + SCISSOR_SIZE, SCISSOR_CENTER_Z},
{SCISSOR_CENTER_X + SCISSOR_SIZE / 2, SCISSOR_CENTER_Y + SCISSOR_SIZE, SCISSOR_CENTER_Z}, {SCISSOR_CENTER_X + SCISSOR_SIZE / 2, SCISSOR_CENTER_Y + SCISSOR_SIZE, SCISSOR_CENTER_Z},
{SCISSOR_CENTER_X + SCISSOR_SIZE / 2, SCISSOR_CENTER_Y, SCISSOR_CENTER_Z}, {SCISSOR_CENTER_X + SCISSOR_SIZE / 2, SCISSOR_CENTER_Y, SCISSOR_CENTER_Z},
{SCISSOR_CENTER_X - SCISSOR_SIZE / 2, SCISSOR_CENTER_Y, SCISSOR_CENTER_Z}, {SCISSOR_CENTER_X - SCISSOR_SIZE / 2, SCISSOR_CENTER_Y, SCISSOR_CENTER_Z},
}; };
cXyz* quad = mScissorBegin.getQuad(); cXyz* quad = mScissorBegin.getQuad();
PSMTXMultVecArray(mpModel->getBaseTRMtx(), l_offsetScissor, quad, 4); PSMTXMultVecArray(mpModel->getBaseTRMtx(), l_offsetScissor, quad, 4);
j3dSys.setDrawBuffer(dComIfGd_getXluListBG(), 0); j3dSys.setDrawBuffer(dComIfGd_getXluListBG(), 0);
@ -276,12 +373,15 @@ int daObjMirrorChain_c::draw() {
mDoExt_modelUpdateDL(mpPortalModel); mDoExt_modelUpdateDL(mpPortalModel);
mScissorBegin.entryPacket(); mScissorBegin.entryPacket();
dComIfGd_setList(); dComIfGd_setList();
if (mpBckAnm != NULL) { if (mpBckAnm != NULL) {
mpBckAnm->remove(mpPortalModel->getModelData()); mpBckAnm->remove(mpPortalModel->getModelData());
} }
if (mpBrkAnm != NULL) { if (mpBrkAnm != NULL) {
mpBrkAnm->remove(mpModel->getModelData()); mpBrkAnm->remove(mpModel->getModelData());
} }
if (mpPortalBrkAnm != NULL) { if (mpPortalBrkAnm != NULL) {
mpPortalBrkAnm->remove(mpPortalModel->getModelData()); mpPortalBrkAnm->remove(mpPortalModel->getModelData());
} }
@ -289,19 +389,24 @@ int daObjMirrorChain_c::draw() {
if (mpBckAnm != NULL) { if (mpBckAnm != NULL) {
mpBckAnm->entry(mpModel->getModelData()); mpBckAnm->entry(mpModel->getModelData());
} }
if (mpBrkAnm != NULL) { if (mpBrkAnm != NULL) {
mpBrkAnm->entry(mpModel->getModelData()); mpBrkAnm->entry(mpModel->getModelData());
} }
dComIfGd_setListBG(); dComIfGd_setListBG();
mDoExt_modelUpdateDL(mpModel); mDoExt_modelUpdateDL(mpModel);
dComIfGd_setList(); dComIfGd_setList();
if (mpBckAnm != NULL) { if (mpBckAnm != NULL) {
mpBckAnm->remove(mpModel->getModelData()); mpBckAnm->remove(mpModel->getModelData());
} }
if (mpBrkAnm != NULL) { if (mpBrkAnm != NULL) {
mpBrkAnm->remove(mpModel->getModelData()); mpBrkAnm->remove(mpModel->getModelData());
} }
} }
return 1; return 1;
} }
@ -311,83 +416,22 @@ static int daObjMirrorChain_Execute(daObjMirrorChain_c* i_this) {
return i_this->execute(); return i_this->execute();
} }
// this should come automatically from the static data in draw() but it does not
/* ############################################################################################## */
/* 80C98060-80C98064 000038 0004+00 0/0 0/0 0/0 .rodata
* SCISSOR_CENTER_X$localstatic3$draw__18daObjMirrorChain_cFv */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const data_80C98060[4] = {
0x44,
0xE0,
0xE6,
0x66,
};
COMPILER_STRIP_GATE(0x80C98060, &data_80C98060);
#pragma pop
/* 80C98064-80C98068 00003C 0004+00 0/0 0/0 0/0 .rodata
* SCISSOR_CENTER_Y$localstatic4$draw__18daObjMirrorChain_cFv */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const data_80C98064[4] = {
0x45,
0x95,
0x5C,
0xA4,
};
COMPILER_STRIP_GATE(0x80C98064, &data_80C98064);
#pragma pop
/* 80C98068-80C9806C 000040 0004+00 0/0 0/0 0/0 .rodata
* SCISSOR_CENTER_Z$localstatic5$draw__18daObjMirrorChain_cFv */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const data_80C98068[4] = {
0xC6,
0xB3,
0xE1,
0x0F,
};
COMPILER_STRIP_GATE(0x80C98068, &data_80C98068);
#pragma pop
/* 80C9806C-80C98070 000044 0004+00 0/0 0/0 0/0 .rodata
* SCISSOR_SIZE$localstatic6$draw__18daObjMirrorChain_cFv */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const data_80C9806C[4] = {
0x44,
0x76,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80C9806C, &data_80C9806C);
#pragma pop
/* 80C98070-80C98074 000048 0004+00 0/1 0/0 0/0 .rodata @4494 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4494 = -1.0f;
COMPILER_STRIP_GATE(0x80C98070, &lit_4494);
#pragma pop
/* 80C97988-80C97BA4 001368 021C+00 1/1 0/0 0/0 .text execute__18daObjMirrorChain_cFv */ /* 80C97988-80C97BA4 001368 021C+00 1/1 0/0 0/0 .text execute__18daObjMirrorChain_cFv */
int daObjMirrorChain_c::execute() { int daObjMirrorChain_c::execute() {
if (mpBckAnm != NULL) { if (mpBckAnm != NULL) {
mpBckAnm->play(); mpBckAnm->play();
} }
if (mpBrkAnm != NULL) { if (mpBrkAnm != NULL) {
mpBrkAnm->play(); mpBrkAnm->play();
} }
if (mpPortalBrkAnm != NULL) { if (mpPortalBrkAnm != NULL) {
mpPortalBrkAnm->play(); mpPortalBrkAnm->play();
} }
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */ /* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354]) if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354]) && mpBckAnm != NULL && mpBckAnm->getPlaySpeed() > 0.0f) {
&& mpBckAnm != NULL && mpBckAnm->getPlaySpeed() > 0.0f) {
if (mpActiveBgW == &mBgW[0]) { if (mpActiveBgW == &mBgW[0]) {
dComIfG_Bgsp().Release(&mBgW[0]); dComIfG_Bgsp().Release(&mBgW[0]);
dComIfG_Bgsp().Regist(&mBgW[1], this); dComIfG_Bgsp().Regist(&mBgW[1], this);
@ -396,7 +440,7 @@ int daObjMirrorChain_c::execute() {
} }
if (mpEmitter == NULL) { if (mpEmitter == NULL) {
mpEmitter = dComIfGp_particle_set(0x8acc, &current.pos, &shape_angle, NULL); mpEmitter = dComIfGp_particle_set(dPa_RM(ID_ZF_S_D32_01_MONO02SAND), &current.pos, &shape_angle, NULL);
cXyz pos; cXyz pos;
mDoMtx_stack_c::copy(mpModel->getAnmMtx(1)); mDoMtx_stack_c::copy(mpModel->getAnmMtx(1));
mDoMtx_stack_c::multVecZero(&pos); mDoMtx_stack_c::multVecZero(&pos);
@ -412,7 +456,6 @@ int daObjMirrorChain_c::execute() {
return 1; return 1;
} }
/* 80C97BA4-80C97BAC 001584 0008+00 1/0 0/0 0/0 .text /* 80C97BA4-80C97BAC 001584 0008+00 1/0 0/0 0/0 .text
* daObjMirrorChain_IsDelete__FP18daObjMirrorChain_c */ * daObjMirrorChain_IsDelete__FP18daObjMirrorChain_c */
static int daObjMirrorChain_IsDelete(daObjMirrorChain_c* i_this) { static int daObjMirrorChain_IsDelete(daObjMirrorChain_c* i_this) {
@ -423,9 +466,11 @@ daObjMirrorChain_c::~daObjMirrorChain_c() {
if (mBgW[0].ChkUsed()) { if (mBgW[0].ChkUsed()) {
dComIfG_Bgsp().Release(&mBgW[0]); dComIfG_Bgsp().Release(&mBgW[0]);
} }
if (mBgW[1].ChkUsed()) { if (mBgW[1].ChkUsed()) {
dComIfG_Bgsp().Release(&mBgW[1]); dComIfG_Bgsp().Release(&mBgW[1]);
} }
dComIfG_resDelete(&mPhaseReq, l_arcName); dComIfG_resDelete(&mPhaseReq, l_arcName);
} }
@ -438,40 +483,41 @@ static int daObjMirrorChain_Delete(daObjMirrorChain_c* i_this) {
} }
void daObjMirrorChain_c::create_init() { void daObjMirrorChain_c::create_init() {
if (mpBckAnm != NULL /* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */ if (mpBckAnm != NULL && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) {
&& !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) {
mpBckAnm->setPlaySpeed(0.0f); mpBckAnm->setPlaySpeed(0.0f);
} }
mpEmitter = NULL; mpEmitter = NULL;
mBgW[0].SetCrrFunc(NULL); mBgW[0].SetCrrFunc(NULL);
mBgW[0].SetRoomId(fopAcM_GetRoomNo(this)); mBgW[0].SetRoomId(fopAcM_GetRoomNo(this));
mBgW[1].SetCrrFunc(NULL); mBgW[1].SetCrrFunc(NULL);
mBgW[1].SetRoomId(fopAcM_GetRoomNo(this)); mBgW[1].SetRoomId(fopAcM_GetRoomNo(this));
bool b = fopAcM_isSwitch(this, getSwitchNo())
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */ /* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
|| dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361]); mpActiveBgW = (fopAcM_isSwitch(this, getSwitchNo()) || dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361])) ? &mBgW[1] : &mBgW[0];
mpActiveBgW = b ? &mBgW[1] : &mBgW[0];
dComIfG_Bgsp().Regist(mpActiveBgW, this); dComIfG_Bgsp().Regist(mpActiveBgW, this);
initBaseMtx(); initBaseMtx();
} }
cPhs__Step daObjMirrorChain_c::create() { cPhs__Step daObjMirrorChain_c::create() {
fopAcM_ct(this, daObjMirrorChain_c); fopAcM_ct(this, daObjMirrorChain_c);
cPhs__Step step = (cPhs__Step)dComIfG_resLoad(&mPhaseReq, l_arcName);
if (step == cPhs_COMPLEATE_e) { cPhs__Step phase_state = (cPhs__Step)dComIfG_resLoad(&mPhaseReq, l_arcName);
if (phase_state == cPhs_COMPLEATE_e) {
if (!fopAcM_entrySolidHeap(this, createSolidHeap, 0x71b0)) { if (!fopAcM_entrySolidHeap(this, createSolidHeap, 0x71b0)) {
return cPhs_ERROR_e; return cPhs_ERROR_e;
} }
create_init(); create_init();
} }
return step;
return phase_state;
} }
/* 80C97D24-80C97F3C 001704 0218+00 1/0 0/0 0/0 .text daObjMirrorChain_Create__FP10fopAc_ac_c */ /* 80C97D24-80C97F3C 001704 0218+00 1/0 0/0 0/0 .text daObjMirrorChain_Create__FP10fopAc_ac_c */
static cPhs__Step daObjMirrorChain_Create(fopAc_ac_c* i_this) { static cPhs__Step daObjMirrorChain_Create(fopAc_ac_c* i_this) {
fopAcM_GetID(i_this); fopAcM_GetID(i_this);
return static_cast<daObjMirrorChain_c*>(i_this)->create(); return ((daObjMirrorChain_c*)i_this)->create();
} }
/* 80C980B4-80C980D4 -00001 0020+00 1/0 0/0 0/0 .data l_daObjMirrorChain_Method */ /* 80C980B4-80C980D4 -00001 0020+00 1/0 0/0 0/0 .data l_daObjMirrorChain_Method */
@ -500,10 +546,3 @@ extern actor_process_profile_definition g_profile_Obj_MirrorChain = {
fopAc_ACTOR_e, fopAc_ACTOR_e,
fopAc_CULLBOX_CUSTOM_e, fopAc_CULLBOX_CUSTOM_e,
}; };
/* 80C98104-80C98110 000084 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */
SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12J3DFrameCtrlFv,
};

View File

@ -187,8 +187,8 @@ void daObjOCTHASHI_c::SphAction() {
f32 fvals_3888[2] = {2.125f, 0.0f}; f32 fvals_3888[2] = {2.125f, 0.0f};
f32 fvals_3889[2] = {0.0f, 0.0f}; f32 fvals_3889[2] = {0.0f, 0.0f};
f32 fval_3890[1] = {2000.0f}; f32 fval_3890[1] = {2000.0f};
f32 fval_3903[1] = {608.0f}; f32 fval_3903[1] = {FB_WIDTH};
f32 fval_3904[1] = {448.0f}; f32 fval_3904[1] = {FB_HEIGHT};
for (int idx = 0; idx < mPieceNum; ++idx) { for (int idx = 0; idx < mPieceNum; ++idx) {
if (mColliders[idx].ChkCoHit()) { if (mColliders[idx].ChkCoHit()) {
fopAc_ac_c* hit_actor = dCc_GetAc(mColliders[idx].GetCoHitObj()->GetAc()); fopAc_ac_c* hit_actor = dCc_GetAc(mColliders[idx].GetCoHitObj()->GetAc());

View File

@ -346,7 +346,9 @@ int daObjRotStair_c::Draw() {
Mtx lightMtx; Mtx lightMtx;
C_MTXLightPerspective(lightMtx, dComIfGd_getView()->fovy, C_MTXLightPerspective(lightMtx, dComIfGd_getView()->fovy,
dComIfGd_getView()->aspect, 1.0f, 1.0f, -0.01f, 0); dComIfGd_getView()->aspect, 1.0f, 1.0f, -0.01f, 0);
#if WIDESCREEN_SUPPORT
mDoGph_gInf_c::setWideZoomLightProjection(lightMtx); mDoGph_gInf_c::setWideZoomLightProjection(lightMtx);
#endif
texMtxInfo->setEffectMtx(lightMtx); texMtxInfo->setEffectMtx(lightMtx);
modelData->simpleCalcMaterial(0, (MtxP)j3dDefaultMtx); modelData->simpleCalcMaterial(0, (MtxP)j3dDefaultMtx);
} }

View File

@ -624,8 +624,8 @@ void daObjTEN_c::Z_BufferChk() {
} else { } else {
trimHeight = 0.0f; trimHeight = 0.0f;
} }
if (local_5c.x > 0.0f && local_5c.x < 608.0f && local_5c.y > trimHeight && if (local_5c.x > 0.0f && local_5c.x < FB_WIDTH && local_5c.y > trimHeight &&
local_5c.y < 448.0f - trimHeight) local_5c.y < FB_HEIGHT - trimHeight)
{ {
dComIfGd_peekZ(local_5c.x, local_5c.y, &field_0x61c); dComIfGd_peekZ(local_5c.x, local_5c.y, &field_0x61c);
} }

View File

@ -90,8 +90,8 @@ static void dataStripping2() {
stripFloat(3.0f); stripFloat(3.0f);
stripFloat(2000.0f); stripFloat(2000.0f);
stripFloat(608.0f); stripFloat(FB_WIDTH);
stripFloat(448.0f); stripFloat(FB_HEIGHT);
} }
/* 80D0C298-80D0C2B8 0000D8 0020+00 1/0 0/0 0/0 .text daObjTHASHI_Create__FP10fopAc_ac_c /* 80D0C298-80D0C2B8 0000D8 0020+00 1/0 0/0 0/0 .text daObjTHASHI_Create__FP10fopAc_ac_c

View File

@ -543,8 +543,8 @@ void daObjTOMBO_c::Z_BufferChk() {
} else { } else {
trimHeight = 0.0f; trimHeight = 0.0f;
} }
if (local_5c.x > 0.0f && local_5c.x < 608.0f && local_5c.y > trimHeight && if (local_5c.x > 0.0f && local_5c.x < FB_WIDTH && local_5c.y > trimHeight &&
local_5c.y < 448.0f - trimHeight) local_5c.y < FB_HEIGHT - trimHeight)
{ {
dComIfGd_peekZ(local_5c.x, local_5c.y, &field_0x754); dComIfGd_peekZ(local_5c.x, local_5c.y, &field_0x754);
} }

View File

@ -39,7 +39,9 @@ static int daObj_Tp_Draw(obj_tp_class* i_this) {
Mtx lightProjMtx; Mtx lightProjMtx;
C_MTXLightPerspective(lightProjMtx, dComIfGd_getView()->fovy, C_MTXLightPerspective(lightProjMtx, dComIfGd_getView()->fovy,
dComIfGd_getView()->aspect, 1.0f, 1.0f, -0.01f, 0); dComIfGd_getView()->aspect, 1.0f, 1.0f, -0.01f, 0);
#if WIDESCREEN_SUPPORT
mDoGph_gInf_c::setWideZoomLightProjection(lightProjMtx); mDoGph_gInf_c::setWideZoomLightProjection(lightProjMtx);
#endif
texMtxInfo->setEffectMtx(lightProjMtx); texMtxInfo->setEffectMtx(lightProjMtx);
modelData->simpleCalcMaterial(0, (MtxP)j3dDefaultMtx); modelData->simpleCalcMaterial(0, (MtxP)j3dDefaultMtx);
} }

View File

@ -44,7 +44,7 @@ BOOL daZraFreeze_c::chkActorInScreen() {
PSMTXMultVecArray(mDoMtx_stack_c::get(), vec, vec, 8); PSMTXMultVecArray(mDoMtx_stack_c::get(), vec, vec, 8);
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
mDoLib_project(&vec[i], &proj); mDoLib_project(&vec[i], &proj);
if (0.0f < proj.x && proj.x < 608.0f && 0.0f < proj.y && proj.y < 448.0f) { if (0.0f < proj.x && proj.x < FB_WIDTH && 0.0f < proj.y && proj.y < FB_HEIGHT) {
continue; continue;
} }
return false; return false;

View File

@ -1,114 +1,8 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_tag_attack_item
//
#include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/dolzel_rel.h" // IWYU pragma: keep
#include "d/actor/d_a_tag_attack_item.h" #include "d/actor/d_a_tag_attack_item.h"
#include "SSystem/SComponent/c_math.h" #include "SSystem/SComponent/c_math.h"
#include "d/actor/d_a_player.h" #include "d/actor/d_a_player.h"
#include "d/d_com_inf_game.h"
#include "d/d_event_lib.h"
#include "dol2asm.h"
// need to figure out how to use dEvLib_callback_c properly
class daTagAtkItem_c : public fopAc_ac_c , public dEvLib_callback_c {
public:
/* 805A2958 */ void setBaseMtx();
/* 805A2990 */ int Create();
/* 805A2A34 */ int create();
/* 805A2C48 */ int execute();
/* 805A2CA8 */ void action();
/* 805A2D58 */ BOOL checkHit();
/* 805A2F54 */ void createItem();
/* 805A3038 */ int _delete();
/* 805A3118 */ ~daTagAtkItem_c();
/* 805A2D10 */ bool eventStart();
/* 805A2D34 */ bool eventEnd();
u8 getEvId() { return fopAcM_GetParamBit(this, 0x18, 8); }
u8 getNum() { return fopAcM_GetParamBit(this, 8, 8); }
u8 getItemBit() { return fopAcM_GetParamBit(this, 0x10, 8); }
u8 getItemNo() { return fopAcM_GetParamBit(this, 0, 8); }
/* 0x568 */ u8 temp[0x57C - 0x568]; // remove when dEvLib_callback_c setup
/* 0x57C */ u8 field_0x57C[0x584 - 0x57C];
/* 0x584 */ dCcD_Stts mCcStts;
/* 0x5C0 */ dCcD_Cyl mCyl;
};
//
// Forward References:
//
extern "C" void setBaseMtx__14daTagAtkItem_cFv();
extern "C" void Create__14daTagAtkItem_cFv();
extern "C" void create__14daTagAtkItem_cFv();
extern "C" void __dt__8cM3dGCylFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" void __dt__10dCcD_GSttsFv();
extern "C" void execute__14daTagAtkItem_cFv();
extern "C" void action__14daTagAtkItem_cFv();
extern "C" void eventStart__14daTagAtkItem_cFv();
extern "C" void eventEnd__14daTagAtkItem_cFv();
extern "C" void checkHit__14daTagAtkItem_cFv();
extern "C" void createItem__14daTagAtkItem_cFv();
extern "C" bool _delete__14daTagAtkItem_cFv();
extern "C" static void daTagAtkItem_Execute__FP14daTagAtkItem_c();
extern "C" static void daTagAtkItem_Delete__FP14daTagAtkItem_c();
extern "C" static void daTagAtkItem_Create__FP14daTagAtkItem_c();
extern "C" void __dt__17dEvLib_callback_cFv();
extern "C" bool eventRun__17dEvLib_callback_cFv();
extern "C" bool eventStart__17dEvLib_callback_cFv();
extern "C" bool eventEnd__17dEvLib_callback_cFv();
extern "C" static void func_805A3100();
extern "C" static void func_805A3108();
extern "C" static void func_805A3110();
extern "C" void __dt__14daTagAtkItem_cFv();
extern "C" void __dt__10cCcD_GSttsFv();
//
// External References:
//
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
extern "C" void fopAcM_createItemFromTable__FPC4cXyziiiPC5csXyziPC4cXyzPfPfb();
extern "C" void eventUpdate__17dEvLib_callback_cFv();
extern "C" void orderEvent__17dEvLib_callback_cFiii();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
extern "C" void __ct__12dCcD_GObjInfFv();
extern "C" void __dt__12dCcD_GObjInfFv();
extern "C" void ChkTgHit__12dCcD_GObjInfFv();
extern "C" void GetTgHitObj__12dCcD_GObjInfFv();
extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
extern "C" void Set__4cCcSFP8cCcD_Obj();
extern "C" void __ct__5csXyzFsss();
extern "C" void cM_rndFX__Ff();
extern "C" void SetC__8cM3dGCylFRC4cXyz();
extern "C" void SetH__8cM3dGCylFf();
extern "C" void SetR__8cM3dGCylFf();
extern "C" void __dl__FPv();
extern "C" void _savegpr_27();
extern "C" void _savegpr_29();
extern "C" void _restgpr_27();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__8dCcD_Cyl[36];
extern "C" extern void* __vt__9dCcD_Stts[11];
extern "C" extern void* __vt__12cCcD_CylAttr[25];
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
extern "C" extern void* __vt__9cCcD_Stts[8];
//
// Declarations:
//
/* 805A2958-805A2990 000078 0038+00 1/1 0/0 0/0 .text setBaseMtx__14daTagAtkItem_cFv */ /* 805A2958-805A2990 000078 0038+00 1/1 0/0 0/0 .text setBaseMtx__14daTagAtkItem_cFv */
void daTagAtkItem_c::setBaseMtx() { void daTagAtkItem_c::setBaseMtx() {
@ -143,103 +37,16 @@ int daTagAtkItem_c::Create() {
return 1; return 1;
} }
/* ############################################################################################## */
/* 805A3338-805A3358 -00001 0020+00 1/0 0/0 0/0 .data l_daTagAtkItem_Method */
SECTION_DATA static void* l_daTagAtkItem_Method[8] = {
(void*)daTagAtkItem_Create__FP14daTagAtkItem_c,
(void*)daTagAtkItem_Delete__FP14daTagAtkItem_c,
(void*)daTagAtkItem_Execute__FP14daTagAtkItem_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
};
/* 805A3358-805A3388 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_AttackItem */
SECTION_DATA extern void* g_profile_Tag_AttackItem[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x01AA0000, (void*)&g_fpcLf_Method,
(void*)0x000006FC, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x02490000, (void*)&l_daTagAtkItem_Method,
(void*)0x00040000, (void*)0x000E0000,
};
/* 805A3388-805A33B4 000094 002C+00 2/2 0/0 0/0 .data __vt__14daTagAtkItem_c */
SECTION_DATA extern void* __vt__14daTagAtkItem_c[11] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)func_805A3110,
(void*)func_805A3108,
(void*)eventRun__17dEvLib_callback_cFv,
(void*)func_805A3100,
(void*)__dt__14daTagAtkItem_cFv,
(void*)eventStart__14daTagAtkItem_cFv,
(void*)eventEnd__14daTagAtkItem_cFv,
};
/* 805A33B4-805A33C0 0000C0 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */
SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10cCcD_GSttsFv,
};
/* 805A33C0-805A33CC 0000CC 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */
SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10dCcD_GSttsFv,
};
/* 805A33CC-805A33D8 0000D8 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */
SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGCylFv,
};
/* 805A33D8-805A33E4 0000E4 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGAabFv,
};
/* 805A33E4-805A33FC 0000F0 0018+00 3/3 0/0 0/0 .data __vt__17dEvLib_callback_c */
SECTION_DATA extern void* __vt__17dEvLib_callback_c[6] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__17dEvLib_callback_cFv,
(void*)eventStart__17dEvLib_callback_cFv,
(void*)eventRun__17dEvLib_callback_cFv,
(void*)eventEnd__17dEvLib_callback_cFv,
};
/* 805A2A34-805A2B5C 000154 0128+00 1/1 0/0 0/0 .text create__14daTagAtkItem_cFv */ /* 805A2A34-805A2B5C 000154 0128+00 1/1 0/0 0/0 .text create__14daTagAtkItem_cFv */
int daTagAtkItem_c::create() { int daTagAtkItem_c::create() {
// NONMATCHING fopAcM_ct(this, daTagAtkItem_c);
}
/* 805A2B5C-805A2BA4 00027C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ if (!Create()) {
// cM3dGCyl::~cM3dGCyl() { return cPhs_ERROR_e;
extern "C" void __dt__8cM3dGCylFv() { }
// NONMATCHING
}
/* 805A2BA4-805A2BEC 0002C4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ OS_REPORT("攻撃反応アイテム:<%x>\n", fopAcM_GetParam(this));
// cM3dGAab::~cM3dGAab() { return cPhs_COMPLEATE_e;
extern "C" void __dt__8cM3dGAabFv() {
// NONMATCHING
}
/* 805A2BEC-805A2C48 00030C 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
// dCcD_GStts::~dCcD_GStts() {
extern "C" void __dt__10dCcD_GSttsFv() {
// NONMATCHING
} }
/* 805A2C48-805A2CA8 000368 0060+00 1/1 0/0 0/0 .text execute__14daTagAtkItem_cFv */ /* 805A2C48-805A2CA8 000368 0060+00 1/1 0/0 0/0 .text execute__14daTagAtkItem_cFv */
@ -285,10 +92,8 @@ BOOL daTagAtkItem_c::checkHit() {
if (hitobj_p != NULL && if (hitobj_p != NULL &&
(hitobj_p->ChkAtType(AT_TYPE_IRON_BALL) || hitobj_p->ChkAtType(AT_TYPE_BOMB))) (hitobj_p->ChkAtType(AT_TYPE_IRON_BALL) || hitobj_p->ChkAtType(AT_TYPE_BOMB)))
{ {
#ifdef DEBUG
// "Attack Reaction Item: Rotate attack hit!\n" // "Attack Reaction Item: Rotate attack hit!\n"
OSReport("攻撃反応アイテム:回転アタックヒット!\n"); OS_REPORT("攻撃反応アイテム:回転アタックヒット!\n");
#endif
return true; return true;
} }
} }
@ -297,12 +102,10 @@ BOOL daTagAtkItem_c::checkHit() {
if ((player_p->checkFrontRollCrash() || player_p->checkWolfAttackReverse()) && if ((player_p->checkFrontRollCrash() || player_p->checkWolfAttackReverse()) &&
player_p->current.pos.absXZ(current.pos) < scale.x * 50.0f && player_p->current.pos.absXZ(current.pos) < scale.x * 50.0f &&
fabsf(player_p->current.pos.y - current.pos.y) < scale.y * 100.0f) std::fabs(player_p->current.pos.y - current.pos.y) < scale.y * 100.0f)
{ {
#ifdef DEBUG
// "Attack Reaction Item: Rotate attack hit!\n" // "Attack Reaction Item: Rotate attack hit!\n"
OSReport("攻撃反応アイテム:回転アタックヒット!\n"); OS_REPORT("攻撃反応アイテム:回転アタックヒット!\n");
#endif
return true; return true;
} }
@ -353,54 +156,29 @@ static int daTagAtkItem_Create(daTagAtkItem_c* i_this) {
return i_this->create(); return i_this->create();
} }
/* 805A30A0-805A30E8 0007C0 0048+00 1/0 0/0 0/0 .text __dt__17dEvLib_callback_cFv */ /* 805A3338-805A3358 -00001 0020+00 1/0 0/0 0/0 .data l_daTagAtkItem_Method */
// dEvLib_callback_c::~dEvLib_callback_c() { static actor_method_class l_daTagAtkItem_Method = {
extern "C" void __dt__17dEvLib_callback_cFv() { (process_method_func)daTagAtkItem_Create,
// NONMATCHING (process_method_func)daTagAtkItem_Delete,
} (process_method_func)daTagAtkItem_Execute,
(process_method_func)NULL,
(process_method_func)NULL,
};
/* 805A30E8-805A30F0 000808 0008+00 2/0 0/0 0/0 .text eventRun__17dEvLib_callback_cFv */ /* 805A3358-805A3388 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_AttackItem */
// bool dEvLib_callback_c::eventRun() { extern actor_process_profile_definition g_profile_Tag_AttackItem = {
extern "C" bool eventRun__17dEvLib_callback_cFv() { fpcLy_CURRENT_e,
return true; 7,
} fpcPi_CURRENT_e,
PROC_Tag_AttackItem,
/* 805A30F0-805A30F8 000810 0008+00 1/0 0/0 0/0 .text eventStart__17dEvLib_callback_cFv &g_fpcLf_Method.base,
*/ sizeof(daTagAtkItem_c),
// bool dEvLib_callback_c::eventStart()() { 0,
extern "C" bool eventStart__17dEvLib_callback_cFv() { 0,
return true; &g_fopAc_Method.base,
} 585,
&l_daTagAtkItem_Method,
/* 805A30F8-805A3100 000818 0008+00 1/0 0/0 0/0 .text eventEnd__17dEvLib_callback_cFv */ 0x40000,
// bool dEvLib_callback_c::eventEnd() { fopAc_ACTOR_e,
extern "C" bool eventEnd__17dEvLib_callback_cFv() { fopAc_CULLBOX_CUSTOM_e,
return true; };
}
/* 805A3100-805A3108 000820 0008+00 1/0 0/0 0/0 .text @1384@eventEnd__14daTagAtkItem_cFv
*/
static void func_805A3100() {
// NONMATCHING
}
/* 805A3108-805A3110 000828 0008+00 1/0 0/0 0/0 .text @1384@eventStart__14daTagAtkItem_cFv */
static void func_805A3108() {
// NONMATCHING
}
/* 805A3110-805A3118 000830 0008+00 1/0 0/0 0/0 .text @1384@__dt__14daTagAtkItem_cFv */
static void func_805A3110() {
// NONMATCHING
}
/* 805A3118-805A3278 000838 0160+00 2/1 0/0 0/0 .text __dt__14daTagAtkItem_cFv */
daTagAtkItem_c::~daTagAtkItem_c() {
// NONMATCHING
}
/* 805A3278-805A32C0 000998 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
// cCcD_GStts::~cCcD_GStts() {
extern "C" void __dt__10cCcD_GSttsFv() {
// NONMATCHING
}

View File

@ -68,7 +68,7 @@ daTit_HIO_c::daTit_HIO_c() {
mPSPosX = 303.0f; mPSPosX = 303.0f;
break; break;
case OS_LANGUAGE_FRENCH: case OS_LANGUAGE_FRENCH:
mPSPosX = 304.0f; mPSPosX = FB_WIDTH / 2;
break; break;
} }
#else #else

View File

@ -2127,10 +2127,10 @@ f32 dCamera_c::radiusActorInSight(fopAc_ac_c* i_actor1, fopAc_ac_c* i_actor2, cX
dDlst_window_c* window = get_window(field_0x0); dDlst_window_c* window = get_window(field_0x0);
scissor_class* scissor = window->getScissor(); scissor_class* scissor = window->getScissor();
f32 dVar3 = cAngle::d2r(i_fovY) * 0.5f; f32 dVar3 = cAngle::d2r(i_fovY) * 0.5f;
f32 tmp = (scissor->height - mTrimHeight * 2.0f) / 448.0f * dVar3; f32 tmp = (scissor->height - mTrimHeight * 2.0f) / FB_HEIGHT * dVar3;
f32 fVar8 = tmp * (mTrimHeight < 0.01f ? 0.95f : 1.0f); f32 fVar8 = tmp * (mTrimHeight < 0.01f ? 0.95f : 1.0f);
dVar3 *= mWindowAspect; dVar3 *= mWindowAspect;
f32 fVar7 = dVar3 * (scissor->width / 608.0f) * 0.85f; f32 fVar7 = dVar3 * (scissor->width / FB_WIDTH) * 0.85f;
cXyz pos1 = attentionPos(i_actor1); cXyz pos1 = attentionPos(i_actor1);
pos1.y += (positionOf(i_actor1).y - attentionPos(i_actor1).y) * 0.5f; pos1.y += (positionOf(i_actor1).y - attentionPos(i_actor1).y) * 0.5f;
@ -7861,9 +7861,11 @@ bool dCamera_c::rideCamera(s32 param_0) {
cSAngle sp144 = cSAngle::_0; cSAngle sp144 = cSAngle::_0;
#if WIDESCREEN_SUPPORT
if (mDoGph_gInf_c::isWide()) { if (mDoGph_gInf_c::isWide()) {
val22 *= WideTurnSaving; val22 *= WideTurnSaving;
} }
#endif
RideData* wk = (RideData*)mWork; RideData* wk = (RideData*)mWork;
@ -9328,11 +9330,13 @@ bool dCamera_c::eventCamera(s32 param_0) {
} }
getEvIntData(&sp1C, "WideMode", 0); getEvIntData(&sp1C, "WideMode", 0);
#if WIDESCREEN_SUPPORT
if (sp1C == 1) { if (sp1C == 1) {
mDoGph_gInf_c::onWideZoom(); mDoGph_gInf_c::onWideZoom();
} else if (sp1C == 2) { } else if (sp1C == 2) {
mDoGph_gInf_c::offWideZoom(); mDoGph_gInf_c::offWideZoom();
} }
#endif
#if DEBUG #if DEBUG
if (mCamSetup.CheckFlag(0x8000)) { if (mCamSetup.CheckFlag(0x8000)) {
@ -10039,7 +10043,7 @@ static int camera_draw(camera_process_class* i_this) {
int camera_id = get_camera_id(a_this); int camera_id = get_camera_id(a_this);
int trim_height = body->TrimHeight(); int trim_height = body->TrimHeight();
window->setScissor(0.0f, trim_height, 608.0f, 448.0f - trim_height * 2.0f); window->setScissor(0.0f, trim_height, FB_WIDTH, FB_HEIGHT - trim_height * 2.0f);
C_MTXPerspective(i_this->projMtx, i_this->fovy, i_this->aspect, i_this->near, i_this->far); C_MTXPerspective(i_this->projMtx, i_this->fovy, i_this->aspect, i_this->near, i_this->far);
mDoMtx_lookAt(i_this->viewMtx, &i_this->lookat.eye, &i_this->lookat.center, mDoMtx_lookAt(i_this->viewMtx, &i_this->lookat.eye, &i_this->lookat.center,
&i_this->lookat.up, i_this->bank); &i_this->lookat.up, i_this->bank);

View File

@ -1936,12 +1936,12 @@ void dComIfG_playerStatusD() {
dComIfGs_onEventBit(0x5d80); dComIfGs_onEventBit(0x5d80);
if (!mDoCPd_c::isConnect(PAD_3)) { if (!mDoCPd_c::isConnect(PAD_3)) {
g_fmapHIO.mRangeCheckInterval = 0; g_fmapHIO.mAllRegionsUnlocked = 0;
} else { } else {
g_fmapHIO.mRangeCheckInterval = 1; g_fmapHIO.mAllRegionsUnlocked = 1;
} }
g_fmapHIO.mRegionImageDebug = 1; g_fmapHIO.mPortalWarpON = 1;
g_fmapHIO.update(); g_fmapHIO.update();
g_mwHIO.setArrowFlag(1); g_mwHIO.setArrowFlag(1);

4
src/d/d_cursor_mng.cpp Normal file
View File

@ -0,0 +1,4 @@
#include "d/d_cursor_mng.h"
// TODO: putting this here until a more appropriate place is found
u8 data_8053a730;

View File

@ -218,7 +218,7 @@ void dDbgCamSetup_c::genMessage(JORMContext* mctx) {
mctx->genLabel("- 情報表示", 0, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); mctx->genLabel("- 情報表示", 0, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18);
mctx->genCheckBox(" 有効", &mFlag, 0x8000, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); mctx->genCheckBox(" 有効", &mFlag, 0x8000, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18);
mctx->genSlider(" 表示位置 ", &mPosX, 0, 640, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); mctx->genSlider(" 表示位置 ", &mPosX, 0, FB_WIDTH, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18);
mctx->genSlider(" ", &mPosY, 0, 480, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); mctx->genSlider(" ", &mPosY, 0, 480, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18);
mctx->genLabel("-", 0, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); mctx->genLabel("-", 0, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18);

View File

@ -73,9 +73,9 @@ static void messageSet(u32 status, bool i_drawBg) {
JUT_ASSERT(102, strlen(msg_p)-1 < 512); JUT_ASSERT(102, strlen(msg_p)-1 < 512);
J2DTextBox tpane('TEXT1', JGeometry::TBox2<f32>(0.0f, 0.0f, 608.0f, 200.0f), (ResFONT*)font_data, msg_p, 512, HBIND_CENTER, VBIND_CENTER); J2DTextBox tpane('TEXT1', JGeometry::TBox2<f32>(0.0f, 0.0f, FB_WIDTH, 200.0f), (ResFONT*)font_data, msg_p, 512, HBIND_CENTER, VBIND_CENTER);
J2DTextBox spane('TEXT2', JGeometry::TBox2<f32>(0.0f, 0.0f, 608.0f, 200.0f), (ResFONT*)font_data, msg_p, 512, HBIND_CENTER, VBIND_CENTER); J2DTextBox spane('TEXT2', JGeometry::TBox2<f32>(0.0f, 0.0f, FB_WIDTH, 200.0f), (ResFONT*)font_data, msg_p, 512, HBIND_CENTER, VBIND_CENTER);
J2DPicture ppane('PICT1', JGeometry::TBox2<f32>(0.0f, 0.0f, 608.0f, 448.0f), (ResTIMG*)black_tex, NULL); J2DPicture ppane('PICT1', JGeometry::TBox2<f32>(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT), (ResTIMG*)black_tex, NULL);
JUTResFont font((ResFONT*)font_data, NULL); JUTResFont font((ResFONT*)font_data, NULL);
JUTFont* pfont = (JUTFont*)&font; JUTFont* pfont = (JUTFont*)&font;
@ -146,36 +146,36 @@ static void messageSet(u32 status, bool i_drawBg) {
#if (VERSION == VERSION_GCN_JPN) || (VERSION == VERSION_WII_JPN) #if (VERSION == VERSION_GCN_JPN) || (VERSION == VERSION_WII_JPN)
f32 temp_0 = 0.0f; // fixes load order f32 temp_0 = 0.0f; // fixes load order
f32 y = temp_0 + ((448.0f - height) / 2); f32 y = temp_0 + ((FB_HEIGHT - height) / 2);
if (i_drawBg) { if (i_drawBg) {
ppane.mAlpha = 0x82; ppane.mAlpha = 0x82;
ppane.draw(0.0f, 0.0f, 608.0f, 448.0f, false, false, false); ppane.draw(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, false, false, false);
} }
spane.draw(2.0f, y + 10.0f + 2.0f, 608.0f, HBIND_CENTER); spane.draw(2.0f, y + 10.0f + 2.0f, FB_WIDTH, HBIND_CENTER);
tpane.draw(0.0f, y + 10.0f, 608.0f, HBIND_CENTER); tpane.draw(0.0f, y + 10.0f, FB_WIDTH, HBIND_CENTER);
#else #else
f32 temp_0 = 0.0f; // fixes load order f32 temp_0 = 0.0f; // fixes load order
f32 x = temp_0 + ((608.0f - maxWidth) / 2); f32 x = temp_0 + ((FB_WIDTH - maxWidth) / 2);
f32 y = temp_0 + ((448.0f - height) / 2); f32 y = temp_0 + ((FB_HEIGHT - height) / 2);
if (i_drawBg) { if (i_drawBg) {
ppane.mAlpha = 0x82; ppane.mAlpha = 0x82;
ppane.draw(0.0f, 0.0f, 608.0f, 448.0f, false, false, false); ppane.draw(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, false, false, false);
} }
#if VERSION == VERSION_GCN_PAL #if VERSION == VERSION_GCN_PAL
if (dComIfGs_getPalLanguage() == dSv_player_config_c::LANGAUGE_ENGLISH) { if (dComIfGs_getPalLanguage() == dSv_player_config_c::LANGAUGE_ENGLISH) {
spane.draw(x + 2.0f, y + 10.0f + 2.0f, 608.0f, HBIND_LEFT); spane.draw(x + 2.0f, y + 10.0f + 2.0f, FB_WIDTH, HBIND_LEFT);
tpane.draw(x, y + 10.0f, 608.0f, HBIND_LEFT); tpane.draw(x, y + 10.0f, FB_WIDTH, HBIND_LEFT);
} else { } else {
spane.draw(2.0f, y + 10.0f + 2.0f, 608.0f, HBIND_CENTER); spane.draw(2.0f, y + 10.0f + 2.0f, FB_WIDTH, HBIND_CENTER);
tpane.draw(0.0f, y + 10.0f, 608.0f, HBIND_CENTER); tpane.draw(0.0f, y + 10.0f, FB_WIDTH, HBIND_CENTER);
} }
#else #else
spane.draw(x + 2.0f, y + 10.0f + 2.0f, 608.0f, HBIND_LEFT); spane.draw(x + 2.0f, y + 10.0f + 2.0f, FB_WIDTH, HBIND_LEFT);
tpane.draw(x, y + 10.0f, 608.0f, HBIND_LEFT); tpane.draw(x, y + 10.0f, FB_WIDTH, HBIND_LEFT);
#endif #endif
#endif #endif
} }
@ -188,8 +188,8 @@ void dDvdErrorMsg_c::draw(s32 status) {
GXSetAlphaUpdate(GX_FALSE); GXSetAlphaUpdate(GX_FALSE);
j3dSys.drawInit(); j3dSys.drawInit();
J2DOrthoGraph draw2D(0.0f, 0.0f, 608.0f, 448.0f, -1.0f, 1.0f); J2DOrthoGraph draw2D(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, -1.0f, 1.0f);
draw2D.setOrtho(0.0f, 0.0f, 608.0f, 448.0f, -1.0f, 1.0f); draw2D.setOrtho(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, -1.0f, 1.0f);
draw2D.setPort(); draw2D.setPort();
dComIfGp_setCurrentGrafPort(&draw2D); dComIfGp_setCurrentGrafPort(&draw2D);
@ -244,8 +244,8 @@ static void drawCapture(u8 alpha) {
static bool l_texCopied = false; static bool l_texCopied = false;
if (!l_texCopied) { if (!l_texCopied) {
GXSetTexCopySrc(0, 0, 608, 448); GXSetTexCopySrc(0, 0, FB_WIDTH, FB_HEIGHT);
GXSetTexCopyDst(304, 224, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_TRUE); GXSetTexCopyDst(FB_WIDTH / 2, FB_HEIGHT / 2, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_TRUE);
GXCopyTex(mDoGph_gInf_c::getFrameBufferTex(), GX_FALSE); GXCopyTex(mDoGph_gInf_c::getFrameBufferTex(), GX_FALSE);
l_texCopied = true; l_texCopied = true;
} }
@ -255,7 +255,7 @@ static void drawCapture(u8 alpha) {
GXSetAlphaUpdate(GX_FALSE); GXSetAlphaUpdate(GX_FALSE);
j3dSys.drawInit(); j3dSys.drawInit();
GXInitTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), mDoGph_gInf_c::getFrameBufferTex(), 304, 224, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_CLAMP, GX_CLAMP, GX_FALSE); GXInitTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), mDoGph_gInf_c::getFrameBufferTex(), FB_WIDTH / 2, FB_HEIGHT / 2, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXInitTexObjLOD(mDoGph_gInf_c::getFrameBufferTexObj(), GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXInitTexObjLOD(mDoGph_gInf_c::getFrameBufferTexObj(), GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
GXLoadTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), GX_TEXMAP0); GXLoadTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), GX_TEXMAP0);
GXSetNumChans(0); GXSetNumChans(0);

View File

@ -2585,7 +2585,7 @@ void dFile_select_c::screenSet() {
black.a = 0; black.a = 0;
white.a = 0xff; white.a = 0xff;
ResTIMG* uVar20 = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', "tt_block8x8.bti"); ResTIMG* uVar20 = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', "tt_block8x8.bti");
field_0x2378 = new J2DPicture('PICT01', JGeometry::TBox2<f32>(0.0f, 608.0f, 0.0f, 448.0f), uVar20, NULL); field_0x2378 = new J2DPicture('PICT01', JGeometry::TBox2<f32>(0.0f, FB_WIDTH, 0.0f, FB_HEIGHT), uVar20, NULL);
field_0x2378->setBlackWhite(black, white); field_0x2378->setBlackWhite(black, white);
field_0x2378->setAlpha(0); field_0x2378->setAlpha(0);
} }

View File

@ -42,11 +42,11 @@ void dDlst_Gameover_CAPTURE_c::draw() {
GXTexObj tex_obj; GXTexObj tex_obj;
Mtx44 m; Mtx44 m;
GXSetTexCopySrc(0, 0, 608, 448); GXSetTexCopySrc(0, 0, FB_WIDTH, FB_HEIGHT);
GXSetTexCopyDst(304, 224, GX_TF_RGB565, 1); GXSetTexCopyDst(FB_WIDTH / 2, FB_HEIGHT / 2, GX_TF_RGB565, 1);
GXCopyTex(mDoGph_gInf_c::mZbufferTex, 0); GXCopyTex(mDoGph_gInf_c::mZbufferTex, 0);
GXPixModeSync(); GXPixModeSync();
GXInitTexObj(&tex_obj, mDoGph_gInf_c::mFrameBufferTex, 304, 224, GXInitTexObj(&tex_obj, mDoGph_gInf_c::mFrameBufferTex, FB_WIDTH / 2, FB_HEIGHT / 2,
(GXTexFmt)mDoGph_gInf_c::mFrameBufferTimg->format, GX_CLAMP, GX_CLAMP, GX_FALSE); (GXTexFmt)mDoGph_gInf_c::mFrameBufferTimg->format, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXInitTexObjLOD(&tex_obj, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GXInitTexObjLOD(&tex_obj, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE,
GX_ANISO_1); GX_ANISO_1);
@ -469,7 +469,7 @@ void dDlst_GameOverScrnDraw_c::draw() {
img_white.a = 255; img_white.a = 255;
mpBackImg->setBlackWhite(img_black, img_white); mpBackImg->setBlackWhite(img_black, img_white);
mpBackImg->draw(0.0f, 0.0f, 608.0f, 448.0f, false, false, false); mpBackImg->draw(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, false, false, false);
} else { } else {
JUtility::TColor img_black; JUtility::TColor img_black;
JUtility::TColor img_white; JUtility::TColor img_white;
@ -484,12 +484,12 @@ void dDlst_GameOverScrnDraw_c::draw() {
img_white.b = l_HIO.mWhite.b; img_white.b = l_HIO.mWhite.b;
img_white.a = l_HIO.mWhite.a; img_white.a = l_HIO.mWhite.a;
mpBackImg->draw(0.0f, 0.0f, 608.0f, 448.0f, false, false, false); mpBackImg->draw(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, false, false, false);
static f32 offset[8] = {-138.0f, -96.0f, -56.0f, -18.0f, 42.0f, 75.0f, 110.0f, 143.0f}; static f32 offset[8] = {-138.0f, -96.0f, -56.0f, -18.0f, 42.0f, 75.0f, 110.0f, 143.0f};
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
mpLight->draw(&field_0x10, offset[i] + 304.0f, 224.0f, l_HIO.mScale, l_HIO.mScale, mpLight->draw(&field_0x10, offset[i] + (FB_WIDTH / 2.0f), (FB_HEIGHT / 2), l_HIO.mScale, l_HIO.mScale,
l_HIO.mAlpha, l_HIO.mAnimSpeed, img_black, img_white); l_HIO.mAlpha, l_HIO.mAnimSpeed, img_black, img_white);
} }
} }

View File

@ -26,7 +26,7 @@ void drawCallback(J2DOrthoGraph& param_0, void* param_1) {
if (mDoGph_gInf_c::isWide()) { if (mDoGph_gInf_c::isWide()) {
MTXOrtho(sp8, 228.0f, -228.0f, -416.0f, 416.0f, 0.0f, 500.0f); MTXOrtho(sp8, 228.0f, -228.0f, -416.0f, 416.0f, 0.0f, 500.0f);
} else { } else {
MTXOrtho(sp8, 228.0f, -228.0f, -304.0f, 304.0f, 0.0f, 500.0f); MTXOrtho(sp8, 228.0f, -228.0f, -(FB_WIDTH / 2), (FB_WIDTH / 2), 0.0f, 500.0f);
} }
GXSetProjection(sp8, GX_ORTHOGRAPHIC); GXSetProjection(sp8, GX_ORTHOGRAPHIC);
@ -179,8 +179,8 @@ int dHomeButton_c::execute() {
// NONMATCHING // NONMATCHING
void dHomeButton_c::drawCapture(u8 param_0, void (*param_1)(J2DOrthoGraph&, void*), void* param_2) { void dHomeButton_c::drawCapture(u8 param_0, void (*param_1)(J2DOrthoGraph&, void*), void* param_2) {
if (lbl_8053A725 == 0) { if (lbl_8053A725 == 0) {
GXSetTexCopySrc(0, 0, 640, 456); GXSetTexCopySrc(0, 0, FB_WIDTH, FB_HEIGHT);
GXSetTexCopyDst(640, 456, (GXTexFmt)mDoGph_gInf_c::m_fullFrameBufferTimg->format, GX_FALSE); GXSetTexCopyDst(FB_WIDTH, FB_HEIGHT, (GXTexFmt)mDoGph_gInf_c::m_fullFrameBufferTimg->format, GX_FALSE);
GXCopyTex(mDoGph_gInf_c::m_fullFrameBufferTex, GX_FALSE); GXCopyTex(mDoGph_gInf_c::m_fullFrameBufferTex, GX_FALSE);
lbl_8053A725 = 1; lbl_8053A725 = 1;
} }
@ -190,7 +190,7 @@ void dHomeButton_c::drawCapture(u8 param_0, void (*param_1)(J2DOrthoGraph&, void
GXSetAlphaUpdate(GX_DISABLE); GXSetAlphaUpdate(GX_DISABLE);
j3dSys.drawInit(); j3dSys.drawInit();
J2DOrthoGraph sp30(0.0f, 0.0f, 640.0f, 456.0f, -1.0f, 1.0f); J2DOrthoGraph sp30(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, -1.0f, 1.0f);
sp30.setOrtho(JGeometry::TBox2<f32>(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF(), sp30.setOrtho(JGeometry::TBox2<f32>(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF(),
mDoGph_gInf_c::getMinXF() + mDoGph_gInf_c::getWidthF(), mDoGph_gInf_c::getMinXF() + mDoGph_gInf_c::getWidthF(),
mDoGph_gInf_c::getMinYF() + mDoGph_gInf_c::getHeightF()), mDoGph_gInf_c::getMinYF() + mDoGph_gInf_c::getHeightF()),

View File

@ -113,8 +113,8 @@ void dInsect_c::CalcZBuffer(f32 param_0) {
camera_trim_height = 0.0f; camera_trim_height = 0.0f;
} }
if (pos_projected.x > 0.0f && pos_projected.x < 608.0f && if (pos_projected.x > 0.0f && pos_projected.x < FB_WIDTH &&
pos_projected.y > camera_trim_height && pos_projected.y < 448.0f - camera_trim_height) pos_projected.y > camera_trim_height && pos_projected.y < FB_HEIGHT - camera_trim_height)
{ {
dComIfGd_peekZ(pos_projected.x, pos_projected.y, &field_0x578); dComIfGd_peekZ(pos_projected.x, pos_projected.y, &field_0x578);
} else { } else {

View File

@ -8493,7 +8493,7 @@ void dKy_depth_dist_set(void* process_p) {
if (var_f31 < 2000.0f && var_f31 < kankyo->field_0x1268) { if (var_f31 < 2000.0f && var_f31 < kankyo->field_0x1268) {
mDoLib_project(&actor_p->eyePos, &sp30); mDoLib_project(&actor_p->eyePos, &sp30);
if ((sp30.x >= 0.0f && sp30.x < 608.0f) && (sp30.y >= 0.0f && sp30.y < 600.0f)) { if ((sp30.x >= 0.0f && sp30.x < FB_WIDTH) && (sp30.y >= 0.0f && sp30.y < 600.0f)) {
cXyz sp18; cXyz sp18;
cXyz spC; cXyz spC;
dKyr_get_vectle_calc(&camera_p->lookat.eye, &camera_p->lookat.center, &sp18); dKyr_get_vectle_calc(&camera_p->lookat.eye, &camera_p->lookat.center, &sp18);

View File

@ -917,17 +917,17 @@ void dKydb_dungeonlight_draw() {
proj.x -= 30.0f; proj.x -= 30.0f;
} }
if (proj.x < 0.0f || proj.x > 640.0f || proj.y < 0.0f || proj.y > 456.0f) { if (proj.x < 0.0f || proj.x > FB_WIDTH || proj.y < 0.0f || proj.y > FB_HEIGHT) {
if (proj.x < 0.0f) { if (proj.x < 0.0f) {
proj.x = 10.0f; proj.x = 10.0f;
} }
if (proj.x > 640.0f) { if (proj.x > FB_WIDTH) {
proj.x = 560.0f; proj.x = 560.0f;
} }
if (proj.y < 0.0f) { if (proj.y < 0.0f) {
proj.y = 40.0f; proj.y = 40.0f;
} }
if (proj.y > 456.0f) { if (proj.y > FB_HEIGHT) {
proj.y = 404.0f; proj.y = 404.0f;
} }

View File

@ -124,8 +124,8 @@ void dKyr_lenzflare_move() {
cXyz center; cXyz center;
mDoLib_project(lenz_packet->mPositions, &proj); mDoLib_project(lenz_packet->mPositions, &proj);
center.x = 304.0f; center.x = FB_WIDTH / 2;
center.y = 224.0f; center.y = FB_HEIGHT / 2;
center.z = 0.0f; center.z = 0.0f;
dKyr_get_vectle_calc(&center, &proj, &vect); dKyr_get_vectle_calc(&center, &proj, &vect);
@ -239,7 +239,7 @@ void dKyr_sun_move() {
chkpnt.x -= sun_chkpnt[i][0]; chkpnt.x -= sun_chkpnt[i][0];
chkpnt.y -= sun_chkpnt[i][1]; chkpnt.y -= sun_chkpnt[i][1];
if (chkpnt.x > 0.0f && chkpnt.x < 608.0f && chkpnt.y > border_y && chkpnt.y < 458.0f - border_y) { if (chkpnt.x > 0.0f && chkpnt.x < FB_WIDTH && chkpnt.y > border_y && chkpnt.y < 458.0f - border_y) {
if (sun_packet->field_0x44[i] >= 0xFFFFFF) { if (sun_packet->field_0x44[i] >= 0xFFFFFF) {
numPointsVisible++; numPointsVisible++;
if (i == 0) { if (i == 0) {
@ -271,8 +271,8 @@ void dKyr_sun_move() {
lenz_packet->field_0x90 = 0.0f; lenz_packet->field_0x90 = 0.0f;
cXyz center; cXyz center;
center.x = 304.0f; center.x = FB_WIDTH / 2;
center.y = 224.0f; center.y = FB_HEIGHT / 2;
center.z = 0.0f; center.z = 0.0f;
lenz_packet->mDistFalloff = center.abs(proj); lenz_packet->mDistFalloff = center.abs(proj);
@ -4438,6 +4438,9 @@ void drawCloudShadow(Mtx drawMtx, u8** tex) {
f32 scale = 0.49f; f32 scale = 0.49f;
C_MTXLightPerspective(sp120, window_cam->fovy, window_cam->aspect, scale, -scale, 0.5f, 0.5f); C_MTXLightPerspective(sp120, window_cam->fovy, window_cam->aspect, scale, -scale, 0.5f, 0.5f);
#if WIDESCREEN_SUPPORT
mDoGph_gInf_c::setWideZoomLightProjection(sp120);
#endif
cMtx_concat(sp120, j3dSys.getViewMtx(), spF0); cMtx_concat(sp120, j3dSys.getViewMtx(), spF0);
rot += 2.0f; rot += 2.0f;
@ -4674,7 +4677,7 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
if (g_env_light.daytime > 105.0f && g_env_light.daytime < 240.0f && !dComIfGp_event_runCheck() && sun_packet != NULL && sun_packet->mSunAlpha > 0.0f) { if (g_env_light.daytime > 105.0f && g_env_light.daytime < 240.0f && !dComIfGp_event_runCheck() && sun_packet != NULL && sun_packet->mSunAlpha > 0.0f) {
mDoLib_project(&sun_packet->mPos[0], &proj); mDoLib_project(&sun_packet->mPos[0], &proj);
if (proj.x > 0.0f && proj.x < 608.0f && proj.y > spC4 && proj.y < (458.0f - spC4)) { if (proj.x > 0.0f && proj.x < FB_WIDTH && proj.y > spC4 && proj.y < (458.0f - spC4)) {
pass = 0; pass = 0;
} }
} }
@ -4940,7 +4943,7 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
z = 100.0f; z = 100.0f;
mDoLib_project(&spF0, &proj); mDoLib_project(&spF0, &proj);
if (proj.x > -x && proj.x < (608.0f + x) && proj.y > -y && proj.y < (458.0f + z)) { if (proj.x > -x && proj.x < (FB_WIDTH + x) && proj.y > -y && proj.y < (458.0f + z)) {
break; break;
} }
@ -4990,7 +4993,7 @@ void drawVrkumo(Mtx drawMtx, GXColor& color, u8** tex) {
z = 100.0f; z = 100.0f;
mDoLib_project(&spE4, &proj); mDoLib_project(&spE4, &proj);
if (proj.x > -x && proj.x < (608.0f + x) && proj.y > -y && proj.y < (458.0f + z)) { if (proj.x > -x && proj.x < (FB_WIDTH + x) && proj.y > -y && proj.y < (458.0f + z)) {
break; break;
} }
@ -6040,7 +6043,7 @@ static void dKyr_evil_draw2(Mtx drawMtx, u8** tex) {
mDoLib_project(&sp7C, &proj); mDoLib_project(&sp7C, &proj);
if (!(proj.x > -sp34.x) || !(proj.x < (608.0f + sp34.x)) || if (!(proj.x > -sp34.x) || !(proj.x < (FB_WIDTH + sp34.x)) ||
!(proj.y > -sp34.y) || !(proj.y < (458.0f + sp34.z))) !(proj.y > -sp34.y) || !(proj.y < (458.0f + sp34.z)))
{ {
continue; continue;
@ -6268,7 +6271,7 @@ void dKyr_evil_draw(Mtx drawMtx, u8** tex) {
mDoLib_project(&spA4, &proj); mDoLib_project(&spA4, &proj);
if (!(proj.x > -sp44.x) || !(proj.x < (608.0f + sp44.x)) || if (!(proj.x > -sp44.x) || !(proj.x < (FB_WIDTH + sp44.x)) ||
!(proj.y > -sp44.y) || !(proj.y < (458.0f + sp44.z))) !(proj.y > -sp44.y) || !(proj.y < (458.0f + sp44.z)))
{ {
continue; continue;

View File

@ -2584,7 +2584,7 @@ f32 dMenu_Collect3D_c::mViewOffsetY = -100.0f;
/* 801B75E8-801B7660 1B1F28 0078+00 0/0 1/1 0/0 .text setupItem3D__17dMenu_Collect3D_cFPA4_f */ /* 801B75E8-801B7660 1B1F28 0078+00 0/0 1/1 0/0 .text setupItem3D__17dMenu_Collect3D_cFPA4_f */
void dMenu_Collect3D_c::setupItem3D(Mtx param_0) { void dMenu_Collect3D_c::setupItem3D(Mtx param_0) {
GXSetViewport(0.0f, mViewOffsetY, 608.0f, 448.0f, 0.0f, 1.0f); GXSetViewport(0.0f, mViewOffsetY, FB_WIDTH, FB_HEIGHT, 0.0f, 1.0f);
mViewOffsetY = -100.0f; mViewOffsetY = -100.0f;
Mtx44 projection; Mtx44 projection;
C_MTXPerspective(projection, 45.0f, mDoGph_gInf_c::getAspect(), 1.0f, 100000.0f); C_MTXPerspective(projection, 45.0f, mDoGph_gInf_c::getAspect(), 1.0f, 100000.0f);

View File

@ -850,14 +850,14 @@ void dMenu_DmapBg_c::draw() {
grafContext->setup2D(); grafContext->setup2D();
GXGetScissor(&scissor_left, &scissor_top, &scissor_width, &scissor_height); GXGetScissor(&scissor_left, &scissor_top, &scissor_width, &scissor_height);
grafContext->scissor(field_0xd94, 0.0f, 608.0f, 448.0f); grafContext->scissor(field_0xd94, 0.0f, FB_WIDTH, FB_HEIGHT);
grafContext->setScissor(); grafContext->setScissor();
mBaseScreen->draw(field_0xd94, field_0xd98, grafContext); mBaseScreen->draw(field_0xd94, field_0xd98, grafContext);
dMenu_Dmap_c::myclass->drawFloorScreenBack(mFloorScreen, field_0xd94, field_0xd98, grafContext); dMenu_Dmap_c::myclass->drawFloorScreenBack(mFloorScreen, field_0xd94, field_0xd98, grafContext);
f32 dVar21 = mDoGph_gInf_c::getWidthF() / 608.0f; f32 dVar21 = mDoGph_gInf_c::getWidthF() / FB_WIDTH;
f32 dVar16 = mDoGph_gInf_c::getHeightF() / 448.0f; f32 dVar16 = mDoGph_gInf_c::getHeightF() / FB_HEIGHT;
mMapScreen[0]->draw(field_0xd94, field_0xd98, grafContext); mMapScreen[0]->draw(field_0xd94, field_0xd98, grafContext);
if (mpBackTexture != NULL) { if (mpBackTexture != NULL) {

View File

@ -121,7 +121,7 @@ void dMenu_Fishing_c::_draw() {
if (mpArchive) { if (mpArchive) {
J2DGrafContext* grafPort = dComIfGp_getCurrentGrafPort(); J2DGrafContext* grafPort = dComIfGp_getCurrentGrafPort();
mpBlackTex->setAlpha(0xff); mpBlackTex->setAlpha(0xff);
mpBlackTex->draw(0.0f, 0.0f, 608.0f, 448.0f, 0, 0, 0); mpBlackTex->draw(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, 0, 0, 0);
mpScreen->draw(0.0f, 0.0f, grafPort); mpScreen->draw(0.0f, 0.0f, grafPort);
mpIconScreen->draw(0.0f, 0.0f, grafPort); mpIconScreen->draw(0.0f, 0.0f, grafPort);
} }

View File

@ -194,9 +194,9 @@ dMenu_Fmap_c::dMenu_Fmap_c(JKRExpHeap* i_heap, STControl* i_stick, CSTControl* i
mProcess = PROC_REGION_MAP; mProcess = PROC_REGION_MAP;
strcpy(mMarkedStageName, ""); strcpy(mMarkedStageName, "");
if (g_fmapHIO.mpArchive != NULL && g_fmapHIO.mpArchive->isMounted()) { if (g_fmapHIO.mpArcData != NULL && g_fmapHIO.mpArcData->isMounted()) {
mProcess = i_process; mProcess = i_process;
mpMapArchive = g_fmapHIO.mpArchive; mpMapArchive = g_fmapHIO.mpArcData;
} else { } else {
mpMapArchive = dComIfGp_getFieldMapArchive2(); mpMapArchive = dComIfGp_getFieldMapArchive2();
} }

View File

@ -282,7 +282,7 @@ void dMenu_Fmap2DBack_c::draw() {
u32 scissorLeft, scissorTop, scissorWidth, scissorHeight; u32 scissorLeft, scissorTop, scissorWidth, scissorHeight;
GXGetScissor(&scissorLeft, &scissorTop, &scissorWidth, &scissorHeight); GXGetScissor(&scissorLeft, &scissorTop, &scissorWidth, &scissorHeight);
grafPort->scissor(mTransX, 0.0f, 608.0f, 448.0f); grafPort->scissor(mTransX, 0.0f, FB_WIDTH, FB_HEIGHT);
grafPort->setScissor(); grafPort->setScissor();
mpBackTex->setBlackWhite(field_0x1208, field_0x120c); mpBackTex->setBlackWhite(field_0x1208, field_0x120c);
@ -299,8 +299,8 @@ void dMenu_Fmap2DBack_c::draw() {
Vec vec2 = mpMapArea->getGlobalVtx(&mtx, 3, false, 0); Vec vec2 = mpMapArea->getGlobalVtx(&mtx, 3, false, 0);
f32 width = mDoGph_gInf_c::getWidthF() / 608.0f; f32 width = mDoGph_gInf_c::getWidthF() / FB_WIDTH;
f32 height = mDoGph_gInf_c::getHeightF() / 448.0f; f32 height = mDoGph_gInf_c::getHeightF() / FB_HEIGHT;
grafPort->scissor(mTransX + ((vec1.x - mDoGph_gInf_c::getMinXF()) / width), grafPort->scissor(mTransX + ((vec1.x - mDoGph_gInf_c::getMinXF()) / width),
mTransZ + (vec1.y / height), (vec2.x - vec1.x) / width, mTransZ + (vec1.y / height), (vec2.x - vec1.x) / width,
@ -2489,7 +2489,7 @@ void dMenu_Fmap2DTop_c::draw() {
J2DOrthoGraph* ctx = static_cast<J2DOrthoGraph*>(dComIfGp_getCurrentGrafPort()); J2DOrthoGraph* ctx = static_cast<J2DOrthoGraph*>(dComIfGp_getCurrentGrafPort());
ctx->setup2D(); ctx->setup2D();
GXGetScissor(&scissor_left, &scissor_top, &scissor_width, &scissor_height); GXGetScissor(&scissor_left, &scissor_top, &scissor_width, &scissor_height);
ctx->scissor(mTransX, 0.0f, 608.0f, 448.0f); ctx->scissor(mTransX, 0.0f, FB_WIDTH, FB_HEIGHT);
ctx->setScissor(); ctx->setScissor();
mpTitleScreen->draw(mTransX, mTransY, ctx); mpTitleScreen->draw(mTransX, mTransY, ctx);
ctx->scissor(scissor_left, scissor_top, scissor_width, scissor_height); ctx->scissor(scissor_left, scissor_top, scissor_width, scissor_height);

View File

@ -166,12 +166,12 @@ void dMenu_Insect_c::_draw() {
if (mpArchive != NULL) { if (mpArchive != NULL) {
J2DGrafContext* grafPort = dComIfGp_getCurrentGrafPort(); J2DGrafContext* grafPort = dComIfGp_getCurrentGrafPort();
mpBlackTex->setAlpha(0xff); mpBlackTex->setAlpha(0xff);
mpBlackTex->draw(0.0f, 0.0f, 608.0f, 448.0f, 0, 0, 0); mpBlackTex->draw(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, 0, 0, 0);
mpScreen->draw(0.0f, 0.0f, grafPort); mpScreen->draw(0.0f, 0.0f, grafPort);
mpDrawCursor->draw(); mpDrawCursor->draw();
field_0xfc = mpExpParent->getAlphaRate() * 150.0f; field_0xfc = mpExpParent->getAlphaRate() * 150.0f;
mpBlackTex->setAlpha(field_0xfc); mpBlackTex->setAlpha(field_0xfc);
mpBlackTex->draw(0.0f, 0.0f, 608.0f, 448.0f, 0, 0, 0); mpBlackTex->draw(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, 0, 0, 0);
mpExpScreen->draw(0.0f, 0.0f, grafPort); mpExpScreen->draw(0.0f, 0.0f, grafPort);
mpSelect_c->setOffsetX(g_drawHIO.mInsectListScreen.mConfirmOptionPosX_4x3); mpSelect_c->setOffsetX(g_drawHIO.mInsectListScreen.mConfirmOptionPosX_4x3);
mpSelect_c->translate(g_drawHIO.mInsectListScreen.mConfirmOptionPosX_4x3 + 486.0f, mpSelect_c->translate(g_drawHIO.mInsectListScreen.mConfirmOptionPosX_4x3 + 486.0f,

View File

@ -315,7 +315,7 @@ void dMenu_ItemExplain_c::draw(J2DOrthoGraph* i_graph) {
mpLabel->scale(g_ringHIO.mItemDescTitleScale, g_ringHIO.mItemDescTitleScale); mpLabel->scale(g_ringHIO.mItemDescTitleScale, g_ringHIO.mItemDescTitleScale);
mpLabel->paneTrans(g_ringHIO.mItemDescTitlePosX, g_ringHIO.mItemDescTitlePosY); mpLabel->paneTrans(g_ringHIO.mItemDescTitlePosX, g_ringHIO.mItemDescTitlePosY);
if (mpBackTex != NULL) { if (mpBackTex != NULL) {
mpBackTex->draw(0.0f, 0.0f, 608.0f, 448.0f, false, false, false); mpBackTex->draw(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, false, false, false);
} }
if (field_0xc8 != field_0xd0) { if (field_0xc8 != field_0xd0) {
field_0xd0 = field_0xc8; field_0xd0 = field_0xc8;

View File

@ -233,8 +233,8 @@ void dMenu_Letter_c::_draw() {
f32 y1 = local_178.y; f32 y1 = local_178.y;
Vec local_184; Vec local_184;
local_184 = afStack_138.getGlobalVtx(field_0x1ec, &mtx, 3, false, 0); local_184 = afStack_138.getGlobalVtx(field_0x1ec, &mtx, 3, false, 0);
f32 dVar17 = mDoGph_gInf_c::getWidthF() / 608.0f; f32 dVar17 = mDoGph_gInf_c::getWidthF() / FB_WIDTH;
f32 dVar16 = mDoGph_gInf_c::getHeightF() / 448.0f; f32 dVar16 = mDoGph_gInf_c::getHeightF() / FB_HEIGHT;
f32 fVar1 = (x1 - mDoGph_gInf_c::getMinXF()) / dVar17; f32 fVar1 = (x1 - mDoGph_gInf_c::getMinXF()) / dVar17;
f32 fVar2 = y1 / dVar16; f32 fVar2 = y1 / dVar16;
grafContext->scissor(fVar1, fVar2, grafContext->scissor(fVar1, fVar2,

View File

@ -497,11 +497,11 @@ void dMenu_Option_c::_draw() {
if (mpArchive != NULL) { if (mpArchive != NULL) {
J2DGrafContext* ctx = dComIfGp_getCurrentGrafPort(); J2DGrafContext* ctx = dComIfGp_getCurrentGrafPort();
mpBlackTex->setAlpha(0xff); mpBlackTex->setAlpha(0xff);
mpBlackTex->draw(0.0f, 0.0f, 608.0f, 448.0f, 0, 0, 0); mpBlackTex->draw(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, 0, 0, 0);
mpBackScreen->draw(0.0f, 0.0f, ctx); mpBackScreen->draw(0.0f, 0.0f, ctx);
f32 alpha = (f32)g_drawHIO.mOptionScreen.mBackgroundAlpha * (f32)field_0x374; f32 alpha = (f32)g_drawHIO.mOptionScreen.mBackgroundAlpha * (f32)field_0x374;
mpBlackTex->setAlpha(alpha); mpBlackTex->setAlpha(alpha);
mpBlackTex->draw(0.0f, 0.0f, 608.0f, 448.0f, 0, 0, 0); mpBlackTex->draw(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, 0, 0, 0);
mpScreen->draw(0.0f, 0.0f, ctx); mpScreen->draw(0.0f, 0.0f, ctx);
mpClipScreen->draw(0.0f, 0.0f, ctx); mpClipScreen->draw(0.0f, 0.0f, ctx);
mpShadowScreen->draw(0.0f, 0.0f, ctx); mpShadowScreen->draw(0.0f, 0.0f, ctx);

View File

@ -148,12 +148,12 @@ void dMenu_Skill_c::_draw() {
J2DGrafContext* context = dComIfGp_getCurrentGrafPort(); J2DGrafContext* context = dComIfGp_getCurrentGrafPort();
u8 alpha = mpBlackTex->mAlpha; u8 alpha = mpBlackTex->mAlpha;
mpBlackTex->setAlpha(0xff); mpBlackTex->setAlpha(0xff);
mpBlackTex->draw(0.0f, 0.0f, 608.0f, 448.0f, 0, 0, 0); mpBlackTex->draw(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, 0, 0, 0);
mpBlackTex->setAlpha(alpha); mpBlackTex->setAlpha(alpha);
mpMenuScreen->draw(mPosX, 0.0f, context); mpMenuScreen->draw(mPosX, 0.0f, context);
mpDrawCursor->draw(); mpDrawCursor->draw();
if (mProcess == 1 || mProcess == 2 || mProcess == 3) { if (mProcess == 1 || mProcess == 2 || mProcess == 3) {
mpBlackTex->draw(0.0f, 0.0f, 608.0f, 448.0f, 0, 0, 0); mpBlackTex->draw(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, 0, 0, 0);
mpLetterScreen->draw(0.0f, 0.0f, context); mpLetterScreen->draw(0.0f, 0.0f, context);
if (mStringID != 0) { if (mStringID != 0) {
mpString->getString(mStringID, (J2DTextBox*)mpTextPane->getPanePtr(), NULL, NULL, mpString->getString(mStringID, (J2DTextBox*)mpTextPane->getPanePtr(), NULL, NULL,

View File

@ -32,13 +32,13 @@ public:
if (getDrawFlag() == 1) { if (getDrawFlag() == 1) {
setDrawFlag(); setDrawFlag();
dComIfGp_onPauseFlag(); dComIfGp_onPauseFlag();
GXSetTexCopySrc(0, 0, 608, 448); GXSetTexCopySrc(0, 0, FB_WIDTH, FB_HEIGHT);
GXSetTexCopyDst(304, 224, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_ENABLE); GXSetTexCopyDst(FB_WIDTH / 2, FB_HEIGHT / 2, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_ENABLE);
GXCopyTex(mDoGph_gInf_c::getFrameBufferTex(), GX_FALSE); GXCopyTex(mDoGph_gInf_c::getFrameBufferTex(), GX_FALSE);
GXPixModeSync(); GXPixModeSync();
} else { } else {
GXTexObj tex; GXTexObj tex;
GXInitTexObj(&tex, mDoGph_gInf_c::getFrameBufferTex(), 304, 224, GXInitTexObj(&tex, mDoGph_gInf_c::getFrameBufferTex(), FB_WIDTH / 2, FB_HEIGHT / 2,
(GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_CLAMP, GX_CLAMP, GX_FALSE); (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
GXLoadTexObj(&tex, GX_TEXMAP0); GXLoadTexObj(&tex, GX_TEXMAP0);

View File

@ -1,12 +1,6 @@
//
// Generated By: dol2asm
// Translation Unit: d/d_meter_HIO
//
#include "d/dolzel.h" // IWYU pragma: keep #include "d/dolzel.h" // IWYU pragma: keep
#include "d/d_meter_HIO.h" #include "d/d_meter_HIO.h"
#include "d/d_save.h"
#include "JSystem/JKernel/JKRAramArchive.h" #include "JSystem/JKernel/JKRAramArchive.h"
#include "JSystem/JKernel/JKRExpHeap.h" #include "JSystem/JKernel/JKRExpHeap.h"
#include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_ext.h"
@ -16,6 +10,12 @@ dMeter_menuHIO_c::dMeter_menuHIO_c() {
mGameover = 70; mGameover = 70;
} }
#if DEBUG
void dMeter_menuHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
#endif
/* 801FE348-801FE4EC 1F8C88 01A4+00 1/1 0/0 0/0 .text __ct__23dMeter_drawCollectHIO_cFv /* 801FE348-801FE4EC 1F8C88 01A4+00 1/1 0/0 0/0 .text __ct__23dMeter_drawCollectHIO_cFv
*/ */
dMeter_drawCollectHIO_c::dMeter_drawCollectHIO_c() { dMeter_drawCollectHIO_c::dMeter_drawCollectHIO_c() {
@ -58,6 +58,12 @@ dMeter_drawCollectHIO_c::dMeter_drawCollectHIO_c() {
mVesselFront[VESSEL_DECOR].set(200, 190, 100, 175); mVesselFront[VESSEL_DECOR].set(200, 190, 100, 175);
} }
#if DEBUG
void dMeter_drawCollectHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
#endif
/* 801FE4EC-801FE5CC 1F8E2C 00E0+00 1/1 0/0 0/0 .text __ct__22dMeter_drawOptionHIO_cFv */ /* 801FE4EC-801FE5CC 1F8E2C 00E0+00 1/1 0/0 0/0 .text __ct__22dMeter_drawOptionHIO_cFv */
dMeter_drawOptionHIO_c::dMeter_drawOptionHIO_c() { dMeter_drawOptionHIO_c::dMeter_drawOptionHIO_c() {
mBarScale[0] = 1.02f; mBarScale[0] = 1.02f;
@ -88,6 +94,12 @@ dMeter_drawOptionHIO_c::dMeter_drawOptionHIO_c() {
mArrowOffsetX_4x3 = 4.0f; mArrowOffsetX_4x3 = 4.0f;
} }
#if DEBUG
void dMeter_drawOptionHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
#endif
/* 801FE5CC-801FE730 1F8F0C 0164+00 1/1 0/0 0/0 .text __ct__22dMeter_drawLetterHIO_cFv */ /* 801FE5CC-801FE730 1F8F0C 0164+00 1/1 0/0 0/0 .text __ct__22dMeter_drawLetterHIO_cFv */
dMeter_drawLetterHIO_c::dMeter_drawLetterHIO_c() { dMeter_drawLetterHIO_c::dMeter_drawLetterHIO_c() {
for (int i = 0; i < 2; i++) { for (int i = 0; i < 2; i++) {
@ -126,6 +138,12 @@ dMeter_drawLetterHIO_c::dMeter_drawLetterHIO_c() {
mLetterTextFront.set(65, 55, 30, 255); mLetterTextFront.set(65, 55, 30, 255);
} }
#if DEBUG
void dMeter_drawLetterHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
#endif
/* 801FE730-801FE8DC 1F9070 01AC+00 1/1 0/0 0/0 .text __ct__23dMeter_drawFishingHIO_cFv /* 801FE730-801FE8DC 1F9070 01AC+00 1/1 0/0 0/0 .text __ct__23dMeter_drawFishingHIO_cFv
*/ */
dMeter_drawFishingHIO_c::dMeter_drawFishingHIO_c() { dMeter_drawFishingHIO_c::dMeter_drawFishingHIO_c() {
@ -133,10 +151,27 @@ dMeter_drawFishingHIO_c::dMeter_drawFishingHIO_c() {
static f32 const fipaPosX[6] = {1.3f, 6.6f, 0.0f, 3.96f, 4.0f, 27.5f}; static f32 const fipaPosX[6] = {1.3f, 6.6f, 0.0f, 3.96f, 4.0f, 27.5f};
static f32 const fipaPosY[6] = {-9.2f, -27.5f, -11.7f, -9.2f, -30.1f, -17.9f}; static f32 const fipaPosY[6] = {-9.2f, -27.5f, -11.7f, -9.2f, -30.1f, -17.9f};
static f32 const finaScale[6] = {0.9f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f}; static f32 const finaScale[6] = {0.9f, 0.9f, 0.9f, 0.9f, 0.9f, 0.9f};
#if PLATFORM_SHIELD
static f32 const finaPosX[6] = {0.0f, -4.0f, 0.0f, 0.0f, 0.0f, -4.0f};
#else
static f32 const finaPosX[6] = {-25.0f, -4.0f, 0.0f, 0.0f, 0.0f, -4.0f}; static f32 const finaPosX[6] = {-25.0f, -4.0f, 0.0f, 0.0f, 0.0f, -4.0f};
#endif
#if PLATFORM_SHIELD
static f32 const finaPosY[6] = {-14.4f, -40.6, -24.0f, -11.7f, -37.9f, -13.0f};
#else
static f32 const finaPosY[6] = {-16.0f, -40.6, -24.0f, -11.7f, -37.9f, -13.0f}; static f32 const finaPosY[6] = {-16.0f, -40.6, -24.0f, -11.7f, -37.9f, -13.0f};
#endif
static f32 const filiScale[6] = {0.65f, 0.65f, 0.65f, 0.65f, 0.65f, 0.65f}; static f32 const filiScale[6] = {0.65f, 0.65f, 0.65f, 0.65f, 0.65f, 0.65f};
#if PLATFORM_SHIELD
static f32 const filiPosX[6] = {0.0f, -8.0f, 9.2f, 9.2f, 9.2f, -8.0f};
#else
static f32 const filiPosX[6] = {-28.0f, -8.0f, 9.2f, 9.2f, 9.2f, -8.0f}; static f32 const filiPosX[6] = {-28.0f, -8.0f, 9.2f, 9.2f, 9.2f, -8.0f};
#endif
static f32 const filiPosY[6] = {-6.6f, -14.0f, -14.4f, 24.9f, -11.7f, 24.9f}; static f32 const filiPosY[6] = {-6.6f, -14.0f, -14.4f, 24.9f, -11.7f, 24.9f};
static f32 const bboxScale[6] = {1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f}; static f32 const bboxScale[6] = {1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f};
static f32 const bboxPosX[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}; static f32 const bboxPosX[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
@ -145,18 +180,22 @@ dMeter_drawFishingHIO_c::dMeter_drawFishingHIO_c() {
static f32 const rboxPosX[6] = {1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}; static f32 const rboxPosX[6] = {1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
static f32 const rboxPosY[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}; static f32 const rboxPosY[6] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
static f32 const finfoScale[6] = {0.87f, 0.87f, 0.88f, 0.87f, 0.87f, 0.87f}; static f32 const finfoScale[6] = {0.87f, 0.87f, 0.88f, 0.87f, 0.87f, 0.87f};
#if VERSION == VERSION_GCN_JPN #if VERSION == VERSION_GCN_JPN
static f32 const finfoPosX[6] = {-27.0f, 0.0f, -12.0f, 0.0f, -12.0f, -32.8f}; static f32 const finfoPosX[6] = {-27.0f, 0.0f, -12.0f, 0.0f, -12.0f, -32.8f};
#else #else
static f32 const finfoPosX[6] = {-17.0f, 0.0f, -14.0f, 0.0f, -12.0f, -32.8f}; static f32 const finfoPosX[6] = {-17.0f, 0.0f, -14.0f, 0.0f, -12.0f, -32.8f};
#endif #endif
static f32 const finfoPosY[6] = {6.6f, 0.0f, 0.0f, 0.0f, 1.3f, 0.0f}; static f32 const finfoPosY[6] = {6.6f, 0.0f, 0.0f, 0.0f, 1.3f, 0.0f};
static f32 const fishnScale[6] = {1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f}; static f32 const fishnScale[6] = {1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f};
#if VERSION == VERSION_GCN_JPN #if VERSION == VERSION_GCN_JPN
static f32 const fishnPosX[6] = {12.0f, -20.0f, 1.3f, 6.6f, 14.0f, -6.6f}; static f32 const fishnPosX[6] = {12.0f, -20.0f, 1.3f, 6.6f, 14.0f, -6.6f};
#else #else
static f32 const fishnPosX[6] = {4.0f, -20.0f, 1.3f, 6.6f, 1.3f, 9.2f}; static f32 const fishnPosX[6] = {4.0f, -20.0f, 1.3f, 6.6f, 1.3f, 9.2f};
#endif #endif
static f32 const fishnPosY[6] = {-72.1f, 129.6f, 0.0f, 6.6f, 32.8f, 11.7f}; static f32 const fishnPosY[6] = {-72.1f, 129.6f, 0.0f, 6.6f, 32.8f, 11.7f};
mOpenFrames = 10; mOpenFrames = 10;
@ -198,6 +237,12 @@ dMeter_drawFishingHIO_c::dMeter_drawFishingHIO_c() {
mCaughtNumPosX_4x3 = -188.0f; mCaughtNumPosX_4x3 = -188.0f;
} }
#if DEBUG
void dMeter_drawFishingHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
#endif
/* 801FE8DC-801FE954 1F921C 0078+00 1/1 0/0 0/0 .text __ct__22dMeter_drawInsectHIO_cFv */ /* 801FE8DC-801FE954 1F921C 0078+00 1/1 0/0 0/0 .text __ct__22dMeter_drawInsectHIO_cFv */
dMeter_drawInsectHIO_c::dMeter_drawInsectHIO_c() { dMeter_drawInsectHIO_c::dMeter_drawInsectHIO_c() {
mOpenFrame = 10; mOpenFrame = 10;
@ -225,6 +270,12 @@ dMeter_drawInsectHIO_c::dMeter_drawInsectHIO_c() {
mConfirmOptionPosY = 119.0f; mConfirmOptionPosY = 119.0f;
} }
#if DEBUG
void dMeter_drawInsectHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
#endif
/* 801FE954-801FE990 1F9294 003C+00 1/1 0/0 0/0 .text __ct__27dMeter_drawCalibrationHIO_cFv */ /* 801FE954-801FE990 1F9294 003C+00 1/1 0/0 0/0 .text __ct__27dMeter_drawCalibrationHIO_cFv */
dMeter_drawCalibrationHIO_c::dMeter_drawCalibrationHIO_c() { dMeter_drawCalibrationHIO_c::dMeter_drawCalibrationHIO_c() {
mOpenFrames = 10; mOpenFrames = 10;
@ -235,6 +286,12 @@ dMeter_drawCalibrationHIO_c::dMeter_drawCalibrationHIO_c() {
mCircleScale2 = 0.75f; mCircleScale2 = 0.75f;
} }
#if DEBUG
void dMeter_drawCalibrationHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
#endif
/* 801FE990-801FEAF0 1F92D0 0160+00 1/1 0/0 0/0 .text __ct__21dMeter_drawSkillHIO_cFv */ /* 801FE990-801FEAF0 1F92D0 0160+00 1/1 0/0 0/0 .text __ct__21dMeter_drawSkillHIO_cFv */
dMeter_drawSkillHIO_c::dMeter_drawSkillHIO_c() { dMeter_drawSkillHIO_c::dMeter_drawSkillHIO_c() {
for (int i = 0; i < 2; i++) { for (int i = 0; i < 2; i++) {
@ -271,21 +328,60 @@ dMeter_drawSkillHIO_c::dMeter_drawSkillHIO_c() {
mSkillTitleScale = 1.1f; mSkillTitleScale = 1.1f;
} }
#if DEBUG
void dMeter_drawSkillHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
#endif
/* 801FEAF0-801FEFF0 1F9430 0500+00 1/1 0/0 0/0 .text __ct__25dMeter_drawEmpButtonHIO_cFv /* 801FEAF0-801FEFF0 1F9430 0500+00 1/1 0/0 0/0 .text __ct__25dMeter_drawEmpButtonHIO_cFv
*/ */
dMeter_drawEmpButtonHIO_c::dMeter_drawEmpButtonHIO_c() { dMeter_drawEmpButtonHIO_c::dMeter_drawEmpButtonHIO_c() {
mPikariScale = 2.5f; mPikariScale = 2.5f;
mPikariFrontInner.set(255, 255, 255, 185);
mPikariFrontOuter.set(0, 155, 0, 0);
mPikariBackInner.set(255, 255, 255, 87);
mPikariBackOuter.set(0, 115, 0, 0);
mPikariAnimSpeed = 0.772705f;
mPikariFrontInner.r = 255;
mPikariFrontInner.g = 255;
mPikariFrontInner.b = 255;
mPikariFrontInner.a = 185;
mPikariFrontOuter.r = 0;
mPikariFrontOuter.g = 155;
mPikariFrontOuter.b = 0;
mPikariFrontOuter.a = 0;
mPikariBackInner.r = 255;
mPikariBackInner.g = 255;
mPikariBackInner.b = 255;
mPikariBackInner.a = 87;
mPikariBackOuter.r = 0;
mPikariBackOuter.g = 115;
mPikariBackOuter.b = 0;
mPikariBackOuter.a = 0;
mPikariAnimSpeed = 0.772705f;
mPikariFastScale = 3.0f; mPikariFastScale = 3.0f;
mPikariFastFrontInner.set(255, 255, 255, 255);
mPikariFastFrontOuter.set(220, 220, 215, 0); mPikariFastFrontInner.r = 255;
mPikariFastBackInner.set(255, 255, 190, 255); mPikariFastFrontInner.g = 255;
mPikariFastBackOuter.set(200, 200, 210, 0); mPikariFastFrontInner.b = 255;
mPikariFastFrontInner.a = 255;
mPikariFastFrontOuter.r = 220;
mPikariFastFrontOuter.g = 220;
mPikariFastFrontOuter.b = 215;
mPikariFastFrontOuter.a = 0;
mPikariFastBackInner.r = 255;
mPikariFastBackInner.g = 255;
mPikariFastBackInner.b = 190;
mPikariFastBackInner.a = 255;
mPikariFastBackOuter.r = 200;
mPikariFastBackOuter.g = 200;
mPikariFastBackOuter.b = 210;
mPikariFastBackOuter.a = 0;
mPikariFastAnimSpeed = 2.0f; mPikariFastAnimSpeed = 2.0f;
mPikariListenScale = 1.0f; mPikariListenScale = 1.0f;
@ -308,7 +404,12 @@ dMeter_drawEmpButtonHIO_c::dMeter_drawEmpButtonHIO_c() {
mDebugDisplayButton[0] = 0; mDebugDisplayButton[0] = 0;
} }
#if PLATFORM_SHIELD
mDisplaySpace = 70.0f;
#else
mDisplaySpace = 35.0f; mDisplaySpace = 35.0f;
#endif
mEmpButtonPosX = 0.0f; mEmpButtonPosX = 0.0f;
mEmpButtonPosY = 175.0f; mEmpButtonPosY = 175.0f;
mEmpButtonScale = 1.0f; mEmpButtonScale = 1.0f;
@ -405,12 +506,9 @@ dMeter_drawEmpButtonHIO_c::dMeter_drawEmpButtonHIO_c() {
mViewChangePosY = 67.0f; mViewChangePosY = 67.0f;
mViewChangeScale = 1.0f; mViewChangeScale = 1.0f;
mText2PosX = 2.0f; mText1PosX = mText2PosX = 2.0f;
mText1PosX = 2.0f; mText1PosY = mText2PosY = 3.0f;
mText2PosY = 3.0f; mText1Scale = mText2Scale = 1.0f;
mText1PosY = 3.0f;
mText2Scale = 1.0f;
mText1Scale = 1.0f;
mItemPosX = 12.0f; mItemPosX = 12.0f;
mItemPosY = 0.0f; mItemPosY = 0.0f;
@ -435,11 +533,9 @@ dMeter_drawEmpButtonHIO_c::dMeter_drawEmpButtonHIO_c() {
mHawkeyeZoomPosY = 25.0f; mHawkeyeZoomPosY = 25.0f;
mHawkeyeZoomScale = 0.8f; mHawkeyeZoomScale = 0.8f;
mHawkeyeZoomScale_4x3 = 0.9f; mHawkeyeZoomScale_4x3 = 0.9f;
// fake match, fix later
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
int* tmp = (int*)this + i; mHawkeyeIconPosX[i] = 0.0f;
*(f32*)(tmp + 0x62) = 0.0f; mHawkeyeIconScale[i] = 1.0f;
*(f32*)(tmp + 0x6B) = 1.0f;
} }
mHawkeyeTextIconPosY = -6.0f; mHawkeyeTextIconPosY = -6.0f;
mHawkeyeZoomTextPosY = -8.0f; mHawkeyeZoomTextPosY = -8.0f;
@ -460,6 +556,12 @@ dMeter_drawEmpButtonHIO_c::dMeter_drawEmpButtonHIO_c() {
mPointerONAnimFrame = 30; mPointerONAnimFrame = 30;
} }
#if DEBUG
void dMeter_drawEmpButtonHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
#endif
/* 801FEFF0-801FF31C 1F9930 032C+00 1/1 0/0 0/0 .text __ct__24dMeter_drawMiniGameHIO_cFv /* 801FEFF0-801FF31C 1F9930 032C+00 1/1 0/0 0/0 .text __ct__24dMeter_drawMiniGameHIO_cFv
*/ */
dMeter_drawMiniGameHIO_c::dMeter_drawMiniGameHIO_c() { dMeter_drawMiniGameHIO_c::dMeter_drawMiniGameHIO_c() {
@ -550,19 +652,53 @@ dMeter_drawMiniGameHIO_c::dMeter_drawMiniGameHIO_c() {
mGetInTextAlphaFrames = 10; mGetInTextAlphaFrames = 10;
mGetInPikariAppearFrames = 30; mGetInPikariAppearFrames = 30;
mGetInPikariScale = 1.8f; mGetInPikariScale = 1.8f;
mGetInPikariFrontInner.set(255, 255, 167, 80);
mGetInPikariFrontOuter.set(220, 110, 30, 0); mGetInPikariFrontInner.r = 255;
mGetInPikariBackInner.set(255, 255, 190, 90); mGetInPikariFrontInner.g = 255;
mGetInPikariBackOuter.set(170, 110, 0, 0); mGetInPikariFrontInner.b = 167;
mGetInPikariFrontInner.a = 80;
mGetInPikariFrontOuter.r = 220;
mGetInPikariFrontOuter.g = 110;
mGetInPikariFrontOuter.b = 30;
mGetInPikariFrontOuter.a = 0;
mGetInPikariBackInner.r = 255;
mGetInPikariBackInner.g = 255;
mGetInPikariBackInner.b = 190;
mGetInPikariBackInner.a = 90;
mGetInPikariBackOuter.r = 170;
mGetInPikariBackOuter.g = 110;
mGetInPikariBackOuter.b = 0;
mGetInPikariBackOuter.a = 0;
mGetInPikariAnimSpeed = 0.6f; mGetInPikariAnimSpeed = 0.6f;
mGetInTextLocation = 0; mGetInTextLocation = 0;
mStartPikariAppearFrames = 30; mStartPikariAppearFrames = 30;
mStartPikariScale = 1.8f; mStartPikariScale = 1.8f;
mStartPikariFrontInner.set(255, 255, 167, 80);
mStartPikariFrontOuter.set(220, 110, 30, 0); mStartPikariFrontInner.r = 255;
mStartPikariBackInner.set(255, 255, 190, 90); mStartPikariFrontInner.g = 255;
mStartPikariBackOuter.set(170, 110, 0, 0); mStartPikariFrontInner.b = 167;
mStartPikariFrontInner.a = 80;
mStartPikariFrontOuter.r = 220;
mStartPikariFrontOuter.g = 110;
mStartPikariFrontOuter.b = 30;
mStartPikariFrontOuter.a = 0;
mStartPikariBackInner.r = 255;
mStartPikariBackInner.g = 255;
mStartPikariBackInner.b = 190;
mStartPikariBackInner.a = 90;
mStartPikariBackOuter.r = 170;
mStartPikariBackOuter.g = 110;
mStartPikariBackOuter.b = 0;
mStartPikariBackOuter.a = 0;
mStartPikariAnimSpeed = 0.6f; mStartPikariAnimSpeed = 0.6f;
mStartPikariDisplayFrames = 30; mStartPikariDisplayFrames = 30;
@ -575,13 +711,36 @@ dMeter_drawMiniGameHIO_c::dMeter_drawMiniGameHIO_c() {
field_0x172 = 10; field_0x172 = 10;
mReadyFightPikariAppearFrames = 30; mReadyFightPikariAppearFrames = 30;
mReadyFightPikariScale = 1.8f; mReadyFightPikariScale = 1.8f;
mReadyFightPikariFrontInner.set(255, 255, 167, 80);
mReadyFightPikariFrontOuter.set(220, 110, 30, 0); mReadyFightPikariFrontInner.r = 255;
mReadyFightPikariBackInner.set(255, 255, 190, 90); mReadyFightPikariFrontInner.g = 255;
mReadyFightPikariBackOuter.set(170, 110, 0, 0); mReadyFightPikariFrontInner.b = 167;
mReadyFightPikariFrontInner.a = 80;
mReadyFightPikariFrontOuter.r = 220;
mReadyFightPikariFrontOuter.g = 110;
mReadyFightPikariFrontOuter.b = 30;
mReadyFightPikariFrontOuter.a = 0;
mReadyFightPikariBackInner.r = 255;
mReadyFightPikariBackInner.g = 255;
mReadyFightPikariBackInner.b = 190;
mReadyFightPikariBackInner.a = 90;
mReadyFightPikariBackOuter.r = 170;
mReadyFightPikariBackOuter.g = 110;
mReadyFightPikariBackOuter.b = 0;
mReadyFightPikariBackOuter.a = 0;
mReadyFightPikariAnimSpeed = 0.6f; mReadyFightPikariAnimSpeed = 0.6f;
} }
#if DEBUG
void dMeter_drawMiniGameHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
#endif
/* 801FF31C-801FF5B8 1F9C5C 029C+00 1/1 0/0 0/0 .text __ct__25dMeter_drawLightDropHIO_cFv /* 801FF31C-801FF5B8 1F9C5C 029C+00 1/1 0/0 0/0 .text __ct__25dMeter_drawLightDropHIO_cFv
*/ */
dMeter_drawLightDropHIO_c::dMeter_drawLightDropHIO_c() { dMeter_drawLightDropHIO_c::dMeter_drawLightDropHIO_c() {
@ -624,10 +783,26 @@ dMeter_drawLightDropHIO_c::dMeter_drawLightDropHIO_c() {
mPikariLoopBackOuter[1].set(126, 238, 218, 0); mPikariLoopBackOuter[1].set(126, 238, 218, 0);
mPikariLoopBackStopFrame = 19.0f; mPikariLoopBackStopFrame = 19.0f;
mDropPikariFrontInner.set(255, 255, 255, 255); mDropPikariFrontInner.r = 255;
mDropPikariFrontOuter.set(0, 0, 0, 0); mDropPikariFrontInner.g = 255;
mDropPikariBackInner.set(255, 255, 255, 255); mDropPikariFrontInner.b = 255;
mDropPikariBackOuter.set(126, 238, 218, 0); mDropPikariFrontInner.a = 255;
mDropPikariFrontOuter.r = 0;
mDropPikariFrontOuter.g = 0;
mDropPikariFrontOuter.b = 0;
mDropPikariFrontOuter.a = 0;
mDropPikariBackInner.r = 255;
mDropPikariBackInner.g = 255;
mDropPikariBackInner.b = 255;
mDropPikariBackInner.a = 255;
mDropPikariBackOuter.r = 126;
mDropPikariBackOuter.g = 238;
mDropPikariBackOuter.b = 218;
mDropPikariBackOuter.a = 0;
mDropPikariAnimSpeed = 0.1f; mDropPikariAnimSpeed = 0.1f;
mDropPikariAnimSpeed_Completed = 0.6f; mDropPikariAnimSpeed_Completed = 0.6f;
mPikariScaleNormal = 1.3f; mPikariScaleNormal = 1.3f;
@ -635,6 +810,12 @@ dMeter_drawLightDropHIO_c::dMeter_drawLightDropHIO_c() {
mAnimDebug = 0; mAnimDebug = 0;
} }
#if DEBUG
void dMeter_drawLightDropHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
#endif
/* 801FF5B8-802001AC 1F9EF8 0BF4+00 1/1 0/0 0/0 .text __ct__16dMeter_drawHIO_cFv */ /* 801FF5B8-802001AC 1F9EF8 0BF4+00 1/1 0/0 0/0 .text __ct__16dMeter_drawHIO_cFv */
dMeter_drawHIO_c::dMeter_drawHIO_c() { dMeter_drawHIO_c::dMeter_drawHIO_c() {
#ifdef DEBUG #ifdef DEBUG
@ -880,27 +1061,42 @@ dMeter_drawHIO_c::dMeter_drawHIO_c() {
mButtonATextScale = 1.0f; mButtonATextScale = 1.0f;
mButtonATextPosX = 0.0f; mButtonATextPosX = 0.0f;
mButtonATextPosY = 0.0f; mButtonATextPosY = 0.0f;
mButtonATextColor.set(255, 255, 255, 255); mButtonATextColor.r = 255;
mButtonATextColor.g = 255;
mButtonATextColor.b = 255;
mButtonATextColor.a = 255;
mButtonBFontScale = 1.0f; mButtonBFontScale = 1.0f;
mButtonBFontPosX = -8.0f; mButtonBFontPosX = -8.0f;
mButtonBFontPosY = 4.0f; mButtonBFontPosY = 4.0f;
mButtonBFontColor.set(255, 255, 255, 255); mButtonBFontColor.r = 255;
mButtonBFontColor.g = 255;
mButtonBFontColor.b = 255;
mButtonBFontColor.a = 255;
field_0x2e4 = 1.0f; field_0x2e4 = 1.0f;
field_0x2e8 = 0.0f; field_0x2e8 = 0.0f;
field_0x2ec = 0.0f; field_0x2ec = 0.0f;
field_0x2f0.set(255, 255, 255, 255); field_0x2f0.r = 255;
field_0x2f0.g = 255;
field_0x2f0.b = 255;
field_0x2f0.a = 255;
mButtonXYTextScale = 1.0f; mButtonXYTextScale = 1.0f;
mButtonXYTextPosX = 0.0f; mButtonXYTextPosX = 0.0f;
mButtonXYTextPosY = 0.0f; mButtonXYTextPosY = 0.0f;
mButtonXYTextColor.set(255, 255, 255, 255); mButtonXYTextColor.r = 255;
mButtonXYTextColor.g = 255;
mButtonXYTextColor.b = 255;
mButtonXYTextColor.a = 255;
mButtonZFontScale = 1.0f; mButtonZFontScale = 1.0f;
mButtonZFontPosX = 0.0f; mButtonZFontPosX = 0.0f;
mButtonZFontPosY = -4.7f; mButtonZFontPosY = -4.7f;
mButtonZFontColor.set(255, 255, 255, 255); mButtonZFontColor.r = 255;
mButtonZFontColor.g = 255;
mButtonZFontColor.b = 255;
mButtonZFontColor.a = 255;
mRupeeKeyScale = 1.0f; mRupeeKeyScale = 1.0f;
mRupeeKeyPosX = 9.2f; mRupeeKeyPosX = 9.2f;
@ -980,66 +1176,226 @@ dMeter_drawHIO_c::dMeter_drawHIO_c() {
mMaxSpurAmount = 6; mMaxSpurAmount = 6;
mSpurIconPikariFrontInner.set(255, 255, 255, 255); mSpurIconPikariFrontInner.r = 255;
mSpurIconPikariFrontOuter.set(140, 232, 228, 0); mSpurIconPikariFrontInner.g = 255;
mSpurIconPikariBackInner.set(255, 255, 190, 255); mSpurIconPikariFrontInner.b = 255;
mSpurIconPikariBackOuter.set(55, 215, 90, 0); mSpurIconPikariFrontInner.a = 255;
mSpurIconPikariFrontOuter.r = 140;
mSpurIconPikariFrontOuter.g = 232;
mSpurIconPikariFrontOuter.b = 228;
mSpurIconPikariFrontOuter.a = 0;
mSpurIconPikariBackInner.r = 255;
mSpurIconPikariBackInner.g = 255;
mSpurIconPikariBackInner.b = 190;
mSpurIconPikariBackInner.a = 255;
mSpurIconPikariBackOuter.r = 55;
mSpurIconPikariBackOuter.g = 215;
mSpurIconPikariBackOuter.b = 90;
mSpurIconPikariBackOuter.a = 0;
mSpurIconPikariAnimSpeed = 1.5f; mSpurIconPikariAnimSpeed = 1.5f;
mSpurIconRevivePikariFrontInner.set(255, 255, 255, 255); mSpurIconRevivePikariFrontInner.r = 255;
mSpurIconRevivePikariFrontOuter.set(220, 110, 30, 0); mSpurIconRevivePikariFrontInner.g = 255;
mSpurIconRevivePikariBackInner.set(255, 255, 190, 255); mSpurIconRevivePikariFrontInner.b = 255;
mSpurIconRevivePikariBackOuter.set(170, 110, 0, 0); mSpurIconRevivePikariFrontInner.a = 255;
mSpurIconRevivePikariFrontOuter.r = 220;
mSpurIconRevivePikariFrontOuter.g = 110;
mSpurIconRevivePikariFrontOuter.b = 30;
mSpurIconRevivePikariFrontOuter.a = 0;
mSpurIconRevivePikariBackInner.r = 255;
mSpurIconRevivePikariBackInner.g = 255;
mSpurIconRevivePikariBackInner.b = 190;
mSpurIconRevivePikariBackInner.a = 255;
mSpurIconRevivePikariBackOuter.r = 170;
mSpurIconRevivePikariBackOuter.g = 110;
mSpurIconRevivePikariBackOuter.b = 0;
mSpurIconRevivePikariBackOuter.a = 0;
mSpurIconRevivePikariAnimSpeed = 0.5f; mSpurIconRevivePikariAnimSpeed = 0.5f;
mButtonZPikariFrontInner.set(255, 255, 255, 255); mButtonZPikariFrontInner.r = 255;
mButtonZPikariFrontOuter.set(0, 0, 0, 0); mButtonZPikariFrontInner.g = 255;
mButtonZPikariBackInner.set(255, 255, 255, 255); mButtonZPikariFrontInner.b = 255;
mButtonZPikariBackOuter.set(160, 160, 110, 0); mButtonZPikariFrontInner.a = 255;
mButtonZPikariFrontOuter.r = 0;
mButtonZPikariFrontOuter.g = 0;
mButtonZPikariFrontOuter.b = 0;
mButtonZPikariFrontOuter.a = 0;
mButtonZPikariBackInner.r = 255;
mButtonZPikariBackInner.g = 255;
mButtonZPikariBackInner.b = 255;
mButtonZPikariBackInner.a = 255;
mButtonZPikariBackOuter.r = 160;
mButtonZPikariBackOuter.g = 160;
mButtonZPikariBackOuter.b = 110;
mButtonZPikariBackOuter.a = 0;
mButtonZPikariAnimSpeed = 0.4f; mButtonZPikariAnimSpeed = 0.4f;
mButtonXYPikariFrontInner.set(255, 255, 255, 255); mButtonXYPikariFrontInner.r = 255;
mButtonXYPikariFrontOuter.set(0, 0, 0, 0); mButtonXYPikariFrontInner.g = 255;
mButtonXYPikariBackInner.set(255, 255, 255, 255); mButtonXYPikariFrontInner.b = 255;
mButtonXYPikariBackOuter.set(160, 160, 110, 0); mButtonXYPikariFrontInner.a = 255;
mButtonXYPikariFrontOuter.r = 0;
mButtonXYPikariFrontOuter.g = 0;
mButtonXYPikariFrontOuter.b = 0;
mButtonXYPikariFrontOuter.a = 0;
mButtonXYPikariBackInner.r = 255;
mButtonXYPikariBackInner.g = 255;
mButtonXYPikariBackInner.b = 255;
mButtonXYPikariBackInner.a = 255;
mButtonXYPikariBackOuter.r = 160;
mButtonXYPikariBackOuter.g = 160;
mButtonXYPikariBackOuter.b = 110;
mButtonXYPikariBackOuter.a = 0;
mButtonXYPikariAnimSpeed = 0.4f; mButtonXYPikariAnimSpeed = 0.4f;
mButtonAPikariFrontInner.set(255, 255, 255, 160); mButtonAPikariFrontInner.r = 255;
mButtonAPikariFrontOuter.set(0, 0, 0, 0); mButtonAPikariFrontInner.g = 255;
mButtonAPikariBackInner.set(255, 255, 255, 128); mButtonAPikariFrontInner.b = 255;
mButtonAPikariBackOuter.set(0, 255, 0, 0); mButtonAPikariFrontInner.a = 160;
mButtonAPikariFrontOuter.r = 0;
mButtonAPikariFrontOuter.g = 0;
mButtonAPikariFrontOuter.b = 0;
mButtonAPikariFrontOuter.a = 0;
mButtonAPikariBackInner.r = 255;
mButtonAPikariBackInner.g = 255;
mButtonAPikariBackInner.b = 255;
mButtonAPikariBackInner.a = 128;
mButtonAPikariBackOuter.r = 0;
mButtonAPikariBackOuter.g = 255;
mButtonAPikariBackOuter.b = 0;
mButtonAPikariBackOuter.a = 0;
mButtonAPikariAnimSpeed = 0.4f; mButtonAPikariAnimSpeed = 0.4f;
mButtonBPikariFrontInner.set(255, 180, 180, 160); mButtonBPikariFrontInner.r = 255;
mButtonBPikariFrontOuter.set(0, 0, 0, 0); mButtonBPikariFrontInner.g = 180;
mButtonBPikariBackInner.set(255, 255, 255, 128); mButtonBPikariFrontInner.b = 180;
mButtonBPikariBackOuter.set(255, 0, 0, 0); mButtonBPikariFrontInner.a = 160;
mButtonBPikariFrontOuter.r = 0;
mButtonBPikariFrontOuter.g = 0;
mButtonBPikariFrontOuter.b = 0;
mButtonBPikariFrontOuter.a = 0;
mButtonBPikariBackInner.r = 255;
mButtonBPikariBackInner.g = 255;
mButtonBPikariBackInner.b = 255;
mButtonBPikariBackInner.a = 128;
mButtonBPikariBackOuter.r = 255;
mButtonBPikariBackOuter.g = 0;
mButtonBPikariBackOuter.b = 0;
mButtonBPikariBackOuter.a = 0;
mButtonBPikariAnimSpeed = 0.4f; mButtonBPikariAnimSpeed = 0.4f;
field_0x4a8.set(255, 180, 180, 160); field_0x4a8.r = 255;
field_0x4ac.set(0, 0, 0, 0); field_0x4a8.g = 180;
field_0x4b0.set(255, 255, 255, 128); field_0x4a8.b = 180;
field_0x4b4.set(255, 0, 0, 0); field_0x4a8.a = 160;
field_0x4ac.r = 0;
field_0x4ac.g = 0;
field_0x4ac.b = 0;
field_0x4ac.a = 0;
field_0x4b0.r = 255;
field_0x4b0.g = 255;
field_0x4b0.b = 255;
field_0x4b0.a = 128;
field_0x4b4.r = 255;
field_0x4b4.g = 0;
field_0x4b4.b = 0;
field_0x4b4.a = 0;
field_0x4b8 = 0.4f; field_0x4b8 = 0.4f;
field_0x4bc.set(255, 180, 180, 160); field_0x4bc.r = 255;
field_0x4c0.set(0, 0, 0, 0); field_0x4bc.g = 180;
field_0x4c4.set(255, 255, 255, 128); field_0x4bc.b = 180;
field_0x4c8.set(255, 255, 255, 0); field_0x4bc.a = 160;
field_0x4c0.r = 0;
field_0x4c0.g = 0;
field_0x4c0.b = 0;
field_0x4c0.a = 0;
field_0x4c4.r = 255;
field_0x4c4.g = 255;
field_0x4c4.b = 255;
field_0x4c4.a = 128;
field_0x4c8.r = 255;
field_0x4c8.g = 255;
field_0x4c8.b = 255;
field_0x4c8.a = 0;
field_0x4cc = 0.4f; field_0x4cc = 0.4f;
field_0x3d0 = 0.7f; field_0x3d0 = 0.7f;
field_0x4d0.set(255, 180, 180, 160); field_0x4d0.r = 255;
field_0x4d4.set(0, 0, 0, 0); field_0x4d0.g = 180;
field_0x4d8.set(255, 255, 255, 128); field_0x4d0.b = 180;
field_0x4dc.set(255, 255, 255, 0); field_0x4d0.a = 160;
field_0x4d4.r = 0;
field_0x4d4.g = 0;
field_0x4d4.b = 0;
field_0x4d4.a = 0;
field_0x4d8.r = 255;
field_0x4d8.g = 255;
field_0x4d8.b = 255;
field_0x4d8.a = 128;
field_0x4dc.r = 255;
field_0x4dc.g = 255;
field_0x4dc.b = 255;
field_0x4dc.a = 0;
field_0x4e0 = 0.4f; field_0x4e0 = 0.4f;
field_0x3d4 = 0.7f; field_0x3d4 = 0.7f;
mMidnaIconPikariFrontInner.set(200, 235, 255, 255); mMidnaIconPikariFrontInner.r = 200;
mMidnaIconPikariFrontOuter.set(0, 0, 0, 0); mMidnaIconPikariFrontInner.g = 235;
mMidnaIconPikariBackInner.set(255, 255, 255, 255); mMidnaIconPikariFrontInner.b = 255;
mMidnaIconPikariBackOuter.set(140, 200, 125, 0); mMidnaIconPikariFrontInner.a = 255;
mMidnaIconPikariFrontOuter.r = 0;
mMidnaIconPikariFrontOuter.g = 0;
mMidnaIconPikariFrontOuter.b = 0;
mMidnaIconPikariFrontOuter.a = 0;
mMidnaIconPikariBackInner.r = 255;
mMidnaIconPikariBackInner.g = 255;
mMidnaIconPikariBackInner.b = 255;
mMidnaIconPikariBackInner.a = 255;
mMidnaIconPikariBackOuter.r = 140;
mMidnaIconPikariBackOuter.g = 200;
mMidnaIconPikariBackOuter.b = 125;
mMidnaIconPikariBackOuter.a = 0;
mMidnaIconPikariAnimSpeed = 0.5f; mMidnaIconPikariAnimSpeed = 0.5f;
mMidnaIconFlashRate = 50; mMidnaIconFlashRate = 50;
@ -1106,6 +1462,22 @@ dMeter_drawHIO_c::dMeter_drawHIO_c() {
mLanternIconMeterSize = 1.0f; mLanternIconMeterSize = 1.0f;
} }
#if WIDESCREEN_SUPPORT
void dMeter_drawHIO_c::updateOnWide() {}
void dMeter_drawHIO_c::updateOffWide() {}
#endif
#if DEBUG
void dMeter_drawHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
void dMeter_drawHIO_c::updateFMsgDebug() {
}
#endif
/* 802001AC-802004B4 1FAAEC 0308+00 1/1 0/0 0/0 .text __ct__16dMeter_ringHIO_cFv */ /* 802001AC-802004B4 1FAAEC 0308+00 1/1 0/0 0/0 .text __ct__16dMeter_ringHIO_cFv */
dMeter_ringHIO_c::dMeter_ringHIO_c() { dMeter_ringHIO_c::dMeter_ringHIO_c() {
mRingRadiusH = 175.0f; mRingRadiusH = 175.0f;
@ -1218,6 +1590,18 @@ dMeter_ringHIO_c::dMeter_ringHIO_c() {
mDirectSelectWaitFrames = 4; mDirectSelectWaitFrames = 4;
} }
#if WIDESCREEN_SUPPORT
void dMeter_ringHIO_c::updateOnWide() {}
void dMeter_ringHIO_c::updateOffWide() {}
#endif
#if DEBUG
void dMeter_ringHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
#endif
/* 802004B4-802006C8 1FADF4 0214+00 1/1 0/0 0/0 .text __ct__19dMeter_mapIconHIO_cFv */ /* 802004B4-802006C8 1FADF4 0214+00 1/1 0/0 0/0 .text __ct__19dMeter_mapIconHIO_cFv */
dMeter_mapIconHIO_c::dMeter_mapIconHIO_c() { dMeter_mapIconHIO_c::dMeter_mapIconHIO_c() {
mPortalCursorScale = 0.5f; mPortalCursorScale = 0.5f;
@ -1311,7 +1695,7 @@ dMeter_mapIconHIO_c::dMeter_mapIconHIO_c() {
mLV5DungeonItem = fpcNm_ITEM_NONE; mLV5DungeonItem = fpcNm_ITEM_NONE;
mIconDebug = false; mIconDebug = false;
for (int i = 0; i < ARRAY_SIZEU(mIconDisplay); i++) { for (int i = 0; i < ARRAY_SIZE(mIconDisplay); i++) {
mIconDisplay[i] = true; mIconDisplay[i] = true;
} }
@ -1326,11 +1710,21 @@ dMeter_mapIconHIO_c::dMeter_mapIconHIO_c() {
mLightDropFlashFrameNum = 10; mLightDropFlashFrameNum = 10;
} }
#if DEBUG
void dMeter_mapIconHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
#endif
/* 802006C8-80200BCC 1FB008 0504+00 1/1 0/0 0/0 .text __ct__16dMeter_fmapHIO_cFv */ /* 802006C8-80200BCC 1FB008 0504+00 1/1 0/0 0/0 .text __ct__16dMeter_fmapHIO_cFv */
dMeter_fmapHIO_c::dMeter_fmapHIO_c() { dMeter_fmapHIO_c::dMeter_fmapHIO_c() {
field_0xc = NULL; mpArcFile = NULL;
field_0x10 = NULL; mpDecompBuf = NULL;
mpArchive = NULL; mpArcData = NULL;
#if DEBUG
mpEvtCallBack = NULL;
#endif
mDisplayFrameNum = 8; mDisplayFrameNum = 8;
mUndisplayFrameNum = 6; mUndisplayFrameNum = 6;
@ -1362,17 +1756,18 @@ dMeter_fmapHIO_c::dMeter_fmapHIO_c() {
mScrollSpeedSlowBound = 0.2f; mScrollSpeedSlowBound = 0.2f;
mScrollSpeedFastBound = 1.0f; mScrollSpeedFastBound = 1.0f;
// fake match
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
int* tmp = (int*)this + i; mRegionImagePosX[i] = 0.0f;
*(f32*)(tmp + 0x5B) = 0.0f; mRegionImagePosZ[i] = 0.0f;
*(f32*)(tmp + 0x63) = 0.0f; mRegionImageScale[i] = 0.0f;
*(f32*)(tmp + 0x6B) = 0.0f;
*(f32*)(tmp + 0x73) = -300000.0f; mRegionScrollRangeMinX[i] = -300000.0f;
*(f32*)(tmp + 0x7B) = -300000.0f; mRegionScrollRangeMinZ[i] = -300000.0f;
*(f32*)(tmp + 0x83) = 300000.0f;
*(f32*)(tmp + 0x8B) = 300000.0f; mRegionScrollRangeMaxX[i] = 300000.0f;
mRegionScrollRangeMaxZ[i] = 300000.0f;
} }
mScrollRangeDebugON = false; mScrollRangeDebugON = false;
mScrollRangeDisplay = false; mScrollRangeDisplay = false;
field_0x308 = true; field_0x308 = true;
@ -1500,30 +1895,59 @@ dMeter_fmapHIO_c::dMeter_fmapHIO_c() {
mMapBlink[ZOOM_VIEW].field_0x20.set(0, 0, 0, 0); mMapBlink[ZOOM_VIEW].field_0x20.set(0, 0, 0, 0);
mMapBlink[ZOOM_VIEW].field_0x24.set(0, 0, 0, 255); mMapBlink[ZOOM_VIEW].field_0x24.set(0, 0, 0, 255);
for (int i = 0; i < ARRAY_SIZEU(mDebugRegionBits); i++) { for (int i = 0; i < ARRAY_SIZE(mDebugRegionBits); i++) {
mDebugRegionBits[i] = 0; mDebugRegionBits[i] = 0;
} }
} }
/* 80200BCC-80200CD4 1FB50C 0108+00 2/1 0/0 0/0 .text __dt__16dMeter_fmapHIO_cFv */ /* 80200BCC-80200CD4 1FB50C 0108+00 2/1 0/0 0/0 .text __dt__16dMeter_fmapHIO_cFv */
dMeter_fmapHIO_c::~dMeter_fmapHIO_c() { dMeter_fmapHIO_c::~dMeter_fmapHIO_c() {
if (field_0xc != NULL) { if (mpArcFile != NULL) {
mDoExt_getGameHeap()->free(field_0xc); mDoExt_getGameHeap()->free(mpArcFile);
field_0xc = NULL; mpArcFile = NULL;
} }
if (field_0x10 != NULL) { if (mpDecompBuf != NULL) {
mDoExt_getGameHeap()->free(field_0x10); mDoExt_getGameHeap()->free(mpDecompBuf);
field_0x10 = NULL; mpDecompBuf = NULL;
} }
if (mpArchive != NULL) { if (mpArcData != NULL) {
mpArchive->unmount(); JKRUnmountArchive(mpArcData);
delete mpArchive; delete mpArcData;
mpArchive = NULL; mpArcData = NULL;
} }
#if DEBUG
if (mpEvtCallBack != NULL) {
delete mpEvtCallBack;
mpEvtCallBack = NULL;
}
#endif
} }
#if DEBUG
void dMeter_fmapHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
void dMeter_fmapHIO_c::listenPropertyEvent(const JORPropertyEvent*) {
}
void dMeter_fmapHIO_c::createEvtCallBackObject() {
}
void dMeter_fmapHIO_c::deleteEvtCallBackObject() {
}
void dMeter_fmapHIO_c::update() {
}
#endif
/* 80200CD4-80200D58 1FB614 0084+00 1/1 0/0 0/0 .text __ct__18dMeter_cursorHIO_cFv */ /* 80200CD4-80200D58 1FB614 0084+00 1/1 0/0 0/0 .text __ct__18dMeter_cursorHIO_cFv */
dMeter_cursorHIO_c::dMeter_cursorHIO_c() { dMeter_cursorHIO_c::dMeter_cursorHIO_c() {
mShopCursorScale = 1.05f; mShopCursorScale = 1.05f;
@ -1538,6 +1962,12 @@ dMeter_cursorHIO_c::dMeter_cursorHIO_c() {
mMagicArmorObjZoomAngleX = -500; mMagicArmorObjZoomAngleX = -500;
} }
#if DEBUG
void dMeter_cursorHIO_c::genMessage(JORMContext* mctx) {
// NONMATCHING
}
#endif
/* 804510B0-804510B8 0005B0 0008+00 1/1 1/1 0/0 .sbss g_menuHIO */ /* 804510B0-804510B8 0005B0 0008+00 1/1 1/1 0/0 .sbss g_menuHIO */
dMeter_menuHIO_c g_menuHIO; dMeter_menuHIO_c g_menuHIO;

View File

@ -1510,8 +1510,8 @@ void dMsgObject_c::fukiPosCalc(bool param_1) {
temp = cStack_48.y; temp = cStack_48.y;
} else { } else {
mDoLib_project(&field_0x100->pos, &local_3c); mDoLib_project(&field_0x100->pos, &local_3c);
if (local_3c.x >= 0.0f && local_3c.x <= 608.0f && local_3c.y >= 0.0f && if (local_3c.x >= 0.0f && local_3c.x <= FB_WIDTH && local_3c.y >= 0.0f &&
local_3c.y <= 448.0f) local_3c.y <= FB_HEIGHT)
{ {
temp = 0.5f * (cStack_48.y + local_3c.y); temp = 0.5f * (cStack_48.y + local_3c.y);
} else { } else {

View File

@ -491,8 +491,8 @@ void dMsgScrnHowl_c::drawWave() {
s32 local_94 = 0; s32 local_94 = 0;
Vec fVar12 = field_0x128; Vec fVar12 = field_0x128;
Vec this_02 = field_0x140; Vec this_02 = field_0x140;
f32 fVar1 = mDoGph_gInf_c::getWidthF() / 608.0f; f32 fVar1 = mDoGph_gInf_c::getWidthF() / FB_WIDTH;
f32 fVar2 = mDoGph_gInf_c::getHeightF() / 448.0f; f32 fVar2 = mDoGph_gInf_c::getHeightF() / FB_HEIGHT;
grafContext->scissor( grafContext->scissor(
(fVar12.x - mDoGph_gInf_c::getMinXF()) / fVar1 - 16.0f, (fVar12.x - mDoGph_gInf_c::getMinXF()) / fVar1 - 16.0f,
(fVar12.y / fVar2) / fVar2 - 16.0f, (fVar12.y / fVar2) / fVar2 - 16.0f,
@ -596,8 +596,8 @@ void dMsgScrnHowl_c::drawGuide() {
Vec local_b0 = field_0x128; Vec local_b0 = field_0x128;
Vec local_bc = field_0x140; Vec local_bc = field_0x140;
grafContext->scissor( grafContext->scissor(
(local_b0.x - mDoGph_gInf_c::getMinXF()) / (mDoGph_gInf_c::getWidthF() / 608.0f), (local_b0.x - mDoGph_gInf_c::getMinXF()) / (mDoGph_gInf_c::getWidthF() / FB_WIDTH),
field_0x2118, (local_bc.x - local_b0.x) / (mDoGph_gInf_c::getWidthF() / 608.0f), field_0x2118, (local_bc.x - local_b0.x) / (mDoGph_gInf_c::getWidthF() / FB_WIDTH),
field_0x2120); field_0x2120);
grafContext->setScissor(); grafContext->setScissor();
f32 local_cc = mpLineH[0]->getGlobalPosX(); f32 local_cc = mpLineH[0]->getGlobalPosX();
@ -727,10 +727,10 @@ void dMsgScrnHowl_c::drawGuide2() {
} }
Vec local_58 = field_0x128; Vec local_58 = field_0x128;
Vec local_64 = field_0x140; Vec local_64 = field_0x140;
f32 local_70 = mDoGph_gInf_c::getHeightF() / 448.0f; f32 local_70 = mDoGph_gInf_c::getHeightF() / FB_HEIGHT;
grafContext->scissor( grafContext->scissor(
(local_58.x - mDoGph_gInf_c::getMinXF()) / (mDoGph_gInf_c::getWidthF() / 608.0f), (local_58.x - mDoGph_gInf_c::getMinXF()) / (mDoGph_gInf_c::getWidthF() / FB_WIDTH),
field_0x2118, (local_64.x - local_58.x) / (mDoGph_gInf_c::getWidthF() / 608.0f), field_0x2118, (local_64.x - local_58.x) / (mDoGph_gInf_c::getWidthF() / FB_WIDTH),
field_0x2120); field_0x2120);
grafContext->setScissor(); grafContext->setScissor();
f32 local_74 = mpLineH[0]->getGlobalPosX(); f32 local_74 = mpLineH[0]->getGlobalPosX();
@ -835,8 +835,8 @@ void dMsgScrnHowl_c::drawEffect() {
Vec vec2 = field_0x140; Vec vec2 = field_0x140;
mDoGph_gInf_c::getHeightF(); mDoGph_gInf_c::getHeightF();
grafContext->scissor( grafContext->scissor(
(vec1.x - mDoGph_gInf_c::getMinXF()) / (mDoGph_gInf_c::getWidthF() / 608.0f), field_0x2118, (vec1.x - mDoGph_gInf_c::getMinXF()) / (mDoGph_gInf_c::getWidthF() / FB_WIDTH), field_0x2118,
12.0f + ((vec2.x - vec1.x) / (mDoGph_gInf_c::getWidthF() / 608.0f)), field_0x2120); 12.0f + ((vec2.x - vec1.x) / (mDoGph_gInf_c::getWidthF() / FB_WIDTH)), field_0x2120);
grafContext->setScissor(); grafContext->setScissor();
u8 timer = daAlink_getAlinkActorClass()->getWolfHowlMgrP()->getReleaseTimer(); u8 timer = daAlink_getAlinkActorClass()->getWolfHowlMgrP()->getReleaseTimer();
u8 screenAlpha = mpScreen->search('line00')->getAlpha(); u8 screenAlpha = mpScreen->search('line00')->getAlpha();

View File

@ -413,10 +413,14 @@ void dMsgScrnItem_c::drawSelf() {
} }
f32 globalPosX = mpTm_c[0]->getGlobalPosX(); f32 globalPosX = mpTm_c[0]->getGlobalPosX();
#if WIDESCREEN_SUPPORT
if (mDoGph_gInf_c::isWide()) { if (mDoGph_gInf_c::isWide()) {
drawOutFont(g_MsgObject_HIO_c.mBoxItemTextPosX + 7.0f + YREG_F(2), drawOutFont(g_MsgObject_HIO_c.mBoxItemTextPosX + 7.0f + YREG_F(2),
g_MsgObject_HIO_c.mBoxItemTextPosY, 1.0f); g_MsgObject_HIO_c.mBoxItemTextPosY, 1.0f);
} else { } else
#endif
{
drawOutFont(g_MsgObject_HIO_c.mBoxItemTextPosX - 2.0f + YREG_F(2), drawOutFont(g_MsgObject_HIO_c.mBoxItemTextPosX - 2.0f + YREG_F(2),
g_MsgObject_HIO_c.mBoxItemTextPosY, 1.0f); g_MsgObject_HIO_c.mBoxItemTextPosY, 1.0f);
} }
@ -577,8 +581,8 @@ void dMsgScrnItem_c::fukiPosCalc(u8 param_1) {
f3 = cStack_7c.y; f3 = cStack_7c.y;
} else { } else {
mDoLib_project(&iVar6->pos, &local_70); mDoLib_project(&iVar6->pos, &local_70);
if (local_70.x >= 0.0f && local_70.x <= 608.0f && local_70.y >= 0.0f && if (local_70.x >= 0.0f && local_70.x <= FB_WIDTH && local_70.y >= 0.0f &&
local_70.y <= 448.0f) local_70.y <= FB_HEIGHT)
{ {
f3 = 0.5f * (cStack_7c.y + local_70.y); f3 = 0.5f * (cStack_7c.y + local_70.y);
} else { } else {

View File

@ -13,8 +13,8 @@
/* 8025247C-80252990 24CDBC 0514+00 1/0 0/0 0/0 .text draw__15dOvlpFd2_dlst_cFv */ /* 8025247C-80252990 24CDBC 0514+00 1/0 0/0 0/0 .text draw__15dOvlpFd2_dlst_cFv */
void dOvlpFd2_dlst_c::draw() { void dOvlpFd2_dlst_c::draw() {
GXSetViewport(0.0f, 0.0f, 608.0f, 448.0f, 0.0f, 1.0f); GXSetViewport(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, 0.0f, 1.0f);
GXSetScissor(0, 0, 608, 448); GXSetScissor(0, 0, FB_WIDTH, FB_HEIGHT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGB, GX_RGBA4, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGB, GX_RGBA4, 0);
GXClearVtxDesc(); GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
@ -50,8 +50,8 @@ void dOvlpFd2_dlst_c::draw() {
C_MTXPerspective(m, 60.0f, mDoGph_gInf_c::getWidthF() / mDoGph_gInf_c::getHeightF(), 100.0f, C_MTXPerspective(m, 60.0f, mDoGph_gInf_c::getWidthF() / mDoGph_gInf_c::getHeightF(), 100.0f,
100000.0f); 100000.0f);
GXSetProjection(m, GX_PERSPECTIVE); GXSetProjection(m, GX_PERSPECTIVE);
GXInitTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), mDoGph_gInf_c::getFrameBufferTex(), 304, GXInitTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), mDoGph_gInf_c::getFrameBufferTex(), FB_WIDTH / 2,
224, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE); FB_HEIGHT / 2, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXInitTexObjLOD(mDoGph_gInf_c::getFrameBufferTexObj(), GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GXInitTexObjLOD(mDoGph_gInf_c::getFrameBufferTexObj(), GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f,
GX_FALSE, GX_FALSE, GX_ANISO_1); GX_FALSE, GX_FALSE, GX_ANISO_1);
GXLoadTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), GX_TEXMAP0); GXLoadTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), GX_TEXMAP0);

View File

@ -14,16 +14,16 @@
/* 80252ED4-80252F28 24D814 0054+00 1/0 0/0 0/0 .text draw__16dDlst_snapShot_cFv */ /* 80252ED4-80252F28 24D814 0054+00 1/0 0/0 0/0 .text draw__16dDlst_snapShot_cFv */
void dDlst_snapShot_c::draw() { void dDlst_snapShot_c::draw() {
GXSetTexCopySrc(0, 0, 608, 448); GXSetTexCopySrc(0, 0, FB_WIDTH, FB_HEIGHT);
GXSetTexCopyDst(608 / 2, 448 / 2, GX_TF_RGBA8, GX_TRUE); GXSetTexCopyDst(FB_WIDTH / 2, FB_HEIGHT / 2, GX_TF_RGBA8, GX_TRUE);
GXCopyTex(mDoGph_gInf_c::getFrameBufferTex(), GX_FALSE); GXCopyTex(mDoGph_gInf_c::getFrameBufferTex(), GX_FALSE);
GXPixModeSync(); GXPixModeSync();
} }
/* 80252F28-8025343C 24D868 0514+00 1/0 0/0 0/0 .text draw__15dOvlpFd3_dlst_cFv */ /* 80252F28-8025343C 24D868 0514+00 1/0 0/0 0/0 .text draw__15dOvlpFd3_dlst_cFv */
void dOvlpFd3_dlst_c::draw() { void dOvlpFd3_dlst_c::draw() {
GXSetViewport(0.0f, 0.0f, 608.0f, 448.0f, 0.0f, 1.0f); GXSetViewport(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, 0.0f, 1.0f);
GXSetScissor(0, 0, 608, 448); GXSetScissor(0, 0, FB_WIDTH, FB_HEIGHT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGB, GX_RGBA4, 0); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGB, GX_RGBA4, 0);
GXClearVtxDesc(); GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
@ -59,8 +59,8 @@ void dOvlpFd3_dlst_c::draw() {
C_MTXPerspective(m, 60.0f, mDoGph_gInf_c::getWidthF() / mDoGph_gInf_c::getHeightF(), 100.0f, C_MTXPerspective(m, 60.0f, mDoGph_gInf_c::getWidthF() / mDoGph_gInf_c::getHeightF(), 100.0f,
100000.0f); 100000.0f);
GXSetProjection(m, GX_PERSPECTIVE); GXSetProjection(m, GX_PERSPECTIVE);
GXInitTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), mDoGph_gInf_c::getFrameBufferTex(), 304, GXInitTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), mDoGph_gInf_c::getFrameBufferTex(), FB_WIDTH / 2,
224, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE); FB_HEIGHT / 2, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXInitTexObjLOD(mDoGph_gInf_c::getFrameBufferTexObj(), GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GXInitTexObjLOD(mDoGph_gInf_c::getFrameBufferTexObj(), GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f,
GX_FALSE, GX_FALSE, GX_ANISO_1); GX_FALSE, GX_FALSE, GX_ANISO_1);
GXLoadTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), GX_TEXMAP0); GXLoadTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), GX_TEXMAP0);

View File

@ -391,7 +391,7 @@ Vec CPaneMgr::getGlobalVtx(J2DPane* p_pane, Mtx* param_1, u8 param_2, bool param
MtxP mp = (MtxP)param_1; MtxP mp = (MtxP)param_1;
J2DPane* parent = p_pane->getParentPane(); J2DPane* parent = p_pane->getParentPane();
J2DOrthoGraph ortho(0.0f, 0.0f, 608.0f, 448.0f, -1.0f, 1.0f); J2DOrthoGraph ortho(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, -1.0f, 1.0f);
ortho.setOrtho(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF(), mDoGph_gInf_c::getWidthF(), mDoGph_gInf_c::getHeightF(), -1.0f, 1.0f); ortho.setOrtho(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF(), mDoGph_gInf_c::getWidthF(), mDoGph_gInf_c::getHeightF(), -1.0f, 1.0f);
if (parent != NULL) { if (parent != NULL) {

View File

@ -18,6 +18,10 @@
#include "m_Do/m_Do_graphic.h" #include "m_Do/m_Do_graphic.h"
#include "m_Do/m_Do_machine.h" #include "m_Do/m_Do_machine.h"
#if PLATFORM_WII
#include "d/d_cursor_mng.h"
#endif
#if VERSION == VERSION_GCN_JPN #if VERSION == VERSION_GCN_JPN
#define LOGO_ARC "Logo" #define LOGO_ARC "Logo"
#define MSG_PATH "/res/Msgjp/bmgres.arc" #define MSG_PATH "/res/Msgjp/bmgres.arc"
@ -532,6 +536,10 @@ dScnLogo_c::~dScnLogo_c() {
dDlst_shadowControl_c::setSimpleTex((ResTIMG*)dComIfG_getObjectRes("Always", 0x4A)); dDlst_shadowControl_c::setSimpleTex((ResTIMG*)dComIfG_getObjectRes("Always", 0x4A));
dTres_c::createWork(); dTres_c::createWork();
dMpath_c::createWork(); dMpath_c::createWork();
#if PLATFORM_WII
data_8053a730 = 0;
#endif
} }
/* 80257910-802579BC 252250 00AC+00 1/0 0/0 0/0 .text phase_0__FP10dScnLogo_c */ /* 80257910-802579BC 252250 00AC+00 1/0 0/0 0/0 .text phase_0__FP10dScnLogo_c */
@ -619,6 +627,10 @@ int dScnLogo_c::create() {
return phase_state; return phase_state;
} }
#if PLATFORM_WII
data_8053a730 = 1;
#endif
mpHeap = mDoExt_setCurrentHeap(field_0x1d4); mpHeap = mDoExt_setCurrentHeap(field_0x1d4);
logoInitGC(); logoInitGC();
mpHeap->becomeCurrentHeap(); mpHeap->becomeCurrentHeap();
@ -730,10 +742,10 @@ void dScnLogo_c::logoInitGC() {
}; };
ResTIMG* warningImg = (ResTIMG*)mpPalLogoResCommand->getArchive()->getResource('DAT ', warning[language]); ResTIMG* warningImg = (ResTIMG*)mpPalLogoResCommand->getArchive()->getResource('DAT ', warning[language]);
mWarning = new dDlst_2D_c(warningImg, 0, 0, 608, 448, 255); mWarning = new dDlst_2D_c(warningImg, 0, 0, FB_WIDTH, FB_HEIGHT, 255);
ResTIMG* warnStartImg = (ResTIMG*)mpPalLogoResCommand->getArchive()->getResource('DAT ', warningPs[language]); ResTIMG* warnStartImg = (ResTIMG*)mpPalLogoResCommand->getArchive()->getResource('DAT ', warningPs[language]);
mWarningStart = new dDlst_2D_c(warnStartImg, 0, 359, 608, 48, 255); mWarningStart = new dDlst_2D_c(warnStartImg, 0, 359, FB_WIDTH, 48, 255);
ResTIMG* progChoiceImg = (ResTIMG*)mpPalLogoResCommand->getArchive()->getResource('DAT ', choice[language]); ResTIMG* progChoiceImg = (ResTIMG*)mpPalLogoResCommand->getArchive()->getResource('DAT ', choice[language]);
mProgressiveChoice = new dDlst_2D_c(progChoiceImg, 113, 143, 416, 210, 255); mProgressiveChoice = new dDlst_2D_c(progChoiceImg, 113, 143, 416, 210, 255);
@ -751,10 +763,10 @@ void dScnLogo_c::logoInitGC() {
mProgressiveSel = new dDlst_2D_c(mProgressivePro, 153, 309, 336, 88, 255); mProgressiveSel = new dDlst_2D_c(mProgressivePro, 153, 309, 336, 88, 255);
#else #else
ResTIMG* warningImg = (ResTIMG*)dComIfG_getObjectRes(LOGO_ARC, 10); ResTIMG* warningImg = (ResTIMG*)dComIfG_getObjectRes(LOGO_ARC, 10);
mWarning = new dDlst_2D_c(warningImg, 0, 0, 608, 448, 255); mWarning = new dDlst_2D_c(warningImg, 0, 0, FB_WIDTH, FB_HEIGHT, 255);
ResTIMG* warnStartImg = (ResTIMG*)dComIfG_getObjectRes(LOGO_ARC, 11); ResTIMG* warnStartImg = (ResTIMG*)dComIfG_getObjectRes(LOGO_ARC, 11);
mWarningStart = new dDlst_2D_c(warnStartImg, 0, 359, 608, 48, 255); mWarningStart = new dDlst_2D_c(warnStartImg, 0, 359, FB_WIDTH, 48, 255);
ResTIMG* progChoiceImg = (ResTIMG*)dComIfG_getObjectRes(LOGO_ARC, 5); ResTIMG* progChoiceImg = (ResTIMG*)dComIfG_getObjectRes(LOGO_ARC, 5);
mProgressiveChoice = new dDlst_2D_c(progChoiceImg, 113, 281, 416, 72, 255); mProgressiveChoice = new dDlst_2D_c(progChoiceImg, 113, 281, 416, 72, 255);

View File

@ -27,6 +27,10 @@
#include "d/actor/d_a_suspend.h" #include "d/actor/d_a_suspend.h"
#include "d/actor/d_a_ykgr.h" #include "d/actor/d_a_ykgr.h"
#if PLATFORM_WII
#include "d/d_cursor_mng.h"
#endif
static void dScnPly_Create(scene_class*); static void dScnPly_Create(scene_class*);
static int dScnPly_Delete(dScnPly_c*); static int dScnPly_Delete(dScnPly_c*);
static int dScnPly_IsDelete(dScnPly_c); static int dScnPly_IsDelete(dScnPly_c);
@ -293,6 +297,11 @@ static int dScnPly_Delete(dScnPly_c* i_this) {
} }
dComIfGp_init(); dComIfGp_init();
#if PLATFORM_WII
data_8053a730 = 0;
#endif
JUTAssertion::setMessageCount(0); JUTAssertion::setMessageCount(0);
return 1; return 1;
} }
@ -345,6 +354,10 @@ static int phase_00(dScnPly_c* i_this) {
if (!i_this->resetGame()) { if (!i_this->resetGame()) {
return cPhs_INIT_e; return cPhs_INIT_e;
} else { } else {
#if PLATFORM_WII
data_8053a730 = 1;
#endif
mDoGph_gInf_c::offBlure(); mDoGph_gInf_c::offBlure();
return cPhs_NEXT_e; return cPhs_NEXT_e;
} }
@ -613,7 +626,7 @@ static int phase_4(dScnPly_c* i_this) {
dComIfGp_setPlayerPtr(i, NULL); dComIfGp_setPlayerPtr(i, NULL);
} }
dComIfGp_setWindow(0, 0.0f, 0.0f, 608.0f, 448.0f, 0.0f, 1.0f, 0, 2); dComIfGp_setWindow(0, 0.0f, 0.0f, FB_WIDTH, FB_HEIGHT, 0.0f, 1.0f, 0, 2);
dComIfGp_setCameraInfo(0, NULL, 0, 0, -1); dComIfGp_setCameraInfo(0, NULL, 0, 0, -1);
dComIfGd_setWindow(NULL); dComIfGd_setWindow(NULL);
dComIfGd_setViewport(NULL); dComIfGd_setViewport(NULL);

File diff suppressed because it is too large Load Diff

View File

@ -4,6 +4,7 @@
*/ */
#include "m_Do/m_Do_lib.h" #include "m_Do/m_Do_lib.h"
#include "m_Do/m_Do_graphic.h"
#include "JSystem/J3DGraphBase/J3DMatBlock.h" #include "JSystem/J3DGraphBase/J3DMatBlock.h"
#include "SSystem/SComponent/c_math.h" #include "SSystem/SComponent/c_math.h"
#include "d/d_com_inf_game.h" #include "d/d_com_inf_game.h"
@ -95,16 +96,16 @@ void mDoLib_project(Vec* src, Vec* dst) {
float xSize; float xSize;
float ySize; float ySize;
if (viewPort->x_orig != 0.0f) { if (viewPort->x_orig != 0.0f) {
xOffset = (0.5f * ((2.0f * viewPort->x_orig) + viewPort->width)) - 304.0f; xOffset = (0.5f * ((2.0f * viewPort->x_orig) + viewPort->width)) - (FB_WIDTH / 2);
xSize = 608.0f; xSize = FB_WIDTH;
} else { } else {
xOffset = viewPort->x_orig; xOffset = viewPort->x_orig;
xSize = viewPort->width; xSize = viewPort->width;
} }
if (viewPort->y_orig != 0.0f) { if (viewPort->y_orig != 0.0f) {
yOffset = (0.5f * ((2.0f * viewPort->y_orig) + viewPort->height)) - 224.0f; yOffset = (0.5f * ((2.0f * viewPort->y_orig) + viewPort->height)) - (FB_HEIGHT / 2);
ySize = 448.0f; ySize = FB_HEIGHT;
} else { } else {
yOffset = viewPort->y_orig; yOffset = viewPort->y_orig;
ySize = viewPort->height; ySize = viewPort->height;

View File

@ -63,7 +63,7 @@ static int unknownHeapErrors;
/* 80450C0C-80450C10 00010C 0004+00 1/1 0/0 0/0 .sbss heapErrors */ /* 80450C0C-80450C10 00010C 0004+00 1/1 0/0 0/0 .sbss heapErrors */
static u32 heapErrors; static u32 heapErrors;
#if VERSION != VERSION_GCN_PAL #if VERSION == VERSION_GCN_USA || VERSION == VERSION_GCN_JPN
/* 803A2F60-803A2F9C 000080 003C+00 1/0 0/0 0/0 .data g_ntscZeldaIntDf */ /* 803A2F60-803A2F9C 000080 003C+00 1/0 0/0 0/0 .data g_ntscZeldaIntDf */
GXRenderModeObj g_ntscZeldaIntDf = { GXRenderModeObj g_ntscZeldaIntDf = {
VI_TVMODE_NTSC_INT, VI_TVMODE_NTSC_INT,
@ -119,7 +119,7 @@ GXRenderModeObj g_ntscZeldaProg = {
{6, 6}}, {6, 6}},
{0, 0, 21, 22, 21, 0, 0}, {0, 0, 21, 22, 21, 0, 0},
}; };
#else #elif VERSION == VERSION_GCN_PAL
/* 803A2F60-803A2F9C 000080 003C+00 1/0 0/0 0/0 .data g_ntscZeldaIntDf */ /* 803A2F60-803A2F9C 000080 003C+00 1/0 0/0 0/0 .data g_ntscZeldaIntDf */
GXRenderModeObj g_ntscZeldaIntDf = { GXRenderModeObj g_ntscZeldaIntDf = {
VI_TVMODE_PAL_INT, VI_TVMODE_PAL_INT,
@ -175,6 +175,60 @@ GXRenderModeObj g_ntscZeldaProg = {
{6, 6}}, {6, 6}},
{8, 8, 10, 12, 10, 8, 8}, {8, 8, 10, 12, 10, 8, 8},
}; };
#else
GXRenderModeObj g_ntscZeldaIntDf = {
VI_TVMODE_NTSC_INT,
640,
456,
456,
25,
12,
670,
456,
VI_XFBMODE_DF,
0,
0,
{{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6}},
{8, 8, 10, 12, 10, 8, 8},
};
GXRenderModeObj g_ntscZeldaProg = {
VI_TVMODE_NTSC_PROG,
640,
456,
456,
25,
12,
670,
456,
VI_XFBMODE_SF,
0,
0,
{{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6},
{6, 6}},
{0, 0, 21, 22, 21, 0, 0},
};
#endif #endif
#ifdef DEBUG #ifdef DEBUG