Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/SupportedAssetTypes.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ using `Linker`):
| MenuList | ❌ | ❌ | |
| menuDef_t | ❌ | ❌ | |
| LocalizeEntry | ✅ | ✅ | |
| WeaponDef | | | |
| WeaponDef | | | |
| FxEffectDef | ❌ | ❌ | |
| FxImpactTable | ❌ | ❌ | |
| RawFile | ✅ | ✅ | |
Expand Down
4 changes: 2 additions & 2 deletions src/Common/Game/IW3/IW3_Assets.h
Original file line number Diff line number Diff line change
Expand Up @@ -2855,7 +2855,7 @@ namespace IW3
WEAPOVERLAYRETICLE_NUM,
};

enum WeapOverlayInteface_t
enum WeapOverlayInterface_t
{
WEAPOVERLAYINTERFACE_NONE = 0x0,
WEAPOVERLAYINTERFACE_JAVELIN = 0x1,
Expand Down Expand Up @@ -3150,7 +3150,7 @@ namespace IW3
Material* overlayMaterial;
Material* overlayMaterialLowRes;
weapOverlayReticle_t overlayReticle;
WeapOverlayInteface_t overlayInterface;
WeapOverlayInterface_t overlayInterface;
float overlayWidth;
float overlayHeight;
float fAdsBobFactor;
Expand Down
2 changes: 2 additions & 0 deletions src/Common/Game/T4/GameT4.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ namespace
"vertexdecl",
"vertexshader",
"pixelshader",
"accuracygraph",
"flametable",
};
static_assert(std::extent_v<decltype(SUB_ASSET_TYPE_NAMES)> == SUB_ASSET_TYPE_COUNT);
} // namespace
Expand Down
67 changes: 67 additions & 0 deletions src/Common/Game/T4/T4.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ namespace T4
SUB_ASSET_TYPE_VERTEX_DECL,
SUB_ASSET_TYPE_VERTEX_SHADER,
SUB_ASSET_TYPE_PIXEL_SHADER,
SUB_ASSET_TYPE_ACCURACY_GRAPH,
SUB_ASSET_TYPE_FLAME_TABLE,

SUB_ASSET_TYPE_COUNT
};
Expand All @@ -83,6 +85,69 @@ namespace T4
XAsset* assets;
};

struct cspField_t
{
const char* szName;
int iOffset;
int iFieldType;
};

enum csParseFieldType_t
{
CSPFT_STRING,
CSPFT_STRING_MAX_STRING_CHARS,
CSPFT_STRING_MAX_QPATH,
CSPFT_STRING_MAX_OSPATH,
CSPFT_INT,
CSPFT_BOOL,
CSPFT_FLOAT,
CSPFT_MILLISECONDS,
CSPFT_FX,
CSPFT_XMODEL,
CSPFT_MATERIAL,
CSPFT_SOUND,

CSPFT_NUM_BASE_FIELD_TYPES
};

enum weapFieldType_t
{
WFT_WEAPONTYPE = CSPFT_NUM_BASE_FIELD_TYPES,
WFT_WEAPONCLASS,
WFT_OVERLAYRETICLE,
WFT_PENETRATE_TYPE,
WFT_IMPACT_TYPE,
WFT_STANCE,
WFT_PROJ_EXPLOSION,
WFT_OFFHAND_CLASS,
WFT_ANIMTYPE,
WFT_ACTIVE_RETICLE_TYPE,
WFT_GUIDED_MISSILE_TYPE,
WFT_BOUNCE_SOUND,
WFT_STICKINESS,
WFT_OVERLAYINTERFACE,
WFT_INVENTORYTYPE,
WFT_FIRETYPE,
WFT_CLIPTYPE,
WFT_AMMOCOUNTER_CLIPTYPE,
WFT_ICONRATIO_HUD,
WFT_ICONRATIO_AMMOCOUNTER,
WFT_ICONRATIO_KILL,
WFT_ICONRATIO_DPAD,
WFT_HIDETAGS,
WFT_NOTETRACKSOUNDMAP,

WFT_ANIM_NAME,

WFT_NUM_FIELD_TYPES,
};

struct AccuracyGraph
{
vec2_t* graphKnots;
int graphKnotCount;
};

using AssetPhysPreset = Asset<ASSET_TYPE_PHYSPRESET, PhysPreset>;
using AssetPhysConstraints = Asset<ASSET_TYPE_PHYSCONSTRAINTS, PhysConstraints>;
using AssetDestructibleDef = Asset<ASSET_TYPE_DESTRUCTIBLEDEF, DestructibleDef>;
Expand Down Expand Up @@ -117,6 +182,8 @@ namespace T4
using SubAssetVertexDecl = SubAsset<SUB_ASSET_TYPE_VERTEX_DECL, MaterialVertexDeclaration>;
using SubAssetVertexShader = SubAsset<SUB_ASSET_TYPE_VERTEX_SHADER, MaterialVertexShader>;
using SubAssetPixelShader = SubAsset<SUB_ASSET_TYPE_PIXEL_SHADER, MaterialPixelShader>;
using SubAssetAccuracyGraph = SubAsset<SUB_ASSET_TYPE_ACCURACY_GRAPH, AccuracyGraph>;
using SubAssetFlameTable = SubAsset<SUB_ASSET_TYPE_FLAME_TABLE, FlameTable>;
} // namespace T4

DEFINE_ASSET_NAME_ACCESSOR(T4::AssetPhysPreset, name);
Expand Down
113 changes: 91 additions & 22 deletions src/Common/Game/T4/T4_Assets.h
Original file line number Diff line number Diff line change
Expand Up @@ -1013,6 +1013,8 @@ namespace T4
SURF_TYPE_CUSHION,
SURF_TYPE_FRUIT,
SURF_TYPE_PAINTED_METAL,
SURF_TYPE_PLAYER,
SURF_TYPE_TALL_GRASS,

SURF_TYPE_NUM
};
Expand Down Expand Up @@ -2999,7 +3001,11 @@ namespace T4
WEAPTYPE_GRENADE = 0x1,
WEAPTYPE_PROJECTILE = 0x2,
WEAPTYPE_BINOCULARS = 0x3,
WEAPTYPE_NUM = 0x4,
WEAPTYPE_GAS = 0x4,
WEAPTYPE_BOMB = 0x5,
WEAPTYPE_MINE = 0x6,

WEAPTYPE_NUM,
};

enum weapClass_t
Expand All @@ -3013,8 +3019,10 @@ namespace T4
WEAPCLASS_ROCKETLAUNCHER = 0x6,
WEAPCLASS_TURRET = 0x7,
WEAPCLASS_NON_PLAYER = 0x8,
WEAPCLASS_ITEM = 0x9,
WEAPCLASS_NUM = 0xA,
WEAPCLASS_GAS = 0x9,
WEAPCLASS_ITEM = 0xA,

WEAPCLASS_NUM,
};

enum PenetrateType
Expand All @@ -3023,7 +3031,8 @@ namespace T4
PENETRATE_TYPE_SMALL = 0x1,
PENETRATE_TYPE_MEDIUM = 0x2,
PENETRATE_TYPE_LARGE = 0x3,
PENETRATE_TYPE_COUNT = 0x4,

PENETRATE_TYPE_NUM,
};

enum ImpactType
Expand All @@ -3035,9 +3044,13 @@ namespace T4
IMPACT_TYPE_SHOTGUN = 0x4,
IMPACT_TYPE_GRENADE_BOUNCE = 0x5,
IMPACT_TYPE_GRENADE_EXPLODE = 0x6,
IMPACT_TYPE_ROCKET_EXPLODE = 0x7,
IMPACT_TYPE_PROJECTILE_DUD = 0x8,
IMPACT_TYPE_COUNT = 0x9,
IMPACT_TYPE_RIFLE_GRENADE = 0x7,
IMPACT_TYPE_ROCKET_EXPLODE = 0x8,
IMPACT_TYPE_PROJECTILE_DUD = 0x9,
IMPACT_TYPE_MORTAR_SHELL = 0xA,
IMPACT_TYPE_TANK_SHELL = 0xB,

IMPACT_TYPE_NUM,
};

enum weapInventoryType_t
Expand All @@ -3046,7 +3059,8 @@ namespace T4
WEAPINVENTORY_OFFHAND = 0x1,
WEAPINVENTORY_ITEM = 0x2,
WEAPINVENTORY_ALTMODE = 0x3,
WEAPINVENTORYCOUNT = 0x4,

WEAPINVENTORY_NUM,
};

enum weapFireType_t
Expand All @@ -3056,7 +3070,8 @@ namespace T4
WEAPON_FIRETYPE_BURSTFIRE2 = 0x2,
WEAPON_FIRETYPE_BURSTFIRE3 = 0x3,
WEAPON_FIRETYPE_BURSTFIRE4 = 0x4,
WEAPON_FIRETYPECOUNT = 0x5,

WEAPON_FIRETYPE_NUM,
};

enum OffhandClass
Expand All @@ -3065,31 +3080,35 @@ namespace T4
OFFHAND_CLASS_FRAG_GRENADE = 0x1,
OFFHAND_CLASS_SMOKE_GRENADE = 0x2,
OFFHAND_CLASS_FLASH_GRENADE = 0x3,
OFFHAND_CLASS_COUNT = 0x4,

OFFHAND_CLASS_NUM,
};

enum weapStance_t
{
WEAPSTANCE_STAND = 0x0,
WEAPSTANCE_DUCK = 0x1,
WEAPSTANCE_PRONE = 0x2,
WEAPSTANCE_NUM = 0x3,

WEAPSTANCE_NUM,
};

enum activeReticleType_t
{
VEH_ACTIVE_RETICLE_NONE = 0x0,
VEH_ACTIVE_RETICLE_PIP_ON_A_STICK = 0x1,
VEH_ACTIVE_RETICLE_BOUNCING_DIAMOND = 0x2,
VEH_ACTIVE_RETICLE_COUNT = 0x3,

VEH_ACTIVE_RETICLE_NUM,
};

enum weaponIconRatioType_t
{
WEAPON_ICON_RATIO_1TO1 = 0x0,
WEAPON_ICON_RATIO_2TO1 = 0x1,
WEAPON_ICON_RATIO_4TO1 = 0x2,
WEAPON_ICON_RATIO_COUNT = 0x3,

WEAPON_ICON_RATIO_NUM,
};

enum weapClipType_t
Expand All @@ -3100,7 +3119,8 @@ namespace T4
WEAPON_CLIPTYPE_DP28 = 0x3,
WEAPON_CLIPTYPE_PTRS = 0x4,
WEAPON_CLIPTYPE_LMG = 0x5,
WEAPON_CLIPTYPECOUNT = 0x6,

WEAPON_CLIPTYPE_NUM,
};

enum ammoCounterClipType_t
Expand All @@ -3112,22 +3132,25 @@ namespace T4
AMMO_COUNTER_CLIP_ROCKET = 0x4,
AMMO_COUNTER_CLIP_BELTFED = 0x5,
AMMO_COUNTER_CLIP_ALTWEAPON = 0x6,
AMMO_COUNTER_CLIP_COUNT = 0x7,

AMMO_COUNTER_CLIP_NUM,
};

enum weapOverlayReticle_t
{
WEAPOVERLAYRETICLE_NONE = 0x0,
WEAPOVERLAYRETICLE_CROSSHAIR = 0x1,
WEAPOVERLAYRETICLE_NUM = 0x2,

WEAPOVERLAYRETICLE_NUM,
};

enum WeapOverlayInteface_t
enum WeapOverlayInterface_t
{
WEAPOVERLAYINTERFACE_NONE = 0x0,
WEAPOVERLAYINTERFACE_JAVELIN = 0x1,
WEAPOVERLAYINTERFACE_TURRETSCOPE = 0x2,
WEAPOVERLAYINTERFACECOUNT = 0x3,

WEAPOVERLAYINTERFACE_NUM,
};

enum weapProjExposion_t
Expand All @@ -3139,7 +3162,10 @@ namespace T4
WEAPPROJEXP_DUD = 0x4,
WEAPPROJEXP_SMOKE = 0x5,
WEAPPROJEXP_HEAVY = 0x6,
WEAPPROJEXP_NUM = 0x7,
WEAPPROJEXP_FIRE = 0x7,
WEAPPROJEXP_NAPALMBLOB = 0x8,

WEAPPROJEXP_NUM,
};

enum WeapStickinessType
Expand All @@ -3148,7 +3174,8 @@ namespace T4
WEAPSTICKINESS_ALL = 0x1,
WEAPSTICKINESS_GROUND = 0x2,
WEAPSTICKINESS_GROUND_WITH_YAW = 0x3,
WEAPSTICKINESS_COUNT = 0x4,

WEAPSTICKINESS_NUM,
};

enum guidedMissileType_t
Expand All @@ -3158,7 +3185,49 @@ namespace T4
MISSILE_GUIDANCE_HELLFIRE = 0x2,
MISSILE_GUIDANCE_JAVELIN = 0x3,
MISSILE_GUIDANCE_BALLISTIC = 0x4,
MISSILE_GUIDANCE_COUNT = 0x5,

MISSILE_GUIDANCE_NUM,
};

enum WeaponAnimSlot
{
WEAP_ANIM_ROOT = 0x0,
WEAP_ANIM_IDLE = 0x1,
WEAP_ANIM_EMPTY_IDLE = 0x2,
WEAP_ANIM_FIRE = 0x3,
WEAP_ANIM_HOLD_FIRE = 0x4,
WEAP_ANIM_LASTSHOT = 0x5,
WEAP_ANIM_RECHAMBER = 0x6,
WEAP_ANIM_MELEE = 0x7,
WEAP_ANIM_MELEE_CHARGE = 0x8,
WEAP_ANIM_RELOAD = 0x9,
WEAP_ANIM_RELOAD_EMPTY = 0xA,
WEAP_ANIM_RELOAD_START = 0xB,
WEAP_ANIM_RELOAD_END = 0xC,
WEAP_ANIM_RAISE = 0xD,
WEAP_ANIM_FIRST_RAISE = 0xE,
WEAP_ANIM_DROP = 0xF,
WEAP_ANIM_ALT_RAISE = 0x10,
WEAP_ANIM_ALT_DROP = 0x11,
WEAP_ANIM_QUICK_RAISE = 0x12,
WEAP_ANIM_QUICK_DROP = 0x13,
WEAP_ANIM_EMPTY_RAISE = 0x14,
WEAP_ANIM_EMPTY_DROP = 0x15,
WEAP_ANIM_SPRINT_IN = 0x16,
WEAP_ANIM_SPRINT_LOOP = 0x17,
WEAP_ANIM_SPRINT_OUT = 0x18,
WEAP_ANIM_DEPLOY = 0x19,
WEAP_ANIM_BREAKDOWN = 0x1A,
WEAP_ANIM_DETONATE = 0x1B,
WEAP_ANIM_NIGHTVISION_WEAR = 0x1C,
WEAP_ANIM_NIGHTVISION_REMOVE = 0x1D,
WEAP_ANIM_ADS_FIRE = 0x1E,
WEAP_ANIM_ADS_LASTSHOT = 0x1F,
WEAP_ANIM_ADS_RECHAMBER = 0x20,
WEAP_ANIM_ADS_UP = 0x21,
WEAP_ANIM_ADS_DOWN = 0x22,

NUM_WEAP_ANIMS,
};

enum hitLocation_t
Expand Down Expand Up @@ -3586,7 +3655,7 @@ namespace T4
Material* overlayMaterial;
Material* overlayMaterialLowRes;
weapOverlayReticle_t overlayReticle;
WeapOverlayInteface_t overlayInterface;
WeapOverlayInterface_t overlayInterface;
float overlayWidth;
float overlayHeight;
float fAdsBobFactor;
Expand Down
4 changes: 2 additions & 2 deletions src/Common/Game/T6/T6_Assets.h
Original file line number Diff line number Diff line change
Expand Up @@ -4295,7 +4295,7 @@ namespace T6
AMMO_COUNTER_CLIP_COUNT = 0x7,
};

enum WeapOverlayInteface_t
enum WeapOverlayInterface_t
{
WEAPOVERLAYINTERFACE_NONE = 0x0,
WEAPOVERLAYINTERFACE_JAVELIN = 0x1,
Expand Down Expand Up @@ -4671,7 +4671,7 @@ namespace T6
float adsMoveSpeedScale;
float sprintDurationScale;
weapOverlayReticle_t overlayReticle;
WeapOverlayInteface_t overlayInterface;
WeapOverlayInterface_t overlayInterface;
float overlayWidth;
float overlayHeight;
float fAdsBobFactor;
Expand Down
9 changes: 9 additions & 0 deletions src/ObjCommon/Game/T4/ObjConstantsT4.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#pragma once

namespace T4
{
static constexpr auto INFO_STRING_PREFIX_FLAME_TABLE = "FLAMETABLEFILE";
static constexpr auto INFO_STRING_PREFIX_WEAPON = "WEAPONFILE";

static constexpr auto GDF_FILENAME_WEAPON = "weapon.gdf";
} // namespace T4
Loading