summaryrefslogtreecommitdiffstats
path: root/src/control
diff options
context:
space:
mode:
Diffstat (limited to 'src/control')
-rw-r--r--src/control/TrafficLights.cpp14
-rw-r--r--src/control/TrafficLights.h7
2 files changed, 21 insertions, 0 deletions
diff --git a/src/control/TrafficLights.cpp b/src/control/TrafficLights.cpp
index 73ff6118..f1532ab5 100644
--- a/src/control/TrafficLights.cpp
+++ b/src/control/TrafficLights.cpp
@@ -1,5 +1,19 @@
#include "common.h"
#include "patcher.h"
#include "TrafficLights.h"
+#include "Timer.h"
WRAPPER void CTrafficLights::DisplayActualLight(CEntity *ent) { EAXJMP(0x455800); }
+
+uint8
+CTrafficLights::LightForPeds(void)
+{
+ uint32 period = CTimer::GetTimeInMilliseconds() & 0x3FFF; // Equals to % 16384
+
+ if (period >= 15384)
+ return PED_LIGHTS_WALK_BLINK;
+ else if (period >= 12000)
+ return PED_LIGHTS_WALK;
+ else
+ return PED_LIGHTS_DONT_WALK;
+} \ No newline at end of file
diff --git a/src/control/TrafficLights.h b/src/control/TrafficLights.h
index eec3e1e3..db240111 100644
--- a/src/control/TrafficLights.h
+++ b/src/control/TrafficLights.h
@@ -2,8 +2,15 @@
class CEntity;
+enum {
+ PED_LIGHTS_WALK,
+ PED_LIGHTS_WALK_BLINK,
+ PED_LIGHTS_DONT_WALK,
+};
+
class CTrafficLights
{
public:
static void DisplayActualLight(CEntity *ent);
+ static uint8 LightForPeds(void);
};