summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/DefCore.txt8
-rw-r--r--TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/Graphics.pngbin0 -> 146 bytes
-rw-r--r--TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/Script.c5
-rw-r--r--TemplePushing.c4s/Script.c50
7 files changed, 58 insertions, 9 deletions
diff --git a/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/DefCore.txt b/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/DefCore.txt
new file mode 100644
index 0000000..c347606
--- /dev/null
+++ b/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/DefCore.txt
@@ -0,0 +1,8 @@
+[DefCore]
+id=TBMC
+Name=ToggleBackgroundMusic
+Version=4,9,5
+Category=C4D_StaticBack|C4D_Rule
+Width=1
+Height=1
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/DescDE.txt b/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/DescDE.txt
new file mode 100644
index 0000000..ecc13cb
--- /dev/null
+++ b/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/DescDE.txt
@@ -0,0 +1 @@
+Regel zum Ein- und Ausschalten der Hintergrundmusik. \ No newline at end of file
diff --git a/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/DescUS.txt b/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/DescUS.txt
new file mode 100644
index 0000000..15bd48e
--- /dev/null
+++ b/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/DescUS.txt
@@ -0,0 +1 @@
+Rule for enabling/disabling background music. \ No newline at end of file
diff --git a/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/Graphics.png b/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/Graphics.png
new file mode 100644
index 0000000..be6bd78
--- /dev/null
+++ b/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/Names.txt b/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/Names.txt
new file mode 100644
index 0000000..75e50ee
--- /dev/null
+++ b/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Hintergrundmusik ein-/ausschalten
+US:Toggle background music \ No newline at end of file
diff --git a/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/Script.c b/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/Script.c
new file mode 100644
index 0000000..ef9b34e
--- /dev/null
+++ b/TemplePushing.c4s/Rules.c4d/ToggleBackgroundMusic.c4d/Script.c
@@ -0,0 +1,5 @@
+/*-- Rule: Toggle background music --*/
+
+#strict 2
+
+protected func Activate(int player) { GameCall("ToggleAmbienceSounds", player); }
diff --git a/TemplePushing.c4s/Script.c b/TemplePushing.c4s/Script.c
index d123912..5df463a 100644
--- a/TemplePushing.c4s/Script.c
+++ b/TemplePushing.c4s/Script.c
@@ -10,6 +10,10 @@ static const SORT_SORTCOL_Team = 0, SORT_SORTCOL_Player = 1, SORT_SORTCOL_Leaver
static const MaxTeamCount = 3;
+static const PlrData_EnableAmbienceSounds = "TemplePushing_EnableAmbienceSounds";
+static const PlrData_EnableAmbienceSounds_Yes = 1;
+static const PlrData_EnableAmbienceSounds_No = 2;
+
static section, mode;
static numRelaunches;
static deathmatchEnabled, deathmatchWinScore;
@@ -79,6 +83,8 @@ func InitializePlayer(int player)
SetScoreboardData(PlayerRow(player), SBRD_TeamSortCol, " ", GetPlayerTeam(player));
UpdateScoreboard(player);
LaunchClonk(player, GetCrew(player));
+
+ if (ambienceEnabled) DoAmbienceSounds(player);
}
func GetRelaunchesLeft(int player) { return numRelaunches - playerDeaths[GetPlayerID(player)]; }
@@ -185,15 +191,6 @@ func Script0()
LoadScenarioSection(DefinitionCall(sectionID, "SectionName"));
loadingSection = false;
section = CreateObject(sectionID, 0, 0, NO_OWNER);
-
- // Play ambience sounds
- if (ambienceEnabled)
- {
- for(var sound in section->SectionAmbienceSounds())
- {
- SoundLevel(sound[0], sound[1]);
- }
- }
// Create spawnpoints
if (mode != MODE_Apocalyptic)
@@ -248,6 +245,7 @@ func Script0()
CreateObject(MELE, 0, 0, NO_OWNER);
// Create rules
+ CreateObject(TBMC, 0, 0, NO_OWNER); // Rule for enabling/disabling music
if (extinguisherEnabled) CreateObject(_ETG, 0, 0, NO_OWNER);
if (suddendeathEnabled) CreateObject(SDDT, 0, 0, NO_OWNER);
if (rotateInJumpEnabled) CreateObject(RIJP, 0, 0, NO_OWNER);
@@ -683,3 +681,37 @@ func CheckGameStatus()
}
}
}
+
+func WantsAmbienceSounds(int player)
+{
+ // Check if user already specified in the past if he wants to enable ambience sounds
+ var preference = GetPlrExtraData(player, PlrData_EnableAmbienceSounds);
+ if (preference == PlrData_EnableAmbienceSounds_Yes) return true;
+ if (preference == PlrData_EnableAmbienceSounds_No) return false;
+ // Preference not set yet/invalid? Enable for non-league games and disable otherwise.
+ return !GetLeague();
+}
+
+func DoAmbienceSounds(int player)
+{
+ for (var sound in section->SectionAmbienceSounds())
+ {
+ Sound(sound[0], true, 0, sound[1], player + 1, WantsAmbienceSounds(player) * 2 - 1);
+ }
+}
+
+func ToggleAmbienceSounds(int player)
+{
+ var preference;
+ if (WantsAmbienceSounds(player))
+ {
+ preference = PlrData_EnableAmbienceSounds_No;
+ }
+ else
+ {
+ preference = PlrData_EnableAmbienceSounds_Yes;
+ }
+
+ SetPlrExtraData(player, PlrData_EnableAmbienceSounds, preference);
+ DoAmbienceSounds(player);
+} \ No newline at end of file