mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-07 11:27:26 -04:00
Merge remote-tracking branch 'origin/main' into presets
# Conflicts: # files.cmake # src/d/actor/d_a_title.cpp # src/dusk/config.cpp # src/dusk/imgui/ImGuiConsole.cpp # src/dusk/imgui/ImGuiEngine.cpp
This commit is contained in:
@@ -71,10 +71,16 @@ private:
|
||||
/* 0xA30 */ dCcD_Sph mSphere2;
|
||||
/* 0xB68 */ dCcD_Sph mAtSph;
|
||||
/* 0xCA0 */ dCcU_AtInfo mAtInfo;
|
||||
#if AVOID_UB
|
||||
/* 0xCC4 */ u32 mKeys[8];
|
||||
/* 0xCE4 */ u8 mHIOInit;
|
||||
/* 0xCE5 */ u8 field_0xce5[0xCE8 - 0xCE5];
|
||||
#else
|
||||
// !@bug Seems that the orig developers didn't size mKeys correctly, as ideally it should be len=8, not len=7:
|
||||
/* 0xCC4 */ u32 mKeys[7];
|
||||
/* 0xCE0 */ u8 mHIOInit;
|
||||
/* 0xCE1 */ u8 field_0xce1[0xCE8 - 0xCE1];
|
||||
#endif
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daE_FB_c) == 0xce8);
|
||||
|
||||
@@ -39,8 +39,7 @@ public:
|
||||
/* 0x680 */ s16 mPlayerAngleY;
|
||||
/* 0x684 */ f32 mPlayerDistanceLimit;
|
||||
/* 0x688 */ u8 field24_0x688[2];
|
||||
/* 0x68A */ s16 mActionTimer[3];
|
||||
/* 0x690 */ s16 mExecuteState;
|
||||
/* 0x68A */ s16 mActionTimer[4];
|
||||
/* 0x692 */ s16 mInvincibilityTimer;
|
||||
/* 0x694 */ s8 mAttentionOFF;
|
||||
/* 0x695 */ s8 mTKBallSpawned;
|
||||
|
||||
@@ -159,8 +159,7 @@ private:
|
||||
/* 0x00958 */ mDoExt_3DlineMat1_c mRope;
|
||||
/* 0x00994 */ cXyz field_0x994[100];
|
||||
/* 0x00E44 */ csXyz field_0xe44[100];
|
||||
/* 0x0109C */ u8 mRopeCutStatus[10];
|
||||
/* 0x010A6 */ u8 field_0x10A6[0x01100 - 0x010A6];
|
||||
/* 0x0109C */ u8 mRopeCutStatus[100];
|
||||
/* 0x01100 */ u8 mDrawRopes;
|
||||
/* 0x01101 */ u8 field_0x1101[0x01104 - 0x01101];
|
||||
/* 0x01104 */ f32 field_0x1104[10];
|
||||
|
||||
@@ -128,10 +128,10 @@ public:
|
||||
/* 0x0760 */ f32 field_0x760;
|
||||
/* 0x0764 */ cXyz field_0x764;
|
||||
/* 0x0770 */ mg_line_s mg_line; // below to mg_hook_s part of mg_line_s?
|
||||
/* 0x0C20 */ f32 field_0xc20[98];
|
||||
/* 0x0DA8 */ u8 field_0xDA8[0x0DB0 - 0x0DA8];
|
||||
/* 0x0DB0 */ f32 field_0xdb0[98];
|
||||
/* 0x0F38 */ u8 field_0xF38[0x0F40 - 0x0F38];
|
||||
/* 0x0C20 */ f32 field_0xc20[99];
|
||||
/* 0x0DA8 */ u8 field_0xDAC[0x0DB0 - 0x0DAC];
|
||||
/* 0x0DB0 */ f32 field_0xdb0[99];
|
||||
/* 0x0F3C */ u8 field_0xF38[0x0F40 - 0x0F3C];
|
||||
/* 0x0F40 */ mDoExt_3DlineMat0_c linemat;
|
||||
/* 0x0F5C */ f32 field_0xf5c;
|
||||
/* 0x0F60 */ f32 field_0xf60;
|
||||
@@ -183,9 +183,8 @@ public:
|
||||
/* 0x102F */ u8 field_0x102f;
|
||||
/* 0x1030 */ J3DModel* esa_model[2];
|
||||
/* 0x1038 */ u8 field_0x1038[0x103C - 0x1038];
|
||||
/* 0x103C */ s16 field_0x103c[8];
|
||||
/* 0x104C */ u8 field_0x104C[0x104E - 0x104C];
|
||||
/* 0x104E */ s16 field_0x104e[8];
|
||||
/* 0x103C */ s16 field_0x103c[9];
|
||||
/* 0x104E */ s16 field_0x104e[9];
|
||||
/* 0x1060 */ cXyz hook_pos;
|
||||
/* 0x106C */ cXyz field_0x106c;
|
||||
/* 0x1078 */ cXyz field_0x1078;
|
||||
|
||||
@@ -25,10 +25,7 @@ public:
|
||||
/* 0x1C */ f32 max_speed; // 最大速度 - Maximum Speed
|
||||
/* 0x20 */ f32 spring_constant; // バネ係数 - Spring Constant
|
||||
/* 0x24 */ f32 damp_coeff[1]; // 減衰係数 - Damp Coefficient
|
||||
/* 0x28 */ f32 field_0x28[1];
|
||||
/* 0x2C */ f32 field_0x2c;
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ f32 field_0x34;
|
||||
/* 0x28 */ f32 field_0x28[4];
|
||||
/* 0x38 */ f32 vert_swing_width; // 縦揺れ幅 - Vertical Swing Width
|
||||
/* 0x3C */ f32 shake_dist; // 揺れ距離 - Shake Distance
|
||||
/* 0x40 */ f32 jump_dist; // 跳ね距離 - Jump Distance
|
||||
|
||||
@@ -32,8 +32,7 @@ public:
|
||||
/* 0x620 */ s16 field_0x620;
|
||||
/* 0x624 */ mDoExt_McaMorf* mpMorf;
|
||||
/* 0x628 */ mDoExt_btkAnm* mpBtkAnms[3];
|
||||
/* 0x634 */ mDoExt_btpAnm* mpBtpAnms[3];
|
||||
/* 0x640 */ u8 field_0x640[0x654 - 0x640];
|
||||
/* 0x634 */ mDoExt_btpAnm* mpBtpAnms[8];
|
||||
/* 0x654 */ s32 field_0x654;
|
||||
/* 0x658 */ s32 field_0x658;
|
||||
/* 0x65C */ s32 mAnmResIndex;
|
||||
|
||||
@@ -24,8 +24,7 @@ struct lf_s {
|
||||
/* 0x44 */ f32 field_0x44;
|
||||
/* 0x48 */ f32 field_0x48;
|
||||
/* 0x4C */ s16 field_0x4c[2];
|
||||
/* 0x50 */ s16 field_0x50[2];
|
||||
/* 0x54 */ u8 field_0x54[4];
|
||||
/* 0x50 */ s16 field_0x50[4];
|
||||
/* 0x58 */ f32 field_0x58;
|
||||
/* 0x5C */ f32 field_0x5c;
|
||||
/* 0x60 */ f32 field_0x60;
|
||||
|
||||
@@ -28,11 +28,9 @@ public:
|
||||
/* 0x580 */ s16 field_0x580[2];
|
||||
/* 0x584*/ dCcD_Stts mStts;
|
||||
/* 0x5c0 */ dCcD_Sph mSph;
|
||||
/* 0x6f8 */ u32 field_0x6f8[4];
|
||||
/* 0x6fc */ u8 field_0x6fc[0x70c - 0x708]; // Undefined
|
||||
/* 0x6f8 */ u32 field_0x6f8[5];
|
||||
/* 0x70c */ LIGHT_INFLUENCE mLightObj;
|
||||
/* 0x72c */ u8 field_0x72c;
|
||||
/* 0x72d */ u8 field_0x72d[0x730 - 0x72d]; //Undefined
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(obj_maki_class) == 0x730);
|
||||
|
||||
@@ -55,8 +55,7 @@ private:
|
||||
/* 0x710 */ bool mIsHitByBoomerang;
|
||||
/* 0x711 */ u8 mAction;
|
||||
/* 0x712 */ u8 field_0x712;
|
||||
/* 0x714 */ s16 field_0x714[2];
|
||||
/* 0x718 */ s16 field_0x718;
|
||||
/* 0x714 */ s16 field_0x714[3];
|
||||
/* 0x71C */ f32 field_0x71c;
|
||||
/* 0x720 */ f32 field_0x720;
|
||||
/* 0x724 */ s16 field_0x724;
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include <cstring>
|
||||
|
||||
#include "tracy/Tracy.hpp"
|
||||
|
||||
enum dComIfG_ButtonStatus {
|
||||
/* 0x00 */ BUTTON_STATUS_NONE,
|
||||
/* 0x01 */ BUTTON_STATUS_LET_GO,
|
||||
@@ -3109,114 +3111,133 @@ inline void dComIfGp_particle_calcMenu() {
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_draw(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->drawNormal(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_drawFog(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->drawNormalFog(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_drawP1(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->drawNormalP1(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_drawProjection(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->drawProjection(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_drawNormalPri0_A(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->drawNormalPri0_A(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_drawNormalPri0_B(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->drawNormalPri0_B(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_drawFogPri0_A(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->drawFogPri0_A(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_drawFogPri0_B(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->drawFogPri0_B(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_drawFogPri1(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->drawFogPri1(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_drawFogPri2(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->drawFogPri2(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_drawFogPri3(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->drawFogPri3(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_drawFogPri4(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->drawFogPri4(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_drawDarkworld(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->drawDarkworld(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_drawScreen(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->drawFogScreen(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_draw2Dgame(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->draw2Dgame(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_draw2Dfore(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->draw2Dfore(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_draw2Dback(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->draw2Dback(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_draw2DmenuFore(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->draw2DmenuFore(i_drawInfo);
|
||||
}
|
||||
}
|
||||
|
||||
inline void dComIfGp_particle_draw2DmenuBack(JPADrawInfo* i_drawInfo) {
|
||||
ZoneScoped;
|
||||
if (g_dComIfG_gameInfo.play.getParticle() != NULL) {
|
||||
g_dComIfG_gameInfo.play.getParticle()->draw2DmenuBack(i_drawInfo);
|
||||
}
|
||||
@@ -4736,114 +4757,149 @@ inline void dComIfGd_setViewport(view_port_class* port) {
|
||||
}
|
||||
|
||||
inline void dComIfGd_entryZSortListZxlu(J3DPacket* i_packet, cXyz& param_1) {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.entryZSortListZxlu(i_packet, param_1);
|
||||
}
|
||||
|
||||
inline void dComIfGd_entryZSortXluList(J3DPacket* i_packet, cXyz& param_1) {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.entryZSortXluList(i_packet, param_1);
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawCopy2D() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawCopy2D();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawOpaListSky() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawOpaListSky();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawXluListSky() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawXluListSky();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawOpaListBG() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawOpaListBG();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawOpaListDarkBG() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawOpaListDarkBG();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawOpaListMiddle() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawOpaListMiddle();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawOpaList() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawOpaList();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawOpaListDark() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawOpaListDark();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawOpaListPacket() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawOpaListPacket();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawXluListBG() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawXluListBG();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawXluListDarkBG() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawXluListDarkBG();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawXluList() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawXluList();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawXluListDark() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawXluListDark();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawXluListInvisible() {
|
||||
g_dComIfG_gameInfo.drawlist.drawXluListInvisible();
|
||||
ZoneScoped;
|
||||
#ifdef TARGET_PC
|
||||
// FIXME: Water rendering hack for frame interpolation
|
||||
if (!dusk::getSettings().game.enableFrameInterpolation) {
|
||||
#endif
|
||||
g_dComIfG_gameInfo.drawlist.drawXluListInvisible();
|
||||
#ifdef TARGET_PC
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawOpaListInvisible() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawOpaListInvisible();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawXluListZxlu() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawXluListZxlu();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawXluList2DScreen() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawXluList2DScreen();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawOpaList3Dlast() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawOpaList3Dlast();
|
||||
}
|
||||
|
||||
inline void dComIfGd_draw2DOpa() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.draw2DOpa();
|
||||
}
|
||||
|
||||
inline void dComIfGd_draw2DOpaTop() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.draw2DOpaTop();
|
||||
}
|
||||
|
||||
inline void dComIfGd_draw2DXlu() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.draw2DXlu();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawOpaListFilter() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawOpaListFilter();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawIndScreen() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawOpaListP0();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawListZxlu() {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawXluListZxlu();
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawShadow(Mtx param_0) {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.drawShadow(param_0);
|
||||
}
|
||||
|
||||
inline void dComIfGd_imageDrawShadow(Mtx param_0) {
|
||||
ZoneScoped;
|
||||
g_dComIfG_gameInfo.drawlist.imageDrawShadow(param_0);
|
||||
}
|
||||
|
||||
|
||||
@@ -104,12 +104,8 @@ public:
|
||||
/* 0x18 */ f32 mWindowPosX;
|
||||
/* 0x1C */ f32 mWindowPosY;
|
||||
/* 0x20 */ f32 mWindowScale;
|
||||
/* 0x24 */ f32 mOptionTypeBGPosX[4];
|
||||
/* 0x34 */ f32 mTVsettingPosX;
|
||||
/* 0x38 */ f32 mPointerCalibrationPosX;
|
||||
/* 0x3C */ f32 mOptionTypeBGPosY[4];
|
||||
/* 0x4C */ f32 mTVsettingPosY;
|
||||
/* 0x50 */ f32 mPointerCalibrationPosY;
|
||||
/* 0x24 */ f32 mOptionTypeBGPosX[6];
|
||||
/* 0x3C */ f32 mOptionTypeBGPosY[6];
|
||||
/* 0x54 */ f32 mBarScale[2]; // 0: mSelectBarScale | 1: mUnselectBarScale
|
||||
/* 0x5C */ f32 mBackgroundPosY;
|
||||
/* 0x60 */ f32 mArrowOffsetX;
|
||||
@@ -547,8 +543,7 @@ public:
|
||||
/* 0x1C */ f32 mVesselTalkPosY;
|
||||
/* 0x20 */ f32 mVesselPosX_4x3;
|
||||
/* 0x24 */ f32 mVesselPosY_4x3;
|
||||
/* 0x28 */ f32 mVesselAlpha[3];
|
||||
/* 0x34 */ f32 mDropAlpha;
|
||||
/* 0x28 */ f32 mVesselAlpha[4];
|
||||
/* 0x38 */ JUtility::TColor mDropOnColorWhite;
|
||||
/* 0x3C */ JUtility::TColor mDropOnColorBlack;
|
||||
/* 0x40 */ JUtility::TColor mDropOffColorWhite;
|
||||
|
||||
@@ -111,13 +111,6 @@ void Save();
|
||||
*/
|
||||
ConfigVarBase* GetConfigVar(std::string_view name);
|
||||
|
||||
/**
|
||||
* \brief Returns true if no config file was found on the last LoadFromUserPreferences() call.
|
||||
*
|
||||
* For detect first run to prompt the user to choose a preset.
|
||||
*/
|
||||
bool IsConfigFileMissing();
|
||||
|
||||
template <ConfigValue T>
|
||||
const ConfigImplBase* GetConfigImpl() {
|
||||
static ConfigImpl<T> config;
|
||||
|
||||
@@ -165,7 +165,7 @@ public:
|
||||
* @param arg Arguments to forward to construct the default value.
|
||||
*/
|
||||
template <typename... Args>
|
||||
explicit ConfigVar(const char* name, Args&&... arg)
|
||||
ConfigVar(const char* name, Args&&... arg)
|
||||
: ConfigVarBase(name, GetConfigImpl<T>()), defaultValue(std::forward<Args>(arg)...),
|
||||
value(), overrideValue() {}
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
#ifndef DUSK_FRAME_INTERP_H
|
||||
#define DUSK_FRAME_INTERP_H
|
||||
|
||||
#include <dolphin/mtx.h>
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace dusk {
|
||||
namespace frame_interp {
|
||||
|
||||
void ensure_initialized();
|
||||
|
||||
void begin_record();
|
||||
void end_record();
|
||||
void interpolate(float step);
|
||||
void notify_sim_tick_complete();
|
||||
uint32_t begin_presentation_ui_pass();
|
||||
uint32_t get_presentation_ui_advance_ticks();
|
||||
void end_presentation_ui_pass();
|
||||
|
||||
void open_child(const void* key, int32_t id);
|
||||
void close_child();
|
||||
void record_final_mtx_raw(const Mtx* dest, const Mtx src);
|
||||
|
||||
bool lookup_replacement(const void* source, Mtx out);
|
||||
bool lookup_concat_replacement(const void* lhs, const void* rhs, Mtx out);
|
||||
|
||||
} // namespace frame_interp
|
||||
} // namespace dusk
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <dolphin/gx/GXAurora.h>
|
||||
#include <dolphin/gx/GXExtra.h>
|
||||
#include "tracy/Tracy.hpp"
|
||||
|
||||
#define GX_DEBUG_GROUP(name, ...) \
|
||||
do { \
|
||||
@@ -51,4 +52,6 @@ struct GXScopedDebugGroup {
|
||||
}
|
||||
};
|
||||
|
||||
#define GX_AND_TRACY_SCOPED(name) GXScopedDebugGroup scope(name); ZoneScopedN(name);
|
||||
|
||||
#endif // DUSK_GX_HELPER_H
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
#define DUSK_MAIN_H
|
||||
|
||||
namespace dusk {
|
||||
extern bool IsRunning;
|
||||
extern bool IsShuttingDown;
|
||||
extern bool IsGameLaunched;
|
||||
}
|
||||
|
||||
#endif // DUSK_MAIN_H
|
||||
|
||||
@@ -53,6 +53,7 @@ struct UserSettings {
|
||||
// Graphics
|
||||
ConfigVar<bool> enableBloom;
|
||||
ConfigVar<bool> useWaterProjectionOffset;
|
||||
ConfigVar<bool> enableFrameInterpolation;
|
||||
|
||||
// Audio
|
||||
ConfigVar<bool> noLowHpSound;
|
||||
@@ -70,6 +71,14 @@ struct UserSettings {
|
||||
// Controls
|
||||
ConfigVar<bool> enableTurboKeybind;
|
||||
} game;
|
||||
|
||||
struct {
|
||||
ConfigVar<std::string> isoPath;
|
||||
ConfigVar<std::string> graphicsBackend;
|
||||
ConfigVar<bool> skipPreLaunchUI;
|
||||
ConfigVar<bool> showPipelineCompilation;
|
||||
ConfigVar<bool> wasPresetChosen;
|
||||
} backend;
|
||||
};
|
||||
|
||||
UserSettings& getSettings();
|
||||
|
||||
+6
-1
@@ -14,6 +14,7 @@
|
||||
#endif
|
||||
#include <Windows.h>
|
||||
#include <shellapi.h>
|
||||
#include <intrin.h>
|
||||
#endif
|
||||
|
||||
#include "dusk/logging.h"
|
||||
@@ -92,7 +93,11 @@ private:
|
||||
}
|
||||
do {
|
||||
QueryPerformanceCounter(¤t);
|
||||
_mm_pause(); // Yield CPU
|
||||
#if defined(_M_ARM64) || defined(_M_ARM)
|
||||
__yield();
|
||||
#else
|
||||
_mm_pause();
|
||||
#endif
|
||||
} while (current.QuadPart - start.QuadPart < ticksToWait);
|
||||
}
|
||||
#else
|
||||
|
||||
+12
-4
@@ -194,15 +194,12 @@ static const float INF = 2000000000.0f;
|
||||
#endif
|
||||
|
||||
// potential fakematch?
|
||||
#if DEBUG
|
||||
#define FABSF fabsf
|
||||
#else
|
||||
#define FABSF std::fabsf
|
||||
#endif
|
||||
|
||||
#ifndef __MWERKS__
|
||||
#if __cplusplus
|
||||
#include <cmath>
|
||||
#include <math.h>
|
||||
using std::isnan;
|
||||
#endif
|
||||
#endif
|
||||
@@ -220,4 +217,15 @@ using std::isnan;
|
||||
|
||||
#define CRASH(msg, ...) OSPanic(__FILE__, __LINE__, "%s", msg, ##__VA_ARGS__)
|
||||
|
||||
// Some basic macros that are more convenient than putting down #if blocks for one-line changes.
|
||||
#if TARGET_PC
|
||||
#define IF_DUSK(statement) statement
|
||||
#define IF_NOT_DUSK(statement)
|
||||
#define DUSK_IF_ELSE(dusk, orig) dusk
|
||||
#else
|
||||
#define IF_DUSK(statement)
|
||||
#define IF_NOT_DUSK(statement) statement
|
||||
#define DUSK_IF_ELSE(dusk, orig) orig
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -8,12 +8,14 @@
|
||||
#include <aurora/aurora.h>
|
||||
#endif
|
||||
|
||||
#define FB_WIDTH_BASE (608)
|
||||
#define FB_HEIGHT_BASE (448)
|
||||
#if WIDESCREEN_SUPPORT && !TARGET_PC
|
||||
#define FB_WIDTH (640)
|
||||
#define FB_HEIGHT (456)
|
||||
#else
|
||||
#define FB_WIDTH (608)
|
||||
#define FB_HEIGHT (448)
|
||||
#define FB_WIDTH FB_WIDTH_BASE
|
||||
#define FB_HEIGHT FB_HEIGHT_BASE
|
||||
#endif
|
||||
|
||||
int mDoGph_Create();
|
||||
@@ -237,6 +239,7 @@ public:
|
||||
static void* getZbufferTex() { return mZbufferTex; }
|
||||
static void setFadeRate(f32 rate) { mFadeRate = rate; }
|
||||
static f32 getFadeRate() { return mFadeRate; }
|
||||
static f32 getFadeSpeed() { return mFadeSpeed; }
|
||||
static bloom_c* getBloom() { return &m_bloom; }
|
||||
static GXColor& getFadeColor() { return mFadeColor; }
|
||||
static GXColor& getBackColor() { return mBackColor; }
|
||||
@@ -275,7 +278,7 @@ public:
|
||||
|
||||
#if TARGET_PC
|
||||
static void onWide(f32 width, f32 height);
|
||||
#else
|
||||
#else
|
||||
static void onWide();
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user