summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/Stats.cpp1
-rw-r--r--src/core/Stats.h19
-rw-r--r--src/core/SurfaceTable.cpp135
-rw-r--r--src/core/SurfaceTable.h46
4 files changed, 84 insertions, 117 deletions
diff --git a/src/core/Stats.cpp b/src/core/Stats.cpp
index f1770796..3f930d49 100644
--- a/src/core/Stats.cpp
+++ b/src/core/Stats.cpp
@@ -57,6 +57,7 @@ int32 CStats::mmRain;
int32 CStats::CarsCrushed;
int32 CStats::FastestTimes[CStats::TOTAL_FASTEST_TIMES];
int32 CStats::HighestScores[CStats::TOTAL_HIGHEST_SCORES];
+int32 CStats::PropertyDestroyed;
int32 CStats::Sprayings;
float CStats::AutoPaintingBudget;
diff --git a/src/core/Stats.h b/src/core/Stats.h
index be1f55ef..37987ae5 100644
--- a/src/core/Stats.h
+++ b/src/core/Stats.h
@@ -10,7 +10,7 @@ public:
TOTAL_HIGHEST_SCORES = 16
};
static int32 DaysPassed;
- static int32 HeadsPopped;
+ static int32 HeadsPopped;
static int32 CommercialPassed;
static int32 IndustrialPassed;
static int32 SuburbanPassed;
@@ -52,16 +52,17 @@ public:
static int32 LongestFlightInDodo;
static int32 TimeTakenDefuseMission;
static int32 TotalNumberKillFrenzies;
- static int32 TotalNumberMissions;
- static int32 RoundsFiredByPlayer;
- static int32 KgsOfExplosivesUsed;
- static int32 InstantHitsFiredByPlayer;
- static int32 InstantHitsHitByPlayer;
- static int32 BestTimeBombDefusal;
- static int32 mmRain;
- static int32 CarsCrushed;
+ static int32 TotalNumberMissions;
+ static int32 RoundsFiredByPlayer;
+ static int32 KgsOfExplosivesUsed;
+ static int32 InstantHitsFiredByPlayer;
+ static int32 InstantHitsHitByPlayer;
+ static int32 BestTimeBombDefusal;
+ static int32 mmRain;
+ static int32 CarsCrushed;
static int32 FastestTimes[TOTAL_FASTEST_TIMES];
static int32 HighestScores[TOTAL_HIGHEST_SCORES];
+ static int32 PropertyDestroyed;
static int32 Sprayings;
static float AutoPaintingBudget;
static int32 NoMoreHurricanes;
diff --git a/src/core/SurfaceTable.cpp b/src/core/SurfaceTable.cpp
index 08a84cfd..f002bf49 100644
--- a/src/core/SurfaceTable.cpp
+++ b/src/core/SurfaceTable.cpp
@@ -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;
}
diff --git a/src/core/SurfaceTable.h b/src/core/SurfaceTable.h
index 12246dce..5d8d2c4f 100644
--- a/src/core/SurfaceTable.h
+++ b/src/core/SurfaceTable.h
@@ -1,47 +1,6 @@
#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
+// TODO: check this
enum eSurfaceType
{
SURFACE_DEFAULT,
@@ -77,8 +36,6 @@ enum eSurfaceType
SURFACE_LOOSE30,
SURFACE_BOLLARD,
SURFACE_GATE,
-
- // These are illegal
SURFACE_SAND33,
SURFACE_ROAD34,
};
@@ -89,6 +46,7 @@ enum
ADHESIVE_HARD,
ADHESIVE_ROAD,
ADHESIVE_LOOSE,
+ ADHESIVE_SAND,
ADHESIVE_WET,
NUMADHESIVEGROUPS