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 xc8_powerBombAmmoCount = 0;
u32 xcc_logScanPercent = 0;
bool xd0_24_fusionLinked : 1;
bool xd0_25_normalModeBeat : 1;
bool xd0_26_hardModeBeat : 1;
bool xd0_27_fusionBeat : 1;
bool xd0_28_fusionSuitActive : 1;
bool xd0_29_allItemsCollected : 1;
bool xd0_24_fusionLinked : 1 = false;
bool xd0_25_normalModeBeat : 1 = false;
bool xd0_26_hardModeBeat : 1 = false;
bool xd0_27_fusionBeat : 1 = false;
bool xd0_28_fusionSuitActive : 1 = false;
bool xd0_29_allItemsCollected : 1 = false;
public:
CPersistentOptions()
: xd0_24_fusionLinked(false)
, xd0_25_normalModeBeat(false)
, xd0_26_hardModeBeat(false)
, xd0_27_fusionBeat(false)
, xd0_28_fusionSuitActive(false)
, xd0_29_allItemsCollected(false) {}
CPersistentOptions() = default;
explicit CPersistentOptions(CBitStreamReader& stream);
bool GetCinematicState(CAssetId mlvlId, TEditorId cineId) const;

View File

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

View File

@ -81,8 +81,8 @@ class CGameState {
u32 x20c_saveFileIdx = 0;
u64 x210_cardSerial = 0;
std::vector<u8> x218_backupBuf;
bool x228_24_hardMode : 1;
bool x228_25_initPowerupsAtFirstSpawn : 1;
bool x228_24_hardMode : 1 = false;
bool x228_25_initPowerupsAtFirstSpawn : 1 = true;
public:
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());
x28_24_buildDepList = buildDepList;
//x28_24_buildDepList = true; // Always do this so URDE can rapidly pre-warm shaders
x28_25_aramFile = false;
x28_26_worldPak = worldPak;
x28_27_stashedInARAM = false;
m_override = override;
}

View File

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

View File

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

View File

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

View File

@ -62,14 +62,7 @@ CStateManager::CStateManager(const std::weak_ptr<CRelayTracker>& relayTracker,
, x8bc_relayTracker(relayTracker)
, x8c0_mapWorldInfo(mwInfo)
, x8c4_worldTransManager(wtMgr)
, 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) {
, x8c8_worldLayerState(layerState) {
x86c_stateManagerContainer = std::make_unique<CStateManagerContainer>();
x870_cameraManager = &x86c_stateManagerContainer->x0_cameraManager;
x874_sortedListManager = &x86c_stateManagerContainer->x3c0_sortedListManager;

View File

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

View File

@ -17,7 +17,7 @@
namespace urde {
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);
m_indexedLights.reserve(8);
x10_rootWidget = std::make_unique<CGuiWidget>(CGuiWidget::CGuiWidgetParms(

View File

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

View File

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

View File

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

View File

@ -18,14 +18,7 @@ CGuiWidget::CGuiWidget(const CGuiWidgetParms& parms)
xb6_24_pg = parms.xd_g;
xb6_25_isVisible = parms.xa_defaultVisible;
xb6_26_isActive = parms.xb_defaultActive;
xb6_27_isSelectable = true;
xb6_28_eventLock = false;
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);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -4,49 +4,7 @@
namespace urde {
CFinalInput::CFinalInput()
: 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() = default;
CFinalInput::CFinalInput(int cIdx, float dt, const boo::DolphinControllerState& data, const CFinalInput& prevInput,
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)
: x0_dt(dt)
, x4_controllerIdx(cIdx)
, x8_anaLeftX(0.f)
, xc_anaLeftY(0.f)
, x10_anaRightX(0.f)
, x14_anaRightY(0.f)
, x18_anaLeftTrigger(false)
, x1c_anaRightTrigger(false)
, x20_enableAnaLeftXP(DLARight() && !prevInput.DLARight())
@ -112,18 +66,10 @@ CFinalInput::CFinalInput(int cIdx, float dt, const CKeyboardMouseControllerData&
, x23_enableAnaRightNegYP(DRADown() && !prevInput.DRADown())
, x24_anaLeftTriggerP(DLTrigger() && !prevInput.DLTrigger())
, 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)])
, x2d_b24_DPRight(data.m_specialKeys[size_t(boo::ESpecialKey::Right)])
, x2d_b25_DPDown(data.m_specialKeys[size_t(boo::ESpecialKey::Down)])
, x2d_b26_DPLeft(data.m_specialKeys[size_t(boo::ESpecialKey::Left)])
, x2d_b27_Start(false)
, x2d_b28_PA(DA() && !prevInput.DA())
, x2d_b29_PB(DB() && !prevInput.DB())
, x2d_b30_PX(DX() && !prevInput.DX())

View File

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

View File

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

View File

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

View File

@ -32,10 +32,10 @@ struct SAdsrData {
float xc_decayDur = 0.f;
float x10_sustainGain = 0.f;
float x14_releaseDur = 0.f;
bool x18_24_hasSustain : 1;
bool x18_25_autoRelease : 1;
bool x18_24_hasSustain : 1 = false;
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,
float releaseDur, bool hasSustain, bool autoRelease) noexcept
: x0_attackGain(attackGain)

View File

@ -9,7 +9,7 @@ CRandom16 CDecal::sDecalRandom;
bool CDecal::sMoveRedToAlphaBuffer = false;
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);
CDecalDescription& desco = *x0_description;

View File

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

View File

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

View File

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

View File

@ -56,19 +56,7 @@ void CElementGen::Shutdown() { CElementGenShaders::Shutdown(); }
CElementGen::CElementGen(TToken<CGenDescription> gen, EModelOrientationType orientType, EOptionalSystemFlags flags)
: x1c_genDesc(std::move(gen))
, 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_28_enableADV(false)
, x27c_randState(x94_randomSeed) {
CGenDescription* desc = x1c_genDesc.GetObj();
x28_loadedGenDesc = desc;

View File

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

View File

@ -18,19 +18,17 @@ class CFlameWarp : public CWarp {
float x94_maxSize = FLT_MIN;
float x98_maxInfluenceDistSq;
CStateManager* x9c_stateMgr = nullptr;
bool xa0_24_activated : 1;
bool xa0_24_activated : 1 = false;
bool xa0_25_collisionWarp : 1;
bool xa0_26_processed : 1;
bool xa0_26_processed : 1 = false;
public:
CFlameWarp(float maxInfluenceDist, const zeus::CVector3f& warpPoint, bool collisionWarp)
: x74_warpPoint(warpPoint)
, x80_floatingPoint(warpPoint)
, x98_maxInfluenceDistSq(maxInfluenceDist * maxInfluenceDist) {
, x98_maxInfluenceDistSq(maxInfluenceDist * maxInfluenceDist)
, xa0_25_collisionWarp{collisionWarp} {
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; }

View File

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

View File

@ -22,13 +22,7 @@ u16 CParticleElectric::g_GlobalSeed = 99;
CParticleElectric::CParticleElectric(const TToken<CElectricDescription>& token)
: x1c_elecDesc(token)
, 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) {
, x14c_randState(g_GlobalSeed++) {
x1bc_allocated.resize(32);
CElectricDescription* desc = x1c_elecDesc.GetObj();

View File

@ -85,12 +85,12 @@ private:
std::vector<zeus::CVector3f> x420_calculatedVerts;
std::vector<float> x430_fractalMags;
std::vector<zeus::CVector3f> x440_fractalOffsets;
bool x450_24_emitting : 1;
bool x450_25_haveGPSM : 1;
bool x450_26_haveEPSM : 1;
bool x450_27_haveSSWH : 1;
bool x450_28_haveLWD : 1;
bool x450_29_transformDirty : 1;
bool x450_24_emitting : 1 = true;
bool x450_25_haveGPSM : 1 = false;
bool x450_26_haveEPSM : 1 = false;
bool x450_27_haveSSWH : 1 = false;
bool x450_28_haveLWD : 1 = false;
bool x450_29_transformDirty : 1 = true;
size_t m_nextLineRenderer = 0;
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>(
std::chrono::steady_clock::now().time_since_epoch())
.count()
: 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) {
: 99) {
++g_ParticleSystemAliveCount;
if (leng > 0) {

View File

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

View File

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

View File

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

View File

@ -24,7 +24,7 @@ class CAuxWeapon {
CPlayerState::EBeamId x74_firingBeamId = CPlayerState::EBeamId::Invalid;
CPlayerState::EBeamId x78_loadBeamId = CPlayerState::EBeamId::Power;
CSfxHandle x7c_comboSfx;
bool x80_24_isLoaded : 1;
bool x80_24_isLoaded : 1 = false;
void InitComboData();
void FreeComboVoiceId();
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)
, x304_beamLength(x2ec_maxLength)
, x308_travelSpeed(travelSpeed)
, x464_24_growingBeam(growingBeam)
, x464_25_enableTouchDamage(false) {
, x464_24_growingBeam(growingBeam) {
x384_.resize(10);
x400_pointCache.resize(8);
}

View File

@ -35,7 +35,7 @@ private:
rstl::reserved_vector<zeus::CVector3f, 10> x384_;
rstl::reserved_vector<zeus::CVector3f, 8> x400_pointCache;
bool x464_24_growingBeam : 1;
bool x464_25_enableTouchDamage : 1;
bool x464_25_enableTouchDamage : 1 = false;
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))
, x184_particle2(std::make_unique<CElementGen>(particle2, CElementGen::EModelOrientationType::Normal,
CElementGen::EOptionalSystemFlags::One))
, x18c_particle2Obj(particle2.GetObj())
, x190_24_isNotDetonated(true)
, x190_25_beingDragged(false)
, x190_26_disableFuse(false) {
, x18c_particle2Obj(particle2.GetObj()) {
x180_particle1->SetGlobalTranslation(xf.origin);
x184_particle2->SetGlobalTranslation(xf.origin);
}

View File

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

View File

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

View File

@ -23,8 +23,8 @@ class CBurstFire {
float x8_timeToNextShot = 0.f;
s32 xc_firstBurstIdx = 0;
s32 x10_firstBurstCounter;
bool x14_24_shouldFire : 1;
bool x14_25_avoidAccuracy : 1;
bool x14_24_shouldFire : 1 = false;
bool x14_25_avoidAccuracy : 1 = false;
const SBurst* x18_curBursts = nullptr;
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)
, x3f8_playerHitSfx(playerHitSfx)
, x3fc_playerIceTxtr(playerIceTxtr)
, x400_24_active(false)
, x400_25_particlesActive(false)
, x400_26_((flameInfo.GetAttributes() & 1) == 0)
, x400_27_coneCollision((flameInfo.GetAttributes() & 0x2) != 0) {}

View File

@ -31,8 +31,8 @@ private:
CAssetId x3f4_playerSteamTxtr;
s16 x3f8_playerHitSfx;
CAssetId x3fc_playerIceTxtr;
bool x400_24_active : 1;
bool x400_25_particlesActive : 1;
bool x400_24_active : 1 = false;
bool x400_25_particlesActive : 1 = false;
bool x400_26_ : 1;
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 x8_cueAnimId = -1;
s32 xc_gunId = -1;
bool x10_24_over : 1;
bool x10_25_idle : 1;
bool x10_24_over : 1 = false;
bool x10_25_idle : 1 = false;
public:
CGSComboFire() : x10_24_over(false), x10_25_idle(false) {}
CGSComboFire() = default;
bool IsComboOver() const { return x10_24_over; }
s32 GetLoopState() const { return x4_loopState; }

View File

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

View File

@ -49,7 +49,7 @@ protected:
CAssetId x2cc_wpscId;
std::vector<CProjectileTouchResult> x2d0_touchResults;
float x2e0_minHomingDist = 0.f;
bool x2e4_24_active : 1;
bool x2e4_24_active : 1 = true;
bool x2e4_25_startedUnderwater : 1;
bool x2e4_26_waterUpdate : 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))
, x39c_grappleMuzzleGen(std::make_unique<CElementGen>(x378_grappleMuzzleDesc))
, x3a0_grappleSwooshGen(std::make_unique<CParticleSwoosh>(x384_grappleSwooshDesc, 0))
, 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) {
, x3a4_rainSplashGenerator(std::make_unique<CRainSplashGenerator>(scale, 20, 2, 0.f, 0.125f)) {
x0_grappleArmModel->SetSortThermal(true);
xa0_grappleGearModel.SetSortThermal(true);
xec_grapNoz1Model.SetSortThermal(true);

View File

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

View File

@ -15,14 +15,11 @@ class CGunController {
CGSFidget x30_fidget;
EGunState x50_gunState = EGunState::Inactive;
s32 x54_curAnimId = -1;
bool x58_24_animDone : 1;
bool x58_25_enteredComboFire : 1;
bool x58_24_animDone : 1 = true;
bool x58_25_enteredComboFire : 1 = false;
public:
explicit CGunController(CModelData& modelData) : x0_modelData(modelData) {
x58_24_animDone = true;
x58_25_enteredComboFire = false;
}
explicit CGunController(CModelData& modelData) : x0_modelData(modelData) {}
void UnLoadFidget() { x30_fidget.UnLoadAnim(); }
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)
: x0_modelData(CAnimRes(ancsId, 0, scale, 0, false), 1), x4c_gunController(x0_modelData) {
xb8_24_animPlaying = false;
LoadAnimations();
}

View File

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

View File

@ -70,13 +70,7 @@ CGunWeapon::CGunWeapon(CAssetId ancsId, EWeaponType type, TUniqueId playerId, EM
, x1c8_playerMaterial(playerMaterial)
, x200_beamId(GetWeaponIndex(type))
, x20c_shaderIdx(u32(x200_beamId))
, 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) {
, x214_ancsId(ancsId) {
AllocResPools(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
u32 x210_loadFlags = 0;
CAssetId x214_ancsId;
bool x218_24 : 1;
bool x218_25_enableCharge : 1;
bool x218_26_loaded : 1;
bool x218_24 : 1 = false;
bool x218_25_enableCharge : 1 = false;
bool x218_26_loaded : 1 = false;
// Initialize in selected beam's pose, rather than power beam's pose
bool x218_27_subtypeBasePose : 1;
bool x218_28_suitArmLocked : 1;
bool x218_29_drawHologram : 1;
bool x218_27_subtypeBasePose : 1 = false;
bool x218_28_suitArmLocked : 1 = false;
bool x218_29_drawHologram : 1 = false;
void AllocResPools(CPlayerState::EBeamId beam);
void FreeResPools();

View File

@ -13,8 +13,6 @@ CIceBeam::CIceBeam(CAssetId characterId, EWeaponType type, TUniqueId playerId, E
x21c_iceSmoke = g_SimplePool->GetObj("IceSmoke");
x228_ice2nd1 = g_SimplePool->GetObj("Ice2nd_1");
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) {

View File

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

View File

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

View File

@ -31,11 +31,11 @@ class CNewFlameThrower : public CGameProjectile {
std::unique_ptr<CParticleSwoosh> x370_swooshFireGen;
u32 x374_ = 0;
TAreaId x378_ = kInvalidAreaId;
bool x37c_24_renderAuxEffects : 1;
bool x37c_25_firing : 1;
bool x37c_26_ : 1;
bool x37c_27_ : 1;
bool x37c_28_ : 1;
bool x37c_24_renderAuxEffects : 1 = false;
bool x37c_25_firing : 1 = false;
bool x37c_26_ : 1 = false;
bool x37c_27_ : 1 = true;
bool x37c_28_ : 1 = false;
rstl::reserved_vector<std::vector<std::pair<float, u32>>, 3> x380_;
u32 x3b4_ = 0;
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()) {
x21c_phazonVeins = g_SimplePool->GetObj("PhazonVeins");
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_aaboxShaderTranslate.setAABB(x250_aaBoxTranslate);
}

View File

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

View File

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

View File

@ -8,8 +8,8 @@ namespace urde {
class CPlasmaBeam final : public CGunWeapon {
TCachedToken<CGenDescription> x21c_plasma2nd1;
std::unique_ptr<CElementGen> x228_chargeFx;
bool x22c_24_loaded : 1;
bool x22c_25_worldLighingDim : 1;
bool x22c_24_loaded : 1 = false;
bool x22c_25_worldLighingDim : 1 = false;
float x230_fireShotDelayTimer = 0.f;
float x234_fireShotDelay = 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)
, x490_innerColor(bInfo.GetInnerColor())
, x494_outerColor(bInfo.GetOuterColor())
, x548_24_(false)
, x548_25_enableEnergyPulse(true)
, x548_26_firing(false)
, x548_27_texturesLoaded(false)
, x548_28_drawOwnerFirst(growingBeam)
, x548_29_activePlayerPhazon(false) {
, x548_28_drawOwnerFirst(growingBeam) {
x4e8_texture = g_SimplePool->GetObj(SObjectTag{FOURCC('TXTR'), bInfo.GetTextureId()});
x4f4_glowTexture = g_SimplePool->GetObj(SObjectTag{FOURCC('TXTR'), bInfo.GetGlowTextureId()});
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
u16 x544_freezeSfx;
u16 x546_electricSfx;
bool x548_24_ : 1;
bool x548_25_enableEnergyPulse : 1;
bool x548_26_firing : 1;
bool x548_27_texturesLoaded : 1;
bool x548_24_ : 1 = false;
bool x548_25_enableEnergyPulse : 1 = true;
bool x548_26_firing : 1 = false;
bool x548_27_texturesLoaded : 1 = false;
bool x548_28_drawOwnerFirst : 1;
bool x548_29_activePlayerPhazon : 1;
bool x548_29_activePlayerPhazon : 1 = false;
struct RenderObjects {
CColoredStripShader m_beamStrip1;

View File

@ -131,39 +131,7 @@ CPlayerGun::CPlayerGun(TUniqueId playerId)
, x678_morph(g_tweakPlayerGun->GetGunTransformTime(), g_tweakPlayerGun->GetHoloHoldTime())
, x6c8_hologramClipCube(zeus::CVector3f(-0.29329199f, 0.f, -0.2481945f),
zeus::CVector3f(0.29329199f, 1.292392f, 0.2481945f))
, 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) {
, x6e0_rightHandModel(CAnimRes(g_tweakGunRes->xc_rightHand, 0, zeus::CVector3f(3.f), 0, true)) {
x354_bombFuseTime = g_tweakPlayerGun->GetBombFuseTime();
x358_bombDropDelayTime = g_tweakPlayerGun->GetBombDropDelayTime();
x668_aimVerticalSpeed = g_tweakPlayerGun->GetAimVerticalSpeed();

View File

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

View File

@ -12,8 +12,6 @@ CPowerBeam::CPowerBeam(CAssetId characterId, EWeaponType type, TUniqueId playerI
: CGunWeapon(characterId, type, playerId, playerMaterial, scale) {
x21c_shotSmoke = g_SimplePool->GetObj("ShotSmoke");
x228_power2nd1 = g_SimplePool->GetObj("Power2nd_1");
x244_24 = false;
x244_25_loaded = false;
}
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;
float x23c_smokeTimer = 0.f;
ESmokeState x240_smokeState = ESmokeState::Inactive;
bool x244_24 : 1;
bool x244_25_loaded : 1;
bool x244_24 : 1 = false;
bool x244_25_loaded : 1 = false;
void ReInitVariables();
public:

View File

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

View File

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

View File

@ -15,15 +15,7 @@ CProjectileWeapon::CProjectileWeapon(const TToken<CWeaponDescription>& wDesc, co
, x10_random(g_GlobalSeed)
, x14_localToWorldXf(localToWorld)
, x74_worldOffset(worldOffset)
, 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) {
, xe4_flags(flags) {
CGlobalRandom gr(x10_random);
x124_31_VMD2 = x4_weaponDesc->x10_VMD2;
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> x11c_swoosh2;
std::unique_ptr<CParticleSwoosh> x120_swoosh3;
bool x124_24_active : 1;
bool x124_25_APSO : 1;
bool x124_26_AP11 : 1;
bool x124_27_AP21 : 1;
bool x124_28_AS11 : 1;
bool x124_29_AS12 : 1;
bool x124_30_AS13 : 1;
bool x124_31_VMD2 : 1;
bool x124_24_active : 1 = true;
bool x124_25_APSO : 1 = false;
bool x124_26_AP11 : 1 = false;
bool x124_27_AP21 : 1 = false;
bool x124_28_AS11 : 1 = false;
bool x124_29_AS12 : 1 = false;
bool x124_30_AS13 : 1 = false;
bool x124_31_VMD2 : 1 = false;
public:
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");
x234_wave2nd2 = g_SimplePool->GetObj("Wave2nd_2");
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) {

View File

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

View File

@ -24,11 +24,6 @@ CWaveBuster::CWaveBuster(const TToken<CWeaponDescription>& desc, EWeaponType typ
x388_busterSwoosh2Gen = std::make_unique<CParticleSwoosh>(x360_busterSwoosh2, 0);
x38c_busterSparksGen = std::make_unique<CElementGen>(x36c_busterSparks);
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) {}

View File

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

View File

@ -5,12 +5,12 @@
namespace urde {
class CWeaponMode {
EWeaponType x0_weaponType = EWeaponType::None;
bool x4_24_charged : 1;
bool x4_25_comboed : 1;
bool x4_26_instantKill : 1;
bool x4_24_charged : 1 = false;
bool x4_25_comboed : 1 = false;
bool x4_26_instantKill : 1 = false;
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)
: x0_weaponType(type), x4_24_charged(charged), x4_25_comboed(comboed), x4_26_instantKill(instaKill) {}
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))
, x70_materialFilter(CMaterialFilter::MakeIncludeExclude({EMaterialTypes::Solid}, {0ull}))
, 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_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_29_renderParticleDBInside(true)
, xe6_30_enablePitchBend(false)
, xe6_31_targetableVisorFlags(params.GetVisorParameters().GetMask())
, xe7_27_enableRender(true)
, xe7_28_worldLightingDirty(false)
, xe7_29_drawEnabled(active)
, xe7_30_doTargetDistanceTest(true)
, xe7_31_targetable(true) {
, xe7_29_drawEnabled(active) {
x90_actorLights = mData.IsNull() ? nullptr : params.x0_lightParms.MakeActorLights();
if (mData.x10_animData || mData.x1c_normalModel)
x64_modelData = std::make_unique<CModelData>(std::move(mData));

View File

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

View File

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

View File

@ -56,8 +56,8 @@ public:
zeus::CVector3f xec_particleOffsetScale = zeus::skOne3f;
zeus::CTransform xf8_iceXf;
CActorModelParticles& x128_parent;
bool x12c_24_thermalCold : 1;
bool x12c_25_thermalHot : 1;
bool x12c_24_thermalCold : 1 = false;
bool x12c_25_thermalHot : 1 = false;
float x130_remTime = 10.f;
mutable u8 x134_lockDeps = 0;
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> x4c_thermalAssets = {};
CVisorParameters x54_visorParms;
bool x58_24_globalTimeProvider : 1;
bool x58_25_thermalHeat : 1;
bool x58_26_renderUnsorted : 1;
bool x58_27_noSortThermal : 1;
bool x58_24_globalTimeProvider : 1 = true;
bool x58_25_thermalHeat : 1 = false;
bool x58_26_renderUnsorted : 1 = false;
bool x58_27_noSortThermal : 1 = false;
float x5c_fadeInTime = 0.f;
float x60_fadeOutTime = 0.f;
float x64_thermalMag = 0.f;
public:
CActorParameters()
: x58_24_globalTimeProvider(true)
, x58_25_thermalHeat(false)
, x58_26_renderUnsorted(false)
, x58_27_noSortThermal(false) {}
CActorParameters() = default;
CActorParameters(const CLightParameters& lightParms, const CScannableParameters& scanParms,
const std::pair<CAssetId, CAssetId>& xrayAssets, const std::pair<CAssetId, CAssetId>& thermalAssets,
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)
, x2dc_defaultAnim(GetModelData()->GetAnimationData()->GetDefaultAnimation())
, x2e0_alertAnim(alertAnim)
, x2e4_impactAnim(impactAnim)
, x2e8_24_dead(false)
, x2e8_25_animating(false) {
, x2e4_impactAnim(impactAnim) {
GetModelData()->GetAnimationData()->EnableLooping(true);
}

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