Add IW4 ImpactFx loading code

This commit is contained in:
Jan
2020-09-09 11:58:42 +02:00
parent ceeb1832cd
commit b4756c3688
6 changed files with 32 additions and 12 deletions

View File

@ -131,7 +131,7 @@ GameAssetPoolIW4::GameAssetPoolIW4(const int priority)
// m_weapon = nullptr;
// m_snd_driver_globals = nullptr;
m_fx = nullptr;
// m_fx_impact_table = nullptr;
m_fx_impact_table = nullptr;
m_raw_file = nullptr;
m_string_table = nullptr;
// m_leaderboard = nullptr;
@ -184,7 +184,7 @@ void GameAssetPoolIW4::InitPoolStatic(const asset_type_t type, const size_t capa
// CASE_INIT_POOL_STATIC(ASSET_TYPE_WEAPON, m_weapon, WeaponCompleteDef);
// CASE_INIT_POOL_STATIC(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals, SndDriverGlobals);
CASE_INIT_POOL_STATIC(ASSET_TYPE_FX, m_fx, FxEffectDef);
// CASE_INIT_POOL_STATIC(ASSET_TYPE_IMPACT_FX, m_fx_impact_table, FxImpactTable);
CASE_INIT_POOL_STATIC(ASSET_TYPE_IMPACT_FX, m_fx_impact_table, FxImpactTable);
CASE_INIT_POOL_STATIC(ASSET_TYPE_RAWFILE, m_raw_file, RawFile);
CASE_INIT_POOL_STATIC(ASSET_TYPE_STRINGTABLE, m_string_table, StringTable);
// CASE_INIT_POOL_STATIC(ASSET_TYPE_LEADERBOARD, m_leaderboard, LeaderboardDef);
@ -244,7 +244,7 @@ void GameAssetPoolIW4::InitPoolDynamic(const asset_type_t type)
// CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_WEAPON, m_weapon, WeaponCompleteDef);
// CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals, SndDriverGlobals);
CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_FX, m_fx, FxEffectDef);
// CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_IMPACT_FX, m_fx_impact_table, FxImpactTable);
CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_IMPACT_FX, m_fx_impact_table, FxImpactTable);
CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_RAWFILE, m_raw_file, RawFile);
CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_STRINGTABLE, m_string_table, StringTable);
// CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LEADERBOARD, m_leaderboard, LeaderboardDef);
@ -313,7 +313,7 @@ XAssetInfoGeneric* GameAssetPoolIW4::AddAsset(asset_type_t type, std::string nam
// CASE_ADD_TO_POOL(ASSET_TYPE_WEAPON, m_weapon, weapon);
// CASE_ADD_TO_POOL(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals, sndDriverGlobals);
CASE_ADD_TO_POOL(ASSET_TYPE_FX, m_fx, fx);
// CASE_ADD_TO_POOL(ASSET_TYPE_IMPACT_FX, m_fx_impact_table, impactFx);
CASE_ADD_TO_POOL(ASSET_TYPE_IMPACT_FX, m_fx_impact_table, impactFx);
CASE_ADD_TO_POOL(ASSET_TYPE_RAWFILE, m_raw_file, rawfile);
CASE_ADD_TO_POOL(ASSET_TYPE_STRINGTABLE, m_string_table, stringTable);
// CASE_ADD_TO_POOL(ASSET_TYPE_LEADERBOARD, m_leaderboard, leaderboardDef);
@ -373,7 +373,7 @@ XAssetInfoGeneric* GameAssetPoolIW4::GetAsset(const asset_type_t type, std::stri
// CASE_GET_ASSET(ASSET_TYPE_WEAPON, m_weapon);
// CASE_GET_ASSET(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals);
CASE_GET_ASSET(ASSET_TYPE_FX, m_fx);
// CASE_GET_ASSET(ASSET_TYPE_IMPACT_FX, m_fx_impact_table);
CASE_GET_ASSET(ASSET_TYPE_IMPACT_FX, m_fx_impact_table);
CASE_GET_ASSET(ASSET_TYPE_RAWFILE, m_raw_file);
CASE_GET_ASSET(ASSET_TYPE_STRINGTABLE, m_string_table);
// CASE_GET_ASSET(ASSET_TYPE_LEADERBOARD, m_leaderboard);

View File

@ -43,7 +43,7 @@ public:
// std::unique_ptr<AssetPool<IW4::WeaponCompleteDef>> m_weapon;
// std::unique_ptr<AssetPool<IW4::SndDriverGlobals>> m_snd_driver_globals;
std::unique_ptr<AssetPool<IW4::FxEffectDef>> m_fx;
// std::unique_ptr<AssetPool<IW4::FxImpactTable>> m_fx_impact_table;
std::unique_ptr<AssetPool<IW4::FxImpactTable>> m_fx_impact_table;
std::unique_ptr<AssetPool<IW4::RawFile>> m_raw_file;
std::unique_ptr<AssetPool<IW4::StringTable>> m_string_table;
// std::unique_ptr<AssetPool<IW4::LeaderboardDef>> m_leaderboard;

View File

@ -102,7 +102,7 @@ namespace IW4
// struct WeaponCompleteDef;
// struct SndDriverGlobals;
struct FxEffectDef;
// struct FxImpactTable;
struct FxImpactTable;
struct RawFile;
struct StringTable;
@ -143,7 +143,7 @@ namespace IW4
// WeaponCompleteDef* weapon;
// SndDriverGlobals* sndDriverGlobals;
FxEffectDef* fx;
// FxImpactTable* impactFx;
FxImpactTable* impactFx;
RawFile* rawfile;
StringTable* stringTable;
// LeaderboardDef* leaderboardDef;
@ -1627,6 +1627,18 @@ namespace IW4
int lmapLookupStart;
};
struct FxImpactEntry
{
FxEffectDef* nonflesh[31];
FxEffectDef* flesh[4];
};
struct FxImpactTable
{
const char* name;
FxImpactEntry* table;
};
#ifndef __zonecodegenerator
}
#endif