From 42c5fcad6928462aec6decdd0abd425287910853 Mon Sep 17 00:00:00 2001 From: stevenhowes <38082088+stevenhowes@users.noreply.github.com> Date: Wed, 1 Sep 2021 19:11:24 +0100 Subject: [PATCH] Allow sounds and channels to be referred to by name --- !TheEsc/compile.php | 38 +++++++++++++++++++++++++++++++++++++- !TheEsc/h/Sound | 26 ++++++++++++++++++++------ !TheEsc/m2_txt | 22 +++++++++++----------- 3 files changed, 68 insertions(+), 18 deletions(-) diff --git a/!TheEsc/compile.php b/!TheEsc/compile.php index e218f65..234a0a2 100644 --- a/!TheEsc/compile.php +++ b/!TheEsc/compile.php @@ -1,4 +1,22 @@ $inevent,"Action"=>2,"ActionValue"=>$csv[1],"ActionTarget"=>$csv[0]); + $csv[0] = trim($csv[0]); + $csv[1] = trim($csv[1]); + + if(isset($soundnames[$csv[0]])) + $csv[0] = $soundnames[$csv[0]]; + if(!is_numeric($csv[0])) + { + echo "Sound '" . $csv[0] . "' not recognised\n"; + die(); + } + + if(isset($channelnames[$csv[1]])) + $csv[1] = $channelnames[$csv[1]]; + if(!is_numeric($csv[1])) + { + echo "Channel '" . $csv[1] . "' not recognised\n"; + die(); + } + $eventactions[] = array("Event"=>$inevent,"Action"=>2,"ActionValue"=>$csv[0],"ActionTarget"=>$csv[1]); } break; case "SetTile": diff --git a/!TheEsc/h/Sound b/!TheEsc/h/Sound index 56db831..e30df6e 100644 --- a/!TheEsc/h/Sound +++ b/!TheEsc/h/Sound @@ -37,14 +37,28 @@ #define DataVox_AdjustMemory 0x443A2 #define DataVox_SetInternalPitch 0x443A3 +// Formatting is important as compile.php parses this enum pcmchannel_e{ - PCMCHANNEL_UI = 5, - PCMCHANNEL_PLAYER = 5, - PCMCHANNEL_NPC1 = 6, - PCMCHANNEL_NPC2 = 7, - PCMCHANNEL_AMBIENT = 8 + PCMCHANNEL_UI = 5, /*channelid*/ + PCMCHANNEL_PLAYER = 5, /*channelid*/ + PCMCHANNEL_NPC1 = 6, /*channelid*/ + PCMCHANNEL_NPC2 = 7, /*channelid*/ + PCMCHANNEL_AMBIENT = 8, /*channelid*/ + PCMCHANNEL_MAX + }; + +// Formatting is important as compile.php parses this +enum pcmsample_e{ + PCMSAMPLE_DURNOTORPEDO = 0, /*soundid*/ + PCMSAMPLE_PHASER = 1, /*soundid*/ + PCMSAMPLE_SHIPEXPLODE = 2, /*soundid*/ + PCMSAMPLE_TRACTOR = 3, /*soundid*/ + PCMSAMPLE_HAIL = 4, /*soundid*/ + PCMSAMPLE_DOOR = 5, /*soundid*/ + PCMSAMPLE_ALERT = 6, /*soundid*/ + PCMSAMPLE_TRACTOREND = 7, /*soundid*/ + PCMSAMPLE_MAX }; -enum pcmsample_e{PCMSAMPLE_DURNOTORPEDO, PCMSAMPLE_PHASER, PCMSAMPLE_SHIPEXPLODE, PCMSAMPLE_TRACTOR, PCMSAMPLE_HAIL, PCMSAMPLE_DOOR, PCMSAMPLE_ALERT, PCMSAMPLE_TRACTOREND, PCMSAMPLE_MAX}; struct CompositionElement { signed short int Start; diff --git a/!TheEsc/m2_txt b/!TheEsc/m2_txt index 51bab15..4b8cc11 100644 --- a/!TheEsc/m2_txt +++ b/!TheEsc/m2_txt @@ -94,18 +94,18 @@ Event("PlayerStart") # Mission brief ########################################### Event("Brief") - Sound(5,4) # (Commmunicator) + Sound(PCMSAMPLE_HAIL, PCMCHANNEL_UI) ########################################### # Shuttle bay briefing room ########################################### Event("SBBR-DOOROPEN") SetOverlayTile(713,31) # Open door - Sound(5,5) # (Door) + Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER) ReArm("SBBR-DOORCLOSE") Event("SBBR-DOORCLOSE") SetOverlayTile(713,29) # Closed door - Sound(5,5) # (Door) + Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER) ReArm("SBBR-DOOROPEN") Event("SBBR-AREA") AreaName(2) # (Briefing room) @@ -117,12 +117,12 @@ Event("SBBR-AREA") Event("SB-DOOROPEN") SetOverlayTile(1213,68) # Open door (left) SetOverlayTile(1313,69) # Open door (right) - Sound(5,5) # (Door) + Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER) ReArm("SB-DOORCLOSE") Event("SB-DOORCLOSE") SetOverlayTile(1213,43) # Closed door (left) SetOverlayTile(1313,44) # Closed door (right) - Sound(5,5) # (Door) + Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER) ReArm("SB-DOOROPEN") Event("SB-AREA") AreaName(1) # (Shuttle bay) @@ -134,12 +134,12 @@ Event("SB-AREA") Event("CB1-DOOROPEN") SetOverlayTile(2213,68) # Open door (left) SetOverlayTile(2313,69) # Open door (right) - Sound(5,5) # (Door) + Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER) ReArm("CB1-DOORCLOSE") Event("CB1-DOORCLOSE") SetOverlayTile(2213,43) # Closed door (left) SetOverlayTile(2313,44) # Closed door (right - Sound(5,5) # (Door) + Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER) ReArm("CB1-DOOROPEN") Event("CB-AREA") AreaName(3) # (Cargo bay) @@ -151,12 +151,12 @@ Event("CB-AREA") Event("CB2-DOOROPEN") SetOverlayTile(3213,68) # Open door (left) SetOverlayTile(3313,69) # Open door (right) - Sound(5,5) # (Door) + Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER) ReArm("CB2-DOORCLOSE") Event("CB2-DOORCLOSE") SetOverlayTile(3213,43) # Closed door (left) SetOverlayTile(3313,44) # Closed door (right - Sound(5,5) # (Door) + Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER) ReArm("CB2-DOOROPEN") ########################################### @@ -193,7 +193,7 @@ Event("REDALERTON") SetOverlayTile(2413,84) SetOverlayTile(3113,84) # Cargo bay two SetOverlayTile(3413,84) - Sound(8,6) # (Klaxon) + Sound(PCMSAMPLE_ALERT, PCMCHANNEL_AMBIENT) ReArm("REDALERTON") Event("REDALERTOFF") Schedule("REDALERTON",125) @@ -241,5 +241,5 @@ Event("TRAC2") Event("TRACOFF") SetOverlayTile(407,0) # Empty Event("TRACSOUND") - Sound(5,7) # (Tractor beam ending) + Sound(PCMSAMPLE_TRACTOREND, PCMCHANNEL_PLAYER) ReArm("TRACSOUND")