View Issue Details

IDProjectCategoryView StatusLast Update
0001938FSSCPtablespublic2009-06-20 07:37
Reportersigtau Assigned Toportej05  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.6.11 
Fixed in Version3.6.11 
Summary0001938: Music TBMs will crash FSO if there is not a Menu Music section
DescriptionI attempted to create a Music TBM for my mod, and the TBM was to only contain Soundtrack section. However, FSO and FRED crashed whenever I would start them, complaining that they were expecting a Menu Music section directly after the Soundtrack sections.

Adding a blank Menu Music section after the Soundtrack sections seems to have remedied the problem temporarily, but because I don't have a use for any extra Menu Music table sections, having to type up a blank Menu Music section is redundancy.

I have attached my table file (the working one) as an example of what FSO currently requires out of a Music TBM, including the blank Menu Music section.
TagsNo tags attached.

Activities

2009-06-12 21:12

 

solarmusic-mus.tbm (1,651 bytes)

sigtau

2009-06-12 21:13

reporter   ~0010973

I am fairly sure this affects ALL VERSIONS of FSO. However, I have not confirmed this. But because it was discovered in the release candidates for 3.6.10, this likely means it was overlooked in past versions of FSO.

portej05

2009-06-19 17:26

reporter   ~0010981

I can confirm this.
Not 100% sure how to go about fixing though.

2009-06-19 17:57

 

mantis1938try1.diff (1,359 bytes)   
Index: code/gamesnd/eventmusic.cpp
===================================================================
--- code/gamesnd/eventmusic.cpp	(revision 5343)
+++ code/gamesnd/eventmusic.cpp	(working copy)
@@ -1455,7 +1455,7 @@
 	bool nocreate = false;
 
 	//Start parsing soundtrack
-	required_string("#Soundtrack Start");
+	//required_string("#Soundtrack Start");
 
 	//Get the name, and do we have this track already?
 	required_string("$SoundTrack Name:");
@@ -1670,21 +1670,20 @@
 		read_file_text(filename, CF_TYPE_TABLES);
 		reset_parse();		
 
-		// Loop through all the sound-tracks
-		if(check_for_string("#Soundtrack Start"))
+		while ( skip_to_start_of_string_either("#Soundtrack Start", "#Menu Music Start", NULL ) )
 		{
-			while (required_string_either("#Menu Music Start","#SoundTrack Start")) {
-				parse_soundtrack();
+			if ( optional_string("#Soundtrack Start") )
+			{
+				parse_soundtrack( );
 			}
-		}
-
-		// Parse the menu music section
-		if(optional_string("#Menu Music Start"))
-		{
-			while (required_string_either("#Menu Music End","$Name:")) {
-				parse_menumusic();
+			if ( optional_string("#Menu Music Start") )
+			{
+				while ( check_for_string( "$Name:" ) )
+				{
+					parse_menumusic( );
+				}
+				required_string("#Menu Music End");
 			}
-			required_string("#Menu Music End");
 		}
 
 		// close localization
mantis1938try1.diff (1,359 bytes)   

portej05

2009-06-20 07:37

reporter   ~0010982

Fix committed.

Issue History

Date Modified Username Field Change
2009-06-12 21:12 sigtau New Issue
2009-06-12 21:12 sigtau File Added: solarmusic-mus.tbm
2009-06-12 21:13 sigtau Note Added: 0010973
2009-06-19 17:26 portej05 Note Added: 0010981
2009-06-19 17:26 portej05 Status new => confirmed
2009-06-19 17:57 portej05 File Added: mantis1938try1.diff
2009-06-19 18:39 portej05 Status confirmed => assigned
2009-06-19 18:39 portej05 Assigned To => portej05
2009-06-20 07:37 portej05 Status assigned => resolved
2009-06-20 07:37 portej05 Fixed in Version => 3.6.11
2009-06-20 07:37 portej05 Resolution open => fixed
2009-06-20 07:37 portej05 Note Added: 0010982