Allow sounds and channels to be referred to by name

This commit is contained in:
stevenhowes
2021-09-01 19:11:24 +01:00
parent 5e21666b2e
commit 42c5fcad69
3 changed files with 68 additions and 18 deletions
+37 -1
View File
@@ -1,4 +1,22 @@
<?php <?php
// Parse h/sounds to get friendly names for samples and channels
$soundnames = array();
$channelnames = array();
$sound_h = file_get_contents("h/Sound");
foreach(preg_split("/((\r?\n)|(\r\n?))/", $sound_h) as $line)
{
if(strpos($line,"/*soundid*/"))
{
$soundsplit = preg_split("/=|\,/",$line);
$soundnames[trim($soundsplit[0])] = trim($soundsplit[1]);
}
if(strpos($line,"/*channelid*/"))
{
$soundsplit = preg_split("/=|\,/",$line);
$channelnames[trim($soundsplit[0])] = trim($soundsplit[1]);
}
}
$script = file_get_contents("m2_txt"); $script = file_get_contents("m2_txt");
$inevent = -1; $inevent = -1;
@@ -59,7 +77,25 @@
else else
{ {
$csv = str_getcsv($split[1]); $csv = str_getcsv($split[1]);
$eventactions[] = array("Event"=>$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; break;
case "SetTile": case "SetTile":
+20 -6
View File
@@ -37,14 +37,28 @@
#define DataVox_AdjustMemory 0x443A2 #define DataVox_AdjustMemory 0x443A2
#define DataVox_SetInternalPitch 0x443A3 #define DataVox_SetInternalPitch 0x443A3
// Formatting is important as compile.php parses this
enum pcmchannel_e{ enum pcmchannel_e{
PCMCHANNEL_UI = 5, PCMCHANNEL_UI = 5, /*channelid*/
PCMCHANNEL_PLAYER = 5, PCMCHANNEL_PLAYER = 5, /*channelid*/
PCMCHANNEL_NPC1 = 6, PCMCHANNEL_NPC1 = 6, /*channelid*/
PCMCHANNEL_NPC2 = 7, PCMCHANNEL_NPC2 = 7, /*channelid*/
PCMCHANNEL_AMBIENT = 8 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 { struct CompositionElement {
signed short int Start; signed short int Start;
+11 -11
View File
@@ -94,18 +94,18 @@ Event("PlayerStart")
# Mission brief # Mission brief
########################################### ###########################################
Event("Brief") Event("Brief")
Sound(5,4) # (Commmunicator) Sound(PCMSAMPLE_HAIL, PCMCHANNEL_UI)
########################################### ###########################################
# Shuttle bay briefing room # Shuttle bay briefing room
########################################### ###########################################
Event("SBBR-DOOROPEN") Event("SBBR-DOOROPEN")
SetOverlayTile(713,31) # Open door SetOverlayTile(713,31) # Open door
Sound(5,5) # (Door) Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER)
ReArm("SBBR-DOORCLOSE") ReArm("SBBR-DOORCLOSE")
Event("SBBR-DOORCLOSE") Event("SBBR-DOORCLOSE")
SetOverlayTile(713,29) # Closed door SetOverlayTile(713,29) # Closed door
Sound(5,5) # (Door) Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER)
ReArm("SBBR-DOOROPEN") ReArm("SBBR-DOOROPEN")
Event("SBBR-AREA") Event("SBBR-AREA")
AreaName(2) # (Briefing room) AreaName(2) # (Briefing room)
@@ -117,12 +117,12 @@ Event("SBBR-AREA")
Event("SB-DOOROPEN") Event("SB-DOOROPEN")
SetOverlayTile(1213,68) # Open door (left) SetOverlayTile(1213,68) # Open door (left)
SetOverlayTile(1313,69) # Open door (right) SetOverlayTile(1313,69) # Open door (right)
Sound(5,5) # (Door) Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER)
ReArm("SB-DOORCLOSE") ReArm("SB-DOORCLOSE")
Event("SB-DOORCLOSE") Event("SB-DOORCLOSE")
SetOverlayTile(1213,43) # Closed door (left) SetOverlayTile(1213,43) # Closed door (left)
SetOverlayTile(1313,44) # Closed door (right) SetOverlayTile(1313,44) # Closed door (right)
Sound(5,5) # (Door) Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER)
ReArm("SB-DOOROPEN") ReArm("SB-DOOROPEN")
Event("SB-AREA") Event("SB-AREA")
AreaName(1) # (Shuttle bay) AreaName(1) # (Shuttle bay)
@@ -134,12 +134,12 @@ Event("SB-AREA")
Event("CB1-DOOROPEN") Event("CB1-DOOROPEN")
SetOverlayTile(2213,68) # Open door (left) SetOverlayTile(2213,68) # Open door (left)
SetOverlayTile(2313,69) # Open door (right) SetOverlayTile(2313,69) # Open door (right)
Sound(5,5) # (Door) Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER)
ReArm("CB1-DOORCLOSE") ReArm("CB1-DOORCLOSE")
Event("CB1-DOORCLOSE") Event("CB1-DOORCLOSE")
SetOverlayTile(2213,43) # Closed door (left) SetOverlayTile(2213,43) # Closed door (left)
SetOverlayTile(2313,44) # Closed door (right SetOverlayTile(2313,44) # Closed door (right
Sound(5,5) # (Door) Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER)
ReArm("CB1-DOOROPEN") ReArm("CB1-DOOROPEN")
Event("CB-AREA") Event("CB-AREA")
AreaName(3) # (Cargo bay) AreaName(3) # (Cargo bay)
@@ -151,12 +151,12 @@ Event("CB-AREA")
Event("CB2-DOOROPEN") Event("CB2-DOOROPEN")
SetOverlayTile(3213,68) # Open door (left) SetOverlayTile(3213,68) # Open door (left)
SetOverlayTile(3313,69) # Open door (right) SetOverlayTile(3313,69) # Open door (right)
Sound(5,5) # (Door) Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER)
ReArm("CB2-DOORCLOSE") ReArm("CB2-DOORCLOSE")
Event("CB2-DOORCLOSE") Event("CB2-DOORCLOSE")
SetOverlayTile(3213,43) # Closed door (left) SetOverlayTile(3213,43) # Closed door (left)
SetOverlayTile(3313,44) # Closed door (right SetOverlayTile(3313,44) # Closed door (right
Sound(5,5) # (Door) Sound(PCMSAMPLE_DOOR, PCMCHANNEL_PLAYER)
ReArm("CB2-DOOROPEN") ReArm("CB2-DOOROPEN")
########################################### ###########################################
@@ -193,7 +193,7 @@ Event("REDALERTON")
SetOverlayTile(2413,84) SetOverlayTile(2413,84)
SetOverlayTile(3113,84) # Cargo bay two SetOverlayTile(3113,84) # Cargo bay two
SetOverlayTile(3413,84) SetOverlayTile(3413,84)
Sound(8,6) # (Klaxon) Sound(PCMSAMPLE_ALERT, PCMCHANNEL_AMBIENT)
ReArm("REDALERTON") ReArm("REDALERTON")
Event("REDALERTOFF") Event("REDALERTOFF")
Schedule("REDALERTON",125) Schedule("REDALERTON",125)
@@ -241,5 +241,5 @@ Event("TRAC2")
Event("TRACOFF") Event("TRACOFF")
SetOverlayTile(407,0) # Empty SetOverlayTile(407,0) # Empty
Event("TRACSOUND") Event("TRACSOUND")
Sound(5,7) # (Tractor beam ending) Sound(PCMSAMPLE_TRACTOREND, PCMCHANNEL_PLAYER)
ReArm("TRACSOUND") ReArm("TRACSOUND")