Files
expvintl 419f2e4752 init
2025-02-23 17:40:52 +08:00

72 lines
3.1 KiB
C

//
// vehicle_common_values.h
//
// 2010/12/20 - Andrzej: - initial;
// 2013/10/15 - Bela: - add support for damage texture writing on GPU
//
//
//
#ifndef __VEHICLE_COMMON_VALUES_H__
#define __VEHICLE_COMMON_VALUES_H__
// If you modify these values, then you also need to update the corresponding values
// in rage/base/src/grcore/edge_vehicledamage.spa
#define GTA_VEHICLE_DAMAGE_TEXTURE_SIZE (128) // logical damage map size: 128x128
#define GTA_VEHICLE_DAMAGE_TEXTURE_WIDTH (128) // physical dimensions of damage map:
//This should be power of 2
#if RSG_PS3
#define GTA_VEHICLE_DAMAGE_TEXTURE_HEIGHT (96) // EDGE: 128x96x4 (or 128x128x3)=48KB
#else
#define GTA_VEHICLE_DAMAGE_TEXTURE_HEIGHT (128) // 360: 128x128x4=64KB
#endif
#define VEHICLE_DEFORMATION_SOFT_CAR (0)
#define VEHICLE_DEFORMATION_STOP_AFTER_WRECKAGE (1)
// The rate at which larger vehicles have their damage emphasized more due to their size, Tailgater = 0 (min), Titan = 1 (max)
// The overall damage multiplier is thus = 1 (base) + [0->1 based on relative size) * VEHICLE_DEFORMATION_PROPORTIONAL_SCALE_SLOPE
#define VEHICLE_DEFORMATION_PROPORTIONAL (0)
#define VEHICLE_DEFORMATION_PROPORTIONAL_SCALE_SLOPE (4.0f)
#define VEHICLE_OUTWARD_EXPLOSION_CHANCE (0.5f)
#define VEHICLE_DEFORMATION_INVERSE_SQUARE_FIELD (0)
#define VEHICLE_DEFORMATION_UNCLAMPED_EXPLOSIVES (1) // Damage clamping occurs when weapon damage is incoming, enable this to take 100% damage from rocket launchers, grenades, c4, molotov cocktails
#define GTA_VEHICLE_DAMAGE_DELTA_SCALE (0.5f)
#define GTA_VEHICLE_MIN_DAMAGE_RESOLUTION (0.0078125f) // (1.0f/128.0f) // s8
#define GTA_VEHICLE_MAX_DAMAGE_RESOLUTION (128.0f) // normalized -128 -> 127 is actually -1 -> 1
#define GTA_DAMAGE_TEXTURE_BPP 4 // sizeof(half) * 4
#define VEHICLE_DEFORMATION_NOISE_WIDTH (GTA_VEHICLE_DAMAGE_TEXTURE_WIDTH / 4) //This should be power of 2
#define VEHICLE_DEFORMATION_NOISE_HEIGHT (GTA_VEHICLE_DAMAGE_TEXTURE_HEIGHT / 4)
#define VEHICLE_DEFORMATION_NOISE_WIDTH_EXPANDED (VEHICLE_DEFORMATION_NOISE_WIDTH + 3)
#define VEHICLE_SUPPORT_PAINT_RAMP (1)
#define GPU_DAMAGE_WRITE_ENABLED ((RSG_ORBIS * 1) + (RSG_DURANGO * 1) + (RSG_PC * 1) + (RSG_XENON * 0) + (RSG_PS3 * 0))
#if GPU_DAMAGE_WRITE_ENABLED
#define GPU_VEHICLE_DAMAGE_ONLY(expr) expr
#if RSG_XENON || RSG_PS3
#define MAX_DAMAGED_VEHICLES (16) // Current gen should have 16 textures, max
#define MAX_IMPACTS_PER_VEHICLE_PER_FRAME (4)
#define MAX_BOUND_DEFORMATION_PER_FRAME (2)
#else
#define MAX_DAMAGED_VEHICLES (40) // Next Gen and PC has some spare memory, so allow 40 vehicles to be damaged at once
#define MAX_IMPACTS_PER_VEHICLE_PER_FRAME (16)
#define MAX_BOUND_DEFORMATION_PER_FRAME (2)
#endif
#else
#define GPU_VEHICLE_DAMAGE_ONLY(expr)
#define MAX_DAMAGED_VEHICLES (16)
#define MAX_IMPACTS_PER_VEHICLE_PER_FRAME (4)
#define MAX_BOUND_DEFORMATION_PER_FRAME (2)
#endif
#define GTA_DAMAGE_TEXTURE_BYTES GTA_DAMAGE_TEXTURE_BPP * GTA_VEHICLE_DAMAGE_TEXTURE_WIDTH * GTA_VEHICLE_DAMAGE_TEXTURE_HEIGHT
#endif //__VEHICLE_COMMON_VALUES_H__...