#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 { SURFACE_ROAD0, SURFACE_ROAD1, SURFACE_GRASS, SURFACE_DIRT, SURFACE_MUD, SURFACE_PAVEMENT, SURFACE_METAL6, SURFACE_GLASS, SURFACE_HARD8, SURFACE_METAL_DOOR, SURFACE_METAL10, SURFACE_METAL11, SURFACE_METAL12, SURFACE_METAL13, SURFACE_METAL14, SURFACE_METAL15, SURFACE_METAL_FENCE, SURFACE_FLESH, SURFACE_SAND18, SURFACE_WATER, 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, SURFACE_SAND33, SURFACE_ROAD34, }; enum { ADHESIVE_RUBBER, ADHESIVE_HARD, ADHESIVE_ROAD, ADHESIVE_LOOSE, ADHESIVE_WET, NUMADHESIVEGROUPS }; struct CColPoint; class CSurfaceTable { // static float ms_aAdhesiveLimitTable[NUMADHESIVEGROUPS][NUMADHESIVEGROUPS]; static float (*ms_aAdhesiveLimitTable)[NUMADHESIVEGROUPS]; public: static int GetAdhesionGroup(uint8 surfaceType); static float GetWetMultiplier(uint8 surfaceType); static float GetAdhesiveLimit(CColPoint &colpoint); };