CPhysical

This commit is contained in:
aap
2020-05-22 14:27:16 +02:00
parent 380f7bc417
commit a53ca58e56
18 changed files with 558 additions and 294 deletions

View File

@@ -56,40 +56,42 @@ int
CSurfaceTable::GetAdhesionGroup(uint8 surfaceType)
{
switch(surfaceType){
case SURFACE_0: return ADHESIVE_ROAD;
case SURFACE_1: return ADHESIVE_ROAD;
case SURFACE_2: return ADHESIVE_LOOSE;
case SURFACE_3: return ADHESIVE_LOOSE;
case SURFACE_4: return ADHESIVE_HARD;
case SURFACE_5: return ADHESIVE_ROAD;
case SURFACE_6: return ADHESIVE_HARD;
case SURFACE_7: return ADHESIVE_HARD;
case SURFACE_8: return ADHESIVE_HARD;
case SURFACE_9: return ADHESIVE_HARD;
case SURFACE_10: return ADHESIVE_HARD;
case SURFACE_11: return ADHESIVE_HARD;
case SURFACE_12: return ADHESIVE_HARD;
case SURFACE_13: return ADHESIVE_HARD;
case SURFACE_14: return ADHESIVE_HARD;
case SURFACE_15: return ADHESIVE_HARD;
case SURFACE_16: return ADHESIVE_HARD;
case SURFACE_17: return ADHESIVE_RUBBER;
case SURFACE_18: return ADHESIVE_LOOSE;
case SURFACE_19: return ADHESIVE_WET;
case SURFACE_20: return ADHESIVE_ROAD;
case SURFACE_21: return ADHESIVE_ROAD;
case SURFACE_22: return ADHESIVE_ROAD;
case SURFACE_23: return ADHESIVE_RUBBER;
case SURFACE_24: return ADHESIVE_HARD;
case SURFACE_25: return ADHESIVE_LOOSE;
case SURFACE_26: return ADHESIVE_LOOSE;
case SURFACE_27: return ADHESIVE_HARD;
case SURFACE_28: return ADHESIVE_HARD;
case SURFACE_29: return ADHESIVE_RUBBER;
case SURFACE_30: return ADHESIVE_LOOSE;
case SURFACE_31: return ADHESIVE_HARD;
case SURFACE_32: return ADHESIVE_HARD;
default: return ADHESIVE_ROAD;
case SURFACE_DEFAULT: return ADHESIVE_ROAD;
case SURFACE_TARMAC: return ADHESIVE_ROAD;
case SURFACE_GRASS: return ADHESIVE_LOOSE;
case SURFACE_DIRT: return ADHESIVE_LOOSE;
case SURFACE_DIRTTRACK: return ADHESIVE_HARD;
case SURFACE_PAVEMENT: return ADHESIVE_ROAD;
case SURFACE_METAL6: return ADHESIVE_HARD;
case SURFACE_GLASS: return ADHESIVE_HARD;
case SURFACE_SCAFFOLD: return ADHESIVE_HARD;
case SURFACE_METAL_DOOR: return ADHESIVE_HARD;
case SURFACE_BILLBOARD: return ADHESIVE_HARD;
case SURFACE_STEEL: return ADHESIVE_HARD;
case SURFACE_METAL_POLE: return ADHESIVE_HARD;
case SURFACE_STREET_LIGHT: return ADHESIVE_HARD;
case SURFACE_METAL14: return ADHESIVE_HARD;
case SURFACE_METAL15: return ADHESIVE_HARD;
case SURFACE_METAL_FENCE: return ADHESIVE_HARD;
case SURFACE_FLESH: return ADHESIVE_RUBBER;
case SURFACE_SAND: return ADHESIVE_SAND;
case SURFACE_PUDDLE: return ADHESIVE_WET;
case SURFACE_WOOD: return ADHESIVE_ROAD;
case SURFACE_WOOD_BOX: return ADHESIVE_ROAD;
case SURFACE_WOOD_PLANK: return ADHESIVE_ROAD;
case SURFACE_TIRE: return ADHESIVE_RUBBER;
case SURFACE_HARD24: return ADHESIVE_HARD;
case SURFACE_HEDGE: return ADHESIVE_LOOSE;
case SURFACE_STONE: return ADHESIVE_LOOSE;
case SURFACE_METAL27: return ADHESIVE_HARD;
case SURFACE_METAL28: return ADHESIVE_HARD;
case SURFACE_RUBBER29: return ADHESIVE_RUBBER;
case SURFACE_LOOSE30: return ADHESIVE_LOOSE;
case SURFACE_BOLLARD: return ADHESIVE_HARD;
case SURFACE_GATE: return ADHESIVE_HARD;
case SURFACE_SAND33: return ADHESIVE_SAND;
case SURFACE_ROAD34: return ADHESIVE_ROAD;
default: return ADHESIVE_ROAD;
}
}
@@ -97,40 +99,45 @@ float
CSurfaceTable::GetWetMultiplier(uint8 surfaceType)
{
switch(surfaceType){
case SURFACE_0:
case SURFACE_1:
case SURFACE_4:
case SURFACE_5:
case SURFACE_8:
case SURFACE_20:
case SURFACE_21:
case SURFACE_22:
case SURFACE_25:
case SURFACE_30:
case SURFACE_31:
case SURFACE_DEFAULT:
case SURFACE_TARMAC:
case SURFACE_DIRTTRACK:
case SURFACE_PAVEMENT:
case SURFACE_SCAFFOLD:
case SURFACE_WOOD:
case SURFACE_WOOD_BOX:
case SURFACE_WOOD_PLANK:
case SURFACE_HEDGE:
case SURFACE_LOOSE30:
case SURFACE_BOLLARD:
case SURFACE_ROAD34:
return 1.0f - CWeather::WetRoads*0.25f;
case SURFACE_2:
case SURFACE_6:
case SURFACE_7:
case SURFACE_9:
case SURFACE_10:
case SURFACE_11:
case SURFACE_12:
case SURFACE_13:
case SURFACE_14:
case SURFACE_15:
case SURFACE_16:
case SURFACE_17:
case SURFACE_23:
case SURFACE_24:
case SURFACE_26:
case SURFACE_27:
case SURFACE_28:
case SURFACE_29:
case SURFACE_32:
case SURFACE_GRASS:
case SURFACE_METAL6:
case SURFACE_GLASS:
case SURFACE_METAL_DOOR:
case SURFACE_BILLBOARD:
case SURFACE_STEEL:
case SURFACE_METAL_POLE:
case SURFACE_STREET_LIGHT:
case SURFACE_METAL14:
case SURFACE_METAL15:
case SURFACE_METAL_FENCE:
case SURFACE_FLESH:
case SURFACE_TIRE:
case SURFACE_HARD24:
case SURFACE_STONE:
case SURFACE_METAL27:
case SURFACE_METAL28:
case SURFACE_RUBBER29:
case SURFACE_GATE:
return 1.0f - CWeather::WetRoads*0.4f;
case SURFACE_SAND:
case SURFACE_SAND33:
return 1.0f - CWeather::WetRoads*0.5f;
default:
return 1.0f;
}