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
// 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");
$inevent = -1;
@@ -59,7 +77,25 @@
else
{
$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;
case "SetTile":
+20 -6
View File
@@ -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;
+11 -11
View File
@@ -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")