diff --git a/Actor_8h__dep__incl.map b/Actor_8h__dep__incl.map
index 5890e4fed..d09af0307 100644
--- a/Actor_8h__dep__incl.map
+++ b/Actor_8h__dep__incl.map
@@ -1,150 +1,145 @@
diff --git a/Actor_8h__dep__incl.md5 b/Actor_8h__dep__incl.md5
index 02ffb1ae1..d7f468f86 100644
--- a/Actor_8h__dep__incl.md5
+++ b/Actor_8h__dep__incl.md5
@@ -1 +1 @@
-fe14c8b8ace4b0df8a2e50123a950001
\ No newline at end of file
+06fe9b92c8dd3285a750cbacd1f9d7f7
\ No newline at end of file
diff --git a/Actor_8h__dep__incl.svg b/Actor_8h__dep__incl.svg
index ac26f8c22..d1616563d 100644
--- a/Actor_8h__dep__incl.svg
+++ b/Actor_8h__dep__incl.svg
@@ -47,7 +47,7 @@
@@ -59,8 +59,8 @@ var sectionId = 'dynsection-1';
Node1
-
-src/engine/Actor.h
+
+src/engine/Actor.h
@@ -77,8 +77,8 @@ var sectionId = 'dynsection-1';
Node1->Node2
-
-
+
+
@@ -86,8 +86,8 @@ var sectionId = 'dynsection-1';
Node3
-
-src/engine/TrainCrossing.cpp
+
+src/engine/TrainCrossing.cpp
@@ -95,8 +95,8 @@ var sectionId = 'dynsection-1';
Node1->Node3
-
-
+
+
@@ -104,8 +104,8 @@ var sectionId = 'dynsection-1';
Node4
-
-src/engine/World.h
+
+src/engine/World.h
@@ -113,367 +113,367 @@ var sectionId = 'dynsection-1';
Node1->Node4
-
-
+
+
-
-
-Node11
-
+
+
+Node13
+
src/engine/actors/Cloud.cpp
-
-
-Node1->Node11
-
-
-
+
+
+Node1->Node13
+
+
+
-
-
-Node12
-
-
-src/engine/actors/Finishline.cpp
+
+
+Node14
+
+
+src/engine/actors/Finishline.cpp
-
-
-Node1->Node12
-
-
-
-
-
-
-
-
-Node89
-
-
-src/engine/actors/Banana.cpp
-
-
-
-
-
-Node1->Node89
-
-
-
-
-
-
-
-
-Node90
-
-
-src/engine/actors/Banana.h
-
-
-
-
-
-Node1->Node90
-
-
-
+
+
+Node1->Node14
+
+
+
Node91
-
-
-src/engine/actors/Bowser
-Statue.h
+
+
+src/engine/actors/Banana.cpp
-
+
Node1->Node91
-
-
-
+
+
+
+
+
+
+
+
+Node92
+
+
+src/engine/actors/Banana.h
+
+
+
+
+
+Node1->Node92
+
+
+
Node93
-
-
-src/engine/actors/Cloud.h
+
+
+src/engine/actors/Bowser
+Statue.h
-
+
Node1->Node93
-
-
-
-
-
-
-
-
-Node94
-
-
-src/engine/actors/Finishline.h
-
-
-
-
-
-Node1->Node94
-
-
-
+
+
+
Node95
-
-
-src/engine/actors/MarioSign.h
+
+
+src/engine/actors/Cloud.h
-
+
Node1->Node95
-
-
-
+
+
+
+
+
+
+
+
+Node96
+
+
+src/engine/actors/Finishline.h
+
+
+
+
+
+Node1->Node96
+
+
+
Node97
-
-
-src/engine/actors/Ship.h
+
+
+src/engine/actors/MarioSign.h
-
+
Node1->Node97
-
-
-
+
+
+
Node99
-
-
-src/engine/actors/Spaghetti
-Ship.h
+
+
+src/engine/actors/Ship.h
-
+
Node1->Node99
-
-
-
+
+
+
Node101
-
-
-src/engine/actors/Starship.h
+
+
+src/engine/actors/Spaghetti
+Ship.h
-
+
Node1->Node101
-
-
-
+
+
+
Node103
-
-
-src/engine/actors/Tree.h
+
+
+src/engine/actors/Starship.h
-
+
Node1->Node103
-
-
-
+
+
+
Node105
-
-
-src/engine/actors/WarioSign.h
+
+
+src/engine/actors/Tree.h
-
+
Node1->Node105
-
-
-
+
+
+
Node107
-
-
-src/engine/vehicles
-/Boat.h
+
+
+src/engine/actors/WarioSign.h
-
+
Node1->Node107
-
-
-
+
+
+
Node109
-
-
-src/engine/vehicles
-/Bus.h
+
+
+src/engine/vehicles
+/Boat.h
-
+
Node1->Node109
-
-
-
+
+
+
Node111
-
-
-src/engine/vehicles
-/Car.h
+
+
+src/engine/vehicles
+/Bus.h
-
+
Node1->Node111
-
-
-
+
+
+
Node113
-
-
-src/engine/vehicles
-/TankerTruck.h
+
+
+src/engine/vehicles
+/Car.h
-
+
Node1->Node113
-
-
-
+
+
+
Node115
-
-
-src/engine/vehicles
-/Train.h
+
+
+src/engine/vehicles
+/TankerTruck.h
-
+
Node1->Node115
-
-
-
+
+
+
-
-
-Node118
-
-
-src/engine/vehicles
-/Truck.h
+
+
+Node117
+
+
+src/engine/vehicles
+/Train.h
-
-
-Node1->Node118
-
-
-
+
+
+Node1->Node117
+
+
+
+
+
+
+
+
+Node121
+
+
+src/engine/vehicles
+/Truck.h
+
+
+
+
+
+Node1->Node121
+
+
+
-
+
Node4->Node3
-
-
-
+
+
+
@@ -481,8 +481,8 @@ var sectionId = 'dynsection-1';
Node5
-
-src/engine/GarbageCollector.cpp
+
+src/engine/GarbageCollector.cpp
@@ -490,8 +490,8 @@ var sectionId = 'dynsection-1';
Node4->Node5
-
-
+
+
@@ -499,8 +499,8 @@ var sectionId = 'dynsection-1';
Node6
-
-src/engine/GarbageCollector.h
+
+src/engine/GarbageCollector.h
@@ -508,8 +508,8 @@ var sectionId = 'dynsection-1';
Node4->Node6
-
-
+
+
@@ -517,8 +517,8 @@ var sectionId = 'dynsection-1';
Node8
-
-src/engine/Matrix.cpp
+
+src/engine/Matrix.cpp
@@ -526,17 +526,17 @@ var sectionId = 'dynsection-1';
Node4->Node8
-
-
+
+
Node9
-
-
-src/engine/Smoke.cpp
+
+
+src/engine/Rulesets.h
@@ -544,462 +544,461 @@ var sectionId = 'dynsection-1';
Node4->Node9
-
-
+
+
-
-
-Node10
-
-
-src/engine/World.cpp
-
-
-
-
-
-Node4->Node10
-
-
-
+
+
+Node11
+
+
+src/engine/Smoke.cpp
-
+
Node4->Node11
-
-
-
+
+
+
+
+
+
+
+
+Node12
+
+
+src/engine/World.cpp
-
+
Node4->Node12
-
-
-
-
-
-
-
-
-Node13
-
-
-src/engine/courses
-/BansheeBoardwalk.cpp
+
+
+
-
+
Node4->Node13
-
-
-
-
-
-
-
-
-Node14
-
-
-src/engine/courses
-/BigDonut.cpp
+
+
+
-
+
Node4->Node14
-
-
-
+
+
+
Node15
-
-
-src/engine/courses
-/BlockFort.cpp
+
+
+src/engine/courses
+/BansheeBoardwalk.cpp
-
+
Node4->Node15
-
-
-
+
+
+
Node16
-
-
-src/engine/courses
-/BowsersCastle.cpp
+
+
+src/engine/courses
+/BigDonut.cpp
-
+
Node4->Node16
-
-
-
+
+
+
Node17
-
-
-src/engine/courses
-/ChocoMountain.cpp
+
+
+src/engine/courses
+/BlockFort.cpp
-
+
Node4->Node17
-
-
-
+
+
+
Node18
-
-
-src/engine/courses
-/DKJungle.cpp
+
+
+src/engine/courses
+/BowsersCastle.cpp
-
+
Node4->Node18
-
-
-
+
+
+
Node19
-
-
-src/engine/courses
-/DoubleDeck.cpp
+
+
+src/engine/courses
+/ChocoMountain.cpp
-
+
Node4->Node19
-
-
-
+
+
+
Node20
-
-
-src/engine/courses
-/FrappeSnowland.cpp
+
+
+src/engine/courses
+/DKJungle.cpp
-
+
Node4->Node20
-
-
-
+
+
+
Node21
-
-
-src/engine/courses
-/Harbour.cpp
+
+
+src/engine/courses
+/DoubleDeck.cpp
-
+
Node4->Node21
-
-
-
+
+
+
Node22
-
-
-src/engine/courses
-/KalimariDesert.cpp
+
+
+src/engine/courses
+/FrappeSnowland.cpp
-
+
Node4->Node22
-
-
-
+
+
+
Node23
-
-
-src/engine/courses
-/KoopaTroopaBeach.cpp
+
+
+src/engine/courses
+/Harbour.cpp
-
+
Node4->Node23
-
-
-
+
+
+
Node24
-
-
-src/engine/courses
-/KoopaTroopaBeach.h
+
+
+src/engine/courses
+/KalimariDesert.cpp
-
+
Node4->Node24
-
-
-
+
+
+
Node25
-
-
-src/engine/courses
-/LuigiRaceway.cpp
+
+
+src/engine/courses
+/KoopaTroopaBeach.cpp
-
+
Node4->Node25
-
-
-
+
+
+
Node26
-
-
-src/engine/courses
-/MarioRaceway.cpp
+
+
+src/engine/courses
+/KoopaTroopaBeach.h
-
+
Node4->Node26
-
-
-
+
+
+
Node27
-
-
-src/engine/courses
-/MooMooFarm.cpp
+
+
+src/engine/courses
+/LuigiRaceway.cpp
-
+
Node4->Node27
-
-
-
+
+
+
Node28
-
-
-src/engine/courses
-/PodiumCeremony.cpp
+
+
+src/engine/courses
+/MarioRaceway.cpp
-
+
Node4->Node28
-
-
-
+
+
+
Node29
-
-
-src/engine/courses
-/RainbowRoad.cpp
+
+
+src/engine/courses
+/MooMooFarm.cpp
-
+
Node4->Node29
-
-
-
+
+
+
Node30
-
-
-src/engine/courses
-/RoyalRaceway.cpp
+
+
+src/engine/courses
+/PodiumCeremony.cpp
-
+
Node4->Node30
-
-
-
+
+
+
Node31
-
-
-src/engine/courses
-/SherbetLand.cpp
+
+
+src/engine/courses
+/RainbowRoad.cpp
-
+
Node4->Node31
-
-
-
+
+
+
Node32
-
-
-src/engine/courses
-/Skyscraper.cpp
+
+
+src/engine/courses
+/RoyalRaceway.cpp
-
+
Node4->Node32
-
-
-
+
+
+
Node33
-
-
-src/engine/courses
-/TestCourse.cpp
+
+
+src/engine/courses
+/SherbetLand.cpp
-
+
Node4->Node33
-
-
-
+
+
+
Node34
-
-
-src/engine/courses
-/ToadsTurnpike.cpp
+
+
+src/engine/courses
+/Skyscraper.cpp
-
+
Node4->Node34
-
-
-
+
+
+
+
+
+
+
+
+Node35
+
+
+src/engine/courses
+/TestCourse.cpp
+
+
+
+
+
+Node4->Node35
+
+
+
@@ -1007,413 +1006,368 @@ var sectionId = 'dynsection-1';
Node6->Node5
-
-
+
+
-
-
-Node24->Node23
-
-
-
+
+
+Node26->Node25
+
+
+
-
-
-Node90->Node89
-
-
-
+
+
+Node92->Node91
+
+
+
-
-
-Node91->Node21
-
-
-
+
+
+Node93->Node23
+
+
+
-
-
-Node91->Node33
-
-
-
+
+
+Node93->Node35
+
+
+
-
-
-Node93->Node11
-
+
+
+Node95->Node13
+
-
-
-Node93->Node21
-
-
-
+
+
+Node95->Node23
+
+
+
-
-
-Node93->Node33
-
-
-
+
+
+Node95->Node35
+
+
+
-
-
-Node94->Node12
-
-
-
+
+
+Node96->Node14
+
+
+
-
-
-Node94->Node13
-
-
-
+
+
+Node96->Node15
+
+
+
-
-
-Node94->Node16
-
-
-
+
+
+Node96->Node18
+
+
+
-
-
-Node94->Node17
-
-
-
+
+
+Node96->Node19
+
+
+
-
-
-Node94->Node18
-
-
-
+
+
+Node96->Node20
+
+
+
-
-
-Node94->Node20
-
-
-
+
+
+Node96->Node22
+
+
+
-
-
-Node94->Node21
-
-
-
+
+
+Node96->Node23
+
+
+
-
-
-Node94->Node22
-
-
-
+
+
+Node96->Node24
+
+
+
-
-
-Node94->Node23
-
-
-
+
+
+Node96->Node25
+
+
+
-
-
-Node94->Node25
-
-
-
+
+
+Node96->Node27
+
+
+
-
-
-Node94->Node26
-
-
-
+
+
+Node96->Node28
+
+
+
-
-
-Node94->Node27
-
-
-
+
+
+Node96->Node29
+
+
+
-
-
-Node94->Node29
-
-
-
+
+
+Node96->Node31
+
+
+
-
-
-Node94->Node30
-
-
-
+
+
+Node96->Node32
+
+
+
-
-
-Node94->Node31
-
-
-
+
+
+Node96->Node33
+
+
+
-
-
-Node94->Node33
-
-
-
+
+
+Node96->Node35
+
+
+
-
-
-Node94->Node34
-
-
-
+
+
+Node99->Node23
+
+
+
-
-
-Node97->Node21
-
-
-
+
+
+Node99->Node35
+
+
+
-
-
-Node97->Node33
-
-
-
+
+
+Node101->Node23
+
+
+
-
-
-Node99->Node21
-
-
-
+
+
+Node101->Node35
+
+
+
-
-
-Node99->Node33
-
-
-
+
+
+Node103->Node23
+
+
+
-
-
-Node101->Node21
-
-
-
+
+
+Node103->Node35
+
+
+
-
-
-Node101->Node33
-
-
-
+
+
+Node105->Node23
+
+
+
-
-
-Node103->Node21
-
-
-
+
+
+Node105->Node35
+
+
+
-
-
-Node103->Node33
-
-
-
+
+
+Node109->Node11
+
+
+
-
-
-Node107->Node9
-
-
-
+
+
+Node109->Node20
+
+
+
-
-
-Node107->Node18
-
-
-
+
+
+Node113->Node4
+
+
+
-
-
-Node109->Node34
-
-
-
+
+
+Node117->Node3
+
+
+
-
-
-Node111->Node4
-
-
-
+
+
+Node117->Node4
+
+
+
-
-
-Node111->Node34
-
-
-
+
+
+Node117->Node11
+
+
+
-
-
-Node113->Node34
-
-
-
+
+
+Node117->Node23
+
+
+
-
-
-Node115->Node3
-
-
-
+
+
+Node117->Node24
+
+
+
-
-
-Node115->Node4
-
-
-
-
-
-
-
-
-Node115->Node9
-
-
-
-
-
-
-
-
-Node115->Node21
-
-
-
-
-
-
-
-
-Node115->Node22
-
-
-
-
-
-
-
-
-Node115->Node33
-
-
-
-
-
-
-
-
-Node118->Node34
-
-
-
+
+
+Node117->Node35
+
+