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", -- "MapEnts",
-- "FxWorld", -- "FxWorld",
-- "GfxWorld", -- "GfxWorld",
-- "GfxLightDef", "GfxLightDef",
-- "Font_s", -- "Font_s",
"MenuList", "MenuList",
"menuDef_t", "menuDef_t",

View File

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

View File

@ -123,7 +123,7 @@ GameAssetPoolIW4::GameAssetPoolIW4(const int priority)
// m_map_ents = nullptr; // m_map_ents = nullptr;
// m_fx_world = nullptr; // m_fx_world = nullptr;
// m_gfx_world = nullptr; // m_gfx_world = nullptr;
// m_gfx_light_def = nullptr; m_gfx_light_def = nullptr;
// m_font = nullptr; // m_font = nullptr;
m_menu_list = nullptr; m_menu_list = nullptr;
m_menu_def = 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_MAP_ENTS, m_map_ents, MapEnts);
// CASE_INIT_POOL_STATIC(ASSET_TYPE_FXWORLD, m_fx_world, FxWorld); // 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_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_FONT, m_font, Font_s);
CASE_INIT_POOL_STATIC(ASSET_TYPE_MENULIST, m_menu_list, MenuList); CASE_INIT_POOL_STATIC(ASSET_TYPE_MENULIST, m_menu_list, MenuList);
CASE_INIT_POOL_STATIC(ASSET_TYPE_MENU, m_menu_def, menuDef_t); 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_MAP_ENTS, m_map_ents, MapEnts);
// CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_FXWORLD, m_fx_world, FxWorld); // 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_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_FONT, m_font, Font_s);
CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MENULIST, m_menu_list, MenuList); CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MENULIST, m_menu_list, MenuList);
CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_MENU, m_menu_def, menuDef_t); 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_MAP_ENTS, m_map_ents, mapEnts);
// CASE_ADD_TO_POOL(ASSET_TYPE_FXWORLD, m_fx_world, fxWorld); // 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_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_FONT, m_font, font);
CASE_ADD_TO_POOL(ASSET_TYPE_MENULIST, m_menu_list, menuList); CASE_ADD_TO_POOL(ASSET_TYPE_MENULIST, m_menu_list, menuList);
CASE_ADD_TO_POOL(ASSET_TYPE_MENU, m_menu_def, menu); 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_MAP_ENTS, m_map_ents);
// CASE_GET_ASSET(ASSET_TYPE_FXWORLD, m_fx_world); // CASE_GET_ASSET(ASSET_TYPE_FXWORLD, m_fx_world);
// CASE_GET_ASSET(ASSET_TYPE_GFXWORLD, m_gfx_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_FONT, m_font);
CASE_GET_ASSET(ASSET_TYPE_MENULIST, m_menu_list); CASE_GET_ASSET(ASSET_TYPE_MENULIST, m_menu_list);
CASE_GET_ASSET(ASSET_TYPE_MENU, m_menu_def); 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::MapEnts>> m_map_ents;
// std::unique_ptr<AssetPool<IW4::FxWorld>> m_fx_world; // std::unique_ptr<AssetPool<IW4::FxWorld>> m_fx_world;
// std::unique_ptr<AssetPool<IW4::GfxWorld>> m_gfx_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::Font_s>> m_font;
std::unique_ptr<AssetPool<IW4::MenuList>> m_menu_list; std::unique_ptr<AssetPool<IW4::MenuList>> m_menu_list;
std::unique_ptr<AssetPool<IW4::menuDef_t>> m_menu_def; std::unique_ptr<AssetPool<IW4::menuDef_t>> m_menu_def;

View File

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

View File

@ -14,7 +14,7 @@
//#include "Game/IW4/XAssets/gameworldmp/gameworldmp_load_db.h" //#include "Game/IW4/XAssets/gameworldmp/gameworldmp_load_db.h"
//#include "Game/IW4/XAssets/gameworldsp/gameworldsp_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/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/gfxworld/gfxworld_load_db.h"
//#include "Game/IW4/XAssets/leaderboarddef/leaderboarddef_load_db.h" //#include "Game/IW4/XAssets/leaderboarddef/leaderboarddef_load_db.h"
#include "Game/IW4/XAssets/loadedsound/loadedsound_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_MAP_ENTS, MapEnts, mapEnts);
// LOAD_ASSET(ASSET_TYPE_FXWORLD, FxWorld, fxWorld); // LOAD_ASSET(ASSET_TYPE_FXWORLD, FxWorld, fxWorld);
// LOAD_ASSET(ASSET_TYPE_GFXWORLD, GfxWorld, gfxWorld); // 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_FONT, Font_s, font);
LOAD_ASSET(ASSET_TYPE_MENULIST, MenuList, menuList); LOAD_ASSET(ASSET_TYPE_MENULIST, MenuList, menuList);
LOAD_ASSET(ASSET_TYPE_MENU, menuDef_t, menu); LOAD_ASSET(ASSET_TYPE_MENU, menuDef_t, menu);