From 935e4b0183ec997f2bddc04d72f3499bc037ea46 Mon Sep 17 00:00:00 2001 From: allen Date: Sun, 29 Dec 2013 08:33:46 +0000 Subject: [PATCH] Added a new sanity check to the end of the song database. --- deploy/DATA/DMX Songlist.ods | Bin 26734 -> 27363 bytes deploy/DATA/song_db.csv | 11 ++++------- src/source/main.cpp | 13 +++++++++++-- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/deploy/DATA/DMX Songlist.ods b/deploy/DATA/DMX Songlist.ods index 1b9c936581d3240372a2ab31e7a16d7a0b7eb14d..1d4e8005e9cfeef84e0fe1371e80d921cd5024b6 100644 GIT binary patch delta 25085 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 diff --git a/deploy/DATA/song_db.csv b/deploy/DATA/song_db.csv index 38c1d01..3ed7756 100644 --- a/deploy/DATA/song_db.csv +++ b/deploy/DATA/song_db.csv @@ -1,4 +1,4 @@ -DMXDB,November 22nd 2013,113,1,,,,,,,,,,,,, +DMXDB,December 29th 2013,113,1,,,,,,,,,,,,, 101,BROKEN MY HEART,NAOKI feat.PAULA TERRY,160,160,DATA/mov/brok.seq,4,206,7,281,6,210,6,291,1,0,0 102,PUT YOUR FAITH IN ME,UZI-LAY,120,120,DATA/mov/puty.seq,1,128,5,176,3,176,5,222,1,0,0 103,GORGEOUS 2012,THE SURRENDERS,135,135,DATA/mov/gorg.seq,6,235,7,222,6,227,7,387,1,0,0 @@ -108,11 +108,8 @@ DMXDB,November 22nd 2013,113,1,,,,,,,,,,,,, 322,DYNAMITE RAVE |~super euro ver.~,NAOKI and Y&Co.,150,150,DATA/mov/luv2.seq,4,0,6,0,4,0,6,0,5,0,0 323,Popteen,Domino,151,151,DATA/mov/luv2.seq,2,0,6,0,3,0,6,0,5,0,0 324,Elemental Creation,dj TAKA meets DJ YOSHITAKA,212,424,DATA/mov/boss2.seq,6,310,9,527,6,312,10,541,5,1,0 -325,Follow Tomorrow,HHHxMMxST,140,140,DATA/mov/peti.seq,4,0,7,0,5,0,7,0,5,0,1 -326,Koko Soko (Akiba Koubou Remix),SMILE.DK,152,152,DATA/mov/peti.seq,3,0,7,0,5,0,7,0,5,0,1 +325,Follow Tomorrow,HHHxMMxST,140,140,DATA/mov/peti.seq,4,0,8,0,5,0,8,0,5,0,1 +326,Koko Soko |(Akiba Koubou Remix),SMILE.DK,152,152,DATA/mov/peti.seq,3,0,7,0,5,0,7,0,5,0,1 385,SUPER EURO NOW |~NONSTOP~ ,MIXED BY GU TEAM ,160,160,DATA/mov/bfor.seq,0,0,7,0,0,0,8,0,101,0,0 386,HIGH SPEED CONCLUSION,Ryutaro Nakahara,183,185,DATA/mov/bfor.seq,0,0,8,0,0,0,8,0,101,0,0 -387,Xmix2,Non Stop Mix Special,150,150,DATA/mov/bfor.seq,0,0,0,0,0,0,0,0,0,0,0 -388,Xmix3,Non Stop Mix Special,150,150,DATA/mov/bfor.seq,0,0,0,0,0,0,0,0,0,0,0 -389,Xmix4,Non Stop Mix Special,150,150,DATA/mov/bfor.seq,0,0,0,0,0,0,0,0,0,0,0 -390,Xmix5,Non Stop Mix Special,150,150,DATA/mov/bfor.seq,0,0,0,0,0,0,0,0,0,0,0 +9999,End Of List,End of List,150,150,no,0,0,0,0,0,0,0,0,0,0,0 diff --git a/src/source/main.cpp b/src/source/main.cpp index 29d8b49..a3bdfd1 100644 --- a/src/source/main.cpp +++ b/src/source/main.cpp @@ -1229,7 +1229,7 @@ int loadSongDB() allegro_message("Unexpected version number in song_db.csv: found %d expected 1", verNum); return -1; } - + fscanf_s(fp, "%[,] ", &sanityCheck, 32); // get rid of those commas songIDs = (int *)malloc(sizeof(int) * NUM_SONGS); @@ -1241,7 +1241,7 @@ int loadSongDB() // now read a bunch of lines that look like: // -> 101,BROKEN MY HEART,NAOKI feat.PAULA TERRY,brok.seq,4,0,7,0,6,0,6,0,1,0,0 - for ( int i = 0; i < NUM_SONGS; i++ ) + for ( int i = 0; i < NUM_SONGS+1; i++ ) { int id = 0; char name[64] = ""; @@ -1258,6 +1258,15 @@ int loadSongDB() fscanf_s(fp, "%d,%[^,],%[^,],%d,%d,%[^,],%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d ", &id, &name, 64, &artist, 64, &minbpm, &maxbpm, &movie, 64, &sm, &smnotes, &sw, &swnotes, &dm, &dmnotes, &dw, &dwnotes, &version, &flag, &isNew); + if ( i == NUM_SONGS ) + { + if ( id == 9999 ) + { + break; // good! this was another sanity check + } + return -1; // the declared NUM_SONGS was incorrect + } + songIDs[i] = id; songTitles[i].assign(name, strlen(name)); songArtists[i].assign(artist, strlen(artist));