summaryrefslogblamecommitdiffstats
path: root/src/core/SurfaceTable.h
blob: 768521bf9e6baf39620924d00285704070a1ba26 (plain) (tree)
1
2
3
4
5
6
7
8
9

            
                   

                 

                        

                      
                          


                         





                                              



                            

                       












                           

                            














                         

                 

                   
                                                                                  
       
                                                     
                                                       

                                                           
  
#pragma once

// TODO: check this
enum eSurfaceType
{
	SURFACE_DEFAULT,
	SURFACE_TARMAC,
	SURFACE_GRASS,
	SURFACE_DIRT,
	SURFACE_DIRTTRACK,
	SURFACE_PAVEMENT,
	SURFACE_METAL6,
	SURFACE_GLASS,
	SURFACE_SCAFFOLD,
	SURFACE_METAL_DOOR,	// garage door
	SURFACE_BILLBOARD,
	SURFACE_STEEL,		//?
	SURFACE_METAL_POLE,	// ?
	SURFACE_STREET_LIGHT,
	SURFACE_METAL14,
	SURFACE_METAL15,
	SURFACE_METAL_FENCE,
	SURFACE_FLESH,
	SURFACE_SAND,
	SURFACE_PUDDLE,
	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,

	// These are illegal
	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];
public:
	static void Initialise(Const char *filename);
	static int GetAdhesionGroup(uint8 surfaceType);
	static float GetWetMultiplier(uint8 surfaceType);
	static float GetAdhesiveLimit(CColPoint &colpoint);
};