2019-05-15 14:52:37 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
SURFACE_0,
|
|
|
|
SURFACE_1,
|
|
|
|
SURFACE_2,
|
|
|
|
SURFACE_3,
|
|
|
|
SURFACE_4,
|
|
|
|
SURFACE_5,
|
|
|
|
SURFACE_6,
|
|
|
|
SURFACE_7,
|
|
|
|
SURFACE_8,
|
|
|
|
SURFACE_9,
|
|
|
|
SURFACE_10,
|
|
|
|
SURFACE_11,
|
|
|
|
SURFACE_12,
|
|
|
|
SURFACE_13,
|
|
|
|
SURFACE_14,
|
|
|
|
SURFACE_15,
|
|
|
|
SURFACE_16,
|
|
|
|
SURFACE_17,
|
|
|
|
SURFACE_18,
|
|
|
|
SURFACE_19,
|
|
|
|
SURFACE_20,
|
|
|
|
SURFACE_21,
|
|
|
|
SURFACE_22,
|
|
|
|
SURFACE_23,
|
|
|
|
SURFACE_24,
|
|
|
|
SURFACE_25,
|
|
|
|
SURFACE_26,
|
|
|
|
SURFACE_27,
|
|
|
|
SURFACE_28,
|
|
|
|
SURFACE_29,
|
|
|
|
SURFACE_30,
|
|
|
|
SURFACE_31,
|
|
|
|
SURFACE_32,
|
|
|
|
|
|
|
|
NUMSURFACETYPES
|
|
|
|
};
|
|
|
|
|
|
|
|
// From nick
|
|
|
|
// TODO: check and use this
|
|
|
|
enum eSurfaceType
|
|
|
|
{
|
2019-05-28 06:39:36 +00:00
|
|
|
SURFACE_DEFAULT,
|
|
|
|
SURFACE_TARMAC,
|
2019-05-15 14:52:37 +00:00
|
|
|
SURFACE_GRASS,
|
|
|
|
SURFACE_DIRT,
|
2019-05-28 06:39:36 +00:00
|
|
|
SURFACE_DIRTTRACK,
|
2019-05-15 14:52:37 +00:00
|
|
|
SURFACE_PAVEMENT,
|
|
|
|
SURFACE_METAL6,
|
|
|
|
SURFACE_GLASS,
|
2019-05-28 06:39:36 +00:00
|
|
|
SURFACE_SCAFFOLD,
|
|
|
|
SURFACE_METAL_DOOR, // garage door
|
|
|
|
SURFACE_BILLBOARD,
|
|
|
|
SURFACE_STEEL, //?
|
|
|
|
SURFACE_METAL_POLE, // ?
|
|
|
|
SURFACE_STREET_LIGHT,
|
2019-05-15 14:52:37 +00:00
|
|
|
SURFACE_METAL14,
|
|
|
|
SURFACE_METAL15,
|
|
|
|
SURFACE_METAL_FENCE,
|
|
|
|
SURFACE_FLESH,
|
2019-05-28 06:39:36 +00:00
|
|
|
SURFACE_SAND,
|
|
|
|
SURFACE_PUDDLE,
|
2019-05-15 14:52:37 +00:00
|
|
|
SURFACE_WOOD,
|
|
|
|
SURFACE_WOOD_BOX,
|
|
|
|
SURFACE_WOOD_PLANK,
|
|
|
|
SURFACE_TIRE,
|
|
|
|
SURFACE_HARD24,
|
|
|
|
SURFACE_HEDGE,
|
|
|
|
SURFACE_STONE,
|
|
|
|
SURFACE_METAL27,
|
|
|
|
SURFACE_METAL28,
|
|
|
|
SURFACE_RUBBER29,
|
|
|
|
SURFACE_LOOSE30,
|
|
|
|
SURFACE_BOLLARD,
|
|
|
|
SURFACE_GATE,
|
2019-07-19 11:58:19 +00:00
|
|
|
|
|
|
|
// These are illegal
|
2019-05-15 14:52:37 +00:00
|
|
|
SURFACE_SAND33,
|
|
|
|
SURFACE_ROAD34,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
ADHESIVE_RUBBER,
|
|
|
|
ADHESIVE_HARD,
|
|
|
|
ADHESIVE_ROAD,
|
|
|
|
ADHESIVE_LOOSE,
|
|
|
|
ADHESIVE_WET,
|
|
|
|
|
|
|
|
NUMADHESIVEGROUPS
|
|
|
|
};
|
|
|
|
|
2019-05-18 10:39:39 +00:00
|
|
|
struct CColPoint;
|
|
|
|
|
2019-05-15 14:52:37 +00:00
|
|
|
class CSurfaceTable
|
|
|
|
{
|
2019-05-18 10:39:39 +00:00
|
|
|
// static float ms_aAdhesiveLimitTable[NUMADHESIVEGROUPS][NUMADHESIVEGROUPS];
|
|
|
|
static float (*ms_aAdhesiveLimitTable)[NUMADHESIVEGROUPS];
|
2019-05-15 14:52:37 +00:00
|
|
|
public:
|
2019-07-06 10:27:21 +00:00
|
|
|
static void Initialise(char *filename);
|
2019-05-15 14:52:37 +00:00
|
|
|
static int GetAdhesionGroup(uint8 surfaceType);
|
2019-05-18 10:39:39 +00:00
|
|
|
static float GetWetMultiplier(uint8 surfaceType);
|
|
|
|
static float GetAdhesiveLimit(CColPoint &colpoint);
|
2019-05-15 14:52:37 +00:00
|
|
|
};
|