Add IW4 GfxLightDef asset loading code

This commit is contained in:
Jan 2020-09-09 11:54:15 +02:00
parent 24195be273
commit ceeb1832cd
6 changed files with 33 additions and 12 deletions

View File

@ -22,7 +22,7 @@ ZoneCode.Assets = {
-- "MapEnts",
-- "FxWorld",
-- "GfxWorld",
-- "GfxLightDef",
"GfxLightDef",
-- "Font_s",
"MenuList",
"menuDef_t",

View File

@ -22,7 +22,7 @@ asset LoadedSound ASSET_TYPE_LOADED_SOUND;
// asset MapEnts ASSET_TYPE_MAP_ENTS;
// asset FxWorld ASSET_TYPE_FXWORLD;
// asset GfxWorld ASSET_TYPE_GFXWORLD;
// asset GfxLightDef ASSET_TYPE_LIGHT_DEF;
asset GfxLightDef ASSET_TYPE_LIGHT_DEF;
// asset Font_s ASSET_TYPE_FONT;
asset MenuList ASSET_TYPE_MENULIST;
asset menuDef_t ASSET_TYPE_MENU;
@ -616,6 +616,13 @@ use FxTrailDef;
set count verts vertCount;
set count inds indCount;
// =========================================
// GfxLightDef
// =========================================
use GfxLightDef;
set string name;
set name name;
// =========================================
// RawFile
// =========================================

View File

@ -123,7 +123,7 @@ GameAssetPoolIW4::GameAssetPoolIW4(const int priority)
// m_map_ents = nullptr;
// m_fx_world = nullptr;
// m_gfx_world = nullptr;
// m_gfx_light_def = nullptr;
m_gfx_light_def = nullptr;
// m_font = nullptr;
m_menu_list = nullptr;
m_menu_def = nullptr;
@ -176,7 +176,7 @@ void GameAssetPoolIW4::InitPoolStatic(const asset_type_t type, const size_t capa
// CASE_INIT_POOL_STATIC(ASSET_TYPE_MAP_ENTS, m_map_ents, MapEnts);
// CASE_INIT_POOL_STATIC(ASSET_TYPE_FXWORLD, m_fx_world, FxWorld);
// CASE_INIT_POOL_STATIC(ASSET_TYPE_GFXWORLD, m_gfx_world, GfxWorld);
// CASE_INIT_POOL_STATIC(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def, GfxLightDef);
CASE_INIT_POOL_STATIC(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def, GfxLightDef);
// CASE_INIT_POOL_STATIC(ASSET_TYPE_FONT, m_font, Font_s);
CASE_INIT_POOL_STATIC(ASSET_TYPE_MENULIST, m_menu_list, MenuList);
CASE_INIT_POOL_STATIC(ASSET_TYPE_MENU, m_menu_def, menuDef_t);
@ -236,7 +236,7 @@ void GameAssetPoolIW4::InitPoolDynamic(const asset_type_t type)
// CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MAP_ENTS, m_map_ents, MapEnts);
// CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_FXWORLD, m_fx_world, FxWorld);
// CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_GFXWORLD, m_gfx_world, GfxWorld);
// CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def, GfxLightDef);
CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def, GfxLightDef);
// CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_FONT, m_font, Font_s);
CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MENULIST, m_menu_list, MenuList);
CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MENU, m_menu_def, menuDef_t);
@ -305,7 +305,7 @@ XAssetInfoGeneric* GameAssetPoolIW4::AddAsset(asset_type_t type, std::string nam
// CASE_ADD_TO_POOL(ASSET_TYPE_MAP_ENTS, m_map_ents, mapEnts);
// CASE_ADD_TO_POOL(ASSET_TYPE_FXWORLD, m_fx_world, fxWorld);
// CASE_ADD_TO_POOL(ASSET_TYPE_GFXWORLD, m_gfx_world, gfxWorld);
// CASE_ADD_TO_POOL(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def, lightDef);
CASE_ADD_TO_POOL(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def, lightDef);
// CASE_ADD_TO_POOL(ASSET_TYPE_FONT, m_font, font);
CASE_ADD_TO_POOL(ASSET_TYPE_MENULIST, m_menu_list, menuList);
CASE_ADD_TO_POOL(ASSET_TYPE_MENU, m_menu_def, menu);
@ -365,7 +365,7 @@ XAssetInfoGeneric* GameAssetPoolIW4::GetAsset(const asset_type_t type, std::stri
// CASE_GET_ASSET(ASSET_TYPE_MAP_ENTS, m_map_ents);
// CASE_GET_ASSET(ASSET_TYPE_FXWORLD, m_fx_world);
// CASE_GET_ASSET(ASSET_TYPE_GFXWORLD, m_gfx_world);
// CASE_GET_ASSET(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def);
CASE_GET_ASSET(ASSET_TYPE_LIGHT_DEF, m_gfx_light_def);
// CASE_GET_ASSET(ASSET_TYPE_FONT, m_font);
CASE_GET_ASSET(ASSET_TYPE_MENULIST, m_menu_list);
CASE_GET_ASSET(ASSET_TYPE_MENU, m_menu_def);

View File

@ -35,7 +35,7 @@ public:
// std::unique_ptr<AssetPool<IW4::MapEnts>> m_map_ents;
// std::unique_ptr<AssetPool<IW4::FxWorld>> m_fx_world;
// std::unique_ptr<AssetPool<IW4::GfxWorld>> m_gfx_world;
// std::unique_ptr<AssetPool<IW4::GfxLightDef>> m_gfx_light_def;
std::unique_ptr<AssetPool<IW4::GfxLightDef>> m_gfx_light_def;
// std::unique_ptr<AssetPool<IW4::Font_s>> m_font;
std::unique_ptr<AssetPool<IW4::MenuList>> m_menu_list;
std::unique_ptr<AssetPool<IW4::menuDef_t>> m_menu_def;

View File

@ -94,7 +94,7 @@ namespace IW4
// struct MapEnts;
// struct FxWorld;
// struct GfxWorld;
// struct GfxLightDef;
struct GfxLightDef;
// struct Font_s;
struct MenuList;
struct menuDef_t;
@ -105,6 +105,7 @@ namespace IW4
// struct FxImpactTable;
struct RawFile;
struct StringTable;
// struct LeaderboardDef;
// struct StructuredDataDefSet;
// struct TracerDef;
@ -134,7 +135,7 @@ namespace IW4
// MapEnts* mapEnts;
// FxWorld* fxWorld;
// GfxWorld* gfxWorld;
// GfxLightDef* lightDef;
GfxLightDef* lightDef;
// Font_s* font;
MenuList* menuList;
menuDef_t* menu;
@ -1613,6 +1614,19 @@ namespace IW4
FxElemDef* elemDefs;
};
struct GfxLightImage
{
GfxImage* image;
char samplerState;
};
struct GfxLightDef
{
const char* name;
GfxLightImage attenuation;
int lmapLookupStart;
};
#ifndef __zonecodegenerator
}
#endif

View File

@ -14,7 +14,7 @@
//#include "Game/IW4/XAssets/gameworldmp/gameworldmp_load_db.h"
//#include "Game/IW4/XAssets/gameworldsp/gameworldsp_load_db.h"
#include "Game/IW4/XAssets/gfximage/gfximage_load_db.h"
//#include "Game/IW4/XAssets/gfxlightdef/gfxlightdef_load_db.h"
#include "Game/IW4/XAssets/gfxlightdef/gfxlightdef_load_db.h"
//#include "Game/IW4/XAssets/gfxworld/gfxworld_load_db.h"
//#include "Game/IW4/XAssets/leaderboarddef/leaderboarddef_load_db.h"
#include "Game/IW4/XAssets/loadedsound/loadedsound_load_db.h"
@ -124,7 +124,7 @@ void ContentLoaderIW4::LoadXAsset(const bool atStreamStart)
// LOAD_ASSET(ASSET_TYPE_MAP_ENTS, MapEnts, mapEnts);
// LOAD_ASSET(ASSET_TYPE_FXWORLD, FxWorld, fxWorld);
// LOAD_ASSET(ASSET_TYPE_GFXWORLD, GfxWorld, gfxWorld);
// LOAD_ASSET(ASSET_TYPE_LIGHT_DEF, GfxLightDef, lightDef);
LOAD_ASSET(ASSET_TYPE_LIGHT_DEF, GfxLightDef, lightDef);
// LOAD_ASSET(ASSET_TYPE_FONT, Font_s, font);
LOAD_ASSET(ASSET_TYPE_MENULIST, MenuList, menuList);
LOAD_ASSET(ASSET_TYPE_MENU, menuDef_t, menu);