mirror of https://github.com/AxioDL/metaforce.git
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:
parent
2103c38f54
commit
554893ef85
|
@ -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;
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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));
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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};
|
||||||
|
|
|
@ -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(
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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"));
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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"));
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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"));
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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"));
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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"));
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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())
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
namespace urde {
|
namespace urde {
|
||||||
|
|
||||||
CRumbleGenerator::CRumbleGenerator() {
|
CRumbleGenerator::CRumbleGenerator() {
|
||||||
xf0_24_disabled = false;
|
|
||||||
HardStopAll();
|
HardStopAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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; }
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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) {}
|
||||||
|
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
||||||
|
|
|
@ -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; }
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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};
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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()});
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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};
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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()) {
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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) {}
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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; }
|
||||||
|
|
|
@ -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));
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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
Loading…
Reference in New Issue