diff --git a/gamedir/Data-1.13/Scripts/Overhead.lua b/gamedir/Data-1.13/Scripts/Overhead.lua
index 553f3e105..f95c47240 100644
--- a/gamedir/Data-1.13/Scripts/Overhead.lua
+++ b/gamedir/Data-1.13/Scripts/Overhead.lua
@@ -556,6 +556,7 @@ ActionTypes =
ACTIONTYPE_WATERTAP = 3,
ACTIONTYPE_SODAMACHINE = 4,
ACTIONTYPE_MINIGAME = 5,
+ ACTIONTYPE_VARIOUS = 6,
}
InfoTypes =
@@ -575,6 +576,17 @@ MiniGames =
PONG = 1,
}
+-- luaactionids that aren't used in ModSpecificActions
+InteractiveAction =
+{
+ MINIGAME_TETRIS = 50,
+ MINIGAME_PONG = 51,
+ BILLIARD = 52,
+ TABLETENNIS = 53,
+ TOILET = 54,
+ TV = 55,
+}
+
-- We have an array of 1000 signed integers that a modder can use to set whatever data he wants.
-- We simply set up some enums here to make it easier for us to remember what is what
ModSpecificActions =
@@ -658,11 +670,6 @@ ModSpecificActions =
READING_SANMONA_KINGPIN_BOOKSHELF_1 = 49,
-- |||||||||||||||||||||||||||||||||| books |||||||||||||||||||||||||||||||||||||
- -- |||||||||||||||||||||||||||||||||| minigames |||||||||||||||||||||||||||||||||||||
- MINIGAME_TETRIS = 50,
- MINIGAME_PONG = 51,
- -- |||||||||||||||||||||||||||||||||| minigames |||||||||||||||||||||||||||||||||||||
-
-- |||||||||||||||||||||||||||||||||| photo data |||||||||||||||||||||||||||||||||||||
PHOTO_FLAGS_BEGIN = 60,
@@ -1646,7 +1653,7 @@ function HandleInteractiveActionResult(sSectorX, sSectorY, bSectorZ, sGridNo, bL
elseif ( usActionType == ActionTypes.ACTIONTYPE_MINIGAME ) then
-- for now, the only game we have is tetris
- if ( sLuaactionid == ModSpecificActions.MINIGAME_TETRIS ) then
+ if ( sLuaactionid == InteractiveAction.MINIGAME_TETRIS ) then
-- playing a game costs $1
if ( SoldierSpendMoney(ubID, 1) == 1 ) then
@@ -1655,7 +1662,7 @@ function HandleInteractiveActionResult(sSectorX, sSectorY, bSectorZ, sGridNo, bL
SetPendingNewScreen(ScreenTypes.MINIGAME)
end
- elseif ( sLuaactionid == ModSpecificActions.MINIGAME_PONG ) then
+ elseif ( sLuaactionid == InteractiveAction.MINIGAME_PONG ) then
-- playing a game costs $1
if ( SoldierSpendMoney(ubID, 1) == 1 ) then
@@ -1665,7 +1672,28 @@ function HandleInteractiveActionResult(sSectorX, sSectorY, bSectorZ, sGridNo, bL
end
end
-
+
+ elseif ( usActionType == ActionTypes.ACTIONTYPE_VARIOUS ) then
+
+ -- for now, the only game we have is tetris
+ if ( sLuaactionid == InteractiveAction.BILLIARD ) then
+
+ PlaySound("Sounds\\billiard.wav")
+
+ elseif ( sLuaactionid == InteractiveAction.TABLETENNIS ) then
+
+ PlaySound("Sounds\\tabletennis.wav")
+
+ elseif ( sLuaactionid == InteractiveAction.TOILET ) then
+
+ PlaySound("Sounds\\toilet.wav")
+
+ elseif ( sLuaactionid == InteractiveAction.TV ) then
+
+ PlaySound("Sounds\\tvstatic.wav")
+
+ end
+
end
diff --git a/gamedir/Data-1.13/TableData/Map/InteractiveActions.xml b/gamedir/Data-1.13/TableData/Map/InteractiveActions.xml
index dd38e6441..1b32af6a5 100644
--- a/gamedir/Data-1.13/TableData/Map/InteractiveActions.xml
+++ b/gamedir/Data-1.13/TableData/Map/InteractiveActions.xml
@@ -27,6 +27,7 @@
3: take water from a water tap
4: buy soda from a soda machine
5: play a minigame
+ 6: various
difficulty how hard it is to perform action
luaactionid if this is set, lua script HandleInteractiveActionResult() in Overhead.lua is called
with this Id to perform special actions. If no ID is set, the standard action is called.
@@ -1013,6 +1014,64 @@
5
51
-
+
+
+
+
+
+ m-furn4.sti
+ 12
+ 13
+ 6
+ 52
+
+
+
+ lawless.sti
+ 3
+ 6
+ 52
+
+
+
+
+ m-furn4.sti
+ 14
+ 15
+ 6
+ 53
+
+
+
+
+ furn_9.sti
+ 0
+ 1
+ 6
+ 54
+
+
+
+
+ furn_9.sti
+ 12
+ 13
+ 14
+ 15
+ 6
+ 54
+
+
+
+
+ furn_7.sti
+ 10
+ 20
+ 21
+ 22
+ 6
+ 55
+
+
diff --git a/gamedir/Data/CURSORS/gearwheel.sti b/gamedir/Data/CURSORS/gearwheel.sti
new file mode 100644
index 000000000..68dfbe25a
Binary files /dev/null and b/gamedir/Data/CURSORS/gearwheel.sti differ
diff --git a/gamedir/Data/CURSORS/gearwheel_r.sti b/gamedir/Data/CURSORS/gearwheel_r.sti
new file mode 100644
index 000000000..b1ed8c250
Binary files /dev/null and b/gamedir/Data/CURSORS/gearwheel_r.sti differ
diff --git a/gamedir/Data/Sounds/billiard.wav b/gamedir/Data/Sounds/billiard.wav
new file mode 100644
index 000000000..8e2f9adab
Binary files /dev/null and b/gamedir/Data/Sounds/billiard.wav differ
diff --git a/gamedir/Data/Sounds/tabletennis.wav b/gamedir/Data/Sounds/tabletennis.wav
new file mode 100644
index 000000000..b9eeee72e
Binary files /dev/null and b/gamedir/Data/Sounds/tabletennis.wav differ
diff --git a/gamedir/Data/Sounds/toilet.wav b/gamedir/Data/Sounds/toilet.wav
new file mode 100644
index 000000000..2085df6ae
Binary files /dev/null and b/gamedir/Data/Sounds/toilet.wav differ
diff --git a/gamedir/Data/Sounds/tvstatic.wav b/gamedir/Data/Sounds/tvstatic.wav
new file mode 100644
index 000000000..c54535078
Binary files /dev/null and b/gamedir/Data/Sounds/tvstatic.wav differ