mirror of https://github.com/AxioDL/metaforce.git
Various minor fixes
This commit is contained in:
parent
292e655737
commit
763fcdbd9c
|
@ -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
|
||||||
|
|
|
@ -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)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit b91c2739c9bff672355daf3bf6daa4d8813a52ba
|
Subproject commit ca822a7679bd0589ce8243f0138054085e3cabd6
|
Loading…
Reference in New Issue