Various minor fixes

This commit is contained in:
Phillip Stephens 2023-01-22 14:22:28 -08:00
parent 292e655737
commit 763fcdbd9c
7 changed files with 47 additions and 7 deletions

View File

@ -490,10 +490,9 @@ int main(int argc, char** argv) {
do { do {
metaforce::CVarManager cvarMgr{fileMgr}; metaforce::CVarManager cvarMgr{fileMgr};
metaforce::CVarCommons cvarCmns{cvarMgr}; metaforce::CVarCommons cvarCmns{cvarMgr};
if (!restart) {
cvarMgr.parseCommandLine(args); cvarMgr.parseCommandLine(args);
if (!restart) {
// TODO add clear loggers func to logvisor so we can recreate loggers on restart // TODO add clear loggers func to logvisor so we can recreate loggers on restart
bool logging = IsClientLoggingEnabled(argc, argv); bool logging = IsClientLoggingEnabled(argc, argv);
#if _WIN32 #if _WIN32

View File

@ -294,6 +294,7 @@ void CVarManager::parseCommandLine(const std::vector<std::string>& args) {
cv->fromLiteralToType(cvarValue); cv->fromLiteralToType(cvarValue);
} }
cv->m_wasDeserialized = true; cv->m_wasDeserialized = true;
cv->forceClearModified();
CStringExtras::ToLower(cvarName); CStringExtras::ToLower(cvarName);
if (developerName == cvarName) if (developerName == cvarName)
/* Make sure we're not overriding developer mode when we restore */ /* Make sure we're not overriding developer mode when we restore */
@ -301,7 +302,10 @@ void CVarManager::parseCommandLine(const std::vector<std::string>& args) {
} else { } else {
/* Unable to find an existing CVar, let's defer for the time being 8 */ /* Unable to find an existing CVar, let's defer for the time being 8 */
CStringExtras::ToLower(cvarName); CStringExtras::ToLower(cvarName);
m_deferedCVars.insert_or_assign(std::move(cvarName), std::move(cvarValue)); if (cvarValue.empty()) {
cvarValue = "true";
}
m_deferedCVars.insert(std::make_pair<std::string, std::string>(std::move(cvarName), std::move(cvarValue)));
} }
} }

View File

@ -3,6 +3,7 @@
#include <memory> #include <memory>
#include <string> #include <string>
#include <unordered_map> #include <unordered_map>
#include <map>
#include <vector> #include <vector>
#include "Runtime/ConsoleVariables/CVar.hpp" #include "Runtime/ConsoleVariables/CVar.hpp"
@ -109,7 +110,7 @@ private:
void restoreDeveloper(bool oldDeveloper); void restoreDeveloper(bool oldDeveloper);
std::unordered_map<std::string, std::unique_ptr<CVar>> m_cvars; std::unordered_map<std::string, std::unique_ptr<CVar>> m_cvars;
std::unordered_map<std::string, std::string> m_deferedCVars; std::map<std::string, std::string> m_deferedCVars;
std::vector<StoreCVar::CVar> loadCVars(const std::string& filename) const; std::vector<StoreCVar::CVar> loadCVars(const std::string& filename) const;
}; };

View File

@ -1,7 +1,8 @@
#include "Runtime/MP1/World/CMetroidPrimeProjectile.hpp" #include "Runtime/MP1/World/CMetroidPrimeProjectile.hpp"
#include "Runtime/World/CFire.hpp"
#include "Runtime/CSimplePool.hpp" #include "Runtime/CSimplePool.hpp"
#include "Runtime/GameGlobalObjects.hpp" #include "Runtime/GameGlobalObjects.hpp"
#include "Runtime/CStateManager.hpp"
namespace metaforce::MP1 { namespace metaforce::MP1 {
@ -30,4 +31,27 @@ CMetroidPrimeProjectile::CMetroidPrimeProjectile(bool active, const TToken<CWeap
visorParticle, visorSfx, sendCollideMsg) visorParticle, visorSfx, sendCollideMsg)
, x3d8_auxData(auxData) {} , x3d8_auxData(auxData) {}
bool CMetroidPrimeProjectile::Explode(const zeus::CVector3f& pos, const zeus::CVector3f& normal,
const EWeaponCollisionResponseTypes type, CStateManager& mgr,
const CDamageVulnerability& dVuln, TUniqueId hitActor) {
bool result = CEnergyProjectile::Explode(pos, normal, type, mgr, dVuln, hitActor);
if (!x2e4_24_active) {
TUniqueId newId(mgr.AllocateUniqueId());
zeus::CAABox box = zeus::CAABox(zeus::CVector3f(-1.f, -1.f, -1.f), zeus::CVector3f(1.f, 1.f, 1.f))
.getTransformedAABox(GetTransform() *
zeus::CTransform::Scale(x3d8_auxData.GetDamageInfo().GetRadius()));
CFire* fire = new CFire(x3d8_auxData.x4_particle, newId, GetAreaIdAlways(), true, GetUniqueId(), GetTransform(),
x3d8_auxData.GetDamageInfo(), box, zeus::CVector3f(1.f, 1.f, 1.f),
x3d8_auxData.GetFlag_27(), x3d8_auxData.GetTexture(), x3d8_auxData.GetFlag_24(),
x3d8_auxData.GetFlag_25(), x3d8_auxData.GetFlag_26(), 1.0, x3d8_auxData.Get_0x28(),
x3d8_auxData.Get_0x2c(), x3d8_auxData.Get_0x30());
if (fire) {
mgr.AddObject(fire);
}
}
return result;
}
} // namespace metaforce::MP1 } // namespace metaforce::MP1

View File

@ -18,6 +18,15 @@ struct SPrimeProjectileInfo {
bool x38_26_ : 1; bool x38_26_ : 1;
bool x38_27_ : 1; bool x38_27_ : 1;
explicit SPrimeProjectileInfo(CInputStream& in); explicit SPrimeProjectileInfo(CInputStream& in);
const CDamageInfo& GetDamageInfo() const { return xc_dInfo; }
float Get_0x28() const { return x28_; }
float Get_0x2c() const { return x2c_; }
float Get_0x30() const { return x30_; }
CAssetId GetTexture() const { return x34_texture; }
const bool GetFlag_24() const { return x38_24_; }
const bool GetFlag_25() const { return x38_25_; }
const bool GetFlag_26() const { return x38_26_; }
const bool GetFlag_27() const { return x38_27_; }
}; };
class CMetroidPrimeProjectile : public CEnergyProjectile { class CMetroidPrimeProjectile : public CEnergyProjectile {
@ -31,6 +40,9 @@ public:
TUniqueId homingTarget, EProjectileAttrib attribs, const zeus::CVector3f& scale, TUniqueId homingTarget, EProjectileAttrib attribs, const zeus::CVector3f& scale,
const std::optional<TLockedToken<CGenDescription>>& visorParticle, u16 visorSfx, const std::optional<TLockedToken<CGenDescription>>& visorParticle, u16 visorSfx,
bool sendCollideMsg); bool sendCollideMsg);
bool Explode(const zeus::CVector3f& pos, const zeus::CVector3f& normal, const EWeaponCollisionResponseTypes type,
CStateManager& mgr, const CDamageVulnerability& dVuln, TUniqueId hitActor) override;
}; };
} // namespace metaforce::MP1 } // namespace metaforce::MP1

2
extern/aurora vendored

@ -1 +1 @@
Subproject commit b91c2739c9bff672355daf3bf6daa4d8813a52ba Subproject commit ca822a7679bd0589ce8243f0138054085e3cabd6