diff --git a/README.md b/README.md index 83b9e9846..b0e5ee022 100644 --- a/README.md +++ b/README.md @@ -21,8 +21,8 @@ Everything else is much too experimental to make portable/stable release builds * [CMake 3.10+](https://cmake.org) * [Python 3+](https://python.org) * LLVM development package *(headers and libs)* - * [Specialized Windows Package](https://axiodl.com/LLVM-6.0.0svn-win64.exe) - * [macOS Package](http://releases.llvm.org/5.0.0/clang+llvm-5.0.0-x86_64-apple-darwin.tar.xz) + * [Specialized Windows Package](https://axiodl.com/LLVM-9.0.0svn-win64.exe) + * [macOS Package](http://releases.llvm.org/7.0.0/clang+llvm-7.0.0-x86_64-apple-darwin.tar.xz) * **[Windows]** [Visual Studio 2017 and Windows SDK](https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx) * **[macOS]** [Xcode Tools](https://developer.apple.com/xcode/download/) * **[Linux]** recent development packages of `udev`, `x11`, `xcb`, `xinput`, `glx`, `asound` diff --git a/Runtime/Audio/CStaticAudioPlayer.cpp b/Runtime/Audio/CStaticAudioPlayer.cpp index 61bb440b8..f652671a5 100644 --- a/Runtime/Audio/CStaticAudioPlayer.cpp +++ b/Runtime/Audio/CStaticAudioPlayer.cpp @@ -46,7 +46,7 @@ bool CStaticAudioPlayer::IsReady() { void CStaticAudioPlayer::DecodeMonoAndMix(s16* bufOut, u32 numSamples, u32 cur, u32 loopEndCur, u32 loopStartCur, int vol, g72x_state& state, - std::experimental::optional& loopState) const { + rstl::optional& loopState) const { for (u32 remBytes = numSamples / 2; remBytes;) { u32 curBuf = cur / RSF_BUFFER_SIZE; u32 thisBytes = (curBuf + 1) * RSF_BUFFER_SIZE - cur; diff --git a/Runtime/Audio/CStaticAudioPlayer.hpp b/Runtime/Audio/CStaticAudioPlayer.hpp index 078d598e5..1acd34491 100644 --- a/Runtime/Audio/CStaticAudioPlayer.hpp +++ b/Runtime/Audio/CStaticAudioPlayer.hpp @@ -23,8 +23,8 @@ class CStaticAudioPlayer { std::vector> x48_buffers; g72x_state x58_leftState; g72x_state x8c_rightState; - std::experimental::optional m_leftStateLoop; - std::experimental::optional m_rightStateLoop; + rstl::optional m_leftStateLoop; + rstl::optional m_rightStateLoop; u32 xc0_volume = 32768; // Out of 32768 static int16_t SampClamp(int32_t val) { @@ -57,7 +57,7 @@ public: bool IsReady(); void DecodeMonoAndMix(s16* bufOut, u32 numSamples, u32 cur, u32 loopEndCur, u32 loopStartCur, int vol, - g72x_state& state, std::experimental::optional& loopState) const; + g72x_state& state, rstl::optional& loopState) const; void Decode(s16* bufOut, u32 numSamples); void SetVolume(float vol) { xc0_volume = zeus::clamp(0.f, vol, 1.f) * 32768.f; } diff --git a/Runtime/Audio/CStreamAudioManager.cpp b/Runtime/Audio/CStreamAudioManager.cpp index eb43feaad..665fc14d2 100644 --- a/Runtime/Audio/CStreamAudioManager.cpp +++ b/Runtime/Audio/CStreamAudioManager.cpp @@ -67,7 +67,7 @@ struct SDSPStream : boo::IAudioVoiceCallback { bool xe8_silent = true; u8 xec_readState = 0; // 0: NoRead 1: Read 2: ReadWrap - std::experimental::optional m_file; + rstl::optional m_file; std::shared_ptr m_readReqs[2]; void ReadBuffer(int buf) { @@ -262,7 +262,7 @@ struct SDSPStream : boo::IAudioVoiceCallback { stream.m_readReqs[j].reset(); } stream.xd4_ringBuffer.reset(); - stream.m_file = std::experimental::nullopt; + stream.m_file = rstl::nullopt; } } @@ -340,7 +340,7 @@ struct SDSPStream : boo::IAudioVoiceCallback { void StopStream() { x0_active = false; m_booVoice->stop(); - m_file = std::experimental::nullopt; + m_file = rstl::nullopt; } static bool IsStreamActive(s32 id) { diff --git a/Runtime/AutoMapper/CAutoMapper.hpp b/Runtime/AutoMapper/CAutoMapper.hpp index 4e31a9350..cbcc31380 100644 --- a/Runtime/AutoMapper/CAutoMapper.hpp +++ b/Runtime/AutoMapper/CAutoMapper.hpp @@ -172,7 +172,7 @@ private: u32 x328_ = 0; bool x32c_loadingDummyWorld = false; - std::experimental::optional m_lastMouseCoord; + rstl::optional m_lastMouseCoord; zeus::CVector2f m_mouseDelta; boo::SScrollDelta m_lastAccumScroll; boo::SScrollDelta m_mapScroll; diff --git a/Runtime/AutoMapper/CMappableObject.hpp b/Runtime/AutoMapper/CMappableObject.hpp index bc219c1fc..2504349b4 100644 --- a/Runtime/AutoMapper/CMappableObject.hpp +++ b/Runtime/AutoMapper/CMappableObject.hpp @@ -64,8 +64,8 @@ private: : m_surface(ctx, g_doorVbo, g_doorIbo) , m_outline(ctx, CLineRenderer::EPrimitiveMode::LineLoop, 5, nullptr, false, false, true) {} }; - std::experimental::optional m_doorSurface; - std::experimental::optional m_texQuadFilter; + rstl::optional m_doorSurface; + rstl::optional m_texQuadFilter; zeus::CTransform AdjustTransformForType(); std::pair GetDoorColors(int idx, const CMapWorldInfo& mwInfo, float alpha) const; diff --git a/Runtime/CMemoryCardSys.cpp b/Runtime/CMemoryCardSys.cpp index 2aa3ce533..31db22724 100644 --- a/Runtime/CMemoryCardSys.cpp +++ b/Runtime/CMemoryCardSys.cpp @@ -146,7 +146,7 @@ bool CMemoryCardSys::InitializePump() { std::sort(x20_scanStates.begin(), x20_scanStates.end(), [&](const auto& a, const auto& b) -> bool { return g_ResFactory->TranslateNewToOriginal(a.first) < g_ResFactory->TranslateNewToOriginal(b.first); }); - x1c_worldInter = std::experimental::nullopt; + x1c_worldInter = rstl::nullopt; } return false; diff --git a/Runtime/CMemoryCardSys.hpp b/Runtime/CMemoryCardSys.hpp index 5d4f38a70..8e7828b63 100644 --- a/Runtime/CMemoryCardSys.hpp +++ b/Runtime/CMemoryCardSys.hpp @@ -56,7 +56,7 @@ public: class CMemoryCardSys { TLockedToken x0_hints; std::vector> xc_memoryWorlds; /* MLVL as key */ - std::experimental::optional> x1c_worldInter; /* used to be auto_ptr of vector */ + rstl::optional> x1c_worldInter; /* used to be auto_ptr of vector */ std::vector> x20_scanStates; rstl::reserved_vector x30_scanCategoryCounts; @@ -113,7 +113,7 @@ public: std::string x18_fileName; std::string x28_comment; CAssetId x3c_bannerTex; - std::experimental::optional> x40_bannerTok; + rstl::optional> x40_bannerTok; rstl::reserved_vector x50_iconToks; std::vector xf4_saveBuffer; std::vector x104_cardBuffer; diff --git a/Runtime/CStateManager.cpp b/Runtime/CStateManager.cpp index 4f72fb852..36635d80f 100644 --- a/Runtime/CStateManager.cpp +++ b/Runtime/CStateManager.cpp @@ -1376,7 +1376,7 @@ void CStateManager::ProcessRadiusDamage(const CActor& damager, CActor& damagee, void CStateManager::ApplyRadiusDamage(const CActor& a1, const zeus::CVector3f& pos, CActor& a2, const CDamageInfo& info) { zeus::CVector3f delta = a2.GetTranslation() - pos; - std::experimental::optional bounds; + rstl::optional bounds; if (delta.magSquared() < info.GetRadius() * info.GetRadius() || ((bounds = a2.GetTouchBounds()) && CCollidableSphere::Sphere_AABox_Bool(zeus::CSphere{pos, info.GetRadius()}, *bounds))) { @@ -1426,7 +1426,7 @@ bool CStateManager::TestRayDamage(const zeus::CVector3f& pos, const CActor& dama EMaterialTypes::Occluder, EMaterialTypes::Character); static const CMaterialFilter filter(incList, exList, CMaterialFilter::EFilterType::IncludeExclude); - std::experimental::optional bounds = damagee.GetTouchBounds(); + rstl::optional bounds = damagee.GetTouchBounds(); if (!bounds) return false; @@ -1930,7 +1930,7 @@ void CStateManager::CrossTouchActors() { CActor& actor = static_cast(*ent); if (!actor.GetActive() || !actor.GetCallTouch()) continue; - std::experimental::optional touchAABB = actor.GetTouchBounds(); + rstl::optional touchAABB = actor.GetTouchBounds(); if (!touchAABB) continue; @@ -1946,7 +1946,7 @@ void CStateManager::CrossTouchActors() { if (!ent2) continue; - std::experimental::optional touchAABB2 = ent2->GetTouchBounds(); + rstl::optional touchAABB2 = ent2->GetTouchBounds(); if (!ent2->GetActive() || !touchAABB2) continue; @@ -2217,7 +2217,7 @@ void CStateManager::UpdateActorInSortedLists(CActor& act) { if (!act.GetUseInSortedLists() || !act.xe4_27_notInSortedLists) return; - std::experimental::optional aabb = CalculateObjectBounds(act); + rstl::optional aabb = CalculateObjectBounds(act); bool actorInLists = x874_sortedListManager->ActorInLists(&act); if (actorInLists || aabb) { act.xe4_27_notInSortedLists = false; @@ -2240,8 +2240,8 @@ void CStateManager::UpdateSortedLists() { UpdateActorInSortedLists(static_cast(*actor)); } -std::experimental::optional CStateManager::CalculateObjectBounds(const CActor& actor) { - std::experimental::optional bounds = actor.GetTouchBounds(); +rstl::optional CStateManager::CalculateObjectBounds(const CActor& actor) { + rstl::optional bounds = actor.GetTouchBounds(); if (bounds) { zeus::CAABox aabb; aabb.accumulateBounds(bounds->min); diff --git a/Runtime/CStateManager.hpp b/Runtime/CStateManager.hpp index 0acfc513a..808507b5f 100644 --- a/Runtime/CStateManager.hpp +++ b/Runtime/CStateManager.hpp @@ -335,7 +335,7 @@ public: const CActor*) const; void UpdateActorInSortedLists(CActor&); void UpdateSortedLists(); - std::experimental::optional CalculateObjectBounds(const CActor&); + rstl::optional CalculateObjectBounds(const CActor&); void AddObject(CEntity&); void AddObject(CEntity*); CRayCastResult RayStaticIntersection(const zeus::CVector3f& pos, const zeus::CVector3f& dir, float length, diff --git a/Runtime/Camera/CCameraFilter.cpp b/Runtime/Camera/CCameraFilter.cpp index 3b21c8a88..5a04aaec8 100644 --- a/Runtime/Camera/CCameraFilter.cpp +++ b/Runtime/Camera/CCameraFilter.cpp @@ -29,7 +29,7 @@ void CCameraFilterPass::Update(float dt) { } if (x0_curType == EFilterType::Passthru) - m_shader = std::experimental::nullopt; + m_shader = rstl::nullopt; else if (x0_curType != origType) m_shader.emplace(x0_curType, x24_texObj); } @@ -44,7 +44,7 @@ void CCameraFilterPass::SetFilter(EFilterType type, EFilterShape shape, float if (txtr.IsValid()) x24_texObj = g_SimplePool->GetObj({FOURCC('TXTR'), txtr}); if (type == EFilterType::Passthru) - m_shader = std::experimental::nullopt; + m_shader = rstl::nullopt; else if (x0_curType != type || (x20_nextTxtr != txtr && txtr.IsValid())) m_shader.emplace(type, x24_texObj); @@ -88,7 +88,7 @@ void CCameraFilterPass::SetFilter(EFilterType type, EFilterShape shape, float } if (x0_curType == EFilterType::Passthru) - m_shader = std::experimental::nullopt; + m_shader = rstl::nullopt; else if (x0_curType != origType || (x20_nextTxtr != origTxtr && x20_nextTxtr.IsValid())) m_shader.emplace(x0_curType, x24_texObj); } diff --git a/Runtime/Camera/CCameraFilter.hpp b/Runtime/Camera/CCameraFilter.hpp index f03ec53aa..acca324df 100644 --- a/Runtime/Camera/CCameraFilter.hpp +++ b/Runtime/Camera/CCameraFilter.hpp @@ -59,7 +59,7 @@ public: template class CCameraFilterPass final : public CCameraFilterPassBase { - std::experimental::optional m_shader; + rstl::optional m_shader; public: void Update(float dt); @@ -103,8 +103,8 @@ class CCameraBlurPass { // bool x2d_noPersistentCopy = false; // u32 x30_persistentBuf = 0; - mutable std::experimental::optional m_shader; - mutable std::experimental::optional m_xrayShader; + mutable rstl::optional m_shader; + mutable rstl::optional m_xrayShader; public: void Draw(bool clearDepth = false); diff --git a/Runtime/Character/CAnimData.cpp b/Runtime/Character/CAnimData.cpp index 7901eece2..9790a7cce 100644 --- a/Runtime/Character/CAnimData.cpp +++ b/Runtime/Character/CAnimData.cpp @@ -37,7 +37,7 @@ void CAnimData::InitializeCache() {} CAnimData::CAnimData(CAssetId id, const CCharacterInfo& character, int defaultAnim, int charIdx, bool loop, const TLockedToken& layout, const TToken& model, - const std::experimental::optional>& iceModel, + const rstl::optional>& iceModel, const std::weak_ptr& ctx, const std::shared_ptr& animMgr, const std::shared_ptr& transMgr, const TLockedToken& charFactory, int drawInstCount) @@ -541,14 +541,14 @@ void CAnimData::RecalcPoseBuilder(const CCharAnimTime* time) { void CAnimData::RenderAuxiliary(const zeus::CFrustum& frustum) const { x120_particleDB.AddToRendererClipped(frustum); } void CAnimData::Render(CSkinnedModel& model, const CModelFlags& drawFlags, - const std::experimental::optional& morphEffect, + const rstl::optional& morphEffect, const float* morphMagnitudes) { SetupRender(model, drawFlags, morphEffect, morphMagnitudes); DrawSkinnedModel(model, drawFlags); } void CAnimData::SetupRender(CSkinnedModel& model, const CModelFlags& drawFlags, - const std::experimental::optional& morphEffect, + const rstl::optional& morphEffect, const float* morphMagnitudes) { if (!x220_30_poseBuilt) { x2fc_poseBuilder.BuildNoScale(x224_pose); @@ -741,7 +741,7 @@ SAdvancementDeltas CAnimData::AdvanceIgnoreParticles(float dt, CRandom16& random void CAnimData::AdvanceAnim(CCharAnimTime& time, zeus::CVector3f& offset, zeus::CQuaternion& quat) { SAdvancementResults results; - std::experimental::optional> simplified; + rstl::optional> simplified; if (x104_animDir == EAnimDir::Forward) { results = x1f8_animRoot->VAdvanceView(time); @@ -798,7 +798,7 @@ void CAnimData::SetInfraModel(const TLockedToken& model, const TLockedTo } void CAnimData::PoseSkinnedModel(CSkinnedModel& model, const CPoseAsTransforms& pose, const CModelFlags& drawFlags, - const std::experimental::optional& morphEffect, + const rstl::optional& morphEffect, const float* morphMagnitudes) { model.Calculate(pose, drawFlags, morphEffect, morphMagnitudes); } diff --git a/Runtime/Character/CAnimData.hpp b/Runtime/Character/CAnimData.hpp index 54bcc82d7..3e6113956 100644 --- a/Runtime/Character/CAnimData.hpp +++ b/Runtime/Character/CAnimData.hpp @@ -146,7 +146,7 @@ private: public: CAnimData(CAssetId, const CCharacterInfo& character, int defaultAnim, int charIdx, bool loop, const TLockedToken& layout, const TToken& model, - const std::experimental::optional>& iceModel, + const rstl::optional>& iceModel, const std::weak_ptr& ctx, const std::shared_ptr& animMgr, const std::shared_ptr& transMgr, const TLockedToken& charFactory, int drawInstCount); @@ -195,9 +195,9 @@ public: void RecalcPoseBuilder(const CCharAnimTime*); void RenderAuxiliary(const zeus::CFrustum& frustum) const; void Render(CSkinnedModel& model, const CModelFlags& drawFlags, - const std::experimental::optional& morphEffect, const float* morphMagnitudes); + const rstl::optional& morphEffect, const float* morphMagnitudes); void SetupRender(CSkinnedModel& model, const CModelFlags& drawFlags, - const std::experimental::optional& morphEffect, const float* morphMagnitudes); + const rstl::optional& morphEffect, const float* morphMagnitudes); static void DrawSkinnedModel(CSkinnedModel& model, const CModelFlags& flags); void PreRender(); void BuildPose(); @@ -217,7 +217,7 @@ public: const TLockedToken& GetModelData() const { return xd8_modelData; } static void PoseSkinnedModel(CSkinnedModel& model, const CPoseAsTransforms& pose, const CModelFlags& drawFlags, - const std::experimental::optional& morphEffect, + const rstl::optional& morphEffect, const float* morphMagnitudes); void AdvanceParticles(const zeus::CTransform& xf, float dt, const zeus::CVector3f&, CStateManager& stateMgr); float GetAverageVelocity(int animIn) const; diff --git a/Runtime/Character/CAnimTreeAnimReaderContainer.cpp b/Runtime/Character/CAnimTreeAnimReaderContainer.cpp index bb1556df2..78653c099 100644 --- a/Runtime/Character/CAnimTreeAnimReaderContainer.cpp +++ b/Runtime/Character/CAnimTreeAnimReaderContainer.cpp @@ -82,7 +82,7 @@ std::unique_ptr CAnimTreeAnimReaderContainer::VClone() const { return std::make_unique(x4_name, x14_reader->Clone(), x1c_animDbIdx); } -std::experimental::optional> CAnimTreeAnimReaderContainer::VSimplified() { return {}; } +rstl::optional> CAnimTreeAnimReaderContainer::VSimplified() { return {}; } void CAnimTreeAnimReaderContainer::VSetPhase(float ph) { x14_reader->VSetPhase(ph); } diff --git a/Runtime/Character/CAnimTreeAnimReaderContainer.hpp b/Runtime/Character/CAnimTreeAnimReaderContainer.hpp index a139840a5..502f752a7 100644 --- a/Runtime/Character/CAnimTreeAnimReaderContainer.hpp +++ b/Runtime/Character/CAnimTreeAnimReaderContainer.hpp @@ -33,7 +33,7 @@ public: void VGetSegStatementSet(const CSegIdList& list, CSegStatementSet& setOut) const; void VGetSegStatementSet(const CSegIdList& list, CSegStatementSet& setOut, const CCharAnimTime& time) const; std::unique_ptr VClone() const; - std::experimental::optional> VSimplified(); + rstl::optional> VSimplified(); void VSetPhase(float); SAdvancementResults VGetAdvancementResults(const CCharAnimTime& a, const CCharAnimTime& b) const; }; diff --git a/Runtime/Character/CAnimTreeLoopIn.cpp b/Runtime/Character/CAnimTreeLoopIn.cpp index 7917588df..e84e3d0ef 100644 --- a/Runtime/Character/CAnimTreeLoopIn.cpp +++ b/Runtime/Character/CAnimTreeLoopIn.cpp @@ -31,7 +31,7 @@ CAnimTreeEffectiveContribution CAnimTreeLoopIn::VGetContributionOfHighestInfluen return x14_child->GetContributionOfHighestInfluence(); } -std::experimental::optional> CAnimTreeLoopIn::VSimplified() { +rstl::optional> CAnimTreeLoopIn::VSimplified() { CCharAnimTime remTime = x14_child->VGetTimeRemaining(); if (remTime.GreaterThanZero() && !remTime.EpsilonZero()) { auto simp = x14_child->Simplified(); diff --git a/Runtime/Character/CAnimTreeLoopIn.hpp b/Runtime/Character/CAnimTreeLoopIn.hpp index c30df4234..93c137c19 100644 --- a/Runtime/Character/CAnimTreeLoopIn.hpp +++ b/Runtime/Character/CAnimTreeLoopIn.hpp @@ -23,7 +23,7 @@ public: const CCharAnimTime& time); CAnimTreeEffectiveContribution VGetContributionOfHighestInfluence() const; bool VSupportsReverseView() const { return false; } - std::experimental::optional> VSimplified(); + rstl::optional> VSimplified(); std::shared_ptr VGetBestUnblendedChild() const; std::unique_ptr VClone() const; u32 VGetBoolPOIList(const CCharAnimTime& time, CBoolPOINode* listOut, u32 capacity, u32 iterator, u32) const; diff --git a/Runtime/Character/CAnimTreeTimeScale.cpp b/Runtime/Character/CAnimTreeTimeScale.cpp index 2e82a32e8..401a187c7 100644 --- a/Runtime/Character/CAnimTreeTimeScale.cpp +++ b/Runtime/Character/CAnimTreeTimeScale.cpp @@ -43,7 +43,7 @@ CCharAnimTime CAnimTreeTimeScale::GetRealLifeTime(const CCharAnimTime& time) con void CAnimTreeTimeScale::VSetPhase(float phase) { x14_child->VSetPhase(phase); } -std::experimental::optional> CAnimTreeTimeScale::VSimplified() { +rstl::optional> CAnimTreeTimeScale::VSimplified() { if (auto simp = x14_child->Simplified()) { CAnimTreeTimeScale* newNode = new CAnimTreeTimeScale(CAnimTreeNode::Cast(std::move(*simp)), x18_timeScale->Clone(), x28_targetAccelTime, x4_name); diff --git a/Runtime/Character/CAnimTreeTimeScale.hpp b/Runtime/Character/CAnimTreeTimeScale.hpp index 3d21d918f..850d5ff46 100644 --- a/Runtime/Character/CAnimTreeTimeScale.hpp +++ b/Runtime/Character/CAnimTreeTimeScale.hpp @@ -20,7 +20,7 @@ public: CCharAnimTime GetRealLifeTime(const CCharAnimTime&) const; void VSetPhase(float); - std::experimental::optional> VSimplified(); + rstl::optional> VSimplified(); u32 VGetBoolPOIList(const CCharAnimTime& time, CBoolPOINode* listOut, u32 capacity, u32 iterator, u32) const; u32 VGetInt32POIList(const CCharAnimTime& time, CInt32POINode* listOut, u32 capacity, u32 iterator, u32) const; diff --git a/Runtime/Character/CAnimTreeTransition.cpp b/Runtime/Character/CAnimTreeTransition.cpp index 620f314a7..a4df0ad01 100644 --- a/Runtime/Character/CAnimTreeTransition.cpp +++ b/Runtime/Character/CAnimTreeTransition.cpp @@ -52,7 +52,7 @@ std::unique_ptr CAnimTreeTransition::VClone() const { x2c_timeInTrans, x34_runA, x35_loopA, x1c_flags, x4_name, x36_initialized); } -std::experimental::optional> CAnimTreeTransition::VSimplified() { +rstl::optional> CAnimTreeTransition::VSimplified() { if (zeus::close_enough(GetBlendingWeight(), 1.f)) { if (auto simp = x18_b->Simplified()) return simp; @@ -61,7 +61,7 @@ std::experimental::optional> CAnimTreeTransition::V return CAnimTreeTweenBase::VSimplified(); } -std::experimental::optional> CAnimTreeTransition::VReverseSimplified() { +rstl::optional> CAnimTreeTransition::VReverseSimplified() { if (zeus::close_enough(GetBlendingWeight(), 0.f)) return {x14_a->Clone()}; return CAnimTreeTweenBase::VReverseSimplified(); diff --git a/Runtime/Character/CAnimTreeTransition.hpp b/Runtime/Character/CAnimTreeTransition.hpp index 2c407bf65..76143ccfd 100644 --- a/Runtime/Character/CAnimTreeTransition.hpp +++ b/Runtime/Character/CAnimTreeTransition.hpp @@ -27,8 +27,8 @@ public: CCharAnimTime VGetTimeRemaining() const; CSteadyStateAnimInfo VGetSteadyStateAnimInfo() const; std::unique_ptr VClone() const; - std::experimental::optional> VSimplified(); - std::experimental::optional> VReverseSimplified(); + rstl::optional> VSimplified(); + rstl::optional> VReverseSimplified(); SAdvancementResults VAdvanceView(const CCharAnimTime& a); void SetBlendingWeight(float w); float VGetBlendingWeight() const; diff --git a/Runtime/Character/CAnimTreeTweenBase.cpp b/Runtime/Character/CAnimTreeTweenBase.cpp index 6781c343b..aff6e8235 100644 --- a/Runtime/Character/CAnimTreeTweenBase.cpp +++ b/Runtime/Character/CAnimTreeTweenBase.cpp @@ -104,7 +104,7 @@ zeus::CQuaternion CAnimTreeTweenBase::VGetRotation(const CSegId& seg) const { return zeus::CQuaternion::slerp(qA, qB, weight); } -std::experimental::optional> CAnimTreeTweenBase::VSimplified() { +rstl::optional> CAnimTreeTweenBase::VSimplified() { if (x20_25_cullSelector == 0) { auto simpA = x14_a->Simplified(); auto simpB = x18_b->Simplified(); diff --git a/Runtime/Character/CAnimTreeTweenBase.hpp b/Runtime/Character/CAnimTreeTweenBase.hpp index cde1c5f54..8eaaa3aec 100644 --- a/Runtime/Character/CAnimTreeTweenBase.hpp +++ b/Runtime/Character/CAnimTreeTweenBase.hpp @@ -30,8 +30,8 @@ public: zeus::CVector3f VGetOffset(const CSegId& seg) const; zeus::CQuaternion VGetRotation(const CSegId& seg) const; - std::experimental::optional> VSimplified(); - virtual std::experimental::optional> VReverseSimplified() { + rstl::optional> VSimplified(); + virtual rstl::optional> VReverseSimplified() { return CAnimTreeTweenBase::VSimplified(); } diff --git a/Runtime/Character/CBoneTracking.hpp b/Runtime/Character/CBoneTracking.hpp index 7bc4c928c..deee9edcf 100644 --- a/Runtime/Character/CBoneTracking.hpp +++ b/Runtime/Character/CBoneTracking.hpp @@ -18,7 +18,7 @@ class CBoneTracking { float x18_time = 0.f; float x1c_maxTrackingAngle; float x20_angSpeed; - std::experimental::optional x24_targetPosition; + rstl::optional x24_targetPosition; TUniqueId x34_target = kInvalidUniqueId; union { struct { diff --git a/Runtime/Character/CCharacterFactory.cpp b/Runtime/Character/CCharacterFactory.cpp index 2fb282edd..ac7669d89 100644 --- a/Runtime/Character/CCharacterFactory.cpp +++ b/Runtime/Character/CCharacterFactory.cpp @@ -82,7 +82,7 @@ std::unique_ptr CCharacterFactory::CreateCharacter(int charIdx, bool TToken skinnedModel = const_cast(this)->x70_cacheResPool.GetObj( {FourCC(drawInsts << 16), charInfo.GetModelId()}, charParm); - std::experimental::optional> iceModel; + rstl::optional> iceModel; if (charInfo.GetIceModelId().IsValid() && charInfo.GetIceSkinRulesId().IsValid()) iceModel.emplace(const_cast(this)->x70_cacheResPool.GetObj( {FourCC((drawInsts << 16) | 1), charInfo.GetIceModelId()}, charParm)); diff --git a/Runtime/Character/CGroundMovement.hpp b/Runtime/Character/CGroundMovement.hpp index 96ef9c06d..6ec4e751a 100644 --- a/Runtime/Character/CGroundMovement.hpp +++ b/Runtime/Character/CGroundMovement.hpp @@ -30,12 +30,12 @@ public: float x30_wallElasticConstant; float x34_wallElasticLinear; float x38_maxPositiveVerticalVelocity; - std::experimental::optional x3c_floorPlaneNormal; + rstl::optional x3c_floorPlaneNormal; }; struct SMoveObjectResult { - std::experimental::optional x0_id; - std::experimental::optional x8_collision; + rstl::optional x0_id; + rstl::optional x8_collision; u32 x6c_processedCollisions; float x70_processedDt; }; diff --git a/Runtime/Character/CLayoutDescription.hpp b/Runtime/Character/CLayoutDescription.hpp index 75174dbe7..91592004c 100644 --- a/Runtime/Character/CLayoutDescription.hpp +++ b/Runtime/Character/CLayoutDescription.hpp @@ -12,22 +12,22 @@ public: class CScaledLayoutDescription { TLockedToken x0_layoutToken; float xc_scale; - std::experimental::optional x10_scaleVec; + rstl::optional x10_scaleVec; public: const TLockedToken& ScaledLayout() const { return x0_layoutToken; } float GlobalScale() const { return xc_scale; } - const std::experimental::optional& GetScaleVec() const { return x10_scaleVec; } + const rstl::optional& GetScaleVec() const { return x10_scaleVec; } }; private: TLockedToken x0_layoutToken; - std::experimental::optional xc_scaled; + rstl::optional xc_scaled; public: CLayoutDescription(const TLockedToken& token) : x0_layoutToken(token) {} - const std::experimental::optional& GetScaledLayoutDescription() const { return xc_scaled; } + const rstl::optional& GetScaledLayoutDescription() const { return xc_scaled; } const TLockedToken& GetCharLayoutInfo() const { return x0_layoutToken; } bool UsesScale() const { return bool(xc_scaled); } diff --git a/Runtime/Character/CParticleGenInfo.cpp b/Runtime/Character/CParticleGenInfo.cpp index 128b9a0b2..3e98e1925 100644 --- a/Runtime/Character/CParticleGenInfo.cpp +++ b/Runtime/Character/CParticleGenInfo.cpp @@ -113,7 +113,7 @@ void CParticleGenInfoGeneric::SetParticleEmission(bool emission, CStateManager& bool CParticleGenInfoGeneric::IsSystemDeletable() const { return x84_system->IsSystemDeletable(); } -std::experimental::optional CParticleGenInfoGeneric::GetBounds() const { return x84_system->GetBounds(); } +rstl::optional CParticleGenInfoGeneric::GetBounds() const { return x84_system->GetBounds(); } bool CParticleGenInfoGeneric::HasActiveParticles() const { return x84_system->GetParticleCount() != 0; } diff --git a/Runtime/Character/CParticleGenInfo.hpp b/Runtime/Character/CParticleGenInfo.hpp index 3f6d54c22..d21c309c6 100644 --- a/Runtime/Character/CParticleGenInfo.hpp +++ b/Runtime/Character/CParticleGenInfo.hpp @@ -42,7 +42,7 @@ public: virtual void SetGlobalScale(const zeus::CVector3f& scale) = 0; virtual void SetParticleEmission(bool, CStateManager& stateMgr) = 0; virtual bool IsSystemDeletable() const = 0; - virtual std::experimental::optional GetBounds() const = 0; + virtual rstl::optional GetBounds() const = 0; virtual bool HasActiveParticles() const = 0; virtual void DestroyParticles() = 0; virtual bool HasLight() const = 0; @@ -95,7 +95,7 @@ public: void SetGlobalScale(const zeus::CVector3f& scale); void SetParticleEmission(bool, CStateManager& stateMgr); bool IsSystemDeletable() const; - std::experimental::optional GetBounds() const; + rstl::optional GetBounds() const; bool HasActiveParticles() const; void DestroyParticles(); bool HasLight() const; diff --git a/Runtime/Character/IAnimReader.hpp b/Runtime/Character/IAnimReader.hpp index 51bb71edc..9b7f1ca5b 100644 --- a/Runtime/Character/IAnimReader.hpp +++ b/Runtime/Character/IAnimReader.hpp @@ -119,7 +119,7 @@ public: virtual void VGetSegStatementSet(const CSegIdList& list, CSegStatementSet& setOut, const CCharAnimTime& time) const = 0; virtual std::unique_ptr VClone() const = 0; - virtual std::experimental::optional> VSimplified() { return {}; } + virtual rstl::optional> VSimplified() { return {}; } virtual void VSetPhase(float) = 0; virtual SAdvancementResults VGetAdvancementResults(const CCharAnimTime& a, const CCharAnimTime& b) const; @@ -128,7 +128,7 @@ public: u32 GetParticlePOIList(const CCharAnimTime& time, CParticlePOINode* listOut, u32 capacity, u32 iterator, u32) const; u32 GetSoundPOIList(const CCharAnimTime& time, CSoundPOINode* listOut, u32 capacity, u32 iterator, u32) const; - std::experimental::optional> Simplified() { return VSimplified(); } + rstl::optional> Simplified() { return VSimplified(); } std::unique_ptr Clone() const { return VClone(); } }; diff --git a/Runtime/Character/IMetaAnim.hpp b/Runtime/Character/IMetaAnim.hpp index 2bda39413..2c4640bac 100644 --- a/Runtime/Character/IMetaAnim.hpp +++ b/Runtime/Character/IMetaAnim.hpp @@ -41,8 +41,8 @@ public: }; struct CMetaAnimTreeBuildOrders { - std::experimental::optional x0_recursiveAdvance; - std::experimental::optional x44_singleAdvance; + rstl::optional x0_recursiveAdvance; + rstl::optional x44_singleAdvance; static CMetaAnimTreeBuildOrders NoSpecialOrders() { return {}; } static CMetaAnimTreeBuildOrders PreAdvanceForAll(const CPreAdvanceIndicator& ind) { CMetaAnimTreeBuildOrders ret; diff --git a/Runtime/Collision/CAreaOctTree.hpp b/Runtime/Collision/CAreaOctTree.hpp index ed96743be..32735792d 100644 --- a/Runtime/Collision/CAreaOctTree.hpp +++ b/Runtime/Collision/CAreaOctTree.hpp @@ -14,7 +14,7 @@ class CAreaOctTree { public: struct SRayResult { zeus::CPlane x0_plane; - std::experimental::optional x10_surface; + rstl::optional x10_surface; float x3c_t; }; diff --git a/Runtime/Collision/CCollisionActor.cpp b/Runtime/Collision/CCollisionActor.cpp index 1d769f186..7784b638f 100644 --- a/Runtime/Collision/CCollisionActor.cpp +++ b/Runtime/Collision/CCollisionActor.cpp @@ -139,8 +139,8 @@ zeus::CTransform CCollisionActor::GetPrimitiveTransform() const { return xf; } -std::experimental::optional CCollisionActor::GetTouchBounds() const { - std::experimental::optional aabox; +rstl::optional CCollisionActor::GetTouchBounds() const { + rstl::optional aabox; if (x258_primitiveType == EPrimitiveType::OBBTreeGroup) aabox = {x27c_obbTreeGroupPrimitive->CalculateAABox(x34_transform)}; else if (x258_primitiveType == EPrimitiveType::AABox) diff --git a/Runtime/Collision/CCollisionActor.hpp b/Runtime/Collision/CCollisionActor.hpp index e72406b54..1b0acd10f 100644 --- a/Runtime/Collision/CCollisionActor.hpp +++ b/Runtime/Collision/CCollisionActor.hpp @@ -45,7 +45,7 @@ public: EWeaponCollisionResponseTypes GetCollisionResponseType(const zeus::CVector3f&, const zeus::CVector3f&, const CWeaponMode&, EProjectileAttrib) const; zeus::CTransform GetPrimitiveTransform() const; - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void SetDamageVulnerability(const CDamageVulnerability& vuln); const zeus::CVector3f& GetBoxSize() const { return x260_boxSize; } TUniqueId GetOwnerId() const { return x25c_owner; } diff --git a/Runtime/Collision/CCollisionActorManager.cpp b/Runtime/Collision/CCollisionActorManager.cpp index 064e2ff94..cde8b7a34 100644 --- a/Runtime/Collision/CCollisionActorManager.cpp +++ b/Runtime/Collision/CCollisionActorManager.cpp @@ -190,7 +190,7 @@ zeus::CTransform CCollisionActorManager::GetWRLocatorTransform(const CAnimData& return locXf; } -std::optional CCollisionActorManager::GetDeviation(const CStateManager& mgr, CSegId seg) { +rstl::optional CCollisionActorManager::GetDeviation(const CStateManager& mgr, CSegId seg) { for (const CJointCollisionDescription& desc : x0_jointDescriptions) { if (desc.GetPivotId() != seg) continue; diff --git a/Runtime/Collision/CCollisionActorManager.hpp b/Runtime/Collision/CCollisionActorManager.hpp index cccc67a5f..824eddbfd 100644 --- a/Runtime/Collision/CCollisionActorManager.hpp +++ b/Runtime/Collision/CCollisionActorManager.hpp @@ -31,7 +31,7 @@ public: void SetMovable(CStateManager& mgr, bool movable); u32 GetNumCollisionActors() const { return x0_jointDescriptions.size(); } - std::optional GetDeviation(const CStateManager&, CSegId); + rstl::optional GetDeviation(const CStateManager&, CSegId); const CJointCollisionDescription& GetCollisionDescFromIndex(u32 i) const { return x0_jointDescriptions[i]; } static zeus::CTransform GetWRLocatorTransform(const CAnimData& animData, CSegId id, const zeus::CTransform& worldXf, const zeus::CTransform& localXf); diff --git a/Runtime/Collision/CCollisionResponseData.cpp b/Runtime/Collision/CCollisionResponseData.cpp index 9f96f4362..d9c8ad89e 100644 --- a/Runtime/Collision/CCollisionResponseData.cpp +++ b/Runtime/Collision/CCollisionResponseData.cpp @@ -162,7 +162,7 @@ CCollisionResponseData::CCollisionResponseData(CInputStream& in, CSimplePool* re } } -const std::experimental::optional>& +const rstl::optional>& CCollisionResponseData::GetParticleDescription(EWeaponCollisionResponseTypes type) const { if (x0_generators[u32(type)]) return x0_generators[u32(type)]; @@ -188,7 +188,7 @@ CCollisionResponseData::GetParticleDescription(EWeaponCollisionResponseTypes typ return x0_generators[u32(type)]; } -const std::experimental::optional>& +const rstl::optional>& CCollisionResponseData::GetDecalDescription(EWeaponCollisionResponseTypes type) const { return x20_decals[u32(type)]; } diff --git a/Runtime/Collision/CCollisionResponseData.hpp b/Runtime/Collision/CCollisionResponseData.hpp index 62acf9a16..3e30499d1 100644 --- a/Runtime/Collision/CCollisionResponseData.hpp +++ b/Runtime/Collision/CCollisionResponseData.hpp @@ -112,9 +112,9 @@ enum class EWeaponCollisionResponseTypes { class CCollisionResponseData { static const EWeaponCollisionResponseTypes skWorldMaterialTable[32]; static const s32 kInvalidSFX; - std::vector>> x0_generators; + std::vector>> x0_generators; std::vector x10_sfx; - std::vector>> x20_decals; + std::vector>> x20_decals; float x30_RNGE; float x34_FOFF; @@ -126,9 +126,9 @@ class CCollisionResponseData { public: CCollisionResponseData(CInputStream& in, CSimplePool* resPool); - const std::experimental::optional>& + const rstl::optional>& GetParticleDescription(EWeaponCollisionResponseTypes) const; - const std::experimental::optional>& + const rstl::optional>& GetDecalDescription(EWeaponCollisionResponseTypes type) const; s32 GetSoundEffectId(EWeaponCollisionResponseTypes) const; static EWeaponCollisionResponseTypes GetWorldCollisionResponseType(s32); diff --git a/Runtime/Collision/CGameCollision.cpp b/Runtime/Collision/CGameCollision.cpp index 9dfd85b4f..3882bd382 100644 --- a/Runtime/Collision/CGameCollision.cpp +++ b/Runtime/Collision/CGameCollision.cpp @@ -857,7 +857,7 @@ void CGameCollision::CollisionFailsafe(const CStateManager& mgr, CAreaCollisionC } } -std::experimental::optional CGameCollision::FindNonIntersectingVector( +rstl::optional CGameCollision::FindNonIntersectingVector( const CStateManager& mgr, CAreaCollisionCache& cache, CPhysicsActor& actor, const CCollisionPrimitive& prim, const rstl::reserved_vector& nearList) { zeus::CTransform xf = actor.GetPrimitiveTransform(); diff --git a/Runtime/Collision/CGameCollision.hpp b/Runtime/Collision/CGameCollision.hpp index 2596f4b1e..3a5cdd0b1 100644 --- a/Runtime/Collision/CGameCollision.hpp +++ b/Runtime/Collision/CGameCollision.hpp @@ -112,7 +112,7 @@ public: static void CollisionFailsafe(const CStateManager& mgr, CAreaCollisionCache& cache, CPhysicsActor& actor, const CCollisionPrimitive& prim, const rstl::reserved_vector& nearList, float, u32 failsafeTicks); - static std::experimental::optional + static rstl::optional FindNonIntersectingVector(const CStateManager& mgr, CAreaCollisionCache& cache, CPhysicsActor& actor, const CCollisionPrimitive& prim, const rstl::reserved_vector& nearList); }; diff --git a/Runtime/Graphics/CBooRenderer.cpp b/Runtime/Graphics/CBooRenderer.cpp index 90279c7f4..cffcfc570 100644 --- a/Runtime/Graphics/CBooRenderer.cpp +++ b/Runtime/Graphics/CBooRenderer.cpp @@ -687,7 +687,7 @@ void CBooRenderer::EnablePVS(const CPVSVisSet& set, u32 areaIdx) { xe0_pvsAreaIdx = areaIdx; } -void CBooRenderer::DisablePVS() { xc8_pvs = std::experimental::nullopt; } +void CBooRenderer::DisablePVS() { xc8_pvs = rstl::nullopt; } void CBooRenderer::UpdateAreaUniforms(int areaIdx, bool shadowRender, bool activateLights) { SetupRendererStates(); diff --git a/Runtime/Graphics/CBooRenderer.hpp b/Runtime/Graphics/CBooRenderer.hpp index 3f8883b3a..390bee246 100644 --- a/Runtime/Graphics/CBooRenderer.hpp +++ b/Runtime/Graphics/CBooRenderer.hpp @@ -100,7 +100,7 @@ class CBooRenderer final : public IRenderer { zeus::CPlane xb0_viewPlane = {0.f, 1.f, 0.f, 0.f}; enum class EPVSMode { Mask, PVS, PVSAndMask } xc4_pvsMode = EPVSMode::Mask; - std::experimental::optional xc8_pvs; + rstl::optional xc8_pvs; u32 xe0_pvsAreaIdx = 0; // boo::ITextureS* xe4_blackTex = nullptr; @@ -142,7 +142,7 @@ class CBooRenderer final : public IRenderer { float x2f8_thermColdScale = 0.f; zeus::CColor x2fc_tevReg1Color = {1.f, 0.f, 1.f, 1.f}; CThermalColdFilter m_thermColdFilter; - std::experimental::optional m_thermHotFilter; + rstl::optional m_thermHotFilter; std::vector x300_dynamicLights; diff --git a/Runtime/Graphics/CModel.hpp b/Runtime/Graphics/CModel.hpp index ec9dd2452..cfeec2eec 100644 --- a/Runtime/Graphics/CModel.hpp +++ b/Runtime/Graphics/CModel.hpp @@ -97,7 +97,7 @@ struct SShader { std::vector> x0_textures; std::unordered_map m_shaders; MaterialSet m_matSet; - std::experimental::optional m_geomLayout; + rstl::optional m_geomLayout; int m_matSetIdx; SShader(int idx) : m_matSetIdx(idx) { x0_textures.clear(); diff --git a/Runtime/Graphics/CModelBoo.cpp b/Runtime/Graphics/CModelBoo.cpp index 07d320708..ead54e954 100644 --- a/Runtime/Graphics/CModelBoo.cpp +++ b/Runtime/Graphics/CModelBoo.cpp @@ -765,7 +765,7 @@ void CBooModel::UVAnimationBuffer::Update(u8*& bufOut, const MaterialSet* matSet return; } - std::experimental::optional> specialMtxOut; + rstl::optional> specialMtxOut; if (flags.m_extendedShader == EExtendedShader::Thermal) { /* Special Mode0 matrix for exclusive Thermal Visor use */ specialMtxOut.emplace(); diff --git a/Runtime/Graphics/CSimpleShadow.hpp b/Runtime/Graphics/CSimpleShadow.hpp index 8b212046f..6121d85fd 100644 --- a/Runtime/Graphics/CSimpleShadow.hpp +++ b/Runtime/Graphics/CSimpleShadow.hpp @@ -18,7 +18,7 @@ class CSimpleShadow { bool x48_24_collision : 1; bool x48_25_alwaysCalculateRadius : 1; bool x48_26_radiusCalculated : 1; - mutable std::experimental::optional m_filter; + mutable rstl::optional m_filter; public: CSimpleShadow(float scale, float userAlpha, float maxObjHeight, float displacement); diff --git a/Runtime/Graphics/CSkinnedModel.cpp b/Runtime/Graphics/CSkinnedModel.cpp index 96f8a722f..f3e34e1b9 100644 --- a/Runtime/Graphics/CSkinnedModel.cpp +++ b/Runtime/Graphics/CSkinnedModel.cpp @@ -23,7 +23,7 @@ CSkinnedModel::CSkinnedModel(IObjectStore& store, CAssetId model, CAssetId skinR store.GetObj(SObjectTag{FOURCC('CINF'), layoutInfo}), shaderIdx, drawInsts) {} void CSkinnedModel::Calculate(const CPoseAsTransforms& pose, const CModelFlags& drawFlags, - const std::experimental::optional& morphEffect, + const rstl::optional& morphEffect, const float* morphMagnitudes) { if (morphEffect || g_PointGenFunc) { if (boo::ObjToken vertBuf = m_modelInst->UpdateUniformData(drawFlags, nullptr, nullptr)) { diff --git a/Runtime/Graphics/CSkinnedModel.hpp b/Runtime/Graphics/CSkinnedModel.hpp index e28e57e67..9d9c7cffe 100644 --- a/Runtime/Graphics/CSkinnedModel.hpp +++ b/Runtime/Graphics/CSkinnedModel.hpp @@ -35,7 +35,7 @@ public: const TLockedToken& GetLayoutInfo() const { return x1c_layoutInfo; } void Calculate(const CPoseAsTransforms& pose, const CModelFlags& drawFlags, - const std::experimental::optional& morphEffect, const float* morphMagnitudes); + const rstl::optional& morphEffect, const float* morphMagnitudes); void Draw(const CModelFlags& drawFlags) const; typedef void (*FPointGenerator)(void* item, const std::vector>& vn); diff --git a/Runtime/Graphics/Shaders/CModelShadersHLSL.cpp b/Runtime/Graphics/Shaders/CModelShadersHLSL.cpp index 4f2ffd745..a2b4475a1 100644 --- a/Runtime/Graphics/Shaders/CModelShadersHLSL.cpp +++ b/Runtime/Graphics/Shaders/CModelShadersHLSL.cpp @@ -204,11 +204,11 @@ static std::string_view DisintegratePostHLSL = FOG_STRUCT_HLSL " float4 addColor;\n" " Fog fog;\n" "};\n" - "float4 DisintegratePostFunc(float4 colorIn)\n" + "static float4 DisintegratePostFunc(in VertToFrag vtf, float4 colorIn)\n" "{\n" " float4 texel0 = extTex7.Sample(samp, vtf.extTcgs[0]);\n" " float4 texel1 = extTex7.Sample(samp, vtf.extTcgs[1]);\n" - " colorIn = mix(float4(0.0), texel1, texel0);\n" + " colorIn = lerp(float4(0.0,0.0,0.0,0.0), texel1, texel0);\n" " colorIn.rgb += addColor.rgb;\n" FOG_ALGORITHM_HLSL "}\n" "\n"sv; diff --git a/Runtime/Graphics/Shaders/CWorldShadowShader.hpp b/Runtime/Graphics/Shaders/CWorldShadowShader.hpp index d5dd67d54..a9e3c54ca 100644 --- a/Runtime/Graphics/Shaders/CWorldShadowShader.hpp +++ b/Runtime/Graphics/Shaders/CWorldShadowShader.hpp @@ -7,7 +7,7 @@ namespace urde { class CWorldShadowShader { boo::ObjToken m_tex; - std::experimental::optional m_prevQuad; + rstl::optional m_prevQuad; u32 m_w, m_h; struct Uniform { diff --git a/Runtime/GuiSys/CAuiImagePane.hpp b/Runtime/GuiSys/CAuiImagePane.hpp index ccbdebf7d..fe822bf38 100644 --- a/Runtime/GuiSys/CAuiImagePane.hpp +++ b/Runtime/GuiSys/CAuiImagePane.hpp @@ -30,7 +30,7 @@ class CAuiImagePane : public CGuiWidget { CTexturedQuadFilterAlpha m_addQuad[2]; Filters(TLockedToken& tex); }; - std::experimental::optional m_filters; + rstl::optional m_filters; void DoDrawImagePane(const zeus::CColor& color, const CTexture& tex, int frame, float blurAmt, bool noBlur, CTexturedQuadFilterAlpha& quad) const; diff --git a/Runtime/GuiSys/CCompoundTargetReticle.hpp b/Runtime/GuiSys/CCompoundTargetReticle.hpp index 5ba95df1e..20bb881e5 100644 --- a/Runtime/GuiSys/CCompoundTargetReticle.hpp +++ b/Runtime/GuiSys/CCompoundTargetReticle.hpp @@ -137,8 +137,8 @@ private: u32 x228_; struct SScanReticuleRenderer { - std::experimental::optional m_lineRenderers[2]; - std::experimental::optional m_stripRenderers[2][4]; + rstl::optional m_lineRenderers[2]; + rstl::optional m_stripRenderers[2][4]; SScanReticuleRenderer(); }; mutable SScanReticuleRenderer m_scanRetRenderer; diff --git a/Runtime/GuiSys/CGuiTextSupport.cpp b/Runtime/GuiSys/CGuiTextSupport.cpp index 8efecf166..6dac20a21 100644 --- a/Runtime/GuiSys/CGuiTextSupport.cpp +++ b/Runtime/GuiSys/CGuiTextSupport.cpp @@ -126,7 +126,7 @@ void CGuiTextSupport::Update(float dt) { } void CGuiTextSupport::ClearRenderBuffer() { - x60_renderBuf = std::experimental::nullopt; + x60_renderBuf = rstl::nullopt; x2ec_renderBufferPages.clear(); } diff --git a/Runtime/GuiSys/CGuiTextSupport.hpp b/Runtime/GuiSys/CGuiTextSupport.hpp index 0b34b1a06..0f163fce7 100644 --- a/Runtime/GuiSys/CGuiTextSupport.hpp +++ b/Runtime/GuiSys/CGuiTextSupport.hpp @@ -71,7 +71,7 @@ class CGuiTextSupport { float x58_chRate = 10.0f; CAssetId x5c_fontId; CGuiWidget::EGuiModelDrawFlags m_drawFlags; - std::experimental::optional x60_renderBuf; + rstl::optional x60_renderBuf; std::vector x2bc_assets; TLockedToken x2cc_font; std::pair x2dc_oneBufBounds; diff --git a/Runtime/GuiSys/CGuiWidget.hpp b/Runtime/GuiSys/CGuiWidget.hpp index b27b3ee74..ac4e86486 100644 --- a/Runtime/GuiSys/CGuiWidget.hpp +++ b/Runtime/GuiSys/CGuiWidget.hpp @@ -71,7 +71,7 @@ protected: bool xb7_25_ : 1; bool m_mouseActive : 1; - std::experimental::optional m_lastScroll; + rstl::optional m_lastScroll; boo::SScrollDelta m_integerScroll; public: diff --git a/Runtime/GuiSys/CScanDisplay.cpp b/Runtime/GuiSys/CScanDisplay.cpp index ebf97cd9e..d6c2cdb26 100644 --- a/Runtime/GuiSys/CScanDisplay.cpp +++ b/Runtime/GuiSys/CScanDisplay.cpp @@ -391,7 +391,7 @@ void CScanDisplay::Update(float dt, float scanningTime) { if (!active) { xc_state = EScanState::Inactive; x10_objId = kInvalidUniqueId; - x14_scannableInfo = std::experimental::nullopt; + x14_scannableInfo = rstl::nullopt; xa8_message->TextSupport().SetText(u""); xac_scrollMessage->TextSupport().SetText(u""); xa4_textGroup->SetVisibility(false, ETraversalMode::Children); diff --git a/Runtime/GuiSys/CScanDisplay.hpp b/Runtime/GuiSys/CScanDisplay.hpp index 120ebf508..05555659c 100644 --- a/Runtime/GuiSys/CScanDisplay.hpp +++ b/Runtime/GuiSys/CScanDisplay.hpp @@ -56,7 +56,7 @@ private: TLockedToken x0_dataDot; EScanState xc_state = EScanState::Inactive; TUniqueId x10_objId = kInvalidUniqueId; - std::experimental::optional x14_scannableInfo; + rstl::optional x14_scannableInfo; const CGuiFrame& xa0_selHud; CGuiWidget* xa4_textGroup = nullptr; CGuiTextPane* xa8_message = nullptr; diff --git a/Runtime/Input/CFinalInput.hpp b/Runtime/Input/CFinalInput.hpp index 1b7a70480..5ca623a3a 100644 --- a/Runtime/Input/CFinalInput.hpp +++ b/Runtime/Input/CFinalInput.hpp @@ -59,7 +59,7 @@ struct CFinalInput { bool x2e_b30_PDPLeft : 1; bool x2e_b31_PStart : 1; - std::experimental::optional m_kbm; + rstl::optional m_kbm; bool m_PCharKeys[256] = {}; bool m_PSpecialKeys[26] = {}; @@ -163,7 +163,7 @@ struct CFinalInput { bool ASpecialKey(boo::ESpecialKey k) const { return DSpecialKey(k) ? 1.f : 0.f; } bool AMouseButton(boo::EMouseButton k) const { return DMouseButton(k) ? 1.f : 0.f; } - const std::experimental::optional& GetKBM() const { return m_kbm; } + const rstl::optional& GetKBM() const { return m_kbm; } }; } // namespace urde diff --git a/Runtime/MP1/CFaceplateDecoration.cpp b/Runtime/MP1/CFaceplateDecoration.cpp index a5d1a6dd3..853d4c76d 100644 --- a/Runtime/MP1/CFaceplateDecoration.cpp +++ b/Runtime/MP1/CFaceplateDecoration.cpp @@ -16,13 +16,13 @@ void CFaceplateDecoration::Update(float dt, CStateManager& stateMgr) { x4_tex.Unlock(); x0_id = txtrId; if (m_texFilter) - m_texFilter = std::experimental::nullopt; + m_texFilter = rstl::nullopt; } } if (x0_id != txtrId && txtrId.IsValid()) { if (m_texFilter) - m_texFilter = std::experimental::nullopt; + m_texFilter = rstl::nullopt; x0_id = txtrId; x4_tex = g_SimplePool->GetObj(SObjectTag{FOURCC('TXTR'), txtrId}); xc_ready = true; diff --git a/Runtime/MP1/CFaceplateDecoration.hpp b/Runtime/MP1/CFaceplateDecoration.hpp index a41d13018..4b8d01d8c 100644 --- a/Runtime/MP1/CFaceplateDecoration.hpp +++ b/Runtime/MP1/CFaceplateDecoration.hpp @@ -12,7 +12,7 @@ class CFaceplateDecoration { CAssetId x0_id; TToken x4_tex; bool xc_ready = false; - std::experimental::optional m_texFilter; + rstl::optional m_texFilter; public: CFaceplateDecoration(CStateManager& stateMgr); diff --git a/Runtime/MP1/CFrontEndUI.hpp b/Runtime/MP1/CFrontEndUI.hpp index 8d6d3e597..697d15cd4 100644 --- a/Runtime/MP1/CFrontEndUI.hpp +++ b/Runtime/MP1/CFrontEndUI.hpp @@ -349,7 +349,7 @@ private: CStaticAudioPlayer* xf4_curAudio = nullptr; CColoredQuadFilter m_fadeToBlack = {EFilterType::Blend}; - std::experimental::optional m_pressStartQuad; + rstl::optional m_pressStartQuad; std::unique_ptr m_touchBar; diff --git a/Runtime/MP1/CInGameGuiManager.hpp b/Runtime/MP1/CInGameGuiManager.hpp index 94e2e6969..b63b9caa6 100644 --- a/Runtime/MP1/CInGameGuiManager.hpp +++ b/Runtime/MP1/CInGameGuiManager.hpp @@ -78,7 +78,7 @@ private: SOnScreenTex x1c4_onScreenTex; float x1d8_onScreenTexAlpha = 0.f; TLockedToken x1dc_onScreenTexTok; // Used to be heap-allocated - std::experimental::optional m_onScreenQuad; + rstl::optional m_onScreenQuad; EHelmetVisMode x1e0_helmetVisMode; bool x1e4_enableTargetingManager; bool x1e8_enableAutoMapper; @@ -86,8 +86,8 @@ private: u32 x1f0_enablePlayerVisor; float x1f4_visorStaticAlpha; - std::experimental::optional m_deathRenderTexQuad; - std::experimental::optional m_deathDotQuad; + rstl::optional m_deathRenderTexQuad; + rstl::optional m_deathDotQuad; CRandomStaticFilter m_randomStatic = {EFilterType::Blend}; CColoredQuadFilter m_deathWhiteout = {EFilterType::Blend}; CColoredQuadFilter m_deathBlackout = {EFilterType::Blend}; diff --git a/Runtime/MP1/CQuitGameScreen.hpp b/Runtime/MP1/CQuitGameScreen.hpp index 49d4a463e..bbfc5eaaa 100644 --- a/Runtime/MP1/CQuitGameScreen.hpp +++ b/Runtime/MP1/CQuitGameScreen.hpp @@ -23,7 +23,7 @@ class CQuitGameScreen { CGuiFrame* x10_loadedFrame = nullptr; CGuiTableGroup* x14_tablegroup_quitgame = nullptr; EQuitAction x18_action = EQuitAction::None; - std::experimental::optional m_blackScreen; + rstl::optional m_blackScreen; void SetColors(); public: diff --git a/Runtime/MP1/CSamusDoll.hpp b/Runtime/MP1/CSamusDoll.hpp index 1a39bc5b3..12b964058 100644 --- a/Runtime/MP1/CSamusDoll.hpp +++ b/Runtime/MP1/CSamusDoll.hpp @@ -37,10 +37,10 @@ class CSamusDoll { zeus::CQuaternion xb0_userRot; float xc0_userZoom = -3.6f; float xc4_viewInterp = 0.f; - std::experimental::optional xc8_suitModel0; + rstl::optional xc8_suitModel0; rstl::reserved_vector, 2> x118_suitModel1and2; - std::experimental::optional x134_suitModelBoots; - std::experimental::optional x184_ballModelData; + rstl::optional x134_suitModelBoots; + rstl::optional x184_ballModelData; TLockedToken x1d4_spiderBallGlass; u32 x1e0_ballMatIdx; u32 x1e4_glassMatIdx; diff --git a/Runtime/MP1/CSamusHud.cpp b/Runtime/MP1/CSamusHud.cpp index f6e1e5ab3..bf67500cc 100644 --- a/Runtime/MP1/CSamusHud.cpp +++ b/Runtime/MP1/CSamusHud.cpp @@ -516,7 +516,7 @@ void CSamusHud::UpdateThreatAssessment(float dt, const CStateManager& mgr) { CPlayer& player = mgr.GetPlayer(); zeus::CAABox playerAABB = zeus::CAABox::skNullBox; - if (std::experimental::optional aabb = player.GetTouchBounds()) + if (rstl::optional aabb = player.GetTouchBounds()) playerAABB = *aabb; zeus::CAABox aabb; @@ -533,7 +533,7 @@ void CSamusHud::UpdateThreatAssessment(float dt, const CStateManager& mgr) { continue; if (trigger->GetDamageInfo().GetDamage() == 0.f) continue; - if (std::experimental::optional aabb = trigger->GetTouchBounds()) { + if (rstl::optional aabb = trigger->GetTouchBounds()) { float dist = playerAABB.distanceBetween(*aabb); if (dist < threatDist) threatDist = dist; diff --git a/Runtime/MP1/CSlideShow.hpp b/Runtime/MP1/CSlideShow.hpp index ffdde950b..6da02872a 100644 --- a/Runtime/MP1/CSlideShow.hpp +++ b/Runtime/MP1/CSlideShow.hpp @@ -19,7 +19,7 @@ public: u32 x4_ = -1; u32 x8_ = -1; - std::experimental::optional m_texQuad; + rstl::optional m_texQuad; zeus::CVector2f x18_vpOffset; zeus::CVector2f x20_vpSize; zeus::CVector2f x28_canvasSize; diff --git a/Runtime/MP1/CTweaks.cpp b/Runtime/MP1/CTweaks.cpp index ae5e1212a..0c8b7abb9 100644 --- a/Runtime/MP1/CTweaks.cpp +++ b/Runtime/MP1/CTweaks.cpp @@ -27,7 +27,7 @@ namespace MP1 { static logvisor::Module Log("MP1::CTweaks"); void CTweaks::RegisterTweaks(hecl::CVarManager* cvarMgr) { - std::experimental::optional strm; + rstl::optional strm; const SObjectTag* tag; /* Particle */ @@ -110,7 +110,7 @@ void CTweaks::RegisterTweaks(hecl::CVarManager* cvarMgr) { } void CTweaks::RegisterResourceTweaks(hecl::CVarManager* cvarMgr) { - std::experimental::optional strm; + rstl::optional strm; const SObjectTag* tag = g_ResFactory->GetResourceIdByName("GunRes"); strm.emplace(g_ResFactory->LoadResourceSync(*tag).release(), g_ResFactory->ResourceSize(*tag), true); diff --git a/Runtime/MP1/MP1.cpp b/Runtime/MP1/MP1.cpp index a51ec5721..185581c3c 100644 --- a/Runtime/MP1/MP1.cpp +++ b/Runtime/MP1/MP1.cpp @@ -683,7 +683,7 @@ void CMain::Init(const hecl::Runtime::FileStoreManager& storeMgr, hecl::CVarMana if (layerStr[0] == _SYS_STR('0') || layerStr[0] == _SYS_STR('1')) for (const auto* cur = layerStr; *cur != _SYS_STR('\0'); ++cur) if (*cur == _SYS_STR('1')) - m_warpLayerBits |= 1 << (cur - layerStr); + m_warpLayerBits |= u64(1) << (cur - layerStr); } SetFlowState(EFlowState::StateSetter); diff --git a/Runtime/MP1/World/CBeetle.cpp b/Runtime/MP1/World/CBeetle.cpp index bfd0cdbca..e0c702562 100644 --- a/Runtime/MP1/World/CBeetle.cpp +++ b/Runtime/MP1/World/CBeetle.cpp @@ -18,15 +18,15 @@ CBeetle::CBeetle(TUniqueId uid, std::string_view name, const CEntityInfo& info, const CDamageVulnerability& platingVuln, const zeus::CVector3f& tailAimReference, float initialAttackDelay, float retreatTime, float f3, const CDamageVulnerability& tailVuln, const CActorParameters& aParams, - const std::experimental::optional& tailModel) + const rstl::optional& tailModel) : CPatterned(ECharacter::Beetle, uid, name, flavor, info, xf, std::move(mData), pInfo, EMovementType::Ground, EColliderType::One, EBodyType::BiPedal, aParams, EKnockBackVariant(flavor)) , x56c_entranceType(entranceType) , x574_tailAimReference(tailAimReference) , x580_f3(f3) , x584_touchDamage(touchDamage) -, x5ac_tailModel(tailModel ? std::experimental::optional(CModelData(*tailModel)) : - std::experimental::optional()) +, x5ac_tailModel(tailModel ? rstl::optional(CModelData(*tailModel)) : + rstl::optional()) , x5fc_pathFindSearch(nullptr, 1, pInfo.GetPathfindingIndex(), 1.f, 1.f) , x744_platingVuln(platingVuln) , x7ac_tailVuln(tailVuln) diff --git a/Runtime/MP1/World/CBeetle.hpp b/Runtime/MP1/World/CBeetle.hpp index 7ed515354..1abcea296 100644 --- a/Runtime/MP1/World/CBeetle.hpp +++ b/Runtime/MP1/World/CBeetle.hpp @@ -21,7 +21,7 @@ private: float x5a0_headbuttDist = FLT_MAX; float x5a4_jumpBackwardDist = FLT_MAX; float x5a8_animTimeRem = 0.f; - std::experimental::optional x5ac_tailModel; + rstl::optional x5ac_tailModel; CPathFindSearch x5fc_pathFindSearch; rstl::reserved_vector x6e0_retreatPoints; CDamageVulnerability x744_platingVuln; @@ -57,7 +57,7 @@ public: const CDamageVulnerability& platingVuln, const zeus::CVector3f& tailAimReference, float initialAttackDelay, float retreatTime, float f3, const CDamageVulnerability& tailVuln, const CActorParameters& aParams, - const std::experimental::optional& tailModel); + const rstl::optional& tailModel); void Accept(IVisitor& visitor); void Think(float dt, CStateManager& mgr); diff --git a/Runtime/MP1/World/CMetroid.hpp b/Runtime/MP1/World/CMetroid.hpp index 269c6db29..291ff3ab6 100644 --- a/Runtime/MP1/World/CMetroid.hpp +++ b/Runtime/MP1/World/CMetroid.hpp @@ -14,10 +14,10 @@ class CMetroidData { float xdc_; float xe0_; float xe4_; - std::experimental::optional xe8_animParms1; - std::experimental::optional xf8_animParms2; - std::experimental::optional x108_animParms3; - std::experimental::optional x118_animParms4; + rstl::optional xe8_animParms1; + rstl::optional xf8_animParms2; + rstl::optional x108_animParms3; + rstl::optional x118_animParms4; bool x128_24_ : 1; public: diff --git a/Runtime/MP1/World/CMetroidPrimeProjectile.cpp b/Runtime/MP1/World/CMetroidPrimeProjectile.cpp index ad55303cf..329bdb7cc 100644 --- a/Runtime/MP1/World/CMetroidPrimeProjectile.cpp +++ b/Runtime/MP1/World/CMetroidPrimeProjectile.cpp @@ -22,7 +22,7 @@ CMetroidPrimeProjectile::CMetroidPrimeProjectile( bool active, const TToken& desc, EWeaponType type, const zeus::CTransform& xf, EMaterialTypes materials, const CDamageInfo& damage, TUniqueId uid, TAreaId aid, TUniqueId owner, const SPrimeProjectileInfo& auxData, TUniqueId homingTarget, EProjectileAttrib attribs, - const zeus::CVector3f& scale, const std::experimental::optional>& visorParticle, + const zeus::CVector3f& scale, const rstl::optional>& visorParticle, u16 visorSfx, bool sendCollideMsg) : CEnergyProjectile(active, desc, type, xf, materials, damage, uid, aid, owner, homingTarget, attribs, false, scale, visorParticle, visorSfx, sendCollideMsg) diff --git a/Runtime/MP1/World/CMetroidPrimeProjectile.hpp b/Runtime/MP1/World/CMetroidPrimeProjectile.hpp index 5add58fe5..d41799acc 100644 --- a/Runtime/MP1/World/CMetroidPrimeProjectile.hpp +++ b/Runtime/MP1/World/CMetroidPrimeProjectile.hpp @@ -27,7 +27,7 @@ public: const zeus::CTransform& xf, EMaterialTypes materials, const CDamageInfo& damage, TUniqueId uid, TAreaId aid, TUniqueId owner, const SPrimeProjectileInfo& auxData, TUniqueId homingTarget, EProjectileAttrib attribs, const zeus::CVector3f& scale, - const std::experimental::optional>& visorParticle, u16 visorSfx, + const rstl::optional>& visorParticle, u16 visorSfx, bool sendCollideMsg); }; diff --git a/Runtime/MP1/World/CNewIntroBoss.hpp b/Runtime/MP1/World/CNewIntroBoss.hpp index 4dab6b3be..1ca68bcec 100644 --- a/Runtime/MP1/World/CNewIntroBoss.hpp +++ b/Runtime/MP1/World/CNewIntroBoss.hpp @@ -63,7 +63,7 @@ public: return zeus::CAABox({-0.5f, -0.5f, box.min.z()}, {0.5f, 0.5f, box.max.z()}).getTransformedAABox(x34_transform); } - std::experimental::optional GetTouchBounds() const { return {}; } + rstl::optional GetTouchBounds() const { return {}; } void DoUserAnimEvent(CStateManager&, const CInt32POINode&, EUserEventType, float dt); void Generate(CStateManager&, EStateMsg, float); void Attack(CStateManager&, EStateMsg, float); diff --git a/Runtime/MP1/World/CPuddleToadGamma.cpp b/Runtime/MP1/World/CPuddleToadGamma.cpp index 1b8339f88..d12f2d744 100644 --- a/Runtime/MP1/World/CPuddleToadGamma.cpp +++ b/Runtime/MP1/World/CPuddleToadGamma.cpp @@ -83,7 +83,7 @@ void CPuddleToadGamma::Think(float dt, CStateManager& mgr) { x56c_ += dt; } -std::experimental::optional CPuddleToadGamma::GetTouchBounds() const { +rstl::optional CPuddleToadGamma::GetTouchBounds() const { if (!GetActive()) return {}; diff --git a/Runtime/MP1/World/CPuddleToadGamma.hpp b/Runtime/MP1/World/CPuddleToadGamma.hpp index 6ee28593c..9665f6b3f 100644 --- a/Runtime/MP1/World/CPuddleToadGamma.hpp +++ b/Runtime/MP1/World/CPuddleToadGamma.hpp @@ -46,7 +46,7 @@ public: void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&); void Think(float dt, CStateManager& mgr); void DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type, float dt); - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; const CDamageVulnerability* GetDamageVulnerability(const zeus::CVector3f&, const zeus::CVector3f&, const CDamageInfo&) const; diff --git a/Runtime/MP1/World/CPuffer.cpp b/Runtime/MP1/World/CPuffer.cpp index b5fd6a236..527750fde 100644 --- a/Runtime/MP1/World/CPuffer.cpp +++ b/Runtime/MP1/World/CPuffer.cpp @@ -69,7 +69,7 @@ void CPuffer::Think(float dt, CStateManager& mgr) { } } -std::experimental::optional CPuffer::GetTouchBounds() const { +rstl::optional CPuffer::GetTouchBounds() const { auto touchBounds = CPatterned::GetTouchBounds(); if (touchBounds) { touchBounds->accumulateBounds(touchBounds->min - 0.5f); diff --git a/Runtime/MP1/World/CPuffer.hpp b/Runtime/MP1/World/CPuffer.hpp index dbacaa30f..c61f03723 100644 --- a/Runtime/MP1/World/CPuffer.hpp +++ b/Runtime/MP1/World/CPuffer.hpp @@ -31,7 +31,7 @@ public: void Accept(IVisitor&); void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&); void Think(float, CStateManager&); - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void Touch(CActor&, CStateManager&); void Death(CStateManager&, zeus::CVector3f&, EScriptObjectState); }; diff --git a/Runtime/MP1/World/CSeedling.cpp b/Runtime/MP1/World/CSeedling.cpp index 36ad28caf..55e75b19c 100644 --- a/Runtime/MP1/World/CSeedling.cpp +++ b/Runtime/MP1/World/CSeedling.cpp @@ -124,7 +124,7 @@ void CSeedling::DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, E CPatterned::DoUserAnimEvent(mgr, node, type, dt); } -std::experimental::optional CSeedling::GetTouchBounds() const { +rstl::optional CSeedling::GetTouchBounds() const { return x704_modelBounds.getTransformedAABox(GetTransform()); } diff --git a/Runtime/MP1/World/CSeedling.hpp b/Runtime/MP1/World/CSeedling.hpp index b3b5f5a0c..864d77a29 100644 --- a/Runtime/MP1/World/CSeedling.hpp +++ b/Runtime/MP1/World/CSeedling.hpp @@ -30,7 +30,7 @@ public: void Render(const CStateManager&) const; void DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type, float dt); CProjectileInfo* GetProjectileInfo() { return &x6c0_projectileInfo; } - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void Touch(CActor&, CStateManager&); CPathFindSearch* GetSearchPath() { return &x5d8_searchPath; } void Patrol(CStateManager&, EStateMsg, float); diff --git a/Runtime/MP1/World/CWarWasp.cpp b/Runtime/MP1/World/CWarWasp.cpp index ac58d2c49..710ff9390 100644 --- a/Runtime/MP1/World/CWarWasp.cpp +++ b/Runtime/MP1/World/CWarWasp.cpp @@ -118,7 +118,7 @@ void CWarWasp::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStat } } -std::experimental::optional CWarWasp::GetTouchBounds() const { +rstl::optional CWarWasp::GetTouchBounds() const { return {x570_cSphere.CalculateAABox(GetTransform())}; } diff --git a/Runtime/MP1/World/CWarWasp.hpp b/Runtime/MP1/World/CWarWasp.hpp index baf131d52..9ffe9fdb4 100644 --- a/Runtime/MP1/World/CWarWasp.hpp +++ b/Runtime/MP1/World/CWarWasp.hpp @@ -78,7 +78,7 @@ public: void Think(float dt, CStateManager& mgr); void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr); - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type, float dt); const CCollisionPrimitive* GetCollisionPrimitive() const; void Death(CStateManager& mgr, const zeus::CVector3f& direction, EScriptObjectState state); diff --git a/Runtime/Particle/CDecalManager.cpp b/Runtime/Particle/CDecalManager.cpp index c391312b7..c25815b82 100644 --- a/Runtime/Particle/CDecalManager.cpp +++ b/Runtime/Particle/CDecalManager.cpp @@ -21,7 +21,7 @@ void CDecalManager::Initialize() { m_DecalPool.clear(); for (int i = 0; i < 64; ++i) - m_DecalPool.emplace_back(std::experimental::optional{}, 0, i - 1, false); + m_DecalPool.emplace_back(rstl::optional{}, 0, i - 1, false); m_FreeIndex = 63; m_PoolInitialized = true; @@ -39,7 +39,7 @@ void CDecalManager::Reinitialize() { m_DecalPool.clear(); for (int i = 0; i < 64; ++i) - m_DecalPool.emplace_back(std::experimental::optional{}, 0, i - 1, false); + m_DecalPool.emplace_back(rstl::optional{}, 0, i - 1, false); m_ActiveIndexList.clear(); diff --git a/Runtime/Particle/CDecalManager.hpp b/Runtime/Particle/CDecalManager.hpp index 724d1df9d..d7a752ea1 100644 --- a/Runtime/Particle/CDecalManager.hpp +++ b/Runtime/Particle/CDecalManager.hpp @@ -12,11 +12,11 @@ class CStateManager; class CDecalManager { struct SDecal { - std::experimental::optional x0_decal; + rstl::optional x0_decal; TAreaId x70_areaId; s8 x74_index; bool x75_24_notIce : 1; - SDecal(const std::experimental::optional& decal, TAreaId aid, s8 idx, bool notIce) + SDecal(const rstl::optional& decal, TAreaId aid, s8 idx, bool notIce) : x0_decal(decal), x70_areaId(aid), x74_index(idx) { x75_24_notIce = notIce; } diff --git a/Runtime/Particle/CElementGen.cpp b/Runtime/Particle/CElementGen.cpp index c7d72fcef..4f3fdcf1f 100644 --- a/Runtime/Particle/CElementGen.cpp +++ b/Runtime/Particle/CElementGen.cpp @@ -1846,9 +1846,9 @@ bool CElementGen::IsSystemDeletable() const { return false; } -std::experimental::optional CElementGen::GetBounds() const { +rstl::optional CElementGen::GetBounds() const { if (GetParticleCountAll() == 0) - return std::experimental::nullopt; + return rstl::nullopt; else return {x2f0_systemBounds}; } diff --git a/Runtime/Particle/CElementGen.hpp b/Runtime/Particle/CElementGen.hpp index 591d86633..6273d7657 100644 --- a/Runtime/Particle/CElementGen.hpp +++ b/Runtime/Particle/CElementGen.hpp @@ -211,7 +211,7 @@ public: const zeus::CColor& GetModulationColor() const; float GetGeneratorRate() const { return x98_generatorRate; } bool IsSystemDeletable() const; - std::experimental::optional GetBounds() const; + rstl::optional GetBounds() const; u32 GetParticleCount() const; bool SystemHasLight() const; CLight GetLight() const; diff --git a/Runtime/Particle/CParticleElectric.cpp b/Runtime/Particle/CParticleElectric.cpp index 994dda5e8..3da1c6ba4 100644 --- a/Runtime/Particle/CParticleElectric.cpp +++ b/Runtime/Particle/CParticleElectric.cpp @@ -684,7 +684,7 @@ bool CParticleElectric::IsSystemDeletable() const { return true; } -std::experimental::optional CParticleElectric::GetBounds() const { +rstl::optional CParticleElectric::GetBounds() const { if (GetParticleCount() <= 0) return {}; else diff --git a/Runtime/Particle/CParticleElectric.hpp b/Runtime/Particle/CParticleElectric.hpp index 9a8e25c37..ff098ce9f 100644 --- a/Runtime/Particle/CParticleElectric.hpp +++ b/Runtime/Particle/CParticleElectric.hpp @@ -59,10 +59,10 @@ private: int x158 = 0; float x15c_genRem = 0.f; zeus::CAABox x160_systemBounds = zeus::CAABox::skInvertedBox; - std::experimental::optional x178_overrideIPos; - std::experimental::optional x188_overrideIVel; - std::experimental::optional x198_overrideFPos; - std::experimental::optional x1a8_overrideFVel; + rstl::optional x178_overrideIPos; + rstl::optional x188_overrideIVel; + rstl::optional x198_overrideFPos; + rstl::optional x1a8_overrideFVel; zeus::CColor x1b8_moduColor; rstl::reserved_vector x1bc_allocated; rstl::reserved_vector, 32> x1e0_swooshGenerators; @@ -126,7 +126,7 @@ public: const zeus::CVector3f& GetGlobalScale() const; const zeus::CColor& GetModulationColor() const; bool IsSystemDeletable() const; - std::experimental::optional GetBounds() const; + rstl::optional GetBounds() const; u32 GetParticleCount() const; bool SystemHasLight() const; CLight GetLight() const; diff --git a/Runtime/Particle/CParticleGen.hpp b/Runtime/Particle/CParticleGen.hpp index 35e17295f..934d70932 100644 --- a/Runtime/Particle/CParticleGen.hpp +++ b/Runtime/Particle/CParticleGen.hpp @@ -49,7 +49,7 @@ public: virtual const zeus::CColor& GetModulationColor() const = 0; virtual float GetGeneratorRate() const { return 1.f; } virtual bool IsSystemDeletable() const = 0; - virtual std::experimental::optional GetBounds() const = 0; + virtual rstl::optional GetBounds() const = 0; virtual u32 GetParticleCount() const = 0; virtual bool SystemHasLight() const = 0; virtual CLight GetLight() const = 0; diff --git a/Runtime/Particle/CParticleSwoosh.cpp b/Runtime/Particle/CParticleSwoosh.cpp index f52968006..75abf93ad 100644 --- a/Runtime/Particle/CParticleSwoosh.cpp +++ b/Runtime/Particle/CParticleSwoosh.cpp @@ -987,7 +987,7 @@ bool CParticleSwoosh::IsSystemDeletable() const { return true; } -std::experimental::optional CParticleSwoosh::GetBounds() const { +rstl::optional CParticleSwoosh::GetBounds() const { if (GetParticleCount() <= 1) { zeus::CVector3f trans = x38_translation + xa4_globalTranslation; return zeus::CAABox(trans, trans); diff --git a/Runtime/Particle/CParticleSwoosh.hpp b/Runtime/Particle/CParticleSwoosh.hpp index 290cb8b51..9f60ab05d 100644 --- a/Runtime/Particle/CParticleSwoosh.hpp +++ b/Runtime/Particle/CParticleSwoosh.hpp @@ -150,7 +150,7 @@ public: const zeus::CVector3f& GetGlobalScale() const; const zeus::CColor& GetModulationColor() const; bool IsSystemDeletable() const; - std::experimental::optional GetBounds() const; + rstl::optional GetBounds() const; u32 GetParticleCount() const; bool SystemHasLight() const; CLight GetLight() const; diff --git a/Runtime/RetroTypes.hpp b/Runtime/RetroTypes.hpp index 6ba1c1386..f16ddf26c 100644 --- a/Runtime/RetroTypes.hpp +++ b/Runtime/RetroTypes.hpp @@ -134,14 +134,14 @@ public: } } - std::experimental::optional GetAverage() const { + rstl::optional GetAverage() const { if (this->empty()) return {}; return {urde::GetAverage(this->data(), this->size())}; } - std::experimental::optional GetEntry(int i) const { + rstl::optional GetEntry(int i) const { if (i >= this->size()) return {}; return this->operator[](i); diff --git a/Runtime/Weapon/CBeamProjectile.cpp b/Runtime/Weapon/CBeamProjectile.cpp index daaea245e..58b4da4f5 100644 --- a/Runtime/Weapon/CBeamProjectile.cpp +++ b/Runtime/Weapon/CBeamProjectile.cpp @@ -23,7 +23,7 @@ CBeamProjectile::CBeamProjectile(const TToken& wDesc, std::s x400_pointCache.resize(8); } -std::experimental::optional CBeamProjectile::GetTouchBounds() const { +rstl::optional CBeamProjectile::GetTouchBounds() const { if (!GetActive()) return {}; if (x464_25_enableTouchDamage) { diff --git a/Runtime/Weapon/CBeamProjectile.hpp b/Runtime/Weapon/CBeamProjectile.hpp index a9a1d1399..467fb1d96 100644 --- a/Runtime/Weapon/CBeamProjectile.hpp +++ b/Runtime/Weapon/CBeamProjectile.hpp @@ -54,7 +54,7 @@ public: s32 GetIntMaxLength() const { return x2e8_intMaxLength; } TUniqueId GetCollisionActorId() const { return x2fe_collisionActorId; } - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void CalculateRenderBounds(); virtual void ResetBeam(CStateManager&, bool); virtual void UpdateFx(const zeus::CTransform&, float, CStateManager&); diff --git a/Runtime/Weapon/CBomb.cpp b/Runtime/Weapon/CBomb.cpp index 80d6873a2..ad23e18db 100644 --- a/Runtime/Weapon/CBomb.cpp +++ b/Runtime/Weapon/CBomb.cpp @@ -130,7 +130,7 @@ void CBomb::Touch(CActor&, urde::CStateManager&) { #endif } -std::experimental::optional CBomb::GetTouchBounds() const { +rstl::optional CBomb::GetTouchBounds() const { float radius = (x190_24_isNotDetonated ? 0.2f : x12c_curDamageInfo.GetRadius()); float minX = (x170_prevLocation.x() >= GetTranslation().x() ? x170_prevLocation.x() : GetTranslation().x()) - radius; float minY = (x170_prevLocation.y() >= GetTranslation().y() ? x170_prevLocation.y() : GetTranslation().y()) - radius; diff --git a/Runtime/Weapon/CBomb.hpp b/Runtime/Weapon/CBomb.hpp index 962fa050b..6ce9e7481 100644 --- a/Runtime/Weapon/CBomb.hpp +++ b/Runtime/Weapon/CBomb.hpp @@ -32,7 +32,7 @@ public: void Touch(CActor&, CStateManager&); void Explode(const zeus::CVector3f&, CStateManager&); void UpdateLight(float, CStateManager&); - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; }; } // namespace urde diff --git a/Runtime/Weapon/CEnergyProjectile.cpp b/Runtime/Weapon/CEnergyProjectile.cpp index 9d8be2320..41cd229ca 100644 --- a/Runtime/Weapon/CEnergyProjectile.cpp +++ b/Runtime/Weapon/CEnergyProjectile.cpp @@ -18,7 +18,7 @@ CEnergyProjectile::CEnergyProjectile(bool active, const TToken>& visorParticle, + const rstl::optional>& visorParticle, u16 visorSfx, bool sendCollideMsg) : CGameProjectile(active, desc, "GameProjectile", type, xf, excludeMat, damage, uid, aid, owner, homingTarget, attribs, underwater, scale, visorParticle, visorSfx, sendCollideMsg) diff --git a/Runtime/Weapon/CEnergyProjectile.hpp b/Runtime/Weapon/CEnergyProjectile.hpp index a6e034456..5efb97b9a 100644 --- a/Runtime/Weapon/CEnergyProjectile.hpp +++ b/Runtime/Weapon/CEnergyProjectile.hpp @@ -26,7 +26,7 @@ public: CEnergyProjectile(bool active, const TToken& desc, EWeaponType type, const zeus::CTransform& xf, EMaterialTypes excludeMat, const CDamageInfo& damage, TUniqueId uid, TAreaId aid, TUniqueId owner, TUniqueId homingTarget, EProjectileAttrib attribs, bool underwater, const zeus::CVector3f& scale, - const std::experimental::optional>& visorParticle, u16 visorSfx, + const rstl::optional>& visorParticle, u16 visorSfx, bool sendCollideMsg); void SetCameraShake(const CCameraShakeData& data) { x2fc_camShake = data; diff --git a/Runtime/Weapon/CGameProjectile.cpp b/Runtime/Weapon/CGameProjectile.cpp index 16278f7db..aefbe52cb 100644 --- a/Runtime/Weapon/CGameProjectile.cpp +++ b/Runtime/Weapon/CGameProjectile.cpp @@ -17,7 +17,7 @@ CGameProjectile::CGameProjectile(bool active, const TToken& const CDamageInfo& dInfo, TUniqueId uid, TAreaId aid, TUniqueId owner, TUniqueId homingTarget, EProjectileAttrib attribs, bool underwater, const zeus::CVector3f& scale, - const std::experimental::optional>& visorParticle, + const rstl::optional>& visorParticle, u16 visorSfx, bool sendCollideMsg) : CWeapon(uid, aid, active, owner, wType, name, xf, CMaterialFilter::MakeIncludeExclude( @@ -49,7 +49,7 @@ void CGameProjectile::ResolveCollisionWithActor(const CRayCastResult& res, CActo if (zeus::radToDeg(std::acos( mgr.GetCameraManager()->GetCurrentCameraTransform(mgr).basis[1].normalized().dot(revDir))) <= 45.f) { /* Hit us head on! Draw Billboard! */ - std::experimental::optional> bb = {*x158_visorParticle}; + rstl::optional> bb = {*x158_visorParticle}; CHUDBillboardEffect* effect = new CHUDBillboardEffect( bb, {}, mgr.AllocateUniqueId(), true, "VisorAcid", CHUDBillboardEffect::GetNearClipDistance(mgr), CHUDBillboardEffect::GetScaleForPOV(mgr), zeus::CColor::skWhite, zeus::CVector3f::skOne, @@ -423,7 +423,7 @@ zeus::CAABox CGameProjectile::GetProjectileBounds() const { std::max(x298_previousPos.z(), GetTranslation().z()) + x2a4_projExtent}}; } -std::experimental::optional CGameProjectile::GetTouchBounds() const { +rstl::optional CGameProjectile::GetTouchBounds() const { if (x2e4_24_active) return {GetProjectileBounds()}; return {}; diff --git a/Runtime/Weapon/CGameProjectile.hpp b/Runtime/Weapon/CGameProjectile.hpp index ca336781c..46b7e43d9 100644 --- a/Runtime/Weapon/CGameProjectile.hpp +++ b/Runtime/Weapon/CGameProjectile.hpp @@ -15,10 +15,10 @@ class CWeaponDescription; class CProjectileTouchResult { TUniqueId x0_id; - std::experimental::optional x4_result; + rstl::optional x4_result; public: - CProjectileTouchResult(TUniqueId id, const std::experimental::optional& result) + CProjectileTouchResult(TUniqueId id, const rstl::optional& result) : x0_id(id), x4_result(result) {} TUniqueId GetActorId() const { return x0_id; } bool HasRayCastResult() const { return x4_result.operator bool(); } @@ -27,7 +27,7 @@ public: class CGameProjectile : public CWeapon { protected: - std::experimental::optional> x158_visorParticle; + rstl::optional> x158_visorParticle; u16 x168_visorSfx; CProjectileWeapon x170_projectile; zeus::CVector3f x298_previousPos; @@ -58,7 +58,7 @@ public: const zeus::CTransform& xf, EMaterialTypes excludeMat, const CDamageInfo& dInfo, TUniqueId uid, TAreaId aid, TUniqueId owner, TUniqueId homingTarget, EProjectileAttrib attribs, bool underwater, const zeus::CVector3f& scale, - const std::experimental::optional>& visorParticle, u16 visorSfx, + const rstl::optional>& visorParticle, u16 visorSfx, bool sendCollideMsg); virtual void Accept(IVisitor& visitor); @@ -81,7 +81,7 @@ public: CProjectileTouchResult CanCollideWithGameObject(CActor& act, CStateManager& mgr); CProjectileTouchResult CanCollideWithTrigger(CActor& act, CStateManager& mgr); zeus::CAABox GetProjectileBounds() const; - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; TUniqueId GetHomingTargetId() const { return x2c0_homingTargetId; } zeus::CVector3f GetPreviousPos() const { return x298_previousPos; } }; diff --git a/Runtime/Weapon/CGrappleArm.cpp b/Runtime/Weapon/CGrappleArm.cpp index 420047a66..94206b87c 100644 --- a/Runtime/Weapon/CGrappleArm.cpp +++ b/Runtime/Weapon/CGrappleArm.cpp @@ -75,7 +75,7 @@ void CGrappleArm::BuildSuitDependencyList() { void CGrappleArm::LoadAnimations() { NWeaponTypes::get_token_vector(*x0_grappleArmModel->GetAnimationData(), 0, 42, x18c_anims, true); - x0_grappleArmModel = std::experimental::nullopt; + x0_grappleArmModel = rstl::nullopt; } void CGrappleArm::AsyncLoadSuit(CStateManager& mgr) { @@ -83,7 +83,7 @@ void CGrappleArm::AsyncLoadSuit(CStateManager& mgr) { if (suit == x3a8_loadedSuit) return; - x0_grappleArmModel = std::experimental::nullopt; + x0_grappleArmModel = rstl::nullopt; x3b2_29_suitLoading = true; if (x3a8_loadedSuit != CPlayerState::EPlayerSuit::Invalid) { NWeaponTypes::unlock_tokens(x19c_suitDeps[int(x3a8_loadedSuit)]); @@ -438,7 +438,7 @@ void CGrappleArm::Update(float grappleSwingT, float dt, CStateManager& mgr) { BuildXRayModel(); } else { if (x50_grappleArmSkeletonModel) - x50_grappleArmSkeletonModel = std::experimental::nullopt; + x50_grappleArmSkeletonModel = rstl::nullopt; } float speed = 1.f; diff --git a/Runtime/Weapon/CGrappleArm.hpp b/Runtime/Weapon/CGrappleArm.hpp index 5fafe00ab..28322ed07 100644 --- a/Runtime/Weapon/CGrappleArm.hpp +++ b/Runtime/Weapon/CGrappleArm.hpp @@ -30,8 +30,8 @@ public: }; private: - std::experimental::optional x0_grappleArmModel; - std::experimental::optional x50_grappleArmSkeletonModel; + rstl::optional x0_grappleArmModel; + rstl::optional x50_grappleArmSkeletonModel; CModelData xa0_grappleGearModel; CModelData xec_grapNoz1Model; CModelData x138_grapNoz2Model; diff --git a/Runtime/Weapon/CGunWeapon.cpp b/Runtime/Weapon/CGunWeapon.cpp index 2e309b1b0..03161aec6 100644 --- a/Runtime/Weapon/CGunWeapon.cpp +++ b/Runtime/Weapon/CGunWeapon.cpp @@ -94,7 +94,7 @@ void CGunWeapon::BuildDependencyList(CPlayerState::EBeamId beam) { void CGunWeapon::AsyncLoadSuitArm(CStateManager& mgr) { - xb0_suitArmModelData = std::experimental::nullopt; + xb0_suitArmModelData = rstl::nullopt; x13c_armCharacter = g_SimplePool->GetObj(skSuitArmNames[int(NWeaponTypes::get_current_suit(mgr))]); x13c_armCharacter.Lock(); x218_28_suitArmLocked = true; @@ -450,9 +450,9 @@ void CGunWeapon::Unload(CStateManager& mgr) { UnlockTokens(); x210_loadFlags = 0; x204_frozenEffect = EFrozenFxType::None; - x10_solidModelData = std::experimental::nullopt; - x60_holoModelData = std::experimental::nullopt; - xb0_suitArmModelData = std::experimental::nullopt; + x10_solidModelData = rstl::nullopt; + x60_holoModelData = rstl::nullopt; + xb0_suitArmModelData = rstl::nullopt; x100_gunController.reset(); x1bc_rainSplashGenerator = nullptr; x1b8_frozenGenerator.reset(); diff --git a/Runtime/Weapon/CGunWeapon.hpp b/Runtime/Weapon/CGunWeapon.hpp index 0752c127b..8e97315c1 100644 --- a/Runtime/Weapon/CGunWeapon.hpp +++ b/Runtime/Weapon/CGunWeapon.hpp @@ -50,9 +50,9 @@ public: protected: static const s32 skShootAnim[2]; zeus::CVector3f x4_scale; - std::experimental::optional x10_solidModelData; - std::experimental::optional x60_holoModelData; - std::experimental::optional xb0_suitArmModelData; + rstl::optional x10_solidModelData; + rstl::optional x60_holoModelData; + rstl::optional xb0_suitArmModelData; std::unique_ptr x100_gunController; TToken x104_gunCharacter; std::vector x10c_anims; diff --git a/Runtime/Weapon/CPlasmaProjectile.cpp b/Runtime/Weapon/CPlasmaProjectile.cpp index d3547da27..dd3da43b1 100644 --- a/Runtime/Weapon/CPlasmaProjectile.cpp +++ b/Runtime/Weapon/CPlasmaProjectile.cpp @@ -280,8 +280,8 @@ void CPlasmaProjectile::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId send CGameProjectile::AcceptScriptMsg(msg, sender, mgr); } -void CPlasmaProjectile::MakeBillboardEffect(const std::experimental::optional>& particle, - const std::experimental::optional>& electric, +void CPlasmaProjectile::MakeBillboardEffect(const rstl::optional>& particle, + const rstl::optional>& electric, std::string_view name, CStateManager& mgr) { auto* effect = new CHUDBillboardEffect(particle, electric, mgr.AllocateUniqueId(), true, name, CHUDBillboardEffect::GetNearClipDistance(mgr), diff --git a/Runtime/Weapon/CPlasmaProjectile.hpp b/Runtime/Weapon/CPlasmaProjectile.hpp index 087e969e2..6e6637b0e 100644 --- a/Runtime/Weapon/CPlasmaProjectile.hpp +++ b/Runtime/Weapon/CPlasmaProjectile.hpp @@ -83,7 +83,7 @@ private: boo::ObjToken tex, boo::ObjToken glowTex); }; - mutable std::optional m_renderObjs; + mutable rstl::optional m_renderObjs; void SetLightsActive(bool active, CStateManager& mgr); void CreatePlasmaLights(u32 sourceId, const CLight& l, CStateManager& mgr); @@ -94,8 +94,8 @@ private: void RenderBeam(s32 subdivs, float width, const zeus::CColor& color, s32 flags, CColoredStripShader& shader) const; float UpdateBeamState(float dt, CStateManager& mgr); - void MakeBillboardEffect(const std::experimental::optional>& particle, - const std::experimental::optional>& electric, + void MakeBillboardEffect(const rstl::optional>& particle, + const rstl::optional>& electric, std::string_view name, CStateManager& mgr); void UpdatePlayerEffects(float dt, CStateManager& mgr); public: diff --git a/Runtime/Weapon/CPowerBomb.hpp b/Runtime/Weapon/CPowerBomb.hpp index 9125661ee..02f4912f5 100644 --- a/Runtime/Weapon/CPowerBomb.hpp +++ b/Runtime/Weapon/CPowerBomb.hpp @@ -25,7 +25,7 @@ public: void Think(float, CStateManager&); void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const; void Render(const CStateManager&) const {} - std::experimental::optional GetTouchBounds() const { return {}; } + rstl::optional GetTouchBounds() const { return {}; } void Touch(CActor&, CStateManager&) { /*x158_24_canStartFilter; */ } float GetCurTime() const { return x15c_curTime; } diff --git a/Runtime/Weapon/CProjectileWeapon.cpp b/Runtime/Weapon/CProjectileWeapon.cpp index a95394e91..21c4e95f0 100644 --- a/Runtime/Weapon/CProjectileWeapon.cpp +++ b/Runtime/Weapon/CProjectileWeapon.cpp @@ -76,7 +76,7 @@ zeus::CVector3f CProjectileWeapon::GetTranslation() const { return x14_localToWorldXf * (x44_localXf * x8c_projOffset + x80_localOffset) + x74_worldOffset; } -std::experimental::optional CProjectileWeapon::GetBounds() const { +rstl::optional CProjectileWeapon::GetBounds() const { zeus::CAABox aabb; bool ret = false; @@ -132,7 +132,7 @@ float CProjectileWeapon::GetAudibleRange() const { return x4_weaponDesc->x94_COLR.m_res->GetAudibleRange(); } -std::experimental::optional> +rstl::optional> CProjectileWeapon::GetDecalForCollision(EWeaponCollisionResponseTypes type) const { if (!x4_weaponDesc->x94_COLR) return {}; @@ -145,7 +145,7 @@ s32 CProjectileWeapon::GetSoundIdForCollision(EWeaponCollisionResponseTypes type return x4_weaponDesc->x94_COLR.m_res->GetSoundEffectId(type); } -std::experimental::optional> CProjectileWeapon::CollisionOccured( +rstl::optional> CProjectileWeapon::CollisionOccured( EWeaponCollisionResponseTypes type, bool deflected, bool useTarget, const zeus::CVector3f& pos, const zeus::CVector3f& normal, const zeus::CVector3f& target) { x80_localOffset = x14_localToWorldXf.transposeRotate(pos - x74_worldOffset) - x8c_projOffset; diff --git a/Runtime/Weapon/CProjectileWeapon.hpp b/Runtime/Weapon/CProjectileWeapon.hpp index 43d57a838..e8c865713 100644 --- a/Runtime/Weapon/CProjectileWeapon.hpp +++ b/Runtime/Weapon/CProjectileWeapon.hpp @@ -42,7 +42,7 @@ class CProjectileWeapon { std::unique_ptr xfc_APSMGen; std::unique_ptr x100_APS2Gen; std::unique_ptr x104_; - std::experimental::optional> x108_model; + rstl::optional> x108_model; std::unique_ptr x118_swoosh1; std::unique_ptr x11c_swoosh2; std::unique_ptr x120_swoosh3; @@ -65,16 +65,16 @@ public: const zeus::CTransform& orient, const zeus::CVector3f& scale, s32); virtual ~CProjectileWeapon() = default; bool IsProjectileActive() const { return x124_24_active; } - std::experimental::optional GetBounds() const; + rstl::optional GetBounds() const; const zeus::CVector3f& GetVelocity() const { return xb0_velocity; } void SetVelocity(const zeus::CVector3f& vel) { xb0_velocity = vel; } float GetMaxTurnRate() const { return xe0_maxTurnRate; } float GetAudibleFallOff() const; float GetAudibleRange() const; - std::experimental::optional> + rstl::optional> GetDecalForCollision(EWeaponCollisionResponseTypes type) const; s32 GetSoundIdForCollision(EWeaponCollisionResponseTypes type) const; - std::experimental::optional> CollisionOccured(EWeaponCollisionResponseTypes type, + rstl::optional> CollisionOccured(EWeaponCollisionResponseTypes type, bool deflected, bool useTarget, const zeus::CVector3f& pos, const zeus::CVector3f& normal, diff --git a/Runtime/Weapon/CTargetableProjectile.cpp b/Runtime/Weapon/CTargetableProjectile.cpp index e8850b951..59e61e4ae 100644 --- a/Runtime/Weapon/CTargetableProjectile.cpp +++ b/Runtime/Weapon/CTargetableProjectile.cpp @@ -6,7 +6,7 @@ CTargetableProjectile::CTargetableProjectile( const TToken& desc, EWeaponType type, const zeus::CTransform& xf, EMaterialTypes materials, const CDamageInfo& damage, const CDamageInfo& damage2, TUniqueId uid, TAreaId aid, TUniqueId owner, TUniqueId homingTarget, EProjectileAttrib attribs, - const std::experimental::optional>& visorParticle, u16 visorSfx, bool sendCollideMsg) + const rstl::optional>& visorParticle, u16 visorSfx, bool sendCollideMsg) : CEnergyProjectile(true, desc, type, xf, materials, damage, uid, aid, owner, homingTarget, attribs | EProjectileAttrib::BigProjectile | EProjectileAttrib::PartialCharge | EProjectileAttrib::PlasmaProjectile, diff --git a/Runtime/Weapon/CTargetableProjectile.hpp b/Runtime/Weapon/CTargetableProjectile.hpp index e709f5503..2b549c400 100644 --- a/Runtime/Weapon/CTargetableProjectile.hpp +++ b/Runtime/Weapon/CTargetableProjectile.hpp @@ -11,7 +11,7 @@ public: CTargetableProjectile(const TToken& desc, EWeaponType type, const zeus::CTransform& xf, EMaterialTypes materials, const CDamageInfo& damage, const CDamageInfo& damage2, TUniqueId uid, TAreaId aid, TUniqueId owner, TUniqueId homingTarget, EProjectileAttrib attribs, - const std::experimental::optional>& visorParticle, u16 visorSfx, + const rstl::optional>& visorParticle, u16 visorSfx, bool sendCollideMsg); }; diff --git a/Runtime/World/CActor.cpp b/Runtime/World/CActor.cpp index 39c741afb..d944d42f0 100644 --- a/Runtime/World/CActor.cpp +++ b/Runtime/World/CActor.cpp @@ -301,7 +301,7 @@ const CDamageVulnerability* CActor::GetDamageVulnerability(const zeus::CVector3f return GetDamageVulnerability(); } -std::experimental::optional CActor::GetTouchBounds() const { return {}; } +rstl::optional CActor::GetTouchBounds() const { return {}; } void CActor::Touch(CActor&, CStateManager&) {} diff --git a/Runtime/World/CActor.hpp b/Runtime/World/CActor.hpp index c40c19a52..0d4a27839 100644 --- a/Runtime/World/CActor.hpp +++ b/Runtime/World/CActor.hpp @@ -111,7 +111,7 @@ public: virtual const CDamageVulnerability* GetDamageVulnerability() const; virtual const CDamageVulnerability* GetDamageVulnerability(const zeus::CVector3f&, const zeus::CVector3f&, const CDamageInfo&) const; - virtual std::experimental::optional GetTouchBounds() const; + virtual rstl::optional GetTouchBounds() const; virtual void Touch(CActor&, CStateManager&); virtual zeus::CVector3f GetOrbitPosition(const CStateManager&) const; virtual zeus::CVector3f GetAimPosition(const CStateManager&, float) const; diff --git a/Runtime/World/CAmbientAI.cpp b/Runtime/World/CAmbientAI.cpp index d2ab31e1c..a39e35718 100644 --- a/Runtime/World/CAmbientAI.cpp +++ b/Runtime/World/CAmbientAI.cpp @@ -122,7 +122,7 @@ void CAmbientAI::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CState CPhysicsActor::AcceptScriptMsg(msg, uid, mgr); } -std::experimental::optional CAmbientAI::GetTouchBounds() const { +rstl::optional CAmbientAI::GetTouchBounds() const { if (GetActive()) return {GetBoundingBox()}; return {}; diff --git a/Runtime/World/CAmbientAI.hpp b/Runtime/World/CAmbientAI.hpp index cdff8c74a..184552043 100644 --- a/Runtime/World/CAmbientAI.hpp +++ b/Runtime/World/CAmbientAI.hpp @@ -34,7 +34,7 @@ public: void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&); CHealthInfo* HealthInfo(CStateManager&) { return &x260_healthInfo; } const CDamageVulnerability* GetDamageVulnerability() const { return &x268_dVuln; } - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void Touch(CActor&, CStateManager&) {} void RandomizePlaybackRate(CStateManager&); }; diff --git a/Runtime/World/CFire.hpp b/Runtime/World/CFire.hpp index ffd816971..7a958ba20 100644 --- a/Runtime/World/CFire.hpp +++ b/Runtime/World/CFire.hpp @@ -10,7 +10,7 @@ class CFire : public CActor { TUniqueId xec_ownerId; CDamageInfo xf0_damageInfo; CDamageInfo x10c_damageInfo; - std::experimental::optional x128_; + rstl::optional x128_; float x144_; bool x148_24_ : 1; bool x148_25_ : 1; @@ -31,7 +31,7 @@ public: void Accept(IVisitor&); void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&); void Think(float, CStateManager&); - std::experimental::optional GetTouchBounds() const { + rstl::optional GetTouchBounds() const { if (GetActive()) return x128_; diff --git a/Runtime/World/CFluidPlane.hpp b/Runtime/World/CFluidPlane.hpp index 3676c1e55..4e0533011 100644 --- a/Runtime/World/CFluidPlane.hpp +++ b/Runtime/World/CFluidPlane.hpp @@ -122,7 +122,7 @@ protected: mutable std::vector m_verts; mutable std::vector m_pVerts; - mutable std::experimental::optional m_shader; + mutable rstl::optional m_shader; float ProjectRippleVelocity(float baseI, float velDot) const; float CalculateRippleIntensity(float baseI) const; @@ -153,7 +153,7 @@ public: virtual void Render(const CStateManager& mgr, float alpha, const zeus::CAABox& aabb, const zeus::CTransform& xf, const zeus::CTransform& areaXf, bool noNormals, const zeus::CFrustum& frustum, - const std::experimental::optional& rippleManager, TUniqueId waterId, + const rstl::optional& rippleManager, TUniqueId waterId, const bool* gridFlags, u32 gridDimX, u32 gridDimY, const zeus::CVector3f& areaCenter) const {} float GetAlpha() const { return x40_alpha; } diff --git a/Runtime/World/CFluidPlaneCPU.cpp b/Runtime/World/CFluidPlaneCPU.cpp index 4e25de38d..278fad524 100644 --- a/Runtime/World/CFluidPlaneCPU.cpp +++ b/Runtime/World/CFluidPlaneCPU.cpp @@ -705,7 +705,7 @@ void CFluidPlaneCPU::UpdatePatchWithNormals(CFluidPlaneRender::SHFieldSample (&h bool CFluidPlaneCPU::UpdatePatch(float time, const CFluidPlaneRender::SPatchInfo& info, CFluidPlaneRender::SHFieldSample (&heights)[46][46], u8 (&flags)[9][9], const zeus::CVector3f& areaCenter, - const std::experimental::optional& rippleManager, int fromX, int toX, + const rstl::optional& rippleManager, int fromX, int toX, int fromY, int toY) const { rstl::reserved_vector rippleInfos; if (rippleManager) { @@ -743,7 +743,7 @@ static u8 lc_flags[9][9] = {}; void CFluidPlaneCPU::Render(const CStateManager& mgr, float alpha, const zeus::CAABox& aabb, const zeus::CTransform& xf, const zeus::CTransform& areaXf, bool noNormals, const zeus::CFrustum& frustum, - const std::experimental::optional& rippleManager, TUniqueId waterId, + const rstl::optional& rippleManager, TUniqueId waterId, const bool* gridFlags, u32 gridDimX, u32 gridDimY, const zeus::CVector3f& areaCenter) const { TCastToConstPtr water = mgr.GetObjectById(waterId); diff --git a/Runtime/World/CFluidPlaneCPU.hpp b/Runtime/World/CFluidPlaneCPU.hpp index ecf28a20f..bb99f6fbc 100644 --- a/Runtime/World/CFluidPlaneCPU.hpp +++ b/Runtime/World/CFluidPlaneCPU.hpp @@ -75,7 +75,7 @@ protected: const CFluidPlaneRender::SPatchInfo& info); bool UpdatePatch(float time, const CFluidPlaneRender::SPatchInfo& info, CFluidPlaneRender::SHFieldSample (&heights)[46][46], u8 (&flags)[9][9], - const zeus::CVector3f& areaCenter, const std::experimental::optional& rippleManager, + const zeus::CVector3f& areaCenter, const rstl::optional& rippleManager, int fromX, int toX, int fromY, int toY) const; public: @@ -94,7 +94,7 @@ public: const CScriptWater* water) const; void Render(const CStateManager& mgr, float alpha, const zeus::CAABox& aabb, const zeus::CTransform& xf, const zeus::CTransform& areaXf, bool noNormals, const zeus::CFrustum& frustum, - const std::experimental::optional& rippleManager, TUniqueId waterId, + const rstl::optional& rippleManager, TUniqueId waterId, const bool* gridFlags, u32 gridDimX, u32 gridDimY, const zeus::CVector3f& areaCenter) const; float GetReflectionBlend() const { return x114_reflectionBlend; } float GetSpecularMax() const { return x110_specularMax; } diff --git a/Runtime/World/CFluidPlaneDoor.cpp b/Runtime/World/CFluidPlaneDoor.cpp index 3abfa296b..824a70e22 100644 --- a/Runtime/World/CFluidPlaneDoor.cpp +++ b/Runtime/World/CFluidPlaneDoor.cpp @@ -59,7 +59,7 @@ static u8 lc_flags[9][9] = {}; void CFluidPlaneDoor::Render(const CStateManager& mgr, float alpha, const zeus::CAABox& aabb, const zeus::CTransform& xf, const zeus::CTransform& areaXf, bool noNormals, const zeus::CFrustum& frustum, - const std::experimental::optional& rippleManager, TUniqueId waterId, + const rstl::optional& rippleManager, TUniqueId waterId, const bool* gridFlags, u32 gridDimX, u32 gridDimY, const zeus::CVector3f& areaCenter) const { CFluidPlaneShader::RenderSetupInfo setupInfo = RenderSetup(mgr, alpha, xf, aabb, noNormals); diff --git a/Runtime/World/CFluidPlaneDoor.hpp b/Runtime/World/CFluidPlaneDoor.hpp index 47bac0061..29b2f0abf 100644 --- a/Runtime/World/CFluidPlaneDoor.hpp +++ b/Runtime/World/CFluidPlaneDoor.hpp @@ -23,7 +23,7 @@ public: void Render(const CStateManager& mgr, float alpha, const zeus::CAABox& aabb, const zeus::CTransform& xf, const zeus::CTransform& areaXf, bool noNormals, const zeus::CFrustum& frustum, - const std::experimental::optional& rippleManager, TUniqueId waterId, + const rstl::optional& rippleManager, TUniqueId waterId, const bool* gridFlags, u32 gridDimX, u32 gridDimY, const zeus::CVector3f& areaCenter) const; }; diff --git a/Runtime/World/CGameArea.hpp b/Runtime/World/CGameArea.hpp index 6c5efe9fe..00c223146 100644 --- a/Runtime/World/CGameArea.hpp +++ b/Runtime/World/CGameArea.hpp @@ -192,7 +192,7 @@ public: struct CPostConstructed { std::unique_ptr x0_collision; u32 x8_collisionSize = 0; - std::experimental::optional xc_octTree; + rstl::optional xc_octTree; std::vector x4c_insts; SShader m_materialSet = {0}; // std::unique_ptr x5c_; diff --git a/Runtime/World/CHUDBillboardEffect.cpp b/Runtime/World/CHUDBillboardEffect.cpp index a99930b70..deedf1aa5 100644 --- a/Runtime/World/CHUDBillboardEffect.cpp +++ b/Runtime/World/CHUDBillboardEffect.cpp @@ -12,8 +12,8 @@ namespace urde { u32 CHUDBillboardEffect::g_IndirectTexturedBillboardCount = 0; u32 CHUDBillboardEffect::g_BillboardCount = 0; -CHUDBillboardEffect::CHUDBillboardEffect(const std::experimental::optional>& particle, - const std::experimental::optional>& electric, +CHUDBillboardEffect::CHUDBillboardEffect(const rstl::optional>& particle, + const rstl::optional>& electric, TUniqueId uid, bool active, std::string_view name, float dist, const zeus::CVector3f& scale0, const zeus::CColor& color, const zeus::CVector3f& scale1, const zeus::CVector3f& translation) diff --git a/Runtime/World/CHUDBillboardEffect.hpp b/Runtime/World/CHUDBillboardEffect.hpp index 126c0057c..2baabf3a1 100644 --- a/Runtime/World/CHUDBillboardEffect.hpp +++ b/Runtime/World/CHUDBillboardEffect.hpp @@ -25,8 +25,8 @@ class CHUDBillboardEffect : public CEffect { static float CalcGenRate(); public: - CHUDBillboardEffect(const std::experimental::optional>& particle, - const std::experimental::optional>& electric, TUniqueId uid, + CHUDBillboardEffect(const rstl::optional>& particle, + const rstl::optional>& electric, TUniqueId uid, bool active, std::string_view name, float dist, const zeus::CVector3f& scale0, const zeus::CColor& color, const zeus::CVector3f& scale1, const zeus::CVector3f& translation); ~CHUDBillboardEffect(); diff --git a/Runtime/World/CMorphBall.cpp b/Runtime/World/CMorphBall.cpp index 5cc9d6027..b2a5f1ba4 100644 --- a/Runtime/World/CMorphBall.cpp +++ b/Runtime/World/CMorphBall.cpp @@ -1081,7 +1081,7 @@ void CMorphBall::UpdateEffects(float dt, CStateManager& mgr) { if (x1c10_ballInnerGlowLight != kInvalidUniqueId) { if (TCastToPtr light = mgr.ObjectById(x1c10_ballInnerGlowLight)) { light->SetTranslation(swooshToWorld.origin + zeus::CVector3f(0.f, 0.f, GetBallRadius())); - std::experimental::optional lObj; + rstl::optional lObj; if (IsMorphBallTransitionFlashValid() && x19dc_morphBallTransitionFlashGen->SystemHasLight()) lObj.emplace(x19dc_morphBallTransitionFlashGen->GetLight()); else if (x19d0_ballInnerGlowGen->SystemHasLight()) diff --git a/Runtime/World/CPathFindSearch.hpp b/Runtime/World/CPathFindSearch.hpp index 596573a3a..21953f01c 100644 --- a/Runtime/World/CPathFindSearch.hpp +++ b/Runtime/World/CPathFindSearch.hpp @@ -27,7 +27,7 @@ private: float xd8_padding = 10.f; u32 xdc_flags; // 0x2: flyer, 0x4: path-always-exists (swimmers) u32 xe0_indexMask; - mutable std::experimental::optional m_viz; + mutable rstl::optional m_viz; bool Search(rstl::reserved_vector& regs1, const zeus::CVector3f& p1, rstl::reserved_vector& regs2, const zeus::CVector3f& p2); void GetSplinePoint(zeus::CVector3f& pOut, const zeus::CVector3f& p1, u32 wpIdx) const; diff --git a/Runtime/World/CPatterned.cpp b/Runtime/World/CPatterned.cpp index a5d975761..e3d5916d6 100644 --- a/Runtime/World/CPatterned.cpp +++ b/Runtime/World/CPatterned.cpp @@ -381,7 +381,7 @@ void CPatterned::Touch(CActor& act, CStateManager& mgr) { } } -std::experimental::optional CPatterned::GetTouchBounds() const { return GetBoundingBox(); } +rstl::optional CPatterned::GetTouchBounds() const { return GetBoundingBox(); } bool CPatterned::CanRenderUnsorted(const urde::CStateManager& mgr) const { return x64_modelData->GetAnimationData()->GetParticleDB().AreAnySystemsDrawnWithModel() @@ -1069,7 +1069,7 @@ void CPatterned::SetupPlayerCollision(bool v) { void CPatterned::LaunchProjectile(const zeus::CTransform& gunXf, CStateManager& mgr, int maxAllowed, EProjectileAttrib attrib, bool playerHoming, - const std::experimental::optional>& visorParticle, + const rstl::optional>& visorParticle, u16 visorSfx, bool sendCollideMsg, const zeus::CVector3f& scale) { CProjectileInfo* pInfo = GetProjectileInfo(); if (pInfo->Token().IsLoaded()) { diff --git a/Runtime/World/CPatterned.hpp b/Runtime/World/CPatterned.hpp index 4f6bb154b..1d9a912d7 100644 --- a/Runtime/World/CPatterned.hpp +++ b/Runtime/World/CPatterned.hpp @@ -225,10 +225,10 @@ protected: float x50c_baseDamageMag; std::shared_ptr x510_vertexMorph; zeus::CVector3f x514_deathExplosionOffset; - std::experimental::optional> x520_deathExplosionParticle; - std::experimental::optional> x530_deathExplosionElectric; + rstl::optional> x520_deathExplosionParticle; + rstl::optional> x530_deathExplosionElectric; zeus::CVector3f x540_iceDeathExplosionOffset; - std::experimental::optional> x54c_iceDeathExplosionParticle; + rstl::optional> x54c_iceDeathExplosionParticle; zeus::CVector3f x55c_moveScale = zeus::CVector3f::skOne; void MakeThermalColdAndHot(); @@ -265,7 +265,7 @@ public: void CollidedWith(TUniqueId, const CCollisionInfoList&, CStateManager& mgr); void Touch(CActor& act, CStateManager& mgr); - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; bool CanRenderUnsorted(const CStateManager& mgr) const; zeus::CVector3f GetOrbitPosition(const CStateManager& mgr) const { return GetAimPosition(mgr, 0.f); } zeus::CVector3f GetAimPosition(const CStateManager& mgr, float) const; @@ -347,7 +347,7 @@ public: virtual float GetGravityConstant() const { return 24.525002f; } virtual CProjectileInfo* GetProjectileInfo() { return nullptr; } virtual void PhazeOut(CStateManager&); - virtual const std::experimental::optional>& GetDeathExplosionParticle() const { + virtual const rstl::optional>& GetDeathExplosionParticle() const { return x520_deathExplosionParticle; } float GetDamageDuration() const { return x504_damageDur; } @@ -361,7 +361,7 @@ public: void SetupPlayerCollision(bool); void LaunchProjectile(const zeus::CTransform& gunXf, CStateManager& mgr, int maxAllowed, EProjectileAttrib attrib, bool playerHoming, - const std::experimental::optional>& visorParticle, u16 visorSfx, + const rstl::optional>& visorParticle, u16 visorSfx, bool sendCollideMsg, const zeus::CVector3f& scale); void DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type, float dt); diff --git a/Runtime/World/CPhysicsActor.hpp b/Runtime/World/CPhysicsActor.hpp index 724784889..ea16d7769 100644 --- a/Runtime/World/CPhysicsActor.hpp +++ b/Runtime/World/CPhysicsActor.hpp @@ -99,7 +99,7 @@ protected: CCollidableAABox x1c0_collisionPrimitive; zeus::CVector3f x1e8_primitiveOffset; CMotionState x1f4_lastNonCollidingState; - std::experimental::optional x228_lastFloorPlaneNormal; + rstl::optional x228_lastFloorPlaneNormal; float x238_maximumCollisionVelocity = 1000000.0f; float x23c_stepUpHeight; float x240_stepDownHeight; @@ -186,10 +186,10 @@ public: void SetNumTicksPartialUpdate(u32 t) { x250_numTicksPartialUpdate = t; } u32 GetNumTicksStuck() const { return x24c_numTicksStuck; } void SetNumTicksStuck(u32 t) { x24c_numTicksStuck = t; } - const std::experimental::optional& GetLastFloorPlaneNormal() const { + const rstl::optional& GetLastFloorPlaneNormal() const { return x228_lastFloorPlaneNormal; } - void SetLastFloorPlaneNormal(const std::experimental::optional& n) { x228_lastFloorPlaneNormal = n; } + void SetLastFloorPlaneNormal(const rstl::optional& n) { x228_lastFloorPlaneNormal = n; } CMotionState PredictMotion_Internal(float) const; CMotionState PredictMotion(float dt) const; diff --git a/Runtime/World/CPlayer.cpp b/Runtime/World/CPlayer.cpp index 169798920..43cb7d505 100644 --- a/Runtime/World/CPlayer.cpp +++ b/Runtime/World/CPlayer.cpp @@ -920,7 +920,7 @@ bool CPlayer::IsUnderBetaMetroidAttack(CStateManager& mgr) const { return false; } -std::experimental::optional CPlayer::GetTouchBounds() const { +rstl::optional CPlayer::GetTouchBounds() const { if (x2f8_morphBallState == EPlayerMorphBallState::Morphed) { float ballTouchRad = x768_morphball->GetBallTouchRadius(); zeus::CVector3f ballCenter = GetTranslation() + zeus::CVector3f(0.f, 0.f, x768_morphball->GetBallRadius()); @@ -1545,7 +1545,7 @@ void CPlayer::ProcessInput(const CFinalInput& input, CStateManager& mgr) { CGameCollision::BuildAreaCollisionCache(mgr, cache); rstl::reserved_vector nearList; mgr.BuildColliderList(nearList, *this, expandedBounds); - std::experimental::optional nonIntVec = + rstl::optional nonIntVec = CGameCollision::FindNonIntersectingVector(mgr, cache, *this, *prim, nearList); if (nonIntVec) { x4a0_failsafeTest->Reset(); @@ -1780,7 +1780,7 @@ void CPlayer::UnFreeze(CStateManager& stateMgr) { ClearForcesAndTorques(); RemoveMaterial(EMaterialTypes::Immovable, stateMgr); if (!stateMgr.GetCameraManager()->IsInCinematicCamera() && xa0c_iceTextureId.IsValid()) { - std::experimental::optional> gpsm; + rstl::optional> gpsm; gpsm.emplace(g_SimplePool->GetObj(SObjectTag(FOURCC('PART'), xa0c_iceTextureId))); CHUDBillboardEffect* effect = new CHUDBillboardEffect( gpsm, {}, stateMgr.AllocateUniqueId(), true, "FrostExplosion", diff --git a/Runtime/World/CPlayer.hpp b/Runtime/World/CPlayer.hpp index f41605405..fbbbe10fa 100644 --- a/Runtime/World/CPlayer.hpp +++ b/Runtime/World/CPlayer.hpp @@ -382,7 +382,7 @@ public: void Accept(IVisitor& visitor); CHealthInfo* HealthInfo(CStateManager& mgr); bool IsUnderBetaMetroidAttack(CStateManager& mgr) const; - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void Touch(CActor& actor, CStateManager& mgr); void DoPreThink(float dt, CStateManager& mgr); void DoThink(float dt, CStateManager& mgr); diff --git a/Runtime/World/CScriptActor.cpp b/Runtime/World/CScriptActor.cpp index 19dae5dcf..8bba524db 100644 --- a/Runtime/World/CScriptActor.cpp +++ b/Runtime/World/CScriptActor.cpp @@ -176,7 +176,7 @@ EWeaponCollisionResponseTypes CScriptActor::GetCollisionResponseType(const zeus: return CActor::GetCollisionResponseType(v1, v2, wMode, w); } -std::experimental::optional CScriptActor::GetTouchBounds() const { +rstl::optional CScriptActor::GetTouchBounds() const { if (GetActive() && x68_material.HasMaterial(EMaterialTypes::Solid)) return {CPhysicsActor::GetBoundingBox()}; return {}; diff --git a/Runtime/World/CScriptActor.hpp b/Runtime/World/CScriptActor.hpp index 9e39cf645..caa92c918 100644 --- a/Runtime/World/CScriptActor.hpp +++ b/Runtime/World/CScriptActor.hpp @@ -39,7 +39,7 @@ public: zeus::CAABox GetSortingBounds(const CStateManager&) const; EWeaponCollisionResponseTypes GetCollisionResponseType(const zeus::CVector3f&, const zeus::CVector3f&, const CWeaponMode&, EProjectileAttrib) const; - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void Touch(CActor&, CStateManager&); const CDamageVulnerability* GetDamageVulnerability() const { return &x268_damageVulnerability; } CHealthInfo* HealthInfo(CStateManager&) { return &x260_currentHealth; } diff --git a/Runtime/World/CScriptAiJumpPoint.cpp b/Runtime/World/CScriptAiJumpPoint.cpp index 20fe52b18..a87e932d0 100644 --- a/Runtime/World/CScriptAiJumpPoint.cpp +++ b/Runtime/World/CScriptAiJumpPoint.cpp @@ -40,7 +40,7 @@ void CScriptAiJumpPoint::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId oth } } -std::experimental::optional CScriptAiJumpPoint::GetTouchBounds() const { return xec_touchBounds; } +rstl::optional CScriptAiJumpPoint::GetTouchBounds() const { return xec_touchBounds; } bool CScriptAiJumpPoint::GetInUse(TUniqueId uid) const { return x108_24 || x110_timeRemaining > 0.f || x10a_occupant != kInvalidUniqueId || uid != kInvalidUniqueId || diff --git a/Runtime/World/CScriptAiJumpPoint.hpp b/Runtime/World/CScriptAiJumpPoint.hpp index e33ffbc0d..d76a53801 100644 --- a/Runtime/World/CScriptAiJumpPoint.hpp +++ b/Runtime/World/CScriptAiJumpPoint.hpp @@ -26,7 +26,7 @@ public: void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&); void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const {} void Render(const CStateManager&) const {} - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; bool GetInUse(TUniqueId uid) const; TUniqueId GetJumpPoint() const { return x10c_currentWaypoint; } TUniqueId GetJumpTarget() const { return x10e_nextWaypoint; } diff --git a/Runtime/World/CScriptCameraPitchVolume.cpp b/Runtime/World/CScriptCameraPitchVolume.cpp index 527702270..958882eea 100644 --- a/Runtime/World/CScriptCameraPitchVolume.cpp +++ b/Runtime/World/CScriptCameraPitchVolume.cpp @@ -36,7 +36,7 @@ void CScriptCameraPitchVolume::Think(float, CStateManager& mgr) { x13c_24_entered = false; } -std::experimental::optional CScriptCameraPitchVolume::GetTouchBounds() const { +rstl::optional CScriptCameraPitchVolume::GetTouchBounds() const { return {xe8_obbox.calculateAABox(zeus::CTransform::Identity())}; } diff --git a/Runtime/World/CScriptCameraPitchVolume.hpp b/Runtime/World/CScriptCameraPitchVolume.hpp index 91a199feb..c83a1891c 100644 --- a/Runtime/World/CScriptCameraPitchVolume.hpp +++ b/Runtime/World/CScriptCameraPitchVolume.hpp @@ -27,7 +27,7 @@ public: void Accept(IVisitor& visitor); void Think(float, CStateManager&); - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void Touch(CActor&, CStateManager&); float GetUpPitch() const { return x124_upPitch; } float GetDownPitch() const { return x128_downPitch; } diff --git a/Runtime/World/CScriptCoverPoint.cpp b/Runtime/World/CScriptCoverPoint.cpp index 7ea8ed6ba..a50b0520a 100644 --- a/Runtime/World/CScriptCoverPoint.cpp +++ b/Runtime/World/CScriptCoverPoint.cpp @@ -25,7 +25,7 @@ void CScriptCoverPoint::Think(float delta, CStateManager&) { x11c_timeLeft -= delta; } -std::experimental::optional CScriptCoverPoint::GetTouchBounds() const { +rstl::optional CScriptCoverPoint::GetTouchBounds() const { if (x100_touchBounds) return x100_touchBounds; diff --git a/Runtime/World/CScriptCoverPoint.hpp b/Runtime/World/CScriptCoverPoint.hpp index 99b195530..698851b38 100644 --- a/Runtime/World/CScriptCoverPoint.hpp +++ b/Runtime/World/CScriptCoverPoint.hpp @@ -25,7 +25,7 @@ class CScriptCoverPoint : public CActor { }; TUniqueId xfa_occupant = kInvalidUniqueId; TUniqueId xfc_retreating = kInvalidUniqueId; - std::experimental::optional x100_touchBounds; + rstl::optional x100_touchBounds; float x11c_timeLeft = 0.f; public: @@ -37,7 +37,7 @@ public: void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const {} void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&); void Render(const CStateManager&) const {} - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void SetInUse(bool inUse); bool GetInUse(TUniqueId uid) const; bool ShouldLandHere() const { return xe8_26_landHere; } diff --git a/Runtime/World/CScriptDamageableTrigger.cpp b/Runtime/World/CScriptDamageableTrigger.cpp index e3c84e664..1ba29550f 100644 --- a/Runtime/World/CScriptDamageableTrigger.cpp +++ b/Runtime/World/CScriptDamageableTrigger.cpp @@ -190,7 +190,7 @@ void CScriptDamageableTrigger::Think(float dt, CStateManager& mgr) { SetLinkedObjectAlpha(objAlpha, mgr); } -std::experimental::optional CScriptDamageableTrigger::GetTouchBounds() const { +rstl::optional CScriptDamageableTrigger::GetTouchBounds() const { if (x30_24_active && x300_24_notOccluded) return {zeus::CAABox(x14c_bounds.min + GetTranslation(), x14c_bounds.max + GetTranslation())}; return {}; diff --git a/Runtime/World/CScriptDamageableTrigger.hpp b/Runtime/World/CScriptDamageableTrigger.hpp index 31fbaf492..b6ff9feb5 100644 --- a/Runtime/World/CScriptDamageableTrigger.hpp +++ b/Runtime/World/CScriptDamageableTrigger.hpp @@ -55,6 +55,6 @@ public: const CDamageVulnerability* GetDamageVulnerability() const { return &x174_dVuln; } CHealthInfo* HealthInfo(CStateManager&) { return &x16c_hInfo; } void Think(float, CStateManager&); - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; }; } // namespace urde diff --git a/Runtime/World/CScriptDebris.cpp b/Runtime/World/CScriptDebris.cpp index ced24600d..e9e96cce7 100644 --- a/Runtime/World/CScriptDebris.cpp +++ b/Runtime/World/CScriptDebris.cpp @@ -349,7 +349,7 @@ void CScriptDebris::Touch(CActor& other, CStateManager& mgr) { } } -std::experimental::optional CScriptDebris::GetTouchBounds() const { +rstl::optional CScriptDebris::GetTouchBounds() const { if (x281_31_dieOnProjectile) return {GetBoundingBox()}; return {}; diff --git a/Runtime/World/CScriptDebris.hpp b/Runtime/World/CScriptDebris.hpp index 9c332d044..df39aeaf9 100644 --- a/Runtime/World/CScriptDebris.hpp +++ b/Runtime/World/CScriptDebris.hpp @@ -75,7 +75,7 @@ public: void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr); void Think(float dt, CStateManager& mgr); void Touch(CActor& other, CStateManager& mgr); - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void PreRender(CStateManager& mgr, const zeus::CFrustum& frustum); void Render(const CStateManager& mgr) const; diff --git a/Runtime/World/CScriptDock.cpp b/Runtime/World/CScriptDock.cpp index cd5f1cd16..31158b8cd 100644 --- a/Runtime/World/CScriptDock.cpp +++ b/Runtime/World/CScriptDock.cpp @@ -147,7 +147,7 @@ void CScriptDock::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStat } } -std::experimental::optional CScriptDock::GetTouchBounds() const { +rstl::optional CScriptDock::GetTouchBounds() const { if (x264_dockState == EDockState::Three) return {}; diff --git a/Runtime/World/CScriptDock.hpp b/Runtime/World/CScriptDock.hpp index c0a254a48..827982883 100644 --- a/Runtime/World/CScriptDock.hpp +++ b/Runtime/World/CScriptDock.hpp @@ -29,7 +29,7 @@ public: void Accept(IVisitor& visitor); void Think(float, CStateManager&); void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&); - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void Touch(CActor&, CStateManager&); void CleanUp() {} zeus::CPlane GetPlane(const CStateManager&) const; diff --git a/Runtime/World/CScriptDoor.cpp b/Runtime/World/CScriptDoor.cpp index 434bc8dbe..ffc235624 100644 --- a/Runtime/World/CScriptDoor.cpp +++ b/Runtime/World/CScriptDoor.cpp @@ -355,13 +355,13 @@ void CScriptDoor::SetDoorAnimation(CScriptDoor::EDoorAnimType type) { modelData->AnimationData()->SetAnimation(CAnimPlaybackParms(s32(type), -1, 1.f, true), false); } -std::experimental::optional CScriptDoor::GetTouchBounds() const { +rstl::optional CScriptDoor::GetTouchBounds() const { if (GetActive() && GetMaterialList().HasMaterial(EMaterialTypes::Solid)) return {CPhysicsActor::GetBoundingBox()}; return {}; } -std::experimental::optional CScriptDoor::GetProjectileBounds() const { +rstl::optional CScriptDoor::GetProjectileBounds() const { if (x2a8_28_projectilesCollide) return {{x284_modelBounds.min + GetTranslation(), x284_modelBounds.max + GetTranslation()}}; return {}; diff --git a/Runtime/World/CScriptDoor.hpp b/Runtime/World/CScriptDoor.hpp index acc184f46..c069366b9 100644 --- a/Runtime/World/CScriptDoor.hpp +++ b/Runtime/World/CScriptDoor.hpp @@ -47,8 +47,8 @@ public: void OpenDoor(TUniqueId, CStateManager&); u32 GetDoorOpenCondition(CStateManager& mgr); void SetDoorAnimation(EDoorAnimType); - std::experimental::optional GetTouchBounds() const; - std::experimental::optional GetProjectileBounds() const; + rstl::optional GetTouchBounds() const; + rstl::optional GetProjectileBounds() const; bool IsOpen() const { return x2a8_26_isOpen; } }; diff --git a/Runtime/World/CScriptEMPulse.cpp b/Runtime/World/CScriptEMPulse.cpp index 8e2298b8d..67f1bb7e6 100644 --- a/Runtime/World/CScriptEMPulse.cpp +++ b/Runtime/World/CScriptEMPulse.cpp @@ -61,7 +61,7 @@ void CScriptEMPulse::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& void CScriptEMPulse::CalculateRenderBounds() { x9c_renderBounds = CalculateBoundingBox(); } -std::experimental::optional CScriptEMPulse::GetTouchBounds() const { return {CalculateBoundingBox()}; } +rstl::optional CScriptEMPulse::GetTouchBounds() const { return {CalculateBoundingBox()}; } void CScriptEMPulse::Touch(CActor& act, CStateManager& mgr) { if (!GetActive()) diff --git a/Runtime/World/CScriptEMPulse.hpp b/Runtime/World/CScriptEMPulse.hpp index a7f78bf84..20dd8c745 100644 --- a/Runtime/World/CScriptEMPulse.hpp +++ b/Runtime/World/CScriptEMPulse.hpp @@ -28,7 +28,7 @@ public: void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&); void AddToRenderer(const zeus::CFrustum&, CStateManager&) const; void CalculateRenderBounds(); - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void Touch(CActor&, CStateManager&); }; } // namespace urde diff --git a/Runtime/World/CScriptEffect.cpp b/Runtime/World/CScriptEffect.cpp index 6f5cd3d54..b79aa5caa 100644 --- a/Runtime/World/CScriptEffect.cpp +++ b/Runtime/World/CScriptEffect.cpp @@ -318,11 +318,11 @@ void CScriptEffect::Think(float dt, CStateManager& mgr) { } void CScriptEffect::CalculateRenderBounds() { - std::experimental::optional particleBounds; + rstl::optional particleBounds; if (x104_particleSystem) particleBounds = x104_particleSystem->GetBounds(); - std::experimental::optional electricBounds; + rstl::optional electricBounds; if (xf4_electric) electricBounds = xf4_electric->GetBounds(); diff --git a/Runtime/World/CScriptGrapplePoint.cpp b/Runtime/World/CScriptGrapplePoint.cpp index 84f0b31b9..59095f88a 100644 --- a/Runtime/World/CScriptGrapplePoint.cpp +++ b/Runtime/World/CScriptGrapplePoint.cpp @@ -42,7 +42,7 @@ void CScriptGrapplePoint::Render(const CStateManager&) const { // Empty } -std::experimental::optional CScriptGrapplePoint::GetTouchBounds() const { return {xe8_touchBounds}; } +rstl::optional CScriptGrapplePoint::GetTouchBounds() const { return {xe8_touchBounds}; } void CScriptGrapplePoint::AddToRenderer(const zeus::CFrustum&, const CStateManager& mgr) const { CActor::EnsureRendered(mgr); diff --git a/Runtime/World/CScriptGrapplePoint.hpp b/Runtime/World/CScriptGrapplePoint.hpp index f74707422..1c09d688c 100644 --- a/Runtime/World/CScriptGrapplePoint.hpp +++ b/Runtime/World/CScriptGrapplePoint.hpp @@ -16,7 +16,7 @@ public: void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&); void Think(float, CStateManager&); void Render(const CStateManager&) const; - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const; const CGrappleParameters& GetGrappleParameters() const { return x100_parameters; } }; diff --git a/Runtime/World/CScriptGunTurret.cpp b/Runtime/World/CScriptGunTurret.cpp index ac2544ce8..9b446ed8e 100644 --- a/Runtime/World/CScriptGunTurret.cpp +++ b/Runtime/World/CScriptGunTurret.cpp @@ -298,7 +298,7 @@ void CScriptGunTurret::Touch(CActor& act, CStateManager& mgr) { } } -std::experimental::optional CScriptGunTurret::GetTouchBounds() const { +rstl::optional CScriptGunTurret::GetTouchBounds() const { if (GetActive() && GetMaterialList().HasMaterial(EMaterialTypes::Solid)) return {GetBoundingBox()}; return {}; diff --git a/Runtime/World/CScriptGunTurret.hpp b/Runtime/World/CScriptGunTurret.hpp index 9584530fb..dda6935db 100644 --- a/Runtime/World/CScriptGunTurret.hpp +++ b/Runtime/World/CScriptGunTurret.hpp @@ -109,7 +109,7 @@ private: TUniqueId x498_lightId = kInvalidUniqueId; std::unique_ptr x49c_collisionManager; TUniqueId x4a0_ = kInvalidUniqueId; - std::experimental::optional x4a4_; + rstl::optional x4a4_; float x4f4_ = 0.f; float x4f8_ = 0.f; zeus::CVector3f x4fc_; @@ -158,7 +158,7 @@ public: void Touch(CActor&, CStateManager&); void AddToRenderer(const zeus::CFrustum&, const CStateManager&); void Render(const CStateManager&) const; - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; zeus::CVector3f GetOrbitPosition(const CStateManager&) const; zeus::CVector3f GetAimPosition(const CStateManager&, float) const; diff --git a/Runtime/World/CScriptHUDMemo.hpp b/Runtime/World/CScriptHUDMemo.hpp index 346af18f5..22460fca4 100644 --- a/Runtime/World/CScriptHUDMemo.hpp +++ b/Runtime/World/CScriptHUDMemo.hpp @@ -14,7 +14,7 @@ public: CHUDMemoParms x34_parms; EDisplayType x3c_dispType; CAssetId x40_stringTableId; - std::experimental::optional> x44_stringTable; + rstl::optional> x44_stringTable; private: public: diff --git a/Runtime/World/CScriptPickup.hpp b/Runtime/World/CScriptPickup.hpp index a2f84ade6..0c5008681 100644 --- a/Runtime/World/CScriptPickup.hpp +++ b/Runtime/World/CScriptPickup.hpp @@ -28,7 +28,7 @@ public: void Accept(IVisitor& visitor); void Think(float, CStateManager&); void Touch(CActor&, CStateManager&); - std::experimental::optional GetTouchBounds() const { return CPhysicsActor::GetBoundingBox(); } + rstl::optional GetTouchBounds() const { return CPhysicsActor::GetBoundingBox(); } float GetPossibility() const { return x264_possibility; } CPlayerState::EItemType GetItem() { return x258_itemType; } }; diff --git a/Runtime/World/CScriptPlatform.cpp b/Runtime/World/CScriptPlatform.cpp index b1fe812f3..e47543849 100644 --- a/Runtime/World/CScriptPlatform.cpp +++ b/Runtime/World/CScriptPlatform.cpp @@ -26,7 +26,7 @@ CScriptPlatform::CScriptPlatform( TUniqueId uid, std::string_view name, const CEntityInfo& info, const zeus::CTransform& xf, CModelData&& mData, const CActorParameters& actParms, const zeus::CAABox& aabb, float speed, bool detectCollision, float xrayAlpha, bool active, const CHealthInfo& hInfo, const CDamageVulnerability& dVuln, - const std::experimental::optional>& dcln, bool rainSplashes, + const rstl::optional>& dcln, bool rainSplashes, u32 maxRainSplashes, u32 rainGenRate) : CPhysicsActor(uid, active, name, info, xf, std::move(mData), MakePlatformMaterialList(), aabb, SMoverData(15000.f), actParms, 0.3f, 0.1f) @@ -300,7 +300,7 @@ void CScriptPlatform::Render(const CStateManager& mgr) const { mgr.SetupFogForArea(x4_areaId); } -std::experimental::optional CScriptPlatform::GetTouchBounds() const { +rstl::optional CScriptPlatform::GetTouchBounds() const { if (x314_treeGroup) return {x314_treeGroup->CalculateAABox(GetTransform())}; diff --git a/Runtime/World/CScriptPlatform.hpp b/Runtime/World/CScriptPlatform.hpp index f409a397e..7b459f833 100644 --- a/Runtime/World/CScriptPlatform.hpp +++ b/Runtime/World/CScriptPlatform.hpp @@ -34,7 +34,7 @@ class CScriptPlatform : public CPhysicsActor { CHealthInfo x28c_initialHealth; CHealthInfo x294_health; CDamageVulnerability x29c_damageVuln; - std::experimental::optional> x304_treeGroupContainer; + rstl::optional> x304_treeGroupContainer; std::unique_ptr x314_treeGroup; std::vector x318_riders; std::vector x328_slavesStatic; @@ -73,7 +73,7 @@ public: CModelData&& mData, const CActorParameters& actParms, const zeus::CAABox& aabb, float speed, bool detectCollision, float xrayAlpha, bool active, const CHealthInfo& hInfo, const CDamageVulnerability& dVuln, - const std::experimental::optional>& dcln, + const rstl::optional>& dcln, bool rainSplashes, u32 maxRainSplashes, u32 rainGenRate); void Accept(IVisitor& visitor); @@ -82,7 +82,7 @@ public: void Think(float, CStateManager&); void PreRender(CStateManager&, const zeus::CFrustum&); void Render(const CStateManager&) const; - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; zeus::CTransform GetPrimitiveTransform() const; const CCollisionPrimitive* GetCollisionPrimitive() const; zeus::CVector3f GetOrbitPosition(const CStateManager& mgr) const; diff --git a/Runtime/World/CScriptPointOfInterest.cpp b/Runtime/World/CScriptPointOfInterest.cpp index 8a0fd0ccb..12380fdea 100644 --- a/Runtime/World/CScriptPointOfInterest.cpp +++ b/Runtime/World/CScriptPointOfInterest.cpp @@ -35,7 +35,7 @@ void CScriptPointOfInterest::CalculateRenderBounds() { x9c_renderBounds = zeus::CAABox(x34_transform.origin - xe8_pointSize, x34_transform.origin + xe8_pointSize); } -std::experimental::optional CScriptPointOfInterest::GetTouchBounds() const { +rstl::optional CScriptPointOfInterest::GetTouchBounds() const { return {zeus::CAABox{x34_transform.origin, x34_transform.origin}}; } } // namespace urde diff --git a/Runtime/World/CScriptPointOfInterest.hpp b/Runtime/World/CScriptPointOfInterest.hpp index f2f3fc111..4c4cb09e8 100644 --- a/Runtime/World/CScriptPointOfInterest.hpp +++ b/Runtime/World/CScriptPointOfInterest.hpp @@ -18,6 +18,6 @@ public: void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const; void Render(const CStateManager&) const; void CalculateRenderBounds(); - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; }; } // namespace urde diff --git a/Runtime/World/CScriptSpecialFunction.hpp b/Runtime/World/CScriptSpecialFunction.hpp index 3626f990d..f2464554c 100644 --- a/Runtime/World/CScriptSpecialFunction.hpp +++ b/Runtime/World/CScriptSpecialFunction.hpp @@ -89,7 +89,7 @@ private: s32 x1bc_areaSaveId; s32 x1c0_layerIdx; CPlayerState::EItemType x1c4_item; - std::experimental::optional x1c8_; + rstl::optional x1c8_; union { struct { bool x1e4_24_ : 1; diff --git a/Runtime/World/CScriptSpiderBallAttractionSurface.cpp b/Runtime/World/CScriptSpiderBallAttractionSurface.cpp index e8519711d..d1db78347 100644 --- a/Runtime/World/CScriptSpiderBallAttractionSurface.cpp +++ b/Runtime/World/CScriptSpiderBallAttractionSurface.cpp @@ -24,7 +24,7 @@ void CScriptSpiderBallAttractionSurface::AcceptScriptMsg(EScriptObjectMessage ms CActor::AcceptScriptMsg(msg, sender, mgr); } -std::experimental::optional CScriptSpiderBallAttractionSurface::GetTouchBounds() const { +rstl::optional CScriptSpiderBallAttractionSurface::GetTouchBounds() const { if (GetActive()) return {zeus::CAABox(xf4_aabb.min + GetTranslation(), xf4_aabb.max + GetTranslation())}; return {}; diff --git a/Runtime/World/CScriptSpiderBallAttractionSurface.hpp b/Runtime/World/CScriptSpiderBallAttractionSurface.hpp index 6bae1c5f7..f35631e0e 100644 --- a/Runtime/World/CScriptSpiderBallAttractionSurface.hpp +++ b/Runtime/World/CScriptSpiderBallAttractionSurface.hpp @@ -14,7 +14,7 @@ public: void Accept(IVisitor& visitor); void Think(float dt, CStateManager& mgr); void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr); - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void Touch(CActor& actor, CStateManager& mgr); const zeus::CVector3f& GetScale() const { return xe8_scale; } }; diff --git a/Runtime/World/CScriptSpiderBallWaypoint.hpp b/Runtime/World/CScriptSpiderBallWaypoint.hpp index 0e3a6aa0a..ab70056f3 100644 --- a/Runtime/World/CScriptSpiderBallWaypoint.hpp +++ b/Runtime/World/CScriptSpiderBallWaypoint.hpp @@ -7,7 +7,7 @@ class CScriptSpiderBallWaypoint : public CActor { enum class ECheckActiveWaypoint { Check, SkipCheck }; u32 xe8_; std::vector xec_waypoints; - std::experimental::optional xfc_aabox; + rstl::optional xfc_aabox; public: CScriptSpiderBallWaypoint(TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&, bool, u32); @@ -15,7 +15,7 @@ public: void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&); void Render(const CStateManager& mgr) const { CActor::Render(mgr); } void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const {} - std::experimental::optional GetTouchBounds() const { return xfc_aabox; } + rstl::optional GetTouchBounds() const { return xfc_aabox; } void AccumulateBounds(const zeus::CVector3f& v); void BuildWaypointListAndBounds(CStateManager& mgr); void AddPreviousWaypoint(TUniqueId uid); diff --git a/Runtime/World/CScriptTrigger.cpp b/Runtime/World/CScriptTrigger.cpp index ec2156cdd..d1f525479 100644 --- a/Runtime/World/CScriptTrigger.cpp +++ b/Runtime/World/CScriptTrigger.cpp @@ -200,7 +200,7 @@ void CScriptTrigger::UpdateInhabitants(float dt, CStateManager& mgr) { std::list& CScriptTrigger::GetInhabitants() { return xe8_inhabitants; } -std::experimental::optional CScriptTrigger::GetTouchBounds() const { +rstl::optional CScriptTrigger::GetTouchBounds() const { if (x30_24_active) return {GetTriggerBoundsWR()}; return {}; diff --git a/Runtime/World/CScriptTrigger.hpp b/Runtime/World/CScriptTrigger.hpp index 5b52940cf..e2a8b327a 100644 --- a/Runtime/World/CScriptTrigger.hpp +++ b/Runtime/World/CScriptTrigger.hpp @@ -76,7 +76,7 @@ public: CObjectTracker* FindObject(TUniqueId); void UpdateInhabitants(float, CStateManager&); std::list& GetInhabitants(); - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void Touch(CActor&, CStateManager&); const zeus::CAABox& GetTriggerBoundsOR() const { return x130_bounds; } zeus::CAABox GetTriggerBoundsWR() const; diff --git a/Runtime/World/CScriptVisorGoo.cpp b/Runtime/World/CScriptVisorGoo.cpp index 1da8824d9..c5967f0ab 100644 --- a/Runtime/World/CScriptVisorGoo.cpp +++ b/Runtime/World/CScriptVisorGoo.cpp @@ -71,9 +71,9 @@ void CScriptVisorGoo::Think(float, CStateManager& mgr) { float t = (x108_maxDist - eyeToGooDist) / (x108_maxDist - x104_minDist); if (mgr.GetActiveRandom()->Float() * 100.f <= (1.f - t) * x110_farProb + t * x10c_nearProb) { mgr.AddObject(new CHUDBillboardEffect( - xfc_particleId.IsValid() ? xe8_particleDesc : std::experimental::optional>(), + xfc_particleId.IsValid() ? xe8_particleDesc : rstl::optional>(), x100_electricId.IsValid() ? xf0_electricDesc - : std::experimental::optional>(), + : rstl::optional>(), mgr.AllocateUniqueId(), true, "VisorGoo", CHUDBillboardEffect::GetNearClipDistance(mgr), CHUDBillboardEffect::GetScaleForPOV(mgr), x114_color, zeus::CVector3f::skOne, zeus::CVector3f::skZero)); @@ -108,7 +108,7 @@ void CScriptVisorGoo::Render(const CStateManager& mgr) const { // Empty } -std::experimental::optional CScriptVisorGoo::GetTouchBounds() const { return {}; } +rstl::optional CScriptVisorGoo::GetTouchBounds() const { return {}; } void CScriptVisorGoo::Touch(CActor& other, CStateManager& mgr) { // Empty diff --git a/Runtime/World/CScriptVisorGoo.hpp b/Runtime/World/CScriptVisorGoo.hpp index ffd3f2da4..c0c430608 100644 --- a/Runtime/World/CScriptVisorGoo.hpp +++ b/Runtime/World/CScriptVisorGoo.hpp @@ -27,7 +27,7 @@ public: void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr); void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const; void Render(const CStateManager&) const; - std::experimental::optional GetTouchBounds() const; + rstl::optional GetTouchBounds() const; void Touch(CActor&, CStateManager&); }; diff --git a/Runtime/World/CScriptWater.cpp b/Runtime/World/CScriptWater.cpp index b81b78e03..182a1393e 100644 --- a/Runtime/World/CScriptWater.cpp +++ b/Runtime/World/CScriptWater.cpp @@ -424,7 +424,7 @@ void CScriptWater::Render(const CStateManager& mgr) const { zeus::CTransform xf = x34_transform; xf.origin.z() += zOffset; zeus::CVector3f areaCenter = mgr.GetWorld()->GetAreaAlways(mgr.GetNextAreaId())->GetAABB().center(); - std::experimental::optional rippleMan(mgr.GetFluidPlaneManager()->GetRippleManager()); + rstl::optional rippleMan(mgr.GetFluidPlaneManager()->GetRippleManager()); x1b4_fluidPlane->Render(mgr, x2bc_alpha, aabb, xf, mgr.GetWorld()->GetAreaAlways(x4_areaId)->GetTransform(), false, x150_frustum, rippleMan, x8_uid, x2d8_tileIntersects.get(), x2c4_gridDimX, x2c8_gridDimY, areaCenter); @@ -499,7 +499,7 @@ EWeaponCollisionResponseTypes CScriptWater::GetCollisionResponseType(const zeus: u16 CScriptWater::GetSplashSound(float mag) const { return x298_splashSounds[GetSplashIndex(mag)]; } -const std::experimental::optional>& CScriptWater::GetSplashEffect(float mag) const { +const rstl::optional>& CScriptWater::GetSplashEffect(float mag) const { return x264_splashEffects[GetSplashIndex(mag)]; } diff --git a/Runtime/World/CScriptWater.hpp b/Runtime/World/CScriptWater.hpp index ca3c1c1fd..1028ffa63 100644 --- a/Runtime/World/CScriptWater.hpp +++ b/Runtime/World/CScriptWater.hpp @@ -31,12 +31,12 @@ class CScriptWater : public CScriptTrigger { CAssetId x230_splashParticle2Id; CAssetId x234_splashParticle3Id; CAssetId x238_visorRunoffParticleId; - std::experimental::optional> x23c_visorRunoffEffect; + rstl::optional> x23c_visorRunoffEffect; CAssetId x24c_unmorphVisorRunoffParticleId; - std::experimental::optional> x250_unmorphVisorRunoffEffect; + rstl::optional> x250_unmorphVisorRunoffEffect; u16 x260_visorRunoffSfx; u16 x262_unmorphVisorRunoffSfx; - rstl::reserved_vector>, 3> x264_splashEffects; + rstl::reserved_vector>, 3> x264_splashEffects; rstl::reserved_vector x298_splashSounds; zeus::CColor x2a4_splashColor; zeus::CColor x2a8_insideFogColor; @@ -102,7 +102,7 @@ public: const CWeaponMode&, EProjectileAttrib) const; u16 GetSplashSound(float) const; - const std::experimental::optional>& GetSplashEffect(float) const; + const rstl::optional>& GetSplashEffect(float) const; float GetSplashEffectScale(float) const; u32 GetSplashIndex(float) const; CFluidPlaneCPU& FluidPlane() { return *x1b4_fluidPlane; } @@ -115,11 +115,11 @@ public: void SetFrustumPlanes(const zeus::CFrustum& frustum) { x150_frustum = frustum; } const zeus::CFrustum& GetFrustumPlanes() const { return x150_frustum; } CFluidPlaneCPU& GetFluidPlane() const { return *x1b4_fluidPlane; } - const std::experimental::optional>& GetVisorRunoffEffect() const { + const rstl::optional>& GetVisorRunoffEffect() const { return x23c_visorRunoffEffect; } u16 GetVisorRunoffSfx() const { return x260_visorRunoffSfx; } - const std::experimental::optional>& GetUnmorphVisorRunoffEffect() const { + const rstl::optional>& GetUnmorphVisorRunoffEffect() const { return x250_unmorphVisorRunoffEffect; } u16 GetUnmorphVisorRunoffSfx() const { return x262_unmorphVisorRunoffSfx; } diff --git a/Runtime/World/CVisorFlare.cpp b/Runtime/World/CVisorFlare.cpp index 3bcd70da0..ff93de507 100644 --- a/Runtime/World/CVisorFlare.cpp +++ b/Runtime/World/CVisorFlare.cpp @@ -4,7 +4,7 @@ namespace urde { -std::experimental::optional CVisorFlare::LoadFlareDef(CInputStream& in) { +rstl::optional CVisorFlare::LoadFlareDef(CInputStream& in) { u32 propCount = in.readUint32Big(); if (propCount != 4) return {}; diff --git a/Runtime/World/CVisorFlare.hpp b/Runtime/World/CVisorFlare.hpp index a606dda7e..787c84f70 100644 --- a/Runtime/World/CVisorFlare.hpp +++ b/Runtime/World/CVisorFlare.hpp @@ -48,7 +48,7 @@ public: CVisorFlare(EBlendMode blendMode, bool, float, float, float, u32, u32, const std::vector& flares); void Update(float dt, const zeus::CVector3f& pos, const CActor* act, CStateManager& mgr); void Render(const zeus::CVector3f& pos, const CStateManager& mgr) const; - static std::experimental::optional LoadFlareDef(CInputStream& in); + static rstl::optional LoadFlareDef(CInputStream& in); }; } // namespace urde diff --git a/Runtime/World/CWorldShadow.hpp b/Runtime/World/CWorldShadow.hpp index 053dd7d01..5c9176d29 100644 --- a/Runtime/World/CWorldShadow.hpp +++ b/Runtime/World/CWorldShadow.hpp @@ -20,7 +20,7 @@ class CWorldShadow { s32 x84_lightIdx = -1; bool x88_blurReset = true; #if CWORLDSHADOW_FEEDBACK - std::experimental::optional m_feedback; + rstl::optional m_feedback; #endif public: CWorldShadow(u32 w, u32 h, bool rgba8); diff --git a/Runtime/World/ScriptLoader.cpp b/Runtime/World/ScriptLoader.cpp index 3bbf1dcdd..bb2ab4a6e 100644 --- a/Runtime/World/ScriptLoader.cpp +++ b/Runtime/World/ScriptLoader.cpp @@ -645,7 +645,7 @@ CEntity* ScriptLoader::LoadPlatform(CStateManager& mgr, CInputStream& in, int pr zeus::CAABox aabb = GetCollisionBox(mgr, info.GetAreaId(), extent, centroid); FourCC dclnType = g_ResFactory->GetResourceTypeById(dclnId); - std::experimental::optional> dclnToken; + rstl::optional> dclnToken; if (dclnType) { dclnToken.emplace(g_SimplePool->GetObj({SBIG('DCLN'), dclnId})); dclnToken->GetObj(); @@ -994,7 +994,7 @@ CEntity* ScriptLoader::LoadBeetle(CStateManager& mgr, CInputStream& in, int prop if (animType != SBIG('ANCS')) return nullptr; - std::experimental::optional tailRes; + rstl::optional tailRes; if (flavor == CPatterned::EFlavorType::One) tailRes.emplace(CStaticRes(tailModel, scale)); diff --git a/Runtime/rstl.hpp b/Runtime/rstl.hpp index 5baa6dbd6..370f79b62 100644 --- a/Runtime/rstl.hpp +++ b/Runtime/rstl.hpp @@ -646,4 +646,9 @@ string string_l(const char* data) } #endif +template +using optional = std::experimental::optional; +using nullopt_t = std::experimental::nullopt_t; +constexpr nullopt_t nullopt{nullopt_t::init()}; + } // namespace rstl diff --git a/amuse b/amuse index d80f1346b..fc2f8542c 160000 --- a/amuse +++ b/amuse @@ -1 +1 @@ -Subproject commit d80f1346bb7f2b1849e8512d3b2f024c4e428c76 +Subproject commit fc2f8542c1d822901e2f6048ded1714020287490 diff --git a/hecl b/hecl index 354bf7845..d51204a7b 160000 --- a/hecl +++ b/hecl @@ -1 +1 @@ -Subproject commit 354bf78451e2b2433744656f4c14d0e3cf3e7837 +Subproject commit d51204a7b74b38a17f219ce53ccc7fcc1f503db4 diff --git a/specter b/specter index 995b4268b..87e1106c6 160000 --- a/specter +++ b/specter @@ -1 +1 @@ -Subproject commit 995b4268bd37b4ab93cc794a9e6bd7b38bbda1c0 +Subproject commit 87e1106c601e163a991f5b9290241a060e7df617