mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2026-04-29 15:09:38 +00:00
Add IW3 PhysPreset dump logic (#744)
* Copied template from font. * Create PhysPreset writer from Font dumper template. * Completely refactor to match previous implementation. * Remove files from previous implementation. * Fix PhysPresetFields. * Add missing fields and correct order. * Add static infinity check as builtin does not work. * Wasn't clang formatted. * Remove unused 'perSurfaceSndAlias' field. * Removed unsupported vals (tracer & vehicle) and un-needed vals (material). * Make order match struct and mark 'tempDefaultToCylinder' as QBOOLEAN. * Make order match struct and clamp vals for 'mass' and 'tempDefaultToCylinder'. * Remove un-needed includes and add limits for float max. * Remove clamping of mass. * Use float max to determine if friction is infinite. * Clang format. * chore: formatting * chore: do not use classes for obj constants --------- Co-authored-by: njohnson <gitea.nicholasjohnson.info> Co-authored-by: Jan Laupetin <jan@laupetin.net>
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
namespace IW3
|
||||
{
|
||||
static constexpr auto INFO_STRING_PREFIX_PHYS_PRESET = "PHYSIC";
|
||||
static constexpr auto INFO_STRING_PREFIX_WEAPON = "WEAPONFILE";
|
||||
|
||||
static constexpr auto GDF_FILENAME_PHYS_PRESET = "physpreset.gdf";
|
||||
static constexpr auto GDF_FILENAME_WEAPON = "weapon.gdf";
|
||||
} // namespace IW3
|
||||
@@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
#include "Game/IW3/IW3.h"
|
||||
|
||||
namespace IW3
|
||||
{
|
||||
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},
|
||||
};
|
||||
}
|
||||
@@ -2,20 +2,14 @@
|
||||
|
||||
namespace IW4
|
||||
{
|
||||
class ObjConstants
|
||||
{
|
||||
ObjConstants() = default;
|
||||
static constexpr auto INFO_STRING_PREFIX_PHYS_PRESET = "PHYSIC";
|
||||
static constexpr auto INFO_STRING_PREFIX_TRACER = "TRACER";
|
||||
static constexpr auto INFO_STRING_PREFIX_VEHICLE = "VEHICLEFILE";
|
||||
static constexpr auto INFO_STRING_PREFIX_WEAPON = "WEAPONFILE";
|
||||
|
||||
public:
|
||||
static constexpr const char* INFO_STRING_PREFIX_PHYS_PRESET = "PHYSIC";
|
||||
static constexpr const char* INFO_STRING_PREFIX_TRACER = "TRACER";
|
||||
static constexpr const char* INFO_STRING_PREFIX_VEHICLE = "VEHICLEFILE";
|
||||
static constexpr const char* INFO_STRING_PREFIX_WEAPON = "WEAPONFILE";
|
||||
|
||||
static constexpr const char* GDF_FILENAME_MATERIAL = "material.gdf";
|
||||
static constexpr const char* GDF_FILENAME_PHYS_PRESET = "physpreset.gdf";
|
||||
static constexpr const char* GDF_FILENAME_TRACER = "tracer.gdf";
|
||||
static constexpr const char* GDF_FILENAME_VEHICLE = "vehicle.gdf";
|
||||
static constexpr const char* GDF_FILENAME_WEAPON = "weapon.gdf";
|
||||
};
|
||||
static constexpr auto GDF_FILENAME_MATERIAL = "material.gdf";
|
||||
static constexpr auto GDF_FILENAME_PHYS_PRESET = "physpreset.gdf";
|
||||
static constexpr auto GDF_FILENAME_TRACER = "tracer.gdf";
|
||||
static constexpr auto GDF_FILENAME_VEHICLE = "vehicle.gdf";
|
||||
static constexpr auto GDF_FILENAME_WEAPON = "weapon.gdf";
|
||||
} // namespace IW4
|
||||
|
||||
@@ -2,19 +2,13 @@
|
||||
|
||||
namespace IW5
|
||||
{
|
||||
class ObjConstants
|
||||
{
|
||||
ObjConstants() = default;
|
||||
static constexpr auto INFO_STRING_PREFIX_PHYS_PRESET = "PHYSIC";
|
||||
static constexpr auto INFO_STRING_PREFIX_TRACER = "TRACER";
|
||||
static constexpr auto INFO_STRING_PREFIX_VEHICLE = "VEHICLEFILE";
|
||||
static constexpr auto INFO_STRING_PREFIX_WEAPON = "WEAPONFILE";
|
||||
|
||||
public:
|
||||
static constexpr const char* INFO_STRING_PREFIX_PHYS_PRESET = "PHYSIC";
|
||||
static constexpr const char* INFO_STRING_PREFIX_TRACER = "TRACER";
|
||||
static constexpr const char* INFO_STRING_PREFIX_VEHICLE = "VEHICLEFILE";
|
||||
static constexpr const char* INFO_STRING_PREFIX_WEAPON = "WEAPONFILE";
|
||||
|
||||
static constexpr const char* GDF_FILENAME_PHYS_PRESET = "physpreset.gdf";
|
||||
static constexpr const char* GDF_FILENAME_TRACER = "tracer.gdf";
|
||||
static constexpr const char* GDF_FILENAME_VEHICLE = "vehicle.gdf";
|
||||
static constexpr const char* GDF_FILENAME_WEAPON = "weapon.gdf";
|
||||
};
|
||||
static constexpr auto GDF_FILENAME_PHYS_PRESET = "physpreset.gdf";
|
||||
static constexpr auto GDF_FILENAME_TRACER = "tracer.gdf";
|
||||
static constexpr auto GDF_FILENAME_VEHICLE = "vehicle.gdf";
|
||||
static constexpr auto GDF_FILENAME_WEAPON = "weapon.gdf";
|
||||
} // namespace IW5
|
||||
|
||||
@@ -2,27 +2,21 @@
|
||||
|
||||
namespace T6
|
||||
{
|
||||
class ObjConstants
|
||||
{
|
||||
ObjConstants() = default;
|
||||
static constexpr auto INFO_STRING_PREFIX_PHYS_CONSTRAINTS = "PHYSCONSTRAINTS";
|
||||
static constexpr auto INFO_STRING_PREFIX_PHYS_PRESET = "PHYSIC";
|
||||
static constexpr auto INFO_STRING_PREFIX_TRACER = "TRACER";
|
||||
static constexpr auto INFO_STRING_PREFIX_VEHICLE = "VEHICLEFILE";
|
||||
static constexpr auto INFO_STRING_PREFIX_WEAPON = "WEAPONFILE";
|
||||
static constexpr auto INFO_STRING_PREFIX_WEAPON_ATTACHMENT = "ATTACHMENTFILE";
|
||||
static constexpr auto INFO_STRING_PREFIX_WEAPON_ATTACHMENT_UNIQUE = "ATTACHMENTUNIQUEFILE";
|
||||
static constexpr auto INFO_STRING_PREFIX_ZBARRIER = "ZBARRIER";
|
||||
|
||||
public:
|
||||
static constexpr const char* INFO_STRING_PREFIX_PHYS_CONSTRAINTS = "PHYSCONSTRAINTS";
|
||||
static constexpr const char* INFO_STRING_PREFIX_PHYS_PRESET = "PHYSIC";
|
||||
static constexpr const char* INFO_STRING_PREFIX_TRACER = "TRACER";
|
||||
static constexpr const char* INFO_STRING_PREFIX_VEHICLE = "VEHICLEFILE";
|
||||
static constexpr const char* INFO_STRING_PREFIX_WEAPON = "WEAPONFILE";
|
||||
static constexpr const char* INFO_STRING_PREFIX_WEAPON_ATTACHMENT = "ATTACHMENTFILE";
|
||||
static constexpr const char* INFO_STRING_PREFIX_WEAPON_ATTACHMENT_UNIQUE = "ATTACHMENTUNIQUEFILE";
|
||||
static constexpr const char* INFO_STRING_PREFIX_ZBARRIER = "ZBARRIER";
|
||||
|
||||
static constexpr const char* GDF_FILENAME_PHYS_CONSTRAINTS = "physconstraints.gdf";
|
||||
static constexpr const char* GDF_FILENAME_PHYS_PRESET = "physpreset.gdf";
|
||||
static constexpr const char* GDF_FILENAME_TRACER = "tracer.gdf";
|
||||
static constexpr const char* GDF_FILENAME_VEHICLE = "vehicle.gdf";
|
||||
static constexpr const char* GDF_FILENAME_WEAPON = "weapon.gdf";
|
||||
static constexpr const char* GDF_FILENAME_WEAPON_ATTACHMENT = "attachment.gdf";
|
||||
static constexpr const char* GDF_FILENAME_WEAPON_ATTACHMENT_UNIQUE = "attachmentunique.gdf";
|
||||
static constexpr const char* GDF_FILENAME_ZBARRIER = "zbarrier.gdf";
|
||||
};
|
||||
static constexpr auto GDF_FILENAME_PHYS_CONSTRAINTS = "physconstraints.gdf";
|
||||
static constexpr auto GDF_FILENAME_PHYS_PRESET = "physpreset.gdf";
|
||||
static constexpr auto GDF_FILENAME_TRACER = "tracer.gdf";
|
||||
static constexpr auto GDF_FILENAME_VEHICLE = "vehicle.gdf";
|
||||
static constexpr auto GDF_FILENAME_WEAPON = "weapon.gdf";
|
||||
static constexpr auto GDF_FILENAME_WEAPON_ATTACHMENT = "attachment.gdf";
|
||||
static constexpr auto GDF_FILENAME_WEAPON_ATTACHMENT_UNIQUE = "attachmentunique.gdf";
|
||||
static constexpr auto GDF_FILENAME_ZBARRIER = "zbarrier.gdf";
|
||||
} // namespace T6
|
||||
|
||||
Reference in New Issue
Block a user