aboutsummaryrefslogtreecommitdiff
path: root/NorthstarDLL/mods/modmanager.h
diff options
context:
space:
mode:
authorBobTheBob <for.oliver.kirkham@gmail.com>2023-03-04 23:07:05 +0000
committerBobTheBob <for.oliver.kirkham@gmail.com>2023-03-04 23:07:05 +0000
commit546de11c5524cb7b7bf67388c77a1508942d8fca (patch)
tree7fc3a6a37dfb136626532b029de2f8a8916e653e /NorthstarDLL/mods/modmanager.h
parente95aa783fa04aa6fb9f930e5b4d74ad447e7f087 (diff)
downloadNorthstarLauncher-546de11c5524cb7b7bf67388c77a1508942d8fca.tar.gz
NorthstarLauncher-546de11c5524cb7b7bf67388c77a1508942d8fca.zip
add basic deferred reloading and reloading for keyvalues
Diffstat (limited to 'NorthstarDLL/mods/modmanager.h')
-rw-r--r--NorthstarDLL/mods/modmanager.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/NorthstarDLL/mods/modmanager.h b/NorthstarDLL/mods/modmanager.h
index 940f1967..73d6cb3c 100644
--- a/NorthstarDLL/mods/modmanager.h
+++ b/NorthstarDLL/mods/modmanager.h
@@ -101,7 +101,6 @@ struct Mod
// other files:
std::vector<ModVPKEntry> Vpks;
- std::unordered_map<size_t, std::string> KeyValues;
std::vector<std::string> BinkVideos;
// todo audio override struct
@@ -142,7 +141,8 @@ class ModManager
void LoadModDefinitions();
void SaveEnabledMods();
- void InstallMods();
+ void BuildPublicModList();
+ void InstallMods(bool bDeferredAssetReload);
// mod installation funcs
void InstallModCvars(Mod& mod);
@@ -171,6 +171,8 @@ class ModManager
bool bPlayerSettings = false;
bool bAiSettings = false;
bool bDamageDefs = false; // damagedefs
+ bool bWeaponSprings = false;
+ bool bAmmoSuckBehaviours = false;
bool bDatatables = false;
// can't actually reload this atm, just print a warning (todo, could maybe restart client to ensure loaded?)
@@ -184,7 +186,7 @@ class ModManager
} m_AssetTypesToReload;
void CheckModFilesForChanges();
- void ReloadNecessaryModAssets();
+ void ReloadNecessaryModAssets(bool bDeferred);
struct ModLoadState
@@ -192,6 +194,7 @@ class ModManager
std::vector<Mod> m_LoadedMods;
std::unordered_map<std::string, ModOverrideFile> m_ModFiles;
std::unordered_map<std::string, std::string> m_DependencyConstants;
+ std::unordered_map<std::string, std::vector<ModOverrideFile>> m_KeyValues;
};
// unfortunately need to be ptrs, so we can copy m_ModLoadState => m_LastModLoadState
@@ -202,7 +205,7 @@ class ModManager
public:
ModManager();
- void LoadMods();
+ void LoadMods(bool bDeferredAssetReload);
std::string NormaliseModFilePath(const fs::path path);
void CompileAssetsForFile(const char* filename);
@@ -227,6 +230,12 @@ class ModManager
void TryBuildKeyValues(const char* filename);
void BuildKBActionsList();
+ // deferred asset reloading funcs (i.e. set engine flags to reload later)
+ void DeferredReloadDamageFlags();
+ void DeferredReloadWeaponSprings();
+ void DeferredReloadAmmoSuckBehaviours();
+ void DeferredReloadADSPulls();
+
// asset reloading funcs
bool TryReloadWeapon(const char* pWeaponName, const SidedWeaponReloadPointers* pReloadPointers);