mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-20 00:02:55 +00:00
Add menu loading for iw4
This commit is contained in:
parent
18bd0ab524
commit
bdbfb7114e
@ -24,8 +24,8 @@ ZoneCode.Assets = {
|
|||||||
-- "GfxWorld",
|
-- "GfxWorld",
|
||||||
-- "GfxLightDef",
|
-- "GfxLightDef",
|
||||||
-- "Font_s",
|
-- "Font_s",
|
||||||
-- "MenuList",
|
"MenuList",
|
||||||
-- "menuDef_t",
|
"menuDef_t",
|
||||||
"LocalizeEntry",
|
"LocalizeEntry",
|
||||||
-- "WeaponCompleteDef",
|
-- "WeaponCompleteDef",
|
||||||
-- "SndDriverGlobals",
|
-- "SndDriverGlobals",
|
||||||
|
@ -24,8 +24,8 @@ asset LoadedSound ASSET_TYPE_LOADED_SOUND;
|
|||||||
// 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;
|
||||||
asset LocalizeEntry ASSET_TYPE_LOCALIZE_ENTRY;
|
asset LocalizeEntry ASSET_TYPE_LOCALIZE_ENTRY;
|
||||||
// asset WeaponCompleteDef ASSET_TYPE_WEAPON;
|
// asset WeaponCompleteDef ASSET_TYPE_WEAPON;
|
||||||
// asset SndDriverGlobals ASSET_TYPE_SNDDRIVER_GLOBALS;
|
// asset SndDriverGlobals ASSET_TYPE_SNDDRIVER_GLOBALS;
|
||||||
@ -407,6 +407,164 @@ set string name;
|
|||||||
set name name;
|
set name name;
|
||||||
set string value;
|
set string value;
|
||||||
|
|
||||||
|
// =========================================
|
||||||
|
// MenuList
|
||||||
|
// =========================================
|
||||||
|
use MenuList;
|
||||||
|
set string name;
|
||||||
|
set name name;
|
||||||
|
set count menus menuCount;
|
||||||
|
|
||||||
|
// =========================================
|
||||||
|
// menuDef_t
|
||||||
|
// =========================================
|
||||||
|
use menuDef_t;
|
||||||
|
set string window::name;
|
||||||
|
set name window::name;
|
||||||
|
set string font;
|
||||||
|
set reusable visibleExp;
|
||||||
|
set string allowedBinding;
|
||||||
|
set string soundName;
|
||||||
|
set reusable rectXExp;
|
||||||
|
set reusable rectYExp;
|
||||||
|
set reusable rectWExp;
|
||||||
|
set reusable rectHExp;
|
||||||
|
set reusable openSoundExp;
|
||||||
|
set reusable closeSoundExp;
|
||||||
|
set count items itemCount;
|
||||||
|
set reusable expressionData;
|
||||||
|
reorder:
|
||||||
|
expressionData
|
||||||
|
window
|
||||||
|
font
|
||||||
|
onOpen
|
||||||
|
onClose
|
||||||
|
onCloseRequest
|
||||||
|
onESC
|
||||||
|
onKey
|
||||||
|
visibleExp
|
||||||
|
allowedBinding
|
||||||
|
soundName
|
||||||
|
rectXExp
|
||||||
|
rectYExp
|
||||||
|
rectWExp
|
||||||
|
rectHExp
|
||||||
|
openSoundExp
|
||||||
|
closeSoundExp
|
||||||
|
items;
|
||||||
|
|
||||||
|
// windowDef_t
|
||||||
|
use windowDef_t;
|
||||||
|
set string name;
|
||||||
|
set string group;
|
||||||
|
|
||||||
|
// MenuEventHandlerSet
|
||||||
|
set count MenuEventHandlerSet::eventHandlers eventHandlerCount;
|
||||||
|
|
||||||
|
// MenuEventHandler
|
||||||
|
use MenuEventHandler;
|
||||||
|
set string eventData::unconditionalScript;
|
||||||
|
set condition eventData::unconditionalScript eventType == EVENT_UNCONDITIONAL;
|
||||||
|
set condition eventData::conditionalScript eventType == EVENT_IF;
|
||||||
|
set condition eventData::elseScript eventType == EVENT_ELSE;
|
||||||
|
set condition eventData::setLocalVarData eventType == EVENT_SET_LOCAL_VAR_BOOL
|
||||||
|
|| eventType == EVENT_SET_LOCAL_VAR_INT
|
||||||
|
|| eventType == EVENT_SET_LOCAL_VAR_FLOAT
|
||||||
|
|| eventType == EVENT_SET_LOCAL_VAR_STRING;
|
||||||
|
|
||||||
|
// ConditionalScript
|
||||||
|
use ConditionalScript;
|
||||||
|
set reusable eventExpression;
|
||||||
|
reorder:
|
||||||
|
eventExpression
|
||||||
|
eventHandlerSet;
|
||||||
|
|
||||||
|
// SetLocalVarData
|
||||||
|
use SetLocalVarData;
|
||||||
|
set string localVarName;
|
||||||
|
set reusable expression;
|
||||||
|
|
||||||
|
// Statement_s
|
||||||
|
use Statement_s;
|
||||||
|
set count entries numEntries;
|
||||||
|
set reusable supportingData;
|
||||||
|
set condition lastResult never;
|
||||||
|
|
||||||
|
// expressionEntry
|
||||||
|
set condition expressionEntry::data::operand type == EET_OPERAND;
|
||||||
|
|
||||||
|
// Operand
|
||||||
|
use Operand;
|
||||||
|
set reusable internals::function;
|
||||||
|
set condition internals::intVal dataType == VAL_INT;
|
||||||
|
set condition internals::floatVal dataType == VAL_FLOAT;
|
||||||
|
set condition internals::stringVal dataType == VAL_STRING;
|
||||||
|
set condition internals::function dataType == VAL_FUNCTION;
|
||||||
|
|
||||||
|
// ExpressionString
|
||||||
|
set string ExpressionString::string;
|
||||||
|
|
||||||
|
// itemDef_s
|
||||||
|
use itemDef_s;
|
||||||
|
set string text;
|
||||||
|
set condition parent never;
|
||||||
|
set string dvar;
|
||||||
|
set string dvarTest;
|
||||||
|
set string enableDvar;
|
||||||
|
set string localVar;
|
||||||
|
set count floatExpressions floatExpressionCount;
|
||||||
|
set reusable visibleExp;
|
||||||
|
set reusable disabledExp;
|
||||||
|
set reusable textExp;
|
||||||
|
set reusable materialExp;
|
||||||
|
|
||||||
|
// itemDefData_t
|
||||||
|
use itemDefData_t;
|
||||||
|
set string enumDvarName;
|
||||||
|
set condition data never;
|
||||||
|
set condition listBox itemDef_s::type == 6;
|
||||||
|
set condition editField itemDef_s::type == 0
|
||||||
|
|| itemDef_s::type == 4
|
||||||
|
|| itemDef_s::type == 9
|
||||||
|
|| itemDef_s::type == 10
|
||||||
|
|| itemDef_s::type == 11
|
||||||
|
|| itemDef_s::type == 14
|
||||||
|
|| itemDef_s::type == 16
|
||||||
|
|| itemDef_s::type == 17
|
||||||
|
|| itemDef_s::type == 18
|
||||||
|
|| itemDef_s::type == 22
|
||||||
|
|| itemDef_s::type == 23;
|
||||||
|
set condition multi itemDef_s::type == 12;
|
||||||
|
set condition enumDvarName itemDef_s::type == 13;
|
||||||
|
set condition ticker itemDef_s::type == 20;
|
||||||
|
set condition scroll itemDef_s::type == 21;
|
||||||
|
|
||||||
|
// multiDef_s
|
||||||
|
use multiDef_s;
|
||||||
|
set string dvarList;
|
||||||
|
set string dvarStr;
|
||||||
|
|
||||||
|
// ItemFloatExpression
|
||||||
|
set reusable ItemFloatExpression::expression;
|
||||||
|
|
||||||
|
// UIFunctionList
|
||||||
|
use UIFunctionList;
|
||||||
|
set count functions totalFunctions;
|
||||||
|
set reusable functions; // This statement makes both the array of pointers and the pointers in the array reusable. only the second one is correct however this shouldn't be a problem with vanilla fastfiles.
|
||||||
|
|
||||||
|
// StaticDvarList
|
||||||
|
set count StaticDvarList::staticDvars numStaticDvars;
|
||||||
|
|
||||||
|
// StaticDvar
|
||||||
|
use StaticDvar;
|
||||||
|
set condition dvar never;
|
||||||
|
set string dvarName;
|
||||||
|
|
||||||
|
// StringList
|
||||||
|
use StringList;
|
||||||
|
set count strings totalStrings;
|
||||||
|
set string strings;
|
||||||
|
|
||||||
// =========================================
|
// =========================================
|
||||||
// RawFile
|
// RawFile
|
||||||
// =========================================
|
// =========================================
|
||||||
|
@ -125,8 +125,8 @@ GameAssetPoolIW4::GameAssetPoolIW4(const int priority)
|
|||||||
// 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;
|
||||||
m_localize = nullptr;
|
m_localize = nullptr;
|
||||||
// m_weapon = nullptr;
|
// m_weapon = nullptr;
|
||||||
// m_snd_driver_globals = nullptr;
|
// m_snd_driver_globals = nullptr;
|
||||||
@ -178,8 +178,8 @@ void GameAssetPoolIW4::InitPoolStatic(const asset_type_t type, const size_t capa
|
|||||||
// 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);
|
||||||
CASE_INIT_POOL_STATIC(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, LocalizeEntry);
|
CASE_INIT_POOL_STATIC(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, LocalizeEntry);
|
||||||
// CASE_INIT_POOL_STATIC(ASSET_TYPE_WEAPON, m_weapon, WeaponCompleteDef);
|
// 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_SNDDRIVER_GLOBALS, m_snd_driver_globals, SndDriverGlobals);
|
||||||
@ -238,8 +238,8 @@ void GameAssetPoolIW4::InitPoolDynamic(const asset_type_t type)
|
|||||||
// 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);
|
||||||
CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, LocalizeEntry);
|
CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, LocalizeEntry);
|
||||||
// CASE_INIT_POOL_DYNAMIC(ASSET_TYPE_WEAPON, m_weapon, WeaponCompleteDef);
|
// 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_SNDDRIVER_GLOBALS, m_snd_driver_globals, SndDriverGlobals);
|
||||||
@ -307,8 +307,8 @@ XAssetInfoGeneric* GameAssetPoolIW4::AddAsset(asset_type_t type, std::string nam
|
|||||||
// 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);
|
||||||
CASE_ADD_TO_POOL(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, localize);
|
CASE_ADD_TO_POOL(ASSET_TYPE_LOCALIZE_ENTRY, m_localize, localize);
|
||||||
// CASE_ADD_TO_POOL(ASSET_TYPE_WEAPON, m_weapon, weapon);
|
// 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_SNDDRIVER_GLOBALS, m_snd_driver_globals, sndDriverGlobals);
|
||||||
@ -367,8 +367,8 @@ XAssetInfoGeneric* GameAssetPoolIW4::GetAsset(const asset_type_t type, std::stri
|
|||||||
// 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);
|
||||||
CASE_GET_ASSET(ASSET_TYPE_LOCALIZE_ENTRY, m_localize);
|
CASE_GET_ASSET(ASSET_TYPE_LOCALIZE_ENTRY, m_localize);
|
||||||
// CASE_GET_ASSET(ASSET_TYPE_WEAPON, m_weapon);
|
// CASE_GET_ASSET(ASSET_TYPE_WEAPON, m_weapon);
|
||||||
// CASE_GET_ASSET(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals);
|
// CASE_GET_ASSET(ASSET_TYPE_SNDDRIVER_GLOBALS, m_snd_driver_globals);
|
||||||
|
@ -37,8 +37,8 @@ public:
|
|||||||
// 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;
|
||||||
std::unique_ptr<AssetPool<IW4::LocalizeEntry>> m_localize;
|
std::unique_ptr<AssetPool<IW4::LocalizeEntry>> m_localize;
|
||||||
// std::unique_ptr<AssetPool<IW4::WeaponCompleteDef>> m_weapon;
|
// std::unique_ptr<AssetPool<IW4::WeaponCompleteDef>> m_weapon;
|
||||||
// std::unique_ptr<AssetPool<IW4::SndDriverGlobals>> m_snd_driver_globals;
|
// std::unique_ptr<AssetPool<IW4::SndDriverGlobals>> m_snd_driver_globals;
|
||||||
|
@ -96,8 +96,8 @@ namespace IW4
|
|||||||
// struct GfxWorld;
|
// struct GfxWorld;
|
||||||
// struct GfxLightDef;
|
// struct GfxLightDef;
|
||||||
// struct Font_s;
|
// struct Font_s;
|
||||||
// struct MenuList;
|
struct MenuList;
|
||||||
// struct menuDef_t;
|
struct menuDef_t;
|
||||||
struct LocalizeEntry;
|
struct LocalizeEntry;
|
||||||
// struct WeaponCompleteDef;
|
// struct WeaponCompleteDef;
|
||||||
// struct SndDriverGlobals;
|
// struct SndDriverGlobals;
|
||||||
@ -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;
|
||||||
@ -136,8 +137,8 @@ namespace IW4
|
|||||||
// GfxWorld* gfxWorld;
|
// GfxWorld* gfxWorld;
|
||||||
// GfxLightDef* lightDef;
|
// GfxLightDef* lightDef;
|
||||||
// Font_s* font;
|
// Font_s* font;
|
||||||
// MenuList* menuList;
|
MenuList* menuList;
|
||||||
// menuDef_t* menu;
|
menuDef_t* menu;
|
||||||
LocalizeEntry* localize;
|
LocalizeEntry* localize;
|
||||||
// WeaponCompleteDef* weapon;
|
// WeaponCompleteDef* weapon;
|
||||||
// SndDriverGlobals* sndDriverGlobals;
|
// SndDriverGlobals* sndDriverGlobals;
|
||||||
@ -941,11 +942,13 @@ namespace IW4
|
|||||||
float distMax;
|
float distMax;
|
||||||
float velocityMin;
|
float velocityMin;
|
||||||
int flags;
|
int flags;
|
||||||
|
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
float slavePercentage;
|
float slavePercentage;
|
||||||
float masterPercentage;
|
float masterPercentage;
|
||||||
};
|
};
|
||||||
|
|
||||||
float probability;
|
float probability;
|
||||||
float lfePercentage;
|
float lfePercentage;
|
||||||
float centerPercentage;
|
float centerPercentage;
|
||||||
@ -977,6 +980,425 @@ namespace IW4
|
|||||||
const char* name;
|
const char* name;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct StringList
|
||||||
|
{
|
||||||
|
int totalStrings;
|
||||||
|
const char** strings;
|
||||||
|
};
|
||||||
|
|
||||||
|
union DvarLimits
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
int stringCount;
|
||||||
|
const char** strings;
|
||||||
|
} enumeration;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
int min;
|
||||||
|
int max;
|
||||||
|
} integer;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
float min;
|
||||||
|
float max;
|
||||||
|
} value;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
float min;
|
||||||
|
float max;
|
||||||
|
} vector;
|
||||||
|
};
|
||||||
|
|
||||||
|
union DvarValue
|
||||||
|
{
|
||||||
|
bool enabled;
|
||||||
|
int integer;
|
||||||
|
unsigned int unsignedInt;
|
||||||
|
float value;
|
||||||
|
float vector[4];
|
||||||
|
const char* string;
|
||||||
|
char color[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct dvar_t
|
||||||
|
{
|
||||||
|
const char* name;
|
||||||
|
const char* description;
|
||||||
|
unsigned int flags;
|
||||||
|
char type;
|
||||||
|
bool modified;
|
||||||
|
DvarValue current;
|
||||||
|
DvarValue latched;
|
||||||
|
DvarValue reset;
|
||||||
|
DvarLimits domain;
|
||||||
|
//bool (__cdecl* domainFunc)(dvar_t*, DvarValue);
|
||||||
|
void* domainFunc;
|
||||||
|
dvar_t* hashNext;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct StaticDvar
|
||||||
|
{
|
||||||
|
dvar_t* dvar;
|
||||||
|
char* dvarName;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct StaticDvarList
|
||||||
|
{
|
||||||
|
int numStaticDvars;
|
||||||
|
StaticDvar** staticDvars;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ExpressionString
|
||||||
|
{
|
||||||
|
const char* string;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Statement_s;
|
||||||
|
|
||||||
|
union operandInternalDataUnion
|
||||||
|
{
|
||||||
|
int intVal;
|
||||||
|
float floatVal;
|
||||||
|
ExpressionString stringVal;
|
||||||
|
Statement_s* function;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum expDataType
|
||||||
|
{
|
||||||
|
VAL_INT = 0x0,
|
||||||
|
VAL_FLOAT = 0x1,
|
||||||
|
VAL_STRING = 0x2,
|
||||||
|
NUM_INTERNAL_DATATYPES = 0x3,
|
||||||
|
VAL_FUNCTION = 0x3,
|
||||||
|
NUM_DATATYPES = 0x4,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Operand
|
||||||
|
{
|
||||||
|
expDataType dataType;
|
||||||
|
operandInternalDataUnion internals;
|
||||||
|
};
|
||||||
|
|
||||||
|
union entryInternalData
|
||||||
|
{
|
||||||
|
int op;
|
||||||
|
Operand operand;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum expressionEntryType : int
|
||||||
|
{
|
||||||
|
EET_OPERATOR = 0x0,
|
||||||
|
EET_OPERAND = 0x1,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct expressionEntry
|
||||||
|
{
|
||||||
|
expressionEntryType type;
|
||||||
|
entryInternalData data;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ExpressionSupportingData;
|
||||||
|
|
||||||
|
struct Statement_s
|
||||||
|
{
|
||||||
|
int numEntries;
|
||||||
|
expressionEntry* entries;
|
||||||
|
ExpressionSupportingData* supportingData;
|
||||||
|
int lastExecuteTime;
|
||||||
|
Operand lastResult;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct UIFunctionList
|
||||||
|
{
|
||||||
|
int totalFunctions;
|
||||||
|
Statement_s** functions;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ExpressionSupportingData
|
||||||
|
{
|
||||||
|
UIFunctionList uifunctions;
|
||||||
|
StaticDvarList staticDvarList;
|
||||||
|
StringList uiStrings;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct menuTransition
|
||||||
|
{
|
||||||
|
int transitionType;
|
||||||
|
int targetField;
|
||||||
|
int startTime;
|
||||||
|
float startVal;
|
||||||
|
float endVal;
|
||||||
|
float time;
|
||||||
|
int endTriggerType;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ItemFloatExpression
|
||||||
|
{
|
||||||
|
int target;
|
||||||
|
Statement_s* expression;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct columnInfo_s
|
||||||
|
{
|
||||||
|
int pos;
|
||||||
|
int width;
|
||||||
|
int maxChars;
|
||||||
|
int alignment;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MenuEventHandlerSet;
|
||||||
|
|
||||||
|
struct ConditionalScript
|
||||||
|
{
|
||||||
|
MenuEventHandlerSet* eventHandlerSet;
|
||||||
|
Statement_s* eventExpression;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct SetLocalVarData
|
||||||
|
{
|
||||||
|
const char* localVarName;
|
||||||
|
Statement_s* expression;
|
||||||
|
};
|
||||||
|
|
||||||
|
union EventData
|
||||||
|
{
|
||||||
|
const char* unconditionalScript;
|
||||||
|
ConditionalScript* conditionalScript;
|
||||||
|
MenuEventHandlerSet* elseScript;
|
||||||
|
SetLocalVarData* setLocalVarData;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum EventType : char
|
||||||
|
{
|
||||||
|
EVENT_UNCONDITIONAL = 0x0,
|
||||||
|
EVENT_IF = 0x1,
|
||||||
|
EVENT_ELSE = 0x2,
|
||||||
|
EVENT_SET_LOCAL_VAR_BOOL = 0x3,
|
||||||
|
EVENT_SET_LOCAL_VAR_INT = 0x4,
|
||||||
|
EVENT_SET_LOCAL_VAR_FLOAT = 0x5,
|
||||||
|
EVENT_SET_LOCAL_VAR_STRING = 0x6,
|
||||||
|
|
||||||
|
EVENT_COUNT,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MenuEventHandler
|
||||||
|
{
|
||||||
|
EventData eventData;
|
||||||
|
EventType eventType;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MenuEventHandlerSet
|
||||||
|
{
|
||||||
|
int eventHandlerCount;
|
||||||
|
MenuEventHandler** eventHandlers;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct listBoxDef_s
|
||||||
|
{
|
||||||
|
int mousePos;
|
||||||
|
int startPos[1];
|
||||||
|
int endPos[1];
|
||||||
|
int drawPadding;
|
||||||
|
float elementWidth;
|
||||||
|
float elementHeight;
|
||||||
|
int elementStyle;
|
||||||
|
int numColumns;
|
||||||
|
columnInfo_s columnInfo[16];
|
||||||
|
MenuEventHandlerSet* onDoubleClick;
|
||||||
|
int notselectable;
|
||||||
|
int noScrollBars;
|
||||||
|
int usePaging;
|
||||||
|
float selectBorder[4];
|
||||||
|
Material* selectIcon;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct editFieldDef_s
|
||||||
|
{
|
||||||
|
float minVal;
|
||||||
|
float maxVal;
|
||||||
|
float defVal;
|
||||||
|
float range;
|
||||||
|
int maxChars;
|
||||||
|
int maxCharsGotoNext;
|
||||||
|
int maxPaintChars;
|
||||||
|
int paintOffset;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct multiDef_s
|
||||||
|
{
|
||||||
|
const char* dvarList[32];
|
||||||
|
const char* dvarStr[32];
|
||||||
|
float dvarValue[32];
|
||||||
|
int count;
|
||||||
|
int strDef;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct newsTickerDef_s
|
||||||
|
{
|
||||||
|
int feedId;
|
||||||
|
int speed;
|
||||||
|
int spacing;
|
||||||
|
int lastTime;
|
||||||
|
int start;
|
||||||
|
int end;
|
||||||
|
float x;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct textScrollDef_s
|
||||||
|
{
|
||||||
|
int startTime;
|
||||||
|
};
|
||||||
|
|
||||||
|
union itemDefData_t
|
||||||
|
{
|
||||||
|
listBoxDef_s* listBox;
|
||||||
|
editFieldDef_s* editField;
|
||||||
|
multiDef_s* multi;
|
||||||
|
const char* enumDvarName;
|
||||||
|
newsTickerDef_s* ticker;
|
||||||
|
textScrollDef_s* scroll;
|
||||||
|
void* data;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ItemKeyHandler
|
||||||
|
{
|
||||||
|
int key;
|
||||||
|
MenuEventHandlerSet* action;
|
||||||
|
ItemKeyHandler* next;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct __declspec(align(4)) rectDef_s
|
||||||
|
{
|
||||||
|
float x;
|
||||||
|
float y;
|
||||||
|
float w;
|
||||||
|
float h;
|
||||||
|
char horzAlign;
|
||||||
|
char vertAlign;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct windowDef_t
|
||||||
|
{
|
||||||
|
const char* name;
|
||||||
|
rectDef_s rect;
|
||||||
|
rectDef_s rectClient;
|
||||||
|
const char* group;
|
||||||
|
int style;
|
||||||
|
int border;
|
||||||
|
int ownerDraw;
|
||||||
|
int ownerDrawFlags;
|
||||||
|
float borderSize;
|
||||||
|
int staticFlags;
|
||||||
|
int dynamicFlags[1];
|
||||||
|
int nextTime;
|
||||||
|
float foreColor[4];
|
||||||
|
float backColor[4];
|
||||||
|
float borderColor[4];
|
||||||
|
float outlineColor[4];
|
||||||
|
float disableColor[4];
|
||||||
|
Material* background;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct itemDef_s
|
||||||
|
{
|
||||||
|
windowDef_t window;
|
||||||
|
rectDef_s textRect[1];
|
||||||
|
int type;
|
||||||
|
int dataType;
|
||||||
|
int alignment;
|
||||||
|
int fontEnum;
|
||||||
|
int textAlignMode;
|
||||||
|
float textalignx;
|
||||||
|
float textaligny;
|
||||||
|
float textscale;
|
||||||
|
int textStyle;
|
||||||
|
int gameMsgWindowIndex;
|
||||||
|
int gameMsgWindowMode;
|
||||||
|
const char* text;
|
||||||
|
int itemFlags;
|
||||||
|
menuDef_t* parent;
|
||||||
|
MenuEventHandlerSet* mouseEnterText;
|
||||||
|
MenuEventHandlerSet* mouseExitText;
|
||||||
|
MenuEventHandlerSet* mouseEnter;
|
||||||
|
MenuEventHandlerSet* mouseExit;
|
||||||
|
MenuEventHandlerSet* action;
|
||||||
|
MenuEventHandlerSet* accept;
|
||||||
|
MenuEventHandlerSet* onFocus;
|
||||||
|
MenuEventHandlerSet* leaveFocus;
|
||||||
|
const char* dvar;
|
||||||
|
const char* dvarTest;
|
||||||
|
ItemKeyHandler* onKey;
|
||||||
|
const char* enableDvar;
|
||||||
|
const char* localVar;
|
||||||
|
int dvarFlags;
|
||||||
|
snd_alias_list_t* focusSound;
|
||||||
|
float special;
|
||||||
|
int cursorPos[1];
|
||||||
|
itemDefData_t typeData;
|
||||||
|
int imageTrack;
|
||||||
|
int floatExpressionCount;
|
||||||
|
ItemFloatExpression* floatExpressions;
|
||||||
|
Statement_s* visibleExp;
|
||||||
|
Statement_s* disabledExp;
|
||||||
|
Statement_s* textExp;
|
||||||
|
Statement_s* materialExp;
|
||||||
|
float glowColor[4];
|
||||||
|
bool decayActive;
|
||||||
|
int fxBirthTime;
|
||||||
|
int fxLetterTime;
|
||||||
|
int fxDecayStartTime;
|
||||||
|
int fxDecayDuration;
|
||||||
|
int lastSoundPlayedTime;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct menuDef_t
|
||||||
|
{
|
||||||
|
windowDef_t window;
|
||||||
|
const char* font;
|
||||||
|
int fullScreen;
|
||||||
|
int itemCount;
|
||||||
|
int fontIndex;
|
||||||
|
int cursorItem[1];
|
||||||
|
int fadeCycle;
|
||||||
|
float fadeClamp;
|
||||||
|
float fadeAmount;
|
||||||
|
float fadeInAmount;
|
||||||
|
float blurRadius;
|
||||||
|
MenuEventHandlerSet* onOpen;
|
||||||
|
MenuEventHandlerSet* onCloseRequest;
|
||||||
|
MenuEventHandlerSet* onClose;
|
||||||
|
MenuEventHandlerSet* onESC;
|
||||||
|
ItemKeyHandler* onKey;
|
||||||
|
Statement_s* visibleExp;
|
||||||
|
const char* allowedBinding;
|
||||||
|
const char* soundName;
|
||||||
|
int imageTrack;
|
||||||
|
float focusColor[4];
|
||||||
|
Statement_s* rectXExp;
|
||||||
|
Statement_s* rectYExp;
|
||||||
|
Statement_s* rectWExp;
|
||||||
|
Statement_s* rectHExp;
|
||||||
|
Statement_s* openSoundExp;
|
||||||
|
Statement_s* closeSoundExp;
|
||||||
|
itemDef_s** items;
|
||||||
|
menuTransition scaleTransition[1];
|
||||||
|
menuTransition alphaTransition[1];
|
||||||
|
menuTransition xTransition[1];
|
||||||
|
menuTransition yTransition[1];
|
||||||
|
ExpressionSupportingData* expressionData;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct MenuList
|
||||||
|
{
|
||||||
|
const char* name;
|
||||||
|
int menuCount;
|
||||||
|
menuDef_t** menus;
|
||||||
|
};
|
||||||
|
|
||||||
#ifndef __zonecodegenerator
|
#ifndef __zonecodegenerator
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -25,8 +25,8 @@
|
|||||||
#include "Game/IW4/XAssets/materialtechniqueset/materialtechniqueset_load_db.h"
|
#include "Game/IW4/XAssets/materialtechniqueset/materialtechniqueset_load_db.h"
|
||||||
#include "Game/IW4/XAssets/materialvertexdeclaration/materialvertexdeclaration_load_db.h"
|
#include "Game/IW4/XAssets/materialvertexdeclaration/materialvertexdeclaration_load_db.h"
|
||||||
#include "Game/IW4/XAssets/materialvertexshader/materialvertexshader_load_db.h"
|
#include "Game/IW4/XAssets/materialvertexshader/materialvertexshader_load_db.h"
|
||||||
//#include "Game/IW4/XAssets/menudef_t/menudef_t_load_db.h"
|
#include "Game/IW4/XAssets/menudef_t/menudef_t_load_db.h"
|
||||||
//#include "Game/IW4/XAssets/menulist/menulist_load_db.h"
|
#include "Game/IW4/XAssets/menulist/menulist_load_db.h"
|
||||||
#include "Game/IW4/XAssets/physcollmap/physcollmap_load_db.h"
|
#include "Game/IW4/XAssets/physcollmap/physcollmap_load_db.h"
|
||||||
#include "Game/IW4/XAssets/physpreset/physpreset_load_db.h"
|
#include "Game/IW4/XAssets/physpreset/physpreset_load_db.h"
|
||||||
#include "Game/IW4/XAssets/rawfile/rawfile_load_db.h"
|
#include "Game/IW4/XAssets/rawfile/rawfile_load_db.h"
|
||||||
@ -126,8 +126,8 @@ void ContentLoaderIW4::LoadXAsset(const bool atStreamStart)
|
|||||||
// 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);
|
||||||
LOAD_ASSET(ASSET_TYPE_LOCALIZE_ENTRY, LocalizeEntry, localize);
|
LOAD_ASSET(ASSET_TYPE_LOCALIZE_ENTRY, LocalizeEntry, localize);
|
||||||
// LOAD_ASSET(ASSET_TYPE_WEAPON, WeaponCompleteDef, weapon);
|
// LOAD_ASSET(ASSET_TYPE_WEAPON, WeaponCompleteDef, weapon);
|
||||||
SKIP_ASSET(ASSET_TYPE_SNDDRIVER_GLOBALS, SndDriverGlobals, sndDriverGlobals);
|
SKIP_ASSET(ASSET_TYPE_SNDDRIVER_GLOBALS, SndDriverGlobals, sndDriverGlobals);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user