RuntimeCommonB: Make use of bitfield initializers where applicable

Given that we now target C++20, we can make use of bitfield initializers
where applicable.
This commit is contained in:
Lioncash 2020-04-20 00:57:50 -04:00
parent 2103c38f54
commit 554893ef85
184 changed files with 587 additions and 1117 deletions

View File

@ -57,21 +57,15 @@ class CPersistentOptions {
u32 xc4_frozenBallCount = 0; u32 xc4_frozenBallCount = 0;
u32 xc8_powerBombAmmoCount = 0; u32 xc8_powerBombAmmoCount = 0;
u32 xcc_logScanPercent = 0; u32 xcc_logScanPercent = 0;
bool xd0_24_fusionLinked : 1; bool xd0_24_fusionLinked : 1 = false;
bool xd0_25_normalModeBeat : 1; bool xd0_25_normalModeBeat : 1 = false;
bool xd0_26_hardModeBeat : 1; bool xd0_26_hardModeBeat : 1 = false;
bool xd0_27_fusionBeat : 1; bool xd0_27_fusionBeat : 1 = false;
bool xd0_28_fusionSuitActive : 1; bool xd0_28_fusionSuitActive : 1 = false;
bool xd0_29_allItemsCollected : 1; bool xd0_29_allItemsCollected : 1 = false;
public: public:
CPersistentOptions() CPersistentOptions() = default;
: xd0_24_fusionLinked(false)
, xd0_25_normalModeBeat(false)
, xd0_26_hardModeBeat(false)
, xd0_27_fusionBeat(false)
, xd0_28_fusionSuitActive(false)
, xd0_29_allItemsCollected(false) {}
explicit CPersistentOptions(CBitStreamReader& stream); explicit CPersistentOptions(CBitStreamReader& stream);
bool GetCinematicState(CAssetId mlvlId, TEditorId cineId) const; bool GetCinematicState(CAssetId mlvlId, TEditorId cineId) const;

View File

@ -141,8 +141,6 @@ CGameState::GameFileStateInfo CGameState::LoadGameFileState(const u8* data) {
CGameState::CGameState() { CGameState::CGameState() {
x98_playerState = std::make_shared<CPlayerState>(); x98_playerState = std::make_shared<CPlayerState>();
x9c_transManager = std::make_shared<CWorldTransManager>(); x9c_transManager = std::make_shared<CWorldTransManager>();
x228_24_hardMode = false;
x228_25_initPowerupsAtFirstSpawn = true;
if (g_MemoryCardSys != nullptr) { if (g_MemoryCardSys != nullptr) {
InitializeMemoryStates(); InitializeMemoryStates();

View File

@ -81,8 +81,8 @@ class CGameState {
u32 x20c_saveFileIdx = 0; u32 x20c_saveFileIdx = 0;
u64 x210_cardSerial = 0; u64 x210_cardSerial = 0;
std::vector<u8> x218_backupBuf; std::vector<u8> x218_backupBuf;
bool x228_24_hardMode : 1; bool x228_24_hardMode : 1 = false;
bool x228_25_initPowerupsAtFirstSpawn : 1; bool x228_25_initPowerupsAtFirstSpawn : 1 = true;
public: public:
CGameState(); CGameState();

View File

@ -8,9 +8,7 @@ CPakFile::CPakFile(std::string_view filename, bool buildDepList, bool worldPak,
Log.report(logvisor::Fatal, FMT_STRING("{}: Unable to open"), GetPath()); Log.report(logvisor::Fatal, FMT_STRING("{}: Unable to open"), GetPath());
x28_24_buildDepList = buildDepList; x28_24_buildDepList = buildDepList;
//x28_24_buildDepList = true; // Always do this so URDE can rapidly pre-warm shaders //x28_24_buildDepList = true; // Always do this so URDE can rapidly pre-warm shaders
x28_25_aramFile = false;
x28_26_worldPak = worldPak; x28_26_worldPak = worldPak;
x28_27_stashedInARAM = false;
m_override = override; m_override = override;
} }

View File

@ -37,9 +37,9 @@ public:
private: private:
bool x28_24_buildDepList : 1; bool x28_24_buildDepList : 1;
bool x28_25_aramFile : 1; bool x28_25_aramFile : 1 = false;
bool x28_26_worldPak : 1; bool x28_26_worldPak : 1;
bool x28_27_stashedInARAM : 1; bool x28_27_stashedInARAM : 1 = false;
bool m_override : 1; bool m_override : 1;
enum class EAsyncPhase { enum class EAsyncPhase {
Warmup = 0, Warmup = 0,

View File

@ -74,13 +74,11 @@ constexpr std::array<float, 5> ComboAmmoPeriods{
}; };
} // Anonymous namespace } // Anonymous namespace
CPlayerState::CPlayerState() CPlayerState::CPlayerState() {
: x0_24_alive(true), x0_25_firingComboBeam(false), x0_26_fusion(false), x188_staticIntf(5) {
x24_powerups.resize(41); x24_powerups.resize(41);
} }
CPlayerState::CPlayerState(CBitStreamReader& stream) CPlayerState::CPlayerState(CBitStreamReader& stream) {
: x0_24_alive(true), x0_25_firingComboBeam(false), x0_26_fusion(false), x188_staticIntf(5) {
x4_enabledItems = u32(stream.ReadEncoded(32)); x4_enabledItems = u32(stream.ReadEncoded(32));
const u32 integralHP = u32(stream.ReadEncoded(32)); const u32 integralHP = u32(stream.ReadEncoded(32));

View File

@ -94,9 +94,9 @@ private:
constexpr CPowerUp() = default; constexpr CPowerUp() = default;
constexpr CPowerUp(u32 amount, u32 capacity) : x0_amount(amount), x4_capacity(capacity) {} constexpr CPowerUp(u32 amount, u32 capacity) : x0_amount(amount), x4_capacity(capacity) {}
}; };
bool x0_24_alive : 1; bool x0_24_alive : 1 = true;
bool x0_25_firingComboBeam : 1; bool x0_25_firingComboBeam : 1 = false;
bool x0_26_fusion : 1; bool x0_26_fusion : 1 = false;
u32 x4_enabledItems = 0; u32 x4_enabledItems = 0;
EBeamId x8_currentBeam = EBeamId::Power; EBeamId x8_currentBeam = EBeamId::Power;
CHealthInfo xc_health = {99.f, 50.f}; CHealthInfo xc_health = {99.f, 50.f};
@ -107,7 +107,7 @@ private:
rstl::reserved_vector<CPowerUp, 41> x24_powerups; rstl::reserved_vector<CPowerUp, 41> x24_powerups;
std::vector<std::pair<CAssetId, float>> x170_scanTimes; std::vector<std::pair<CAssetId, float>> x170_scanTimes;
std::pair<u32, u32> x180_scanCompletionRate = {}; std::pair<u32, u32> x180_scanCompletionRate = {};
CStaticInterference x188_staticIntf; CStaticInterference x188_staticIntf{5};
bool m_canTakeDamage = true; bool m_canTakeDamage = true;

View File

@ -62,14 +62,7 @@ CStateManager::CStateManager(const std::weak_ptr<CRelayTracker>& relayTracker,
, x8bc_relayTracker(relayTracker) , x8bc_relayTracker(relayTracker)
, x8c0_mapWorldInfo(mwInfo) , x8c0_mapWorldInfo(mwInfo)
, x8c4_worldTransManager(wtMgr) , x8c4_worldTransManager(wtMgr)
, x8c8_worldLayerState(layerState) , x8c8_worldLayerState(layerState) {
, xf94_24_readyToRender(false)
, xf94_25_quitGame(false)
, xf94_26_generatingObject(false)
, xf94_27_inMapScreen(false)
, xf94_28_inSaveUI(false)
, xf94_29_cinematicPause(false)
, xf94_30_fullThreat(false) {
x86c_stateManagerContainer = std::make_unique<CStateManagerContainer>(); x86c_stateManagerContainer = std::make_unique<CStateManagerContainer>();
x870_cameraManager = &x86c_stateManagerContainer->x0_cameraManager; x870_cameraManager = &x86c_stateManagerContainer->x0_cameraManager;
x874_sortedListManager = &x86c_stateManagerContainer->x3c0_sortedListManager; x874_sortedListManager = &x86c_stateManagerContainer->x3c0_sortedListManager;

View File

@ -202,13 +202,13 @@ private:
CAssetId xf88_; CAssetId xf88_;
float xf8c_ = 0.f; float xf8c_ = 0.f;
EStateManagerTransition xf90_deferredTransition = EStateManagerTransition::InGame; EStateManagerTransition xf90_deferredTransition = EStateManagerTransition::InGame;
bool xf94_24_readyToRender : 1; bool xf94_24_readyToRender : 1 = false;
bool xf94_25_quitGame : 1; bool xf94_25_quitGame : 1 = false;
bool xf94_26_generatingObject : 1; bool xf94_26_generatingObject : 1 = false;
bool xf94_27_inMapScreen : 1; bool xf94_27_inMapScreen : 1 = false;
bool xf94_28_inSaveUI : 1; bool xf94_28_inSaveUI : 1 = false;
bool xf94_29_cinematicPause : 1; bool xf94_29_cinematicPause : 1 = false;
bool xf94_30_fullThreat : 1; bool xf94_30_fullThreat : 1 = false;
CColoredQuadFilter m_deathWhiteout{EFilterType::Add}; CColoredQuadFilter m_deathWhiteout{EFilterType::Add};
CColoredQuadFilter m_escapeWhiteout{EFilterType::Add}; CColoredQuadFilter m_escapeWhiteout{EFilterType::Add};

View File

@ -17,7 +17,7 @@
namespace urde { namespace urde {
CGuiFrame::CGuiFrame(CAssetId id, CGuiSys& sys, int a, int b, int c, CSimplePool* sp) CGuiFrame::CGuiFrame(CAssetId id, CGuiSys& sys, int a, int b, int c, CSimplePool* sp)
: x0_id(id), x8_guiSys(sys), x4c_a(a), x50_b(b), x54_c(c), x58_24_loaded(false) { : x0_id(id), x8_guiSys(sys), x4c_a(a), x50_b(b), x54_c(c) {
x3c_lights.reserve(8); x3c_lights.reserve(8);
m_indexedLights.reserve(8); m_indexedLights.reserve(8);
x10_rootWidget = std::make_unique<CGuiWidget>(CGuiWidget::CGuiWidgetParms( x10_rootWidget = std::make_unique<CGuiWidget>(CGuiWidget::CGuiWidgetParms(

View File

@ -41,7 +41,7 @@ private:
int x4c_a; int x4c_a;
int x50_b; int x50_b;
int x54_c; int x54_c;
mutable bool x58_24_loaded : 1; mutable bool x58_24_loaded : 1 = false;
zeus::CTransform m_aspectTransform; zeus::CTransform m_aspectTransform;
float m_aspectConstraint = -1.f; float m_aspectConstraint = -1.f;

View File

@ -11,10 +11,7 @@ CGuiSliderGroup::CGuiSliderGroup(const CGuiWidgetParms& parms, float min, float
, xbc_maxVal(max) , xbc_maxVal(max)
, xc0_roundedCurVal(def) , xc0_roundedCurVal(def)
, xc4_curVal(def) , xc4_curVal(def)
, xc8_increment(inc) , xc8_increment(inc) {}
, xf4_24_inputPending(false)
, m_mouseInside(false)
, m_mouseDown(false) {}
void CGuiSliderGroup::SetSelectionChangedCallback(std::function<void(CGuiSliderGroup*, float)>&& func) { void CGuiSliderGroup::SetSelectionChangedCallback(std::function<void(CGuiSliderGroup*, float)>&& func) {
xd8_changeCallback = std::move(func); xd8_changeCallback = std::move(func);

View File

@ -22,9 +22,9 @@ private:
std::array<CGuiWidget*, 2> xcc_sliderRangeWidgets{}; std::array<CGuiWidget*, 2> xcc_sliderRangeWidgets{};
std::function<void(CGuiSliderGroup*, float)> xd8_changeCallback; std::function<void(CGuiSliderGroup*, float)> xd8_changeCallback;
EState xf0_state = EState::None; EState xf0_state = EState::None;
bool xf4_24_inputPending : 1; bool xf4_24_inputPending : 1 = false;
mutable bool m_mouseInside : 1; mutable bool m_mouseInside : 1 = false;
bool m_mouseDown : 1; bool m_mouseDown : 1 = false;
mutable float m_mouseT = 0.f; mutable float m_mouseT = 0.f;

View File

@ -18,14 +18,7 @@ CGuiWidget::CGuiWidget(const CGuiWidgetParms& parms)
xb6_24_pg = parms.xd_g; xb6_24_pg = parms.xd_g;
xb6_25_isVisible = parms.xa_defaultVisible; xb6_25_isVisible = parms.xa_defaultVisible;
xb6_26_isActive = parms.xb_defaultActive; xb6_26_isActive = parms.xb_defaultActive;
xb6_27_isSelectable = true;
xb6_28_eventLock = false;
xb6_29_cullFaces = parms.xc_cullFaces; xb6_29_cullFaces = parms.xc_cullFaces;
xb6_30_depthGreater = false;
xb6_31_depthTest = true;
xb7_24_depthWrite = false;
xb7_25_ = true;
m_mouseActive = false;
RecalcWidgetColor(ETraversalMode::Single); RecalcWidgetColor(ETraversalMode::Single);
} }

View File

@ -75,14 +75,14 @@ protected:
bool xb6_24_pg : 1; bool xb6_24_pg : 1;
bool xb6_25_isVisible : 1; bool xb6_25_isVisible : 1;
bool xb6_26_isActive : 1; bool xb6_26_isActive : 1;
bool xb6_27_isSelectable : 1; bool xb6_27_isSelectable : 1 = true;
bool xb6_28_eventLock : 1; bool xb6_28_eventLock : 1 = false;
bool xb6_29_cullFaces : 1; bool xb6_29_cullFaces : 1;
bool xb6_30_depthGreater : 1; bool xb6_30_depthGreater : 1 = false;
bool xb6_31_depthTest : 1; bool xb6_31_depthTest : 1 = true;
bool xb7_24_depthWrite : 1; bool xb7_24_depthWrite : 1 = false;
bool xb7_25_ : 1; bool xb7_25_ : 1 = true;
bool m_mouseActive : 1; bool m_mouseActive : 1 = false;
std::optional<boo::SScrollDelta> m_lastScroll; std::optional<boo::SScrollDelta> m_lastScroll;
boo::SScrollDelta m_integerScroll; boo::SScrollDelta m_integerScroll;

View File

@ -8,7 +8,6 @@
namespace urde { namespace urde {
CHudBossEnergyInterface::CHudBossEnergyInterface(CGuiFrame& selHud) { CHudBossEnergyInterface::CHudBossEnergyInterface(CGuiFrame& selHud) {
x10_24_visible = false;
x14_basewidget_bossenergystuff = selHud.FindWidget("basewidget_bossenergystuff"); x14_basewidget_bossenergystuff = selHud.FindWidget("basewidget_bossenergystuff");
x18_energybart01_bossbar = static_cast<CAuiEnergyBarT01*>(selHud.FindWidget("energybart01_bossbar")); x18_energybart01_bossbar = static_cast<CAuiEnergyBarT01*>(selHud.FindWidget("energybart01_bossbar"));
x1c_textpane_boss = static_cast<CGuiTextPane*>(selHud.FindWidget("textpane_boss")); x1c_textpane_boss = static_cast<CGuiTextPane*>(selHud.FindWidget("textpane_boss"));

View File

@ -14,7 +14,7 @@ class CHudBossEnergyInterface {
float x4_fader = 0.f; float x4_fader = 0.f;
float x8_curEnergy = 0.f; float x8_curEnergy = 0.f;
float xc_maxEnergy = 0.f; float xc_maxEnergy = 0.f;
bool x10_24_visible : 1; bool x10_24_visible : 1 = false;
CGuiWidget* x14_basewidget_bossenergystuff; CGuiWidget* x14_basewidget_bossenergystuff;
CAuiEnergyBarT01* x18_energybart01_bossbar; CAuiEnergyBarT01* x18_energybart01_bossbar;
CGuiTextPane* x1c_textpane_boss; CGuiTextPane* x1c_textpane_boss;

View File

@ -22,8 +22,6 @@ void IHudDecoInterface::ProcessInput(const CFinalInput& input) {}
float IHudDecoInterface::GetHudTextAlpha() const { return 1.f; } float IHudDecoInterface::GetHudTextAlpha() const { return 1.f; }
CHudDecoInterfaceCombat::CHudDecoInterfaceCombat(CGuiFrame& selHud) { CHudDecoInterfaceCombat::CHudDecoInterfaceCombat(CGuiFrame& selHud) {
x68_24_visDebug = true;
x68_25_visGame = true;
x6c_camera = selHud.GetFrameCamera(); x6c_camera = selHud.GetFrameCamera();
x2c_camPos = x6c_camera->GetLocalPosition(); x2c_camPos = x6c_camera->GetLocalPosition();
x70_basewidget_pivot = selHud.FindWidget("basewidget_pivot"); x70_basewidget_pivot = selHud.FindWidget("basewidget_pivot");
@ -86,8 +84,6 @@ void CHudDecoInterfaceCombat::UpdateHudAlpha() {
CHudDecoInterfaceScan::CHudDecoInterfaceScan(CGuiFrame& selHud) : x14_selHud(selHud), x18_scanDisplay(selHud) { CHudDecoInterfaceScan::CHudDecoInterfaceScan(CGuiFrame& selHud) : x14_selHud(selHud), x18_scanDisplay(selHud) {
x4_scanHudFlat = g_SimplePool->GetObj("FRME_ScanHudFlat"); x4_scanHudFlat = g_SimplePool->GetObj("FRME_ScanHudFlat");
x234_sidesPositioner = g_tweakGui->GetScanSidesPositionStart(); x234_sidesPositioner = g_tweakGui->GetScanSidesPositionStart();
x240_24_visDebug = true;
x240_25_visGame = true;
x244_camera = selHud.GetFrameCamera(); x244_camera = selHud.GetFrameCamera();
x248_basewidget_pivot = selHud.FindWidget("basewidget_pivot"); x248_basewidget_pivot = selHud.FindWidget("basewidget_pivot");
x24c_basewidget_leftside = selHud.FindWidget("basewidget_leftside"); x24c_basewidget_leftside = selHud.FindWidget("basewidget_leftside");
@ -354,9 +350,6 @@ CHudDecoInterfaceXRay::CHudDecoInterfaceXRay(CGuiFrame& selHud) {
xa0_camera = selHud.GetFrameCamera(); xa0_camera = selHud.GetFrameCamera();
x30_camPos = xa0_camera->GetLocalPosition(); x30_camPos = xa0_camera->GetLocalPosition();
x9c_24_visDebug = true;
x9c_25_visGame = true;
xa4_basewidget_pivot = selHud.FindWidget("basewidget_pivot"); xa4_basewidget_pivot = selHud.FindWidget("basewidget_pivot");
xa8_basewidget_seeker = selHud.FindWidget("basewidget_seeker"); xa8_basewidget_seeker = selHud.FindWidget("basewidget_seeker");
xac_basewidget_rotate = selHud.FindWidget("basewidget_rotate"); xac_basewidget_rotate = selHud.FindWidget("basewidget_rotate");
@ -439,9 +432,6 @@ void CHudDecoInterfaceXRay::UpdateHudAlpha() {
} }
CHudDecoInterfaceThermal::CHudDecoInterfaceThermal(CGuiFrame& selHud) { CHudDecoInterfaceThermal::CHudDecoInterfaceThermal(CGuiFrame& selHud) {
x70_24_visDebug = true;
x70_25_visGame = true;
x74_camera = selHud.GetFrameCamera(); x74_camera = selHud.GetFrameCamera();
x2c_camPos = x74_camera->GetLocalPosition(); x2c_camPos = x74_camera->GetLocalPosition();

View File

@ -43,8 +43,8 @@ class CHudDecoInterfaceCombat : public IHudDecoInterface {
zeus::CVector3f x2c_camPos; zeus::CVector3f x2c_camPos;
zeus::CVector3f x38_basePosition; zeus::CVector3f x38_basePosition;
zeus::CMatrix3f x44_baseRotation; zeus::CMatrix3f x44_baseRotation;
bool x68_24_visDebug : 1; bool x68_24_visDebug : 1 = true;
bool x68_25_visGame : 1; bool x68_25_visGame : 1 = true;
CGuiCamera* x6c_camera; CGuiCamera* x6c_camera;
CGuiWidget* x70_basewidget_pivot; CGuiWidget* x70_basewidget_pivot;
CGuiWidget* x74_basewidget_deco; CGuiWidget* x74_basewidget_deco;
@ -86,8 +86,8 @@ class CHudDecoInterfaceScan : public IHudDecoInterface {
float x234_sidesPositioner; float x234_sidesPositioner;
float x238_scanningTextAlpha = 0.f; float x238_scanningTextAlpha = 0.f;
float x23c_scanBarAlpha = 0.f; float x23c_scanBarAlpha = 0.f;
bool x240_24_visDebug : 1; bool x240_24_visDebug : 1 = true;
bool x240_25_visGame : 1; bool x240_25_visGame : 1 = true;
CGuiCamera* x244_camera; CGuiCamera* x244_camera;
CGuiWidget* x248_basewidget_pivot; CGuiWidget* x248_basewidget_pivot;
CGuiWidget* x24c_basewidget_leftside; CGuiWidget* x24c_basewidget_leftside;
@ -133,8 +133,8 @@ class CHudDecoInterfaceXRay : public IHudDecoInterface {
zeus::CVector3f x60_seekerPosition; zeus::CVector3f x60_seekerPosition;
zeus::CVector3f x6c_; zeus::CVector3f x6c_;
zeus::CMatrix3f x78_; zeus::CMatrix3f x78_;
bool x9c_24_visDebug : 1; bool x9c_24_visDebug : 1 = true;
bool x9c_25_visGame : 1; bool x9c_25_visGame : 1 = true;
CGuiCamera* xa0_camera; CGuiCamera* xa0_camera;
CGuiWidget* xa4_basewidget_pivot; CGuiWidget* xa4_basewidget_pivot;
CGuiWidget* xa8_basewidget_seeker; CGuiWidget* xa8_basewidget_seeker;
@ -165,8 +165,8 @@ class CHudDecoInterfaceThermal : public IHudDecoInterface {
zeus::CVector3f x5c_reticulePosition; zeus::CVector3f x5c_reticulePosition;
float x68_lockonScale = 5.f; float x68_lockonScale = 5.f;
float x6c_retflashTimer = 0.f; float x6c_retflashTimer = 0.f;
bool x70_24_visDebug : 1; bool x70_24_visDebug : 1 = true;
bool x70_25_visGame : 1; bool x70_25_visGame : 1 = true;
CGuiCamera* x74_camera; CGuiCamera* x74_camera;
CGuiWidget* x78_basewidget_pivot; CGuiWidget* x78_basewidget_pivot;
CGuiWidget* x7c_basewidget_reticle; CGuiWidget* x7c_basewidget_reticle;

View File

@ -28,9 +28,6 @@ CHudEnergyInterface::CHudEnergyInterface(CGuiFrame& selHud, float tankEnergy, in
, xc_tankEnergy(tankEnergy) , xc_tankEnergy(tankEnergy)
, x10_totalEnergyTanks(totalEnergyTanks) , x10_totalEnergyTanks(totalEnergyTanks)
, x14_numTanksFilled(numTanksFilled) , x14_numTanksFilled(numTanksFilled)
, x1c_24_(true)
, x1c_25_(true)
, x1c_26_barDirty(true)
, x1c_27_energyLow(energyLow) { , x1c_27_energyLow(energyLow) {
x20_textpane_energydigits = static_cast<CGuiTextPane*>(selHud.FindWidget("textpane_energydigits")); x20_textpane_energydigits = static_cast<CGuiTextPane*>(selHud.FindWidget("textpane_energydigits"));
x24_meter_energytanks = static_cast<CAuiMeter*>(selHud.FindWidget("meter_energytanks")); x24_meter_energytanks = static_cast<CAuiMeter*>(selHud.FindWidget("meter_energytanks"));

View File

@ -19,9 +19,9 @@ class CHudEnergyInterface {
int x10_totalEnergyTanks; int x10_totalEnergyTanks;
int x14_numTanksFilled; int x14_numTanksFilled;
float x18_cachedBarEnergy = 0.f; float x18_cachedBarEnergy = 0.f;
bool x1c_24_ : 1; bool x1c_24_ : 1 = true;
bool x1c_25_ : 1; bool x1c_25_ : 1 = true;
bool x1c_26_barDirty : 1; bool x1c_26_barDirty : 1 = true;
bool x1c_27_energyLow : 1; bool x1c_27_energyLow : 1;
CGuiTextPane* x20_textpane_energydigits; CGuiTextPane* x20_textpane_energydigits;
CAuiMeter* x24_meter_energytanks; CAuiMeter* x24_meter_energytanks;

View File

@ -11,9 +11,7 @@ CHudFreeLookInterface::CHudFreeLookInterface(CGuiFrame& selHud, EHudType hudType
: x4_hudType(hudType) : x4_hudType(hudType)
, x70_24_inFreeLook(inFreeLook) , x70_24_inFreeLook(inFreeLook)
, x70_25_lookControlHeld(lookControlHeld) , x70_25_lookControlHeld(lookControlHeld)
, x70_26_lockedOnObj(lockedOnObj) , x70_26_lockedOnObj(lockedOnObj) {
, x70_27_visibleDebug(true)
, x70_28_visibleGame(true) {
x6c_lockOnInterp = (lockedOnObj && hudType == EHudType::Scan) ? 0.f : 1.f; x6c_lockOnInterp = (lockedOnObj && hudType == EHudType::Scan) ? 0.f : 1.f;
x74_basewidget_freelookleft = selHud.FindWidget("basewidget_freelookleft"); x74_basewidget_freelookleft = selHud.FindWidget("basewidget_freelookleft");
@ -93,8 +91,6 @@ CHudFreeLookInterfaceXRay::CHudFreeLookInterfaceXRay(CGuiFrame& selHud, bool inF
bool lockedOnObj) { bool lockedOnObj) {
x20_inFreeLook = inFreeLook; x20_inFreeLook = inFreeLook;
x21_lookControlHeld = lookControlHeld; x21_lookControlHeld = lookControlHeld;
x22_24_visibleDebug = true;
x22_25_visibleGame = true;
x24_basewidget_freelook = selHud.FindWidget("basewidget_freelook"); x24_basewidget_freelook = selHud.FindWidget("basewidget_freelook");
x28_model_shield = static_cast<CGuiModel*>(selHud.FindWidget("model_shield")); x28_model_shield = static_cast<CGuiModel*>(selHud.FindWidget("model_shield"));
x2c_model_freelookleft = static_cast<CGuiModel*>(selHud.FindWidget("model_freelookleft")); x2c_model_freelookleft = static_cast<CGuiModel*>(selHud.FindWidget("model_freelookleft"));

View File

@ -27,8 +27,8 @@ class CHudFreeLookInterface : public IFreeLookInterface {
bool x70_24_inFreeLook : 1; bool x70_24_inFreeLook : 1;
bool x70_25_lookControlHeld : 1; bool x70_25_lookControlHeld : 1;
bool x70_26_lockedOnObj : 1; bool x70_26_lockedOnObj : 1;
bool x70_27_visibleDebug : 1; bool x70_27_visibleDebug : 1 = true;
bool x70_28_visibleGame : 1; bool x70_28_visibleGame : 1 = true;
CGuiWidget* x74_basewidget_freelookleft; CGuiWidget* x74_basewidget_freelookleft;
CGuiModel* x78_model_shieldleft; CGuiModel* x78_model_shieldleft;
CGuiModel* x7c_model_freelookleft; CGuiModel* x7c_model_freelookleft;
@ -52,8 +52,8 @@ class CHudFreeLookInterfaceXRay : public IFreeLookInterface {
float x1c_freeLookInterp = 0.f; float x1c_freeLookInterp = 0.f;
bool x20_inFreeLook; bool x20_inFreeLook;
bool x21_lookControlHeld; bool x21_lookControlHeld;
bool x22_24_visibleDebug : 1; bool x22_24_visibleDebug : 1 = true;
bool x22_25_visibleGame : 1; bool x22_25_visibleGame : 1 = true;
CGuiWidget* x24_basewidget_freelook; CGuiWidget* x24_basewidget_freelook;
CGuiModel* x28_model_shield; CGuiModel* x28_model_shield;
CGuiModel* x2c_model_freelookleft; CGuiModel* x2c_model_freelookleft;

View File

@ -7,12 +7,7 @@
namespace urde { namespace urde {
CHudHelmetInterface::CHudHelmetInterface(CGuiFrame& helmetFrame) CHudHelmetInterface::CHudHelmetInterface(CGuiFrame& helmetFrame) {
: x3c_24_helmetVisibleDebug(true)
, x3c_25_helmetVisibleGame(true)
, x3c_26_glowVisibleDebug(true)
, x3c_27_glowVisibleGame(true)
, x3c_28_hudLagDirty(false) {
x40_camera = helmetFrame.GetFrameCamera(); x40_camera = helmetFrame.GetFrameCamera();
x44_BaseWidget_Pivot = helmetFrame.FindWidget("BaseWidget_Pivot"); x44_BaseWidget_Pivot = helmetFrame.FindWidget("BaseWidget_Pivot");
x48_BaseWidget_Helmet = helmetFrame.FindWidget("BaseWidget_Helmet"); x48_BaseWidget_Helmet = helmetFrame.FindWidget("BaseWidget_Helmet");

View File

@ -12,11 +12,11 @@ class CHudHelmetInterface {
zeus::CMatrix3f x0_hudLagRotation; zeus::CMatrix3f x0_hudLagRotation;
zeus::CVector3f x24_pivotPosition; zeus::CVector3f x24_pivotPosition;
zeus::CVector3f x30_hudLagPosition; zeus::CVector3f x30_hudLagPosition;
bool x3c_24_helmetVisibleDebug : 1; bool x3c_24_helmetVisibleDebug : 1 = true;
bool x3c_25_helmetVisibleGame : 1; bool x3c_25_helmetVisibleGame : 1 = true;
bool x3c_26_glowVisibleDebug : 1; bool x3c_26_glowVisibleDebug : 1 = true;
bool x3c_27_glowVisibleGame : 1; bool x3c_27_glowVisibleGame : 1 = true;
bool x3c_28_hudLagDirty : 1; bool x3c_28_hudLagDirty : 1 = false;
CGuiCamera* x40_camera; CGuiCamera* x40_camera;
CGuiWidget* x44_BaseWidget_Pivot; CGuiWidget* x44_BaseWidget_Pivot;
CGuiWidget* x48_BaseWidget_Helmet; CGuiWidget* x48_BaseWidget_Helmet;

View File

@ -27,9 +27,7 @@ CHudMissileInterface::CHudMissileInterface(CGuiFrame& selHud, int missileCapacit
, x4_missileCapacity(missileCapacity) , x4_missileCapacity(missileCapacity)
, x8_numMissles(numMissiles) , x8_numMissles(numMissiles)
, x4c_chargeBeamFactor(chargeFactor) , x4c_chargeBeamFactor(chargeFactor)
, x58_24_missilesActive(missilesActive) , x58_24_missilesActive(missilesActive) {
, x58_25_visibleDebug(true)
, x58_26_visibleGame(true) {
x5c_basewidget_missileicon = selHud.FindWidget("basewidget_missileicon"); x5c_basewidget_missileicon = selHud.FindWidget("basewidget_missileicon");
x60_textpane_missiledigits = static_cast<CGuiTextPane*>(selHud.FindWidget("textpane_missiledigits")); x60_textpane_missiledigits = static_cast<CGuiTextPane*>(selHud.FindWidget("textpane_missiledigits"));
x64_energybart01_missilebar = static_cast<CAuiEnergyBarT01*>(selHud.FindWidget("energybart01_missilebar")); x64_energybart01_missilebar = static_cast<CAuiEnergyBarT01*>(selHud.FindWidget("energybart01_missilebar"));

View File

@ -27,8 +27,8 @@ class CHudMissileInterface {
float x50_missileIconAltDeplete = 0.f; float x50_missileIconAltDeplete = 0.f;
float x54_missileIconIncrement = 0.f; float x54_missileIconIncrement = 0.f;
bool x58_24_missilesActive : 1; bool x58_24_missilesActive : 1;
bool x58_25_visibleDebug : 1; bool x58_25_visibleDebug : 1 = true;
bool x58_26_visibleGame : 1; bool x58_26_visibleGame : 1 = true;
bool x58_27_hasArrows : 1; bool x58_27_hasArrows : 1;
bool x58_28_notXRay : 1; bool x58_28_notXRay : 1;
CGuiWidget* x5c_basewidget_missileicon; CGuiWidget* x5c_basewidget_missileicon;

View File

@ -20,8 +20,6 @@ namespace urde {
CHudRadarInterface::CHudRadarInterface(CGuiFrame& baseHud, CStateManager& stateMgr) { CHudRadarInterface::CHudRadarInterface(CGuiFrame& baseHud, CStateManager& stateMgr) {
x0_txtrRadarPaint = g_SimplePool->GetObj("TXTR_RadarPaint"); x0_txtrRadarPaint = g_SimplePool->GetObj("TXTR_RadarPaint");
x3c_24_visibleGame = true;
x3c_25_visibleDebug = true;
x40_BaseWidget_RadarStuff = baseHud.FindWidget("BaseWidget_RadarStuff"); x40_BaseWidget_RadarStuff = baseHud.FindWidget("BaseWidget_RadarStuff");
x44_camera = baseHud.GetFrameCamera(); x44_camera = baseHud.GetFrameCamera();
xc_radarStuffXf = x40_BaseWidget_RadarStuff->GetLocalTransform(); xc_radarStuffXf = x40_BaseWidget_RadarStuff->GetLocalTransform();

View File

@ -29,8 +29,8 @@ class CHudRadarInterface {
}; };
TLockedToken<CTexture> x0_txtrRadarPaint; TLockedToken<CTexture> x0_txtrRadarPaint;
zeus::CTransform xc_radarStuffXf; zeus::CTransform xc_radarStuffXf;
bool x3c_24_visibleGame : 1; bool x3c_24_visibleGame : 1 = true;
bool x3c_25_visibleDebug : 1; bool x3c_25_visibleDebug : 1 = true;
CGuiWidget* x40_BaseWidget_RadarStuff; CGuiWidget* x40_BaseWidget_RadarStuff;
CGuiCamera* x44_camera; CGuiCamera* x44_camera;
CRadarPaintShader m_paintShader; CRadarPaintShader m_paintShader;

View File

@ -23,8 +23,6 @@ constexpr std::array IconTranslateRanges{
CHudThreatInterface::CHudThreatInterface(CGuiFrame& selHud, EHudType hudType, float threatDist) CHudThreatInterface::CHudThreatInterface(CGuiFrame& selHud, EHudType hudType, float threatDist)
: x4_hudType(hudType), x10_threatDist(threatDist) { : x4_hudType(hudType), x10_threatDist(threatDist) {
x54_24_visibleDebug = true;
x54_25_visibleGame = true;
x58_basewidget_threatstuff = selHud.FindWidget("basewidget_threatstuff"); x58_basewidget_threatstuff = selHud.FindWidget("basewidget_threatstuff");
x5c_basewidget_threaticon = selHud.FindWidget("basewidget_threaticon"); x5c_basewidget_threaticon = selHud.FindWidget("basewidget_threaticon");
x60_model_threatarrowup = static_cast<CGuiModel*>(selHud.FindWidget("model_threatarrowup")); x60_model_threatarrowup = static_cast<CGuiModel*>(selHud.FindWidget("model_threatarrowup"));

View File

@ -23,8 +23,8 @@ class CHudThreatInterface {
float x48_warningLerpAlpha = 0.f; float x48_warningLerpAlpha = 0.f;
EThreatStatus x4c_threatStatus = EThreatStatus::Normal; EThreatStatus x4c_threatStatus = EThreatStatus::Normal;
float x50_warningColorLerp = 0.f; float x50_warningColorLerp = 0.f;
bool x54_24_visibleDebug : 1; bool x54_24_visibleDebug : 1 = true;
bool x54_25_visibleGame : 1; bool x54_25_visibleGame : 1 = true;
bool x54_26_hasArrows : 1; bool x54_26_hasArrows : 1;
bool x54_27_notXRay : 1; bool x54_27_notXRay : 1;
CGuiWidget* x58_basewidget_threatstuff; CGuiWidget* x58_basewidget_threatstuff;

View File

@ -50,10 +50,6 @@ constexpr std::array<u16, 2> SelectionSfxs{
CHudVisorBeamMenu::CHudVisorBeamMenu(CGuiFrame& baseHud, EHudVisorBeamMenu type, CHudVisorBeamMenu::CHudVisorBeamMenu(CGuiFrame& baseHud, EHudVisorBeamMenu type,
const rstl::reserved_vector<bool, 4>& enables) const rstl::reserved_vector<bool, 4>& enables)
: x0_baseHud(baseHud), x4_type(type) { : x0_baseHud(baseHud), x4_type(type) {
x14_24_visibleDebug = true;
x14_25_visibleGame = true;
x14_26_dirty = true;
x7c_animDur = g_tweakGui->GetBeamVisorMenuAnimTime(); x7c_animDur = g_tweakGui->GetBeamVisorMenuAnimTime();
x80_24_swapBeamControls = g_GameState->GameOptions().GetSwapBeamControls(); x80_24_swapBeamControls = g_GameState->GameOptions().GetSwapBeamControls();

View File

@ -30,9 +30,9 @@ private:
int x8_selectedItem = 0; int x8_selectedItem = 0;
int xc_pendingSelection = 0; int xc_pendingSelection = 0;
float x10_interp = 1.f; float x10_interp = 1.f;
bool x14_24_visibleDebug : 1; bool x14_24_visibleDebug : 1 = true;
bool x14_25_visibleGame : 1; bool x14_25_visibleGame : 1 = true;
bool x14_26_dirty : 1; bool x14_26_dirty : 1 = true;
CGuiWidget* x18_basewidget_menu; CGuiWidget* x18_basewidget_menu;
CGuiWidget* x1c_basewidget_menutitle; CGuiWidget* x1c_basewidget_menutitle;
CGuiTextPane* x20_textpane_menu; CGuiTextPane* x20_textpane_menu;

View File

@ -4,49 +4,7 @@
namespace urde { namespace urde {
CFinalInput::CFinalInput() CFinalInput::CFinalInput() = default;
: x0_dt(0.0)
, x4_controllerIdx(0)
, x8_anaLeftX(0.0)
, xc_anaLeftY(0.0)
, x10_anaRightX(0.0)
, x14_anaRightY(0.0)
, x18_anaLeftTrigger(0.0)
, x1c_anaRightTrigger(0.0)
, x20_enableAnaLeftXP(false)
, x20_enableAnaLeftNegXP(false)
, x21_enableAnaLeftYP(false)
, x21_enableAnaLeftNegYP(false)
, x22_enableAnaRightXP(false)
, x22_enableAnaRightNegXP(false)
, x23_enableAnaRightYP(false)
, x23_enableAnaRightNegYP(false)
, x24_anaLeftTriggerP(false)
, x28_anaRightTriggerP(false)
, x2c_b24_A(false)
, x2c_b25_B(false)
, x2c_b26_X(false)
, x2c_b27_Y(false)
, x2c_b28_Z(false)
, x2c_b29_L(false)
, x2c_b30_R(false)
, x2c_b31_DPUp(false)
, x2d_b24_DPRight(false)
, x2d_b25_DPDown(false)
, x2d_b26_DPLeft(false)
, x2d_b27_Start(false)
, x2d_b28_PA(false)
, x2d_b29_PB(false)
, x2d_b30_PX(false)
, x2d_b31_PY(false)
, x2e_b24_PZ(false)
, x2e_b25_PL(false)
, x2e_b26_PR(false)
, x2e_b27_PDPUp(false)
, x2e_b28_PDPRight(false)
, x2e_b29_PDPDown(false)
, x2e_b30_PDPLeft(false)
, x2e_b31_PStart(false) {}
CFinalInput::CFinalInput(int cIdx, float dt, const boo::DolphinControllerState& data, const CFinalInput& prevInput, CFinalInput::CFinalInput(int cIdx, float dt, const boo::DolphinControllerState& data, const CFinalInput& prevInput,
float leftDiv, float rightDiv) float leftDiv, float rightDiv)
@ -96,10 +54,6 @@ CFinalInput::CFinalInput(int cIdx, float dt, const boo::DolphinControllerState&
CFinalInput::CFinalInput(int cIdx, float dt, const CKeyboardMouseControllerData& data, const CFinalInput& prevInput) CFinalInput::CFinalInput(int cIdx, float dt, const CKeyboardMouseControllerData& data, const CFinalInput& prevInput)
: x0_dt(dt) : x0_dt(dt)
, x4_controllerIdx(cIdx) , x4_controllerIdx(cIdx)
, x8_anaLeftX(0.f)
, xc_anaLeftY(0.f)
, x10_anaRightX(0.f)
, x14_anaRightY(0.f)
, x18_anaLeftTrigger(false) , x18_anaLeftTrigger(false)
, x1c_anaRightTrigger(false) , x1c_anaRightTrigger(false)
, x20_enableAnaLeftXP(DLARight() && !prevInput.DLARight()) , x20_enableAnaLeftXP(DLARight() && !prevInput.DLARight())
@ -112,18 +66,10 @@ CFinalInput::CFinalInput(int cIdx, float dt, const CKeyboardMouseControllerData&
, x23_enableAnaRightNegYP(DRADown() && !prevInput.DRADown()) , x23_enableAnaRightNegYP(DRADown() && !prevInput.DRADown())
, x24_anaLeftTriggerP(DLTrigger() && !prevInput.DLTrigger()) , x24_anaLeftTriggerP(DLTrigger() && !prevInput.DLTrigger())
, x28_anaRightTriggerP(DRTrigger() && !prevInput.DRTrigger()) , x28_anaRightTriggerP(DRTrigger() && !prevInput.DRTrigger())
, x2c_b24_A(false)
, x2c_b25_B(false)
, x2c_b26_X(false)
, x2c_b27_Y(false)
, x2c_b28_Z(false)
, x2c_b29_L(false)
, x2c_b30_R(false)
, x2c_b31_DPUp(data.m_specialKeys[size_t(boo::ESpecialKey::Up)]) , x2c_b31_DPUp(data.m_specialKeys[size_t(boo::ESpecialKey::Up)])
, x2d_b24_DPRight(data.m_specialKeys[size_t(boo::ESpecialKey::Right)]) , x2d_b24_DPRight(data.m_specialKeys[size_t(boo::ESpecialKey::Right)])
, x2d_b25_DPDown(data.m_specialKeys[size_t(boo::ESpecialKey::Down)]) , x2d_b25_DPDown(data.m_specialKeys[size_t(boo::ESpecialKey::Down)])
, x2d_b26_DPLeft(data.m_specialKeys[size_t(boo::ESpecialKey::Left)]) , x2d_b26_DPLeft(data.m_specialKeys[size_t(boo::ESpecialKey::Left)])
, x2d_b27_Start(false)
, x2d_b28_PA(DA() && !prevInput.DA()) , x2d_b28_PA(DA() && !prevInput.DA())
, x2d_b29_PB(DB() && !prevInput.DB()) , x2d_b29_PB(DB() && !prevInput.DB())
, x2d_b30_PX(DX() && !prevInput.DX()) , x2d_b30_PX(DX() && !prevInput.DX())

View File

@ -10,57 +10,57 @@
namespace urde { namespace urde {
struct CFinalInput { struct CFinalInput {
float x0_dt; float x0_dt = 0.0f;
u32 x4_controllerIdx; u32 x4_controllerIdx = 0;
float x8_anaLeftX; float x8_anaLeftX = 0.0f;
float xc_anaLeftY; float xc_anaLeftY = 0.0f;
float x10_anaRightX; float x10_anaRightX = 0.0f;
float x14_anaRightY; float x14_anaRightY = 0.0f;
float x18_anaLeftTrigger; float x18_anaLeftTrigger = 0.0f;
float x1c_anaRightTrigger; float x1c_anaRightTrigger = 0.0f;
/* These were originally per-axis bools, requiring two logical tests /* These were originally per-axis bools, requiring two logical tests
* at read-time; now they're logical cardinal-direction states * at read-time; now they're logical cardinal-direction states
* (negative values indicated) */ * (negative values indicated) */
bool x20_enableAnaLeftXP : 1; bool x20_enableAnaLeftXP : 1 = false;
bool x20_enableAnaLeftNegXP : 1; bool x20_enableAnaLeftNegXP : 1 = false;
bool x21_enableAnaLeftYP : 1; bool x21_enableAnaLeftYP : 1 = false;
bool x21_enableAnaLeftNegYP : 1; bool x21_enableAnaLeftNegYP : 1 = false;
bool x22_enableAnaRightXP : 1; bool x22_enableAnaRightXP : 1 = false;
bool x22_enableAnaRightNegXP : 1; bool x22_enableAnaRightNegXP : 1 = false;
bool x23_enableAnaRightYP : 1; bool x23_enableAnaRightYP : 1 = false;
bool x23_enableAnaRightNegYP : 1; bool x23_enableAnaRightNegYP : 1 = false;
/* These were originally redundantly-compared floats; /* These were originally redundantly-compared floats;
* now the logical state is stored directly */ * now the logical state is stored directly */
bool x24_anaLeftTriggerP : 1; bool x24_anaLeftTriggerP : 1 = false;
bool x28_anaRightTriggerP : 1; bool x28_anaRightTriggerP : 1 = false;
bool x2c_b24_A : 1; bool x2c_b24_A : 1 = false;
bool x2c_b25_B : 1; bool x2c_b25_B : 1 = false;
bool x2c_b26_X : 1; bool x2c_b26_X : 1 = false;
bool x2c_b27_Y : 1; bool x2c_b27_Y : 1 = false;
bool x2c_b28_Z : 1; bool x2c_b28_Z : 1 = false;
bool x2c_b29_L : 1; bool x2c_b29_L : 1 = false;
bool x2c_b30_R : 1; bool x2c_b30_R : 1 = false;
bool x2c_b31_DPUp : 1; bool x2c_b31_DPUp : 1 = false;
bool x2d_b24_DPRight : 1; bool x2d_b24_DPRight : 1 = false;
bool x2d_b25_DPDown : 1; bool x2d_b25_DPDown : 1 = false;
bool x2d_b26_DPLeft : 1; bool x2d_b26_DPLeft : 1 = false;
bool x2d_b27_Start : 1; bool x2d_b27_Start : 1 = false;
bool x2d_b28_PA : 1; bool x2d_b28_PA : 1 = false;
bool x2d_b29_PB : 1; bool x2d_b29_PB : 1 = false;
bool x2d_b30_PX : 1; bool x2d_b30_PX : 1 = false;
bool x2d_b31_PY : 1; bool x2d_b31_PY : 1 = false;
bool x2e_b24_PZ : 1; bool x2e_b24_PZ : 1 = false;
bool x2e_b25_PL : 1; bool x2e_b25_PL : 1 = false;
bool x2e_b26_PR : 1; bool x2e_b26_PR : 1 = false;
bool x2e_b27_PDPUp : 1; bool x2e_b27_PDPUp : 1 = false;
bool x2e_b28_PDPRight : 1; bool x2e_b28_PDPRight : 1 = false;
bool x2e_b29_PDPDown : 1; bool x2e_b29_PDPDown : 1 = false;
bool x2e_b30_PDPLeft : 1; bool x2e_b30_PDPLeft : 1 = false;
bool x2e_b31_PStart : 1; bool x2e_b31_PStart : 1 = false;
std::optional<CKeyboardMouseControllerData> m_kbm; std::optional<CKeyboardMouseControllerData> m_kbm;

View File

@ -5,7 +5,6 @@
namespace urde { namespace urde {
CRumbleGenerator::CRumbleGenerator() { CRumbleGenerator::CRumbleGenerator() {
xf0_24_disabled = false;
HardStopAll(); HardStopAll();
} }

View File

@ -12,7 +12,7 @@ class CRumbleGenerator {
std::array<float, 4> xc0_periodTime; std::array<float, 4> xc0_periodTime;
std::array<float, 4> xd0_onTime; std::array<float, 4> xd0_onTime;
std::array<EMotorState, 4> xe0_commandArray; std::array<EMotorState, 4> xe0_commandArray;
bool xf0_24_disabled : 1; bool xf0_24_disabled : 1 = false;
public: public:
CRumbleGenerator(); CRumbleGenerator();

View File

@ -32,10 +32,10 @@ struct SAdsrData {
float xc_decayDur = 0.f; float xc_decayDur = 0.f;
float x10_sustainGain = 0.f; float x10_sustainGain = 0.f;
float x14_releaseDur = 0.f; float x14_releaseDur = 0.f;
bool x18_24_hasSustain : 1; bool x18_24_hasSustain : 1 = false;
bool x18_25_autoRelease : 1; bool x18_25_autoRelease : 1 = false;
constexpr SAdsrData() noexcept : x18_24_hasSustain(false), x18_25_autoRelease(false) {} constexpr SAdsrData() noexcept = default;
constexpr SAdsrData(float attackGain, float autoReleaseDur, float attackDur, float decayDur, float sustainGain, constexpr SAdsrData(float attackGain, float autoReleaseDur, float attackDur, float decayDur, float sustainGain,
float releaseDur, bool hasSustain, bool autoRelease) noexcept float releaseDur, bool hasSustain, bool autoRelease) noexcept
: x0_attackGain(attackGain) : x0_attackGain(attackGain)

View File

@ -9,7 +9,7 @@ CRandom16 CDecal::sDecalRandom;
bool CDecal::sMoveRedToAlphaBuffer = false; bool CDecal::sMoveRedToAlphaBuffer = false;
CDecal::CDecal(const TToken<CDecalDescription>& desc, const zeus::CTransform& xf) CDecal::CDecal(const TToken<CDecalDescription>& desc, const zeus::CTransform& xf)
: x0_description(desc), xc_transform(xf), x5c_29_modelInvalid(false) { : x0_description(desc), xc_transform(xf) {
CGlobalRandom gr(sDecalRandom); CGlobalRandom gr(sDecalRandom);
CDecalDescription& desco = *x0_description; CDecalDescription& desco = *x0_description;

View File

@ -13,12 +13,12 @@
namespace urde { namespace urde {
struct SQuadDescr; struct SQuadDescr;
struct CQuadDecal { struct CQuadDecal {
bool x0_24_invalid : 1; bool x0_24_invalid : 1 = true;
s32 x4_lifetime = 0; s32 x4_lifetime = 0;
float x8_rotation = 0.f; float x8_rotation = 0.f;
const SQuadDescr* m_desc = nullptr; const SQuadDescr* m_desc = nullptr;
CQuadDecal() : x0_24_invalid(true) {} CQuadDecal() = default;
CQuadDecal(s32 i, float f) : x0_24_invalid(true), x4_lifetime(i), x8_rotation(f) {} CQuadDecal(s32 i, float f) : x4_lifetime(i), x8_rotation(f) {}
boo::ObjToken<boo::IGraphicsBufferD> m_instBuf; boo::ObjToken<boo::IGraphicsBufferD> m_instBuf;
boo::ObjToken<boo::IGraphicsBufferD> m_uniformBuf; boo::ObjToken<boo::IGraphicsBufferD> m_uniformBuf;
@ -36,9 +36,9 @@ class CDecal {
std::array<CQuadDecal, 2> x3c_decalQuads; std::array<CQuadDecal, 2> x3c_decalQuads;
s32 x54_modelLifetime = 0; s32 x54_modelLifetime = 0;
s32 x58_frameIdx = 0; s32 x58_frameIdx = 0;
bool x5c_31_quad1Invalid : 1; bool x5c_31_quad1Invalid : 1 = false;
bool x5c_30_quad2Invalid : 1; bool x5c_30_quad2Invalid : 1 = false;
bool x5c_29_modelInvalid : 1; bool x5c_29_modelInvalid : 1 = false;
zeus::CVector3f x60_rotation; zeus::CVector3f x60_rotation;
bool InitQuad(CQuadDecal& quad, const SQuadDescr& desc); bool InitQuad(CQuadDecal& quad, const SQuadDescr& desc);

View File

@ -23,7 +23,7 @@ struct SQuadDescr {
class CDecalDescription { class CDecalDescription {
public: public:
CDecalDescription() : x5c_24_DMAB(false), x5c_25_DMOO(false) {} CDecalDescription() = default;
SQuadDescr x0_Quads[2]; SQuadDescr x0_Quads[2];
SParticleModel x38_DMDL; SParticleModel x38_DMDL;
@ -32,8 +32,8 @@ public:
std::unique_ptr<CVectorElement> x50_DMRT; std::unique_ptr<CVectorElement> x50_DMRT;
std::unique_ptr<CVectorElement> x54_DMSC; std::unique_ptr<CVectorElement> x54_DMSC;
std::unique_ptr<CColorElement> x58_DMCL; std::unique_ptr<CColorElement> x58_DMCL;
bool x5c_24_DMAB : 1; bool x5c_24_DMAB : 1 = false;
bool x5c_25_DMOO : 1; bool x5c_25_DMOO : 1 = false;
}; };
} // namespace urde } // namespace urde

View File

@ -18,9 +18,7 @@ class CDecalManager {
s8 x74_index; s8 x74_index;
bool x75_24_notIce : 1; bool x75_24_notIce : 1;
SDecal(const std::optional<CDecal>& decal, TAreaId aid, s8 idx, bool notIce) SDecal(const std::optional<CDecal>& decal, TAreaId aid, s8 idx, bool notIce)
: x0_decal(decal), x70_areaId(aid), x74_index(idx) { : x0_decal(decal), x70_areaId(aid), x74_index(idx), x75_24_notIce(notIce) {}
x75_24_notIce = notIce;
}
}; };
static bool m_PoolInitialized; static bool m_PoolInitialized;

View File

@ -56,19 +56,7 @@ void CElementGen::Shutdown() { CElementGenShaders::Shutdown(); }
CElementGen::CElementGen(TToken<CGenDescription> gen, EModelOrientationType orientType, EOptionalSystemFlags flags) CElementGen::CElementGen(TToken<CGenDescription> gen, EModelOrientationType orientType, EOptionalSystemFlags flags)
: x1c_genDesc(std::move(gen)) : x1c_genDesc(std::move(gen))
, x2c_orientType(orientType) , x2c_orientType(orientType)
, x26c_24_translationDirty(false)
, x26c_25_LIT_(false)
, x26c_26_AAPH(false)
, x26c_27_ZBUF(false)
, x26c_28_zTest(false)
, x26c_29_ORNT(false)
, x26c_30_MBLR(false)
, x26c_31_LINE(false)
, x26d_24_FXLL(false)
, x26d_25_warmedUp(false)
, x26d_26_modelsUseLights(false)
, x26d_27_enableOPTS(True(flags & EOptionalSystemFlags::Two)) , x26d_27_enableOPTS(True(flags & EOptionalSystemFlags::Two))
, x26d_28_enableADV(false)
, x27c_randState(x94_randomSeed) { , x27c_randState(x94_randomSeed) {
CGenDescription* desc = x1c_genDesc.GetObj(); CGenDescription* desc = x1c_genDesc.GetObj();
x28_loadedGenDesc = desc; x28_loadedGenDesc = desc;

View File

@ -87,19 +87,19 @@ private:
u32 x260_cumulativeParticles = 0; u32 x260_cumulativeParticles = 0;
u32 x264_recursiveParticleCount = 0; u32 x264_recursiveParticleCount = 0;
int x268_PSLT; int x268_PSLT;
bool x26c_24_translationDirty : 1; bool x26c_24_translationDirty : 1 = false;
bool x26c_25_LIT_ : 1; bool x26c_25_LIT_ : 1 = false;
bool x26c_26_AAPH : 1; bool x26c_26_AAPH : 1 = false;
bool x26c_27_ZBUF : 1; bool x26c_27_ZBUF : 1 = false;
bool x26c_28_zTest : 1; bool x26c_28_zTest : 1 = false;
bool x26c_29_ORNT : 1; bool x26c_29_ORNT : 1 = false;
bool x26c_30_MBLR : 1; bool x26c_30_MBLR : 1 = false;
bool x26c_31_LINE : 1; bool x26c_31_LINE : 1 = false;
bool x26d_24_FXLL : 1; bool x26d_24_FXLL : 1 = false;
bool x26d_25_warmedUp : 1; bool x26d_25_warmedUp : 1 = false;
bool x26d_26_modelsUseLights : 1; bool x26d_26_modelsUseLights : 1 = false;
bool x26d_27_enableOPTS : 1; bool x26d_27_enableOPTS : 1;
bool x26d_28_enableADV : 1; bool x26d_28_enableADV : 1 = false;
int x270_MBSP = 0; int x270_MBSP = 0;
int m_maxMBSP = 0; int m_maxMBSP = 0;
ERglLightBits x274_backupLightActive = ERglLightBits::None; ERglLightBits x274_backupLightActive = ERglLightBits::None;

View File

@ -18,19 +18,17 @@ class CFlameWarp : public CWarp {
float x94_maxSize = FLT_MIN; float x94_maxSize = FLT_MIN;
float x98_maxInfluenceDistSq; float x98_maxInfluenceDistSq;
CStateManager* x9c_stateMgr = nullptr; CStateManager* x9c_stateMgr = nullptr;
bool xa0_24_activated : 1; bool xa0_24_activated : 1 = false;
bool xa0_25_collisionWarp : 1; bool xa0_25_collisionWarp : 1;
bool xa0_26_processed : 1; bool xa0_26_processed : 1 = false;
public: public:
CFlameWarp(float maxInfluenceDist, const zeus::CVector3f& warpPoint, bool collisionWarp) CFlameWarp(float maxInfluenceDist, const zeus::CVector3f& warpPoint, bool collisionWarp)
: x74_warpPoint(warpPoint) : x74_warpPoint(warpPoint)
, x80_floatingPoint(warpPoint) , x80_floatingPoint(warpPoint)
, x98_maxInfluenceDistSq(maxInfluenceDist * maxInfluenceDist) { , x98_maxInfluenceDistSq(maxInfluenceDist * maxInfluenceDist)
, xa0_25_collisionWarp{collisionWarp} {
x4_collisionPoints.resize(9, warpPoint); x4_collisionPoints.resize(9, warpPoint);
xa0_24_activated = false;
xa0_25_collisionWarp = collisionWarp;
xa0_26_processed = false;
} }
const rstl::reserved_vector<zeus::CVector3f, 9>& GetCollisionPoints() const { return x4_collisionPoints; } const rstl::reserved_vector<zeus::CVector3f, 9>& GetCollisionPoints() const { return x4_collisionPoints; }

View File

@ -39,25 +39,25 @@ public:
// std::unique_ptr<CVectorElement> x38_ILOC; // std::unique_ptr<CVectorElement> x38_ILOC;
// std::unique_ptr<CVectorElement> x3c_IVEC; // std::unique_ptr<CVectorElement> x3c_IVEC;
std::unique_ptr<CEmitterElement> x40_x2c_EMTR; std::unique_ptr<CEmitterElement> x40_x2c_EMTR;
bool x44_28_x30_28_SORT : 1; bool x44_28_x30_28_SORT : 1 = false;
bool x44_30_x31_24_MBLR : 1; bool x44_30_x31_24_MBLR : 1 = false;
bool x44_24_x30_24_LINE : 1; bool x44_24_x30_24_LINE : 1 = false;
bool x44_29_x30_29_LIT_ : 1; bool x44_29_x30_29_LIT_ : 1 = false;
bool x44_26_x30_26_AAPH : 1; bool x44_26_x30_26_AAPH : 1 = false;
bool x44_27_x30_27_ZBUF : 1; bool x44_27_x30_27_ZBUF : 1 = false;
bool x44_25_x30_25_FXLL : 1; bool x44_25_x30_25_FXLL : 1 = false;
bool x44_31_x31_25_PMAB : 1; bool x44_31_x31_25_PMAB : 1 = false;
bool x45_29_x31_31_VMD4 : 1; bool x45_29_x31_31_VMD4 : 1 = false;
bool x45_28_x31_30_VMD3 : 1; bool x45_28_x31_30_VMD3 : 1 = false;
bool x45_27_x31_29_VMD2 : 1; bool x45_27_x31_29_VMD2 : 1 = false;
bool x45_26_x31_28_VMD1 : 1; bool x45_26_x31_28_VMD1 : 1 = false;
bool x45_31_x32_25_OPTS : 1; bool x45_31_x32_25_OPTS : 1 = false;
bool x45_24_x31_26_PMUS : 1; bool x45_24_x31_26_PMUS : 1 = false;
bool x45_25_x31_27_PMOO : 1; bool x45_25_x31_27_PMOO : 1 = true;
bool x45_30_x32_24_CIND : 1; bool x45_30_x32_24_CIND : 1 = false;
/* 0-00 additions */ /* 0-00 additions */
bool x30_30_ORNT : 1; bool x30_30_ORNT : 1 = false;
bool x30_31_RSOP : 1; bool x30_31_RSOP : 1 = false;
std::unique_ptr<CIntElement> x48_x34_MBSP; std::unique_ptr<CIntElement> x48_x34_MBSP;
std::unique_ptr<CRealElement> x4c_x38_SIZE; std::unique_ptr<CRealElement> x4c_x38_SIZE;
std::unique_ptr<CRealElement> x50_x3c_ROTA; std::unique_ptr<CRealElement> x50_x3c_ROTA;
@ -107,25 +107,7 @@ public:
/* Custom additions */ /* Custom additions */
std::unique_ptr<CColorElement> m_bevelGradient; /* FourCC BGCL */ std::unique_ptr<CColorElement> m_bevelGradient; /* FourCC BGCL */
CGenDescription() CGenDescription() = default;
: x44_28_x30_28_SORT(false)
, x44_30_x31_24_MBLR(false)
, x44_24_x30_24_LINE(false)
, x44_29_x30_29_LIT_(false)
, x44_26_x30_26_AAPH(false)
, x44_27_x30_27_ZBUF(false)
, x44_25_x30_25_FXLL(false)
, x44_31_x31_25_PMAB(false)
, x45_29_x31_31_VMD4(false)
, x45_28_x31_30_VMD3(false)
, x45_27_x31_29_VMD2(false)
, x45_26_x31_28_VMD1(false)
, x45_31_x32_25_OPTS(false)
, x45_24_x31_26_PMUS(false)
, x45_25_x31_27_PMOO(true)
, x45_30_x32_24_CIND(false)
, x30_30_ORNT(false)
, x30_31_RSOP(false) {}
}; };
} // namespace urde } // namespace urde

View File

@ -22,13 +22,7 @@ u16 CParticleElectric::g_GlobalSeed = 99;
CParticleElectric::CParticleElectric(const TToken<CElectricDescription>& token) CParticleElectric::CParticleElectric(const TToken<CElectricDescription>& token)
: x1c_elecDesc(token) : x1c_elecDesc(token)
, x14c_randState(g_GlobalSeed++) , x14c_randState(g_GlobalSeed++) {
, x450_24_emitting(true)
, x450_25_haveGPSM(false)
, x450_26_haveEPSM(false)
, x450_27_haveSSWH(false)
, x450_28_haveLWD(false)
, x450_29_transformDirty(true) {
x1bc_allocated.resize(32); x1bc_allocated.resize(32);
CElectricDescription* desc = x1c_elecDesc.GetObj(); CElectricDescription* desc = x1c_elecDesc.GetObj();

View File

@ -85,12 +85,12 @@ private:
std::vector<zeus::CVector3f> x420_calculatedVerts; std::vector<zeus::CVector3f> x420_calculatedVerts;
std::vector<float> x430_fractalMags; std::vector<float> x430_fractalMags;
std::vector<zeus::CVector3f> x440_fractalOffsets; std::vector<zeus::CVector3f> x440_fractalOffsets;
bool x450_24_emitting : 1; bool x450_24_emitting : 1 = true;
bool x450_25_haveGPSM : 1; bool x450_25_haveGPSM : 1 = false;
bool x450_26_haveEPSM : 1; bool x450_26_haveEPSM : 1 = false;
bool x450_27_haveSSWH : 1; bool x450_27_haveSSWH : 1 = false;
bool x450_28_haveLWD : 1; bool x450_28_haveLWD : 1 = false;
bool x450_29_transformDirty : 1; bool x450_29_transformDirty : 1 = true;
size_t m_nextLineRenderer = 0; size_t m_nextLineRenderer = 0;
std::vector<std::unique_ptr<CLineRenderer>> m_lineRenderers; std::vector<std::unique_ptr<CLineRenderer>> m_lineRenderers;

View File

@ -16,16 +16,7 @@ CParticleSwoosh::CParticleSwoosh(const TToken<CSwooshDescription>& desc, int len
, x1c0_rand(x1c_desc->x45_26_CRND ? std::chrono::duration_cast<std::chrono::microseconds>( , x1c0_rand(x1c_desc->x45_26_CRND ? std::chrono::duration_cast<std::chrono::microseconds>(
std::chrono::steady_clock::now().time_since_epoch()) std::chrono::steady_clock::now().time_since_epoch())
.count() .count()
: 99) : 99) {
, x1d0_24_emitting(true)
, x1d0_25_AALP(false)
, x1d0_26_forceOneUpdate(false)
, x1d0_27_renderGaps(false)
, x1d0_28_LLRD(false)
, x1d0_29_VLS1(false)
, x1d0_30_VLS2(false)
, x1d0_31_constantTex(false)
, x1d1_24_constantUv(false) {
++g_ParticleSystemAliveCount; ++g_ParticleSystemAliveCount;
if (leng > 0) { if (leng > 0) {

View File

@ -84,15 +84,15 @@ class CParticleSwoosh : public CParticleGen {
float x1c4_ = 0.f; float x1c4_ = 0.f;
float x1c8_ = 0.f; float x1c8_ = 0.f;
float x1cc_TSPN = 0.f; float x1cc_TSPN = 0.f;
bool x1d0_24_emitting : 1; bool x1d0_24_emitting : 1 = true;
bool x1d0_25_AALP : 1; bool x1d0_25_AALP : 1 = false;
bool x1d0_26_forceOneUpdate : 1; bool x1d0_26_forceOneUpdate : 1 = false;
bool x1d0_27_renderGaps : 1; bool x1d0_27_renderGaps : 1 = false;
bool x1d0_28_LLRD : 1; bool x1d0_28_LLRD : 1 = false;
bool x1d0_29_VLS1 : 1; bool x1d0_29_VLS1 : 1 = false;
bool x1d0_30_VLS2 : 1; bool x1d0_30_VLS2 : 1 = false;
bool x1d0_31_constantTex : 1; bool x1d0_31_constantTex : 1 = false;
bool x1d1_24_constantUv : 1; bool x1d1_24_constantUv : 1 = false;
SUVElementSet x1d4_uvs = {}; SUVElementSet x1d4_uvs = {};
CTexture* x1e4_tex = nullptr; CTexture* x1e4_tex = nullptr;

View File

@ -31,29 +31,18 @@ public:
std::unique_ptr<CIntElement> x38_SPLN; std::unique_ptr<CIntElement> x38_SPLN;
std::unique_ptr<CUVElement> x3c_TEXR; std::unique_ptr<CUVElement> x3c_TEXR;
std::unique_ptr<CIntElement> x40_TSPN; std::unique_ptr<CIntElement> x40_TSPN;
bool x44_24_LLRD : 1; bool x44_24_LLRD : 1 = false;
bool x44_25_CROS : 1; bool x44_25_CROS : 1 = true;
bool x44_26_VLS1 : 1; bool x44_26_VLS1 : 1 = false;
bool x44_27_VLS2 : 1; bool x44_27_VLS2 : 1 = false;
bool x44_28_SROT : 1; bool x44_28_SROT : 1 = false;
bool x44_29_WIRE : 1; bool x44_29_WIRE : 1 = false;
bool x44_30_TEXW : 1; bool x44_30_TEXW : 1 = false;
bool x44_31_AALP : 1; bool x44_31_AALP : 1 = false;
bool x45_24_ZBUF : 1; bool x45_24_ZBUF : 1 = false;
bool x45_25_ORNT : 1; bool x45_25_ORNT : 1 = false;
bool x45_26_CRND : 1; bool x45_26_CRND : 1 = false;
CSwooshDescription() CSwooshDescription() = default;
: x44_24_LLRD(false)
, x44_25_CROS(true)
, x44_26_VLS1(false)
, x44_27_VLS2(false)
, x44_28_SROT(false)
, x44_29_WIRE(false)
, x44_30_TEXW(false)
, x44_31_AALP(false)
, x45_24_ZBUF(false)
, x45_25_ORNT(false)
, x45_26_CRND(false) {}
}; };
} // namespace urde } // namespace urde

View File

@ -39,7 +39,6 @@ CAuxWeapon::CAuxWeapon(TUniqueId playerId)
x0_missile.GetObj(); x0_missile.GetObj();
xc_flameMuzzle.GetObj(); xc_flameMuzzle.GetObj();
x18_busterMuzzle.GetObj(); x18_busterMuzzle.GetObj();
x80_24_isLoaded = false;
InitComboData(); InitComboData();
} }

View File

@ -24,7 +24,7 @@ class CAuxWeapon {
CPlayerState::EBeamId x74_firingBeamId = CPlayerState::EBeamId::Invalid; CPlayerState::EBeamId x74_firingBeamId = CPlayerState::EBeamId::Invalid;
CPlayerState::EBeamId x78_loadBeamId = CPlayerState::EBeamId::Power; CPlayerState::EBeamId x78_loadBeamId = CPlayerState::EBeamId::Power;
CSfxHandle x7c_comboSfx; CSfxHandle x7c_comboSfx;
bool x80_24_isLoaded : 1; bool x80_24_isLoaded : 1 = false;
void InitComboData(); void InitComboData();
void FreeComboVoiceId(); void FreeComboVoiceId();
void DeleteFlameThrower(CStateManager& mgr); void DeleteFlameThrower(CStateManager& mgr);

View File

@ -18,8 +18,7 @@ CBeamProjectile::CBeamProjectile(const TToken<CWeaponDescription>& wDesc, std::s
, x300_intBeamLength(growingBeam ? 0.f : x2ec_maxLength) , x300_intBeamLength(growingBeam ? 0.f : x2ec_maxLength)
, x304_beamLength(x2ec_maxLength) , x304_beamLength(x2ec_maxLength)
, x308_travelSpeed(travelSpeed) , x308_travelSpeed(travelSpeed)
, x464_24_growingBeam(growingBeam) , x464_24_growingBeam(growingBeam) {
, x464_25_enableTouchDamage(false) {
x384_.resize(10); x384_.resize(10);
x400_pointCache.resize(8); x400_pointCache.resize(8);
} }

View File

@ -35,7 +35,7 @@ private:
rstl::reserved_vector<zeus::CVector3f, 10> x384_; rstl::reserved_vector<zeus::CVector3f, 10> x384_;
rstl::reserved_vector<zeus::CVector3f, 8> x400_pointCache; rstl::reserved_vector<zeus::CVector3f, 8> x400_pointCache;
bool x464_24_growingBeam : 1; bool x464_24_growingBeam : 1;
bool x464_25_enableTouchDamage : 1; bool x464_25_enableTouchDamage : 1 = false;
void SetCollisionResultData(EDamageType dType, CRayCastResult& res, TUniqueId id); void SetCollisionResultData(EDamageType dType, CRayCastResult& res, TUniqueId id);

View File

@ -27,10 +27,7 @@ CBomb::CBomb(const TCachedToken<CGenDescription>& particle1, const TCachedToken<
CElementGen::EOptionalSystemFlags::One)) CElementGen::EOptionalSystemFlags::One))
, x184_particle2(std::make_unique<CElementGen>(particle2, CElementGen::EModelOrientationType::Normal, , x184_particle2(std::make_unique<CElementGen>(particle2, CElementGen::EModelOrientationType::Normal,
CElementGen::EOptionalSystemFlags::One)) CElementGen::EOptionalSystemFlags::One))
, x18c_particle2Obj(particle2.GetObj()) , x18c_particle2Obj(particle2.GetObj()) {
, x190_24_isNotDetonated(true)
, x190_25_beingDragged(false)
, x190_26_disableFuse(false) {
x180_particle1->SetGlobalTranslation(xf.origin); x180_particle1->SetGlobalTranslation(xf.origin);
x184_particle2->SetGlobalTranslation(xf.origin); x184_particle2->SetGlobalTranslation(xf.origin);
} }

View File

@ -22,9 +22,9 @@ class CBomb : public CWeapon {
std::unique_ptr<CElementGen> x184_particle2; std::unique_ptr<CElementGen> x184_particle2;
TUniqueId x188_lightId = kInvalidUniqueId; TUniqueId x188_lightId = kInvalidUniqueId;
const CGenDescription* x18c_particle2Obj; const CGenDescription* x18c_particle2Obj;
bool x190_24_isNotDetonated : 1; bool x190_24_isNotDetonated : 1 = true;
bool x190_25_beingDragged : 1; bool x190_25_beingDragged : 1 = false;
bool x190_26_disableFuse : 1; bool x190_26_disableFuse : 1 = false;
public: public:
CBomb(const TCachedToken<CGenDescription>& particle1, const TCachedToken<CGenDescription>& particle2, TUniqueId uid, CBomb(const TCachedToken<CGenDescription>& particle1, const TCachedToken<CGenDescription>& particle2, TUniqueId uid,

View File

@ -9,8 +9,7 @@
#include <zeus/Math.hpp> #include <zeus/Math.hpp>
namespace urde { namespace urde {
CBurstFire::CBurstFire(const SBurst* const* burstDefs, s32 firstBurstCount) CBurstFire::CBurstFire(const SBurst* const* burstDefs, s32 firstBurstCount) : x10_firstBurstCounter(firstBurstCount) {
: x10_firstBurstCounter(firstBurstCount), x14_24_shouldFire(false), x14_25_avoidAccuracy(false) {
while (*burstDefs) { while (*burstDefs) {
x1c_burstDefs.push_back(*burstDefs); x1c_burstDefs.push_back(*burstDefs);
++burstDefs; ++burstDefs;

View File

@ -23,8 +23,8 @@ class CBurstFire {
float x8_timeToNextShot = 0.f; float x8_timeToNextShot = 0.f;
s32 xc_firstBurstIdx = 0; s32 xc_firstBurstIdx = 0;
s32 x10_firstBurstCounter; s32 x10_firstBurstCounter;
bool x14_24_shouldFire : 1; bool x14_24_shouldFire : 1 = false;
bool x14_25_avoidAccuracy : 1; bool x14_25_avoidAccuracy : 1 = false;
const SBurst* x18_curBursts = nullptr; const SBurst* x18_curBursts = nullptr;
rstl::reserved_vector<const SBurst*, 16> x1c_burstDefs; rstl::reserved_vector<const SBurst*, 16> x1c_burstDefs;

View File

@ -31,8 +31,6 @@ CFlameThrower::CFlameThrower(const TToken<CWeaponDescription>& wDesc, std::strin
, x3f4_playerSteamTxtr(playerSteamTxtr) , x3f4_playerSteamTxtr(playerSteamTxtr)
, x3f8_playerHitSfx(playerHitSfx) , x3f8_playerHitSfx(playerHitSfx)
, x3fc_playerIceTxtr(playerIceTxtr) , x3fc_playerIceTxtr(playerIceTxtr)
, x400_24_active(false)
, x400_25_particlesActive(false)
, x400_26_((flameInfo.GetAttributes() & 1) == 0) , x400_26_((flameInfo.GetAttributes() & 1) == 0)
, x400_27_coneCollision((flameInfo.GetAttributes() & 0x2) != 0) {} , x400_27_coneCollision((flameInfo.GetAttributes() & 0x2) != 0) {}

View File

@ -31,8 +31,8 @@ private:
CAssetId x3f4_playerSteamTxtr; CAssetId x3f4_playerSteamTxtr;
s16 x3f8_playerHitSfx; s16 x3f8_playerHitSfx;
CAssetId x3fc_playerIceTxtr; CAssetId x3fc_playerIceTxtr;
bool x400_24_active : 1; bool x400_24_active : 1 = false;
bool x400_25_particlesActive : 1; bool x400_25_particlesActive : 1 = false;
bool x400_26_ : 1; bool x400_26_ : 1;
bool x400_27_coneCollision : 1; /* Z-sort and finer collision detection */ bool x400_27_coneCollision : 1; /* Z-sort and finer collision detection */

View File

@ -11,11 +11,11 @@ class CGSComboFire {
s32 x4_loopState = -1; // In, loop, out s32 x4_loopState = -1; // In, loop, out
s32 x8_cueAnimId = -1; s32 x8_cueAnimId = -1;
s32 xc_gunId = -1; s32 xc_gunId = -1;
bool x10_24_over : 1; bool x10_24_over : 1 = false;
bool x10_25_idle : 1; bool x10_25_idle : 1 = false;
public: public:
CGSComboFire() : x10_24_over(false), x10_25_idle(false) {} CGSComboFire() = default;
bool IsComboOver() const { return x10_24_over; } bool IsComboOver() const { return x10_24_over; }
s32 GetLoopState() const { return x4_loopState; } s32 GetLoopState() const { return x4_loopState; }

View File

@ -38,7 +38,6 @@ CGameProjectile::CGameProjectile(bool active, const TToken<CWeaponDescription>&
: 0.1f) : 0.1f)
, x2c0_homingTargetId(homingTarget) , x2c0_homingTargetId(homingTarget)
, x2cc_wpscId(wDesc.GetObjectTag()->id) , x2cc_wpscId(wDesc.GetObjectTag()->id)
, x2e4_24_active(true)
, x2e4_25_startedUnderwater(underwater) , x2e4_25_startedUnderwater(underwater)
, x2e4_26_waterUpdate(underwater) , x2e4_26_waterUpdate(underwater)
, x2e4_27_inWater(underwater) , x2e4_27_inWater(underwater)

View File

@ -49,7 +49,7 @@ protected:
CAssetId x2cc_wpscId; CAssetId x2cc_wpscId;
std::vector<CProjectileTouchResult> x2d0_touchResults; std::vector<CProjectileTouchResult> x2d0_touchResults;
float x2e0_minHomingDist = 0.f; float x2e0_minHomingDist = 0.f;
bool x2e4_24_active : 1; bool x2e4_24_active : 1 = true;
bool x2e4_25_startedUnderwater : 1; bool x2e4_25_startedUnderwater : 1;
bool x2e4_26_waterUpdate : 1; bool x2e4_26_waterUpdate : 1;
bool x2e4_27_inWater : 1; bool x2e4_27_inWater : 1;

View File

@ -37,13 +37,7 @@ CGrappleArm::CGrappleArm(const zeus::CVector3f& scale)
, x398_grappleHitGen(std::make_unique<CElementGen>(x36c_grappleHitDesc)) , x398_grappleHitGen(std::make_unique<CElementGen>(x36c_grappleHitDesc))
, x39c_grappleMuzzleGen(std::make_unique<CElementGen>(x378_grappleMuzzleDesc)) , x39c_grappleMuzzleGen(std::make_unique<CElementGen>(x378_grappleMuzzleDesc))
, x3a0_grappleSwooshGen(std::make_unique<CParticleSwoosh>(x384_grappleSwooshDesc, 0)) , x3a0_grappleSwooshGen(std::make_unique<CParticleSwoosh>(x384_grappleSwooshDesc, 0))
, x3a4_rainSplashGenerator(std::make_unique<CRainSplashGenerator>(scale, 20, 2, 0.f, 0.125f)) , x3a4_rainSplashGenerator(std::make_unique<CRainSplashGenerator>(scale, 20, 2, 0.f, 0.125f)) {
, x3b2_24_active(false)
, x3b2_25_beamActive(false)
, x3b2_26_grappleHit(false)
, x3b2_27_armMoving(false)
, x3b2_28_isGrappling(false)
, x3b2_29_suitLoading(false) {
x0_grappleArmModel->SetSortThermal(true); x0_grappleArmModel->SetSortThermal(true);
xa0_grappleGearModel.SetSortThermal(true); xa0_grappleGearModel.SetSortThermal(true);
xec_grapNoz1Model.SetSortThermal(true); xec_grapNoz1Model.SetSortThermal(true);

View File

@ -75,12 +75,12 @@ private:
CPlayerState::EPlayerSuit x3a8_loadedSuit = CPlayerState::EPlayerSuit::Invalid; CPlayerState::EPlayerSuit x3a8_loadedSuit = CPlayerState::EPlayerSuit::Invalid;
float x3ac_pitchBend = 0.f; float x3ac_pitchBend = 0.f;
s16 x3b0_rumbleHandle = -1; s16 x3b0_rumbleHandle = -1;
bool x3b2_24_active : 1; bool x3b2_24_active : 1 = false;
bool x3b2_25_beamActive : 1; bool x3b2_25_beamActive : 1 = false;
bool x3b2_26_grappleHit : 1; bool x3b2_26_grappleHit : 1 = false;
bool x3b2_27_armMoving : 1; bool x3b2_27_armMoving : 1 = false;
bool x3b2_28_isGrappling : 1; bool x3b2_28_isGrappling : 1 = false;
bool x3b2_29_suitLoading : 1; bool x3b2_29_suitLoading : 1 = false;
static float g_GrappleBeamAnglePhaseDelta; static float g_GrappleBeamAnglePhaseDelta;
static float g_GrappleBeamXWaveAmplitude; static float g_GrappleBeamXWaveAmplitude;

View File

@ -15,14 +15,11 @@ class CGunController {
CGSFidget x30_fidget; CGSFidget x30_fidget;
EGunState x50_gunState = EGunState::Inactive; EGunState x50_gunState = EGunState::Inactive;
s32 x54_curAnimId = -1; s32 x54_curAnimId = -1;
bool x58_24_animDone : 1; bool x58_24_animDone : 1 = true;
bool x58_25_enteredComboFire : 1; bool x58_25_enteredComboFire : 1 = false;
public: public:
explicit CGunController(CModelData& modelData) : x0_modelData(modelData) { explicit CGunController(CModelData& modelData) : x0_modelData(modelData) {}
x58_24_animDone = true;
x58_25_enteredComboFire = false;
}
void UnLoadFidget() { x30_fidget.UnLoadAnim(); } void UnLoadFidget() { x30_fidget.UnLoadAnim(); }
void LoadFidgetAnimAsync(CStateManager& mgr, s32 type, s32 gunId, s32 animSet); void LoadFidgetAnimAsync(CStateManager& mgr, s32 type, s32 gunId, s32 animSet);

View File

@ -8,7 +8,6 @@ namespace urde {
CGunMotion::CGunMotion(CAssetId ancsId, const zeus::CVector3f& scale) CGunMotion::CGunMotion(CAssetId ancsId, const zeus::CVector3f& scale)
: x0_modelData(CAnimRes(ancsId, 0, scale, 0, false), 1), x4c_gunController(x0_modelData) { : x0_modelData(CAnimRes(ancsId, 0, scale, 0, false), 1), x4c_gunController(x0_modelData) {
xb8_24_animPlaying = false;
LoadAnimations(); LoadAnimations();
} }

View File

@ -19,7 +19,7 @@ class CGunMotion {
CModelData x0_modelData; CModelData x0_modelData;
CGunController x4c_gunController; CGunController x4c_gunController;
std::vector<CToken> xa8_anims; std::vector<CToken> xa8_anims;
bool xb8_24_animPlaying : 1; bool xb8_24_animPlaying : 1 = false;
void LoadAnimations(); void LoadAnimations();

View File

@ -70,13 +70,7 @@ CGunWeapon::CGunWeapon(CAssetId ancsId, EWeaponType type, TUniqueId playerId, EM
, x1c8_playerMaterial(playerMaterial) , x1c8_playerMaterial(playerMaterial)
, x200_beamId(GetWeaponIndex(type)) , x200_beamId(GetWeaponIndex(type))
, x20c_shaderIdx(u32(x200_beamId)) , x20c_shaderIdx(u32(x200_beamId))
, x214_ancsId(ancsId) , x214_ancsId(ancsId) {
, x218_24(false)
, x218_25_enableCharge(false)
, x218_26_loaded(false)
, x218_27_subtypeBasePose(false)
, x218_28_suitArmLocked(false)
, x218_29_drawHologram(false) {
AllocResPools(x200_beamId); AllocResPools(x200_beamId);
BuildDependencyList(x200_beamId); BuildDependencyList(x200_beamId);
} }

View File

@ -84,13 +84,13 @@ protected:
// 0x1: load request, 0x2: muzzle fx, 0x4: projectile data, 0x8: anims, 0x10: everything else // 0x1: load request, 0x2: muzzle fx, 0x4: projectile data, 0x8: anims, 0x10: everything else
u32 x210_loadFlags = 0; u32 x210_loadFlags = 0;
CAssetId x214_ancsId; CAssetId x214_ancsId;
bool x218_24 : 1; bool x218_24 : 1 = false;
bool x218_25_enableCharge : 1; bool x218_25_enableCharge : 1 = false;
bool x218_26_loaded : 1; bool x218_26_loaded : 1 = false;
// Initialize in selected beam's pose, rather than power beam's pose // Initialize in selected beam's pose, rather than power beam's pose
bool x218_27_subtypeBasePose : 1; bool x218_27_subtypeBasePose : 1 = false;
bool x218_28_suitArmLocked : 1; bool x218_28_suitArmLocked : 1 = false;
bool x218_29_drawHologram : 1; bool x218_29_drawHologram : 1 = false;
void AllocResPools(CPlayerState::EBeamId beam); void AllocResPools(CPlayerState::EBeamId beam);
void FreeResPools(); void FreeResPools();

View File

@ -13,8 +13,6 @@ CIceBeam::CIceBeam(CAssetId characterId, EWeaponType type, TUniqueId playerId, E
x21c_iceSmoke = g_SimplePool->GetObj("IceSmoke"); x21c_iceSmoke = g_SimplePool->GetObj("IceSmoke");
x228_ice2nd1 = g_SimplePool->GetObj("Ice2nd_1"); x228_ice2nd1 = g_SimplePool->GetObj("Ice2nd_1");
x234_ice2nd2 = g_SimplePool->GetObj("Ice2nd_2"); x234_ice2nd2 = g_SimplePool->GetObj("Ice2nd_2");
x248_24_loaded = false;
x248_25_inEndFx = false;
} }
void CIceBeam::PreRenderGunFx(const CStateManager& mgr, const zeus::CTransform& xf) { void CIceBeam::PreRenderGunFx(const CStateManager& mgr, const zeus::CTransform& xf) {

View File

@ -12,8 +12,8 @@ class CIceBeam final : public CGunWeapon {
TCachedToken<CGenDescription> x234_ice2nd2; TCachedToken<CGenDescription> x234_ice2nd2;
std::unique_ptr<CElementGen> x240_smokeGen; std::unique_ptr<CElementGen> x240_smokeGen;
std::unique_ptr<CElementGen> x244_chargeFx; std::unique_ptr<CElementGen> x244_chargeFx;
bool x248_24_loaded : 1; bool x248_24_loaded : 1 = false;
bool x248_25_inEndFx : 1; bool x248_25_inEndFx : 1 = false;
void ReInitVariables(); void ReInitVariables();
public: public:

View File

@ -27,11 +27,6 @@ CNewFlameThrower::CNewFlameThrower(const TToken<CWeaponDescription>& desc, std::
x334_secondarySparks.GetObj(); x334_secondarySparks.GetObj();
x340_swooshCenter.GetObj(); x340_swooshCenter.GetObj();
x34c_swooshFire.GetObj(); x34c_swooshFire.GetObj();
x37c_24_renderAuxEffects = false;
x37c_25_firing = false;
x37c_26_ = false;
x37c_27_ = true;
x37c_28_ = false;
x380_.resize(3); x380_.resize(3);
} }

View File

@ -31,11 +31,11 @@ class CNewFlameThrower : public CGameProjectile {
std::unique_ptr<CParticleSwoosh> x370_swooshFireGen; std::unique_ptr<CParticleSwoosh> x370_swooshFireGen;
u32 x374_ = 0; u32 x374_ = 0;
TAreaId x378_ = kInvalidAreaId; TAreaId x378_ = kInvalidAreaId;
bool x37c_24_renderAuxEffects : 1; bool x37c_24_renderAuxEffects : 1 = false;
bool x37c_25_firing : 1; bool x37c_25_firing : 1 = false;
bool x37c_26_ : 1; bool x37c_26_ : 1 = false;
bool x37c_27_ : 1; bool x37c_27_ : 1 = true;
bool x37c_28_ : 1; bool x37c_28_ : 1 = false;
rstl::reserved_vector<std::vector<std::pair<float, u32>>, 3> x380_; rstl::reserved_vector<std::vector<std::pair<float, u32>>, 3> x380_;
u32 x3b4_ = 0; u32 x3b4_ = 0;
rstl::reserved_vector<TUniqueId, 4> x3b8_lightIds; rstl::reserved_vector<TUniqueId, 4> x3b8_lightIds;

View File

@ -20,10 +20,6 @@ CPhazonBeam::CPhazonBeam(CAssetId characterId, EWeaponType type, TUniqueId playe
zeus::CVector3f(0.0625f, -0.25f, 0.09375f) * scale.y()) { zeus::CVector3f(0.0625f, -0.25f, 0.09375f) * scale.y()) {
x21c_phazonVeins = g_SimplePool->GetObj("PhazonVeins"); x21c_phazonVeins = g_SimplePool->GetObj("PhazonVeins");
x228_phazon2nd1 = g_SimplePool->GetObj("Phazon2nd_1"); x228_phazon2nd1 = g_SimplePool->GetObj("Phazon2nd_1");
x274_24_loaded = false;
x274_25_clipWipeActive = true;
x274_26_veinsAlphaActive = false;
x274_27_phazonVeinsIdx = false;
m_aaboxShaderScale.setAABB(x238_aaBoxScale); m_aaboxShaderScale.setAABB(x238_aaBoxScale);
m_aaboxShaderTranslate.setAABB(x250_aaBoxTranslate); m_aaboxShaderTranslate.setAABB(x250_aaBoxTranslate);
} }

View File

@ -17,10 +17,10 @@ class CPhazonBeam final : public CGunWeapon {
float x268_clipWipeScale = 0.f; float x268_clipWipeScale = 0.f;
float x26c_clipWipeTranslate = 0.f; float x26c_clipWipeTranslate = 0.f;
float x270_indirectAlpha = 1.f; float x270_indirectAlpha = 1.f;
bool x274_24_loaded : 1; bool x274_24_loaded : 1 = false;
bool x274_25_clipWipeActive : 1; bool x274_25_clipWipeActive : 1 = true;
bool x274_26_veinsAlphaActive : 1; bool x274_26_veinsAlphaActive : 1 = false;
bool x274_27_phazonVeinsIdx : 1; bool x274_27_phazonVeinsIdx : 1 = false;
float x278_fireTime = 1.f / 3.f; float x278_fireTime = 1.f / 3.f;
CAABoxShader m_aaboxShaderScale{true}; CAABoxShader m_aaboxShaderScale{true};
CAABoxShader m_aaboxShaderTranslate{true}; CAABoxShader m_aaboxShaderTranslate{true};

View File

@ -17,8 +17,6 @@ CPlasmaBeam::CPlasmaBeam(CAssetId characterId, EWeaponType type, TUniqueId playe
const zeus::CVector3f& scale) const zeus::CVector3f& scale)
: CGunWeapon(characterId, type, playerId, playerMaterial, scale) { : CGunWeapon(characterId, type, playerId, playerMaterial, scale) {
x21c_plasma2nd1 = g_SimplePool->GetObj("Plasma2nd_1"); x21c_plasma2nd1 = g_SimplePool->GetObj("Plasma2nd_1");
x22c_24_loaded = false;
x22c_25_worldLighingDim = false;
} }
void CPlasmaBeam::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr) { void CPlasmaBeam::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr) {

View File

@ -8,8 +8,8 @@ namespace urde {
class CPlasmaBeam final : public CGunWeapon { class CPlasmaBeam final : public CGunWeapon {
TCachedToken<CGenDescription> x21c_plasma2nd1; TCachedToken<CGenDescription> x21c_plasma2nd1;
std::unique_ptr<CElementGen> x228_chargeFx; std::unique_ptr<CElementGen> x228_chargeFx;
bool x22c_24_loaded : 1; bool x22c_24_loaded : 1 = false;
bool x22c_25_worldLighingDim : 1; bool x22c_25_worldLighingDim : 1 = false;
float x230_fireShotDelayTimer = 0.f; float x230_fireShotDelayTimer = 0.f;
float x234_fireShotDelay = 0.f; float x234_fireShotDelay = 0.f;
float x238_lightingResetDelayTimer = 0.f; float x238_lightingResetDelayTimer = 0.f;

View File

@ -39,12 +39,7 @@ CPlasmaProjectile::CPlasmaProjectile(const TToken<CWeaponDescription>& wDesc, st
, x48c_(bInfo.GetLength() / 32.f) , x48c_(bInfo.GetLength() / 32.f)
, x490_innerColor(bInfo.GetInnerColor()) , x490_innerColor(bInfo.GetInnerColor())
, x494_outerColor(bInfo.GetOuterColor()) , x494_outerColor(bInfo.GetOuterColor())
, x548_24_(false) , x548_28_drawOwnerFirst(growingBeam) {
, x548_25_enableEnergyPulse(true)
, x548_26_firing(false)
, x548_27_texturesLoaded(false)
, x548_28_drawOwnerFirst(growingBeam)
, x548_29_activePlayerPhazon(false) {
x4e8_texture = g_SimplePool->GetObj(SObjectTag{FOURCC('TXTR'), bInfo.GetTextureId()}); x4e8_texture = g_SimplePool->GetObj(SObjectTag{FOURCC('TXTR'), bInfo.GetTextureId()});
x4f4_glowTexture = g_SimplePool->GetObj(SObjectTag{FOURCC('TXTR'), bInfo.GetGlowTextureId()}); x4f4_glowTexture = g_SimplePool->GetObj(SObjectTag{FOURCC('TXTR'), bInfo.GetGlowTextureId()});
x500_contactFxDesc = g_SimplePool->GetObj(SObjectTag{FOURCC('PART'), bInfo.GetContactFxId()}); x500_contactFxDesc = g_SimplePool->GetObj(SObjectTag{FOURCC('PART'), bInfo.GetContactFxId()});

View File

@ -67,12 +67,12 @@ private:
TToken<CGenDescription> x538_visorParticle; // Used to be optional TToken<CGenDescription> x538_visorParticle; // Used to be optional
u16 x544_freezeSfx; u16 x544_freezeSfx;
u16 x546_electricSfx; u16 x546_electricSfx;
bool x548_24_ : 1; bool x548_24_ : 1 = false;
bool x548_25_enableEnergyPulse : 1; bool x548_25_enableEnergyPulse : 1 = true;
bool x548_26_firing : 1; bool x548_26_firing : 1 = false;
bool x548_27_texturesLoaded : 1; bool x548_27_texturesLoaded : 1 = false;
bool x548_28_drawOwnerFirst : 1; bool x548_28_drawOwnerFirst : 1;
bool x548_29_activePlayerPhazon : 1; bool x548_29_activePlayerPhazon : 1 = false;
struct RenderObjects { struct RenderObjects {
CColoredStripShader m_beamStrip1; CColoredStripShader m_beamStrip1;

View File

@ -131,39 +131,7 @@ CPlayerGun::CPlayerGun(TUniqueId playerId)
, x678_morph(g_tweakPlayerGun->GetGunTransformTime(), g_tweakPlayerGun->GetHoloHoldTime()) , x678_morph(g_tweakPlayerGun->GetGunTransformTime(), g_tweakPlayerGun->GetHoloHoldTime())
, x6c8_hologramClipCube(zeus::CVector3f(-0.29329199f, 0.f, -0.2481945f), , x6c8_hologramClipCube(zeus::CVector3f(-0.29329199f, 0.f, -0.2481945f),
zeus::CVector3f(0.29329199f, 1.292392f, 0.2481945f)) zeus::CVector3f(0.29329199f, 1.292392f, 0.2481945f))
, x6e0_rightHandModel(CAnimRes(g_tweakGunRes->xc_rightHand, 0, zeus::CVector3f(3.f), 0, true)) , x6e0_rightHandModel(CAnimRes(g_tweakGunRes->xc_rightHand, 0, zeus::CVector3f(3.f), 0, true)) {
, x832_24_coolingCharge(false)
, x832_25_chargeEffectVisible(false)
, x832_26_comboFiring(false)
, x832_27_chargeAnimStarted(false)
, x832_28_readyForShot(false)
, x832_29_lockedOn(false)
, x832_30_requestReturnToDefault(false)
, x832_31_inRestPose(true)
, x833_24_notFidgeting(true)
, x833_25_(false)
, x833_26_(false)
, x833_27_(false)
, x833_28_phazonBeamActive(false)
, x833_29_pointBlankWorldSurface(false)
, x833_30_canShowAuxMuzzleEffect(true)
, x833_31_inFreeLook(false)
, x834_24_charging(false)
, x834_25_gunMotionFidgeting(false)
, x834_26_animPlaying(false)
, x834_27_underwater(false)
, x834_28_requestImmediateRecharge(false)
, x834_29_frozen(false)
, x834_30_inBigStrike(false)
, x834_31_gunMotionInFidgetBasePosition(false)
, x835_24_canFirePhazon(false)
, x835_25_inPhazonBeam(false)
, x835_26_phazonBeamMorphing(false)
, x835_27_intoPhazonBeam(false)
, x835_28_bombReady(false)
, x835_29_powerBombReady(false)
, x835_30_inPhazonPool(false)
, x835_31_actorAttached(false) {
x354_bombFuseTime = g_tweakPlayerGun->GetBombFuseTime(); x354_bombFuseTime = g_tweakPlayerGun->GetBombFuseTime();
x358_bombDropDelayTime = g_tweakPlayerGun->GetBombDropDelayTime(); x358_bombDropDelayTime = g_tweakPlayerGun->GetBombDropDelayTime();
x668_aimVerticalSpeed = g_tweakPlayerGun->GetAimVerticalSpeed(); x668_aimVerticalSpeed = g_tweakPlayerGun->GetAimVerticalSpeed();

View File

@ -82,15 +82,13 @@ private:
float x18_transitionFactor = 1.f; float x18_transitionFactor = 1.f;
EDir x1c_dir = EDir::Done; EDir x1c_dir = EDir::Done;
EGunState x20_gunState = EGunState::OutWipeDone; EGunState x20_gunState = EGunState::OutWipeDone;
bool x24_24_morphing : 1; bool x24_24_morphing : 1 = false;
bool x24_25_weaponChanged : 1; bool x24_25_weaponChanged : 1 = false;
public: public:
CGunMorph(float gunTransformTime, float holoHoldTime) CGunMorph(float gunTransformTime, float holoHoldTime)
: x4_gunTransformTime(gunTransformTime) : x4_gunTransformTime(gunTransformTime)
, x10_holoHoldTime(std::fabs(holoHoldTime)) , x10_holoHoldTime(std::fabs(holoHoldTime)) {}
, x24_24_morphing(false)
, x24_25_weaponChanged(false) {}
float GetYLerp() const { return x0_yLerp; } float GetYLerp() const { return x0_yLerp; }
float GetTransitionFactor() const { return x18_transitionFactor; } float GetTransitionFactor() const { return x18_transitionFactor; }
EGunState GetGunState() const { return x20_gunState; } EGunState GetGunState() const { return x20_gunState; }
@ -222,41 +220,41 @@ private:
std::unique_ptr<CWorldShadow> x82c_shadow; std::unique_ptr<CWorldShadow> x82c_shadow;
s16 x830_chargeRumbleHandle = -1; s16 x830_chargeRumbleHandle = -1;
bool x832_24_coolingCharge : 1; bool x832_24_coolingCharge : 1 = false;
bool x832_25_chargeEffectVisible : 1; bool x832_25_chargeEffectVisible : 1 = false;
bool x832_26_comboFiring : 1; bool x832_26_comboFiring : 1 = false;
bool x832_27_chargeAnimStarted : 1; bool x832_27_chargeAnimStarted : 1 = false;
bool x832_28_readyForShot : 1; bool x832_28_readyForShot : 1 = false;
bool x832_29_lockedOn : 1; bool x832_29_lockedOn : 1 = false;
bool x832_30_requestReturnToDefault : 1; bool x832_30_requestReturnToDefault : 1 = false;
bool x832_31_inRestPose : 1; bool x832_31_inRestPose : 1 = true;
bool x833_24_notFidgeting : 1; bool x833_24_notFidgeting : 1 = true;
bool x833_25_ : 1; bool x833_25_ : 1 = false;
bool x833_26_ : 1; bool x833_26_ : 1 = false;
bool x833_27_ : 1; bool x833_27_ : 1 = false;
bool x833_28_phazonBeamActive : 1; bool x833_28_phazonBeamActive : 1 = false;
bool x833_29_pointBlankWorldSurface : 1; bool x833_29_pointBlankWorldSurface : 1 = false;
bool x833_30_canShowAuxMuzzleEffect : 1; bool x833_30_canShowAuxMuzzleEffect : 1 = true;
bool x833_31_inFreeLook : 1; bool x833_31_inFreeLook : 1 = false;
bool x834_24_charging : 1; bool x834_24_charging : 1 = false;
bool x834_25_gunMotionFidgeting : 1; bool x834_25_gunMotionFidgeting : 1 = false;
bool x834_26_animPlaying : 1; bool x834_26_animPlaying : 1 = false;
bool x834_27_underwater : 1; bool x834_27_underwater : 1 = false;
bool x834_28_requestImmediateRecharge : 1; bool x834_28_requestImmediateRecharge : 1 = false;
bool x834_29_frozen : 1; bool x834_29_frozen : 1 = false;
bool x834_30_inBigStrike : 1; bool x834_30_inBigStrike : 1 = false;
bool x834_31_gunMotionInFidgetBasePosition : 1; bool x834_31_gunMotionInFidgetBasePosition : 1 = false;
bool x835_24_canFirePhazon : 1; bool x835_24_canFirePhazon : 1 = false;
bool x835_25_inPhazonBeam : 1; bool x835_25_inPhazonBeam : 1 = false;
bool x835_26_phazonBeamMorphing : 1; bool x835_26_phazonBeamMorphing : 1 = false;
bool x835_27_intoPhazonBeam : 1; bool x835_27_intoPhazonBeam : 1 = false;
bool x835_28_bombReady : 1; bool x835_28_bombReady : 1 = false;
bool x835_29_powerBombReady : 1; bool x835_29_powerBombReady : 1 = false;
bool x835_30_inPhazonPool : 1; bool x835_30_inPhazonPool : 1 = false;
bool x835_31_actorAttached : 1; bool x835_31_actorAttached : 1 = false;
CTexturedQuadFilter m_screenQuad{EFilterType::Blend, CGraphics::g_SpareTexture.get(), CTexturedQuadFilter m_screenQuad{EFilterType::Blend, CGraphics::g_SpareTexture.get(),
CTexturedQuadFilter::ZTest::GEqualZWrite}; CTexturedQuadFilter::ZTest::GEqualZWrite};

View File

@ -12,8 +12,6 @@ CPowerBeam::CPowerBeam(CAssetId characterId, EWeaponType type, TUniqueId playerI
: CGunWeapon(characterId, type, playerId, playerMaterial, scale) { : CGunWeapon(characterId, type, playerId, playerMaterial, scale) {
x21c_shotSmoke = g_SimplePool->GetObj("ShotSmoke"); x21c_shotSmoke = g_SimplePool->GetObj("ShotSmoke");
x228_power2nd1 = g_SimplePool->GetObj("Power2nd_1"); x228_power2nd1 = g_SimplePool->GetObj("Power2nd_1");
x244_24 = false;
x244_25_loaded = false;
} }
void CPowerBeam::PreRenderGunFx(const CStateManager& mgr, const zeus::CTransform& xf) { void CPowerBeam::PreRenderGunFx(const CStateManager& mgr, const zeus::CTransform& xf) {

View File

@ -13,8 +13,8 @@ class CPowerBeam final : public CGunWeapon {
std::unique_ptr<CElementGen> x238_power2ndGen; std::unique_ptr<CElementGen> x238_power2ndGen;
float x23c_smokeTimer = 0.f; float x23c_smokeTimer = 0.f;
ESmokeState x240_smokeState = ESmokeState::Inactive; ESmokeState x240_smokeState = ESmokeState::Inactive;
bool x244_24 : 1; bool x244_24 : 1 = false;
bool x244_25_loaded : 1; bool x244_25_loaded : 1 = false;
void ReInitVariables(); void ReInitVariables();
public: public:

View File

@ -25,8 +25,6 @@ CPowerBomb::CPowerBomb(const TToken<CGenDescription>& particle, TUniqueId uid, T
{EMaterialTypes::Projectile, EMaterialTypes::PowerBomb}), {EMaterialTypes::Projectile, EMaterialTypes::PowerBomb}),
{EMaterialTypes::Projectile, EMaterialTypes::PowerBomb}, dInfo, EProjectileAttrib::PowerBombs, {EMaterialTypes::Projectile, EMaterialTypes::PowerBomb}, dInfo, EProjectileAttrib::PowerBombs,
CModelData::CModelDataNull()) CModelData::CModelDataNull())
, x158_24_canStartFilter(true)
, x158_25_filterEnabled(false)
, x164_radiusIncrement(dInfo.GetRadius() / 2.5f) , x164_radiusIncrement(dInfo.GetRadius() / 2.5f)
, x168_particle(std::make_unique<CElementGen>(particle)) , x168_particle(std::make_unique<CElementGen>(particle))
, x16c_radius(dInfo.GetRadius()) { , x16c_radius(dInfo.GetRadius()) {

View File

@ -12,8 +12,8 @@ namespace urde {
class CElementGen; class CElementGen;
class CPowerBomb : public CWeapon { class CPowerBomb : public CWeapon {
bool x158_24_canStartFilter : 1; bool x158_24_canStartFilter : 1 = true;
bool x158_25_filterEnabled : 1; bool x158_25_filterEnabled : 1 = false;
float x15c_curTime = 0.f; float x15c_curTime = 0.f;
float x160_curRadius = 0.f; float x160_curRadius = 0.f;
float x164_radiusIncrement; float x164_radiusIncrement;

View File

@ -15,15 +15,7 @@ CProjectileWeapon::CProjectileWeapon(const TToken<CWeaponDescription>& wDesc, co
, x10_random(g_GlobalSeed) , x10_random(g_GlobalSeed)
, x14_localToWorldXf(localToWorld) , x14_localToWorldXf(localToWorld)
, x74_worldOffset(worldOffset) , x74_worldOffset(worldOffset)
, xe4_flags(flags) , xe4_flags(flags) {
, x124_24_active(true)
, x124_25_APSO(false)
, x124_26_AP11(false)
, x124_27_AP21(false)
, x124_28_AS11(false)
, x124_29_AS12(false)
, x124_30_AS13(false)
, x124_31_VMD2(false) {
CGlobalRandom gr(x10_random); CGlobalRandom gr(x10_random);
x124_31_VMD2 = x4_weaponDesc->x10_VMD2; x124_31_VMD2 = x4_weaponDesc->x10_VMD2;
x124_25_APSO = x4_weaponDesc->x28_APSO; x124_25_APSO = x4_weaponDesc->x28_APSO;

View File

@ -53,14 +53,14 @@ class CProjectileWeapon {
std::unique_ptr<CParticleSwoosh> x118_swoosh1; std::unique_ptr<CParticleSwoosh> x118_swoosh1;
std::unique_ptr<CParticleSwoosh> x11c_swoosh2; std::unique_ptr<CParticleSwoosh> x11c_swoosh2;
std::unique_ptr<CParticleSwoosh> x120_swoosh3; std::unique_ptr<CParticleSwoosh> x120_swoosh3;
bool x124_24_active : 1; bool x124_24_active : 1 = true;
bool x124_25_APSO : 1; bool x124_25_APSO : 1 = false;
bool x124_26_AP11 : 1; bool x124_26_AP11 : 1 = false;
bool x124_27_AP21 : 1; bool x124_27_AP21 : 1 = false;
bool x124_28_AS11 : 1; bool x124_28_AS11 : 1 = false;
bool x124_29_AS12 : 1; bool x124_29_AS12 : 1 = false;
bool x124_30_AS13 : 1; bool x124_30_AS13 : 1 = false;
bool x124_31_VMD2 : 1; bool x124_31_VMD2 : 1 = false;
public: public:
CProjectileWeapon(const TToken<CWeaponDescription>& wDesc, const zeus::CVector3f& worldOffset, CProjectileWeapon(const TToken<CWeaponDescription>& wDesc, const zeus::CVector3f& worldOffset,

View File

@ -23,8 +23,6 @@ CWaveBeam::CWaveBeam(CAssetId characterId, EWeaponType type, TUniqueId playerId,
x228_wave2nd1 = g_SimplePool->GetObj("Wave2nd_1"); x228_wave2nd1 = g_SimplePool->GetObj("Wave2nd_1");
x234_wave2nd2 = g_SimplePool->GetObj("Wave2nd_2"); x234_wave2nd2 = g_SimplePool->GetObj("Wave2nd_2");
x240_wave2nd3 = g_SimplePool->GetObj("Wave2nd_3"); x240_wave2nd3 = g_SimplePool->GetObj("Wave2nd_3");
x258_24_loaded = false;
x258_25_effectTimerActive = false;
} }
void CWaveBeam::PostRenderGunFx(const CStateManager& mgr, const zeus::CTransform& xf) { void CWaveBeam::PostRenderGunFx(const CStateManager& mgr, const zeus::CTransform& xf) {

View File

@ -15,8 +15,8 @@ class CWaveBeam final : public CGunWeapon {
float x24c_effectTimer = 0.f; float x24c_effectTimer = 0.f;
std::unique_ptr<CParticleElectric> x250_chargeElec; std::unique_ptr<CParticleElectric> x250_chargeElec;
std::unique_ptr<CElementGen> x254_chargeFx; std::unique_ptr<CElementGen> x254_chargeFx;
bool x258_24_loaded : 1; bool x258_24_loaded : 1 = false;
bool x258_25_effectTimerActive : 1; bool x258_25_effectTimerActive : 1 = false;
void ReInitVariables(); void ReInitVariables();
public: public:

View File

@ -24,11 +24,6 @@ CWaveBuster::CWaveBuster(const TToken<CWeaponDescription>& desc, EWeaponType typ
x388_busterSwoosh2Gen = std::make_unique<CParticleSwoosh>(x360_busterSwoosh2, 0); x388_busterSwoosh2Gen = std::make_unique<CParticleSwoosh>(x360_busterSwoosh2, 0);
x38c_busterSparksGen = std::make_unique<CElementGen>(x36c_busterSparks); x38c_busterSparksGen = std::make_unique<CElementGen>(x36c_busterSparks);
x390_busterLightGen = std::make_unique<CElementGen>(x378_busterLight); x390_busterLightGen = std::make_unique<CElementGen>(x378_busterLight);
x3d0_24_firing = true;
x3d0_25_ = true;
x3d0_26_ = false;
x3d0_27_ = false;
x3d0_28_ = true;
} }
void CWaveBuster::UpdateFx(const zeus::CTransform& xf, float dt, CStateManager& mgr) {} void CWaveBuster::UpdateFx(const zeus::CTransform& xf, float dt, CStateManager& mgr) {}

View File

@ -40,11 +40,11 @@ class CWaveBuster : public CGameProjectile {
float x3c4_ = 0.f; float x3c4_ = 0.f;
float x3c8_ = 0.f; float x3c8_ = 0.f;
u32 x3cc_ = 0; u32 x3cc_ = 0;
bool x3d0_24_firing : 1; bool x3d0_24_firing : 1 = true;
bool x3d0_25_ : 1; bool x3d0_25_ : 1 = true;
bool x3d0_26_ : 1; bool x3d0_26_ : 1 = false;
bool x3d0_27_ : 1; bool x3d0_27_ : 1 = false;
bool x3d0_28_ : 1; bool x3d0_28_ : 1 = true;
public: public:
CWaveBuster(const TToken<CWeaponDescription>& desc, EWeaponType type, const zeus::CTransform& xf, CWaveBuster(const TToken<CWeaponDescription>& desc, EWeaponType type, const zeus::CTransform& xf,

View File

@ -5,12 +5,12 @@
namespace urde { namespace urde {
class CWeaponMode { class CWeaponMode {
EWeaponType x0_weaponType = EWeaponType::None; EWeaponType x0_weaponType = EWeaponType::None;
bool x4_24_charged : 1; bool x4_24_charged : 1 = false;
bool x4_25_comboed : 1; bool x4_25_comboed : 1 = false;
bool x4_26_instantKill : 1; bool x4_26_instantKill : 1 = false;
public: public:
constexpr CWeaponMode() : x4_24_charged{false}, x4_25_comboed{false}, x4_26_instantKill{false} {} constexpr CWeaponMode() = default;
constexpr explicit CWeaponMode(EWeaponType type, bool charged = false, bool comboed = false, bool instaKill = false) constexpr explicit CWeaponMode(EWeaponType type, bool charged = false, bool comboed = false, bool instaKill = false)
: x0_weaponType(type), x4_24_charged(charged), x4_25_comboed(comboed), x4_26_instantKill(instaKill) {} : x0_weaponType(type), x4_24_charged(charged), x4_25_comboed(comboed), x4_26_instantKill(instaKill) {}
constexpr EWeaponType GetType() const { return x0_weaponType; } constexpr EWeaponType GetType() const { return x0_weaponType; }

View File

@ -35,30 +35,11 @@ CActor::CActor(TUniqueId uid, bool active, std::string_view name, const CEntityI
, x68_material(MakeActorMaterialList(list, params)) , x68_material(MakeActorMaterialList(list, params))
, x70_materialFilter(CMaterialFilter::MakeIncludeExclude({EMaterialTypes::Solid}, {0ull})) , x70_materialFilter(CMaterialFilter::MakeIncludeExclude({EMaterialTypes::Solid}, {0ull}))
, xc6_nextDrawNode(otherUid) , xc6_nextDrawNode(otherUid)
, xe4_24_nextNonLoopingSfxHandle(0)
, xe4_27_notInSortedLists(true)
, xe4_28_transformDirty(true)
, xe4_29_actorLightsDirty(true)
, xe4_30_outOfFrustum(false)
, xe4_31_calculateLighting(true)
, xe5_24_shadowEnabled(false)
, xe5_25_shadowDirty(false)
, xe5_26_muted(false)
, xe5_27_useInSortedLists(true)
, xe5_28_callTouch(true)
, xe5_29_globalTimeProvider(params.x58_24_globalTimeProvider) , xe5_29_globalTimeProvider(params.x58_24_globalTimeProvider)
, xe5_30_renderUnsorted(params.x58_26_renderUnsorted) , xe5_30_renderUnsorted(params.x58_26_renderUnsorted)
, xe5_31_pointGeneratorParticles(false)
, xe6_24_fluidCounter(0)
, xe6_27_thermalVisorFlags(u8(params.x58_25_thermalHeat ? 2 : 1)) , xe6_27_thermalVisorFlags(u8(params.x58_25_thermalHeat ? 2 : 1))
, xe6_29_renderParticleDBInside(true)
, xe6_30_enablePitchBend(false)
, xe6_31_targetableVisorFlags(params.GetVisorParameters().GetMask()) , xe6_31_targetableVisorFlags(params.GetVisorParameters().GetMask())
, xe7_27_enableRender(true) , xe7_29_drawEnabled(active) {
, xe7_28_worldLightingDirty(false)
, xe7_29_drawEnabled(active)
, xe7_30_doTargetDistanceTest(true)
, xe7_31_targetable(true) {
x90_actorLights = mData.IsNull() ? nullptr : params.x0_lightParms.MakeActorLights(); x90_actorLights = mData.IsNull() ? nullptr : params.x0_lightParms.MakeActorLights();
if (mData.x10_animData || mData.x1c_normalModel) if (mData.x10_animData || mData.x1c_normalModel)
x64_modelData = std::make_unique<CModelData>(std::move(mData)); x64_modelData = std::make_unique<CModelData>(std::move(mData));

View File

@ -48,30 +48,30 @@ protected:
float xd0_damageMag; float xd0_damageMag;
float xd4_maxVol = 1.f; float xd4_maxVol = 1.f;
rstl::reserved_vector<CSfxHandle, 2> xd8_nonLoopingSfxHandles; rstl::reserved_vector<CSfxHandle, 2> xd8_nonLoopingSfxHandles;
u8 xe4_24_nextNonLoopingSfxHandle : 3; u8 xe4_24_nextNonLoopingSfxHandle : 3 = 0;
bool xe4_27_notInSortedLists : 1; bool xe4_27_notInSortedLists : 1 = true;
bool xe4_28_transformDirty : 1; bool xe4_28_transformDirty : 1 = true;
bool xe4_29_actorLightsDirty : 1; bool xe4_29_actorLightsDirty : 1 = true;
bool xe4_30_outOfFrustum : 1; bool xe4_30_outOfFrustum : 1 = false;
bool xe4_31_calculateLighting : 1; bool xe4_31_calculateLighting : 1 = true;
bool xe5_24_shadowEnabled : 1; bool xe5_24_shadowEnabled : 1 = false;
bool xe5_25_shadowDirty : 1; bool xe5_25_shadowDirty : 1 = false;
bool xe5_26_muted : 1; bool xe5_26_muted : 1 = false;
bool xe5_27_useInSortedLists : 1; bool xe5_27_useInSortedLists : 1 = true;
bool xe5_28_callTouch : 1; bool xe5_28_callTouch : 1 = true;
bool xe5_29_globalTimeProvider : 1; bool xe5_29_globalTimeProvider : 1;
bool xe5_30_renderUnsorted : 1; bool xe5_30_renderUnsorted : 1;
bool xe5_31_pointGeneratorParticles : 1; bool xe5_31_pointGeneratorParticles : 1 = false;
u8 xe6_24_fluidCounter : 3; u8 xe6_24_fluidCounter : 3 = 0;
u8 xe6_27_thermalVisorFlags : 2; // 1: thermal cold, 2: thermal hot u8 xe6_27_thermalVisorFlags : 2; // 1: thermal cold, 2: thermal hot
bool xe6_29_renderParticleDBInside : 1; bool xe6_29_renderParticleDBInside : 1 = true;
bool xe6_30_enablePitchBend : 1; bool xe6_30_enablePitchBend : 1 = false;
u8 xe6_31_targetableVisorFlags : 4; u8 xe6_31_targetableVisorFlags : 4;
bool xe7_27_enableRender : 1; bool xe7_27_enableRender : 1 = true;
bool xe7_28_worldLightingDirty : 1; bool xe7_28_worldLightingDirty : 1 = false;
bool xe7_29_drawEnabled : 1; bool xe7_29_drawEnabled : 1;
bool xe7_30_doTargetDistanceTest : 1; bool xe7_30_doTargetDistanceTest : 1 = true;
bool xe7_31_targetable : 1; bool xe7_31_targetable : 1 = true;
boo::ObjToken<boo::ITextureCubeR> m_reflectionCube; boo::ObjToken<boo::ITextureCubeR> m_reflectionCube;

View File

@ -29,9 +29,7 @@ CActorModelParticles::CItem::CItem(const CEntity& ent, CActorModelParticles& par
: x0_id(ent.GetUniqueId()) : x0_id(ent.GetUniqueId())
, x4_areaId(ent.GetAreaIdAlways()) , x4_areaId(ent.GetAreaIdAlways())
, xdc_ashy(parent.x48_ashy) , xdc_ashy(parent.x48_ashy)
, x128_parent(parent) , x128_parent(parent) {
, x12c_24_thermalCold(false)
, x12c_25_thermalHot(false) {
x8_onFireGens.resize(8); x8_onFireGens.resize(8);
} }

View File

@ -56,8 +56,8 @@ public:
zeus::CVector3f xec_particleOffsetScale = zeus::skOne3f; zeus::CVector3f xec_particleOffsetScale = zeus::skOne3f;
zeus::CTransform xf8_iceXf; zeus::CTransform xf8_iceXf;
CActorModelParticles& x128_parent; CActorModelParticles& x128_parent;
bool x12c_24_thermalCold : 1; bool x12c_24_thermalCold : 1 = false;
bool x12c_25_thermalHot : 1; bool x12c_25_thermalHot : 1 = false;
float x130_remTime = 10.f; float x130_remTime = 10.f;
mutable u8 x134_lockDeps = 0; mutable u8 x134_lockDeps = 0;
bool UpdateOnFire(float dt, CActor* actor, CStateManager& mgr); bool UpdateOnFire(float dt, CActor* actor, CStateManager& mgr);

View File

@ -18,20 +18,16 @@ class CActorParameters {
std::pair<CAssetId, CAssetId> x44_xrayAssets = {}; std::pair<CAssetId, CAssetId> x44_xrayAssets = {};
std::pair<CAssetId, CAssetId> x4c_thermalAssets = {}; std::pair<CAssetId, CAssetId> x4c_thermalAssets = {};
CVisorParameters x54_visorParms; CVisorParameters x54_visorParms;
bool x58_24_globalTimeProvider : 1; bool x58_24_globalTimeProvider : 1 = true;
bool x58_25_thermalHeat : 1; bool x58_25_thermalHeat : 1 = false;
bool x58_26_renderUnsorted : 1; bool x58_26_renderUnsorted : 1 = false;
bool x58_27_noSortThermal : 1; bool x58_27_noSortThermal : 1 = false;
float x5c_fadeInTime = 0.f; float x5c_fadeInTime = 0.f;
float x60_fadeOutTime = 0.f; float x60_fadeOutTime = 0.f;
float x64_thermalMag = 0.f; float x64_thermalMag = 0.f;
public: public:
CActorParameters() CActorParameters() = default;
: x58_24_globalTimeProvider(true)
, x58_25_thermalHeat(false)
, x58_26_renderUnsorted(false)
, x58_27_noSortThermal(false) {}
CActorParameters(const CLightParameters& lightParms, const CScannableParameters& scanParms, CActorParameters(const CLightParameters& lightParms, const CScannableParameters& scanParms,
const std::pair<CAssetId, CAssetId>& xrayAssets, const std::pair<CAssetId, CAssetId>& thermalAssets, const std::pair<CAssetId, CAssetId>& xrayAssets, const std::pair<CAssetId, CAssetId>& thermalAssets,
const CVisorParameters& visorParms, bool globalTimeProvider, bool thermalHeat, bool renderUnsorted, const CVisorParameters& visorParms, bool globalTimeProvider, bool thermalHeat, bool renderUnsorted,

View File

@ -19,9 +19,7 @@ CAmbientAI::CAmbientAI(TUniqueId uid, std::string_view name, const CEntityInfo&
, x2d8_impactRange(impactRange) , x2d8_impactRange(impactRange)
, x2dc_defaultAnim(GetModelData()->GetAnimationData()->GetDefaultAnimation()) , x2dc_defaultAnim(GetModelData()->GetAnimationData()->GetDefaultAnimation())
, x2e0_alertAnim(alertAnim) , x2e0_alertAnim(alertAnim)
, x2e4_impactAnim(impactAnim) , x2e4_impactAnim(impactAnim) {
, x2e8_24_dead(false)
, x2e8_25_animating(false) {
GetModelData()->GetAnimationData()->EnableLooping(true); GetModelData()->GetAnimationData()->EnableLooping(true);
} }

Some files were not shown because too many files have changed in this diff Show More