mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-10 14:58:10 -05:00
Merge pull request #16 from Laupetin/code-formatting
Code formatting with clang-format
This commit is contained in:
24
.clang-format
Normal file
24
.clang-format
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
Language: Cpp
|
||||
BasedOnStyle: LLVM
|
||||
AccessModifierOffset: -4
|
||||
AlignArrayOfStructures: Left
|
||||
AllowShortBlocksOnASingleLine: Empty
|
||||
AllowShortEnumsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: Empty
|
||||
AllowShortLambdasOnASingleLine: Empty
|
||||
BinPackArguments: false
|
||||
BinPackParameters: false
|
||||
BreakBeforeBinaryOperators: NonAssignment
|
||||
BreakBeforeBraces: Allman
|
||||
ColumnLimit: 160
|
||||
IncludeBlocks: Regroup
|
||||
IndentWidth: 4
|
||||
IndentWrappedFunctionNames: true
|
||||
InsertNewlineAtEOF: true
|
||||
NamespaceIndentation: All
|
||||
PackConstructorInitializers: Never
|
||||
PointerAlignment: Left
|
||||
SeparateDefinitionBlocks: Always
|
||||
SortUsingDeclarations: Lexicographic
|
||||
SpaceAfterTemplateKeyword: false
|
24
.github/workflows/check-formatting.yaml
vendored
Normal file
24
.github/workflows/check-formatting.yaml
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
name: check-formatting
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
check-formatting:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Install LLVM and Clang
|
||||
uses: KyleMayes/install-llvm-action@v1
|
||||
with:
|
||||
version: "17.0"
|
||||
|
||||
- name: Test formatting for all files
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: |
|
||||
export CLANG_FORMAT_BIN="${LLVM_PATH}/bin/clang-format"
|
||||
./scripts/check-format.sh
|
8
scripts/check-format.sh
Executable file
8
scripts/check-format.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Go to repository root
|
||||
cd "$(dirname "$0")/.." || exit 2
|
||||
|
||||
CLANG_FORMAT_BIN="${CLANG_FORMAT_BIN:-clang-format}"
|
||||
|
||||
find ./src ./test -iname '*.h' -o -iname '*.cpp' | xargs $CLANG_FORMAT_BIN -Werror -ferror-limit=1 --dry-run
|
6
scripts/reformat-all.sh
Executable file
6
scripts/reformat-all.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Go to repository root
|
||||
cd "$(dirname "$0")/.." || exit 2
|
||||
|
||||
find ./src ./test -iname '*.h' -o -iname '*.cpp' | xargs clang-format --verbose -i
|
@ -1,7 +1,8 @@
|
||||
#pragma once
|
||||
#include <vector>
|
||||
#include "GameLanguage.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
class Zone;
|
||||
|
||||
class IGame
|
||||
@ -20,4 +21,4 @@ public:
|
||||
virtual void RemoveZone(Zone* zone) = 0;
|
||||
virtual std::vector<Zone*> GetZones() = 0;
|
||||
virtual std::vector<GameLanguagePrefix> GetLanguagePrefixes() = 0;
|
||||
};
|
||||
};
|
||||
|
@ -10,7 +10,7 @@ namespace IW3
|
||||
static constexpr uint32_t R_HashString(const char* string, const uint32_t hash)
|
||||
{
|
||||
const char* v2 = string; // edx@1
|
||||
char v3 = *string; // cl@1
|
||||
char v3 = *string; // cl@1
|
||||
uint32_t result = hash;
|
||||
|
||||
for (; *v2; v3 = *v2)
|
||||
@ -28,4 +28,4 @@ namespace IW3
|
||||
static void Vec3UnpackUnitVec(const PackedUnitVec& in, vec3_t* out);
|
||||
static void Vec4UnpackGfxColor(const GfxColor& in, vec4_t* out);
|
||||
};
|
||||
}
|
||||
} // namespace IW3
|
||||
|
@ -1,9 +1,9 @@
|
||||
#include "GameIW3.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "IW3.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
using namespace IW3;
|
||||
|
||||
GameIW3 g_GameIW3;
|
||||
|
@ -14,4 +14,4 @@ public:
|
||||
std::vector<GameLanguagePrefix> GetLanguagePrefixes() override;
|
||||
};
|
||||
|
||||
extern GameIW3 g_GameIW3;
|
||||
extern GameIW3 g_GameIW3;
|
||||
|
@ -1,10 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
//#include <d3d11.h>
|
||||
// clang-format off: Order of includes matters here
|
||||
|
||||
// #include <d3d9.h>
|
||||
#include "Image/Texture.h"
|
||||
|
||||
#include "IW3_Assets.h"
|
||||
|
||||
// clang-format on
|
||||
|
||||
namespace IW3
|
||||
{
|
||||
struct ScriptStringList
|
||||
@ -79,4 +83,4 @@ namespace IW3
|
||||
|
||||
WFT_NUM_FIELD_TYPES
|
||||
};
|
||||
}
|
||||
} // namespace IW3
|
||||
|
@ -45,7 +45,7 @@ namespace IW3
|
||||
ASSET_TYPE_RAWFILE = 0x1F,
|
||||
ASSET_TYPE_STRINGTABLE = 0x20,
|
||||
ASSET_TYPE_COUNT,
|
||||
|
||||
|
||||
ASSET_TYPE_STRING = ASSET_TYPE_COUNT,
|
||||
ASSET_TYPE_ASSETLIST,
|
||||
|
||||
@ -100,35 +100,35 @@ namespace IW3
|
||||
union XAssetHeader
|
||||
{
|
||||
// XModelPieces *xmodelPieces; // NOT AN ASSET
|
||||
PhysPreset *physPreset;
|
||||
XAnimParts *parts;
|
||||
XModel *model;
|
||||
Material *material;
|
||||
MaterialPixelShader *pixelShader;
|
||||
MaterialVertexShader *vertexShader;
|
||||
MaterialTechniqueSet *techniqueSet;
|
||||
GfxImage *image;
|
||||
snd_alias_list_t *sound;
|
||||
SndCurve *sndCurve;
|
||||
LoadedSound *loadSnd;
|
||||
clipMap_t *clipMap;
|
||||
ComWorld *comWorld;
|
||||
GameWorldSp *gameWorldSp;
|
||||
GameWorldMp *gameWorldMp;
|
||||
MapEnts *mapEnts;
|
||||
GfxWorld *gfxWorld;
|
||||
GfxLightDef *lightDef;
|
||||
Font_s *font;
|
||||
MenuList *menuList;
|
||||
menuDef_t *menu;
|
||||
LocalizeEntry *localize;
|
||||
WeaponDef *weapon;
|
||||
SndDriverGlobals *sndDriverGlobals;
|
||||
FxEffectDef *fx;
|
||||
FxImpactTable *impactFx;
|
||||
RawFile *rawfile;
|
||||
StringTable *stringTable;
|
||||
void *data;
|
||||
PhysPreset* physPreset;
|
||||
XAnimParts* parts;
|
||||
XModel* model;
|
||||
Material* material;
|
||||
MaterialPixelShader* pixelShader;
|
||||
MaterialVertexShader* vertexShader;
|
||||
MaterialTechniqueSet* techniqueSet;
|
||||
GfxImage* image;
|
||||
snd_alias_list_t* sound;
|
||||
SndCurve* sndCurve;
|
||||
LoadedSound* loadSnd;
|
||||
clipMap_t* clipMap;
|
||||
ComWorld* comWorld;
|
||||
GameWorldSp* gameWorldSp;
|
||||
GameWorldMp* gameWorldMp;
|
||||
MapEnts* mapEnts;
|
||||
GfxWorld* gfxWorld;
|
||||
GfxLightDef* lightDef;
|
||||
Font_s* font;
|
||||
MenuList* menuList;
|
||||
menuDef_t* menu;
|
||||
LocalizeEntry* localize;
|
||||
WeaponDef* weapon;
|
||||
SndDriverGlobals* sndDriverGlobals;
|
||||
FxEffectDef* fx;
|
||||
FxImpactTable* impactFx;
|
||||
RawFile* rawfile;
|
||||
StringTable* stringTable;
|
||||
void* data;
|
||||
};
|
||||
|
||||
typedef char cbrushedge_t;
|
||||
@ -142,7 +142,7 @@ namespace IW3
|
||||
XModel* model;
|
||||
float offset[3];
|
||||
};
|
||||
|
||||
|
||||
struct XModelPieces
|
||||
{
|
||||
const char* name;
|
||||
@ -152,14 +152,14 @@ namespace IW3
|
||||
|
||||
struct PhysPreset
|
||||
{
|
||||
const char *name;
|
||||
const char* name;
|
||||
int type;
|
||||
float mass;
|
||||
float bounce;
|
||||
float friction;
|
||||
float bulletForceScale;
|
||||
float explosiveForceScale;
|
||||
const char *sndAliasPrefix;
|
||||
const char* sndAliasPrefix;
|
||||
float piecesSpreadFraction;
|
||||
float piecesUpwardVelocity;
|
||||
bool tempDefaultToCylinder;
|
||||
@ -224,7 +224,7 @@ namespace IW3
|
||||
|
||||
struct XAnimDeltaPartQuatDataFrames
|
||||
{
|
||||
XQuat *frames;
|
||||
XQuat* frames;
|
||||
XAnimDynamicIndicesQuat indices;
|
||||
};
|
||||
|
||||
@ -371,7 +371,7 @@ namespace IW3
|
||||
char zoneHandle;
|
||||
uint16_t baseTriIndex;
|
||||
uint16_t baseVertIndex;
|
||||
r_index16_t(*triIndices)[3];
|
||||
r_index16_t (*triIndices)[3];
|
||||
XSurfaceVertexInfo vertInfo;
|
||||
GfxPackedVertex* verts0;
|
||||
unsigned int vertListCount;
|
||||
@ -485,8 +485,8 @@ namespace IW3
|
||||
char lodRampType;
|
||||
uint16_t* boneNames;
|
||||
char* parentList;
|
||||
int16_t(*quats)[4];
|
||||
float(*trans)[4];
|
||||
int16_t (*quats)[4];
|
||||
float (*trans)[4];
|
||||
char* partClassification;
|
||||
DObjAnimMat* baseMat;
|
||||
XSurface* surfs;
|
||||
@ -705,7 +705,7 @@ namespace IW3
|
||||
char nameStart;
|
||||
char nameEnd;
|
||||
unsigned char samplerState; // SamplerStateBits_e
|
||||
unsigned char semantic; // TextureSemantic
|
||||
unsigned char semantic; // TextureSemantic
|
||||
MaterialTextureDefInfo u;
|
||||
};
|
||||
|
||||
@ -820,7 +820,7 @@ namespace IW3
|
||||
|
||||
union MaterialArgumentDef
|
||||
{
|
||||
const float(*literalConst)[4];
|
||||
const float (*literalConst)[4];
|
||||
MaterialArgumentCodeConst codeConst;
|
||||
unsigned int codeSampler;
|
||||
unsigned int nameHash;
|
||||
@ -1156,7 +1156,7 @@ namespace IW3
|
||||
struct MaterialVertexStreamRouting
|
||||
{
|
||||
MaterialStreamRouting data[16];
|
||||
void/*IDirect3DVertexDeclaration9*/* decl[16];
|
||||
void /*IDirect3DVertexDeclaration9*/* decl[16];
|
||||
};
|
||||
|
||||
struct MaterialVertexDeclaration
|
||||
@ -1176,7 +1176,7 @@ namespace IW3
|
||||
|
||||
struct MaterialVertexShaderProgram
|
||||
{
|
||||
void/*IDirect3DVertexShader9*/* vs;
|
||||
void /*IDirect3DVertexShader9*/* vs;
|
||||
GfxVertexShaderLoadDef loadDef;
|
||||
};
|
||||
|
||||
@ -1195,7 +1195,7 @@ namespace IW3
|
||||
|
||||
struct MaterialPixelShaderProgram
|
||||
{
|
||||
void/*IDirect3DPixelShader9*/* ps;
|
||||
void /*IDirect3DPixelShader9*/* ps;
|
||||
GfxPixelShaderLoadDef loadDef;
|
||||
};
|
||||
|
||||
@ -1304,10 +1304,10 @@ namespace IW3
|
||||
|
||||
union GfxTexture
|
||||
{
|
||||
//void/*IDirect3DBaseTexture9*/* basemap;
|
||||
//void/*IDirect3DTexture9*/* map;
|
||||
//void/*IDirect3DVolumeTexture9*/* volmap;
|
||||
//void/*IDirect3DCubeTexture9*/* cubemap;
|
||||
// void/*IDirect3DBaseTexture9*/* basemap;
|
||||
// void/*IDirect3DTexture9*/* map;
|
||||
// void/*IDirect3DVolumeTexture9*/* volmap;
|
||||
// void/*IDirect3DCubeTexture9*/* cubemap;
|
||||
Texture* texture;
|
||||
GfxImageLoadDef* loadDef;
|
||||
};
|
||||
@ -1681,7 +1681,7 @@ namespace IW3
|
||||
unsigned int numLeafSurfaces;
|
||||
unsigned int* leafsurfaces;
|
||||
unsigned int vertCount;
|
||||
vec3_t *verts;
|
||||
vec3_t* verts;
|
||||
int triCount;
|
||||
uint16_t* triIndices;
|
||||
char* triEdgeIsWalkable;
|
||||
@ -1898,13 +1898,13 @@ namespace IW3
|
||||
struct GfxWorldVertexData
|
||||
{
|
||||
GfxWorldVertex* vertices;
|
||||
void/*IDirect3DVertexBuffer9*/* worldVb;
|
||||
void /*IDirect3DVertexBuffer9*/* worldVb;
|
||||
};
|
||||
|
||||
struct GfxWorldVertexLayerData
|
||||
{
|
||||
char* data;
|
||||
void/*IDirect3DVertexBuffer9*/* layerVb;
|
||||
void /*IDirect3DVertexBuffer9*/* layerVb;
|
||||
};
|
||||
|
||||
struct SunLightParseParams
|
||||
@ -1979,7 +1979,7 @@ namespace IW3
|
||||
bool isAncestor;
|
||||
char recursionDepth;
|
||||
char hullPointCount;
|
||||
float(*hullPoints)[2];
|
||||
float (*hullPoints)[2];
|
||||
GfxPortal* queuedParent;
|
||||
};
|
||||
|
||||
@ -3076,13 +3076,13 @@ namespace IW3
|
||||
// TODO: Order is accuracyGraphName[0] -> originalAccuracyGraphKnots[0] -> accuracyGraphName[1] -> ...
|
||||
// Which is currently not possible to do in code generation. Afaik this is the only place where this is the case.
|
||||
// So might be something to fix but on the other hand it might be too much work for this little inconvenience.
|
||||
//const char* accuracyGraphName[2];
|
||||
// const char* accuracyGraphName[2];
|
||||
const char* accuracyGraphName0;
|
||||
const char* accuracyGraphName1;
|
||||
//float(*accuracyGraphKnots[2])[2];
|
||||
// float(*accuracyGraphKnots[2])[2];
|
||||
vec2_t* accuracyGraphKnots0;
|
||||
vec2_t* accuracyGraphKnots1;
|
||||
//float(*originalAccuracyGraphKnots[2])[2];
|
||||
// float(*originalAccuracyGraphKnots[2])[2];
|
||||
vec2_t* originalAccuracyGraphKnots0;
|
||||
vec2_t* originalAccuracyGraphKnots1;
|
||||
int accuracyGraphKnotCount[2];
|
||||
|
@ -10,7 +10,7 @@ namespace IW4
|
||||
static constexpr uint32_t R_HashString(const char* string, const uint32_t hash)
|
||||
{
|
||||
const char* v2 = string; // edx@1
|
||||
char v3 = *string; // cl@1
|
||||
char v3 = *string; // cl@1
|
||||
uint32_t result = hash;
|
||||
|
||||
for (; *v2; v3 = *v2)
|
||||
@ -35,4 +35,4 @@ namespace IW4
|
||||
static void Vec3UnpackUnitVec(const PackedUnitVec& in, vec3_t* out);
|
||||
static void Vec4UnpackGfxColor(const GfxColor& in, vec4_t* out);
|
||||
};
|
||||
}
|
||||
} // namespace IW4
|
||||
|
@ -1,9 +1,9 @@
|
||||
#include "GameIW4.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "IW4.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
using namespace IW4;
|
||||
|
||||
GameIW4 g_GameIW4;
|
||||
|
@ -14,4 +14,4 @@ public:
|
||||
std::vector<GameLanguagePrefix> GetLanguagePrefixes() override;
|
||||
};
|
||||
|
||||
extern GameIW4 g_GameIW4;
|
||||
extern GameIW4 g_GameIW4;
|
||||
|
@ -1,10 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
//#include <d3d11.h>
|
||||
// clang-format off: Order of includes matters here
|
||||
|
||||
// #include <d3d9.h>
|
||||
#include "Image/Texture.h"
|
||||
|
||||
#include "IW4_Assets.h"
|
||||
|
||||
// clang-format on
|
||||
|
||||
namespace IW4
|
||||
{
|
||||
struct DB_AuthHash
|
||||
@ -26,11 +30,11 @@ namespace IW4
|
||||
|
||||
struct DB_AuthHeader
|
||||
{
|
||||
char magic[8]; // + 0
|
||||
unsigned int reserved; // + 8
|
||||
DB_AuthHash subheaderHash; // + 12
|
||||
DB_AuthSignature signedSubheaderHash; // + 44
|
||||
DB_AuthSubHeader subheader; // + 300
|
||||
char magic[8]; // + 0
|
||||
unsigned int reserved; // + 8
|
||||
DB_AuthHash subheaderHash; // + 12
|
||||
DB_AuthSignature signedSubheaderHash; // + 44
|
||||
DB_AuthSubHeader subheader; // + 300
|
||||
};
|
||||
|
||||
struct ScriptStringList
|
||||
@ -122,4 +126,4 @@ namespace IW4
|
||||
|
||||
VFT_NUM,
|
||||
};
|
||||
}
|
||||
} // namespace IW4
|
||||
|
@ -571,8 +571,8 @@ namespace IW4
|
||||
unsigned int noScalePartBits[6];
|
||||
uint16_t* boneNames;
|
||||
unsigned char* parentList;
|
||||
int16_t(*quats)[4];
|
||||
float(*trans)[3];
|
||||
int16_t (*quats)[4];
|
||||
float (*trans)[3];
|
||||
unsigned char* partClassification;
|
||||
DObjAnimMat* baseMat;
|
||||
Material** materialHandles;
|
||||
@ -669,7 +669,7 @@ namespace IW4
|
||||
char nameStart;
|
||||
char nameEnd;
|
||||
unsigned char samplerState; // SamplerStateBits_e
|
||||
unsigned char semantic; // TextureSemantic
|
||||
unsigned char semantic; // TextureSemantic
|
||||
MaterialTextureDefInfo u;
|
||||
};
|
||||
|
||||
@ -878,13 +878,13 @@ namespace IW4
|
||||
|
||||
SORTKEY_TRANS_START = 6,
|
||||
|
||||
SORTKEY_DECAL_BOTTOM_1 = 6, // prob decal - bottom 1
|
||||
SORTKEY_DECAL_BOTTOM_2 = 7, // prob decal - bottom 2
|
||||
SORTKEY_DECAL_BOTTOM_3 = 8, // prob decal - bottom 3
|
||||
SORTKEY_DECAL_STATIC_DECAL = 9, // prob decal - static decal
|
||||
SORTKEY_DECAL_MIDDLE_1 = 10, // prob decal - middle 1
|
||||
SORTKEY_DECAL_MIDDLE_2 = 11, // prob decal - middle 2
|
||||
SORTKEY_DECAL_MIDDLE_3 = 12, // prob decal - middle 3
|
||||
SORTKEY_DECAL_BOTTOM_1 = 6, // prob decal - bottom 1
|
||||
SORTKEY_DECAL_BOTTOM_2 = 7, // prob decal - bottom 2
|
||||
SORTKEY_DECAL_BOTTOM_3 = 8, // prob decal - bottom 3
|
||||
SORTKEY_DECAL_STATIC_DECAL = 9, // prob decal - static decal
|
||||
SORTKEY_DECAL_MIDDLE_1 = 10, // prob decal - middle 1
|
||||
SORTKEY_DECAL_MIDDLE_2 = 11, // prob decal - middle 2
|
||||
SORTKEY_DECAL_MIDDLE_3 = 12, // prob decal - middle 3
|
||||
SORTKEY_DECAL_WEAPON_IMPACT = 13, // prob decal - weapon impact
|
||||
// ? = 14, // prob decal - top 1
|
||||
// some decal = 15, // prob decal - top 2 or decal - top 3
|
||||
@ -896,7 +896,7 @@ namespace IW4
|
||||
// ? = 21,
|
||||
// - = 22,
|
||||
// - = 23,
|
||||
SORTKEY_WINDOW_INSIDE = 24, // prob window inside
|
||||
SORTKEY_WINDOW_INSIDE = 24, // prob window inside
|
||||
SORTKEY_WINDOW_OUTSIDE = 25, // prob window outside
|
||||
// ? = 26, // includes motiontracker3d, impact fx, atmos
|
||||
// ? = 27,
|
||||
@ -919,11 +919,11 @@ namespace IW4
|
||||
// ? = 44,
|
||||
// ? = 45,
|
||||
// - = 46,
|
||||
SORTKEY_BLEND_ADDITIVE = 47, // most likely blend / additive
|
||||
SORTKEY_BLEND_ADDITIVE = 47, // most likely blend / additive
|
||||
SORTKEY_EFFECT_AUTO_SORT = 48, // most likely effect - auto sort
|
||||
SORTKEY_AFTER_EFFECTS_BOTTOM = 49,
|
||||
SORTKEY_AFTER_EFFECTS_MIDDLE = 50, // prob after effects - middle
|
||||
SORTKEY_AFTER_EFFECTS_TOP = 51, // prob after effects - top
|
||||
SORTKEY_AFTER_EFFECTS_TOP = 51, // prob after effects - top
|
||||
// - = 52,
|
||||
SORTKEY_VIEWMODEL_EFFECT = 53, // maybe viewmodel effect
|
||||
|
||||
@ -1087,7 +1087,7 @@ namespace IW4
|
||||
|
||||
STREAM_SRC_COUNT
|
||||
};
|
||||
|
||||
|
||||
enum MaterialStreamDestination_e
|
||||
{
|
||||
STREAM_DST_POSITION = 0x0,
|
||||
@ -1116,7 +1116,7 @@ namespace IW4
|
||||
struct MaterialVertexStreamRouting
|
||||
{
|
||||
MaterialStreamRouting data[13];
|
||||
void/*IDirect3DVertexDeclaration9*/* decl[16];
|
||||
void /*IDirect3DVertexDeclaration9*/* decl[16];
|
||||
};
|
||||
|
||||
struct MaterialVertexDeclaration
|
||||
@ -1129,7 +1129,7 @@ namespace IW4
|
||||
|
||||
struct MaterialVertexShaderProgram
|
||||
{
|
||||
void/*IDirect3DVertexShader9*/* vs;
|
||||
void /*IDirect3DVertexShader9*/* vs;
|
||||
GfxVertexShaderLoadDef loadDef;
|
||||
};
|
||||
|
||||
@ -1141,7 +1141,7 @@ namespace IW4
|
||||
|
||||
struct MaterialPixelShaderProgram
|
||||
{
|
||||
void/*IDirect3DPixelShader9*/* ps;
|
||||
void /*IDirect3DPixelShader9*/* ps;
|
||||
GfxPixelShaderLoadDef loadDef;
|
||||
};
|
||||
|
||||
@ -1205,11 +1205,11 @@ namespace IW4
|
||||
enum MaterialType
|
||||
{
|
||||
MTL_TYPE_DEFAULT = 0x0,
|
||||
MTL_TYPE_MODEL = 0x1, // m_
|
||||
MTL_TYPE_MODEL_VERTCOL = 0x2, // mc_
|
||||
MTL_TYPE_MODEL = 0x1, // m_
|
||||
MTL_TYPE_MODEL_VERTCOL = 0x2, // mc_
|
||||
MTL_TYPE_MODEL_VERTCOL_GREY = 0x3, // mg_
|
||||
MTL_TYPE_WORLD = 0x4, // w_
|
||||
MTL_TYPE_WORLD_VERTCOL = 0x5, // wc_
|
||||
MTL_TYPE_WORLD = 0x4, // w_
|
||||
MTL_TYPE_WORLD_VERTCOL = 0x5, // wc_
|
||||
|
||||
MTL_TYPE_COUNT,
|
||||
};
|
||||
@ -1409,20 +1409,20 @@ namespace IW4
|
||||
|
||||
enum MaterialShaderArgumentType
|
||||
{
|
||||
MTL_ARG_MATERIAL_VERTEX_CONST = 0x0, // stable
|
||||
MTL_ARG_LITERAL_VERTEX_CONST = 0x1, // stable
|
||||
MTL_ARG_MATERIAL_VERTEX_CONST = 0x0, // stable
|
||||
MTL_ARG_LITERAL_VERTEX_CONST = 0x1, // stable
|
||||
MTL_ARG_MATERIAL_PIXEL_SAMPLER = 0x2, // stable
|
||||
|
||||
MTL_ARG_CODE_PRIM_BEGIN = 0x3,
|
||||
|
||||
MTL_ARG_CODE_VERTEX_CONST = 0x3, // stable object prim
|
||||
MTL_ARG_CODE_VERTEX_CONST = 0x3, // stable object prim
|
||||
MTL_ARG_CODE_PIXEL_SAMPLER = 0x4, // stable object
|
||||
MTL_ARG_CODE_PIXEL_CONST = 0x5, // stable
|
||||
MTL_ARG_CODE_PIXEL_CONST = 0x5, // stable
|
||||
|
||||
MTL_ARG_CODE_PRIM_END = 0x6,
|
||||
|
||||
MTL_ARG_MATERIAL_PIXEL_CONST = 0x6, // stable
|
||||
MTL_ARG_LITERAL_PIXEL_CONST = 0x7, // stable
|
||||
MTL_ARG_LITERAL_PIXEL_CONST = 0x7, // stable
|
||||
|
||||
MTL_ARG_COUNT
|
||||
};
|
||||
@ -1457,14 +1457,15 @@ namespace IW4
|
||||
enum TechniqueFlags
|
||||
{
|
||||
// Guesses purely based on data analysis:
|
||||
TECHNIQUE_FLAG_1 = 0x1, // uses resolvedPostSun code sampler // MTL_TECHFLAG_NEEDS_RESOLVED_POST_SUN
|
||||
TECHNIQUE_FLAG_2 = 0x2, // uses resolvedScene code sampler MTL_TECHFLAG_NEEDS_RESOLVED_SCENE
|
||||
TECHNIQUE_FLAG_4 = 0x4, // zprepass only
|
||||
TECHNIQUE_FLAG_8 = 0x8, // build_floatz only
|
||||
TECHNIQUE_FLAG_1 = 0x1, // uses resolvedPostSun code sampler // MTL_TECHFLAG_NEEDS_RESOLVED_POST_SUN
|
||||
TECHNIQUE_FLAG_2 = 0x2, // uses resolvedScene code sampler MTL_TECHFLAG_NEEDS_RESOLVED_SCENE
|
||||
TECHNIQUE_FLAG_4 = 0x4, // zprepass only
|
||||
TECHNIQUE_FLAG_8 = 0x8, // build_floatz only
|
||||
TECHNIQUE_FLAG_10 = 0x10, // build_shadowmap_depth + build_shadowmap_model only
|
||||
TECHNIQUE_FLAG_20 = 0x20, // techniques with _i_ in its name (all use texcoord[1] in decl -> other optional stream sources are not used at all so might be any optional)
|
||||
TECHNIQUE_FLAG_40 = 0x40, // uses code constant light.spotDir or light.spotFactors
|
||||
TECHNIQUE_FLAG_80 = 0x80, // uses floatZ sampler and does not have 0x100 flag
|
||||
TECHNIQUE_FLAG_20 =
|
||||
0x20, // techniques with _i_ in its name (all use texcoord[1] in decl -> other optional stream sources are not used at all so might be any optional)
|
||||
TECHNIQUE_FLAG_40 = 0x40, // uses code constant light.spotDir or light.spotFactors
|
||||
TECHNIQUE_FLAG_80 = 0x80, // uses floatZ sampler and does not have 0x100 flag
|
||||
TECHNIQUE_FLAG_100 = 0x100, // distortion_scale_zfeather_dtex + distortion_scale_ua_zfeather + distortion_scale_zfeather
|
||||
TECHNIQUE_FLAG_200 = 0x200, // ?
|
||||
};
|
||||
@ -1758,7 +1759,7 @@ namespace IW4
|
||||
DvarValue latched;
|
||||
DvarValue reset;
|
||||
DvarLimits domain;
|
||||
//bool (__cdecl* domainFunc)(dvar_t*, DvarValue);
|
||||
// bool (__cdecl* domainFunc)(dvar_t*, DvarValue);
|
||||
void* domainFunc;
|
||||
dvar_t* hashNext;
|
||||
};
|
||||
@ -3065,11 +3066,13 @@ namespace IW4
|
||||
float fAngle;
|
||||
float forward[2];
|
||||
float fRadius;
|
||||
|
||||
union
|
||||
{
|
||||
float minUseDistSq;
|
||||
PathNodeErrorCode error;
|
||||
};
|
||||
|
||||
int16_t wOverlapNode[2];
|
||||
uint16_t totalLinkCount;
|
||||
pathlink_s* Links;
|
||||
@ -3097,6 +3100,7 @@ namespace IW4
|
||||
pathnode_t* pParent;
|
||||
float fCost;
|
||||
float fHeuristic;
|
||||
|
||||
union
|
||||
{
|
||||
float nodeCost;
|
||||
@ -3259,6 +3263,7 @@ namespace IW4
|
||||
FxSpatialFrame frame;
|
||||
float radius;
|
||||
};
|
||||
|
||||
unsigned int nextFree;
|
||||
};
|
||||
|
||||
@ -3417,7 +3422,7 @@ namespace IW4
|
||||
bool isAncestor;
|
||||
char recursionDepth;
|
||||
char hullPointCount;
|
||||
float(*hullPoints)[2];
|
||||
float (*hullPoints)[2];
|
||||
GfxPortal* queuedParent;
|
||||
};
|
||||
|
||||
@ -3470,13 +3475,13 @@ namespace IW4
|
||||
struct GfxWorldVertexData
|
||||
{
|
||||
GfxWorldVertex* vertices;
|
||||
void/*IDirect3DVertexBuffer9*/* worldVb;
|
||||
void /*IDirect3DVertexBuffer9*/* worldVb;
|
||||
};
|
||||
|
||||
struct GfxWorldVertexLayerData
|
||||
{
|
||||
char* data;
|
||||
void/*IDirect3DVertexBuffer9*/* layerVb;
|
||||
void /*IDirect3DVertexBuffer9*/* layerVb;
|
||||
};
|
||||
|
||||
struct GfxWorldDraw
|
||||
@ -3757,7 +3762,7 @@ namespace IW4
|
||||
unsigned int sortKeyEffectAuto;
|
||||
unsigned int sortKeyDistortion;
|
||||
GfxWorldDpvsPlanes dpvsPlanes;
|
||||
int/*GfxCellTreeCount*/* aabbTreeCounts;
|
||||
int /*GfxCellTreeCount*/* aabbTreeCounts;
|
||||
GfxCellTree128* aabbTrees;
|
||||
GfxCell* cells;
|
||||
GfxWorldDraw draw;
|
||||
@ -4639,7 +4644,6 @@ namespace IW4
|
||||
VEH_TYPE_COUNT = 0x7,
|
||||
};
|
||||
|
||||
|
||||
struct VehicleDef
|
||||
{
|
||||
const char* name;
|
||||
|
@ -22,17 +22,17 @@ int Common::StringTable_HashString(const char* str)
|
||||
|
||||
PackedTexCoords Common::Vec2PackTexCoords(const vec2_t* in)
|
||||
{
|
||||
return PackedTexCoords{ Pack32::Vec2PackTexCoords(reinterpret_cast<const float*>(in)) };
|
||||
return PackedTexCoords{Pack32::Vec2PackTexCoords(reinterpret_cast<const float*>(in))};
|
||||
}
|
||||
|
||||
PackedUnitVec Common::Vec3PackUnitVec(const vec3_t* in)
|
||||
{
|
||||
return PackedUnitVec{ Pack32::Vec3PackUnitVec(reinterpret_cast<const float*>(in)) };
|
||||
return PackedUnitVec{Pack32::Vec3PackUnitVec(reinterpret_cast<const float*>(in))};
|
||||
}
|
||||
|
||||
GfxColor Common::Vec4PackGfxColor(const vec4_t* in)
|
||||
{
|
||||
return GfxColor{ Pack32::Vec4PackGfxColor(reinterpret_cast<const float*>(in)) };
|
||||
return GfxColor{Pack32::Vec4PackGfxColor(reinterpret_cast<const float*>(in))};
|
||||
}
|
||||
|
||||
void Common::Vec2UnpackTexCoords(const PackedTexCoords& in, vec2_t* out)
|
||||
|
@ -16,4 +16,4 @@ namespace IW5
|
||||
static void Vec3UnpackUnitVec(const PackedUnitVec& in, vec3_t* out);
|
||||
static void Vec4UnpackGfxColor(const GfxColor& in, vec4_t* out);
|
||||
};
|
||||
}
|
||||
} // namespace IW5
|
||||
|
@ -1,9 +1,9 @@
|
||||
#include "GameIW5.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "IW5.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
using namespace IW5;
|
||||
|
||||
GameIW5 g_GameIW5;
|
||||
|
@ -14,4 +14,4 @@ public:
|
||||
std::vector<GameLanguagePrefix> GetLanguagePrefixes() override;
|
||||
};
|
||||
|
||||
extern GameIW5 g_GameIW5;
|
||||
extern GameIW5 g_GameIW5;
|
||||
|
@ -1,10 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
//#include <d3d11.h>
|
||||
// clang-format off: Order of includes matters here
|
||||
|
||||
// #include <d3d9.h>
|
||||
#include "Image/Texture.h"
|
||||
|
||||
#include "IW5_Assets.h"
|
||||
|
||||
// clang-format on
|
||||
|
||||
namespace IW5
|
||||
{
|
||||
struct DB_AuthHash
|
||||
@ -26,11 +30,11 @@ namespace IW5
|
||||
|
||||
struct DB_AuthHeader
|
||||
{
|
||||
char magic[8]; // + 0
|
||||
unsigned int reserved; // + 8
|
||||
DB_AuthHash subheaderHash; // + 12
|
||||
DB_AuthSignature signedSubheaderHash; // + 44
|
||||
DB_AuthSubHeader subheader; // + 300
|
||||
char magic[8]; // + 0
|
||||
unsigned int reserved; // + 8
|
||||
DB_AuthHash subheaderHash; // + 12
|
||||
DB_AuthSignature signedSubheaderHash; // + 44
|
||||
DB_AuthSubHeader subheader; // + 300
|
||||
};
|
||||
|
||||
struct ScriptStringList
|
||||
@ -79,4 +83,4 @@ namespace IW5
|
||||
|
||||
CSPFT_NUM_BASE_FIELD_TYPES,
|
||||
};
|
||||
}
|
||||
} // namespace IW5
|
||||
|
@ -536,7 +536,7 @@ namespace IW5
|
||||
uint16_t baseTriIndex;
|
||||
uint16_t baseVertIndex;
|
||||
float quantizeScale;
|
||||
r_index16_t(*triIndices)[3];
|
||||
r_index16_t (*triIndices)[3];
|
||||
XSurfaceVertexInfo vertInfo;
|
||||
GfxVertexUnion0 verts0;
|
||||
unsigned int vertListCount;
|
||||
@ -606,8 +606,8 @@ namespace IW5
|
||||
unsigned int noScalePartBits[6];
|
||||
ScriptString* boneNames;
|
||||
unsigned char* parentList;
|
||||
short(*quats)[4];
|
||||
float(*trans)[3];
|
||||
short (*quats)[4];
|
||||
float (*trans)[3];
|
||||
unsigned char* partClassification;
|
||||
DObjAnimMat* baseMat;
|
||||
Material** materialHandles;
|
||||
@ -802,13 +802,13 @@ namespace IW5
|
||||
char source;
|
||||
char dest;
|
||||
};
|
||||
|
||||
|
||||
struct MaterialVertexStreamRouting
|
||||
{
|
||||
MaterialStreamRouting data[13];
|
||||
void* decl[16];
|
||||
};
|
||||
|
||||
|
||||
struct MaterialVertexDeclaration
|
||||
{
|
||||
const char* name;
|
||||
@ -843,7 +843,7 @@ namespace IW5
|
||||
|
||||
union MaterialArgumentDef
|
||||
{
|
||||
const float(*literalConst)[4];
|
||||
const float (*literalConst)[4];
|
||||
MaterialArgumentCodeConst codeConst;
|
||||
unsigned int codeSampler;
|
||||
unsigned int nameHash;
|
||||
@ -1507,6 +1507,7 @@ namespace IW5
|
||||
pathnode_t* pParent;
|
||||
float fCost;
|
||||
float fHeuristic;
|
||||
|
||||
union
|
||||
{
|
||||
float nodeCost;
|
||||
@ -1659,6 +1660,7 @@ namespace IW5
|
||||
FxSpatialFrame frame;
|
||||
float radius;
|
||||
};
|
||||
|
||||
unsigned int nextFree;
|
||||
};
|
||||
|
||||
@ -1817,7 +1819,7 @@ namespace IW5
|
||||
bool isAncestor;
|
||||
unsigned char recursionDepth;
|
||||
unsigned char hullPointCount;
|
||||
float(*hullPoints)[2];
|
||||
float (*hullPoints)[2];
|
||||
GfxPortal* queuedParent;
|
||||
};
|
||||
|
||||
@ -2173,7 +2175,7 @@ namespace IW5
|
||||
unsigned int sortKeyEffectAuto;
|
||||
unsigned int sortKeyDistortion;
|
||||
GfxWorldDpvsPlanes dpvsPlanes;
|
||||
int/*GfxCellTreeCount*/* aabbTreeCounts;
|
||||
int /*GfxCellTreeCount*/* aabbTreeCounts;
|
||||
GfxCellTree128* aabbTrees;
|
||||
GfxCell* cells;
|
||||
GfxWorldDraw draw;
|
||||
@ -2569,8 +2571,8 @@ namespace IW5
|
||||
WINDOW_FLAG_POPUP = 0x1000000,
|
||||
WINDOW_FLAG_LEGACY_SPLIT_SCREEN_SCALE = 0x4000000,
|
||||
WINDOW_FLAG_HIDDEN_DURING_FLASH_BANG = 0x10000000, // confirmed
|
||||
WINDOW_FLAG_HIDDEN_DURING_SCOPE = 0x20000000, // confirmed
|
||||
WINDOW_FLAG_HIDDEN_DURING_UI = 0x40000000, // confirmed
|
||||
WINDOW_FLAG_HIDDEN_DURING_SCOPE = 0x20000000, // confirmed
|
||||
WINDOW_FLAG_HIDDEN_DURING_UI = 0x40000000, // confirmed
|
||||
WINDOW_FLAG_TEXT_ONLY_FOCUS = 0x80000000,
|
||||
};
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
#include "CommonT5.h"
|
||||
|
||||
#include <cctype>
|
||||
|
||||
#include "Utils/Pack.h"
|
||||
|
||||
#include <cctype>
|
||||
|
||||
using namespace T5;
|
||||
|
||||
int Common::Com_HashKey(const char* str, const int maxLen)
|
||||
|
@ -18,4 +18,4 @@ namespace T5
|
||||
static void Vec3UnpackUnitVec(const PackedUnitVec& in, vec3_t* out);
|
||||
static void Vec4UnpackGfxColor(const GfxColor& in, vec4_t* out);
|
||||
};
|
||||
}
|
||||
} // namespace T5
|
||||
|
@ -1,9 +1,9 @@
|
||||
#include "GameT5.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "T5.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
using namespace T5;
|
||||
|
||||
GameT5 g_GameT5;
|
||||
|
@ -14,4 +14,4 @@ public:
|
||||
std::vector<GameLanguagePrefix> GetLanguagePrefixes() override;
|
||||
};
|
||||
|
||||
extern GameT5 g_GameT5;
|
||||
extern GameT5 g_GameT5;
|
||||
|
@ -1,10 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
//#include <d3d9.h>
|
||||
// clang-format off: Order of includes matters here
|
||||
|
||||
// #include <d3d9.h>
|
||||
#include "Image/Texture.h"
|
||||
|
||||
#include "T5_Assets.h"
|
||||
|
||||
// clang-format on
|
||||
|
||||
namespace T5
|
||||
{
|
||||
struct ScriptStringList
|
||||
@ -110,4 +114,4 @@ namespace T5
|
||||
|
||||
CFT_NUM_FIELD_TYPES
|
||||
};
|
||||
}
|
||||
} // namespace T5
|
||||
|
@ -114,43 +114,43 @@ namespace T5
|
||||
|
||||
union XAssetHeader
|
||||
{
|
||||
//XModelPieces *xmodelPieces; // Not an asset
|
||||
PhysPreset *physPreset;
|
||||
PhysConstraints *physConstraints;
|
||||
DestructibleDef *destructibleDef;
|
||||
XAnimParts *parts;
|
||||
XModel *model;
|
||||
Material *material;
|
||||
//MaterialPixelShader *pixelShader; // Not an asset
|
||||
//MaterialVertexShader *vertexShader; // Not an asset
|
||||
MaterialTechniqueSet *techniqueSet;
|
||||
GfxImage *image;
|
||||
SndBank *sound;
|
||||
SndPatch *soundPatch;
|
||||
clipMap_t *clipMap;
|
||||
ComWorld *comWorld;
|
||||
GameWorldSp *gameWorldSp;
|
||||
GameWorldMp *gameWorldMp;
|
||||
MapEnts *mapEnts;
|
||||
GfxWorld *gfxWorld;
|
||||
GfxLightDef *lightDef;
|
||||
Font_s *font;
|
||||
MenuList *menuList;
|
||||
menuDef_t *menu;
|
||||
LocalizeEntry *localize;
|
||||
WeaponVariantDef *weapon;
|
||||
SndDriverGlobals *sndDriverGlobals;
|
||||
FxEffectDef *fx;
|
||||
FxImpactTable *impactFx;
|
||||
RawFile *rawfile;
|
||||
StringTable *stringTable;
|
||||
PackIndex *packIndex;
|
||||
XGlobals *xGlobals;
|
||||
ddlRoot_t *ddlRoot;
|
||||
Glasses *glasses;
|
||||
//TextureList *textureList; // Not an asset
|
||||
EmblemSet *emblemSet;
|
||||
void *data;
|
||||
// XModelPieces *xmodelPieces; // Not an asset
|
||||
PhysPreset* physPreset;
|
||||
PhysConstraints* physConstraints;
|
||||
DestructibleDef* destructibleDef;
|
||||
XAnimParts* parts;
|
||||
XModel* model;
|
||||
Material* material;
|
||||
// MaterialPixelShader *pixelShader; // Not an asset
|
||||
// MaterialVertexShader *vertexShader; // Not an asset
|
||||
MaterialTechniqueSet* techniqueSet;
|
||||
GfxImage* image;
|
||||
SndBank* sound;
|
||||
SndPatch* soundPatch;
|
||||
clipMap_t* clipMap;
|
||||
ComWorld* comWorld;
|
||||
GameWorldSp* gameWorldSp;
|
||||
GameWorldMp* gameWorldMp;
|
||||
MapEnts* mapEnts;
|
||||
GfxWorld* gfxWorld;
|
||||
GfxLightDef* lightDef;
|
||||
Font_s* font;
|
||||
MenuList* menuList;
|
||||
menuDef_t* menu;
|
||||
LocalizeEntry* localize;
|
||||
WeaponVariantDef* weapon;
|
||||
SndDriverGlobals* sndDriverGlobals;
|
||||
FxEffectDef* fx;
|
||||
FxImpactTable* impactFx;
|
||||
RawFile* rawfile;
|
||||
StringTable* stringTable;
|
||||
PackIndex* packIndex;
|
||||
XGlobals* xGlobals;
|
||||
ddlRoot_t* ddlRoot;
|
||||
Glasses* glasses;
|
||||
// TextureList *textureList; // Not an asset
|
||||
EmblemSet* emblemSet;
|
||||
void* data;
|
||||
};
|
||||
|
||||
typedef tdef_align(16) char char16;
|
||||
@ -508,12 +508,12 @@ namespace T5
|
||||
uint16_t triCount;
|
||||
uint16_t baseTriIndex;
|
||||
uint16_t baseVertIndex;
|
||||
r_index16_t(*triIndices)[3];
|
||||
r_index16_t (*triIndices)[3];
|
||||
XSurfaceVertexInfo vertInfo;
|
||||
GfxPackedVertex* verts0;
|
||||
void/*IDirect3DVertexBuffer9*/* vb0;
|
||||
void /*IDirect3DVertexBuffer9*/* vb0;
|
||||
XRigidVertList* vertList;
|
||||
void/*IDirect3DIndexBuffer9*/* indexBuffer;
|
||||
void /*IDirect3DIndexBuffer9*/* indexBuffer;
|
||||
int partBits[5];
|
||||
};
|
||||
|
||||
@ -628,8 +628,8 @@ namespace T5
|
||||
char lodRampType;
|
||||
uint16_t* boneNames;
|
||||
char* parentList;
|
||||
int16_t(*quats)[4];
|
||||
float(*trans)[4];
|
||||
int16_t (*quats)[4];
|
||||
float (*trans)[4];
|
||||
char* partClassification;
|
||||
DObjAnimMat* baseMat;
|
||||
XSurface* surfs;
|
||||
@ -837,7 +837,7 @@ namespace T5
|
||||
struct MaterialVertexStreamRouting
|
||||
{
|
||||
MaterialStreamRouting data[16];
|
||||
void/*IDirect3DVertexDeclaration9*/* decl[18];
|
||||
void /*IDirect3DVertexDeclaration9*/* decl[18];
|
||||
};
|
||||
|
||||
struct MaterialVertexDeclaration
|
||||
@ -856,7 +856,7 @@ namespace T5
|
||||
|
||||
struct MaterialVertexShaderProgram
|
||||
{
|
||||
void/*IDirect3DVertexShader9*/* vs;
|
||||
void /*IDirect3DVertexShader9*/* vs;
|
||||
GfxVertexShaderLoadDef loadDef;
|
||||
};
|
||||
|
||||
@ -874,7 +874,7 @@ namespace T5
|
||||
|
||||
struct MaterialPixelShaderProgram
|
||||
{
|
||||
void/*IDirect3DPixelShader9*/* ps;
|
||||
void /*IDirect3DPixelShader9*/* ps;
|
||||
GfxPixelShaderLoadDef loadDef;
|
||||
};
|
||||
|
||||
@ -893,7 +893,7 @@ namespace T5
|
||||
|
||||
union MaterialArgumentDef
|
||||
{
|
||||
const float(*literalConst)[4];
|
||||
const float (*literalConst)[4];
|
||||
MaterialArgumentCodeConst codeConst;
|
||||
unsigned int codeSampler;
|
||||
unsigned int nameHash;
|
||||
@ -1963,7 +1963,7 @@ namespace T5
|
||||
bool isAncestor;
|
||||
char recursionDepth;
|
||||
char hullPointCount;
|
||||
float(*hullPoints)[2];
|
||||
float (*hullPoints)[2];
|
||||
GfxPortal* queuedParent;
|
||||
};
|
||||
|
||||
@ -2040,17 +2040,17 @@ namespace T5
|
||||
PackedUnitVec normal;
|
||||
PackedUnitVec tangent;
|
||||
};
|
||||
|
||||
|
||||
struct GfxWorldVertexData
|
||||
{
|
||||
GfxWorldVertex* vertices;
|
||||
void/*IDirect3DVertexBuffer9*/* worldVb;
|
||||
void /*IDirect3DVertexBuffer9*/* worldVb;
|
||||
};
|
||||
|
||||
struct GfxWorldVertexLayerData
|
||||
{
|
||||
char* data;
|
||||
void/*IDirect3DVertexBuffer9*/* layerVb;
|
||||
void /*IDirect3DVertexBuffer9*/* layerVb;
|
||||
};
|
||||
|
||||
struct GfxWorldDraw
|
||||
@ -3861,15 +3861,16 @@ namespace T5
|
||||
float fHipViewScatterMax;
|
||||
float fightDist;
|
||||
float maxDist;
|
||||
//const char *accuracyGraphName[2]; // TODO: Order is accuracyGraphName[0] -> accuracyGraphKnots[0] -> originalAccuracyGraphKnots[0] -> accuracyGraphName[1] -> ...
|
||||
// Which is currently not possible to do in code generation. Afaik this is the only place where this is the case.
|
||||
// So might be something to fix but on the other hand it might be too much work for this little inconvenience.
|
||||
// const char *accuracyGraphName[2]; // TODO: Order is accuracyGraphName[0] -> accuracyGraphKnots[0] -> originalAccuracyGraphKnots[0] ->
|
||||
// accuracyGraphName[1] -> ...
|
||||
// Which is currently not possible to do in code generation. Afaik this is the only place where this is the case.
|
||||
// So might be something to fix but on the other hand it might be too much work for this little inconvenience.
|
||||
const char* accuracyGraphName0;
|
||||
const char* accuracyGraphName1;
|
||||
//vec2_t *accuracyGraphKnots[2];
|
||||
// vec2_t *accuracyGraphKnots[2];
|
||||
vec2_t* accuracyGraphKnots0;
|
||||
vec2_t* accuracyGraphKnots1;
|
||||
//vec2_t *originalAccuracyGraphKnots[2];
|
||||
// vec2_t *originalAccuracyGraphKnots[2];
|
||||
vec2_t* originalAccuracyGraphKnots0;
|
||||
vec2_t* originalAccuracyGraphKnots1;
|
||||
int accuracyGraphKnotCount[2];
|
||||
|
@ -1,9 +1,9 @@
|
||||
#include "CommonT6.h"
|
||||
|
||||
#include <cctype>
|
||||
|
||||
#include "Utils/Pack.h"
|
||||
|
||||
#include <cctype>
|
||||
|
||||
using namespace T6;
|
||||
|
||||
int Common::Com_HashKey(const char* str, const int maxLen)
|
||||
@ -30,7 +30,7 @@ int Common::Com_HashString(const char* str)
|
||||
|
||||
auto result = 0x1505;
|
||||
auto offset = 0;
|
||||
while(str[offset])
|
||||
while (str[offset])
|
||||
{
|
||||
const auto c = tolower(str[offset++]);
|
||||
result = c + 33 * result;
|
||||
@ -46,7 +46,7 @@ int Common::Com_HashString(const char* str, const int len)
|
||||
|
||||
int result = 0x1505;
|
||||
int offset = 0;
|
||||
while(str[offset])
|
||||
while (str[offset])
|
||||
{
|
||||
if (len > 0 && offset >= len)
|
||||
break;
|
||||
@ -70,17 +70,17 @@ uint32_t Common::R_HashString(const char* str, uint32_t hash)
|
||||
|
||||
PackedTexCoords Common::Vec2PackTexCoords(const vec2_t* in)
|
||||
{
|
||||
return PackedTexCoords{ Pack32::Vec2PackTexCoords(in->v) };
|
||||
return PackedTexCoords{Pack32::Vec2PackTexCoords(in->v)};
|
||||
}
|
||||
|
||||
PackedUnitVec Common::Vec3PackUnitVec(const vec3_t* in)
|
||||
{
|
||||
return PackedUnitVec{ Pack32::Vec3PackUnitVec(in->v) };
|
||||
return PackedUnitVec{Pack32::Vec3PackUnitVec(in->v)};
|
||||
}
|
||||
|
||||
GfxColor Common::Vec4PackGfxColor(const vec4_t* in)
|
||||
{
|
||||
return GfxColor{ Pack32::Vec4PackGfxColor(in->v) };
|
||||
return GfxColor{Pack32::Vec4PackGfxColor(in->v)};
|
||||
}
|
||||
|
||||
void Common::Vec2UnpackTexCoords(const PackedTexCoords& in, vec2_t* out)
|
||||
@ -96,4 +96,4 @@ void Common::Vec3UnpackUnitVec(const PackedUnitVec& in, vec3_t* out)
|
||||
void Common::Vec4UnpackGfxColor(const GfxColor& in, vec4_t* out)
|
||||
{
|
||||
Pack32::Vec4UnpackGfxColor(in.packed, out->v);
|
||||
}
|
||||
}
|
||||
|
@ -19,4 +19,4 @@ namespace T6
|
||||
static void Vec3UnpackUnitVec(const PackedUnitVec& in, vec3_t* out);
|
||||
static void Vec4UnpackGfxColor(const GfxColor& in, vec4_t* out);
|
||||
};
|
||||
}
|
||||
} // namespace T6
|
||||
|
@ -1,9 +1,9 @@
|
||||
#include "GameT6.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "T6.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
using namespace T6;
|
||||
|
||||
GameT6 g_GameT6;
|
||||
|
@ -14,4 +14,4 @@ public:
|
||||
std::vector<GameLanguagePrefix> GetLanguagePrefixes() override;
|
||||
};
|
||||
|
||||
extern GameT6 g_GameT6;
|
||||
extern GameT6 g_GameT6;
|
||||
|
@ -1,10 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
//#include <d3d11.h>
|
||||
// clang-format off: Order of includes matters here
|
||||
|
||||
// #include <d3d11.h>
|
||||
#include "Image/Texture.h"
|
||||
|
||||
#include "T6_Assets.h"
|
||||
|
||||
// clang-format on
|
||||
|
||||
namespace T6
|
||||
{
|
||||
struct ScriptStringList
|
||||
@ -149,4 +153,4 @@ namespace T6
|
||||
AUFT_NUM_FIELD_TYPES,
|
||||
};
|
||||
|
||||
}
|
||||
} // namespace T6
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -99,12 +99,10 @@ enum D3DFORMAT
|
||||
// 2.8 biased fixed point
|
||||
D3DFMT_A2B10G10R10_XR_BIAS = 119,
|
||||
|
||||
|
||||
// Binary format indicating that the data has no inherent type
|
||||
D3DFMT_BINARYBUFFER = 199,
|
||||
|
||||
|
||||
/* -- D3D9Ex only */
|
||||
|
||||
|
||||
D3DFMT_FORCE_DWORD = 0x7fffffff
|
||||
};
|
||||
};
|
||||
|
@ -4,10 +4,7 @@
|
||||
|
||||
constexpr uint32_t MakeFourCc(const char ch0, const char ch1, const char ch2, const char ch3)
|
||||
{
|
||||
return static_cast<uint32_t>(ch0)
|
||||
| static_cast<uint32_t>(ch1) << 8
|
||||
| static_cast<uint32_t>(ch2) << 16
|
||||
| static_cast<uint32_t>(ch3) << 24;
|
||||
return static_cast<uint32_t>(ch0) | static_cast<uint32_t>(ch1) << 8 | static_cast<uint32_t>(ch2) << 16 | static_cast<uint32_t>(ch3) << 24;
|
||||
}
|
||||
|
||||
enum DDP_FLAGS
|
||||
|
@ -22,126 +22,126 @@ const unsigned int DXGI_FORMAT_DEFINED = 1;
|
||||
|
||||
enum DXGI_FORMAT
|
||||
{
|
||||
DXGI_FORMAT_UNKNOWN = 0x00,
|
||||
DXGI_FORMAT_R32G32B32A32_TYPELESS = 0x01,
|
||||
DXGI_FORMAT_R32G32B32A32_FLOAT = 0x02,
|
||||
DXGI_FORMAT_R32G32B32A32_UINT = 0x03,
|
||||
DXGI_FORMAT_R32G32B32A32_SINT = 0x04,
|
||||
DXGI_FORMAT_R32G32B32_TYPELESS = 0x05,
|
||||
DXGI_FORMAT_R32G32B32_FLOAT = 0x06,
|
||||
DXGI_FORMAT_R32G32B32_UINT = 0x07,
|
||||
DXGI_FORMAT_R32G32B32_SINT = 0x08,
|
||||
DXGI_FORMAT_R16G16B16A16_TYPELESS = 0x09,
|
||||
DXGI_FORMAT_R16G16B16A16_FLOAT = 0x0a,
|
||||
DXGI_FORMAT_R16G16B16A16_UNORM = 0x0b,
|
||||
DXGI_FORMAT_R16G16B16A16_UINT = 0x0c,
|
||||
DXGI_FORMAT_R16G16B16A16_SNORM = 0x0d,
|
||||
DXGI_FORMAT_R16G16B16A16_SINT = 0x0e,
|
||||
DXGI_FORMAT_R32G32_TYPELESS = 0x0f,
|
||||
DXGI_FORMAT_R32G32_FLOAT = 0x10,
|
||||
DXGI_FORMAT_R32G32_UINT = 0x11,
|
||||
DXGI_FORMAT_R32G32_SINT = 0x12,
|
||||
DXGI_FORMAT_R32G8X24_TYPELESS = 0x13,
|
||||
DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 0x14,
|
||||
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 0x15,
|
||||
DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 0x16,
|
||||
DXGI_FORMAT_R10G10B10A2_TYPELESS = 0x17,
|
||||
DXGI_FORMAT_R10G10B10A2_UNORM = 0x18,
|
||||
DXGI_FORMAT_R10G10B10A2_UINT = 0x19,
|
||||
DXGI_FORMAT_R11G11B10_FLOAT = 0x1a,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS = 0x1b,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM = 0x1c,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 0x1d,
|
||||
DXGI_FORMAT_R8G8B8A8_UINT = 0x1e,
|
||||
DXGI_FORMAT_R8G8B8A8_SNORM = 0x1f,
|
||||
DXGI_FORMAT_R8G8B8A8_SINT = 0x20,
|
||||
DXGI_FORMAT_R16G16_TYPELESS = 0x21,
|
||||
DXGI_FORMAT_R16G16_FLOAT = 0x22,
|
||||
DXGI_FORMAT_R16G16_UNORM = 0x23,
|
||||
DXGI_FORMAT_R16G16_UINT = 0x24,
|
||||
DXGI_FORMAT_R16G16_SNORM = 0x25,
|
||||
DXGI_FORMAT_R16G16_SINT = 0x26,
|
||||
DXGI_FORMAT_R32_TYPELESS = 0x27,
|
||||
DXGI_FORMAT_D32_FLOAT = 0x28,
|
||||
DXGI_FORMAT_R32_FLOAT = 0x29,
|
||||
DXGI_FORMAT_R32_UINT = 0x2a,
|
||||
DXGI_FORMAT_R32_SINT = 0x2b,
|
||||
DXGI_FORMAT_R24G8_TYPELESS = 0x2c,
|
||||
DXGI_FORMAT_D24_UNORM_S8_UINT = 0x2d,
|
||||
DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 0x2e,
|
||||
DXGI_FORMAT_X24_TYPELESS_G8_UINT = 0x2f,
|
||||
DXGI_FORMAT_R8G8_TYPELESS = 0x30,
|
||||
DXGI_FORMAT_R8G8_UNORM = 0x31,
|
||||
DXGI_FORMAT_R8G8_UINT = 0x32,
|
||||
DXGI_FORMAT_R8G8_SNORM = 0x33,
|
||||
DXGI_FORMAT_R8G8_SINT = 0x34,
|
||||
DXGI_FORMAT_R16_TYPELESS = 0x35,
|
||||
DXGI_FORMAT_R16_FLOAT = 0x36,
|
||||
DXGI_FORMAT_D16_UNORM = 0x37,
|
||||
DXGI_FORMAT_R16_UNORM = 0x38,
|
||||
DXGI_FORMAT_R16_UINT = 0x39,
|
||||
DXGI_FORMAT_R16_SNORM = 0x3a,
|
||||
DXGI_FORMAT_R16_SINT = 0x3b,
|
||||
DXGI_FORMAT_R8_TYPELESS = 0x3c,
|
||||
DXGI_FORMAT_R8_UNORM = 0x3d,
|
||||
DXGI_FORMAT_R8_UINT = 0x3e,
|
||||
DXGI_FORMAT_R8_SNORM = 0x3f,
|
||||
DXGI_FORMAT_R8_SINT = 0x40,
|
||||
DXGI_FORMAT_A8_UNORM = 0x41,
|
||||
DXGI_FORMAT_R1_UNORM = 0x42,
|
||||
DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 0x43,
|
||||
DXGI_FORMAT_R8G8_B8G8_UNORM = 0x44,
|
||||
DXGI_FORMAT_G8R8_G8B8_UNORM = 0x45,
|
||||
DXGI_FORMAT_BC1_TYPELESS = 0x46,
|
||||
DXGI_FORMAT_BC1_UNORM = 0x47,
|
||||
DXGI_FORMAT_BC1_UNORM_SRGB = 0x48,
|
||||
DXGI_FORMAT_BC2_TYPELESS = 0x49,
|
||||
DXGI_FORMAT_BC2_UNORM = 0x4a,
|
||||
DXGI_FORMAT_BC2_UNORM_SRGB = 0x4b,
|
||||
DXGI_FORMAT_BC3_TYPELESS = 0x4c,
|
||||
DXGI_FORMAT_BC3_UNORM = 0x4d,
|
||||
DXGI_FORMAT_BC3_UNORM_SRGB = 0x4e,
|
||||
DXGI_FORMAT_BC4_TYPELESS = 0x4f,
|
||||
DXGI_FORMAT_BC4_UNORM = 0x50,
|
||||
DXGI_FORMAT_BC4_SNORM = 0x51,
|
||||
DXGI_FORMAT_BC5_TYPELESS = 0x52,
|
||||
DXGI_FORMAT_BC5_UNORM = 0x53,
|
||||
DXGI_FORMAT_BC5_SNORM = 0x54,
|
||||
DXGI_FORMAT_B5G6R5_UNORM = 0x55,
|
||||
DXGI_FORMAT_B5G5R5A1_UNORM = 0x56,
|
||||
DXGI_FORMAT_B8G8R8A8_UNORM = 0x57,
|
||||
DXGI_FORMAT_B8G8R8X8_UNORM = 0x58,
|
||||
DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 0x59,
|
||||
DXGI_FORMAT_B8G8R8A8_TYPELESS = 0x5a,
|
||||
DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 0x5b,
|
||||
DXGI_FORMAT_B8G8R8X8_TYPELESS = 0x5c,
|
||||
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 0x5d,
|
||||
DXGI_FORMAT_BC6H_TYPELESS = 0x5e,
|
||||
DXGI_FORMAT_BC6H_UF16 = 0x5f,
|
||||
DXGI_FORMAT_BC6H_SF16 = 0x60,
|
||||
DXGI_FORMAT_BC7_TYPELESS = 0x61,
|
||||
DXGI_FORMAT_BC7_UNORM = 0x62,
|
||||
DXGI_FORMAT_BC7_UNORM_SRGB = 0x63,
|
||||
DXGI_FORMAT_AYUV = 0x64,
|
||||
DXGI_FORMAT_Y410 = 0x65,
|
||||
DXGI_FORMAT_Y416 = 0x66,
|
||||
DXGI_FORMAT_NV12 = 0x67,
|
||||
DXGI_FORMAT_P010 = 0x68,
|
||||
DXGI_FORMAT_P016 = 0x69,
|
||||
DXGI_FORMAT_420_OPAQUE = 0x6a,
|
||||
DXGI_FORMAT_YUY2 = 0x6b,
|
||||
DXGI_FORMAT_Y210 = 0x6c,
|
||||
DXGI_FORMAT_Y216 = 0x6d,
|
||||
DXGI_FORMAT_NV11 = 0x6e,
|
||||
DXGI_FORMAT_AI44 = 0x6f,
|
||||
DXGI_FORMAT_IA44 = 0x70,
|
||||
DXGI_FORMAT_P8 = 0x71,
|
||||
DXGI_FORMAT_A8P8 = 0x72,
|
||||
DXGI_FORMAT_B4G4R4A4_UNORM = 0x73,
|
||||
DXGI_FORMAT_UNKNOWN = 0x00,
|
||||
DXGI_FORMAT_R32G32B32A32_TYPELESS = 0x01,
|
||||
DXGI_FORMAT_R32G32B32A32_FLOAT = 0x02,
|
||||
DXGI_FORMAT_R32G32B32A32_UINT = 0x03,
|
||||
DXGI_FORMAT_R32G32B32A32_SINT = 0x04,
|
||||
DXGI_FORMAT_R32G32B32_TYPELESS = 0x05,
|
||||
DXGI_FORMAT_R32G32B32_FLOAT = 0x06,
|
||||
DXGI_FORMAT_R32G32B32_UINT = 0x07,
|
||||
DXGI_FORMAT_R32G32B32_SINT = 0x08,
|
||||
DXGI_FORMAT_R16G16B16A16_TYPELESS = 0x09,
|
||||
DXGI_FORMAT_R16G16B16A16_FLOAT = 0x0a,
|
||||
DXGI_FORMAT_R16G16B16A16_UNORM = 0x0b,
|
||||
DXGI_FORMAT_R16G16B16A16_UINT = 0x0c,
|
||||
DXGI_FORMAT_R16G16B16A16_SNORM = 0x0d,
|
||||
DXGI_FORMAT_R16G16B16A16_SINT = 0x0e,
|
||||
DXGI_FORMAT_R32G32_TYPELESS = 0x0f,
|
||||
DXGI_FORMAT_R32G32_FLOAT = 0x10,
|
||||
DXGI_FORMAT_R32G32_UINT = 0x11,
|
||||
DXGI_FORMAT_R32G32_SINT = 0x12,
|
||||
DXGI_FORMAT_R32G8X24_TYPELESS = 0x13,
|
||||
DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 0x14,
|
||||
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 0x15,
|
||||
DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 0x16,
|
||||
DXGI_FORMAT_R10G10B10A2_TYPELESS = 0x17,
|
||||
DXGI_FORMAT_R10G10B10A2_UNORM = 0x18,
|
||||
DXGI_FORMAT_R10G10B10A2_UINT = 0x19,
|
||||
DXGI_FORMAT_R11G11B10_FLOAT = 0x1a,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS = 0x1b,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM = 0x1c,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 0x1d,
|
||||
DXGI_FORMAT_R8G8B8A8_UINT = 0x1e,
|
||||
DXGI_FORMAT_R8G8B8A8_SNORM = 0x1f,
|
||||
DXGI_FORMAT_R8G8B8A8_SINT = 0x20,
|
||||
DXGI_FORMAT_R16G16_TYPELESS = 0x21,
|
||||
DXGI_FORMAT_R16G16_FLOAT = 0x22,
|
||||
DXGI_FORMAT_R16G16_UNORM = 0x23,
|
||||
DXGI_FORMAT_R16G16_UINT = 0x24,
|
||||
DXGI_FORMAT_R16G16_SNORM = 0x25,
|
||||
DXGI_FORMAT_R16G16_SINT = 0x26,
|
||||
DXGI_FORMAT_R32_TYPELESS = 0x27,
|
||||
DXGI_FORMAT_D32_FLOAT = 0x28,
|
||||
DXGI_FORMAT_R32_FLOAT = 0x29,
|
||||
DXGI_FORMAT_R32_UINT = 0x2a,
|
||||
DXGI_FORMAT_R32_SINT = 0x2b,
|
||||
DXGI_FORMAT_R24G8_TYPELESS = 0x2c,
|
||||
DXGI_FORMAT_D24_UNORM_S8_UINT = 0x2d,
|
||||
DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 0x2e,
|
||||
DXGI_FORMAT_X24_TYPELESS_G8_UINT = 0x2f,
|
||||
DXGI_FORMAT_R8G8_TYPELESS = 0x30,
|
||||
DXGI_FORMAT_R8G8_UNORM = 0x31,
|
||||
DXGI_FORMAT_R8G8_UINT = 0x32,
|
||||
DXGI_FORMAT_R8G8_SNORM = 0x33,
|
||||
DXGI_FORMAT_R8G8_SINT = 0x34,
|
||||
DXGI_FORMAT_R16_TYPELESS = 0x35,
|
||||
DXGI_FORMAT_R16_FLOAT = 0x36,
|
||||
DXGI_FORMAT_D16_UNORM = 0x37,
|
||||
DXGI_FORMAT_R16_UNORM = 0x38,
|
||||
DXGI_FORMAT_R16_UINT = 0x39,
|
||||
DXGI_FORMAT_R16_SNORM = 0x3a,
|
||||
DXGI_FORMAT_R16_SINT = 0x3b,
|
||||
DXGI_FORMAT_R8_TYPELESS = 0x3c,
|
||||
DXGI_FORMAT_R8_UNORM = 0x3d,
|
||||
DXGI_FORMAT_R8_UINT = 0x3e,
|
||||
DXGI_FORMAT_R8_SNORM = 0x3f,
|
||||
DXGI_FORMAT_R8_SINT = 0x40,
|
||||
DXGI_FORMAT_A8_UNORM = 0x41,
|
||||
DXGI_FORMAT_R1_UNORM = 0x42,
|
||||
DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 0x43,
|
||||
DXGI_FORMAT_R8G8_B8G8_UNORM = 0x44,
|
||||
DXGI_FORMAT_G8R8_G8B8_UNORM = 0x45,
|
||||
DXGI_FORMAT_BC1_TYPELESS = 0x46,
|
||||
DXGI_FORMAT_BC1_UNORM = 0x47,
|
||||
DXGI_FORMAT_BC1_UNORM_SRGB = 0x48,
|
||||
DXGI_FORMAT_BC2_TYPELESS = 0x49,
|
||||
DXGI_FORMAT_BC2_UNORM = 0x4a,
|
||||
DXGI_FORMAT_BC2_UNORM_SRGB = 0x4b,
|
||||
DXGI_FORMAT_BC3_TYPELESS = 0x4c,
|
||||
DXGI_FORMAT_BC3_UNORM = 0x4d,
|
||||
DXGI_FORMAT_BC3_UNORM_SRGB = 0x4e,
|
||||
DXGI_FORMAT_BC4_TYPELESS = 0x4f,
|
||||
DXGI_FORMAT_BC4_UNORM = 0x50,
|
||||
DXGI_FORMAT_BC4_SNORM = 0x51,
|
||||
DXGI_FORMAT_BC5_TYPELESS = 0x52,
|
||||
DXGI_FORMAT_BC5_UNORM = 0x53,
|
||||
DXGI_FORMAT_BC5_SNORM = 0x54,
|
||||
DXGI_FORMAT_B5G6R5_UNORM = 0x55,
|
||||
DXGI_FORMAT_B5G5R5A1_UNORM = 0x56,
|
||||
DXGI_FORMAT_B8G8R8A8_UNORM = 0x57,
|
||||
DXGI_FORMAT_B8G8R8X8_UNORM = 0x58,
|
||||
DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 0x59,
|
||||
DXGI_FORMAT_B8G8R8A8_TYPELESS = 0x5a,
|
||||
DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 0x5b,
|
||||
DXGI_FORMAT_B8G8R8X8_TYPELESS = 0x5c,
|
||||
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 0x5d,
|
||||
DXGI_FORMAT_BC6H_TYPELESS = 0x5e,
|
||||
DXGI_FORMAT_BC6H_UF16 = 0x5f,
|
||||
DXGI_FORMAT_BC6H_SF16 = 0x60,
|
||||
DXGI_FORMAT_BC7_TYPELESS = 0x61,
|
||||
DXGI_FORMAT_BC7_UNORM = 0x62,
|
||||
DXGI_FORMAT_BC7_UNORM_SRGB = 0x63,
|
||||
DXGI_FORMAT_AYUV = 0x64,
|
||||
DXGI_FORMAT_Y410 = 0x65,
|
||||
DXGI_FORMAT_Y416 = 0x66,
|
||||
DXGI_FORMAT_NV12 = 0x67,
|
||||
DXGI_FORMAT_P010 = 0x68,
|
||||
DXGI_FORMAT_P016 = 0x69,
|
||||
DXGI_FORMAT_420_OPAQUE = 0x6a,
|
||||
DXGI_FORMAT_YUY2 = 0x6b,
|
||||
DXGI_FORMAT_Y210 = 0x6c,
|
||||
DXGI_FORMAT_Y216 = 0x6d,
|
||||
DXGI_FORMAT_NV11 = 0x6e,
|
||||
DXGI_FORMAT_AI44 = 0x6f,
|
||||
DXGI_FORMAT_IA44 = 0x70,
|
||||
DXGI_FORMAT_P8 = 0x71,
|
||||
DXGI_FORMAT_A8P8 = 0x72,
|
||||
DXGI_FORMAT_B4G4R4A4_UNORM = 0x73,
|
||||
|
||||
DXGI_FORMAT_P208 = 0x82,
|
||||
DXGI_FORMAT_V208 = 0x83,
|
||||
DXGI_FORMAT_V408 = 0x84,
|
||||
DXGI_FORMAT_P208 = 0x82,
|
||||
DXGI_FORMAT_V208 = 0x83,
|
||||
DXGI_FORMAT_V408 = 0x84,
|
||||
|
||||
DXGI_FORMAT_FORCE_UINT = 0xffffffff,
|
||||
};
|
||||
DXGI_FORMAT_FORCE_UINT = 0xffffffff,
|
||||
};
|
||||
|
@ -22,10 +22,18 @@ DXGI_FORMAT ImageFormat::GetDxgiFormat() const
|
||||
return m_dxgi_format;
|
||||
}
|
||||
|
||||
ImageFormatUnsigned::ImageFormatUnsigned(const ImageFormatId id, const D3DFORMAT d3dFormat, const DXGI_FORMAT dxgiFormat,
|
||||
const unsigned bitsPerPixel, const unsigned rOffset, const unsigned rSize,
|
||||
const unsigned gOffset, const unsigned gSize, const unsigned bOffset,
|
||||
const unsigned bSize, const unsigned aOffset, const unsigned aSize)
|
||||
ImageFormatUnsigned::ImageFormatUnsigned(const ImageFormatId id,
|
||||
const D3DFORMAT d3dFormat,
|
||||
const DXGI_FORMAT dxgiFormat,
|
||||
const unsigned bitsPerPixel,
|
||||
const unsigned rOffset,
|
||||
const unsigned rSize,
|
||||
const unsigned gOffset,
|
||||
const unsigned gSize,
|
||||
const unsigned bOffset,
|
||||
const unsigned bSize,
|
||||
const unsigned aOffset,
|
||||
const unsigned aSize)
|
||||
: ImageFormat(id, d3dFormat, dxgiFormat),
|
||||
m_bits_per_pixel(bitsPerPixel),
|
||||
m_r_offset(rOffset),
|
||||
@ -53,8 +61,7 @@ size_t ImageFormatUnsigned::GetPitch(const unsigned mipLevel, const unsigned wid
|
||||
return mipWidth * m_bits_per_pixel / 8;
|
||||
}
|
||||
|
||||
size_t ImageFormatUnsigned::GetSizeOfMipLevel(const unsigned mipLevel, const unsigned width, const unsigned height,
|
||||
const unsigned depth) const
|
||||
size_t ImageFormatUnsigned::GetSizeOfMipLevel(const unsigned mipLevel, const unsigned width, const unsigned height, const unsigned depth) const
|
||||
{
|
||||
unsigned mipWidth = width >> mipLevel;
|
||||
unsigned mipHeight = height >> mipLevel;
|
||||
@ -70,8 +77,8 @@ size_t ImageFormatUnsigned::GetSizeOfMipLevel(const unsigned mipLevel, const uns
|
||||
return mipWidth * mipHeight * mipDepth * m_bits_per_pixel / 8;
|
||||
}
|
||||
|
||||
ImageFormatBlockCompressed::ImageFormatBlockCompressed(const ImageFormatId id, const D3DFORMAT d3dFormat, const DXGI_FORMAT dxgiFormat,
|
||||
const unsigned blockSize, const unsigned bitsPerBlock)
|
||||
ImageFormatBlockCompressed::ImageFormatBlockCompressed(
|
||||
const ImageFormatId id, const D3DFORMAT d3dFormat, const DXGI_FORMAT dxgiFormat, const unsigned blockSize, const unsigned bitsPerBlock)
|
||||
: ImageFormat(id, d3dFormat, dxgiFormat),
|
||||
m_block_size(blockSize),
|
||||
m_bits_per_block(bitsPerBlock)
|
||||
@ -95,8 +102,7 @@ size_t ImageFormatBlockCompressed::GetPitch(const unsigned mipLevel, const unsig
|
||||
return blockCount * m_bits_per_block / 8;
|
||||
}
|
||||
|
||||
size_t ImageFormatBlockCompressed::GetSizeOfMipLevel(const unsigned mipLevel, const unsigned width,
|
||||
const unsigned height, const unsigned depth) const
|
||||
size_t ImageFormatBlockCompressed::GetSizeOfMipLevel(const unsigned mipLevel, const unsigned width, const unsigned height, const unsigned depth) const
|
||||
{
|
||||
unsigned mipWidth = width >> mipLevel;
|
||||
unsigned mipHeight = height >> mipLevel;
|
||||
@ -109,9 +115,7 @@ size_t ImageFormatBlockCompressed::GetSizeOfMipLevel(const unsigned mipLevel, co
|
||||
if (mipDepth == 0)
|
||||
mipDepth = 1;
|
||||
|
||||
const unsigned blockCount = ((mipWidth + m_block_size - 1) / m_block_size)
|
||||
* ((mipHeight + m_block_size - 1) / m_block_size)
|
||||
* mipDepth;
|
||||
const unsigned blockCount = ((mipWidth + m_block_size - 1) / m_block_size) * ((mipHeight + m_block_size - 1) / m_block_size) * mipDepth;
|
||||
|
||||
return blockCount * m_bits_per_block / 8;
|
||||
}
|
||||
@ -138,10 +142,13 @@ bool ImageFormatUnsigned::HasA() const
|
||||
|
||||
const ImageFormatUnsigned ImageFormat::FORMAT_R8_G8_B8(ImageFormatId::R8_G8_B8, D3DFMT_R8G8B8, DXGI_FORMAT_UNKNOWN, 24, 0, 8, 8, 8, 16, 8, 0, 0);
|
||||
const ImageFormatUnsigned ImageFormat::FORMAT_B8_G8_R8_X8(ImageFormatId::B8_G8_R8_X8, D3DFMT_X8R8G8B8, DXGI_FORMAT_B8G8R8X8_UNORM, 32, 16, 8, 8, 8, 0, 8, 0, 0);
|
||||
const ImageFormatUnsigned ImageFormat::FORMAT_R8_G8_B8_A8(ImageFormatId::R8_G8_B8_A8, D3DFMT_A8B8G8R8, DXGI_FORMAT_R8G8B8A8_UNORM, 32, 0, 8, 8, 8, 16, 8, 24, 8);
|
||||
const ImageFormatUnsigned ImageFormat::FORMAT_B8_G8_R8_A8(ImageFormatId::B8_G8_R8_A8, D3DFMT_A8R8G8B8, DXGI_FORMAT_B8G8R8A8_UNORM, 32, 16, 8, 8, 8, 0, 8, 24, 8);
|
||||
const ImageFormatUnsigned
|
||||
ImageFormat::FORMAT_R8_G8_B8_A8(ImageFormatId::R8_G8_B8_A8, D3DFMT_A8B8G8R8, DXGI_FORMAT_R8G8B8A8_UNORM, 32, 0, 8, 8, 8, 16, 8, 24, 8);
|
||||
const ImageFormatUnsigned
|
||||
ImageFormat::FORMAT_B8_G8_R8_A8(ImageFormatId::B8_G8_R8_A8, D3DFMT_A8R8G8B8, DXGI_FORMAT_B8G8R8A8_UNORM, 32, 16, 8, 8, 8, 0, 8, 24, 8);
|
||||
const ImageFormatUnsigned ImageFormat::FORMAT_A8(ImageFormatId::A8, D3DFMT_A8, DXGI_FORMAT_A8_UNORM, 8, 0, 0, 0, 0, 0, 0, 0, 8);
|
||||
const ImageFormatUnsigned ImageFormat::FORMAT_R16_G16_B16_A16_FLOAT(ImageFormatId::R16_G16_B16_A16_FLOAT, D3DFMT_A16B16G16R16F, DXGI_FORMAT_R16G16B16A16_FLOAT, 128, 0, 0, 0, 0, 0, 0, 0, 8);
|
||||
const ImageFormatUnsigned ImageFormat::FORMAT_R16_G16_B16_A16_FLOAT(
|
||||
ImageFormatId::R16_G16_B16_A16_FLOAT, D3DFMT_A16B16G16R16F, DXGI_FORMAT_R16G16B16A16_FLOAT, 128, 0, 0, 0, 0, 0, 0, 0, 8);
|
||||
const ImageFormatUnsigned ImageFormat::FORMAT_R8(ImageFormatId::R8, D3DFMT_L8, DXGI_FORMAT_R8_UNORM, 8, 0, 8, 0, 0, 0, 0, 0, 0);
|
||||
const ImageFormatUnsigned ImageFormat::FORMAT_R8_A8(ImageFormatId::R8_A8, D3DFMT_A8L8, DXGI_FORMAT_UNKNOWN, 16, 0, 8, 0, 0, 0, 0, 8, 8);
|
||||
const ImageFormatBlockCompressed ImageFormat::FORMAT_BC1(ImageFormatId::BC1, D3DFMT_DXT1, DXGI_FORMAT_BC1_UNORM, 4, 64);
|
||||
@ -150,8 +157,7 @@ const ImageFormatBlockCompressed ImageFormat::FORMAT_BC3(ImageFormatId::BC3, D3D
|
||||
const ImageFormatBlockCompressed ImageFormat::FORMAT_BC4(ImageFormatId::BC4, D3DFMT_UNKNOWN, DXGI_FORMAT_BC4_UNORM, 4, 64);
|
||||
const ImageFormatBlockCompressed ImageFormat::FORMAT_BC5(ImageFormatId::BC5, D3DFMT_UNKNOWN, DXGI_FORMAT_BC5_UNORM, 4, 128);
|
||||
|
||||
const ImageFormat* const ImageFormat::ALL_FORMATS[static_cast<unsigned>(ImageFormatId::MAX)]
|
||||
{
|
||||
const ImageFormat* const ImageFormat::ALL_FORMATS[static_cast<unsigned>(ImageFormatId::MAX)]{
|
||||
&FORMAT_R8_G8_B8,
|
||||
&FORMAT_B8_G8_R8_X8,
|
||||
&FORMAT_R8_G8_B8_A8,
|
||||
|
@ -1,10 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <cstddef>
|
||||
#include "D3DFormat.h"
|
||||
#include "DxgiFormat.h"
|
||||
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
|
||||
enum class ImageFormatId
|
||||
{
|
||||
UNKNOWN = -1,
|
||||
@ -60,7 +61,7 @@ public:
|
||||
static const ImageFormatUnsigned FORMAT_R8_G8_B8_A8;
|
||||
static const ImageFormatUnsigned FORMAT_B8_G8_R8_A8;
|
||||
static const ImageFormatUnsigned FORMAT_A8;
|
||||
static const ImageFormatUnsigned FORMAT_R16_G16_B16_A16_FLOAT; //TODO: Float not unsigned
|
||||
static const ImageFormatUnsigned FORMAT_R16_G16_B16_A16_FLOAT; // TODO: Float not unsigned
|
||||
static const ImageFormatUnsigned FORMAT_R8;
|
||||
static const ImageFormatUnsigned FORMAT_R8_A8;
|
||||
static const ImageFormatBlockCompressed FORMAT_BC1;
|
||||
@ -84,9 +85,18 @@ public:
|
||||
unsigned m_a_offset;
|
||||
unsigned m_a_size;
|
||||
|
||||
ImageFormatUnsigned(ImageFormatId id, D3DFORMAT d3dFormat, DXGI_FORMAT dxgiFormat, unsigned bitsPerPixel, unsigned rOffset,
|
||||
unsigned rSize, unsigned gOffset, unsigned gSize, unsigned bOffset, unsigned bSize,
|
||||
unsigned aOffset, unsigned aSize);
|
||||
ImageFormatUnsigned(ImageFormatId id,
|
||||
D3DFORMAT d3dFormat,
|
||||
DXGI_FORMAT dxgiFormat,
|
||||
unsigned bitsPerPixel,
|
||||
unsigned rOffset,
|
||||
unsigned rSize,
|
||||
unsigned gOffset,
|
||||
unsigned gSize,
|
||||
unsigned bOffset,
|
||||
unsigned bSize,
|
||||
unsigned aOffset,
|
||||
unsigned aSize);
|
||||
|
||||
ImageFormatType GetType() const override;
|
||||
size_t GetPitch(unsigned mipLevel, unsigned width) const override;
|
||||
|
@ -54,7 +54,7 @@ namespace iwi6
|
||||
IMG_FLAG_RENDER_TARGET = 1 << 17,
|
||||
IMG_FLAG_SYSTEMMEM = 1 << 18
|
||||
};
|
||||
}
|
||||
} // namespace iwi6
|
||||
|
||||
// IW4
|
||||
namespace iwi8
|
||||
@ -122,7 +122,7 @@ namespace iwi8
|
||||
IMG_FLAG_RENDER_TARGET = 1 << 25,
|
||||
IMG_FLAG_SYSTEMMEM = 1 << 26
|
||||
};
|
||||
}
|
||||
} // namespace iwi8
|
||||
|
||||
// T5
|
||||
namespace iwi13
|
||||
@ -177,7 +177,7 @@ namespace iwi13
|
||||
IMG_FLAG_SYSTEMMEM = 1 << 18,
|
||||
};
|
||||
|
||||
}
|
||||
} // namespace iwi13
|
||||
|
||||
// T6
|
||||
namespace iwi27
|
||||
@ -232,4 +232,4 @@ namespace iwi27
|
||||
IMG_FLAG_MULTISAMPLE = 1 << 18,
|
||||
};
|
||||
|
||||
}
|
||||
} // namespace iwi27
|
||||
|
@ -260,8 +260,7 @@ Texture3D::Texture3D(const ImageFormat* format, const unsigned width, const unsi
|
||||
{
|
||||
}
|
||||
|
||||
Texture3D::Texture3D(const ImageFormat* format, const unsigned width, const unsigned height, const unsigned depth,
|
||||
const bool mipMaps)
|
||||
Texture3D::Texture3D(const ImageFormat* format, const unsigned width, const unsigned height, const unsigned depth, const bool mipMaps)
|
||||
: Texture(format, mipMaps)
|
||||
{
|
||||
m_width = width;
|
||||
|
@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
#include "ImageFormat.h"
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
enum class TextureType
|
||||
@ -123,4 +124,4 @@ public:
|
||||
uint8_t* GetBufferForMipLevel(int mipLevel, int face) override;
|
||||
|
||||
int GetMipMapCount() const override;
|
||||
};
|
||||
};
|
||||
|
@ -44,8 +44,7 @@ void TextureConverter::SetPixelFunctions(const unsigned inBitCount, const unsign
|
||||
|
||||
for (auto pixelOffset = 0u; pixelOffset < bitCount; pixelOffset += 8)
|
||||
{
|
||||
result |= (static_cast<uint64_t>(*(static_cast<const uint8_t*>(offset) + (pixelOffset / 8))) <<
|
||||
pixelOffset);
|
||||
result |= (static_cast<uint64_t>(*(static_cast<const uint8_t*>(offset) + (pixelOffset / 8))) << pixelOffset);
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -99,9 +98,7 @@ void TextureConverter::SetPixelFunctions(const unsigned inBitCount, const unsign
|
||||
else
|
||||
{
|
||||
assert(false);
|
||||
m_write_pixel_func = [](void* offset, uint64_t pixel, unsigned bitCount)
|
||||
{
|
||||
};
|
||||
m_write_pixel_func = [](void* offset, uint64_t pixel, unsigned bitCount) {};
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -120,18 +117,16 @@ void TextureConverter::CreateOutputTexture()
|
||||
switch (m_input_texture->GetTextureType())
|
||||
{
|
||||
case TextureType::T_2D:
|
||||
m_output_texture = new Texture2D(m_output_format, m_input_texture->GetWidth(), m_input_texture->GetHeight(),
|
||||
m_input_texture->HasMipMaps());
|
||||
m_output_texture = new Texture2D(m_output_format, m_input_texture->GetWidth(), m_input_texture->GetHeight(), m_input_texture->HasMipMaps());
|
||||
break;
|
||||
|
||||
case TextureType::T_CUBE:
|
||||
m_output_texture = new TextureCube(m_output_format, m_input_texture->GetWidth(), m_input_texture->GetHeight(),
|
||||
m_input_texture->HasMipMaps());
|
||||
m_output_texture = new TextureCube(m_output_format, m_input_texture->GetWidth(), m_input_texture->GetHeight(), m_input_texture->HasMipMaps());
|
||||
break;
|
||||
|
||||
case TextureType::T_3D:
|
||||
m_output_texture = new Texture3D(m_output_format, m_input_texture->GetWidth(), m_input_texture->GetHeight(),
|
||||
m_input_texture->GetDepth(), m_input_texture->HasMipMaps());
|
||||
m_output_texture = new Texture3D(
|
||||
m_output_format, m_input_texture->GetWidth(), m_input_texture->GetHeight(), m_input_texture->GetDepth(), m_input_texture->HasMipMaps());
|
||||
break;
|
||||
default:
|
||||
assert(false);
|
||||
@ -166,8 +161,7 @@ void TextureConverter::ReorderUnsignedToUnsigned() const
|
||||
const auto outputBytePerPixel = outputFormat->m_bits_per_pixel / 8;
|
||||
|
||||
auto outputOffset = 0u;
|
||||
for (auto inputOffset = 0u; inputOffset < mipLevelSize; inputOffset += inputBytePerPixel, outputOffset +=
|
||||
outputBytePerPixel)
|
||||
for (auto inputOffset = 0u; inputOffset < mipLevelSize; inputOffset += inputBytePerPixel, outputOffset += outputBytePerPixel)
|
||||
{
|
||||
uint64_t outPixel = 0;
|
||||
const auto inPixel = m_read_pixel_func(&inputBuffer[inputOffset], inputFormat->m_bits_per_pixel);
|
||||
@ -196,9 +190,7 @@ void TextureConverter::ConvertUnsignedToUnsigned()
|
||||
|
||||
SetPixelFunctions(inputFormat->m_bits_per_pixel, outputFormat->m_bits_per_pixel);
|
||||
|
||||
if (inputFormat->m_r_size == outputFormat->m_r_size
|
||||
&& inputFormat->m_g_size == outputFormat->m_g_size
|
||||
&& inputFormat->m_b_size == outputFormat->m_b_size
|
||||
if (inputFormat->m_r_size == outputFormat->m_r_size && inputFormat->m_g_size == outputFormat->m_g_size && inputFormat->m_b_size == outputFormat->m_b_size
|
||||
&& inputFormat->m_a_size == outputFormat->m_a_size)
|
||||
{
|
||||
ReorderUnsignedToUnsigned();
|
||||
@ -214,8 +206,7 @@ Texture* TextureConverter::Convert()
|
||||
{
|
||||
CreateOutputTexture();
|
||||
|
||||
if (m_input_format->GetType() == ImageFormatType::UNSIGNED
|
||||
&& m_output_format->GetType() == ImageFormatType::UNSIGNED)
|
||||
if (m_input_format->GetType() == ImageFormatType::UNSIGNED && m_output_format->GetType() == ImageFormatType::UNSIGNED)
|
||||
{
|
||||
ConvertUnsignedToUnsigned();
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
#include <functional>
|
||||
|
||||
#include "Texture.h"
|
||||
|
||||
#include <functional>
|
||||
|
||||
class TextureConverter
|
||||
{
|
||||
Texture* m_input_texture;
|
||||
@ -23,8 +23,7 @@ class TextureConverter
|
||||
void ConvertUnsignedToUnsigned();
|
||||
|
||||
public:
|
||||
|
||||
TextureConverter(Texture* inputTexture, const ImageFormat* targetFormat);
|
||||
|
||||
Texture* Convert();
|
||||
};
|
||||
};
|
||||
|
@ -37,10 +37,12 @@ namespace state_map
|
||||
|
||||
for (auto& resultVar : entry.m_result_vars)
|
||||
{
|
||||
const auto correspondingVar = std::find_if(layout.m_var_layout.m_vars.begin(), layout.m_var_layout.m_vars.end(), [&resultVar](const StateMapLayoutVar& var)
|
||||
{
|
||||
return var.m_name == resultVar;
|
||||
});
|
||||
const auto correspondingVar = std::find_if(layout.m_var_layout.m_vars.begin(),
|
||||
layout.m_var_layout.m_vars.end(),
|
||||
[&resultVar](const StateMapLayoutVar& var)
|
||||
{
|
||||
return var.m_name == resultVar;
|
||||
});
|
||||
|
||||
// Has to have a corresponding var
|
||||
assert(correspondingVar != layout.m_var_layout.m_vars.end());
|
||||
@ -48,7 +50,7 @@ namespace state_map
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
} // namespace state_map
|
||||
|
||||
StateMapLayoutEntry::StateMapLayoutEntry(std::string name, const size_t stateBitsIndex, const size_t stateBitsMask, std::vector<std::string> resultVars)
|
||||
: m_name(std::move(name)),
|
||||
|
@ -60,4 +60,4 @@ namespace state_map
|
||||
const StateMapLayoutEntries& m_entry_layout;
|
||||
const StateMapLayoutVars& m_var_layout;
|
||||
};
|
||||
}
|
||||
} // namespace state_map
|
||||
|
@ -10,8 +10,7 @@ float HalfFloat::ToFloat(const half_float_t half)
|
||||
float f;
|
||||
} result{};
|
||||
|
||||
result.u = ((half << 16) & 0x80000000) | (((((half << 14) & 0xFFFC000)
|
||||
- (~(half << 14) & 0x10000000)) ^ 0x80000000) >> 1);
|
||||
result.u = ((half << 16) & 0x80000000) | (((((half << 14) & 0xFFFC000) - (~(half << 14) & 0x10000000)) ^ 0x80000000) >> 1);
|
||||
return result.f;
|
||||
}
|
||||
|
||||
|
@ -11,4 +11,4 @@ class HalfFloat
|
||||
public:
|
||||
static float ToFloat(half_float_t half);
|
||||
static half_float_t ToHalf(float f);
|
||||
};
|
||||
};
|
||||
|
@ -1,10 +1,10 @@
|
||||
#include "Pack.h"
|
||||
|
||||
#include "HalfFloat.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <cassert>
|
||||
|
||||
#include "HalfFloat.h"
|
||||
|
||||
union PackUtil32
|
||||
{
|
||||
uint32_t u;
|
||||
@ -16,8 +16,7 @@ union PackUtil32
|
||||
|
||||
uint32_t Pack32::Vec2PackTexCoords(const float* in)
|
||||
{
|
||||
return static_cast<uint32_t>(HalfFloat::ToHalf(in[0])) << 16
|
||||
| HalfFloat::ToHalf(in[1]);
|
||||
return static_cast<uint32_t>(HalfFloat::ToHalf(in[0])) << 16 | HalfFloat::ToHalf(in[1]);
|
||||
}
|
||||
|
||||
uint32_t Pack32::Vec3PackUnitVec(const float* in)
|
||||
@ -28,10 +27,8 @@ uint32_t Pack32::Vec3PackUnitVec(const float* in)
|
||||
|
||||
uint32_t Pack32::Vec4PackGfxColor(const float* in)
|
||||
{
|
||||
return static_cast<uint8_t>(std::clamp(in[0], 0.0f, 1.0f) * 255.0f)
|
||||
| static_cast<uint8_t>(std::clamp(in[1], 0.0f, 1.0f) * 255.0f) << 8
|
||||
| static_cast<uint8_t>(std::clamp(in[2], 0.0f, 1.0f) * 255.0f) << 16
|
||||
| static_cast<uint8_t>(std::clamp(in[3], 0.0f, 1.0f) * 255.0f) << 24;
|
||||
return static_cast<uint8_t>(std::clamp(in[0], 0.0f, 1.0f) * 255.0f) | static_cast<uint8_t>(std::clamp(in[1], 0.0f, 1.0f) * 255.0f) << 8
|
||||
| static_cast<uint8_t>(std::clamp(in[2], 0.0f, 1.0f) * 255.0f) << 16 | static_cast<uint8_t>(std::clamp(in[3], 0.0f, 1.0f) * 255.0f) << 24;
|
||||
}
|
||||
|
||||
void Pack32::Vec2UnpackTexCoordsUV(const uint32_t in, float* out)
|
||||
@ -65,9 +62,9 @@ void Pack32::Vec3UnpackUnitVecScaleBased(const uint32_t in, float* out)
|
||||
|
||||
void Pack32::Vec3UnpackUnitVecThirdBased(const uint32_t in, float* out)
|
||||
{
|
||||
PackUtil32 v0{ (in >> 0) & 0x3FF };
|
||||
PackUtil32 v1{ (in >> 10) & 0x3FF };
|
||||
PackUtil32 v2{ (in >> 20) & 0x3FF };
|
||||
PackUtil32 v0{(in >> 0) & 0x3FF};
|
||||
PackUtil32 v1{(in >> 10) & 0x3FF};
|
||||
PackUtil32 v2{(in >> 20) & 0x3FF};
|
||||
|
||||
v0.u = v0.u - 2 * (v0.u & 0x200) + 0x40400000;
|
||||
v1.u = v1.u - 2 * (v1.u & 0x200) + 0x40400000;
|
||||
|
@ -15,4 +15,4 @@ public:
|
||||
static void Vec3UnpackUnitVecScaleBased(uint32_t in, float* out);
|
||||
static void Vec3UnpackUnitVecThirdBased(uint32_t in, float* out);
|
||||
static void Vec4UnpackGfxColor(uint32_t in, float* out);
|
||||
};
|
||||
};
|
||||
|
@ -11,4 +11,4 @@ class QuatInt16
|
||||
public:
|
||||
static quat_int_16 ToInt16(float quat);
|
||||
static float ToFloat(quat_int_16 quat);
|
||||
};
|
||||
};
|
||||
|
@ -38,4 +38,4 @@
|
||||
#define gcc_align(x) __attribute__((__aligned__(x)))
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
@ -25,4 +25,4 @@ constexpr uint16_t SCR_STRING_MAX = UINT16_MAX;
|
||||
|
||||
typedef int block_t;
|
||||
typedef int asset_type_t;
|
||||
typedef unsigned int zone_priority_t;
|
||||
typedef unsigned int zone_priority_t;
|
||||
|
@ -1,8 +1,9 @@
|
||||
#include "Crypto.h"
|
||||
|
||||
#include "Impl/AlgorithmRSA.h"
|
||||
#include "Impl/AlgorithmSHA1.h"
|
||||
#include "Impl/AlgorithmSalsa20.h"
|
||||
#include "Impl/AlgorithmSHA256.h"
|
||||
#include "Impl/AlgorithmSalsa20.h"
|
||||
|
||||
std::unique_ptr<IHashFunction> Crypto::CreateSHA1()
|
||||
{
|
||||
@ -22,4 +23,4 @@ std::unique_ptr<IStreamCipher> Crypto::CreateSalsa20(const uint8_t* keyBytes, co
|
||||
std::unique_ptr<IPublicKeyAlgorithm> Crypto::CreateRSA(const IPublicKeyAlgorithm::HashingAlgorithm hashingAlgorithm, const RSAPaddingMode paddingMode)
|
||||
{
|
||||
return std::make_unique<AlgorithmRSA>(hashingAlgorithm, paddingMode);
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
#include "IHashFunction.h"
|
||||
#include "IPublicKeyAlgorithm.h"
|
||||
#include "IStreamCipher.h"
|
||||
|
||||
#include <cstddef>
|
||||
#include <memory>
|
||||
|
||||
|
||||
#include "IHashFunction.h"
|
||||
#include "IStreamCipher.h"
|
||||
#include "IPublicKeyAlgorithm.h"
|
||||
|
||||
class Crypto
|
||||
{
|
||||
public:
|
||||
|
@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
|
||||
class IPublicKeyAlgorithm
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
|
||||
class IStreamCipher
|
||||
{
|
||||
|
@ -1,8 +1,9 @@
|
||||
#include "AlgorithmRSA.h"
|
||||
#include <cstring>
|
||||
|
||||
#include "CryptoLibrary.h"
|
||||
|
||||
#include <cstring>
|
||||
|
||||
class AlgorithmRSA::AlgorithmRSAImpl
|
||||
{
|
||||
rsa_key m_key{};
|
||||
@ -11,7 +12,7 @@ class AlgorithmRSA::AlgorithmRSAImpl
|
||||
|
||||
const ltc_hash_descriptor* GetHashDescriptor() const
|
||||
{
|
||||
switch(m_hash)
|
||||
switch (m_hash)
|
||||
{
|
||||
case HashingAlgorithm::RSA_HASH_SHA256:
|
||||
return &sha256_desc;
|
||||
@ -24,7 +25,7 @@ class AlgorithmRSA::AlgorithmRSAImpl
|
||||
|
||||
int GetPaddingMode() const
|
||||
{
|
||||
switch(m_padding)
|
||||
switch (m_padding)
|
||||
{
|
||||
case Crypto::RSAPaddingMode::RSA_PADDING_PKS1:
|
||||
return LTC_PKCS_1_V1_5;
|
||||
@ -56,7 +57,7 @@ public:
|
||||
{
|
||||
return rsa_import(keyData, keySize, &m_key) == CRYPT_OK;
|
||||
}
|
||||
|
||||
|
||||
bool Verify(const uint8_t* signedData, const size_t signedDataSize, const uint8_t* signature, const size_t signatureSize)
|
||||
{
|
||||
const ltc_hash_descriptor* hashDesc = GetHashDescriptor();
|
||||
@ -115,4 +116,4 @@ bool AlgorithmRSA::SetKey(const uint8_t* keyData, size_t keySize)
|
||||
bool AlgorithmRSA::Verify(const uint8_t* signedData, const size_t signedDataSize, const uint8_t* signature, const size_t signatureSize)
|
||||
{
|
||||
return m_impl->Verify(signedData, signedDataSize, signature, signatureSize);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
#include "IPublicKeyAlgorithm.h"
|
||||
#include "Crypto.h"
|
||||
#include "IPublicKeyAlgorithm.h"
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
class AlgorithmRSA final : public IPublicKeyAlgorithm
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "AlgorithmSHA1.h"
|
||||
|
||||
#include "CryptoLibrary.h"
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
class AlgorithmSHA1::AlgorithmSHA1Impl
|
||||
@ -60,4 +61,4 @@ void AlgorithmSHA1::Process(const void* input, const size_t inputSize)
|
||||
void AlgorithmSHA1::Finish(void* hashBuffer)
|
||||
{
|
||||
m_impl->Finish(hashBuffer);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "AlgorithmSHA256.h"
|
||||
|
||||
#include "CryptoLibrary.h"
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
class AlgorithmSHA256::Impl
|
||||
@ -60,4 +61,4 @@ void AlgorithmSHA256::Process(const void* input, const size_t inputSize)
|
||||
void AlgorithmSHA256::Finish(void* hashBuffer)
|
||||
{
|
||||
m_impl->Finish(hashBuffer);
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
#include "AlgorithmSalsa20.h"
|
||||
|
||||
#include "salsa20.h"
|
||||
|
||||
#include <cassert>
|
||||
#include <stdexcept>
|
||||
|
||||
@ -25,7 +27,7 @@ public:
|
||||
{
|
||||
assert(ivSize == 8);
|
||||
|
||||
if(ivSize != 8)
|
||||
if (ivSize != 8)
|
||||
{
|
||||
throw std::invalid_argument("Salsa20 IV size must be 8");
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "CryptoLibrary.h"
|
||||
|
||||
#include "tommath.h"
|
||||
|
||||
void CryptoLibrary::Init()
|
||||
@ -11,4 +12,4 @@ void CryptoLibrary::Init()
|
||||
|
||||
ltc_mp = ltm_desc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -7,4 +7,4 @@ class CryptoLibrary
|
||||
{
|
||||
public:
|
||||
static void Init();
|
||||
};
|
||||
};
|
||||
|
@ -1,11 +1,11 @@
|
||||
#include "ZoneCreatorIW3.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include "ObjLoading.h"
|
||||
#include "AssetLoading/AssetLoadingContext.h"
|
||||
#include "Game/IW3/GameIW3.h"
|
||||
#include "Game/IW3/GameAssetPoolIW3.h"
|
||||
#include "Game/IW3/GameIW3.h"
|
||||
#include "ObjLoading.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
using namespace IW3;
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
#pragma once
|
||||
#include <unordered_map>
|
||||
#include <string>
|
||||
|
||||
#include "Zone/ZoneTypes.h"
|
||||
#include "ZoneCreation/IZoneCreator.h"
|
||||
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
|
||||
namespace IW3
|
||||
{
|
||||
class ZoneCreator final : public IZoneCreator
|
||||
@ -22,4 +22,4 @@ namespace IW3
|
||||
_NODISCARD bool SupportsGame(const std::string& gameName) const override;
|
||||
_NODISCARD std::unique_ptr<Zone> CreateZoneForDefinition(ZoneCreationContext& context) const override;
|
||||
};
|
||||
}
|
||||
} // namespace IW3
|
||||
|
@ -1,10 +1,10 @@
|
||||
#include "ZoneCreatorIW4.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include "ObjLoading.h"
|
||||
#include "Game/IW4/GameIW4.h"
|
||||
#include "Game/IW4/GameAssetPoolIW4.h"
|
||||
#include "Game/IW4/GameIW4.h"
|
||||
#include "ObjLoading.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
using namespace IW4;
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
#pragma once
|
||||
#include <unordered_map>
|
||||
#include <string>
|
||||
|
||||
#include "Zone/ZoneTypes.h"
|
||||
#include "ZoneCreation/IZoneCreator.h"
|
||||
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
|
||||
namespace IW4
|
||||
{
|
||||
class ZoneCreator final : public IZoneCreator
|
||||
@ -22,4 +22,4 @@ namespace IW4
|
||||
_NODISCARD bool SupportsGame(const std::string& gameName) const override;
|
||||
_NODISCARD std::unique_ptr<Zone> CreateZoneForDefinition(ZoneCreationContext& context) const override;
|
||||
};
|
||||
}
|
||||
} // namespace IW4
|
||||
|
@ -1,10 +1,10 @@
|
||||
#include "ZoneCreatorIW5.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include "ObjLoading.h"
|
||||
#include "Game/IW5/GameIW5.h"
|
||||
#include "Game/IW5/GameAssetPoolIW5.h"
|
||||
#include "Game/IW5/GameIW5.h"
|
||||
#include "ObjLoading.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
using namespace IW5;
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
#pragma once
|
||||
#include <unordered_map>
|
||||
#include <string>
|
||||
|
||||
#include "Zone/ZoneTypes.h"
|
||||
#include "ZoneCreation/IZoneCreator.h"
|
||||
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
|
||||
namespace IW5
|
||||
{
|
||||
class ZoneCreator final : public IZoneCreator
|
||||
@ -22,4 +22,4 @@ namespace IW5
|
||||
_NODISCARD bool SupportsGame(const std::string& gameName) const override;
|
||||
_NODISCARD std::unique_ptr<Zone> CreateZoneForDefinition(ZoneCreationContext& context) const override;
|
||||
};
|
||||
}
|
||||
} // namespace IW5
|
||||
|
@ -1,11 +1,11 @@
|
||||
#include "ZoneCreatorT5.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include "ObjLoading.h"
|
||||
#include "AssetLoading/AssetLoadingContext.h"
|
||||
#include "Game/T5/GameT5.h"
|
||||
#include "Game/T5/GameAssetPoolT5.h"
|
||||
#include "Game/T5/GameT5.h"
|
||||
#include "ObjLoading.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
using namespace T5;
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
#pragma once
|
||||
#include <unordered_map>
|
||||
#include <string>
|
||||
|
||||
#include "Zone/ZoneTypes.h"
|
||||
#include "ZoneCreation/IZoneCreator.h"
|
||||
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
|
||||
namespace T5
|
||||
{
|
||||
class ZoneCreator final : public IZoneCreator
|
||||
@ -22,4 +22,4 @@ namespace T5
|
||||
_NODISCARD bool SupportsGame(const std::string& gameName) const override;
|
||||
_NODISCARD std::unique_ptr<Zone> CreateZoneForDefinition(ZoneCreationContext& context) const override;
|
||||
};
|
||||
}
|
||||
} // namespace T5
|
||||
|
@ -1,12 +1,12 @@
|
||||
#include "ZoneCreatorT6.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include "ObjLoading.h"
|
||||
#include "Game/T6/CommonT6.h"
|
||||
#include "Game/T6/T6.h"
|
||||
#include "Game/T6/GameT6.h"
|
||||
#include "Game/T6/GameAssetPoolT6.h"
|
||||
#include "Game/T6/GameT6.h"
|
||||
#include "Game/T6/T6.h"
|
||||
#include "ObjLoading.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
using namespace T6;
|
||||
|
||||
@ -87,12 +87,7 @@ void ZoneCreator::HandleMetadata(Zone* zone, const ZoneCreationContext& context)
|
||||
keyHash = Common::Com_HashKey(strValue.c_str(), 64);
|
||||
}
|
||||
|
||||
KeyValuePair kvp
|
||||
{
|
||||
keyHash,
|
||||
Common::Com_HashKey(zone->m_name.c_str(), 64),
|
||||
zone->GetMemory()->Dup(metaData->m_value.c_str())
|
||||
};
|
||||
KeyValuePair kvp{keyHash, Common::Com_HashKey(zone->m_name.c_str(), 64), zone->GetMemory()->Dup(metaData->m_value.c_str())};
|
||||
kvpList.push_back(kvp);
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,10 @@
|
||||
#pragma once
|
||||
#include <unordered_map>
|
||||
#include <string>
|
||||
|
||||
#include "Zone/ZoneTypes.h"
|
||||
#include "ZoneCreation/IZoneCreator.h"
|
||||
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
|
||||
namespace T6
|
||||
{
|
||||
class ZoneCreator final : public IZoneCreator
|
||||
@ -23,4 +23,4 @@ namespace T6
|
||||
_NODISCARD bool SupportsGame(const std::string& gameName) const override;
|
||||
_NODISCARD std::unique_ptr<Zone> CreateZoneForDefinition(ZoneCreationContext& context) const override;
|
||||
};
|
||||
}
|
||||
} // namespace T6
|
||||
|
@ -1,45 +1,43 @@
|
||||
#include "Linker.h"
|
||||
|
||||
#include <set>
|
||||
#include <regex>
|
||||
#include <filesystem>
|
||||
#include <fstream>
|
||||
#include <deque>
|
||||
|
||||
#include "Utils/ClassUtils.h"
|
||||
#include "Utils/Arguments/ArgumentParser.h"
|
||||
#include "ZoneLoading.h"
|
||||
#include "ObjWriting.h"
|
||||
#include "ObjLoading.h"
|
||||
#include "SearchPath/SearchPaths.h"
|
||||
#include "ObjContainer/IWD/IWD.h"
|
||||
#include "LinkerArgs.h"
|
||||
#include "LinkerSearchPaths.h"
|
||||
#include "ZoneWriting.h"
|
||||
#include "Game/IW3/ZoneCreatorIW3.h"
|
||||
#include "ZoneCreation/ZoneCreationContext.h"
|
||||
#include "ZoneCreation/IZoneCreator.h"
|
||||
#include "Game/IW4/ZoneCreatorIW4.h"
|
||||
#include "Game/IW5/ZoneCreatorIW5.h"
|
||||
#include "Game/T5/ZoneCreatorT5.h"
|
||||
#include "Game/T6/ZoneCreatorT6.h"
|
||||
#include "LinkerArgs.h"
|
||||
#include "LinkerSearchPaths.h"
|
||||
#include "ObjContainer/IPak/IPakWriter.h"
|
||||
|
||||
#include "ObjContainer/IWD/IWD.h"
|
||||
#include "ObjLoading.h"
|
||||
#include "ObjWriting.h"
|
||||
#include "SearchPath/SearchPaths.h"
|
||||
#include "Utils/Arguments/ArgumentParser.h"
|
||||
#include "Utils/ClassUtils.h"
|
||||
#include "Utils/ObjFileStream.h"
|
||||
#include "Utils/StringUtils.h"
|
||||
#include "Zone/AssetList/AssetList.h"
|
||||
#include "Zone/AssetList/AssetListStream.h"
|
||||
#include "Zone/Definition/ZoneDefinitionStream.h"
|
||||
#include "ZoneCreation/IZoneCreator.h"
|
||||
#include "ZoneCreation/ZoneCreationContext.h"
|
||||
#include "ZoneLoading.h"
|
||||
#include "ZoneWriting.h"
|
||||
|
||||
#include <deque>
|
||||
#include <filesystem>
|
||||
#include <fstream>
|
||||
#include <regex>
|
||||
#include <set>
|
||||
|
||||
namespace fs = std::filesystem;
|
||||
|
||||
const IZoneCreator* const ZONE_CREATORS[]
|
||||
{
|
||||
const IZoneCreator* const ZONE_CREATORS[]{
|
||||
new IW3::ZoneCreator(),
|
||||
new IW4::ZoneCreator(),
|
||||
new IW5::ZoneCreator(),
|
||||
new T5::ZoneCreator(),
|
||||
new T6::ZoneCreator()
|
||||
new T6::ZoneCreator(),
|
||||
};
|
||||
|
||||
enum class ProjectType
|
||||
@ -51,11 +49,10 @@ enum class ProjectType
|
||||
MAX
|
||||
};
|
||||
|
||||
constexpr const char* PROJECT_TYPE_NAMES[static_cast<unsigned>(ProjectType::MAX)]
|
||||
{
|
||||
constexpr const char* PROJECT_TYPE_NAMES[static_cast<unsigned>(ProjectType::MAX)]{
|
||||
"none",
|
||||
"fastfile",
|
||||
"ipak"
|
||||
"ipak",
|
||||
};
|
||||
|
||||
class LinkerImpl final : public Linker
|
||||
@ -294,7 +291,7 @@ class LinkerImpl final : public Linker
|
||||
if (projectType != parsedProjectType)
|
||||
{
|
||||
std::cerr << "Conflicting types in target \"" << targetName << "\": " << PROJECT_TYPE_NAMES[static_cast<unsigned>(projectType)]
|
||||
<< " != " << PROJECT_TYPE_NAMES[static_cast<unsigned>(parsedProjectType)] << std::endl;
|
||||
<< " != " << PROJECT_TYPE_NAMES[static_cast<unsigned>(parsedProjectType)] << std::endl;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -367,7 +364,10 @@ class LinkerImpl final : public Linker
|
||||
return true;
|
||||
}
|
||||
|
||||
std::unique_ptr<Zone> CreateZoneForDefinition(const std::string& targetName, ZoneDefinition& zoneDefinition, ISearchPath* assetSearchPath, ISearchPath* gdtSearchPath,
|
||||
std::unique_ptr<Zone> CreateZoneForDefinition(const std::string& targetName,
|
||||
ZoneDefinition& zoneDefinition,
|
||||
ISearchPath* assetSearchPath,
|
||||
ISearchPath* gdtSearchPath,
|
||||
ISearchPath* sourceSearchPath) const
|
||||
{
|
||||
const auto context = std::make_unique<ZoneCreationContext>(assetSearchPath, &zoneDefinition);
|
||||
@ -412,7 +412,11 @@ class LinkerImpl final : public Linker
|
||||
return true;
|
||||
}
|
||||
|
||||
bool BuildFastFile(const std::string& projectName, const std::string& targetName, ZoneDefinition& zoneDefinition, SearchPaths& assetSearchPaths, SearchPaths& gdtSearchPaths,
|
||||
bool BuildFastFile(const std::string& projectName,
|
||||
const std::string& targetName,
|
||||
ZoneDefinition& zoneDefinition,
|
||||
SearchPaths& assetSearchPaths,
|
||||
SearchPaths& gdtSearchPaths,
|
||||
SearchPaths& sourceSearchPaths) const
|
||||
{
|
||||
const auto zone = CreateZoneForDefinition(targetName, zoneDefinition, &assetSearchPaths, &gdtSearchPaths, &sourceSearchPaths);
|
||||
@ -460,17 +464,19 @@ class LinkerImpl final : public Linker
|
||||
|
||||
bool BuildReferencedTargets(const std::string& projectName, const std::string& targetName, const ZoneDefinition& zoneDefinition)
|
||||
{
|
||||
return std::all_of(zoneDefinition.m_targets_to_build.begin(), zoneDefinition.m_targets_to_build.end(), [this, &projectName, &targetName](const std::string& buildTargetName)
|
||||
{
|
||||
if (buildTargetName == targetName)
|
||||
{
|
||||
std::cerr << "Cannot build target with same name: \"" << targetName << "\"\n";
|
||||
return false;
|
||||
}
|
||||
return std::all_of(zoneDefinition.m_targets_to_build.begin(),
|
||||
zoneDefinition.m_targets_to_build.end(),
|
||||
[this, &projectName, &targetName](const std::string& buildTargetName)
|
||||
{
|
||||
if (buildTargetName == targetName)
|
||||
{
|
||||
std::cerr << "Cannot build target with same name: \"" << targetName << "\"\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
std::cout << "Building referenced target \"" << buildTargetName << "\"\n";
|
||||
return BuildProject(projectName, buildTargetName);
|
||||
});
|
||||
std::cout << "Building referenced target \"" << buildTargetName << "\"\n";
|
||||
return BuildProject(projectName, buildTargetName);
|
||||
});
|
||||
}
|
||||
|
||||
bool BuildProject(const std::string& projectName, const std::string& targetName)
|
||||
|
@ -1,16 +1,17 @@
|
||||
#include "LinkerArgs.h"
|
||||
|
||||
#include "ObjLoading.h"
|
||||
#include "ObjWriting.h"
|
||||
#include "Utils/Arguments/UsageInformation.h"
|
||||
#include "Utils/FileUtils.h"
|
||||
|
||||
#include <filesystem>
|
||||
#include <regex>
|
||||
#include <type_traits>
|
||||
|
||||
#include "Utils/Arguments/UsageInformation.h"
|
||||
#include "ObjLoading.h"
|
||||
#include "ObjWriting.h"
|
||||
#include "Utils/FileUtils.h"
|
||||
|
||||
namespace fs = std::filesystem;
|
||||
|
||||
// clang-format off
|
||||
const CommandLineOption* const OPTION_HELP =
|
||||
CommandLineOption::Builder::Create()
|
||||
.WithShortName("?")
|
||||
@ -79,11 +80,13 @@ const CommandLineOption* const OPTION_MENU_PERMISSIVE =
|
||||
const CommandLineOption* const OPTION_MENU_NO_OPTIMIZATION =
|
||||
CommandLineOption::Builder::Create()
|
||||
.WithLongName("menu-no-optimization")
|
||||
.WithDescription("Refrain from applying optimizations to parsed menus. (Optimizations increase menu performance and size. May result in less source information when dumped though.)")
|
||||
.WithDescription("Refrain from applying optimizations to parsed menus. (Optimizations increase menu performance and size. May result in less source "
|
||||
"information when dumped though.)")
|
||||
.Build();
|
||||
|
||||
const CommandLineOption* const COMMAND_LINE_OPTIONS[]
|
||||
{
|
||||
// clang-format on
|
||||
|
||||
const CommandLineOption* const COMMAND_LINE_OPTIONS[]{
|
||||
OPTION_HELP,
|
||||
OPTION_VERBOSE,
|
||||
OPTION_BASE_FOLDER,
|
||||
@ -93,7 +96,7 @@ const CommandLineOption* const COMMAND_LINE_OPTIONS[]
|
||||
OPTION_SOURCE_SEARCH_PATH,
|
||||
OPTION_LOAD,
|
||||
OPTION_MENU_PERMISSIVE,
|
||||
OPTION_MENU_NO_OPTIMIZATION
|
||||
OPTION_MENU_NO_OPTIMIZATION,
|
||||
};
|
||||
|
||||
LinkerArgs::LinkerArgs()
|
||||
@ -182,14 +185,14 @@ std::set<std::string> LinkerArgs::GetSearchPathsForProject(const std::set<std::s
|
||||
|
||||
for (const auto& path : set)
|
||||
{
|
||||
if (path.find(PATTERN_GAME) == std::string::npos
|
||||
&& path.find(PATTERN_PROJECT) == std::string::npos
|
||||
if (path.find(PATTERN_GAME) == std::string::npos && path.find(PATTERN_PROJECT) == std::string::npos
|
||||
&& (!m_base_folder_depends_on_project || path.find(PATTERN_BASE) == std::string::npos))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
out.emplace(std::regex_replace(std::regex_replace(std::regex_replace(path, m_project_pattern, projectName), m_game_pattern, gameName), m_base_pattern, basePath));
|
||||
out.emplace(std::regex_replace(
|
||||
std::regex_replace(std::regex_replace(path, m_project_pattern, projectName), m_game_pattern, gameName), m_base_pattern, basePath));
|
||||
}
|
||||
|
||||
return out;
|
||||
|
@ -1,12 +1,12 @@
|
||||
#pragma once
|
||||
#include <vector>
|
||||
#include <set>
|
||||
#include <regex>
|
||||
|
||||
#include "Utils/ClassUtils.h"
|
||||
#include "Utils/Arguments/ArgumentParser.h"
|
||||
#include "Utils/ClassUtils.h"
|
||||
#include "Zone/Zone.h"
|
||||
|
||||
#include <regex>
|
||||
#include <set>
|
||||
#include <vector>
|
||||
|
||||
class LinkerArgs
|
||||
{
|
||||
public:
|
||||
@ -37,12 +37,13 @@ private:
|
||||
_NODISCARD std::string GetBasePathForProject(const std::string& projectName) const;
|
||||
void SetDefaultBasePath();
|
||||
_NODISCARD std::set<std::string> GetProjectIndependentSearchPaths(const std::set<std::string>& set) const;
|
||||
_NODISCARD std::set<std::string> GetSearchPathsForProject(const std::set<std::string>& set, const std::string& gameName, const std::string& projectName) const;
|
||||
_NODISCARD std::set<std::string>
|
||||
GetSearchPathsForProject(const std::set<std::string>& set, const std::string& gameName, const std::string& projectName) const;
|
||||
|
||||
public:
|
||||
std::vector<std::string> m_zones_to_load;
|
||||
std::vector<std::string> m_project_specifiers_to_build;
|
||||
|
||||
|
||||
std::string m_base_folder;
|
||||
std::string m_out_folder;
|
||||
bool m_base_folder_depends_on_project;
|
||||
@ -67,7 +68,7 @@ public:
|
||||
_NODISCARD std::set<std::string> GetProjectIndependentAssetSearchPaths() const;
|
||||
_NODISCARD std::set<std::string> GetProjectIndependentGdtSearchPaths() const;
|
||||
_NODISCARD std::set<std::string> GetProjectIndependentSourceSearchPaths() const;
|
||||
|
||||
|
||||
_NODISCARD std::set<std::string> GetAssetSearchPathsForProject(const std::string& gameName, const std::string& projectName) const;
|
||||
_NODISCARD std::set<std::string> GetGdtSearchPathsForProject(const std::string& gameName, const std::string& projectName) const;
|
||||
_NODISCARD std::set<std::string> GetSourceSearchPathsForProject(const std::string& projectName) const;
|
||||
|
@ -1,12 +1,12 @@
|
||||
#include "LinkerSearchPaths.h"
|
||||
|
||||
#include "ObjContainer/IWD/IWD.h"
|
||||
#include "ObjLoading.h"
|
||||
#include "SearchPath/SearchPathFilesystem.h"
|
||||
|
||||
#include <filesystem>
|
||||
#include <iostream>
|
||||
|
||||
#include "ObjLoading.h"
|
||||
#include "ObjContainer/IWD/IWD.h"
|
||||
#include "SearchPath/SearchPathFilesystem.h"
|
||||
|
||||
namespace fs = std::filesystem;
|
||||
|
||||
LinkerSearchPaths::LinkerSearchPaths(const LinkerArgs& args)
|
||||
@ -178,7 +178,6 @@ bool LinkerSearchPaths::BuildProjectIndependentSearchPaths()
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void LinkerSearchPaths::UnloadProjectSpecificSearchPaths()
|
||||
{
|
||||
for (const auto& loadedSearchPath : m_loaded_project_search_paths)
|
||||
|
@ -1,11 +1,10 @@
|
||||
#pragma once
|
||||
#include "LinkerArgs.h"
|
||||
#include "SearchPath/SearchPaths.h"
|
||||
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
#include "LinkerArgs.h"
|
||||
|
||||
class LinkerSearchPaths
|
||||
{
|
||||
public:
|
||||
|
@ -1,9 +1,9 @@
|
||||
#pragma once
|
||||
#include <string>
|
||||
|
||||
#include "Utils/ClassUtils.h"
|
||||
#include "ZoneCreationContext.h"
|
||||
#include "Zone/Zone.h"
|
||||
#include "ZoneCreationContext.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
class IZoneCreator
|
||||
{
|
||||
|
@ -1,13 +1,13 @@
|
||||
#pragma once
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
|
||||
#include "SearchPath/ISearchPath.h"
|
||||
#include "Obj/Gdt/Gdt.h"
|
||||
#include "SearchPath/ISearchPath.h"
|
||||
#include "Zone/AssetList/AssetList.h"
|
||||
#include "Zone/Definition/ZoneDefinition.h"
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class ZoneCreationContext
|
||||
{
|
||||
public:
|
||||
|
@ -17,22 +17,22 @@ bool CsvInputStream::NextRow(std::vector<std::string>& out) const
|
||||
auto c = m_stream.get();
|
||||
const auto isEof = c == EOF;
|
||||
std::ostringstream col;
|
||||
while(c != EOF)
|
||||
while (c != EOF)
|
||||
{
|
||||
if(c == CSV_SEPARATOR)
|
||||
if (c == CSV_SEPARATOR)
|
||||
{
|
||||
out.emplace_back(col.str());
|
||||
col.clear();
|
||||
col.str(std::string());
|
||||
}
|
||||
else if(c == '\r')
|
||||
else if (c == '\r')
|
||||
{
|
||||
c = m_stream.get();
|
||||
if (c == '\n')
|
||||
break;
|
||||
col << '\r';
|
||||
}
|
||||
else if(c == '\n')
|
||||
else if (c == '\n')
|
||||
{
|
||||
break;
|
||||
}
|
||||
@ -44,7 +44,7 @@ bool CsvInputStream::NextRow(std::vector<std::string>& out) const
|
||||
c = m_stream.get();
|
||||
}
|
||||
|
||||
if(!isEof)
|
||||
if (!isEof)
|
||||
{
|
||||
out.emplace_back(col.str());
|
||||
}
|
||||
|
@ -25,4 +25,4 @@ public:
|
||||
|
||||
void WriteColumn(const std::string& value);
|
||||
void NextRow();
|
||||
};
|
||||
};
|
||||
|
@ -1,43 +1,16 @@
|
||||
#pragma once
|
||||
|
||||
#include <unordered_map>
|
||||
#include <type_traits>
|
||||
|
||||
#include "Game/IW3/IW3.h"
|
||||
|
||||
#include <type_traits>
|
||||
#include <unordered_map>
|
||||
|
||||
namespace IW3
|
||||
{
|
||||
inline const char* surfaceTypeNames[]
|
||||
{
|
||||
"default",
|
||||
"bark",
|
||||
"brick",
|
||||
"carpet",
|
||||
"cloth",
|
||||
"concrete",
|
||||
"dirt",
|
||||
"flesh",
|
||||
"foliage",
|
||||
"glass",
|
||||
"grass",
|
||||
"gravel",
|
||||
"ice",
|
||||
"metal",
|
||||
"mud",
|
||||
"paper",
|
||||
"plaster",
|
||||
"rock",
|
||||
"sand",
|
||||
"snow",
|
||||
"water",
|
||||
"wood",
|
||||
"asphalt",
|
||||
"ceramic",
|
||||
"plastic",
|
||||
"rubber",
|
||||
"cushion",
|
||||
"fruit",
|
||||
"paintedmetal"
|
||||
inline const char* surfaceTypeNames[]{
|
||||
"default", "bark", "brick", "carpet", "cloth", "concrete", "dirt", "flesh", "foliage", "glass",
|
||||
"grass", "gravel", "ice", "metal", "mud", "paper", "plaster", "rock", "sand", "snow",
|
||||
"water", "wood", "asphalt", "ceramic", "plastic", "rubber", "cushion", "fruit", "paintedmetal",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(surfaceTypeNames)> == SURF_TYPE_NUM);
|
||||
}
|
||||
} // namespace IW3
|
||||
|
@ -1,15 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include <unordered_map>
|
||||
#include <type_traits>
|
||||
|
||||
#include "Game/IW3/CommonIW3.h"
|
||||
#include "Game/IW3/IW3.h"
|
||||
|
||||
#include <type_traits>
|
||||
#include <unordered_map>
|
||||
|
||||
namespace IW3
|
||||
{
|
||||
inline const char* techniqueTypeNames[]
|
||||
{
|
||||
inline const char* techniqueTypeNames[]{
|
||||
"depth prepass",
|
||||
"build floatz",
|
||||
"build shadowmap depth",
|
||||
@ -47,8 +46,7 @@ namespace IW3
|
||||
};
|
||||
static_assert(std::extent_v<decltype(techniqueTypeNames)> == TECHNIQUE_COUNT);
|
||||
|
||||
static const char* materialStreamDestinationNames[]
|
||||
{
|
||||
static const char* materialStreamDestinationNames[]{
|
||||
"position",
|
||||
"normal",
|
||||
"color[0]",
|
||||
@ -64,8 +62,7 @@ namespace IW3
|
||||
};
|
||||
static_assert(std::extent_v<decltype(materialStreamDestinationNames)> == STREAM_DST_COUNT);
|
||||
|
||||
static const char* materialStreamSourceNames[]
|
||||
{
|
||||
static const char* materialStreamSourceNames[]{
|
||||
"position",
|
||||
"color",
|
||||
"texcoord[0]",
|
||||
@ -74,7 +71,7 @@ namespace IW3
|
||||
"texcoord[1]",
|
||||
"texcoord[2]",
|
||||
"normalTransform[0]",
|
||||
"normalTransform[1]"
|
||||
"normalTransform[1]",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(materialStreamSourceNames)> == STREAM_SRC_COUNT);
|
||||
|
||||
@ -83,56 +80,23 @@ namespace IW3
|
||||
return std::make_pair(Common::R_HashString(name, 0u), name);
|
||||
}
|
||||
|
||||
inline std::unordered_map knownMaterialSourceNames
|
||||
{
|
||||
KnownMaterialSource("colorMap"),
|
||||
KnownMaterialSource("colorMap0"),
|
||||
KnownMaterialSource("colorMap1"),
|
||||
KnownMaterialSource("colorMap2"),
|
||||
KnownMaterialSource("colorMap3"),
|
||||
KnownMaterialSource("colorMap4"),
|
||||
KnownMaterialSource("colorMap5"),
|
||||
KnownMaterialSource("colorMap6"),
|
||||
KnownMaterialSource("colorMap7"),
|
||||
KnownMaterialSource("normalMap"),
|
||||
KnownMaterialSource("normalMap0"),
|
||||
KnownMaterialSource("normalMap1"),
|
||||
KnownMaterialSource("normalMap2"),
|
||||
KnownMaterialSource("normalMap3"),
|
||||
KnownMaterialSource("normalMap4"),
|
||||
KnownMaterialSource("normalMap5"),
|
||||
KnownMaterialSource("normalMap6"),
|
||||
KnownMaterialSource("normalMap7"),
|
||||
KnownMaterialSource("specularMap"),
|
||||
KnownMaterialSource("specularMap0"),
|
||||
KnownMaterialSource("specularMap1"),
|
||||
KnownMaterialSource("specularMap2"),
|
||||
KnownMaterialSource("specularMap3"),
|
||||
KnownMaterialSource("specularMap4"),
|
||||
KnownMaterialSource("specularMap5"),
|
||||
KnownMaterialSource("specularMap6"),
|
||||
KnownMaterialSource("specularMap7"),
|
||||
KnownMaterialSource("detailMap"),
|
||||
KnownMaterialSource("detailMap0"),
|
||||
KnownMaterialSource("detailMap1"),
|
||||
KnownMaterialSource("detailMap2"),
|
||||
KnownMaterialSource("detailMap3"),
|
||||
KnownMaterialSource("detailMap4"),
|
||||
KnownMaterialSource("detailMap5"),
|
||||
KnownMaterialSource("detailMap6"),
|
||||
KnownMaterialSource("detailMap7"),
|
||||
KnownMaterialSource("attenuationMap"),
|
||||
KnownMaterialSource("attenuationMap0"),
|
||||
KnownMaterialSource("attenuationMap1"),
|
||||
KnownMaterialSource("attenuationMap2"),
|
||||
KnownMaterialSource("attenuationMap3"),
|
||||
KnownMaterialSource("attenuationMap4"),
|
||||
KnownMaterialSource("attenuationMap5"),
|
||||
KnownMaterialSource("attenuationMap6"),
|
||||
KnownMaterialSource("attenuationMap7"),
|
||||
KnownMaterialSource("distortionScale"),
|
||||
KnownMaterialSource("eyeOffsetParms"),
|
||||
KnownMaterialSource("falloffBeginColor"),
|
||||
inline std::unordered_map knownMaterialSourceNames{
|
||||
KnownMaterialSource("colorMap"), KnownMaterialSource("colorMap0"), KnownMaterialSource("colorMap1"),
|
||||
KnownMaterialSource("colorMap2"), KnownMaterialSource("colorMap3"), KnownMaterialSource("colorMap4"),
|
||||
KnownMaterialSource("colorMap5"), KnownMaterialSource("colorMap6"), KnownMaterialSource("colorMap7"),
|
||||
KnownMaterialSource("normalMap"), KnownMaterialSource("normalMap0"), KnownMaterialSource("normalMap1"),
|
||||
KnownMaterialSource("normalMap2"), KnownMaterialSource("normalMap3"), KnownMaterialSource("normalMap4"),
|
||||
KnownMaterialSource("normalMap5"), KnownMaterialSource("normalMap6"), KnownMaterialSource("normalMap7"),
|
||||
KnownMaterialSource("specularMap"), KnownMaterialSource("specularMap0"), KnownMaterialSource("specularMap1"),
|
||||
KnownMaterialSource("specularMap2"), KnownMaterialSource("specularMap3"), KnownMaterialSource("specularMap4"),
|
||||
KnownMaterialSource("specularMap5"), KnownMaterialSource("specularMap6"), KnownMaterialSource("specularMap7"),
|
||||
KnownMaterialSource("detailMap"), KnownMaterialSource("detailMap0"), KnownMaterialSource("detailMap1"),
|
||||
KnownMaterialSource("detailMap2"), KnownMaterialSource("detailMap3"), KnownMaterialSource("detailMap4"),
|
||||
KnownMaterialSource("detailMap5"), KnownMaterialSource("detailMap6"), KnownMaterialSource("detailMap7"),
|
||||
KnownMaterialSource("attenuationMap"), KnownMaterialSource("attenuationMap0"), KnownMaterialSource("attenuationMap1"),
|
||||
KnownMaterialSource("attenuationMap2"), KnownMaterialSource("attenuationMap3"), KnownMaterialSource("attenuationMap4"),
|
||||
KnownMaterialSource("attenuationMap5"), KnownMaterialSource("attenuationMap6"), KnownMaterialSource("attenuationMap7"),
|
||||
KnownMaterialSource("distortionScale"), KnownMaterialSource("eyeOffsetParms"), KnownMaterialSource("falloffBeginColor"),
|
||||
KnownMaterialSource("falloffEndColor"),
|
||||
};
|
||||
}
|
||||
} // namespace IW3
|
||||
|
@ -2,16 +2,14 @@
|
||||
|
||||
namespace IW4
|
||||
{
|
||||
inline const char* szWeapTypeNames[]
|
||||
{
|
||||
inline const char* szWeapTypeNames[]{
|
||||
"bullet",
|
||||
"grenade",
|
||||
"projectile",
|
||||
"riotshield",
|
||||
};
|
||||
|
||||
inline const char* szWeapClassNames[]
|
||||
{
|
||||
inline const char* szWeapClassNames[]{
|
||||
"rifle",
|
||||
"sniper",
|
||||
"mg",
|
||||
@ -26,14 +24,12 @@ namespace IW4
|
||||
"item",
|
||||
};
|
||||
|
||||
inline const char* szWeapOverlayReticleNames[]
|
||||
{
|
||||
inline const char* szWeapOverlayReticleNames[]{
|
||||
"none",
|
||||
"crosshair",
|
||||
};
|
||||
|
||||
inline const char* szWeapInventoryTypeNames[]
|
||||
{
|
||||
inline const char* szWeapInventoryTypeNames[]{
|
||||
"primary",
|
||||
"offhand",
|
||||
"item",
|
||||
@ -42,8 +38,7 @@ namespace IW4
|
||||
"scavenger",
|
||||
};
|
||||
|
||||
inline const char* szWeapFireTypeNames[]
|
||||
{
|
||||
inline const char* szWeapFireTypeNames[]{
|
||||
"Full Auto",
|
||||
"Single Shot",
|
||||
"2-Round Burst",
|
||||
@ -52,16 +47,14 @@ namespace IW4
|
||||
"Double Barrel",
|
||||
};
|
||||
|
||||
inline const char* penetrateTypeNames[]
|
||||
{
|
||||
inline const char* penetrateTypeNames[]{
|
||||
"none",
|
||||
"small",
|
||||
"medium",
|
||||
"large",
|
||||
};
|
||||
|
||||
inline const char* impactTypeNames[]
|
||||
{
|
||||
inline const char* impactTypeNames[]{
|
||||
"none",
|
||||
"bullet_small",
|
||||
"bullet_large",
|
||||
@ -75,15 +68,13 @@ namespace IW4
|
||||
"projectile_dud",
|
||||
};
|
||||
|
||||
inline const char* szWeapStanceNames[]
|
||||
{
|
||||
inline const char* szWeapStanceNames[]{
|
||||
"stand",
|
||||
"duck",
|
||||
"prone",
|
||||
};
|
||||
|
||||
inline const char* szProjectileExplosionNames[]
|
||||
{
|
||||
inline const char* szProjectileExplosionNames[]{
|
||||
"grenade",
|
||||
"rocket",
|
||||
"flashbang",
|
||||
@ -93,8 +84,7 @@ namespace IW4
|
||||
"heavy explosive",
|
||||
};
|
||||
|
||||
inline const char* offhandClassNames[]
|
||||
{
|
||||
inline const char* offhandClassNames[]{
|
||||
"None",
|
||||
"Frag Grenade",
|
||||
"Smoke Grenade",
|
||||
@ -103,8 +93,7 @@ namespace IW4
|
||||
"Other",
|
||||
};
|
||||
|
||||
inline const char* playerAnimTypeNames[]
|
||||
{
|
||||
inline const char* playerAnimTypeNames[]{
|
||||
"none",
|
||||
"other",
|
||||
"pistol",
|
||||
@ -125,23 +114,20 @@ namespace IW4
|
||||
"throwingknife",
|
||||
};
|
||||
|
||||
inline const char* activeReticleNames[]
|
||||
{
|
||||
inline const char* activeReticleNames[]{
|
||||
"None",
|
||||
"Pip-On-A-Stick",
|
||||
"Bouncing diamond",
|
||||
};
|
||||
|
||||
inline const char* guidedMissileNames[]
|
||||
{
|
||||
inline const char* guidedMissileNames[]{
|
||||
"None",
|
||||
"Sidewinder",
|
||||
"Hellfire",
|
||||
"Javelin",
|
||||
};
|
||||
|
||||
inline const char* stickinessNames[]
|
||||
{
|
||||
inline const char* stickinessNames[]{
|
||||
"Don't stick",
|
||||
"Stick to all",
|
||||
"Stick to all, orient to surface",
|
||||
@ -150,15 +136,13 @@ namespace IW4
|
||||
"Knife",
|
||||
};
|
||||
|
||||
inline const char* overlayInterfaceNames[]
|
||||
{
|
||||
inline const char* overlayInterfaceNames[]{
|
||||
"None",
|
||||
"Javelin",
|
||||
"Turret Scope",
|
||||
};
|
||||
|
||||
inline const char* ammoCounterClipNames[]
|
||||
{
|
||||
inline const char* ammoCounterClipNames[]{
|
||||
"None",
|
||||
"Magazine",
|
||||
"ShortMagazine",
|
||||
@ -168,15 +152,13 @@ namespace IW4
|
||||
"AltWeapon",
|
||||
};
|
||||
|
||||
inline const char* weapIconRatioNames[]
|
||||
{
|
||||
inline const char* weapIconRatioNames[]{
|
||||
"1:1",
|
||||
"2:1",
|
||||
"4:1",
|
||||
};
|
||||
|
||||
inline const char* s_vehicleClassNames[]
|
||||
{
|
||||
inline const char* s_vehicleClassNames[]{
|
||||
"4 wheel",
|
||||
"tank",
|
||||
"plane",
|
||||
@ -186,10 +168,9 @@ namespace IW4
|
||||
"snowmobile",
|
||||
};
|
||||
|
||||
inline const char* s_vehicleAxleTypeNames[]
|
||||
{
|
||||
inline const char* s_vehicleAxleTypeNames[]{
|
||||
"front",
|
||||
"rear",
|
||||
"all",
|
||||
};
|
||||
}
|
||||
} // namespace IW4
|
||||
|
@ -3,18 +3,17 @@
|
||||
|
||||
namespace IW4
|
||||
{
|
||||
inline cspField_t phys_preset_fields[]
|
||||
{
|
||||
{ "mass", offsetof(PhysPresetInfo, mass), CSPFT_FLOAT },
|
||||
{ "bounce", offsetof(PhysPresetInfo, bounce), CSPFT_FLOAT },
|
||||
{ "friction", offsetof(PhysPresetInfo, friction), CSPFT_FLOAT },
|
||||
{ "isFrictionInfinity", offsetof(PhysPresetInfo, isFrictionInfinity), CSPFT_QBOOLEAN },
|
||||
{ "bulletForceScale", offsetof(PhysPresetInfo, bulletForceScale), CSPFT_FLOAT },
|
||||
{ "explosiveForceScale", offsetof(PhysPresetInfo, explosiveForceScale), CSPFT_FLOAT },
|
||||
{ "sndAliasPrefix", offsetof(PhysPresetInfo, sndAliasPrefix), CSPFT_STRING },
|
||||
{ "piecesSpreadFraction", offsetof(PhysPresetInfo, piecesSpreadFraction), CSPFT_FLOAT },
|
||||
{ "piecesUpwardVelocity", offsetof(PhysPresetInfo, piecesUpwardVelocity), CSPFT_FLOAT },
|
||||
{ "tempDefaultToCylinder", offsetof(PhysPresetInfo, tempDefaultToCylinder), CSPFT_QBOOLEAN },
|
||||
{ "perSurfaceSndAlias", offsetof(PhysPresetInfo, perSurfaceSndAlias), CSPFT_QBOOLEAN },
|
||||
inline cspField_t phys_preset_fields[]{
|
||||
{"mass", offsetof(PhysPresetInfo, mass), CSPFT_FLOAT },
|
||||
{"bounce", offsetof(PhysPresetInfo, bounce), CSPFT_FLOAT },
|
||||
{"friction", offsetof(PhysPresetInfo, friction), CSPFT_FLOAT },
|
||||
{"isFrictionInfinity", offsetof(PhysPresetInfo, isFrictionInfinity), CSPFT_QBOOLEAN},
|
||||
{"bulletForceScale", offsetof(PhysPresetInfo, bulletForceScale), CSPFT_FLOAT },
|
||||
{"explosiveForceScale", offsetof(PhysPresetInfo, explosiveForceScale), CSPFT_FLOAT },
|
||||
{"sndAliasPrefix", offsetof(PhysPresetInfo, sndAliasPrefix), CSPFT_STRING },
|
||||
{"piecesSpreadFraction", offsetof(PhysPresetInfo, piecesSpreadFraction), CSPFT_FLOAT },
|
||||
{"piecesUpwardVelocity", offsetof(PhysPresetInfo, piecesUpwardVelocity), CSPFT_FLOAT },
|
||||
{"tempDefaultToCylinder", offsetof(PhysPresetInfo, tempDefaultToCylinder), CSPFT_QBOOLEAN},
|
||||
{"perSurfaceSndAlias", offsetof(PhysPresetInfo, perSurfaceSndAlias), CSPFT_QBOOLEAN},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -3,34 +3,33 @@
|
||||
|
||||
namespace IW4
|
||||
{
|
||||
inline cspField_t tracer_fields[]
|
||||
{
|
||||
{ "material", offsetof(TracerDef, material), CSPFT_MATERIAL },
|
||||
{ "drawInterval", offsetof(TracerDef, drawInterval), CSPFT_INT },
|
||||
{ "speed", offsetof(TracerDef, speed), CSPFT_FLOAT },
|
||||
{ "beamLength", offsetof(TracerDef, beamLength), CSPFT_FLOAT },
|
||||
{ "beamWidth", offsetof(TracerDef, beamWidth), CSPFT_FLOAT },
|
||||
{ "screwRadius", offsetof(TracerDef, screwRadius), CSPFT_FLOAT },
|
||||
{ "screwDist", offsetof(TracerDef, screwDist), CSPFT_FLOAT },
|
||||
{ "colorR0", offsetof(TracerDef, colors[0][0]), CSPFT_FLOAT},
|
||||
{ "colorG0", offsetof(TracerDef, colors[0][1]), CSPFT_FLOAT },
|
||||
{ "colorB0", offsetof(TracerDef, colors[0][2]), CSPFT_FLOAT },
|
||||
{ "colorA0", offsetof(TracerDef, colors[0][3]), CSPFT_FLOAT },
|
||||
{ "colorR1", offsetof(TracerDef, colors[1][0]), CSPFT_FLOAT },
|
||||
{ "colorG1", offsetof(TracerDef, colors[1][1]), CSPFT_FLOAT },
|
||||
{ "colorB1", offsetof(TracerDef, colors[1][2]), CSPFT_FLOAT },
|
||||
{ "colorA1", offsetof(TracerDef, colors[1][3]), CSPFT_FLOAT },
|
||||
{ "colorR2", offsetof(TracerDef, colors[2][0]), CSPFT_FLOAT },
|
||||
{ "colorG2", offsetof(TracerDef, colors[2][1]), CSPFT_FLOAT },
|
||||
{ "colorB2", offsetof(TracerDef, colors[2][2]), CSPFT_FLOAT },
|
||||
{ "colorA2", offsetof(TracerDef, colors[2][3]), CSPFT_FLOAT },
|
||||
{ "colorR3", offsetof(TracerDef, colors[3][0]), CSPFT_FLOAT },
|
||||
{ "colorG3", offsetof(TracerDef, colors[3][1]), CSPFT_FLOAT },
|
||||
{ "colorB3", offsetof(TracerDef, colors[3][2]), CSPFT_FLOAT },
|
||||
{ "colorA3", offsetof(TracerDef, colors[3][3]), CSPFT_FLOAT },
|
||||
{ "colorR4", offsetof(TracerDef, colors[4][0]), CSPFT_FLOAT },
|
||||
{ "colorG4", offsetof(TracerDef, colors[4][1]), CSPFT_FLOAT },
|
||||
{ "colorB4", offsetof(TracerDef, colors[4][2]), CSPFT_FLOAT },
|
||||
{ "colorA4", offsetof(TracerDef, colors[4][3]), CSPFT_FLOAT },
|
||||
inline cspField_t tracer_fields[]{
|
||||
{"material", offsetof(TracerDef, material), CSPFT_MATERIAL},
|
||||
{"drawInterval", offsetof(TracerDef, drawInterval), CSPFT_INT },
|
||||
{"speed", offsetof(TracerDef, speed), CSPFT_FLOAT },
|
||||
{"beamLength", offsetof(TracerDef, beamLength), CSPFT_FLOAT },
|
||||
{"beamWidth", offsetof(TracerDef, beamWidth), CSPFT_FLOAT },
|
||||
{"screwRadius", offsetof(TracerDef, screwRadius), CSPFT_FLOAT },
|
||||
{"screwDist", offsetof(TracerDef, screwDist), CSPFT_FLOAT },
|
||||
{"colorR0", offsetof(TracerDef, colors[0][0]), CSPFT_FLOAT },
|
||||
{"colorG0", offsetof(TracerDef, colors[0][1]), CSPFT_FLOAT },
|
||||
{"colorB0", offsetof(TracerDef, colors[0][2]), CSPFT_FLOAT },
|
||||
{"colorA0", offsetof(TracerDef, colors[0][3]), CSPFT_FLOAT },
|
||||
{"colorR1", offsetof(TracerDef, colors[1][0]), CSPFT_FLOAT },
|
||||
{"colorG1", offsetof(TracerDef, colors[1][1]), CSPFT_FLOAT },
|
||||
{"colorB1", offsetof(TracerDef, colors[1][2]), CSPFT_FLOAT },
|
||||
{"colorA1", offsetof(TracerDef, colors[1][3]), CSPFT_FLOAT },
|
||||
{"colorR2", offsetof(TracerDef, colors[2][0]), CSPFT_FLOAT },
|
||||
{"colorG2", offsetof(TracerDef, colors[2][1]), CSPFT_FLOAT },
|
||||
{"colorB2", offsetof(TracerDef, colors[2][2]), CSPFT_FLOAT },
|
||||
{"colorA2", offsetof(TracerDef, colors[2][3]), CSPFT_FLOAT },
|
||||
{"colorR3", offsetof(TracerDef, colors[3][0]), CSPFT_FLOAT },
|
||||
{"colorG3", offsetof(TracerDef, colors[3][1]), CSPFT_FLOAT },
|
||||
{"colorB3", offsetof(TracerDef, colors[3][2]), CSPFT_FLOAT },
|
||||
{"colorA3", offsetof(TracerDef, colors[3][3]), CSPFT_FLOAT },
|
||||
{"colorR4", offsetof(TracerDef, colors[4][0]), CSPFT_FLOAT },
|
||||
{"colorG4", offsetof(TracerDef, colors[4][1]), CSPFT_FLOAT },
|
||||
{"colorB4", offsetof(TracerDef, colors[4][2]), CSPFT_FLOAT },
|
||||
{"colorA4", offsetof(TracerDef, colors[4][3]), CSPFT_FLOAT },
|
||||
};
|
||||
}
|
||||
|
@ -3,150 +3,149 @@
|
||||
|
||||
namespace IW4
|
||||
{
|
||||
inline cspField_t vehicle_fields[]
|
||||
{
|
||||
{"type", offsetof(VehicleDef, type), VFT_TYPE},
|
||||
{"useHintString", offsetof(VehicleDef, useHintString), CSPFT_STRING},
|
||||
{"health", offsetof(VehicleDef, health), CSPFT_INT},
|
||||
{"quadBarrel", offsetof(VehicleDef, quadBarrel), CSPFT_QBOOLEAN},
|
||||
{"texureScrollScale", offsetof(VehicleDef, texScrollScale), CSPFT_FLOAT},
|
||||
{"topSpeed", offsetof(VehicleDef, topSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"accel", offsetof(VehicleDef, accel), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"rotRate", offsetof(VehicleDef, rotRate), CSPFT_FLOAT},
|
||||
{"rotAccel", offsetof(VehicleDef, rotAccel), CSPFT_FLOAT},
|
||||
{"maxBodyPitch", offsetof(VehicleDef, maxBodyPitch), CSPFT_FLOAT},
|
||||
{"maxBodyRoll", offsetof(VehicleDef, maxBodyRoll), CSPFT_FLOAT},
|
||||
{"fakeBodyAccelPitch", offsetof(VehicleDef, fakeBodyAccelPitch), CSPFT_FLOAT},
|
||||
{"fakeBodyAccelRoll", offsetof(VehicleDef, fakeBodyAccelRoll), CSPFT_FLOAT},
|
||||
{"fakeBodyVelPitch", offsetof(VehicleDef, fakeBodyVelPitch), CSPFT_FLOAT},
|
||||
{"fakeBodyVelRoll", offsetof(VehicleDef, fakeBodyVelRoll), CSPFT_FLOAT},
|
||||
{"fakeBodySideVelPitch", offsetof(VehicleDef, fakeBodySideVelPitch), CSPFT_FLOAT},
|
||||
{"fakeBodyPitchStrength", offsetof(VehicleDef, fakeBodyPitchStrength), CSPFT_FLOAT},
|
||||
{"fakeBodyRollStrength", offsetof(VehicleDef, fakeBodyRollStrength), CSPFT_FLOAT},
|
||||
{"fakeBodyPitchDampening", offsetof(VehicleDef, fakeBodyPitchDampening), CSPFT_FLOAT},
|
||||
{"fakeBodyRollDampening", offsetof(VehicleDef, fakeBodyRollDampening), CSPFT_FLOAT},
|
||||
{"fakeBodyBoatRockingAmplitude", offsetof(VehicleDef, fakeBodyBoatRockingAmplitude), CSPFT_FLOAT},
|
||||
{"fakeBodyBoatRockingPeriod", offsetof(VehicleDef, fakeBodyBoatRockingPeriod), CSPFT_FLOAT},
|
||||
{"fakeBodyBoatRockingRotationPeriod", offsetof(VehicleDef, fakeBodyBoatRockingRotationPeriod), CSPFT_FLOAT},
|
||||
{"fakeBodyBoatRockingFadeoutSpeed", offsetof(VehicleDef, fakeBodyBoatRockingFadeoutSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"boatBouncingMinForce", offsetof(VehicleDef, boatBouncingMinForce), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"boatBouncingMaxForce", offsetof(VehicleDef, boatBouncingMaxForce), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"boatBouncingRate", offsetof(VehicleDef, boatBouncingRate), CSPFT_FLOAT},
|
||||
{"boatBouncingFadeinSpeed", offsetof(VehicleDef, boatBouncingFadeinSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"boatBouncingFadeoutSteeringAngle", offsetof(VehicleDef, boatBouncingFadeoutSteeringAngle), CSPFT_FLOAT},
|
||||
{"collisionDamage", offsetof(VehicleDef, collisionDamage), CSPFT_FLOAT},
|
||||
{"collisionSpeed", offsetof(VehicleDef, collisionSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"killcamZDist", offsetof(VehicleDef, killcamOffset[0]), CSPFT_FLOAT},
|
||||
{"killcamBackDist", offsetof(VehicleDef, killcamOffset[1]), CSPFT_FLOAT},
|
||||
{"killcamUpDist", offsetof(VehicleDef, killcamOffset[2]), CSPFT_FLOAT},
|
||||
{"playerProtected", offsetof(VehicleDef, playerProtected), CSPFT_QBOOLEAN},
|
||||
{"bulletDamage", offsetof(VehicleDef, bulletDamage), CSPFT_QBOOLEAN},
|
||||
{"armorPiercingDamage", offsetof(VehicleDef, armorPiercingDamage), CSPFT_QBOOLEAN},
|
||||
{"grenadeDamage", offsetof(VehicleDef, grenadeDamage), CSPFT_QBOOLEAN},
|
||||
{"projectileDamage", offsetof(VehicleDef, projectileDamage), CSPFT_QBOOLEAN},
|
||||
{"projectileSplashDamage", offsetof(VehicleDef, projectileSplashDamage), CSPFT_QBOOLEAN},
|
||||
{"heavyExplosiveDamage", offsetof(VehicleDef, heavyExplosiveDamage), CSPFT_QBOOLEAN},
|
||||
{"physicsEnabled", offsetof(VehicleDef, vehPhysDef.physicsEnabled), CSPFT_QBOOLEAN},
|
||||
{"physicsPreset", offsetof(VehicleDef, vehPhysDef.physPresetName), CSPFT_STRING},
|
||||
{"accelerationGraph", offsetof(VehicleDef, vehPhysDef.accelGraphName), CSPFT_STRING},
|
||||
{"steeringAxle", offsetof(VehicleDef, vehPhysDef.steeringAxle), VFT_AXLE_STEERING},
|
||||
{"powerAxle", offsetof(VehicleDef, vehPhysDef.powerAxle), VFT_AXLE_POWER},
|
||||
{"brakingAxle", offsetof(VehicleDef, vehPhysDef.brakingAxle), VFT_AXLE_BRAKING},
|
||||
{"reverseSpeed", offsetof(VehicleDef, vehPhysDef.reverseSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"maxVelocity", offsetof(VehicleDef, vehPhysDef.maxVelocity), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"maxPitch", offsetof(VehicleDef, vehPhysDef.maxPitch), CSPFT_FLOAT},
|
||||
{"maxRoll", offsetof(VehicleDef, vehPhysDef.maxRoll), CSPFT_FLOAT},
|
||||
{"suspensionTravelRear", offsetof(VehicleDef, vehPhysDef.suspensionTravelRear), CSPFT_FLOAT},
|
||||
{"suspensionStrengthFront", offsetof(VehicleDef, vehPhysDef.suspensionStrengthFront), CSPFT_FLOAT},
|
||||
{"suspensionDampingFront", offsetof(VehicleDef, vehPhysDef.suspensionDampingFront), CSPFT_FLOAT},
|
||||
{"suspensionStrengthRear", offsetof(VehicleDef, vehPhysDef.suspensionStrengthRear), CSPFT_FLOAT},
|
||||
{"suspensionDampingRear", offsetof(VehicleDef, vehPhysDef.suspensionDampingRear), CSPFT_FLOAT},
|
||||
{"frictionBraking", offsetof(VehicleDef, vehPhysDef.frictionBraking), CSPFT_FLOAT},
|
||||
{"frictionCoasting", offsetof(VehicleDef, vehPhysDef.frictionCoasting), CSPFT_FLOAT},
|
||||
{"frictionTopSpeed", offsetof(VehicleDef, vehPhysDef.frictionTopSpeed), CSPFT_FLOAT},
|
||||
{"frictionSide", offsetof(VehicleDef, vehPhysDef.frictionSide), CSPFT_FLOAT},
|
||||
{"frictionSideRear", offsetof(VehicleDef, vehPhysDef.frictionSideRear), CSPFT_FLOAT},
|
||||
{"velocityDependentSlip", offsetof(VehicleDef, vehPhysDef.velocityDependentSlip), CSPFT_FLOAT},
|
||||
{"rollStability", offsetof(VehicleDef, vehPhysDef.rollStability), CSPFT_FLOAT},
|
||||
{"rollResistance", offsetof(VehicleDef, vehPhysDef.rollResistance), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"pitchResistance", offsetof(VehicleDef, vehPhysDef.pitchResistance), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"yawResistance", offsetof(VehicleDef, vehPhysDef.yawResistance), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"uprightStrengthPitch", offsetof(VehicleDef, vehPhysDef.uprightStrengthPitch), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"uprightStrengthRoll", offsetof(VehicleDef, vehPhysDef.uprightStrengthRoll), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"targetAirPitch", offsetof(VehicleDef, vehPhysDef.targetAirPitch), CSPFT_FLOAT},
|
||||
{"airYawTorque", offsetof(VehicleDef, vehPhysDef.airYawTorque), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"airPitchTorque", offsetof(VehicleDef, vehPhysDef.airPitchTorque), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"minimumMomentumForCollision", offsetof(VehicleDef, vehPhysDef.minimumMomentumForCollision), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"collisionLaunchForceScale", offsetof(VehicleDef, vehPhysDef.collisionLaunchForceScale), CSPFT_FLOAT},
|
||||
{"wreckedMassScale", offsetof(VehicleDef, vehPhysDef.wreckedMassScale), CSPFT_FLOAT},
|
||||
{"wreckedBodyFriction", offsetof(VehicleDef, vehPhysDef.wreckedBodyFriction), CSPFT_FLOAT},
|
||||
{"minimumJoltForNotify", offsetof(VehicleDef, vehPhysDef.minimumJoltForNotify), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"slipThresholdFront", offsetof(VehicleDef, vehPhysDef.slipThresholdFront), CSPFT_FLOAT},
|
||||
{"slipThresholdRear", offsetof(VehicleDef, vehPhysDef.slipThresholdRear), CSPFT_FLOAT},
|
||||
{"slipFricScaleFront", offsetof(VehicleDef, vehPhysDef.slipFricScaleFront), CSPFT_FLOAT},
|
||||
{"slipFricScaleRear", offsetof(VehicleDef, vehPhysDef.slipFricScaleRear), CSPFT_FLOAT},
|
||||
{"slipFricRateFront", offsetof(VehicleDef, vehPhysDef.slipFricRateFront), CSPFT_FLOAT},
|
||||
{"slipFricRateRear", offsetof(VehicleDef, vehPhysDef.slipFricRateRear), CSPFT_FLOAT},
|
||||
{"slipYawTorque", offsetof(VehicleDef, vehPhysDef.slipYawTorque), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"boostDuration", offsetof(VehicleDef, boostDuration), CSPFT_FLOAT},
|
||||
{"boostRechargeTime", offsetof(VehicleDef, boostRechargeTime), CSPFT_FLOAT},
|
||||
{"boostAcceleration", offsetof(VehicleDef, boostAcceleration), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"suspensionTravel", offsetof(VehicleDef, suspensionTravel), CSPFT_FLOAT},
|
||||
{"maxSteeringAngle", offsetof(VehicleDef, maxSteeringAngle), CSPFT_FLOAT},
|
||||
{"steeringLerp", offsetof(VehicleDef, steeringLerp), CSPFT_FLOAT},
|
||||
{"minSteeringScale", offsetof(VehicleDef, minSteeringScale), CSPFT_FLOAT},
|
||||
{"minSteeringSpeed", offsetof(VehicleDef, minSteeringSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"camLookEnabled", offsetof(VehicleDef, camLookEnabled), CSPFT_QBOOLEAN},
|
||||
{"camLerp", offsetof(VehicleDef, camLerp), CSPFT_FLOAT},
|
||||
{"camPitchInfluence", offsetof(VehicleDef, camPitchInfluence), CSPFT_FLOAT},
|
||||
{"camRollInfluence", offsetof(VehicleDef, camRollInfluence), CSPFT_FLOAT},
|
||||
{"camFovIncrease", offsetof(VehicleDef, camFovIncrease), CSPFT_FLOAT},
|
||||
{"camFovOffset", offsetof(VehicleDef, camFovOffset), CSPFT_FLOAT},
|
||||
{"camFovSpeed", offsetof(VehicleDef, camFovSpeed), CSPFT_FLOAT},
|
||||
{"turretWeaponName", offsetof(VehicleDef, turretWeaponName), CSPFT_STRING},
|
||||
{"turretHorizSpanLeft", offsetof(VehicleDef, turretHorizSpanLeft), CSPFT_FLOAT},
|
||||
{"turretHorizSpanRight", offsetof(VehicleDef, turretHorizSpanRight), CSPFT_FLOAT},
|
||||
{"turretVertSpanUp", offsetof(VehicleDef, turretVertSpanUp), CSPFT_FLOAT},
|
||||
{"turretVertSpanDown", offsetof(VehicleDef, turretVertSpanDown), CSPFT_FLOAT},
|
||||
{"turretRotRate", offsetof(VehicleDef, turretRotRate), CSPFT_FLOAT},
|
||||
{"turretSpinSnd", offsetof(VehicleDef, turretSpinSnd), CSPFT_SOUND},
|
||||
{"turretStopSnd", offsetof(VehicleDef, turretStopSnd), CSPFT_SOUND},
|
||||
{"trophyEnabled", offsetof(VehicleDef, trophyEnabled), CSPFT_QBOOLEAN},
|
||||
{"trophyRadius", offsetof(VehicleDef, trophyRadius), CSPFT_FLOAT},
|
||||
{"trophyInactiveRadius", offsetof(VehicleDef, trophyInactiveRadius), CSPFT_FLOAT},
|
||||
{"trophyAmmoCount", offsetof(VehicleDef, trophyAmmoCount), CSPFT_INT},
|
||||
{"trophyReloadTime", offsetof(VehicleDef, trophyReloadTime), CSPFT_FLOAT},
|
||||
{"trophyTags", offsetof(VehicleDef, trophyTags), VFT_TROPHY_TAGS},
|
||||
{"compassFriendlyIcon", offsetof(VehicleDef, compassFriendlyIcon), CSPFT_MATERIAL},
|
||||
{"compassEnemyIcon", offsetof(VehicleDef, compassEnemyIcon), CSPFT_MATERIAL},
|
||||
{"compassIconWidth", offsetof(VehicleDef, compassIconWidth), CSPFT_INT},
|
||||
{"compassIconHeight", offsetof(VehicleDef, compassIconHeight), CSPFT_INT},
|
||||
{"lowIdleSnd", offsetof(VehicleDef, idleLowSnd), CSPFT_SOUND},
|
||||
{"highIdleSnd", offsetof(VehicleDef, idleHighSnd), CSPFT_SOUND},
|
||||
{"lowEngineSnd", offsetof(VehicleDef, engineLowSnd), CSPFT_SOUND},
|
||||
{"highEngineSnd", offsetof(VehicleDef, engineHighSnd), CSPFT_SOUND},
|
||||
{"engineSndSpeed", offsetof(VehicleDef, engineSndSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"engineStartUpSnd", offsetof(VehicleDef, engineStartUpSnd), CSPFT_SOUND},
|
||||
{"engineStartUpLength", offsetof(VehicleDef, engineStartUpLength), CSPFT_MILLISECONDS},
|
||||
{"engineShutdownSnd", offsetof(VehicleDef, engineShutdownSnd), CSPFT_SOUND},
|
||||
{"engineIdleSnd", offsetof(VehicleDef, engineIdleSnd), CSPFT_SOUND},
|
||||
{"engineSustainSnd", offsetof(VehicleDef, engineSustainSnd), CSPFT_SOUND},
|
||||
{"engineRampUpSnd", offsetof(VehicleDef, engineRampUpSnd), CSPFT_SOUND},
|
||||
{"engineRampUpLength", offsetof(VehicleDef, engineRampUpLength), CSPFT_MILLISECONDS},
|
||||
{"engineRampDownSnd", offsetof(VehicleDef, engineRampDownSnd), CSPFT_SOUND},
|
||||
{"engineRampDownLength", offsetof(VehicleDef, engineRampDownLength), CSPFT_MILLISECONDS},
|
||||
{"suspensionSoftSnd", offsetof(VehicleDef, suspensionSoftSnd), CSPFT_SOUND},
|
||||
{"suspensionSoftCompression", offsetof(VehicleDef, suspensionSoftCompression), CSPFT_FLOAT},
|
||||
{"suspensionHardSnd", offsetof(VehicleDef, suspensionHardSnd), CSPFT_SOUND},
|
||||
{"suspensionHardCompression", offsetof(VehicleDef, suspensionHardCompression), CSPFT_FLOAT},
|
||||
{"collisionSnd", offsetof(VehicleDef, collisionSnd), CSPFT_SOUND},
|
||||
{"collisionBlendSpeed", offsetof(VehicleDef, collisionBlendSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"speedSnd", offsetof(VehicleDef, speedSnd), CSPFT_SOUND},
|
||||
{"speedSndBlendSpeed", offsetof(VehicleDef, speedSndBlendSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"surfaceSndPrefix", offsetof(VehicleDef, surfaceSndPrefix), CSPFT_STRING},
|
||||
{"surfaceSndBlendSpeed", offsetof(VehicleDef, surfaceSndBlendSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"slideVolume", offsetof(VehicleDef, slideVolume), CSPFT_FLOAT},
|
||||
{"slideBlendSpeed", offsetof(VehicleDef, slideBlendSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"inAirPitch", offsetof(VehicleDef, inAirPitch), CSPFT_FLOAT},
|
||||
inline cspField_t vehicle_fields[]{
|
||||
{"type", offsetof(VehicleDef, type), VFT_TYPE },
|
||||
{"useHintString", offsetof(VehicleDef, useHintString), CSPFT_STRING },
|
||||
{"health", offsetof(VehicleDef, health), CSPFT_INT },
|
||||
{"quadBarrel", offsetof(VehicleDef, quadBarrel), CSPFT_QBOOLEAN },
|
||||
{"texureScrollScale", offsetof(VehicleDef, texScrollScale), CSPFT_FLOAT },
|
||||
{"topSpeed", offsetof(VehicleDef, topSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"accel", offsetof(VehicleDef, accel), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"rotRate", offsetof(VehicleDef, rotRate), CSPFT_FLOAT },
|
||||
{"rotAccel", offsetof(VehicleDef, rotAccel), CSPFT_FLOAT },
|
||||
{"maxBodyPitch", offsetof(VehicleDef, maxBodyPitch), CSPFT_FLOAT },
|
||||
{"maxBodyRoll", offsetof(VehicleDef, maxBodyRoll), CSPFT_FLOAT },
|
||||
{"fakeBodyAccelPitch", offsetof(VehicleDef, fakeBodyAccelPitch), CSPFT_FLOAT },
|
||||
{"fakeBodyAccelRoll", offsetof(VehicleDef, fakeBodyAccelRoll), CSPFT_FLOAT },
|
||||
{"fakeBodyVelPitch", offsetof(VehicleDef, fakeBodyVelPitch), CSPFT_FLOAT },
|
||||
{"fakeBodyVelRoll", offsetof(VehicleDef, fakeBodyVelRoll), CSPFT_FLOAT },
|
||||
{"fakeBodySideVelPitch", offsetof(VehicleDef, fakeBodySideVelPitch), CSPFT_FLOAT },
|
||||
{"fakeBodyPitchStrength", offsetof(VehicleDef, fakeBodyPitchStrength), CSPFT_FLOAT },
|
||||
{"fakeBodyRollStrength", offsetof(VehicleDef, fakeBodyRollStrength), CSPFT_FLOAT },
|
||||
{"fakeBodyPitchDampening", offsetof(VehicleDef, fakeBodyPitchDampening), CSPFT_FLOAT },
|
||||
{"fakeBodyRollDampening", offsetof(VehicleDef, fakeBodyRollDampening), CSPFT_FLOAT },
|
||||
{"fakeBodyBoatRockingAmplitude", offsetof(VehicleDef, fakeBodyBoatRockingAmplitude), CSPFT_FLOAT },
|
||||
{"fakeBodyBoatRockingPeriod", offsetof(VehicleDef, fakeBodyBoatRockingPeriod), CSPFT_FLOAT },
|
||||
{"fakeBodyBoatRockingRotationPeriod", offsetof(VehicleDef, fakeBodyBoatRockingRotationPeriod), CSPFT_FLOAT },
|
||||
{"fakeBodyBoatRockingFadeoutSpeed", offsetof(VehicleDef, fakeBodyBoatRockingFadeoutSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"boatBouncingMinForce", offsetof(VehicleDef, boatBouncingMinForce), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"boatBouncingMaxForce", offsetof(VehicleDef, boatBouncingMaxForce), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"boatBouncingRate", offsetof(VehicleDef, boatBouncingRate), CSPFT_FLOAT },
|
||||
{"boatBouncingFadeinSpeed", offsetof(VehicleDef, boatBouncingFadeinSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"boatBouncingFadeoutSteeringAngle", offsetof(VehicleDef, boatBouncingFadeoutSteeringAngle), CSPFT_FLOAT },
|
||||
{"collisionDamage", offsetof(VehicleDef, collisionDamage), CSPFT_FLOAT },
|
||||
{"collisionSpeed", offsetof(VehicleDef, collisionSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"killcamZDist", offsetof(VehicleDef, killcamOffset[0]), CSPFT_FLOAT },
|
||||
{"killcamBackDist", offsetof(VehicleDef, killcamOffset[1]), CSPFT_FLOAT },
|
||||
{"killcamUpDist", offsetof(VehicleDef, killcamOffset[2]), CSPFT_FLOAT },
|
||||
{"playerProtected", offsetof(VehicleDef, playerProtected), CSPFT_QBOOLEAN },
|
||||
{"bulletDamage", offsetof(VehicleDef, bulletDamage), CSPFT_QBOOLEAN },
|
||||
{"armorPiercingDamage", offsetof(VehicleDef, armorPiercingDamage), CSPFT_QBOOLEAN },
|
||||
{"grenadeDamage", offsetof(VehicleDef, grenadeDamage), CSPFT_QBOOLEAN },
|
||||
{"projectileDamage", offsetof(VehicleDef, projectileDamage), CSPFT_QBOOLEAN },
|
||||
{"projectileSplashDamage", offsetof(VehicleDef, projectileSplashDamage), CSPFT_QBOOLEAN },
|
||||
{"heavyExplosiveDamage", offsetof(VehicleDef, heavyExplosiveDamage), CSPFT_QBOOLEAN },
|
||||
{"physicsEnabled", offsetof(VehicleDef, vehPhysDef.physicsEnabled), CSPFT_QBOOLEAN },
|
||||
{"physicsPreset", offsetof(VehicleDef, vehPhysDef.physPresetName), CSPFT_STRING },
|
||||
{"accelerationGraph", offsetof(VehicleDef, vehPhysDef.accelGraphName), CSPFT_STRING },
|
||||
{"steeringAxle", offsetof(VehicleDef, vehPhysDef.steeringAxle), VFT_AXLE_STEERING },
|
||||
{"powerAxle", offsetof(VehicleDef, vehPhysDef.powerAxle), VFT_AXLE_POWER },
|
||||
{"brakingAxle", offsetof(VehicleDef, vehPhysDef.brakingAxle), VFT_AXLE_BRAKING },
|
||||
{"reverseSpeed", offsetof(VehicleDef, vehPhysDef.reverseSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"maxVelocity", offsetof(VehicleDef, vehPhysDef.maxVelocity), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"maxPitch", offsetof(VehicleDef, vehPhysDef.maxPitch), CSPFT_FLOAT },
|
||||
{"maxRoll", offsetof(VehicleDef, vehPhysDef.maxRoll), CSPFT_FLOAT },
|
||||
{"suspensionTravelRear", offsetof(VehicleDef, vehPhysDef.suspensionTravelRear), CSPFT_FLOAT },
|
||||
{"suspensionStrengthFront", offsetof(VehicleDef, vehPhysDef.suspensionStrengthFront), CSPFT_FLOAT },
|
||||
{"suspensionDampingFront", offsetof(VehicleDef, vehPhysDef.suspensionDampingFront), CSPFT_FLOAT },
|
||||
{"suspensionStrengthRear", offsetof(VehicleDef, vehPhysDef.suspensionStrengthRear), CSPFT_FLOAT },
|
||||
{"suspensionDampingRear", offsetof(VehicleDef, vehPhysDef.suspensionDampingRear), CSPFT_FLOAT },
|
||||
{"frictionBraking", offsetof(VehicleDef, vehPhysDef.frictionBraking), CSPFT_FLOAT },
|
||||
{"frictionCoasting", offsetof(VehicleDef, vehPhysDef.frictionCoasting), CSPFT_FLOAT },
|
||||
{"frictionTopSpeed", offsetof(VehicleDef, vehPhysDef.frictionTopSpeed), CSPFT_FLOAT },
|
||||
{"frictionSide", offsetof(VehicleDef, vehPhysDef.frictionSide), CSPFT_FLOAT },
|
||||
{"frictionSideRear", offsetof(VehicleDef, vehPhysDef.frictionSideRear), CSPFT_FLOAT },
|
||||
{"velocityDependentSlip", offsetof(VehicleDef, vehPhysDef.velocityDependentSlip), CSPFT_FLOAT },
|
||||
{"rollStability", offsetof(VehicleDef, vehPhysDef.rollStability), CSPFT_FLOAT },
|
||||
{"rollResistance", offsetof(VehicleDef, vehPhysDef.rollResistance), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"pitchResistance", offsetof(VehicleDef, vehPhysDef.pitchResistance), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"yawResistance", offsetof(VehicleDef, vehPhysDef.yawResistance), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"uprightStrengthPitch", offsetof(VehicleDef, vehPhysDef.uprightStrengthPitch), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"uprightStrengthRoll", offsetof(VehicleDef, vehPhysDef.uprightStrengthRoll), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"targetAirPitch", offsetof(VehicleDef, vehPhysDef.targetAirPitch), CSPFT_FLOAT },
|
||||
{"airYawTorque", offsetof(VehicleDef, vehPhysDef.airYawTorque), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"airPitchTorque", offsetof(VehicleDef, vehPhysDef.airPitchTorque), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"minimumMomentumForCollision", offsetof(VehicleDef, vehPhysDef.minimumMomentumForCollision), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"collisionLaunchForceScale", offsetof(VehicleDef, vehPhysDef.collisionLaunchForceScale), CSPFT_FLOAT },
|
||||
{"wreckedMassScale", offsetof(VehicleDef, vehPhysDef.wreckedMassScale), CSPFT_FLOAT },
|
||||
{"wreckedBodyFriction", offsetof(VehicleDef, vehPhysDef.wreckedBodyFriction), CSPFT_FLOAT },
|
||||
{"minimumJoltForNotify", offsetof(VehicleDef, vehPhysDef.minimumJoltForNotify), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"slipThresholdFront", offsetof(VehicleDef, vehPhysDef.slipThresholdFront), CSPFT_FLOAT },
|
||||
{"slipThresholdRear", offsetof(VehicleDef, vehPhysDef.slipThresholdRear), CSPFT_FLOAT },
|
||||
{"slipFricScaleFront", offsetof(VehicleDef, vehPhysDef.slipFricScaleFront), CSPFT_FLOAT },
|
||||
{"slipFricScaleRear", offsetof(VehicleDef, vehPhysDef.slipFricScaleRear), CSPFT_FLOAT },
|
||||
{"slipFricRateFront", offsetof(VehicleDef, vehPhysDef.slipFricRateFront), CSPFT_FLOAT },
|
||||
{"slipFricRateRear", offsetof(VehicleDef, vehPhysDef.slipFricRateRear), CSPFT_FLOAT },
|
||||
{"slipYawTorque", offsetof(VehicleDef, vehPhysDef.slipYawTorque), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"boostDuration", offsetof(VehicleDef, boostDuration), CSPFT_FLOAT },
|
||||
{"boostRechargeTime", offsetof(VehicleDef, boostRechargeTime), CSPFT_FLOAT },
|
||||
{"boostAcceleration", offsetof(VehicleDef, boostAcceleration), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"suspensionTravel", offsetof(VehicleDef, suspensionTravel), CSPFT_FLOAT },
|
||||
{"maxSteeringAngle", offsetof(VehicleDef, maxSteeringAngle), CSPFT_FLOAT },
|
||||
{"steeringLerp", offsetof(VehicleDef, steeringLerp), CSPFT_FLOAT },
|
||||
{"minSteeringScale", offsetof(VehicleDef, minSteeringScale), CSPFT_FLOAT },
|
||||
{"minSteeringSpeed", offsetof(VehicleDef, minSteeringSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"camLookEnabled", offsetof(VehicleDef, camLookEnabled), CSPFT_QBOOLEAN },
|
||||
{"camLerp", offsetof(VehicleDef, camLerp), CSPFT_FLOAT },
|
||||
{"camPitchInfluence", offsetof(VehicleDef, camPitchInfluence), CSPFT_FLOAT },
|
||||
{"camRollInfluence", offsetof(VehicleDef, camRollInfluence), CSPFT_FLOAT },
|
||||
{"camFovIncrease", offsetof(VehicleDef, camFovIncrease), CSPFT_FLOAT },
|
||||
{"camFovOffset", offsetof(VehicleDef, camFovOffset), CSPFT_FLOAT },
|
||||
{"camFovSpeed", offsetof(VehicleDef, camFovSpeed), CSPFT_FLOAT },
|
||||
{"turretWeaponName", offsetof(VehicleDef, turretWeaponName), CSPFT_STRING },
|
||||
{"turretHorizSpanLeft", offsetof(VehicleDef, turretHorizSpanLeft), CSPFT_FLOAT },
|
||||
{"turretHorizSpanRight", offsetof(VehicleDef, turretHorizSpanRight), CSPFT_FLOAT },
|
||||
{"turretVertSpanUp", offsetof(VehicleDef, turretVertSpanUp), CSPFT_FLOAT },
|
||||
{"turretVertSpanDown", offsetof(VehicleDef, turretVertSpanDown), CSPFT_FLOAT },
|
||||
{"turretRotRate", offsetof(VehicleDef, turretRotRate), CSPFT_FLOAT },
|
||||
{"turretSpinSnd", offsetof(VehicleDef, turretSpinSnd), CSPFT_SOUND },
|
||||
{"turretStopSnd", offsetof(VehicleDef, turretStopSnd), CSPFT_SOUND },
|
||||
{"trophyEnabled", offsetof(VehicleDef, trophyEnabled), CSPFT_QBOOLEAN },
|
||||
{"trophyRadius", offsetof(VehicleDef, trophyRadius), CSPFT_FLOAT },
|
||||
{"trophyInactiveRadius", offsetof(VehicleDef, trophyInactiveRadius), CSPFT_FLOAT },
|
||||
{"trophyAmmoCount", offsetof(VehicleDef, trophyAmmoCount), CSPFT_INT },
|
||||
{"trophyReloadTime", offsetof(VehicleDef, trophyReloadTime), CSPFT_FLOAT },
|
||||
{"trophyTags", offsetof(VehicleDef, trophyTags), VFT_TROPHY_TAGS },
|
||||
{"compassFriendlyIcon", offsetof(VehicleDef, compassFriendlyIcon), CSPFT_MATERIAL },
|
||||
{"compassEnemyIcon", offsetof(VehicleDef, compassEnemyIcon), CSPFT_MATERIAL },
|
||||
{"compassIconWidth", offsetof(VehicleDef, compassIconWidth), CSPFT_INT },
|
||||
{"compassIconHeight", offsetof(VehicleDef, compassIconHeight), CSPFT_INT },
|
||||
{"lowIdleSnd", offsetof(VehicleDef, idleLowSnd), CSPFT_SOUND },
|
||||
{"highIdleSnd", offsetof(VehicleDef, idleHighSnd), CSPFT_SOUND },
|
||||
{"lowEngineSnd", offsetof(VehicleDef, engineLowSnd), CSPFT_SOUND },
|
||||
{"highEngineSnd", offsetof(VehicleDef, engineHighSnd), CSPFT_SOUND },
|
||||
{"engineSndSpeed", offsetof(VehicleDef, engineSndSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"engineStartUpSnd", offsetof(VehicleDef, engineStartUpSnd), CSPFT_SOUND },
|
||||
{"engineStartUpLength", offsetof(VehicleDef, engineStartUpLength), CSPFT_MILLISECONDS },
|
||||
{"engineShutdownSnd", offsetof(VehicleDef, engineShutdownSnd), CSPFT_SOUND },
|
||||
{"engineIdleSnd", offsetof(VehicleDef, engineIdleSnd), CSPFT_SOUND },
|
||||
{"engineSustainSnd", offsetof(VehicleDef, engineSustainSnd), CSPFT_SOUND },
|
||||
{"engineRampUpSnd", offsetof(VehicleDef, engineRampUpSnd), CSPFT_SOUND },
|
||||
{"engineRampUpLength", offsetof(VehicleDef, engineRampUpLength), CSPFT_MILLISECONDS },
|
||||
{"engineRampDownSnd", offsetof(VehicleDef, engineRampDownSnd), CSPFT_SOUND },
|
||||
{"engineRampDownLength", offsetof(VehicleDef, engineRampDownLength), CSPFT_MILLISECONDS },
|
||||
{"suspensionSoftSnd", offsetof(VehicleDef, suspensionSoftSnd), CSPFT_SOUND },
|
||||
{"suspensionSoftCompression", offsetof(VehicleDef, suspensionSoftCompression), CSPFT_FLOAT },
|
||||
{"suspensionHardSnd", offsetof(VehicleDef, suspensionHardSnd), CSPFT_SOUND },
|
||||
{"suspensionHardCompression", offsetof(VehicleDef, suspensionHardCompression), CSPFT_FLOAT },
|
||||
{"collisionSnd", offsetof(VehicleDef, collisionSnd), CSPFT_SOUND },
|
||||
{"collisionBlendSpeed", offsetof(VehicleDef, collisionBlendSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"speedSnd", offsetof(VehicleDef, speedSnd), CSPFT_SOUND },
|
||||
{"speedSndBlendSpeed", offsetof(VehicleDef, speedSndBlendSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"surfaceSndPrefix", offsetof(VehicleDef, surfaceSndPrefix), CSPFT_STRING },
|
||||
{"surfaceSndBlendSpeed", offsetof(VehicleDef, surfaceSndBlendSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"slideVolume", offsetof(VehicleDef, slideVolume), CSPFT_FLOAT },
|
||||
{"slideBlendSpeed", offsetof(VehicleDef, slideBlendSpeed), CSPFT_MPH_TO_INCHES_PER_SEC},
|
||||
{"inAirPitch", offsetof(VehicleDef, inAirPitch), CSPFT_FLOAT },
|
||||
};
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -4,112 +4,81 @@
|
||||
|
||||
namespace IW4
|
||||
{
|
||||
inline infoParm_t infoParms[]
|
||||
{
|
||||
{"bark", 0x0, 0x100000, 0x0, 0x0},
|
||||
{"brick", 0x0, 0x200000, 0x0, 0x0},
|
||||
{"carpet", 0x0, 0x300000, 0x0, 0x0},
|
||||
{"cloth", 0x0, 0x400000, 0x0, 0x0},
|
||||
{"concrete", 0x0, 0x500000, 0x0, 0x0},
|
||||
{"dirt", 0x0, 0x600000, 0x0, 0x0},
|
||||
{"flesh", 0x0, 0x700000, 0x0, 0x0},
|
||||
{"foliage", 0x1, 0x800000, 0x2, 0x0},
|
||||
{"glass", 0x1, 0x900000, 0x10, 0x0},
|
||||
{"grass", 0x0, 0xa00000, 0x0, 0x0},
|
||||
{"gravel", 0x0, 0xb00000, 0x0, 0x0},
|
||||
{"ice", 0x0, 0xc00000, 0x0, 0x0},
|
||||
{"metal", 0x0, 0xd00000, 0x0, 0x0},
|
||||
{"mud", 0x0, 0xe00000, 0x0, 0x0},
|
||||
{"paper", 0x0, 0xf00000, 0x0, 0x0},
|
||||
{"plaster", 0x0, 0x1000000, 0x0, 0x0},
|
||||
{"rock", 0x0, 0x1100000, 0x0, 0x0},
|
||||
{"sand", 0x0, 0x1200000, 0x0, 0x0},
|
||||
{"snow", 0x0, 0x1300000, 0x0, 0x0},
|
||||
{"water", 0x1, 0x1400000, 0x20, 0x0},
|
||||
{"wood", 0x0, 0x1500000, 0x0, 0x0},
|
||||
{"asphalt", 0x0, 0x1600000, 0x0, 0x0},
|
||||
{"ceramic", 0x0, 0x1700000, 0x0, 0x0},
|
||||
{"plastic", 0x0, 0x1800000, 0x0, 0x0},
|
||||
{"rubber", 0x0, 0x1900000, 0x0, 0x0},
|
||||
{"cushion", 0x0, 0x1a00000, 0x0, 0x0},
|
||||
{"fruit", 0x0, 0x1b00000, 0x0, 0x0},
|
||||
{"paintedmetal", 0x0, 0x1c00000, 0x0, 0x0},
|
||||
{"riotshield", 0x0, 0x1d00000, 0x0, 0x0},
|
||||
{"slush", 0x0, 0x1e00000, 0x0, 0x0},
|
||||
{"opaqueglass", 0x0, 0x900000, 0x0, 0x0},
|
||||
{"clipmissile", 0x1, 0x0, 0x80, 0x0},
|
||||
{"ai_nosight", 0x1, 0x0, 0x1000, 0x0},
|
||||
{"clipshot", 0x1, 0x0, 0x2000, 0x0},
|
||||
{"playerclip", 0x1, 0x0, 0x10000, 0x0},
|
||||
{"monsterclip", 0x1, 0x0, 0x20000, 0x0},
|
||||
{"aiclipallowdeath", 0x1, 0x0, 0x4, 0x0},
|
||||
{"vehicleclip", 0x1, 0x0, 0x200, 0x0},
|
||||
{"itemclip", 0x1, 0x0, 0x400, 0x0},
|
||||
{"nodrop", 0x1, 0x0, 0x80000000, 0x0},
|
||||
{"nonsolid", 0x1, 0x4000, 0x0, 0x0},
|
||||
{"detail", 0x0, 0x0, 0x8000000, 0x0},
|
||||
{"structural", 0x0, 0x0, 0x10000000, 0x0},
|
||||
{"portal", 0x1, 0x80000000, 0x0, 0x0},
|
||||
{"canshootclip", 0x0, 0x0, 0x40, 0x0},
|
||||
{"origin", 0x1, 0x0, 0x0, 0x4},
|
||||
{"sky", 0x0, 0x4, 0x800, 0x0},
|
||||
{"nocastshadow", 0x0, 0x40000, 0x0, 0x0},
|
||||
{"physicsGeom", 0x0, 0x0, 0x0, 0x400},
|
||||
{"lightPortal", 0x0, 0x0, 0x0, 0x2000},
|
||||
{"outdoorBounds", 0x0, 0x0, 0x0, 0x8000},
|
||||
{"slick", 0x0, 0x2, 0x0, 0x0},
|
||||
{"noimpact", 0x0, 0x10, 0x0, 0x0},
|
||||
{"nomarks", 0x0, 0x20, 0x0, 0x0},
|
||||
{"nopenetrate", 0x0, 0x100, 0x0, 0x0},
|
||||
{"ladder", 0x0, 0x8, 0x0, 0x0},
|
||||
{"nodamage", 0x0, 0x1, 0x0, 0x0},
|
||||
{"mantleOn", 0x0, 0x2000000, 0x1000000, 0x0},
|
||||
{"mantleOver", 0x0, 0x4000000, 0x1000000, 0x0},
|
||||
{"stairs", 0x0, 0x200, 0x0, 0x0},
|
||||
{"soft", 0x0, 0x1000, 0x0, 0x0},
|
||||
{"nosteps", 0x0, 0x2000, 0x0, 0x0},
|
||||
{"nodraw", 0x0, 0x80, 0x0, 0x0},
|
||||
{"nolightmap", 0x0, 0x400, 0x0, 0x0},
|
||||
{"nodlight", 0x0, 0x20000, 0x0, 0x0}
|
||||
inline infoParm_t infoParms[]{
|
||||
{"bark", 0x0, 0x100000, 0x0, 0x0 },
|
||||
{"brick", 0x0, 0x200000, 0x0, 0x0 },
|
||||
{"carpet", 0x0, 0x300000, 0x0, 0x0 },
|
||||
{"cloth", 0x0, 0x400000, 0x0, 0x0 },
|
||||
{"concrete", 0x0, 0x500000, 0x0, 0x0 },
|
||||
{"dirt", 0x0, 0x600000, 0x0, 0x0 },
|
||||
{"flesh", 0x0, 0x700000, 0x0, 0x0 },
|
||||
{"foliage", 0x1, 0x800000, 0x2, 0x0 },
|
||||
{"glass", 0x1, 0x900000, 0x10, 0x0 },
|
||||
{"grass", 0x0, 0xa00000, 0x0, 0x0 },
|
||||
{"gravel", 0x0, 0xb00000, 0x0, 0x0 },
|
||||
{"ice", 0x0, 0xc00000, 0x0, 0x0 },
|
||||
{"metal", 0x0, 0xd00000, 0x0, 0x0 },
|
||||
{"mud", 0x0, 0xe00000, 0x0, 0x0 },
|
||||
{"paper", 0x0, 0xf00000, 0x0, 0x0 },
|
||||
{"plaster", 0x0, 0x1000000, 0x0, 0x0 },
|
||||
{"rock", 0x0, 0x1100000, 0x0, 0x0 },
|
||||
{"sand", 0x0, 0x1200000, 0x0, 0x0 },
|
||||
{"snow", 0x0, 0x1300000, 0x0, 0x0 },
|
||||
{"water", 0x1, 0x1400000, 0x20, 0x0 },
|
||||
{"wood", 0x0, 0x1500000, 0x0, 0x0 },
|
||||
{"asphalt", 0x0, 0x1600000, 0x0, 0x0 },
|
||||
{"ceramic", 0x0, 0x1700000, 0x0, 0x0 },
|
||||
{"plastic", 0x0, 0x1800000, 0x0, 0x0 },
|
||||
{"rubber", 0x0, 0x1900000, 0x0, 0x0 },
|
||||
{"cushion", 0x0, 0x1a00000, 0x0, 0x0 },
|
||||
{"fruit", 0x0, 0x1b00000, 0x0, 0x0 },
|
||||
{"paintedmetal", 0x0, 0x1c00000, 0x0, 0x0 },
|
||||
{"riotshield", 0x0, 0x1d00000, 0x0, 0x0 },
|
||||
{"slush", 0x0, 0x1e00000, 0x0, 0x0 },
|
||||
{"opaqueglass", 0x0, 0x900000, 0x0, 0x0 },
|
||||
{"clipmissile", 0x1, 0x0, 0x80, 0x0 },
|
||||
{"ai_nosight", 0x1, 0x0, 0x1000, 0x0 },
|
||||
{"clipshot", 0x1, 0x0, 0x2000, 0x0 },
|
||||
{"playerclip", 0x1, 0x0, 0x10000, 0x0 },
|
||||
{"monsterclip", 0x1, 0x0, 0x20000, 0x0 },
|
||||
{"aiclipallowdeath", 0x1, 0x0, 0x4, 0x0 },
|
||||
{"vehicleclip", 0x1, 0x0, 0x200, 0x0 },
|
||||
{"itemclip", 0x1, 0x0, 0x400, 0x0 },
|
||||
{"nodrop", 0x1, 0x0, 0x80000000, 0x0 },
|
||||
{"nonsolid", 0x1, 0x4000, 0x0, 0x0 },
|
||||
{"detail", 0x0, 0x0, 0x8000000, 0x0 },
|
||||
{"structural", 0x0, 0x0, 0x10000000, 0x0 },
|
||||
{"portal", 0x1, 0x80000000, 0x0, 0x0 },
|
||||
{"canshootclip", 0x0, 0x0, 0x40, 0x0 },
|
||||
{"origin", 0x1, 0x0, 0x0, 0x4 },
|
||||
{"sky", 0x0, 0x4, 0x800, 0x0 },
|
||||
{"nocastshadow", 0x0, 0x40000, 0x0, 0x0 },
|
||||
{"physicsGeom", 0x0, 0x0, 0x0, 0x400 },
|
||||
{"lightPortal", 0x0, 0x0, 0x0, 0x2000},
|
||||
{"outdoorBounds", 0x0, 0x0, 0x0, 0x8000},
|
||||
{"slick", 0x0, 0x2, 0x0, 0x0 },
|
||||
{"noimpact", 0x0, 0x10, 0x0, 0x0 },
|
||||
{"nomarks", 0x0, 0x20, 0x0, 0x0 },
|
||||
{"nopenetrate", 0x0, 0x100, 0x0, 0x0 },
|
||||
{"ladder", 0x0, 0x8, 0x0, 0x0 },
|
||||
{"nodamage", 0x0, 0x1, 0x0, 0x0 },
|
||||
{"mantleOn", 0x0, 0x2000000, 0x1000000, 0x0 },
|
||||
{"mantleOver", 0x0, 0x4000000, 0x1000000, 0x0 },
|
||||
{"stairs", 0x0, 0x200, 0x0, 0x0 },
|
||||
{"soft", 0x0, 0x1000, 0x0, 0x0 },
|
||||
{"nosteps", 0x0, 0x2000, 0x0, 0x0 },
|
||||
{"nodraw", 0x0, 0x80, 0x0, 0x0 },
|
||||
{"nolightmap", 0x0, 0x400, 0x0, 0x0 },
|
||||
{"nodlight", 0x0, 0x20000, 0x0, 0x0 },
|
||||
};
|
||||
|
||||
inline const char* surfaceTypeNames[]
|
||||
{
|
||||
"default",
|
||||
"bark",
|
||||
"brick",
|
||||
"carpet",
|
||||
"cloth",
|
||||
"concrete",
|
||||
"dirt",
|
||||
"flesh",
|
||||
"foliage",
|
||||
"glass",
|
||||
"grass",
|
||||
"gravel",
|
||||
"ice",
|
||||
"metal",
|
||||
"mud",
|
||||
"paper",
|
||||
"plaster",
|
||||
"rock",
|
||||
"sand",
|
||||
"snow",
|
||||
"water",
|
||||
"wood",
|
||||
"asphalt",
|
||||
"ceramic",
|
||||
"plastic",
|
||||
"rubber",
|
||||
"cushion",
|
||||
"fruit",
|
||||
"paintedmetal",
|
||||
"riotshield",
|
||||
"slush"
|
||||
inline const char* surfaceTypeNames[]{
|
||||
"default", "bark", "brick", "carpet", "cloth", "concrete", "dirt", "flesh", "foliage", "glass", "grass",
|
||||
"gravel", "ice", "metal", "mud", "paper", "plaster", "rock", "sand", "snow", "water", "wood",
|
||||
"asphalt", "ceramic", "plastic", "rubber", "cushion", "fruit", "paintedmetal", "riotshield", "slush",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(surfaceTypeNames)> == SURF_TYPE_NUM);
|
||||
|
||||
|
||||
enum class BlendFunc_e
|
||||
{
|
||||
UNKNOWN,
|
||||
@ -131,15 +100,14 @@ namespace IW4
|
||||
constexpr auto GDT_BLEND_FUNC_MULTIPLY = "Multiply";
|
||||
constexpr auto GDT_BLEND_FUNC_SCREEN_ADD = "Screen Add";
|
||||
|
||||
inline const char* GdtBlendFuncNames[]
|
||||
{
|
||||
inline const char* GdtBlendFuncNames[]{
|
||||
GDT_BLEND_FUNC_UNKNOWN,
|
||||
GDT_BLEND_FUNC_CUSTOM,
|
||||
GDT_BLEND_FUNC_REPLACE,
|
||||
GDT_BLEND_FUNC_BLEND,
|
||||
GDT_BLEND_FUNC_ADD,
|
||||
GDT_BLEND_FUNC_MULTIPLY,
|
||||
GDT_BLEND_FUNC_SCREEN_ADD
|
||||
GDT_BLEND_FUNC_SCREEN_ADD,
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtBlendFuncNames)> == static_cast<size_t>(BlendFunc_e::COUNT));
|
||||
|
||||
@ -164,15 +132,14 @@ namespace IW4
|
||||
constexpr auto GDT_BLEND_OP_MIN = "Min";
|
||||
constexpr auto GDT_BLEND_OP_MAX = "Max";
|
||||
|
||||
inline const char* GdtBlendOpNames[]
|
||||
{
|
||||
inline const char* GdtBlendOpNames[]{
|
||||
GDT_BLEND_OP_UNKNOWN,
|
||||
GDT_BLEND_OP_DISABLE,
|
||||
GDT_BLEND_OP_ADD,
|
||||
GDT_BLEND_OP_SUBTRACT,
|
||||
GDT_BLEND_OP_REV_SUBTRACT,
|
||||
GDT_BLEND_OP_MIN,
|
||||
GDT_BLEND_OP_MAX
|
||||
GDT_BLEND_OP_MAX,
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtBlendOpNames)> == static_cast<size_t>(BlendOp_e::COUNT));
|
||||
|
||||
@ -194,8 +161,7 @@ namespace IW4
|
||||
COUNT
|
||||
};
|
||||
|
||||
inline const char* GdtCustomBlendFuncNames[]
|
||||
{
|
||||
inline const char* GdtCustomBlendFuncNames[]{
|
||||
"",
|
||||
"Disable",
|
||||
"Zero",
|
||||
@ -207,7 +173,7 @@ namespace IW4
|
||||
"DestAlpha",
|
||||
"InvDestAlpha",
|
||||
"DestColor",
|
||||
"InvDestColor"
|
||||
"InvDestColor",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtCustomBlendFuncNames)> == static_cast<size_t>(CustomBlendFunc_e::COUNT));
|
||||
|
||||
@ -228,13 +194,12 @@ namespace IW4
|
||||
constexpr auto GDT_ALPHA_TEST_LT128 = "LT128";
|
||||
constexpr auto GDT_ALPHA_TEST_GE128 = "GE128";
|
||||
|
||||
inline const char* GdtAlphaTestNames[]
|
||||
{
|
||||
inline const char* GdtAlphaTestNames[]{
|
||||
GDT_ALPHA_TEST_UNKNOWN,
|
||||
GDT_ALPHA_TEST_ALWAYS,
|
||||
GDT_ALPHA_TEST_GT0,
|
||||
GDT_ALPHA_TEST_LT128,
|
||||
GDT_ALPHA_TEST_GE128
|
||||
GDT_ALPHA_TEST_GE128,
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtAlphaTestNames)> == static_cast<size_t>(AlphaTest_e::COUNT));
|
||||
|
||||
@ -250,14 +215,13 @@ namespace IW4
|
||||
COUNT
|
||||
};
|
||||
|
||||
inline const char* GdtDepthTestNames[]
|
||||
{
|
||||
inline const char* GdtDepthTestNames[]{
|
||||
"",
|
||||
"LessEqual*",
|
||||
"Less",
|
||||
"Equal",
|
||||
"Always",
|
||||
"Disable"
|
||||
"Disable",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtDepthTestNames)> == static_cast<size_t>(DepthTest_e::COUNT));
|
||||
|
||||
@ -270,19 +234,17 @@ namespace IW4
|
||||
COUNT
|
||||
};
|
||||
|
||||
inline const char* GdtStateBitsEnabledStatusNames[]
|
||||
{
|
||||
inline const char* GdtStateBitsEnabledStatusNames[]{
|
||||
"",
|
||||
"Enable",
|
||||
"Disable"
|
||||
"Disable",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtStateBitsEnabledStatusNames)> == static_cast<size_t>(StateBitsEnabledStatus_e::COUNT));
|
||||
|
||||
inline const char* GdtStateBitsOnOffStatusNames[]
|
||||
{
|
||||
inline const char* GdtStateBitsOnOffStatusNames[]{
|
||||
"",
|
||||
"On",
|
||||
"Off"
|
||||
"Off",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtStateBitsOnOffStatusNames)> == static_cast<size_t>(StateBitsEnabledStatus_e::COUNT));
|
||||
|
||||
@ -296,12 +258,11 @@ namespace IW4
|
||||
COUNT
|
||||
};
|
||||
|
||||
inline const char* GdtCullFaceNames[]
|
||||
{
|
||||
inline const char* GdtCullFaceNames[]{
|
||||
"",
|
||||
"None",
|
||||
"Back*",
|
||||
"Front"
|
||||
"Front",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtCullFaceNames)> == static_cast<size_t>(CullFace_e::COUNT));
|
||||
|
||||
@ -316,13 +277,12 @@ namespace IW4
|
||||
COUNT
|
||||
};
|
||||
|
||||
inline const char* GdtPolygonOffsetNames[]
|
||||
{
|
||||
inline const char* GdtPolygonOffsetNames[]{
|
||||
"",
|
||||
"0",
|
||||
"1",
|
||||
"2",
|
||||
"shadowMap"
|
||||
"shadowMap",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtPolygonOffsetNames)> == static_cast<size_t>(PolygonOffset_e::COUNT));
|
||||
|
||||
@ -342,12 +302,11 @@ namespace IW4
|
||||
COUNT
|
||||
};
|
||||
|
||||
inline const char* GdtStencilModeNames[]
|
||||
{
|
||||
inline const char* GdtStencilModeNames[]{
|
||||
"",
|
||||
"Disable",
|
||||
"One-sided",
|
||||
"Two-sided"
|
||||
"Two-sided",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtStencilModeNames)> == static_cast<size_t>(StencilMode_e::COUNT));
|
||||
|
||||
@ -366,8 +325,7 @@ namespace IW4
|
||||
COUNT
|
||||
};
|
||||
|
||||
inline const char* GdtStencilFuncNames[]
|
||||
{
|
||||
inline const char* GdtStencilFuncNames[]{
|
||||
"",
|
||||
"Never",
|
||||
"Less",
|
||||
@ -376,7 +334,7 @@ namespace IW4
|
||||
"Greater",
|
||||
"NotEqual",
|
||||
"GreaterEqual",
|
||||
"Always"
|
||||
"Always",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtStencilFuncNames)> == static_cast<size_t>(StencilFunc_e::COUNT));
|
||||
|
||||
@ -395,8 +353,7 @@ namespace IW4
|
||||
COUNT
|
||||
};
|
||||
|
||||
inline const char* GdtStencilOpNames[]
|
||||
{
|
||||
inline const char* GdtStencilOpNames[]{
|
||||
"",
|
||||
"Keep",
|
||||
"Zero",
|
||||
@ -405,7 +362,7 @@ namespace IW4
|
||||
"DecrSat",
|
||||
"Invert",
|
||||
"Incr",
|
||||
"Decr"
|
||||
"Decr",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtStencilOpNames)> == static_cast<size_t>(StencilOp_e::COUNT));
|
||||
|
||||
@ -420,13 +377,12 @@ namespace IW4
|
||||
COUNT
|
||||
};
|
||||
|
||||
inline const char* GdtTileModeNames[]
|
||||
{
|
||||
inline const char* GdtTileModeNames[]{
|
||||
"",
|
||||
"tile both*",
|
||||
"tile horizontal",
|
||||
"tile vertical",
|
||||
"no tile"
|
||||
"no tile",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtTileModeNames)> == static_cast<size_t>(TileMode_e::COUNT));
|
||||
|
||||
@ -443,15 +399,14 @@ namespace IW4
|
||||
COUNT
|
||||
};
|
||||
|
||||
static const char* GdtSamplerFilterNames[]
|
||||
{
|
||||
static const char* GdtSamplerFilterNames[]{
|
||||
"",
|
||||
"mip standard (2x bilinear)*",
|
||||
"mip expensive (4x bilinear)",
|
||||
"mip more expensive (2x trilinear)",
|
||||
"mip most expensive (4x trilinear)",
|
||||
"nomip nearest",
|
||||
"nomip bilinear"
|
||||
"nomip bilinear",
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtSamplerFilterNames)> == static_cast<size_t>(GdtFilter_e::COUNT));
|
||||
|
||||
@ -496,8 +451,7 @@ namespace IW4
|
||||
constexpr auto GDT_MATERIAL_TYPE_WORLD_PHONG = "world phong";
|
||||
constexpr auto GDT_MATERIAL_TYPE_WORLD_UNLIT = "world unlit";
|
||||
|
||||
inline const char* GdtMaterialTypeNames[]
|
||||
{
|
||||
inline const char* GdtMaterialTypeNames[]{
|
||||
GDT_MATERIAL_TYPE_UNKNOWN,
|
||||
GDT_MATERIAL_TYPE_2D,
|
||||
GDT_MATERIAL_TYPE_CUSTOM,
|
||||
@ -514,7 +468,7 @@ namespace IW4
|
||||
GDT_MATERIAL_TYPE_UNLIT,
|
||||
GDT_MATERIAL_TYPE_WATER,
|
||||
GDT_MATERIAL_TYPE_WORLD_PHONG,
|
||||
GDT_MATERIAL_TYPE_WORLD_UNLIT
|
||||
GDT_MATERIAL_TYPE_WORLD_UNLIT,
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtMaterialTypeNames)> == static_cast<size_t>(MATERIAL_TYPE_COUNT));
|
||||
|
||||
@ -541,62 +495,61 @@ namespace IW4
|
||||
constexpr auto GDT_SORTKEY_AFTER_EFFECT_TOP = "after effects - top";
|
||||
constexpr auto GDT_SORTKEY_VIEWMODEL_EFFECT = "viewmodel effect";
|
||||
|
||||
inline const char* SortKeyNames[]
|
||||
{
|
||||
GDT_SORTKEY_OPAQUE_AMBIENT, // 0
|
||||
GDT_SORTKEY_OPAQUE, // 1
|
||||
GDT_SORTKEY_SKY, // 2
|
||||
GDT_SORTKEY_SKYBOX, // 3
|
||||
nullptr, // ? 4
|
||||
nullptr, // ? 5
|
||||
GDT_SORTKEY_DECAL_BOTTOM_1, // 6
|
||||
GDT_SORTKEY_DECAL_BOTTOM_2, // 7
|
||||
GDT_SORTKEY_DECAL_BOTTOM_3, // 8
|
||||
GDT_SORTKEY_DECAL_STATIC, // 9
|
||||
GDT_SORTKEY_DECAL_MIDDLE_1, // 10
|
||||
GDT_SORTKEY_DECAL_MIDDLE_2, // 11
|
||||
GDT_SORTKEY_DECAL_MIDDLE_3, // 12
|
||||
inline const char* SortKeyNames[]{
|
||||
GDT_SORTKEY_OPAQUE_AMBIENT, // 0
|
||||
GDT_SORTKEY_OPAQUE, // 1
|
||||
GDT_SORTKEY_SKY, // 2
|
||||
GDT_SORTKEY_SKYBOX, // 3
|
||||
nullptr, // ? 4
|
||||
nullptr, // ? 5
|
||||
GDT_SORTKEY_DECAL_BOTTOM_1, // 6
|
||||
GDT_SORTKEY_DECAL_BOTTOM_2, // 7
|
||||
GDT_SORTKEY_DECAL_BOTTOM_3, // 8
|
||||
GDT_SORTKEY_DECAL_STATIC, // 9
|
||||
GDT_SORTKEY_DECAL_MIDDLE_1, // 10
|
||||
GDT_SORTKEY_DECAL_MIDDLE_2, // 11
|
||||
GDT_SORTKEY_DECAL_MIDDLE_3, // 12
|
||||
GDT_SORTKEY_DECAL_WEAPON_IMPACT, // 13
|
||||
nullptr, // ? 14
|
||||
nullptr, // ? 15
|
||||
nullptr, // ? 16
|
||||
nullptr, // ? 17
|
||||
nullptr, // ? 18
|
||||
nullptr, // ? 19
|
||||
nullptr, // ? 20
|
||||
nullptr, // ? 21
|
||||
nullptr, // - 22
|
||||
nullptr, // - 23
|
||||
GDT_SORTKEY_WINDOW_INSIDE, // 24
|
||||
GDT_SORTKEY_WINDOW_OUTSIDE, // 25
|
||||
nullptr, // ? 26
|
||||
nullptr, // ? 27
|
||||
nullptr, // ? 28
|
||||
nullptr, // ? 29
|
||||
nullptr, // ? 30
|
||||
nullptr, // ? 31
|
||||
nullptr, // ? 32
|
||||
nullptr, // ? 33
|
||||
nullptr, // ? 34
|
||||
nullptr, // ? 35
|
||||
nullptr, // ? 36
|
||||
nullptr, // ? 37
|
||||
nullptr, // ? 38
|
||||
nullptr, // ? 39
|
||||
nullptr, // ? 40
|
||||
nullptr, // ? 41
|
||||
nullptr, // ? 42
|
||||
GDT_SORTKEY_DISTORTION, // 43
|
||||
nullptr, // ? 44
|
||||
nullptr, // ? 45
|
||||
nullptr, // - 46
|
||||
GDT_SORTKEY_BLEND_ADDITIVE, // 47
|
||||
GDT_SORTKEY_EFFECT_AUTO_SORT, // 48
|
||||
nullptr, // ? 14
|
||||
nullptr, // ? 15
|
||||
nullptr, // ? 16
|
||||
nullptr, // ? 17
|
||||
nullptr, // ? 18
|
||||
nullptr, // ? 19
|
||||
nullptr, // ? 20
|
||||
nullptr, // ? 21
|
||||
nullptr, // - 22
|
||||
nullptr, // - 23
|
||||
GDT_SORTKEY_WINDOW_INSIDE, // 24
|
||||
GDT_SORTKEY_WINDOW_OUTSIDE, // 25
|
||||
nullptr, // ? 26
|
||||
nullptr, // ? 27
|
||||
nullptr, // ? 28
|
||||
nullptr, // ? 29
|
||||
nullptr, // ? 30
|
||||
nullptr, // ? 31
|
||||
nullptr, // ? 32
|
||||
nullptr, // ? 33
|
||||
nullptr, // ? 34
|
||||
nullptr, // ? 35
|
||||
nullptr, // ? 36
|
||||
nullptr, // ? 37
|
||||
nullptr, // ? 38
|
||||
nullptr, // ? 39
|
||||
nullptr, // ? 40
|
||||
nullptr, // ? 41
|
||||
nullptr, // ? 42
|
||||
GDT_SORTKEY_DISTORTION, // 43
|
||||
nullptr, // ? 44
|
||||
nullptr, // ? 45
|
||||
nullptr, // - 46
|
||||
GDT_SORTKEY_BLEND_ADDITIVE, // 47
|
||||
GDT_SORTKEY_EFFECT_AUTO_SORT, // 48
|
||||
GDT_SORTKEY_AFTER_EFFECT_BOTTOM, // 49
|
||||
GDT_SORTKEY_AFTER_EFFECT_MIDDLE, // 50
|
||||
GDT_SORTKEY_AFTER_EFFECT_TOP, // 51
|
||||
nullptr, // - 52
|
||||
GDT_SORTKEY_VIEWMODEL_EFFECT, // 53
|
||||
GDT_SORTKEY_AFTER_EFFECT_TOP, // 51
|
||||
nullptr, // - 52
|
||||
GDT_SORTKEY_VIEWMODEL_EFFECT, // 53
|
||||
};
|
||||
static_assert(std::extent_v<decltype(SortKeyNames)> == static_cast<size_t>(SORTKEY_MAX));
|
||||
|
||||
@ -628,8 +581,7 @@ namespace IW4
|
||||
constexpr auto GDT_CUSTOM_MATERIAL_TYPE_SHADOWOVERLAY = "mtl_shadowoverlay";
|
||||
constexpr auto GDT_CUSTOM_MATERIAL_TYPE_SPLATTER = "mtl_splatter";
|
||||
|
||||
inline const char* GdtCustomMaterialTypeNames[]
|
||||
{
|
||||
inline const char* GdtCustomMaterialTypeNames[]{
|
||||
GDT_CUSTOM_MATERIAL_TYPE_NONE,
|
||||
GDT_CUSTOM_MATERIAL_TYPE_CUSTOM,
|
||||
GDT_CUSTOM_MATERIAL_TYPE_PHONG_FLAG,
|
||||
@ -638,7 +590,7 @@ namespace IW4
|
||||
GDT_CUSTOM_MATERIAL_TYPE_REFLEXSIGHT,
|
||||
GDT_CUSTOM_MATERIAL_TYPE_SHADOWCLEAR,
|
||||
GDT_CUSTOM_MATERIAL_TYPE_SHADOWOVERLAY,
|
||||
GDT_CUSTOM_MATERIAL_TYPE_SPLATTER
|
||||
GDT_CUSTOM_MATERIAL_TYPE_SPLATTER,
|
||||
};
|
||||
static_assert(std::extent_v<decltype(GdtCustomMaterialTypeNames)> == static_cast<size_t>(CUSTOM_MATERIAL_TYPE_COUNT));
|
||||
}
|
||||
} // namespace IW4
|
||||
|
@ -4,8 +4,7 @@
|
||||
|
||||
namespace IW4
|
||||
{
|
||||
inline const char* g_expFunctionNames[]
|
||||
{
|
||||
inline const char* g_expFunctionNames[]{
|
||||
"NOOP",
|
||||
")",
|
||||
"*",
|
||||
@ -194,26 +193,25 @@ namespace IW4
|
||||
"coopready",
|
||||
};
|
||||
|
||||
inline const ItemExpressionTargetBinding floatExpressionTargetBindings[ITEM_FLOATEXP_TGT_COUNT]
|
||||
{
|
||||
{ITEM_FLOATEXP_TGT_RECT_X, "rect", "x"},
|
||||
{ITEM_FLOATEXP_TGT_RECT_Y, "rect", "y"},
|
||||
{ITEM_FLOATEXP_TGT_RECT_W, "rect", "w"},
|
||||
{ITEM_FLOATEXP_TGT_RECT_H, "rect", "h"},
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_R, "forecolor", "r"},
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_G, "forecolor", "g"},
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_B, "forecolor", "b"},
|
||||
inline const ItemExpressionTargetBinding floatExpressionTargetBindings[ITEM_FLOATEXP_TGT_COUNT]{
|
||||
{ITEM_FLOATEXP_TGT_RECT_X, "rect", "x" },
|
||||
{ITEM_FLOATEXP_TGT_RECT_Y, "rect", "y" },
|
||||
{ITEM_FLOATEXP_TGT_RECT_W, "rect", "w" },
|
||||
{ITEM_FLOATEXP_TGT_RECT_H, "rect", "h" },
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_R, "forecolor", "r" },
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_G, "forecolor", "g" },
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_B, "forecolor", "b" },
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_RGB, "forecolor", "rgb"},
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_A, "forecolor", "a"},
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_R, "glowcolor", "r"},
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_G, "glowcolor", "g"},
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_B, "glowcolor", "b"},
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_A, "forecolor", "a" },
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_R, "glowcolor", "r" },
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_G, "glowcolor", "g" },
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_B, "glowcolor", "b" },
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_RGB, "glowcolor", "rgb"},
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_A, "glowcolor", "a"},
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_R, "backcolor", "r"},
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_G, "backcolor", "g"},
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_B, "backcolor", "b"},
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_A, "glowcolor", "a" },
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_R, "backcolor", "r" },
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_G, "backcolor", "g" },
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_B, "backcolor", "b" },
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_RGB, "backcolor", "rgb"},
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_A, "backcolor", "a"},
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_A, "backcolor", "a" },
|
||||
};
|
||||
}
|
||||
} // namespace IW4
|
||||
|
@ -18,4 +18,4 @@ namespace IW4
|
||||
static constexpr const char* GDF_FILENAME_VEHICLE = "vehicle.gdf";
|
||||
static constexpr const char* GDF_FILENAME_WEAPON = "weapon.gdf";
|
||||
};
|
||||
}
|
||||
} // namespace IW4
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -4,8 +4,7 @@
|
||||
|
||||
namespace IW5
|
||||
{
|
||||
inline const char* g_expFunctionNames[]
|
||||
{
|
||||
inline const char* g_expFunctionNames[]{
|
||||
"NOOP",
|
||||
")",
|
||||
"*",
|
||||
@ -361,26 +360,25 @@ namespace IW5
|
||||
"doWeHaveMissingOwnedContent",
|
||||
};
|
||||
|
||||
inline const ItemExpressionTargetBinding floatExpressionTargetBindings[ITEM_FLOATEXP_TGT_COUNT]
|
||||
{
|
||||
{ITEM_FLOATEXP_TGT_RECT_X, "rect", "x"},
|
||||
{ITEM_FLOATEXP_TGT_RECT_Y, "rect", "y"},
|
||||
{ITEM_FLOATEXP_TGT_RECT_W, "rect", "w"},
|
||||
{ITEM_FLOATEXP_TGT_RECT_H, "rect", "h"},
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_R, "forecolor", "r"},
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_G, "forecolor", "g"},
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_B, "forecolor", "b"},
|
||||
inline const ItemExpressionTargetBinding floatExpressionTargetBindings[ITEM_FLOATEXP_TGT_COUNT]{
|
||||
{ITEM_FLOATEXP_TGT_RECT_X, "rect", "x" },
|
||||
{ITEM_FLOATEXP_TGT_RECT_Y, "rect", "y" },
|
||||
{ITEM_FLOATEXP_TGT_RECT_W, "rect", "w" },
|
||||
{ITEM_FLOATEXP_TGT_RECT_H, "rect", "h" },
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_R, "forecolor", "r" },
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_G, "forecolor", "g" },
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_B, "forecolor", "b" },
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_RGB, "forecolor", "rgb"},
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_A, "forecolor", "a"},
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_R, "glowcolor", "r"},
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_G, "glowcolor", "g"},
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_B, "glowcolor", "b"},
|
||||
{ITEM_FLOATEXP_TGT_FORECOLOR_A, "forecolor", "a" },
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_R, "glowcolor", "r" },
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_G, "glowcolor", "g" },
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_B, "glowcolor", "b" },
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_RGB, "glowcolor", "rgb"},
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_A, "glowcolor", "a"},
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_R, "backcolor", "r"},
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_G, "backcolor", "g"},
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_B, "backcolor", "b"},
|
||||
{ITEM_FLOATEXP_TGT_GLOWCOLOR_A, "glowcolor", "a" },
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_R, "backcolor", "r" },
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_G, "backcolor", "g" },
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_B, "backcolor", "b" },
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_RGB, "backcolor", "rgb"},
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_A, "backcolor", "a"},
|
||||
{ITEM_FLOATEXP_TGT_BACKCOLOR_A, "backcolor", "a" },
|
||||
};
|
||||
}
|
||||
} // namespace IW5
|
||||
|
@ -17,4 +17,4 @@ namespace IW5
|
||||
static constexpr const char* GDF_FILENAME_VEHICLE = "vehicle.gdf";
|
||||
static constexpr const char* GDF_FILENAME_WEAPON = "weapon.gdf";
|
||||
};
|
||||
}
|
||||
} // namespace IW5
|
||||
|
@ -2,8 +2,7 @@
|
||||
|
||||
namespace T6
|
||||
{
|
||||
inline const char* szWeapTypeNames[]
|
||||
{
|
||||
inline const char* szWeapTypeNames[]{
|
||||
"bullet",
|
||||
"grenade",
|
||||
"projectile",
|
||||
@ -12,11 +11,10 @@ namespace T6
|
||||
"bomb",
|
||||
"mine",
|
||||
"melee",
|
||||
"riotshield"
|
||||
"riotshield",
|
||||
};
|
||||
|
||||
inline const char* szWeapClassNames[]
|
||||
{
|
||||
inline const char* szWeapClassNames[]{
|
||||
"rifle",
|
||||
"mg",
|
||||
"smg",
|
||||
@ -30,47 +28,42 @@ namespace T6
|
||||
"item",
|
||||
"melee",
|
||||
"Killstreak Alt Stored Weapon",
|
||||
"pistol spread"
|
||||
"pistol spread",
|
||||
};
|
||||
|
||||
inline const char* szWeapOverlayReticleNames[]
|
||||
{
|
||||
inline const char* szWeapOverlayReticleNames[]{
|
||||
"none",
|
||||
"crosshair"
|
||||
"crosshair",
|
||||
};
|
||||
|
||||
inline const char* szWeapInventoryTypeNames[]
|
||||
{
|
||||
inline const char* szWeapInventoryTypeNames[]{
|
||||
"primary",
|
||||
"offhand",
|
||||
"item",
|
||||
"altmode",
|
||||
"melee",
|
||||
"dwlefthand"
|
||||
"dwlefthand",
|
||||
};
|
||||
|
||||
inline const char* szWeapClipTypeNames[]
|
||||
{
|
||||
inline const char* szWeapClipTypeNames[]{
|
||||
"bottom",
|
||||
"top",
|
||||
"left",
|
||||
"dp28",
|
||||
"ptrs",
|
||||
"lmg"
|
||||
"lmg",
|
||||
};
|
||||
|
||||
inline const char* barrelTypeNames[]
|
||||
{
|
||||
inline const char* barrelTypeNames[]{
|
||||
"Single",
|
||||
"Dual Barrel",
|
||||
"Dual Barrel Alternate",
|
||||
"Quad Barrel",
|
||||
"Quad Barrel Alternate",
|
||||
"Quad Barrel Double Alternate"
|
||||
"Quad Barrel Double Alternate",
|
||||
};
|
||||
|
||||
inline const char* impactTypeNames[]
|
||||
{
|
||||
inline const char* impactTypeNames[]{
|
||||
"none",
|
||||
"bullet_small",
|
||||
"bullet_large",
|
||||
@ -86,18 +79,16 @@ namespace T6
|
||||
"mortar_shell",
|
||||
"tank_shell",
|
||||
"bolt",
|
||||
"blade"
|
||||
"blade",
|
||||
};
|
||||
|
||||
inline const char* szWeapStanceNames[]
|
||||
{
|
||||
inline const char* szWeapStanceNames[]{
|
||||
"stand",
|
||||
"duck",
|
||||
"prone"
|
||||
"prone",
|
||||
};
|
||||
|
||||
inline const char* szProjectileExplosionNames[]
|
||||
{
|
||||
inline const char* szProjectileExplosionNames[]{
|
||||
"grenade",
|
||||
"rocket",
|
||||
"flashbang",
|
||||
@ -108,71 +99,40 @@ namespace T6
|
||||
"fire",
|
||||
"napalmblob",
|
||||
"bolt",
|
||||
"shrapnel span"
|
||||
"shrapnel span",
|
||||
};
|
||||
|
||||
inline const char* offhandClassNames[]
|
||||
{
|
||||
inline const char* offhandClassNames[]{
|
||||
"None",
|
||||
"Frag Grenade",
|
||||
"Smoke Grenade",
|
||||
"Flash Grenade",
|
||||
"Gear",
|
||||
"Supply Drop Marker"
|
||||
"Supply Drop Marker",
|
||||
};
|
||||
|
||||
inline const char* offhandSlotNames[]
|
||||
{
|
||||
inline const char* offhandSlotNames[]{
|
||||
"None",
|
||||
"Lethal grenade",
|
||||
"Tactical grenade",
|
||||
"Equipment",
|
||||
"Specific use"
|
||||
"Specific use",
|
||||
};
|
||||
|
||||
inline const char* playerAnimTypeNames[]
|
||||
{
|
||||
"none",
|
||||
"default",
|
||||
"other",
|
||||
"sniper",
|
||||
"m203",
|
||||
"hold",
|
||||
"briefcase",
|
||||
"reviver",
|
||||
"radio",
|
||||
"dualwield",
|
||||
"remotecontrol",
|
||||
"crossbow",
|
||||
"minigun",
|
||||
"beltfed",
|
||||
"g11",
|
||||
"rearclip",
|
||||
"handleclip",
|
||||
"rearclipsniper",
|
||||
"ballisticknife",
|
||||
"singleknife",
|
||||
"nopump",
|
||||
"hatchet",
|
||||
"grimreaper",
|
||||
"zipline",
|
||||
"riotshield",
|
||||
"tablet",
|
||||
"turned",
|
||||
"screecher",
|
||||
"staff"
|
||||
inline const char* playerAnimTypeNames[]{
|
||||
"none", "default", "other", "sniper", "m203", "hold", "briefcase", "reviver", "radio", "dualwield",
|
||||
"remotecontrol", "crossbow", "minigun", "beltfed", "g11", "rearclip", "handleclip", "rearclipsniper", "ballisticknife", "singleknife",
|
||||
"nopump", "hatchet", "grimreaper", "zipline", "riotshield", "tablet", "turned", "screecher", "staff",
|
||||
};
|
||||
|
||||
inline const char* activeReticleNames[]
|
||||
{
|
||||
inline const char* activeReticleNames[]{
|
||||
"None",
|
||||
"Pip-On-A-Stick",
|
||||
"Bouncing Diamond",
|
||||
"Missile Lock"
|
||||
"Missile Lock",
|
||||
};
|
||||
|
||||
inline const char* guidedMissileNames[]
|
||||
{
|
||||
inline const char* guidedMissileNames[]{
|
||||
"None",
|
||||
"Sidewinder",
|
||||
"Hellfire",
|
||||
@ -181,87 +141,53 @@ namespace T6
|
||||
"WireGuided",
|
||||
"TVGuided",
|
||||
"Drone",
|
||||
"HeatSeeking"
|
||||
"HeatSeeking",
|
||||
};
|
||||
|
||||
inline const char* stickinessNames[]
|
||||
{
|
||||
inline const char* stickinessNames[]{
|
||||
"Don't stick",
|
||||
"Stick to all",
|
||||
"Stick to all, except ai and clients",
|
||||
"Stick to ground",
|
||||
"Stick to ground, maintain yaw",
|
||||
"Stick to flesh"
|
||||
"Stick to flesh",
|
||||
};
|
||||
|
||||
inline const char* rotateTypeNames[]
|
||||
{
|
||||
inline const char* rotateTypeNames[]{
|
||||
"Rotate both axis, grenade style",
|
||||
"Rotate one axis, blade style",
|
||||
"Rotate like a cylinder"
|
||||
"Rotate like a cylinder",
|
||||
};
|
||||
|
||||
inline const char* overlayInterfaceNames[]
|
||||
{
|
||||
inline const char* overlayInterfaceNames[]{
|
||||
"None",
|
||||
"Javelin",
|
||||
"Turret Scope"
|
||||
"Turret Scope",
|
||||
};
|
||||
|
||||
inline const char* ammoCounterClipNames[]
|
||||
{
|
||||
inline const char* ammoCounterClipNames[]{
|
||||
"None",
|
||||
"Magazine",
|
||||
"ShortMagazine",
|
||||
"Shotgun",
|
||||
"Rocket",
|
||||
"Beltfed",
|
||||
"AltWeapon"
|
||||
"AltWeapon",
|
||||
};
|
||||
|
||||
inline const char* weapIconRatioNames[]
|
||||
{
|
||||
inline const char* weapIconRatioNames[]{
|
||||
"1:1",
|
||||
"2:1",
|
||||
"4:1"
|
||||
"4:1",
|
||||
};
|
||||
|
||||
inline const char* szAttachmentTypeNames[]
|
||||
{
|
||||
"none",
|
||||
"acog",
|
||||
"dualclip",
|
||||
"dualoptic",
|
||||
"dw",
|
||||
"extbarrel",
|
||||
"extclip",
|
||||
"extramags",
|
||||
"fastads",
|
||||
"fastreload",
|
||||
"fmj",
|
||||
"gl",
|
||||
"grip",
|
||||
"holo",
|
||||
"ir",
|
||||
"is",
|
||||
"longbreath",
|
||||
"mk",
|
||||
"mms",
|
||||
"rangefinder",
|
||||
"reflex",
|
||||
"rf",
|
||||
"sf",
|
||||
"silencer",
|
||||
"stackfire",
|
||||
"stalker",
|
||||
"steadyaim",
|
||||
"swayreduc",
|
||||
"tacknife",
|
||||
"vzoom"
|
||||
inline const char* szAttachmentTypeNames[]{
|
||||
"none", "acog", "dualclip", "dualoptic", "dw", "extbarrel", "extclip", "extramags", "fastads", "fastreload",
|
||||
"fmj", "gl", "grip", "holo", "ir", "is", "longbreath", "mk", "mms", "rangefinder",
|
||||
"reflex", "rf", "sf", "silencer", "stackfire", "stalker", "steadyaim", "swayreduc", "tacknife", "vzoom",
|
||||
};
|
||||
|
||||
inline const char* szWeapFireTypeNames[]
|
||||
{
|
||||
inline const char* szWeapFireTypeNames[]{
|
||||
"Full Auto",
|
||||
"Single Shot",
|
||||
"2-Round Burst",
|
||||
@ -271,19 +197,17 @@ namespace T6
|
||||
"Stacked Fire",
|
||||
"Minigun",
|
||||
"Charge Shot",
|
||||
"Jetgun"
|
||||
"Jetgun",
|
||||
};
|
||||
|
||||
inline const char* penetrateTypeNames[]
|
||||
{
|
||||
inline const char* penetrateTypeNames[]{
|
||||
"none",
|
||||
"small",
|
||||
"medium",
|
||||
"large"
|
||||
"large",
|
||||
};
|
||||
|
||||
inline const char* s_constraintTypeNames[]
|
||||
{
|
||||
inline const char* s_constraintTypeNames[]{
|
||||
"none",
|
||||
"point",
|
||||
"distance",
|
||||
@ -296,8 +220,7 @@ namespace T6
|
||||
"light",
|
||||
};
|
||||
|
||||
inline const char* s_vehicleClassNames[]
|
||||
{
|
||||
inline const char* s_vehicleClassNames[]{
|
||||
"4 wheel",
|
||||
"motorcycle",
|
||||
"tank",
|
||||
@ -307,8 +230,7 @@ namespace T6
|
||||
"helicopter",
|
||||
};
|
||||
|
||||
inline const char* s_vehicleCameraModes[]
|
||||
{
|
||||
inline const char* s_vehicleCameraModes[]{
|
||||
"first",
|
||||
"chase",
|
||||
"view",
|
||||
@ -319,52 +241,20 @@ namespace T6
|
||||
"vtol",
|
||||
};
|
||||
|
||||
inline const char* s_tractionTypeNames[]
|
||||
{
|
||||
inline const char* s_tractionTypeNames[]{
|
||||
"TRACTION_TYPE_FRONT",
|
||||
"TRACTION_TYPE_BACK",
|
||||
"TRACTION_TYPE_ALL_WD",
|
||||
};
|
||||
|
||||
inline const char* tracerTypeNames[]
|
||||
{
|
||||
inline const char* tracerTypeNames[]{
|
||||
"Laser",
|
||||
"Smoke"
|
||||
"Smoke",
|
||||
};
|
||||
|
||||
inline const char* bounceSoundSuffixes[]
|
||||
{
|
||||
"_default",
|
||||
"_bark",
|
||||
"_brick",
|
||||
"_carpet",
|
||||
"_cloth",
|
||||
"_concrete",
|
||||
"_dirt",
|
||||
"_flesh",
|
||||
"_foliage",
|
||||
"_glass",
|
||||
"_grass",
|
||||
"_gravel",
|
||||
"_ice",
|
||||
"_metal",
|
||||
"_mud",
|
||||
"_paper",
|
||||
"_plaster",
|
||||
"_rock",
|
||||
"_sand",
|
||||
"_snow",
|
||||
"_water",
|
||||
"_wood",
|
||||
"_asphalt",
|
||||
"_ceramic",
|
||||
"_plastic",
|
||||
"_rubber",
|
||||
"_cushion",
|
||||
"_fruit",
|
||||
"_paintedmetal",
|
||||
"_player",
|
||||
"_tallgrass",
|
||||
"_riotshield"
|
||||
inline const char* bounceSoundSuffixes[]{
|
||||
"_default", "_bark", "_brick", "_carpet", "_cloth", "_concrete", "_dirt", "_flesh", "_foliage", "_glass", "_grass",
|
||||
"_gravel", "_ice", "_metal", "_mud", "_paper", "_plaster", "_rock", "_sand", "_snow", "_water", "_wood",
|
||||
"_asphalt", "_ceramic", "_plastic", "_rubber", "_cushion", "_fruit", "_paintedmetal", "_player", "_tallgrass", "_riotshield",
|
||||
};
|
||||
}
|
||||
} // namespace T6
|
||||
|
@ -3,83 +3,82 @@
|
||||
|
||||
namespace T6
|
||||
{
|
||||
inline cspField_t phys_constraints_fields[]
|
||||
{
|
||||
{"c1_type", offsetof(PhysConstraints, data[0].type), CFT_TYPE},
|
||||
{"c1_bone1_name", offsetof(PhysConstraints, data[0].target_bone1), CSPFT_STRING},
|
||||
{"c1_bone2_name", offsetof(PhysConstraints, data[0].target_bone2), CSPFT_STRING},
|
||||
{"c1_offsetX", offsetof(PhysConstraints, data[0].offset.x), CSPFT_FLOAT},
|
||||
{"c1_offsetY", offsetof(PhysConstraints, data[0].offset.y), CSPFT_FLOAT},
|
||||
{"c1_offsetZ", offsetof(PhysConstraints, data[0].offset.z), CSPFT_FLOAT},
|
||||
{"c1_timeout", offsetof(PhysConstraints, data[0].timeout), CSPFT_INT},
|
||||
{"c1_min_health", offsetof(PhysConstraints, data[0].min_health), CSPFT_INT},
|
||||
{"c1_max_health", offsetof(PhysConstraints, data[0].max_health), CSPFT_INT},
|
||||
{"c1_damp", offsetof(PhysConstraints, data[0].damp), CSPFT_FLOAT},
|
||||
{"c1_power", offsetof(PhysConstraints, data[0].power), CSPFT_FLOAT},
|
||||
{"c1_spin_scale", offsetof(PhysConstraints, data[0].spin_scale), CSPFT_FLOAT},
|
||||
{"c1_shakescalex", offsetof(PhysConstraints, data[0].scale.x), CSPFT_FLOAT},
|
||||
{"c1_shakescaley", offsetof(PhysConstraints, data[0].scale.y), CSPFT_FLOAT},
|
||||
{"c1_shakescalez", offsetof(PhysConstraints, data[0].scale.z), CSPFT_FLOAT},
|
||||
{"c1_min_angle", offsetof(PhysConstraints, data[0].minAngle), CSPFT_FLOAT},
|
||||
{"c1_max_angle", offsetof(PhysConstraints, data[0].maxAngle), CSPFT_FLOAT},
|
||||
{"c1_yaw", offsetof(PhysConstraints, data[0].scale.y), CSPFT_FLOAT},
|
||||
{"c1_pitch", offsetof(PhysConstraints, data[0].scale.x), CSPFT_FLOAT},
|
||||
{"c2_type", offsetof(PhysConstraints, data[1].type), CFT_TYPE},
|
||||
{"c2_bone1_name", offsetof(PhysConstraints, data[1].target_bone1), CSPFT_STRING},
|
||||
{"c2_bone2_name", offsetof(PhysConstraints, data[1].target_bone2), CSPFT_STRING},
|
||||
{"c2_offsetX", offsetof(PhysConstraints, data[1].offset.x), CSPFT_FLOAT},
|
||||
{"c2_offsetY", offsetof(PhysConstraints, data[1].offset.y), CSPFT_FLOAT},
|
||||
{"c2_offsetZ", offsetof(PhysConstraints, data[1].offset.z), CSPFT_FLOAT},
|
||||
{"c2_timeout", offsetof(PhysConstraints, data[1].timeout), CSPFT_INT},
|
||||
{"c2_min_health", offsetof(PhysConstraints, data[1].min_health), CSPFT_INT},
|
||||
{"c2_max_health", offsetof(PhysConstraints, data[1].max_health), CSPFT_INT},
|
||||
{"c2_damp", offsetof(PhysConstraints, data[1].damp), CSPFT_FLOAT},
|
||||
{"c2_power", offsetof(PhysConstraints, data[1].power), CSPFT_FLOAT},
|
||||
{"c2_spin_scale", offsetof(PhysConstraints, data[1].spin_scale), CSPFT_FLOAT},
|
||||
{"c2_shakescalex", offsetof(PhysConstraints, data[1].scale.x), CSPFT_FLOAT},
|
||||
{"c2_shakescaley", offsetof(PhysConstraints, data[1].scale.y), CSPFT_FLOAT},
|
||||
{"c2_shakescalez", offsetof(PhysConstraints, data[1].scale.z), CSPFT_FLOAT},
|
||||
{"c2_min_angle", offsetof(PhysConstraints, data[1].minAngle), CSPFT_FLOAT},
|
||||
{"c2_max_angle", offsetof(PhysConstraints, data[1].maxAngle), CSPFT_FLOAT},
|
||||
{"c2_yaw", offsetof(PhysConstraints, data[1].scale.y), CSPFT_FLOAT},
|
||||
{"c2_pitch", offsetof(PhysConstraints, data[1].scale.x), CSPFT_FLOAT},
|
||||
{"c3_type", offsetof(PhysConstraints, data[2].type), CFT_TYPE},
|
||||
{"c3_bone1_name", offsetof(PhysConstraints, data[2].target_bone1), CSPFT_STRING},
|
||||
{"c3_bone2_name", offsetof(PhysConstraints, data[2].target_bone2), CSPFT_STRING},
|
||||
{"c3_offsetX", offsetof(PhysConstraints, data[2].offset.x), CSPFT_FLOAT},
|
||||
{"c3_offsetY", offsetof(PhysConstraints, data[2].offset.y), CSPFT_FLOAT},
|
||||
{"c3_offsetZ", offsetof(PhysConstraints, data[2].offset.z), CSPFT_FLOAT},
|
||||
{"c3_timeout", offsetof(PhysConstraints, data[2].timeout), CSPFT_INT},
|
||||
{"c3_min_health", offsetof(PhysConstraints, data[2].min_health), CSPFT_INT},
|
||||
{"c3_max_health", offsetof(PhysConstraints, data[2].max_health), CSPFT_INT},
|
||||
{"c3_damp", offsetof(PhysConstraints, data[2].damp), CSPFT_FLOAT},
|
||||
{"c3_power", offsetof(PhysConstraints, data[2].power), CSPFT_FLOAT},
|
||||
{"c3_spin_scale", offsetof(PhysConstraints, data[2].spin_scale), CSPFT_FLOAT},
|
||||
{"c3_shakescalex", offsetof(PhysConstraints, data[2].scale.x), CSPFT_FLOAT},
|
||||
{"c3_shakescaley", offsetof(PhysConstraints, data[2].scale.y), CSPFT_FLOAT},
|
||||
{"c3_shakescalez", offsetof(PhysConstraints, data[2].scale.z), CSPFT_FLOAT},
|
||||
{"c3_min_angle", offsetof(PhysConstraints, data[2].minAngle), CSPFT_FLOAT},
|
||||
{"c3_max_angle", offsetof(PhysConstraints, data[2].maxAngle), CSPFT_FLOAT},
|
||||
{"c3_yaw", offsetof(PhysConstraints, data[2].scale.y), CSPFT_FLOAT},
|
||||
{"c3_pitch", offsetof(PhysConstraints, data[2].scale.x), CSPFT_FLOAT},
|
||||
{"c4_type", offsetof(PhysConstraints, data[3].type), CFT_TYPE},
|
||||
{"c4_bone1_name", offsetof(PhysConstraints, data[3].target_bone1), CSPFT_STRING},
|
||||
{"c4_bone2_name", offsetof(PhysConstraints, data[3].target_bone2), CSPFT_STRING},
|
||||
{"c4_offsetX", offsetof(PhysConstraints, data[3].offset.x), CSPFT_FLOAT},
|
||||
{"c4_offsetY", offsetof(PhysConstraints, data[3].offset.y), CSPFT_FLOAT},
|
||||
{"c4_offsetZ", offsetof(PhysConstraints, data[3].offset.z), CSPFT_FLOAT},
|
||||
{"c4_timeout", offsetof(PhysConstraints, data[3].timeout), CSPFT_INT},
|
||||
{"c4_min_health", offsetof(PhysConstraints, data[3].min_health), CSPFT_INT},
|
||||
{"c4_max_health", offsetof(PhysConstraints, data[3].max_health), CSPFT_INT},
|
||||
{"c4_damp", offsetof(PhysConstraints, data[3].damp), CSPFT_FLOAT},
|
||||
{"c4_power", offsetof(PhysConstraints, data[3].power), CSPFT_FLOAT},
|
||||
{"c4_spin_scale", offsetof(PhysConstraints, data[3].spin_scale), CSPFT_FLOAT},
|
||||
{"c4_shakescalex", offsetof(PhysConstraints, data[3].scale.x), CSPFT_FLOAT},
|
||||
{"c4_shakescaley", offsetof(PhysConstraints, data[3].scale.y), CSPFT_FLOAT},
|
||||
{"c4_shakescalez", offsetof(PhysConstraints, data[3].scale.z), CSPFT_FLOAT},
|
||||
{"c4_min_angle", offsetof(PhysConstraints, data[3].minAngle), CSPFT_FLOAT},
|
||||
{"c4_max_angle", offsetof(PhysConstraints, data[3].maxAngle), CSPFT_FLOAT},
|
||||
{"c4_yaw", offsetof(PhysConstraints, data[3].scale.y), CSPFT_FLOAT},
|
||||
{"c4_pitch", offsetof(PhysConstraints, data[3].scale.x), CSPFT_FLOAT},
|
||||
inline cspField_t phys_constraints_fields[]{
|
||||
{"c1_type", offsetof(PhysConstraints, data[0].type), CFT_TYPE },
|
||||
{"c1_bone1_name", offsetof(PhysConstraints, data[0].target_bone1), CSPFT_STRING},
|
||||
{"c1_bone2_name", offsetof(PhysConstraints, data[0].target_bone2), CSPFT_STRING},
|
||||
{"c1_offsetX", offsetof(PhysConstraints, data[0].offset.x), CSPFT_FLOAT },
|
||||
{"c1_offsetY", offsetof(PhysConstraints, data[0].offset.y), CSPFT_FLOAT },
|
||||
{"c1_offsetZ", offsetof(PhysConstraints, data[0].offset.z), CSPFT_FLOAT },
|
||||
{"c1_timeout", offsetof(PhysConstraints, data[0].timeout), CSPFT_INT },
|
||||
{"c1_min_health", offsetof(PhysConstraints, data[0].min_health), CSPFT_INT },
|
||||
{"c1_max_health", offsetof(PhysConstraints, data[0].max_health), CSPFT_INT },
|
||||
{"c1_damp", offsetof(PhysConstraints, data[0].damp), CSPFT_FLOAT },
|
||||
{"c1_power", offsetof(PhysConstraints, data[0].power), CSPFT_FLOAT },
|
||||
{"c1_spin_scale", offsetof(PhysConstraints, data[0].spin_scale), CSPFT_FLOAT },
|
||||
{"c1_shakescalex", offsetof(PhysConstraints, data[0].scale.x), CSPFT_FLOAT },
|
||||
{"c1_shakescaley", offsetof(PhysConstraints, data[0].scale.y), CSPFT_FLOAT },
|
||||
{"c1_shakescalez", offsetof(PhysConstraints, data[0].scale.z), CSPFT_FLOAT },
|
||||
{"c1_min_angle", offsetof(PhysConstraints, data[0].minAngle), CSPFT_FLOAT },
|
||||
{"c1_max_angle", offsetof(PhysConstraints, data[0].maxAngle), CSPFT_FLOAT },
|
||||
{"c1_yaw", offsetof(PhysConstraints, data[0].scale.y), CSPFT_FLOAT },
|
||||
{"c1_pitch", offsetof(PhysConstraints, data[0].scale.x), CSPFT_FLOAT },
|
||||
{"c2_type", offsetof(PhysConstraints, data[1].type), CFT_TYPE },
|
||||
{"c2_bone1_name", offsetof(PhysConstraints, data[1].target_bone1), CSPFT_STRING},
|
||||
{"c2_bone2_name", offsetof(PhysConstraints, data[1].target_bone2), CSPFT_STRING},
|
||||
{"c2_offsetX", offsetof(PhysConstraints, data[1].offset.x), CSPFT_FLOAT },
|
||||
{"c2_offsetY", offsetof(PhysConstraints, data[1].offset.y), CSPFT_FLOAT },
|
||||
{"c2_offsetZ", offsetof(PhysConstraints, data[1].offset.z), CSPFT_FLOAT },
|
||||
{"c2_timeout", offsetof(PhysConstraints, data[1].timeout), CSPFT_INT },
|
||||
{"c2_min_health", offsetof(PhysConstraints, data[1].min_health), CSPFT_INT },
|
||||
{"c2_max_health", offsetof(PhysConstraints, data[1].max_health), CSPFT_INT },
|
||||
{"c2_damp", offsetof(PhysConstraints, data[1].damp), CSPFT_FLOAT },
|
||||
{"c2_power", offsetof(PhysConstraints, data[1].power), CSPFT_FLOAT },
|
||||
{"c2_spin_scale", offsetof(PhysConstraints, data[1].spin_scale), CSPFT_FLOAT },
|
||||
{"c2_shakescalex", offsetof(PhysConstraints, data[1].scale.x), CSPFT_FLOAT },
|
||||
{"c2_shakescaley", offsetof(PhysConstraints, data[1].scale.y), CSPFT_FLOAT },
|
||||
{"c2_shakescalez", offsetof(PhysConstraints, data[1].scale.z), CSPFT_FLOAT },
|
||||
{"c2_min_angle", offsetof(PhysConstraints, data[1].minAngle), CSPFT_FLOAT },
|
||||
{"c2_max_angle", offsetof(PhysConstraints, data[1].maxAngle), CSPFT_FLOAT },
|
||||
{"c2_yaw", offsetof(PhysConstraints, data[1].scale.y), CSPFT_FLOAT },
|
||||
{"c2_pitch", offsetof(PhysConstraints, data[1].scale.x), CSPFT_FLOAT },
|
||||
{"c3_type", offsetof(PhysConstraints, data[2].type), CFT_TYPE },
|
||||
{"c3_bone1_name", offsetof(PhysConstraints, data[2].target_bone1), CSPFT_STRING},
|
||||
{"c3_bone2_name", offsetof(PhysConstraints, data[2].target_bone2), CSPFT_STRING},
|
||||
{"c3_offsetX", offsetof(PhysConstraints, data[2].offset.x), CSPFT_FLOAT },
|
||||
{"c3_offsetY", offsetof(PhysConstraints, data[2].offset.y), CSPFT_FLOAT },
|
||||
{"c3_offsetZ", offsetof(PhysConstraints, data[2].offset.z), CSPFT_FLOAT },
|
||||
{"c3_timeout", offsetof(PhysConstraints, data[2].timeout), CSPFT_INT },
|
||||
{"c3_min_health", offsetof(PhysConstraints, data[2].min_health), CSPFT_INT },
|
||||
{"c3_max_health", offsetof(PhysConstraints, data[2].max_health), CSPFT_INT },
|
||||
{"c3_damp", offsetof(PhysConstraints, data[2].damp), CSPFT_FLOAT },
|
||||
{"c3_power", offsetof(PhysConstraints, data[2].power), CSPFT_FLOAT },
|
||||
{"c3_spin_scale", offsetof(PhysConstraints, data[2].spin_scale), CSPFT_FLOAT },
|
||||
{"c3_shakescalex", offsetof(PhysConstraints, data[2].scale.x), CSPFT_FLOAT },
|
||||
{"c3_shakescaley", offsetof(PhysConstraints, data[2].scale.y), CSPFT_FLOAT },
|
||||
{"c3_shakescalez", offsetof(PhysConstraints, data[2].scale.z), CSPFT_FLOAT },
|
||||
{"c3_min_angle", offsetof(PhysConstraints, data[2].minAngle), CSPFT_FLOAT },
|
||||
{"c3_max_angle", offsetof(PhysConstraints, data[2].maxAngle), CSPFT_FLOAT },
|
||||
{"c3_yaw", offsetof(PhysConstraints, data[2].scale.y), CSPFT_FLOAT },
|
||||
{"c3_pitch", offsetof(PhysConstraints, data[2].scale.x), CSPFT_FLOAT },
|
||||
{"c4_type", offsetof(PhysConstraints, data[3].type), CFT_TYPE },
|
||||
{"c4_bone1_name", offsetof(PhysConstraints, data[3].target_bone1), CSPFT_STRING},
|
||||
{"c4_bone2_name", offsetof(PhysConstraints, data[3].target_bone2), CSPFT_STRING},
|
||||
{"c4_offsetX", offsetof(PhysConstraints, data[3].offset.x), CSPFT_FLOAT },
|
||||
{"c4_offsetY", offsetof(PhysConstraints, data[3].offset.y), CSPFT_FLOAT },
|
||||
{"c4_offsetZ", offsetof(PhysConstraints, data[3].offset.z), CSPFT_FLOAT },
|
||||
{"c4_timeout", offsetof(PhysConstraints, data[3].timeout), CSPFT_INT },
|
||||
{"c4_min_health", offsetof(PhysConstraints, data[3].min_health), CSPFT_INT },
|
||||
{"c4_max_health", offsetof(PhysConstraints, data[3].max_health), CSPFT_INT },
|
||||
{"c4_damp", offsetof(PhysConstraints, data[3].damp), CSPFT_FLOAT },
|
||||
{"c4_power", offsetof(PhysConstraints, data[3].power), CSPFT_FLOAT },
|
||||
{"c4_spin_scale", offsetof(PhysConstraints, data[3].spin_scale), CSPFT_FLOAT },
|
||||
{"c4_shakescalex", offsetof(PhysConstraints, data[3].scale.x), CSPFT_FLOAT },
|
||||
{"c4_shakescaley", offsetof(PhysConstraints, data[3].scale.y), CSPFT_FLOAT },
|
||||
{"c4_shakescalez", offsetof(PhysConstraints, data[3].scale.z), CSPFT_FLOAT },
|
||||
{"c4_min_angle", offsetof(PhysConstraints, data[3].minAngle), CSPFT_FLOAT },
|
||||
{"c4_max_angle", offsetof(PhysConstraints, data[3].maxAngle), CSPFT_FLOAT },
|
||||
{"c4_yaw", offsetof(PhysConstraints, data[3].scale.y), CSPFT_FLOAT },
|
||||
{"c4_pitch", offsetof(PhysConstraints, data[3].scale.x), CSPFT_FLOAT },
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -3,26 +3,25 @@
|
||||
|
||||
namespace T6
|
||||
{
|
||||
inline cspField_t phys_preset_fields[]
|
||||
{
|
||||
{ "mass", offsetof(PhysPresetInfo, mass), CSPFT_FLOAT },
|
||||
{ "bounce", offsetof(PhysPresetInfo, bounce), CSPFT_FLOAT },
|
||||
{ "friction", offsetof(PhysPresetInfo, friction), CSPFT_FLOAT },
|
||||
{ "isFrictionInfinity", offsetof(PhysPresetInfo, isFrictionInfinity), CSPFT_QBOOLEAN },
|
||||
{ "bulletForceScale", offsetof(PhysPresetInfo, bulletForceScale), CSPFT_FLOAT },
|
||||
{ "explosiveForceScale", offsetof(PhysPresetInfo, explosiveForceScale), CSPFT_FLOAT },
|
||||
{ "piecesSpreadFraction", offsetof(PhysPresetInfo, piecesSpreadFraction), CSPFT_FLOAT },
|
||||
{ "piecesUpwardVelocity", offsetof(PhysPresetInfo, piecesUpwardVelocity), CSPFT_FLOAT },
|
||||
{ "canFloat", offsetof(PhysPresetInfo, canFloat), CSPFT_INT },
|
||||
{ "gravityScale", offsetof(PhysPresetInfo, gravityScale), CSPFT_FLOAT },
|
||||
{ "massOffsetX", offsetof(PhysPresetInfo, centerOfMassOffset.x), CSPFT_FLOAT },
|
||||
{ "massOffsetY", offsetof(PhysPresetInfo, centerOfMassOffset.y), CSPFT_FLOAT },
|
||||
{ "massOffsetZ", offsetof(PhysPresetInfo, centerOfMassOffset.z), CSPFT_FLOAT },
|
||||
{ "buoyancyMinX", offsetof(PhysPresetInfo, buoyancyBoxMin.x), CSPFT_FLOAT },
|
||||
{ "buoyancyMinY", offsetof(PhysPresetInfo, buoyancyBoxMin.y), CSPFT_FLOAT },
|
||||
{ "buoyancyMinZ", offsetof(PhysPresetInfo, buoyancyBoxMin.z), CSPFT_FLOAT },
|
||||
{ "buoyancyMaxX", offsetof(PhysPresetInfo, buoyancyBoxMax.x), CSPFT_FLOAT },
|
||||
{ "buoyancyMaxY", offsetof(PhysPresetInfo, buoyancyBoxMax.y), CSPFT_FLOAT },
|
||||
{ "buoyancyMaxZ", offsetof(PhysPresetInfo, buoyancyBoxMax.z), CSPFT_FLOAT },
|
||||
inline cspField_t phys_preset_fields[]{
|
||||
{"mass", offsetof(PhysPresetInfo, mass), CSPFT_FLOAT },
|
||||
{"bounce", offsetof(PhysPresetInfo, bounce), CSPFT_FLOAT },
|
||||
{"friction", offsetof(PhysPresetInfo, friction), CSPFT_FLOAT },
|
||||
{"isFrictionInfinity", offsetof(PhysPresetInfo, isFrictionInfinity), CSPFT_QBOOLEAN},
|
||||
{"bulletForceScale", offsetof(PhysPresetInfo, bulletForceScale), CSPFT_FLOAT },
|
||||
{"explosiveForceScale", offsetof(PhysPresetInfo, explosiveForceScale), CSPFT_FLOAT },
|
||||
{"piecesSpreadFraction", offsetof(PhysPresetInfo, piecesSpreadFraction), CSPFT_FLOAT },
|
||||
{"piecesUpwardVelocity", offsetof(PhysPresetInfo, piecesUpwardVelocity), CSPFT_FLOAT },
|
||||
{"canFloat", offsetof(PhysPresetInfo, canFloat), CSPFT_INT },
|
||||
{"gravityScale", offsetof(PhysPresetInfo, gravityScale), CSPFT_FLOAT },
|
||||
{"massOffsetX", offsetof(PhysPresetInfo, centerOfMassOffset.x), CSPFT_FLOAT },
|
||||
{"massOffsetY", offsetof(PhysPresetInfo, centerOfMassOffset.y), CSPFT_FLOAT },
|
||||
{"massOffsetZ", offsetof(PhysPresetInfo, centerOfMassOffset.z), CSPFT_FLOAT },
|
||||
{"buoyancyMinX", offsetof(PhysPresetInfo, buoyancyBoxMin.x), CSPFT_FLOAT },
|
||||
{"buoyancyMinY", offsetof(PhysPresetInfo, buoyancyBoxMin.y), CSPFT_FLOAT },
|
||||
{"buoyancyMinZ", offsetof(PhysPresetInfo, buoyancyBoxMin.z), CSPFT_FLOAT },
|
||||
{"buoyancyMaxX", offsetof(PhysPresetInfo, buoyancyBoxMax.x), CSPFT_FLOAT },
|
||||
{"buoyancyMaxY", offsetof(PhysPresetInfo, buoyancyBoxMax.y), CSPFT_FLOAT },
|
||||
{"buoyancyMaxZ", offsetof(PhysPresetInfo, buoyancyBoxMax.z), CSPFT_FLOAT },
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -3,38 +3,37 @@
|
||||
|
||||
namespace T6
|
||||
{
|
||||
inline cspField_t tracer_fields[]
|
||||
{
|
||||
{"type", offsetof(TracerDef, type), TFT_TRACERTYPE},
|
||||
{"material", offsetof(TracerDef, material), CSPFT_MATERIAL},
|
||||
{"drawInterval", offsetof(TracerDef, drawInterval), CSPFT_INT},
|
||||
{"speed", offsetof(TracerDef, speed), CSPFT_FLOAT},
|
||||
{"beamLength", offsetof(TracerDef, beamLength), CSPFT_FLOAT},
|
||||
{"beamWidth", offsetof(TracerDef, beamWidth), CSPFT_FLOAT},
|
||||
{"screwRadius", offsetof(TracerDef, screwRadius), CSPFT_FLOAT},
|
||||
{"screwDist", offsetof(TracerDef, screwDist), CSPFT_FLOAT},
|
||||
{"fadeTime", offsetof(TracerDef, fadeTime), CSPFT_FLOAT},
|
||||
{"fadeScale", offsetof(TracerDef, fadeScale), CSPFT_FLOAT},
|
||||
{"texRepeatRate", offsetof(TracerDef, texRepeatRate), CSPFT_FLOAT},
|
||||
{"colorR0", offsetof(TracerDef, colors[0].r), CSPFT_FLOAT},
|
||||
{"colorG0", offsetof(TracerDef, colors[0].g), CSPFT_FLOAT},
|
||||
{"colorB0", offsetof(TracerDef, colors[0].b), CSPFT_FLOAT},
|
||||
{"colorA0", offsetof(TracerDef, colors[0].a), CSPFT_FLOAT},
|
||||
{"colorR1", offsetof(TracerDef, colors[1].r), CSPFT_FLOAT},
|
||||
{"colorG1", offsetof(TracerDef, colors[1].g), CSPFT_FLOAT},
|
||||
{"colorB1", offsetof(TracerDef, colors[1].b), CSPFT_FLOAT},
|
||||
{"colorA1", offsetof(TracerDef, colors[1].a), CSPFT_FLOAT},
|
||||
{"colorR2", offsetof(TracerDef, colors[2].r), CSPFT_FLOAT},
|
||||
{"colorG2", offsetof(TracerDef, colors[2].g), CSPFT_FLOAT},
|
||||
{"colorB2", offsetof(TracerDef, colors[2].b), CSPFT_FLOAT},
|
||||
{"colorA2", offsetof(TracerDef, colors[2].a), CSPFT_FLOAT},
|
||||
{"colorR3", offsetof(TracerDef, colors[3].r), CSPFT_FLOAT},
|
||||
{"colorG3", offsetof(TracerDef, colors[3].g), CSPFT_FLOAT},
|
||||
{"colorB3", offsetof(TracerDef, colors[3].b), CSPFT_FLOAT},
|
||||
{"colorA3", offsetof(TracerDef, colors[3].a), CSPFT_FLOAT},
|
||||
{"colorR4", offsetof(TracerDef, colors[4].r), CSPFT_FLOAT},
|
||||
{"colorG4", offsetof(TracerDef, colors[4].g), CSPFT_FLOAT},
|
||||
{"colorB4", offsetof(TracerDef, colors[4].b), CSPFT_FLOAT},
|
||||
{"colorA4", offsetof(TracerDef, colors[4].a), CSPFT_FLOAT}
|
||||
inline cspField_t tracer_fields[]{
|
||||
{"type", offsetof(TracerDef, type), TFT_TRACERTYPE},
|
||||
{"material", offsetof(TracerDef, material), CSPFT_MATERIAL},
|
||||
{"drawInterval", offsetof(TracerDef, drawInterval), CSPFT_INT },
|
||||
{"speed", offsetof(TracerDef, speed), CSPFT_FLOAT },
|
||||
{"beamLength", offsetof(TracerDef, beamLength), CSPFT_FLOAT },
|
||||
{"beamWidth", offsetof(TracerDef, beamWidth), CSPFT_FLOAT },
|
||||
{"screwRadius", offsetof(TracerDef, screwRadius), CSPFT_FLOAT },
|
||||
{"screwDist", offsetof(TracerDef, screwDist), CSPFT_FLOAT },
|
||||
{"fadeTime", offsetof(TracerDef, fadeTime), CSPFT_FLOAT },
|
||||
{"fadeScale", offsetof(TracerDef, fadeScale), CSPFT_FLOAT },
|
||||
{"texRepeatRate", offsetof(TracerDef, texRepeatRate), CSPFT_FLOAT },
|
||||
{"colorR0", offsetof(TracerDef, colors[0].r), CSPFT_FLOAT },
|
||||
{"colorG0", offsetof(TracerDef, colors[0].g), CSPFT_FLOAT },
|
||||
{"colorB0", offsetof(TracerDef, colors[0].b), CSPFT_FLOAT },
|
||||
{"colorA0", offsetof(TracerDef, colors[0].a), CSPFT_FLOAT },
|
||||
{"colorR1", offsetof(TracerDef, colors[1].r), CSPFT_FLOAT },
|
||||
{"colorG1", offsetof(TracerDef, colors[1].g), CSPFT_FLOAT },
|
||||
{"colorB1", offsetof(TracerDef, colors[1].b), CSPFT_FLOAT },
|
||||
{"colorA1", offsetof(TracerDef, colors[1].a), CSPFT_FLOAT },
|
||||
{"colorR2", offsetof(TracerDef, colors[2].r), CSPFT_FLOAT },
|
||||
{"colorG2", offsetof(TracerDef, colors[2].g), CSPFT_FLOAT },
|
||||
{"colorB2", offsetof(TracerDef, colors[2].b), CSPFT_FLOAT },
|
||||
{"colorA2", offsetof(TracerDef, colors[2].a), CSPFT_FLOAT },
|
||||
{"colorR3", offsetof(TracerDef, colors[3].r), CSPFT_FLOAT },
|
||||
{"colorG3", offsetof(TracerDef, colors[3].g), CSPFT_FLOAT },
|
||||
{"colorB3", offsetof(TracerDef, colors[3].b), CSPFT_FLOAT },
|
||||
{"colorA3", offsetof(TracerDef, colors[3].a), CSPFT_FLOAT },
|
||||
{"colorR4", offsetof(TracerDef, colors[4].r), CSPFT_FLOAT },
|
||||
{"colorG4", offsetof(TracerDef, colors[4].g), CSPFT_FLOAT },
|
||||
{"colorB4", offsetof(TracerDef, colors[4].b), CSPFT_FLOAT },
|
||||
{"colorA4", offsetof(TracerDef, colors[4].a), CSPFT_FLOAT },
|
||||
};
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user