You can subscribe to this list here.
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(25) |
Jul
(288) |
Aug
(119) |
Sep
(31) |
Oct
(59) |
Nov
(458) |
Dec
(359) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2010 |
Jan
(268) |
Feb
(26) |
Mar
(36) |
Apr
(48) |
May
(119) |
Jun
(37) |
Jul
(173) |
Aug
(429) |
Sep
(137) |
Oct
(156) |
Nov
(59) |
Dec
(45) |
| 2011 |
Jan
(398) |
Feb
(257) |
Mar
(49) |
Apr
(5) |
May
(34) |
Jun
(11) |
Jul
(38) |
Aug
(12) |
Sep
(1) |
Oct
(49) |
Nov
(5) |
Dec
(10) |
| 2012 |
Jan
(21) |
Feb
(32) |
Mar
(20) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(173) |
Aug
|
Sep
(25) |
Oct
(6) |
Nov
(44) |
Dec
|
|
From: Yoda-JM <yo...@us...> - 2010-04-11 16:11:23
|
Module: performous
Branch: master
Commit: fb9e7003f267d24275b8dcfcbdfac9bf111ce87a
Author: Vincent Le Ligeour <yo...@us...>
Date: Sun Apr 11 18:11:06 2010 +0200
Added US Singstar video support
---
tools/ipu_conv.cpp | 73 ++++++++++++++++++++++++++-----------------------
tools/ipuconv.hh | 2 +-
tools/ss_extract.cpp | 14 +++++++---
3 files changed, 50 insertions(+), 39 deletions(-)
diff --git a/tools/ipu_conv.cpp b/tools/ipu_conv.cpp
index ecb504b..c71a23c 100644
--- a/tools/ipu_conv.cpp
+++ b/tools/ipu_conv.cpp
@@ -2,7 +2,7 @@
#include <iostream>
#include <stdexcept>
-IPUConv::IPUConv(std::vector<char> const& indata, std::string const& outfilename): infile(indata), outfile(outfilename.c_str()) {
+IPUConv::IPUConv(std::vector<char> const& indata, std::string const& outfilename, bool pal): infile(indata), outfile(outfilename.c_str()) {
int sizex;
int sizey;
int frames;
@@ -45,7 +45,7 @@ IPUConv::IPUConv(std::vector<char> const& indata, std::string const& outfilename
for (frame=0;frame<frames;frame++){
if (frame % 100 == 0) std::cout << "Frame: " << frame << "/" << frames << "\r" << std::flush;
flag = infile.get(8);
-
+
if (flag & 32) {
fprintf (stderr,"Intra VLC format not supported\n");
exit(1);
@@ -59,8 +59,12 @@ IPUConv::IPUConv(std::vector<char> const& indata, std::string const& outfilename
// 2 4:3
// 3 16:9
// 4 2.21:1
-
- outfile.putbits(0x3,4); // Framerate 3 25 fps
+
+ if(pal) {
+ outfile.putbits(0x3,4); // Framerate 3 25 fps
+ } else {
+ outfile.putbits(0x4,4); // Framerate 4 29.97 fps
+ }
outfile.putbits(0x30d4,18); // Bitrate ($3FFFF=Variabel)
outfile.putbits(1,1); // Marker, soll immer 1 sein
@@ -68,10 +72,10 @@ IPUConv::IPUConv(std::vector<char> const& indata, std::string const& outfilename
outfile.putbits(0,1); // Constrained Parameter Flag
outfile.putbits(0,1); // Intra Matrix Standard
outfile.putbits(0,1); // Non-Intra Matrix Standard
-// outfile.putbits(0x2cee100,32);
-
+ //outfile.putbits(0x2cee100,32);
+
if (!(flag & 128)) {
- // Sequence Extension
+ // Sequence Extension
outfile.putbits(0x1b5,32);
outfile.putbits(0x1,4); // Start Code Identifier
outfile.putbits(0x4,4); // Main Profil
@@ -86,23 +90,24 @@ IPUConv::IPUConv(std::vector<char> const& indata, std::string const& outfilename
outfile.putbits(0x0,1); // Low Delay
outfile.putbits(0x0,2); // Framerate Extension Numerator
outfile.putbits(0x0,5); // Framerate Extension Denominator
-// outfile.putbits(0x148a0001,32);
-// outfile.putbits(0,16);
-
-/* // Sequence Display Extension
- * outfile.putbits(0x1b5,32);
- * outfile.putbits(0x2,4); // Start Code Identifier
- * outfile.putbits(0x1,3); // Video Format 1 PAL
- * outfile.putbits(0x0,1); // Bit Color
- *
-// outfile.putbits(0x23050504,32);
- *
- * outfile.putbits(sizex,14); // Display Breite
- * outfile.putbits(1,1); // Marker
- * outfile.putbits(sizey,14); // Display Höhe
- * outfile.putbits(0,3);
- */
- }
+ //outfile.putbits(0x148a0001,32);
+ //outfile.putbits(0,16);
+
+ // Sequence Display Extension
+ /*
+ outfile.putbits(0x1b5,32);
+ outfile.putbits(0x2,4); // Start Code Identifier
+ outfile.putbits(0x1,3); // Video Format 1 PAL
+ outfile.putbits(0x0,1); // Bit Color
+
+ outfile.putbits(0x23050504,32);
+
+ outfile.putbits(sizex,14); // Display Breite
+ outfile.putbits(1,1); // Marker
+ outfile.putbits(sizey,14); // Display Höhe
+ outfile.putbits(0,3);
+ */
+ }
}
// Write GOP Header
@@ -115,7 +120,7 @@ IPUConv::IPUConv(std::vector<char> const& indata, std::string const& outfilename
outfile.putbits(frame%25,6); // Frames
outfile.putbits(1,1); // Closed GOP
outfile.putbits(0,6);
-
+
// Write Picture Header
outfile.putbits(0x100,32);
outfile.putbits(0x0,10); // Temporal Reference
@@ -123,7 +128,7 @@ IPUConv::IPUConv(std::vector<char> const& indata, std::string const& outfilename
outfile.putbits(0xffff,16); // VBV Delay
outfile.putbits(0,3);
// outfile.putbits(0xffff8,32);
-
+
// Write Picture Coding Extension
if (!(flag & 128)) {
outfile.putbits(0x1b5,32);
@@ -150,7 +155,7 @@ IPUConv::IPUConv(std::vector<char> const& indata, std::string const& outfilename
quant = 1;
for(mb=0;mb<(sizex/16)*(sizey/16);mb++) {
if (mb>0 && !infile.get(1)) throw std::runtime_error("MBA_Incr wrong in IPU");
- // Save position (in IPU) of Macroblock
+ // Save position (in IPU) of Macroblock
infile.getpos(&MBData[mb].Byte,&MBData[mb].Bit);
if (infile.get(1)) intraquant = 0;
@@ -168,7 +173,7 @@ IPUConv::IPUConv(std::vector<char> const& indata, std::string const& outfilename
if ( (size = infile.get_dcs_y())) {
diff = infile.get(size);
if (!(diff & (1 << (size - 1)))) diff = (-1 << size) | (diff + 1);
- dct_dc_y += diff;
+ dct_dc_y += diff;
}
if (block==0) MBData[mb].dct_dc_y = dct_dc_y;
} else {
@@ -192,7 +197,7 @@ IPUConv::IPUConv(std::vector<char> const& indata, std::string const& outfilename
}
infile.getpos(&FrameByte,&FrameBit); // Position speichern
-
+
// Write Macroblocks
dct_dc_y = 0;
dct_dc_cb = 0;
@@ -200,10 +205,10 @@ IPUConv::IPUConv(std::vector<char> const& indata, std::string const& outfilename
quant = 1;
for(mb=0;mb<(sizex/16)*(sizey/16);mb++) {
mb_source = (mb % (sizex / 16)) * (sizey / 16)+ mb / (sizex / 16); // Singstar
-// mb_source = mb; // Other IPUs
-
+ // mb_source = mb; // Other IPUs
+
outfile.putbits(1,1); // MBA_Incr=1
-
+
infile.setpos(MBData[mb_source].Byte,MBData[mb_source].Bit);
if (infile.get(1)) intraquant = 0;
@@ -214,7 +219,7 @@ IPUConv::IPUConv(std::vector<char> const& indata, std::string const& outfilename
if (mb == 0 || (MBData[mb_source].quant != quant)) outfile.putbits(1,2);
else outfile.putbits(1,1);
-
+
if (flag & 4) outfile.putbits(infile.get(1),1);
if (intraquant) quant = infile.get(5);
@@ -281,7 +286,7 @@ IPUConv::IPUConv(std::vector<char> const& indata, std::string const& outfilename
outfile.putbuf();
infile.setpos(FrameByte,FrameBit);
-
+
// Jump to End of Frame
if (!infile.next_start_code()) throw std::runtime_error("End of Stream");
if (infile.get(32) != 0x000001b0) throw std::runtime_error("No 1b0");
diff --git a/tools/ipuconv.hh b/tools/ipuconv.hh
index 596e3f3..da11a45 100644
--- a/tools/ipuconv.hh
+++ b/tools/ipuconv.hh
@@ -15,6 +15,6 @@ class IPUConv {
outBitFile outfile;
int vlc(int write);
public:
- IPUConv(std::vector<char> const& indata, std::string const& outfilename);
+ IPUConv(std::vector<char> const& indata, std::string const& outfilename, bool pal = true);
};
diff --git a/tools/ss_extract.cpp b/tools/ss_extract.cpp
index 524cdad..21ce01b 100644
--- a/tools/ss_extract.cpp
+++ b/tools/ss_extract.cpp
@@ -184,8 +184,14 @@ void video_us(Song& song, PakFile const& iavFile, PakFile const& indFile, fs::pa
switch(frame%5) {
case 0:
// first 4 bytes are packet length
- iavFile.get(data, iav_offset + 4, size - 4);
- ipudata.insert(ipudata.end(), data.begin(), data.end());
+ iavFile.get(data, iav_offset, size);
+ {
+ unsigned int opaque_footer_size = 3 * sizeof(int);
+ unsigned int chunk1 = getLE32(&data[0]);
+ ipudata.insert(ipudata.end(), data.begin() + 4, data.begin() + chunk1 - opaque_footer_size);
+ unsigned int chunk2 = getLE32(&data[chunk1]);
+ ipudata.insert(ipudata.end(), data.begin() + chunk1 + 4, data.begin() + chunk1 + chunk2 - opaque_footer_size);
+ }
iav_offset += size;
break;
case 1:
@@ -193,13 +199,13 @@ void video_us(Song& song, PakFile const& iavFile, PakFile const& indFile, fs::pa
case 3:
case 4:
// audio
- iav_offset = size;
+ iav_offset += size;
break;
}
frame++;
}
- IPUConv(ipudata, (outPath / "video.mpg").string());
+ IPUConv(ipudata, (outPath / "video.mpg").string(), false);
song.video = outPath / "video.mpg";
}
|
|
From: Yoda-JM <yo...@us...> - 2010-04-11 15:41:28
|
Module: performous
Branch: master
Commit: 46e789f2bd67c9f150e28a1471fb2e2207b60a49
Author: Vincent Le Ligeour <yo...@us...>
Date: Sun Apr 11 17:41:12 2010 +0200
Fixed previous commit
---
tools/ss_extract.cpp | 40 ++++++++++++++++++++--------------------
1 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/tools/ss_extract.cpp b/tools/ss_extract.cpp
index b7549e0..524cdad 100644
--- a/tools/ss_extract.cpp
+++ b/tools/ss_extract.cpp
@@ -223,8 +223,8 @@ void music_us(Song& song, PakFile const& iavFile, PakFile const& indFile, fs::pa
bool karaoke = false;
unsigned int iav_offset = 0;
unsigned int frame = 0;
+ unsigned int video_size, audio_size = 0;
for( unsigned int ind_offset = 0x68 ; ind_offset < ind_file.size() ; ind_offset+=2) {
- unsigned int video_size, audio_size = 0;
unsigned int size = getLE16(&ind_file[ind_offset]) << 4;
switch(frame%5) {
case 0:
@@ -272,10 +272,6 @@ void music_us(Song& song, PakFile const& iavFile, PakFile const& indFile, fs::pa
std::string ext;
writeMusic(song.music = outPath / ("music.wav"), pcm[0], sr);
if (karaoke) writeMusic(song.vocals = outPath / ("vocals.wav"), pcm[1], sr);
- if( oggcompress ) {
- song.music = outPath / ("music.ogg");
- if (karaoke) song.vocals = outPath / ("vocals.ogg");
- }
}
void music(Song& song, PakFile const& dataFile, PakFile const& headerFile, fs::path const& outPath) {
@@ -306,10 +302,6 @@ void music(Song& song, PakFile const& dataFile, PakFile const& headerFile, fs::p
std::string ext;
writeMusic(song.music = outPath / ("music.wav"), pcm[0], sr);
if (karaoke) writeMusic(song.vocals = outPath / ("vocals.wav"), pcm[1], sr);
- if( oggcompress ) {
- song.music = outPath / ("music.ogg");
- if (karaoke) song.vocals = outPath / ("vocals.ogg");
- }
}
struct Match {
@@ -471,16 +463,23 @@ struct Process {
remove = "";
// FIXME: use some library (preferrably ffmpeg):
if (oggcompress) {
- std::cerr << ">>> Compressing audio into music.ogg/vocals.ogg" << std::endl;
- std::string cmd = "oggenc \"" + (path / "music.wav").string() + "\"";
- std::cerr << cmd << std::endl;
- if (std::system(cmd.c_str()) == 0) { // FIXME: std::system return value is not portable
- fs::remove(path / "music.wav");
+ if( !song.music.empty() ) {
+ std::cerr << ">>> Compressing audio into music.ogg" << std::endl;
+ std::string cmd = "oggenc \"" + song.music.string() + "\"";
+ std::cerr << cmd << std::endl;
+ if (std::system(cmd.c_str()) == 0) { // FIXME: std::system return value is not portable
+ fs::remove(song.music);
+ song.music = path / ("music.ogg");
+ }
}
- cmd = "oggenc \"" + (path / "vocals.wav").string() + "\"";
- std::cerr << cmd << std::endl;
- if (std::system(cmd.c_str()) == 0) { // FIXME: std::system return value is not portable
- fs::remove(path / "vocals.wav");
+ if( !song.vocals.empty() ) {
+ std::cerr << ">>> Compressing audio into vocals.ogg" << std::endl;
+ std::string cmd = "oggenc \"" + song.vocals.string() + "\"";
+ std::cerr << cmd << std::endl;
+ if (std::system(cmd.c_str()) == 0) { // FIXME: std::system return value is not portable
+ fs::remove(song.vocals);
+ song.music = path / ("vocals.ogg");
+ }
}
}
if (video) {
@@ -495,7 +494,8 @@ struct Process {
std::cerr << " >>> European DVD failed, trying American (WIP)" << std::endl;
try {
video_us(song, dataPak[id + "/mus+vid.iav"], dataPak[id + "/mus+vid.ind"], path);
- } catch (...) {
+ } catch (std::exception& e) {
+ std::cerr << "!!! Unable to extract video: " << e.what() << std::endl;
song.video.clear();
}
}
@@ -505,8 +505,8 @@ struct Process {
std::cerr << cmd << std::endl;
if (std::system(cmd.c_str()) == 0) { // FIXME: std::system return value is not portable
fs::remove(path / "video.mpg");
+ song.video = path / "video.m4v";
}
- song.video = path / "video.m4v";
}
}
std::cerr << ">>> Extracting lyrics" << std::endl;
|
|
From: Yoda-JM <yo...@us...> - 2010-04-11 15:15:32
|
Module: performous Branch: master Commit: b828caeac2bbe0bb96e878d79ff982d7599f3b57 Author: Vincent Le Ligeour <yo...@us...> Date: Sun Apr 11 17:15:14 2010 +0200 Added US Singstar DVD support --- tools/adpcm.h | 15 ++-- tools/ss_extract.cpp | 223 ++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 178 insertions(+), 60 deletions(-) |
|
From: Yoda-JM <yo...@us...> - 2010-04-11 11:22:22
|
Module: performous
Branch: master
Commit: 826eb5e6e1fca4aa343f5a28a63e32b816e2462b
Author: Vincent Le Ligeour <yo...@us...>
Date: Sun Apr 11 13:22:00 2010 +0200
Added some usefull debug
---
game/midifile.cc | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/game/midifile.cc b/game/midifile.cc
index 54917d8..f70465c 100644
--- a/game/midifile.cc
+++ b/game/midifile.cc
@@ -26,6 +26,9 @@ class MidiStream {
*/
MidiStream(std::string const& file) {
std::ifstream ifs(file.c_str(), std::ios::binary);
+#if MIDI_DEBUG_LEVEL > 1
+ std::cout << "Opening file: " << file << std::endl;
+#endif
f << ifs.rdbuf();
f.exceptions(std::ios::failbit);
}
|
|
From: Yoda-JM <yo...@us...> - 2010-04-10 12:46:41
|
Module: performous
Branch: master
Commit: b89d8c72cc3ae98ac1fa1eb54d16d5df755ed56b
Author: Vincent Le Ligeour <yo...@us...>
Date: Sat Apr 10 14:46:19 2010 +0200
Fixed copy/paste error disabling drums track mute
---
game/songparser-ini.cc | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/game/songparser-ini.cc b/game/songparser-ini.cc
index 8542e32..679f991 100644
--- a/game/songparser-ini.cc
+++ b/game/songparser-ini.cc
@@ -103,7 +103,7 @@ void SongParser::iniParseHeader() {
} else if (regex_match(name.c_str(), match, audiofile_bass)) {
testAndAdd(s, TrackName::BASS, name);
} else if (regex_match(name.c_str(), match, audiofile_drums)) {
- testAndAdd(s, TrackName::GUITAR, name);
+ testAndAdd(s, TrackName::DRUMS, name);
} else if (regex_match(name.c_str(), match, audiofile_vocals)) {
testAndAdd(s, "vocals", name);
#if 0 // TODO: process preview.ogg properly? In any case, do not print debug to console...
|
|
From: Yoda-JM <yo...@us...> - 2010-04-10 08:15:51
|
Module: performous
Branch: master
Commit: 5e0ea6cefa869be04cba5f82e3ff43f9b0aa37dd
Author: Vincent Le Ligeour <yo...@us...>
Date: Sat Apr 10 10:14:45 2010 +0200
Fixed bug not displaying the notegraph anymore
---
game/notegraph.cc | 13 +++++----
game/notes.cc | 3 +-
game/song.hh | 2 +-
game/songparser-ini.cc | 29 ++++++++++---------
game/songparser-txt.cc | 19 +++++++------
game/songparser.hh | 2 +-
.../games-arcade/performous/performous-9999.ebuild | 2 -
7 files changed, 36 insertions(+), 34 deletions(-)
diff --git a/game/notegraph.cc b/game/notegraph.cc
index d220e8c..3569f6c 100644
--- a/game/notegraph.cc
+++ b/game/notegraph.cc
@@ -206,7 +206,8 @@ namespace {
}
void NoteGraph::drawWaves(Database const& database) {
- if (m_song.vocals.notes.empty()) return; // Cannot draw without notes
+ const VocalTrack &vocal = m_song.vocals;
+ if (vocal.notes.empty()) return; // Cannot draw without notes
UseTexture tblock(m_wave);
//glBlendFunc(GL_SRC_ALPHA, GL_ONE);
for (std::list<Player>::const_iterator p = database.cur.begin(); p != database.cur.end(); ++p) {
@@ -223,7 +224,7 @@ void NoteGraph::drawWaves(Database const& database) {
double t = idx * Engine::TIMESTEP;
double oldval = getNaN();
Points points;
- Notes::const_iterator noteIt = m_song.vocals.notes.begin();
+ Notes::const_iterator noteIt = vocal.notes.begin();
for (; idx < endIdx; ++idx, t += Engine::TIMESTEP) {
double const freq = pitch[idx].first;
// If freq is NaN, we have nothing to process
@@ -232,17 +233,17 @@ void NoteGraph::drawWaves(Database const& database) {
if (idx < beginIdx) continue; // Skip graphics rendering if out of screen
double x = -0.2 + (t - m_time) * pixUnit;
// Find the currently active note(s)
- while (noteIt != m_song.vocals.notes.end() && (noteIt->type == Note::SLEEP || t > noteIt->end)) ++noteIt;
+ while (noteIt != vocal.notes.end() && (noteIt->type == Note::SLEEP || t > noteIt->end)) ++noteIt;
Notes::const_iterator notePrev = noteIt;
- while (notePrev != m_song.vocals.notes.begin() && (notePrev->type == Note::SLEEP || t < notePrev->begin)) --notePrev;
- bool hasNote = (noteIt != m_song.vocals.notes.end());
+ while (notePrev != vocal.notes.begin() && (notePrev->type == Note::SLEEP || t < notePrev->begin)) --notePrev;
+ bool hasNote = (noteIt != vocal.notes.end());
bool hasPrev = notePrev->type != Note::SLEEP && t >= notePrev->begin;
double val;
if (hasNote && hasPrev) val = 0.5 * (noteIt->note + notePrev->note);
else if (hasNote) val = noteIt->note;
else val = notePrev->note;
// Now val contains the active note value. The following calculates note value for current freq:
- val += Note::diff(val, m_song.vocals.scale.getNote(freq));
+ val += Note::diff(val, vocal.scale.getNote(freq));
// Graphics positioning & animation:
double y = m_baseY + val * m_noteUnit;
double thickness = clamp(1.0 + pitch[idx].second / 60.0) + 0.5;
diff --git a/game/notes.cc b/game/notes.cc
index e474643..ed7c6c0 100644
--- a/game/notes.cc
+++ b/game/notes.cc
@@ -80,6 +80,7 @@ VocalTrack::VocalTrack(std::string name) : name(name) {reload();}
void VocalTrack::reload() {
notes.clear();
m_scoreFactor = 0.0;
- noteMin = noteMax = std::numeric_limits<int>::max();
+ noteMin = std::numeric_limits<int>::max();
+ noteMax = std::numeric_limits<int>::min();
beginTime = endTime = getNaN();
}
diff --git a/game/song.hh b/game/song.hh
index 25d3c9d..f1062aa 100644
--- a/game/song.hh
+++ b/game/song.hh
@@ -32,7 +32,7 @@ class Song: boost::noncopyable {
friend class SongParser;
public:
/// constructor
- Song(std::string const& path_, std::string const& filename_): vocals(std::string("vocals")), path(path_), filename(filename_) { reload(false); }
+ Song(std::string const& path_, std::string const& filename_): vocals(std::string("VOCALS")), path(path_), filename(filename_) { reload(false); }
/// reload song
void reload(bool errorIgnore = true);
/// parse field
diff --git a/game/songparser-ini.cc b/game/songparser-ini.cc
index f6d676c..8542e32 100644
--- a/game/songparser-ini.cc
+++ b/game/songparser-ini.cc
@@ -133,7 +133,6 @@ void SongParser::iniParseHeader() {
/// Parse notes
void SongParser::iniParse() {
Song& s = m_song;
- s.vocals.notes.clear();
s.instrumentTracks.clear();
MidiFileParser midi(s.path + "/" + s.midifilename);
@@ -175,6 +174,8 @@ void SongParser::iniParse() {
continue;
}
// Process vocal tracks
+ VocalTrack &vocal = s.vocals;
+ vocal.notes.clear();
for (MidiFileParser::Lyrics::const_iterator it2 = it->lyrics.begin(); it2 != it->lyrics.end(); ++it2) {
Note n;
n.begin = midi.get_seconds(it2->begin)+s.start;
@@ -208,9 +209,9 @@ void SongParser::iniParse() {
}
// Special processing for slides (which depend on the previous note)
if (n.type == Note::SLIDE) {
- Notes::reverse_iterator prev = s.vocals.notes.rbegin();
- while (prev != s.vocals.notes.rend() && prev->type == Note::SLEEP) ++prev;
- if (prev == s.vocals.notes.rend()) throw std::runtime_error("The song begins with a slide note");
+ Notes::reverse_iterator prev = vocal.notes.rbegin();
+ while (prev != vocal.notes.rend() && prev->type == Note::SLEEP) ++prev;
+ if (prev == vocal.notes.rend()) throw std::runtime_error("The song begins with a slide note");
eraseLast(prev->syllable); // Erase the space if there is any
{
// insert new sliding note
@@ -222,9 +223,9 @@ void SongParser::iniParse() {
inter.type = Note::SLIDE;
inter.syllable = std::string("~");
m_maxScore += inter.maxScore();
- s.vocals.noteMin = std::min(s.vocals.noteMin, inter.note);
- s.vocals.noteMax = std::max(s.vocals.noteMax,inter.note);
- s.vocals.notes.push_back(inter);
+ vocal.noteMin = std::min(vocal.noteMin, inter.note);
+ vocal.noteMax = std::max(vocal.noteMax,inter.note);
+ vocal.notes.push_back(inter);
}
{
// modifying current note to be normal again
@@ -232,15 +233,15 @@ void SongParser::iniParse() {
}
}
m_maxScore += n.maxScore();
- s.vocals.noteMin = std::min(s.vocals.noteMin, n.note);
- s.vocals.noteMax = std::max(s.vocals.noteMax, n.note);
- s.vocals.notes.push_back(n);
- } else if (!s.vocals.notes.empty() && s.vocals.notes.back().type != Note::SLEEP) {
- eraseLast(s.vocals.notes.back().syllable);
- s.vocals.notes.push_back(n);
+ vocal.noteMin = std::min(vocal.noteMin, n.note);
+ vocal.noteMax = std::max(vocal.noteMax, n.note);
+ vocal.notes.push_back(n);
+ } else if (!vocal.notes.empty() && vocal.notes.back().type != Note::SLEEP) {
+ eraseLast(vocal.notes.back().syllable);
+ vocal.notes.push_back(n);
}
}
- if (!s.vocals.notes.empty()) break;
+ if (!vocal.notes.empty()) break;
}
// Figure out if we have BRE in the song
for (MidiFileParser::CommandEvents::const_iterator it = midi.cmdevents.begin(); it != midi.cmdevents.end(); ++it) {
diff --git a/game/songparser-txt.cc b/game/songparser-txt.cc
index 199c214..1b53d30 100644
--- a/game/songparser-txt.cc
+++ b/game/songparser-txt.cc
@@ -49,13 +49,14 @@ void SongParser::txtParseHeader() {
/// Parse notes
void SongParser::txtParse() {
std::string line;
- m_song.vocals.notes.clear();
+ VocalTrack &vocal = m_song.vocals;
+ vocal.notes.clear();
while (getline(line) && txtParseField(line)) {} // Parse the header again
if (m_bpm != 0.0) addBPM(0, m_bpm);
- while (txtParseNote(line) && getline(line)) {} // Parse notes
+ while (txtParseNote(line, vocal) && getline(line)) {} // Parse notes
// Workaround for the terminating : 1 0 0 line, written by some converters
- if (!m_song.vocals.notes.empty() && m_song.vocals.notes.back().type != Note::SLEEP
- && m_song.vocals.notes.back().begin == m_song.vocals.notes.back().end) m_song.vocals.notes.pop_back();
+ if (!vocal.notes.empty() && vocal.notes.back().type != Note::SLEEP
+ && vocal.notes.back().begin == vocal.notes.back().end) vocal.notes.pop_back();
}
bool SongParser::txtParseField(std::string const& line) {
@@ -86,7 +87,7 @@ bool SongParser::txtParseField(std::string const& line) {
return true;
}
-bool SongParser::txtParseNote(std::string line) {
+bool SongParser::txtParseNote(std::string line, VocalTrack &vocal) {
if (line.empty() || line == "\r") return true;
if (line[0] == '#') throw std::runtime_error("Key found in the middle of notes");
if (line[line.size() - 1] == '\r') line.erase(line.size() - 1);
@@ -132,8 +133,8 @@ bool SongParser::txtParseNote(std::string line) {
default: throw std::runtime_error("Unknown note type");
}
n.begin = tsTime(ts);
- Notes& notes = m_song.vocals.notes;
- if (m_relative && m_song.vocals.notes.empty()) m_relativeShift = ts;
+ Notes& notes = vocal.notes;
+ if (m_relative && notes.empty()) m_relativeShift = ts;
m_prevts = ts;
if (n.begin < m_prevtime) {
// Oh no, overlapping notes (b0rked file)
@@ -160,8 +161,8 @@ bool SongParser::txtParseNote(std::string line) {
double prevtime = m_prevtime;
m_prevtime = n.end;
if (n.type != Note::SLEEP && n.end > n.begin) {
- m_song.vocals.noteMin = std::min(m_song.vocals.noteMin, n.note);
- m_song.vocals.noteMax = std::max(m_song.vocals.noteMax, n.note);
+ vocal.noteMin = std::min(vocal.noteMin, n.note);
+ vocal.noteMax = std::max(vocal.noteMax, n.note);
m_maxScore += n.maxScore();
}
if (n.type == Note::SLEEP) {
diff --git a/game/songparser.hh b/game/songparser.hh
index d83ac3b..91d0025 100644
--- a/game/songparser.hh
+++ b/game/songparser.hh
@@ -123,7 +123,7 @@ class SongParser {
void txtParseHeader();
void txtParse();
bool txtParseField(std::string const& line);
- bool txtParseNote(std::string line);
+ bool txtParseNote(std::string line, VocalTrack &vocal);
bool iniCheck(std::vector<char> const& data);
void iniParseHeader();
void iniParse();
diff --git a/portage-overlay/games-arcade/performous/performous-9999.ebuild b/portage-overlay/games-arcade/performous/performous-9999.ebuild
index 8337767..6ac7944 100644
--- a/portage-overlay/games-arcade/performous/performous-9999.ebuild
+++ b/portage-overlay/games-arcade/performous/performous-9999.ebuild
@@ -103,8 +103,6 @@ src_compile() {
src_install() {
DOCS="docs/*.txt" cmake-utils_src_install
- mv "${D}/${GAMES_PREFIX}/share/locale" "${D}/usr/share/"
-
if use songs; then
insinto "/usr/share/games/ultrastar"
doins -r "${S}/songs" || die "doins songs failed"
|
|
From: Stefano A. <xa...@us...> - 2010-04-09 14:04:27
|
Module: performous Branch: master Commit: 0481fc1fd165a5a399b991a170f049fe475c35bc Author: Xaldyz <xa...@us...> Date: Fri Apr 9 16:04:01 2010 +0200 Merge branch 'master' of ssh://performous.git.sourceforge.net/gitroot/performous/performous --- |
|
From: Stefano A. <xa...@us...> - 2010-04-09 14:04:24
|
Module: performous
Branch: master
Commit: 1d812673b68b8bbefba757bada9015eac5354e91
Author: Xaldyz <xa...@us...>
Date: Fri Apr 9 16:03:07 2010 +0200
Fixed pratice text under Windows
---
themes/default/practice_txt.svg | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/themes/default/practice_txt.svg b/themes/default/practice_txt.svg
index c3bbb70..ad293cf 100644
--- a/themes/default/practice_txt.svg
+++ b/themes/default/practice_txt.svg
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
@@ -15,9 +16,8 @@
height="600.000000"
id="svg559"
sodipodi:version="0.32"
- inkscape:version="0.46"
+ inkscape:version="0.47 r22583"
sodipodi:docname="practice_txt.svg"
- sodipodi:docbase="/home/yoda/UltraStar/sf/UltraStar-ng/themes/lima"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<metadata
id="metadata35">
@@ -48,7 +48,8 @@
inkscape:window-x="0"
inkscape:window-y="49"
inkscape:current-layer="svg559"
- showgrid="false" />
+ showgrid="false"
+ inkscape:window-maximized="0" />
<defs
id="defs561">
<inkscape:perspective
@@ -62,7 +63,7 @@
<text
x="450"
y="430"
- style="font-size:40px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#ffd100;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;font-family:DejaVu Sans Mono"
+ style="font-size:40px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffd100;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline;font-family:Verdana"
id="text10203"
xml:space="preserve"
sodipodi:linespacing="125%"><tspan
|
|
From: Yoda-JM <yo...@us...> - 2010-04-09 08:43:38
|
Module: performous
Branch: master
Commit: 5f12b33204db72f06ea5d72e43fba66356b5f399
Author: Vincent Le Ligeour <yo...@us...>
Date: Fri Apr 9 10:43:19 2010 +0200
Moved more member of the Song structure to the VocalTrack structure
---
game/engine.hh | 5 ++---
game/notegraph.cc | 2 +-
game/notes.cc | 5 +++--
game/notes.hh | 6 ++++--
game/player.cc | 8 ++++----
game/song.cc | 2 --
game/song.hh | 14 ++++----------
game/songparser.hh | 6 +++---
8 files changed, 21 insertions(+), 27 deletions(-)
diff --git a/game/engine.hh b/game/engine.hh
index a978406..9295aaa 100644
--- a/game/engine.hh
+++ b/game/engine.hh
@@ -47,10 +47,9 @@ class Engine {
m_database.cur.clear();
m_database.scores.clear();
// Only add players if the vocal track has sensible length (not NaN or extremely long)
- std::cout << "Endtime: " << song.endTime << std::endl;
- if (song.endTime < 10000.0) {
+ if (song.vocals.endTime < 10000.0) {
// Calculate the space required for pitch frames
- size_t frames = song.endTime / Engine::TIMESTEP;
+ size_t frames = song.vocals.endTime / Engine::TIMESTEP;
while (anBegin != anEnd) m_database.cur.push_back(Player(song, *anBegin++, frames));
size_t player = 0;
for (std::list<Player>::iterator it = m_database.cur.begin(); it != m_database.cur.end(); ++it, ++player) it->m_color = playerColors[player % playerColorsSize];
diff --git a/game/notegraph.cc b/game/notegraph.cc
index 17f7a6e..d220e8c 100644
--- a/game/notegraph.cc
+++ b/game/notegraph.cc
@@ -242,7 +242,7 @@ void NoteGraph::drawWaves(Database const& database) {
else if (hasNote) val = noteIt->note;
else val = notePrev->note;
// Now val contains the active note value. The following calculates note value for current freq:
- val += Note::diff(val, m_song.scale.getNote(freq));
+ val += Note::diff(val, m_song.vocals.scale.getNote(freq));
// Graphics positioning & animation:
double y = m_baseY + val * m_noteUnit;
double thickness = clamp(1.0 + pitch[idx].second / 60.0) + 0.5;
diff --git a/game/notes.cc b/game/notes.cc
index b489d29..e474643 100644
--- a/game/notes.cc
+++ b/game/notes.cc
@@ -79,6 +79,7 @@ VocalTrack::VocalTrack(std::string name) : name(name) {reload();}
void VocalTrack::reload() {
notes.clear();
- noteMin = std::numeric_limits<int>::max();
- noteMax = std::numeric_limits<int>::min();
+ m_scoreFactor = 0.0;
+ noteMin = noteMax = std::numeric_limits<int>::max();
+ beginTime = endTime = getNaN();
}
diff --git a/game/notes.hh b/game/notes.hh
index 7b52596..5c3a9af 100644
--- a/game/notes.hh
+++ b/game/notes.hh
@@ -114,8 +114,10 @@ struct VocalTrack {
void reload();
std::string name;
Notes notes;
- int noteMin;
- int noteMax;
+ int noteMin, noteMax; ///< lowest and highest note
+ double beginTime, endTime; ///< the period where there are notes
+ double m_scoreFactor; ///< normalization factor for the scoring system
+ MusicalScale scale; ///< scale in which song is sung
};
typedef std::map<std::string, VocalTrack> VocalsTracks;
diff --git a/game/player.cc b/game/player.cc
index 0f56b85..85f8a8b 100644
--- a/game/player.cc
+++ b/game/player.cc
@@ -28,9 +28,9 @@ void Player::update() {
if (endTime < m_scoreIt->begin) break; // The note begins later than on this timestep
// If tone was detected, calculate score
if (t) {
- double note = m_song.scale.getNote(t->freq);
+ double note = m_song.vocals.scale.getNote(t->freq);
// Add score
- double score_addition = m_song.m_scoreFactor * m_scoreIt->score(note, beginTime, endTime);
+ double score_addition = m_song.vocals.m_scoreFactor * m_scoreIt->score(note, beginTime, endTime);
m_score += score_addition;
m_noteScore += score_addition;
m_lineScore += score_addition;
@@ -45,7 +45,7 @@ void Player::update() {
}
if (endTime < m_scoreIt->end) break; // The note continues past this timestep
// Set accuracy
- m_scoreIt->accuracy = std::max(m_scoreIt->accuracy, m_noteScore / m_song.m_scoreFactor / m_scoreIt->maxScore());
+ m_scoreIt->accuracy = std::max(m_scoreIt->accuracy, m_noteScore / m_song.vocals.m_scoreFactor / m_scoreIt->maxScore());
m_noteScore = 0; // Reset noteScore as we are moving on to the next one
++m_scoreIt;
}
@@ -61,7 +61,7 @@ void Player::calcRowRank() {
// FIXME: MacOSX needs the following cast to compile correctly
// it is related to the fact that OSX default compiler is 4.0.1 that is buggy when not casting
while ((maxScoreIt != static_cast<Notes::const_reverse_iterator>(m_song.vocals.notes.rend())) && (maxScoreIt->type != Note::SLEEP)) {
- m_maxLineScore += m_song.m_scoreFactor * maxScoreIt->maxScore();
+ m_maxLineScore += m_song.vocals.m_scoreFactor * maxScoreIt->maxScore();
maxScoreIt++;
}
if (m_maxLineScore > 0) {
diff --git a/game/song.cc b/game/song.cc
index ee0db1e..c6274e6 100644
--- a/game/song.cc
+++ b/game/song.cc
@@ -29,8 +29,6 @@ void Song::reload(bool errorIgnore) {
videoGap = 0.0;
start = 0.0;
preview_start = getNaN();
- beginTime = endTime = getNaN();
- m_scoreFactor = 0.0;
hasBRE = false;
b0rkedTracks = false;
try { SongParser(*this); } catch (...) { if (!errorIgnore) throw; }
diff --git a/game/song.hh b/game/song.hh
index fb53b63..25d3c9d 100644
--- a/game/song.hh
+++ b/game/song.hh
@@ -53,8 +53,6 @@ class Song: boost::noncopyable {
VocalTrack vocals; ///< notes for the sing part
InstrumentTracks instrumentTracks; ///< guitar etc. notes for this song
DanceTracks danceTracks; ///< dance tracks
- typedef std::vector<double> Beats;
- Beats beats;
bool hasDance() const { return !danceTracks.empty(); }
bool hasDrums() const { return instrumentTracks.find(TrackName::DRUMS) != instrumentTracks.end(); }
bool hasGuitars() const { return instrumentTracks.size() - hasDrums(); }
@@ -87,15 +85,11 @@ class Song: boost::noncopyable {
double videoGap; ///< gap with video
double start; ///< start of song
double preview_start; ///< starting time for the preview
- MusicalScale scale; ///< scale in which song is sung
- std::vector<double> timePitchGraph; ///< time of pitch graph
- std::vector<double> pitchPitchGraph; ///< pitch of pitch graph
- std::vector<double> volumePitchGraph; ///< volume of pitch graph
- std::vector<bool> drawPitchGraph; ///< if pitch graph should be drawn
- double beginTime, endTime; ///< the period where there are notes
- double m_scoreFactor; ///< normalization factor for the scoring system
+
typedef std::vector<std::pair<double,double> > Stops;
- Stops stops;
+ Stops stops; ///< related to dance
+ typedef std::vector<double> Beats;
+ Beats beats; ///< related to instrument and dance
bool hasBRE; ///< is there a Big Rock Ending? (used for drums only)
bool b0rkedTracks; ///< are some tracks broken? (so that user can be notified)
};
diff --git a/game/songparser.hh b/game/songparser.hh
index dfa50a3..d83ac3b 100644
--- a/game/songparser.hh
+++ b/game/songparser.hh
@@ -103,8 +103,8 @@ class SongParser {
}
}
// Set begin/end times
- if (!m_song.vocals.notes.empty()) m_song.beginTime = m_song.vocals.notes.front().begin, m_song.endTime = m_song.vocals.notes.back().end;
- m_song.m_scoreFactor = 1.0 / m_maxScore;
+ if (!m_song.vocals.notes.empty()) m_song.vocals.beginTime = m_song.vocals.notes.front().begin, m_song.vocals.endTime = m_song.vocals.notes.back().end;
+ m_song.vocals.m_scoreFactor = 1.0 / m_maxScore;
if (m_tsPerBeat) {
// Add song beat markers
for (unsigned ts = 0; ts < m_tsEnd; ts += m_tsPerBeat) m_song.beats.push_back(tsTime(ts));
@@ -166,7 +166,7 @@ class SongParser {
throw std::logic_error("INTERNAL ERROR: BPM data invalid");
}
/// Stops stored in <ts, duration> format
- std::vector<std::pair<double, double> > m_stops;
+ Song::Stops m_stops;
/// Convert a stop into <time, duration> (as stored in the song)
std::pair<double, double> stopConvert(std::pair<double, double> s) {
s.first = tsTime(s.first);
|
|
From: Yoda-JM <yo...@us...> - 2010-04-08 23:52:29
|
Module: performous Branch: master Commit: ef9edb05ca8f85b6488dba20648f95f53089efab Author: Vincent Le Ligeour <yo...@us...> Date: Fri Apr 9 01:52:09 2010 +0200 Cleaned instrument track names --- game/guitargraph.cc | 22 +++++++++++----------- game/guitargraph.hh | 4 ++-- game/notes.hh | 12 ++++++------ game/screen_sing.cc | 6 +++--- game/screen_songs.cc | 10 +++++----- game/song.cc | 6 +++--- game/song.hh | 21 ++++++++++++--------- game/songparser-ini.cc | 34 +++++++++++++++++----------------- 8 files changed, 59 insertions(+), 56 deletions(-) |
|
From: Yoda-JM <yo...@us...> - 2010-04-08 23:02:31
|
Module: performous Branch: master Commit: 4e0cc6d201b697e8d84950f4afdfb931ff22b2dc Author: Vincent Le Ligeour <yo...@us...> Date: Fri Apr 9 01:02:03 2010 +0200 Merged all that is related to vocals inside a song to a single struct (path to the duet and harmonics) --- game/engine.hh | 2 +- game/layout_singer.cc | 8 ++++---- game/notegraph.cc | 40 ++++++++++++++++++++-------------------- game/notes.cc | 7 ++++++- game/notes.hh | 10 ++++++++++ game/player.cc | 8 ++++---- game/screen_sing.cc | 6 +++--- game/song.cc | 14 ++++++-------- game/song.hh | 11 +++++++---- game/songparser-ini.cc | 36 ++++++++++++++++++------------------ game/songparser-txt.cc | 16 ++++++++-------- game/songparser.hh | 12 ++++++------ 12 files changed, 93 insertions(+), 77 deletions(-) |
|
From: Yoda-JM <yo...@us...> - 2010-04-08 13:47:53
|
Module: performous
Branch: master
Commit: 9c3d23ba5e117cd17a566c1b511da7b17dc775aa
Author: Vincent Le Ligeour <yo...@us...>
Date: Thu Apr 8 15:45:54 2010 +0200
Added midi time signature event management
---
game/midifile.cc | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/game/midifile.cc b/game/midifile.cc
index fc4d54d..54917d8 100644
--- a/game/midifile.cc
+++ b/game/midifile.cc
@@ -192,6 +192,13 @@ MidiFileParser::Track MidiFileParser::read_track(MidiStream& stream) {
case 0x51:
if (data.size() != 3) throw std::runtime_error("Invalid tempo change event");
add_tempo_change(miditime, static_cast<unsigned char>(data[0]) << 16 | static_cast<unsigned char>(data[1]) << 8 | static_cast<unsigned char>(data[2])); break;
+ case 0x58:
+ if (data.size() != 4) throw std::runtime_error("Invalid time signature event");
+#if MIDI_DEBUG_LEVEL > 3
+ // if none is found "4/4, 24,8" should be assume
+ std::cout << "Time signature: " << int(data[0]) << "/" << int(data[1]) << ", " << int(data[2]) << ", " << int(data[3]) << std::endl;
+#endif
+ break;
default:
#if MIDI_DEBUG_LEVEL > 1
std::cout << "Unhandled meta event type=" << int(type) << " (" << data.size() << " bytes)" << std::endl;
|
|
From: Yoda-JM <yo...@us...> - 2010-04-06 18:23:34
|
Module: performous
Branch: master
Commit: a6abb22c35a3f9c4311d88e074bdf3696639a746
Author: Vincent Le Ligeour <yo...@us...>
Date: Tue Apr 6 20:23:12 2010 +0200
Fixed end of line typo
---
game/surface.cc | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/surface.cc b/game/surface.cc
index aea4965..dd23d7e 100644
--- a/game/surface.cc
+++ b/game/surface.cc
@@ -30,7 +30,7 @@ template <typename T> void loader(T& target, fs::path name) {
// Get file extension in lower case
std::string ext = name.extension();
std::for_each(ext.begin(), ext.end(), static_cast<int(*)(int)>(std::tolower));
-
+
if (ext == ".svg") loadSVG(target, filename);
else if (ext == ".png") loadPNG(target, filename);
else loadJPEG(target, filename);
@@ -83,7 +83,7 @@ void Texture::load(unsigned int width, unsigned int height, pix::Format format,
glPixelStorei(GL_UNPACK_SWAP_BYTES, f.swap);
// Load the data into texture
if ((isPow2(width) && isPow2(height)) || GLEW_ARB_texture_non_power_of_two) { // Can directly load the texture
- glTexImage2D(type(), 0, GL_RGBA, width, height, 0, f.format, f.type, buffer);
+ glTexImage2D(type(), 0, GL_RGBA, width, height, 0, f.format, f.type, buffer);
} else {
int newWidth = prevPow2(width);
int newHeight = prevPow2(height);
|
|
From: Stefano A. <xa...@us...> - 2010-04-06 00:01:54
|
Module: performous Branch: master Commit: 92ffeb0d66608bdaa44320fd14c9c72f9ccafdfe Author: Xaldyz <xa...@us...> Date: Tue Apr 6 02:01:37 2010 +0200 Updated Italian translation --- lang/it.po | 104 +++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 61 insertions(+), 43 deletions(-) diff --git a/lang/it.po b/lang/it.po index 71d913f..219f4f3 100644 --- a/lang/it.po +++ b/lang/it.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Performous\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-25 00:10+0100\n" +"POT-Creation-Date: 2010-04-05 23:34+0100\n" "PO-Revision-Date: \n" "Last-Translator: Xaldyz <xa...@us...>\n" "Language-Team: \n" @@ -13,34 +13,38 @@ msgstr "" "X-Poedit-Basepath: .\n" "X-Poedit-SearchPath-0: ../game\n" -#: ../game/main.cc:154 +#: ../game/database.cc:107 +msgid "No Items up to now." +msgstr "Nessun elemento fino ad ora." + +#: ../game/database.cc:108 +msgid "Be the first to be listed here!" +msgstr "Sii il primo a essere qui!" + +#: ../game/main.cc:164 msgid "Audio capture..." msgstr "Registramento audio..." -#: ../game/main.cc:156 +#: ../game/main.cc:166 msgid "Audio playback..." msgstr "Riproduzione audio..." -#: ../game/main.cc:159 +#: ../game/main.cc:169 msgid "Miscellaneous..." msgstr "Varie..." -#: ../game/main.cc:174 +#: ../game/main.cc:183 msgid "Main menu..." msgstr "Menu principale..." -#: ../game/main.cc:185 +#: ../game/main.cc:194 msgid "Screenshot taken!" msgstr "Screenshot eseguito!" -#: ../game/main.cc:188 +#: ../game/main.cc:197 msgid "Screenshot failed!" msgstr "Screenshot non eseguito!" -#: ../game/screen_hiscore.cc:88 -msgid "Hiscore for " -msgstr "Punteggi per " - #: ../game/screen_intro.cc:15 msgid "Perform" msgstr "Gioca" @@ -121,68 +125,80 @@ msgstr "Inserisci un nome per selezionare un giocatore o crearne uno nuovo." msgid "Search Text:" msgstr "Testo di ricerca" -#: ../game/screen_sing.cc:310 +#: ../game/screen_sing.cc:34 +msgid "Loading song..." +msgstr "Caricamento canzoni..." + +#: ../game/screen_sing.cc:42 +msgid "Song is broken!" +msgstr "La canzone è " + +#: ../game/screen_sing.cc:47 +msgid "Song contains broken tracks!" +msgstr "La canzone contiene tracce rovinate!" + +#: ../game/screen_sing.cc:330 msgid " ENTER to skip instrumental break" msgstr " INVIO per saltare lo stacco musicale" -#: ../game/screen_sing.cc:311 +#: ../game/screen_sing.cc:331 msgid " Remember to wait for grading!" msgstr " Ricordati di aspettare per il voto!" -#: ../game/screen_sing.cc:399 +#: ../game/screen_sing.cc:419 msgid "No player!" msgstr "Nessun giocatore trovato!" -#: ../game/screen_sing.cc:408 +#: ../game/screen_sing.cc:428 msgid "Hit singer" msgstr "Star" -#: ../game/screen_sing.cc:409 +#: ../game/screen_sing.cc:429 msgid "Lead singer" msgstr "Cantante" -#: ../game/screen_sing.cc:410 -#: ../game/screen_sing.cc:416 -#: ../game/screen_sing.cc:422 +#: ../game/screen_sing.cc:430 +#: ../game/screen_sing.cc:436 +#: ../game/screen_sing.cc:442 msgid "Rising star" msgstr "Dilettante" -#: ../game/screen_sing.cc:411 -#: ../game/screen_sing.cc:417 -#: ../game/screen_sing.cc:423 +#: ../game/screen_sing.cc:431 +#: ../game/screen_sing.cc:437 +#: ../game/screen_sing.cc:443 msgid "Amateur" msgstr "Amatore" -#: ../game/screen_sing.cc:412 -#: ../game/screen_sing.cc:424 +#: ../game/screen_sing.cc:432 +#: ../game/screen_sing.cc:444 msgid "Tone deaf" msgstr "Stonato" -#: ../game/screen_sing.cc:414 +#: ../game/screen_sing.cc:434 msgid "Maniac" msgstr "Maniaco" -#: ../game/screen_sing.cc:415 +#: ../game/screen_sing.cc:435 msgid "Hoofer" msgstr "Professionista" -#: ../game/screen_sing.cc:418 +#: ../game/screen_sing.cc:438 msgid "Loser" msgstr "Perdente" -#: ../game/screen_sing.cc:420 +#: ../game/screen_sing.cc:440 msgid "Virtuoso" msgstr "Virtuoso" -#: ../game/screen_sing.cc:421 +#: ../game/screen_sing.cc:441 msgid "Rocker" msgstr "Rockstar" -#: ../game/screen_songs.cc:186 +#: ../game/screen_songs.cc:195 msgid "No songs found!" msgstr "Nessuna canzone trovata!" -#: ../game/screen_songs.cc:187 +#: ../game/screen_songs.cc:196 msgid "" "Visit performous.org\n" "for free songs" @@ -190,48 +206,50 @@ msgstr "" "Visita performous.org\n" "per canzoni gratis" -#: ../game/screen_songs.cc:189 +#: ../game/screen_songs.cc:198 msgid "no songs match search" msgstr "nessuna canzone trovata" -#: ../game/screen_songs.cc:197 +#: ../game/screen_songs.cc:206 msgid "(press END to view hiscores)" msgstr "(premi END per vedere i punteggi migliori)" -#: ../game/screen_songs.cc:198 +#: ../game/screen_songs.cc:207 msgid "<type in to search>" msgstr "<premi qualche lettera per cercare>" -#: ../game/songs.cc:192 +#: ../game/screen_songs.cc:212 +msgid "Hiscore for " +msgstr "Punteggi per " + +#: ../game/songs.cc:195 msgid "random order" msgstr "ordine casuale" -#: ../game/songs.cc:193 +#: ../game/songs.cc:196 msgid "sorted by song" msgstr "ordinato per canzone" -#: ../game/songs.cc:194 +#: ../game/songs.cc:197 msgid "sorted by artist" msgstr "ordinato per artista" -#: ../game/songs.cc:195 +#: ../game/songs.cc:198 msgid "sorted by edition" msgstr "ordinato per edizione" -#: ../game/songs.cc:196 +#: ../game/songs.cc:199 msgid "sorted by genre" msgstr "ordinato per genere" -#: ../game/songs.cc:197 +#: ../game/songs.cc:200 msgid "sorted by path" msgstr "ordinato per percorso" -#: ../game/songs.cc:198 +#: ../game/songs.cc:201 msgid "sorted by language" msgstr "ordinato per lingua" -#~ msgid "Loading..." -#~ msgstr "Caricamento in corso..." #~ msgid "filter: " #~ msgstr "filtro:" #~ msgid "none" |
|
From: Yoda-JM <yo...@us...> - 2010-04-05 10:36:47
|
Module: performous
Branch: master
Commit: c9695e39b061bfffea6ee9274f027c11f11a9e83
Author: Vincent Le Ligeour <yo...@us...>
Date: Mon Apr 5 12:36:32 2010 +0200
Fixed filtering by instrument not being displayed when no song is found
---
game/screen_songs.cc | 41 ++++++++++++++++++++++++++++-------------
game/screen_songs.hh | 2 +-
2 files changed, 29 insertions(+), 14 deletions(-)
diff --git a/game/screen_songs.cc b/game/screen_songs.cc
index 292feab..bcccf25 100644
--- a/game/screen_songs.cc
+++ b/game/screen_songs.cc
@@ -264,7 +264,7 @@ void ScreenSongs::draw() {
theme->order.draw(oss_order.str());
theme->has_hiscore.draw(oss_has_hiscore.str());
} else theme->hiscores.draw(oss_order.str());
- if (!m_songs.empty()&&!show_hiscores) drawInstruments(m_songs.current(), Dimensions(m_instrumentList->ar()).fixedHeight(0.03).center(-0.04));
+ if (!show_hiscores) drawInstruments(Dimensions(m_instrumentList->ar()).fixedHeight(0.03).center(-0.04));
}
stopMultimedia(info);
if (m_jukebox) {
@@ -277,18 +277,37 @@ void ScreenSongs::draw() {
} else if (!m_audio.isPaused() && m_playTimer.get() > IDLE_TIMEOUT) m_songs.advance(1); // Switch if song hasn't changed for IDLE_TIMEOUT seconds
}
-void ScreenSongs::drawInstruments(Song const& song, Dimensions const& dim, float alpha) const {
+void ScreenSongs::drawInstruments(Dimensions const& dim, float alpha) const {
+
+ bool have_vocals = false;
+ bool have_bass = false;
+ bool have_drums = false;
+ bool have_dance = false;
+ bool is_karaoke = false;
+ unsigned char typeFilter = m_songs.getTypeFilter();
+ int guitarCount = 0;
+
+ if( !m_songs.empty() ) {
+ Song const& song = m_songs.current();
+ have_vocals = song.hasVocals();
+ have_bass = isTrackInside(song.track_map,"bass");
+ have_drums = song.hasDrums();
+ have_dance = song.hasDance();
+ is_karaoke = (song.music.find("vocals") != song.music.end());
+ if (isTrackInside(song.track_map,"guitar")) guitarCount++;
+ if (isTrackInside(song.track_map,"coop guitar")) guitarCount++;
+ if (isTrackInside(song.track_map,"rhythm guitar")) guitarCount++;
+ }
+
UseTexture tex(*m_instrumentList);
double x;
float xincr = 0.2f;
- unsigned char typeFilter = m_songs.getTypeFilter();
{
// vocals
- float a = alpha * (song.hasVocals() ? 1.00 : 0.25);
+ float a = alpha * (have_vocals ? 1.00 : 0.25);
float m = !(typeFilter & 8);
- bool karaoke = (song.music.find("vocals") != song.music.end());
glutil::Begin block(GL_TRIANGLE_STRIP);
- glColor4f(m * 1.0f, 1.0f, m * (karaoke ? 0.25f : 1.0f), a);
+ glColor4f(m * 1.0f, 1.0f, m * (is_karaoke ? 0.25f : 1.0f), a);
x = dim.x1()+0.00*(dim.x2()-dim.x1());
glTexCoord2f(getIconTex(1), 0.0f); glVertex2f(x, dim.y1());
glTexCoord2f(getIconTex(1), 1.0f); glVertex2f(x, dim.y2());
@@ -300,10 +319,6 @@ void ScreenSongs::drawInstruments(Song const& song, Dimensions const& dim, float
// guitars
float a = alpha;
float m = !(typeFilter & 4);
- int guitarCount = 0;
- if (isTrackInside(song.track_map,"guitar")) guitarCount++;
- if (isTrackInside(song.track_map,"coop guitar")) guitarCount++;
- if (isTrackInside(song.track_map,"rhythm guitar")) guitarCount++;
if (guitarCount == 0) { guitarCount = 1; a *= 0.25f; }
for (int i = guitarCount-1; i >= 0; i--) {
glutil::Begin block(GL_TRIANGLE_STRIP);
@@ -318,7 +333,7 @@ void ScreenSongs::drawInstruments(Song const& song, Dimensions const& dim, float
}
{
// bass
- float a = alpha * (isTrackInside(song.track_map,"bass") ? 1.00f : 0.25f);
+ float a = alpha * (have_bass ? 1.00f : 0.25f);
float m = !(typeFilter & 4);
glutil::Begin block(GL_TRIANGLE_STRIP);
glColor4f(m * 1.0f, 1.0f, m * 1.0f, a);
@@ -331,7 +346,7 @@ void ScreenSongs::drawInstruments(Song const& song, Dimensions const& dim, float
}
{
// drums
- float a = alpha * (song.hasDrums() ? 1.00f : 0.25f);
+ float a = alpha * (have_drums ? 1.00f : 0.25f);
float m = !(typeFilter & 2);
glutil::Begin block(GL_TRIANGLE_STRIP);
glColor4f(m * 1.0f, 1.0f, m * 1.0f, a);
@@ -344,7 +359,7 @@ void ScreenSongs::drawInstruments(Song const& song, Dimensions const& dim, float
}
{
// dancing
- float a = alpha * (song.hasDance() ? 1.00f : 0.25f);
+ float a = alpha * (have_dance ? 1.00f : 0.25f);
float m = !(typeFilter & 1);
glutil::Begin block(GL_TRIANGLE_STRIP);
glColor4f(m * 1.0f, 1.0f, m * 1.0f, a);
diff --git a/game/screen_songs.hh b/game/screen_songs.hh
index 0470489..ed00a63 100644
--- a/game/screen_songs.hh
+++ b/game/screen_songs.hh
@@ -36,7 +36,7 @@ public:
void drawJukebox(); ///< draw the songbrowser in jukebox mode (fullscreen, full previews, ...)
protected:
- void drawInstruments(Song const& song, Dimensions const& dim, float alpha = 1.0f) const;
+ void drawInstruments(Dimensions const& dim, float alpha = 1.0f) const;
void drawMultimedia();
void updateMultimedia(Song& song, ScreenSharedInfo& info);
void stopMultimedia(ScreenSharedInfo& info);
|
|
From: Peque <ms...@us...> - 2010-04-05 09:48:18
|
Module: performous Branch: master Commit: c8ae1145a2f3ae92d922b6103a128743b77d7302 Author: Miguel Sánchez de León Peque <msd...@gm...> Date: Mon Apr 5 11:47:54 2010 +0200 Updated Spanish Translation. --- lang/es.po | 80 +++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 44 insertions(+), 36 deletions(-) diff --git a/lang/es.po b/lang/es.po index 060f8fb..53e4eb0 100644 --- a/lang/es.po +++ b/lang/es.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Performous\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-27 18:47+0100\n" +"POT-Creation-Date: 2010-04-05 11:43+0100\n" "PO-Revision-Date: \n" -"Last-Translator: Miguel Sánchez de León Peque <peq...@ho...>\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -15,10 +15,6 @@ msgstr "" "X-Poedit-Country: SPAIN\n" "X-Poedit-SearchPath-0: ../game\n" -#: ../game/screen_hiscore.cc:88 -msgid "Hiscore for " -msgstr "Mejores puntuaciones para " - #: ../game/screen_intro.cc:15 msgid "Perform" msgstr "Jugar" @@ -141,92 +137,92 @@ msgstr "¡Canción defectuosa!" msgid "Song contains broken tracks!" msgstr "¡La canción contiene pistas defectuosas!" -#: ../game/screen_sing.cc:326 +#: ../game/screen_sing.cc:330 msgid " ENTER to skip instrumental break" msgstr " ENTER para pasar la parte instrumental" -#: ../game/screen_sing.cc:327 +#: ../game/screen_sing.cc:331 msgid " Remember to wait for grading!" msgstr " Recuerda esperar para ser evaluado!" -#: ../game/screen_sing.cc:415 +#: ../game/screen_sing.cc:419 msgid "No player!" msgstr "¡No se han encontrado jugadores!" -#: ../game/screen_sing.cc:424 +#: ../game/screen_sing.cc:428 msgid "Hit singer" msgstr "Superestrella" -#: ../game/screen_sing.cc:425 +#: ../game/screen_sing.cc:429 msgid "Lead singer" msgstr "Vocalista" -#: ../game/screen_sing.cc:426 -#: ../game/screen_sing.cc:432 -#: ../game/screen_sing.cc:438 +#: ../game/screen_sing.cc:430 +#: ../game/screen_sing.cc:436 +#: ../game/screen_sing.cc:442 msgid "Rising star" msgstr "Aficionado" -#: ../game/screen_sing.cc:427 -#: ../game/screen_sing.cc:433 -#: ../game/screen_sing.cc:439 +#: ../game/screen_sing.cc:431 +#: ../game/screen_sing.cc:437 +#: ../game/screen_sing.cc:443 msgid "Amateur" msgstr "Novato" -#: ../game/screen_sing.cc:428 -#: ../game/screen_sing.cc:440 +#: ../game/screen_sing.cc:432 +#: ../game/screen_sing.cc:444 msgid "Tone deaf" msgstr "Sin oÃdo" -#: ../game/screen_sing.cc:430 +#: ../game/screen_sing.cc:434 msgid "Maniac" msgstr "ManÃaco" -#: ../game/screen_sing.cc:431 +#: ../game/screen_sing.cc:435 msgid "Hoofer" msgstr "Artista" -#: ../game/screen_sing.cc:434 +#: ../game/screen_sing.cc:438 msgid "Loser" msgstr "Perdedor" -#: ../game/screen_sing.cc:436 +#: ../game/screen_sing.cc:440 msgid "Virtuoso" msgstr "Virtuoso" -#: ../game/screen_sing.cc:437 +#: ../game/screen_sing.cc:441 msgid "Rocker" msgstr "Rockero" -#: ../game/main.cc:154 +#: ../game/main.cc:164 msgid "Audio capture..." msgstr "Captura de audio..." -#: ../game/main.cc:156 +#: ../game/main.cc:166 msgid "Audio playback..." msgstr "Reproducción de audio..." -#: ../game/main.cc:159 +#: ../game/main.cc:169 msgid "Miscellaneous..." msgstr "Varios..." -#: ../game/main.cc:174 +#: ../game/main.cc:183 msgid "Main menu..." msgstr "Menú principal..." -#: ../game/main.cc:185 +#: ../game/main.cc:194 msgid "Screenshot taken!" msgstr "¡Captura de pantalla exitosa!" -#: ../game/main.cc:188 +#: ../game/main.cc:197 msgid "Screenshot failed!" msgstr "¡Captura de pantalla fallida!" -#: ../game/screen_songs.cc:187 +#: ../game/screen_songs.cc:195 msgid "No songs found!" msgstr "¡No se encontraron canciones!" -#: ../game/screen_songs.cc:188 +#: ../game/screen_songs.cc:196 msgid "" "Visit performous.org\n" "for free songs" @@ -234,20 +230,32 @@ msgstr "" "Visita performous.org\n" "para descargar canciones gratuitas" -#: ../game/screen_songs.cc:190 +#: ../game/screen_songs.cc:198 msgid "no songs match search" msgstr "ninguna canción satisface el criterio de búsqueda" -#: ../game/screen_songs.cc:198 +#: ../game/screen_songs.cc:206 msgid "(press END to view hiscores)" msgstr "(presiona FIN para ver las mejores puntuaciones)" -#: ../game/screen_songs.cc:199 +#: ../game/screen_songs.cc:207 msgid "<type in to search>" msgstr "<escribe para buscar>" +#: ../game/screen_songs.cc:212 +msgid "Hiscore for " +msgstr "Mejores puntuaciones para " + +#: ../game/database.cc:107 +msgid "No Items up to now." +msgstr "No hay mejores puntuaciones guardadas." + +#: ../game/database.cc:108 +msgid "Be the first to be listed here!" +msgstr "¡Sé el primero en aparecer aquÃ!" + #~ msgid "filter: " #~ msgstr "filtro: " + #~ msgid "none" #~ msgstr "ninguno" - |
|
From: Yoda-JM <yo...@us...> - 2010-04-05 08:34:22
|
Module: performous Branch: master Commit: b0345a8a4f4ae3bc91b0079cb878d86bc8aaaf40 Author: Vincent Le Ligeour <yo...@us...> Date: Mon Apr 5 10:34:00 2010 +0200 Fixed dance-only tracks no cover image --- game/screen_songs.cc | 23 +++-- game/screen_songs.hh | 3 +- themes/default/dance_cover.svg | 200 ++++++++++++++++++++++++++++++++++++++++ win32/setup.nsi | 2 + 4 files changed, 219 insertions(+), 9 deletions(-) |
|
From: Yoda-JM <yo...@us...> - 2010-04-03 10:58:50
|
Module: performous
Branch: master
Commit: 8899bc3c6c28d30a79f54f9729359989e42c1467
Author: Vincent Le Ligeour <yo...@us...>
Date: Sat Apr 3 12:58:35 2010 +0200
Used Window object from within screen manager (used elsewhere, either totally remove or use it when we can)
---
game/main.cc | 10 +++++-----
game/screen.hh | 4 ++--
game/screen_sing.cc | 2 +-
game/screenmanager.cc | 2 +-
4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/game/main.cc b/game/main.cc
index 19b2f83..fea8426 100644
--- a/game/main.cc
+++ b/game/main.cc
@@ -51,7 +51,7 @@ static void signalSetup() {
/// can be thrown as an exception to quit the game
struct QuitNow {};
-static void checkEvents_SDL(ScreenManager& sm, Window& window) {
+static void checkEvents_SDL(ScreenManager& sm) {
if (g_quit) {
std::cout << "Terminating, please wait... (or kill the process)" << std::endl;
throw QuitNow();
@@ -63,7 +63,7 @@ static void checkEvents_SDL(ScreenManager& sm, Window& window) {
sm.finished();
break;
case SDL_VIDEORESIZE:
- window.resize(event.resize.w, event.resize.h);
+ sm.window().resize(event.resize.w, event.resize.h);
break;
case SDL_KEYDOWN:
int keypressed = event.key.keysym.sym;
@@ -108,8 +108,8 @@ static void checkEvents_SDL(ScreenManager& sm, Window& window) {
case GL_OUT_OF_MEMORY: std::cerr << "OpenGL error: out of memory" << std::endl; break;
}
}
- if( config["graphic/fullscreen"].b() != window.getFullscreen() )
- window.setFullscreen(config["graphic/fullscreen"].b());
+ if( config["graphic/fullscreen"].b() != sm.window().getFullscreen() )
+ sm.window().setFullscreen(config["graphic/fullscreen"].b());
}
void audioSetup(Capture& capture, Audio& audio) {
@@ -220,7 +220,7 @@ void mainLoop(std::string const& songlist) {
}
// Process events for the next frame
if (midiDrums) midiDrums->process();
- checkEvents_SDL(sm, window);
+ checkEvents_SDL(sm);
} catch (std::runtime_error& e) {
std::cerr << "ERROR: " << e.what() << std::endl;
sm.flashMessage(std::string("ERROR: ") + e.what());
diff --git a/game/screen.hh b/game/screen.hh
index e74a15a..ba7da69 100644
--- a/game/screen.hh
+++ b/game/screen.hh
@@ -48,7 +48,7 @@ class ScreenManager: public Singleton <ScreenManager> {
/// returns pointer to Screen for given name
Screen* getScreen(std::string const& name);
/// returns a reference to the window
- Window& getWindow() { return window; };
+ Window& window() { return m_window; };
/// Set a message to flash in current screen
void flashMessage(std::string const& name, float fadeIn=0.5f, float hold=1.5f, float fadeOut=1.0f);
@@ -61,7 +61,7 @@ class ScreenManager: public Singleton <ScreenManager> {
bool isFinished() { return m_finished; };
private:
- Window& window;
+ Window& m_window;
bool m_finished;
typedef boost::ptr_map<std::string, Screen> screenmap_t;
screenmap_t screens;
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index 57ac1f9..1994b18 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -32,7 +32,7 @@ namespace {
void ScreenSing::enter() {
ScreenManager* sm = ScreenManager::getSingletonPtr();
sm->flashMessage(_("Loading song..."), 0.0, 1.0, 0.5);
- sm->drawFlashMessage(); sm->getWindow().swap(); // Make loading message show
+ sm->drawFlashMessage(); sm->window().swap(); // Make loading message show
theme.reset(new ThemeSing());
// Load the rest of the song
if (m_song->loadStatus != Song::FULL) {
diff --git a/game/screenmanager.cc b/game/screenmanager.cc
index 041c24c..8cd9506 100644
--- a/game/screenmanager.cc
+++ b/game/screenmanager.cc
@@ -6,7 +6,7 @@
template<> ScreenManager* Singleton<ScreenManager>::ms_Singleton = NULL;
-ScreenManager::ScreenManager(Window& window): window(window), m_finished(false), currentScreen(), m_messagePopup(0.0, 1.0), m_textMessage(getThemePath("message_text.svg"), config["graphic/text_lod"].f()) {
+ScreenManager::ScreenManager(Window& _window): m_window(_window), m_finished(false), currentScreen(), m_messagePopup(0.0, 1.0), m_textMessage(getThemePath("message_text.svg"), config["graphic/text_lod"].f()) {
m_textMessage.dimensions.middle().screenTop(0.05);
}
|
|
From: Yoda-JM <yo...@us...> - 2010-04-03 10:46:57
|
Module: performous
Branch: master
Commit: e07e05e8de8644e7ce280fe3d1e48b55d84fc65d
Author: Vincent Le Ligeour <yo...@us...>
Date: Sat Apr 3 12:46:39 2010 +0200
Fixed some typo
---
game/screen.hh | 11 ++++++-----
game/screenmanager.cc | 2 +-
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/game/screen.hh b/game/screen.hh
index 08f8973..e74a15a 100644
--- a/game/screen.hh
+++ b/game/screen.hh
@@ -31,7 +31,7 @@ class Screen {
/// Manager for screens
/** manages screens
- * @see Singleton
+ * @see Singleton
*/
class ScreenManager: public Singleton <ScreenManager> {
public:
@@ -49,7 +49,7 @@ class ScreenManager: public Singleton <ScreenManager> {
Screen* getScreen(std::string const& name);
/// returns a reference to the window
Window& getWindow() { return window; };
-
+
/// Set a message to flash in current screen
void flashMessage(std::string const& name, float fadeIn=0.5f, float hold=1.5f, float fadeOut=1.0f);
/// Draw flash messages in current screen
@@ -63,13 +63,14 @@ class ScreenManager: public Singleton <ScreenManager> {
private:
Window& window;
bool m_finished;
- float m_timeToFadeIn;
- float m_timeToFadeOut;
- float m_timeToShow;
typedef boost::ptr_map<std::string, Screen> screenmap_t;
screenmap_t screens;
Screen* newScreen;
Screen* currentScreen;
+ // Flash messages members
+ float m_timeToFadeIn;
+ float m_timeToFadeOut;
+ float m_timeToShow;
AnimValue m_messagePopup;
SvgTxtTheme m_textMessage;
std::string m_message;
diff --git a/game/screenmanager.cc b/game/screenmanager.cc
index f4c2ca2..041c24c 100644
--- a/game/screenmanager.cc
+++ b/game/screenmanager.cc
@@ -37,7 +37,7 @@ void ScreenManager::drawFlashMessage() {
bool haveToFadeIn = time <= (m_timeToFadeIn); // Is this fade in?
bool haveToFadeOut = time >= (m_messagePopup.getTarget() - m_timeToFadeOut); // Is this fade out?
float fadeValue = 1.0f;
-
+
if (haveToFadeIn) { // Fade in
fadeValue = float(time / m_timeToFadeIn); // Calculate animation value
} else if (haveToFadeOut) { // Fade out
|
|
From: Yoda-JM <yo...@us...> - 2010-04-03 10:28:46
|
Module: performous Branch: master Commit: a967dfff556b9852cef3655088fb19243e68ec24 Author: Vincent Le Ligeour <yo...@us...> Date: Sat Apr 3 12:28:26 2010 +0200 Updated French translation --- lang/fr.po | 103 +++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 58 insertions(+), 45 deletions(-) diff --git a/lang/fr.po b/lang/fr.po index 4920ea9..932a38e 100644 --- a/lang/fr.po +++ b/lang/fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Performous\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-25 00:30+0100\n" +"POT-Creation-Date: 2010-04-03 12:25+0100\n" "PO-Revision-Date: \n" "Last-Translator: Vincent Le Ligeour <yo...@us...>\n" "Language-Team: \n" @@ -13,60 +13,80 @@ msgstr "" "X-Poedit-Basepath: .\n" "X-Poedit-SearchPath-0: ../game\n" -#: ../game/screen_sing.cc:310 +#: ../game/database.cc:107 +msgid "No Items up to now." +msgstr "Aucun élément jusqu'à présent" + +#: ../game/database.cc:108 +msgid "Be the first to be listed here!" +msgstr "Soyez le premier à être listé ici!" + +#: ../game/screen_sing.cc:34 +msgid "Loading song..." +msgstr "Chargement de la chanson..." + +#: ../game/screen_sing.cc:42 +msgid "Song is broken!" +msgstr "Chanson cassée" + +#: ../game/screen_sing.cc:47 +msgid "Song contains broken tracks!" +msgstr "Chanson contenant des morceaux cassés" + +#: ../game/screen_sing.cc:330 msgid " ENTER to skip instrumental break" msgstr " \"Entrée\" pour passer l'instrumental" -#: ../game/screen_sing.cc:311 +#: ../game/screen_sing.cc:331 msgid " Remember to wait for grading!" msgstr " N'oubliez pas d'attendre pour votre classement!" -#: ../game/screen_sing.cc:399 +#: ../game/screen_sing.cc:419 msgid "No player!" msgstr "Aucun joueur n'a été trouvé!" -#: ../game/screen_sing.cc:408 +#: ../game/screen_sing.cc:428 msgid "Hit singer" msgstr "Superstar" -#: ../game/screen_sing.cc:409 +#: ../game/screen_sing.cc:429 msgid "Lead singer" msgstr "Soliste" -#: ../game/screen_sing.cc:410 -#: ../game/screen_sing.cc:416 -#: ../game/screen_sing.cc:422 +#: ../game/screen_sing.cc:430 +#: ../game/screen_sing.cc:436 +#: ../game/screen_sing.cc:442 msgid "Rising star" msgstr "Etoile montante" -#: ../game/screen_sing.cc:411 -#: ../game/screen_sing.cc:417 -#: ../game/screen_sing.cc:423 +#: ../game/screen_sing.cc:431 +#: ../game/screen_sing.cc:437 +#: ../game/screen_sing.cc:443 msgid "Amateur" msgstr "Amateur" -#: ../game/screen_sing.cc:412 -#: ../game/screen_sing.cc:424 +#: ../game/screen_sing.cc:432 +#: ../game/screen_sing.cc:444 msgid "Tone deaf" msgstr "Casserole" -#: ../game/screen_sing.cc:414 +#: ../game/screen_sing.cc:434 msgid "Maniac" msgstr "Maniac" -#: ../game/screen_sing.cc:415 +#: ../game/screen_sing.cc:435 msgid "Hoofer" msgstr "Claquettiste" -#: ../game/screen_sing.cc:418 +#: ../game/screen_sing.cc:438 msgid "Loser" msgstr "Perdant" -#: ../game/screen_sing.cc:420 +#: ../game/screen_sing.cc:440 msgid "Virtuoso" msgstr "Virtuose" -#: ../game/screen_sing.cc:421 +#: ../game/screen_sing.cc:441 msgid "Rocker" msgstr "Rockeur" @@ -118,11 +138,11 @@ msgstr "" "\n" "Veuillez en configurer certains avant de jouer." -#: ../game/screen_songs.cc:186 +#: ../game/screen_songs.cc:193 msgid "No songs found!" msgstr "Aucun morceau trouvé!" -#: ../game/screen_songs.cc:187 +#: ../game/screen_songs.cc:194 msgid "" "Visit performous.org\n" "for free songs" @@ -130,43 +150,43 @@ msgstr "" "Visitez performous.org\n" "pour des morceaux gratuits" -#: ../game/screen_songs.cc:189 +#: ../game/screen_songs.cc:196 msgid "no songs match search" msgstr "aucun morceau ne satisfait la recherche" -#: ../game/screen_songs.cc:197 +#: ../game/screen_songs.cc:204 msgid "(press END to view hiscores)" msgstr "(presser Fin pour voir le classement)" -#: ../game/screen_songs.cc:198 +#: ../game/screen_songs.cc:205 msgid "<type in to search>" msgstr "<Entrez votre recherche>" -#: ../game/screen_hiscore.cc:88 +#: ../game/screen_songs.cc:210 msgid "Hiscore for " msgstr "Records pour " -#: ../game/main.cc:154 +#: ../game/main.cc:164 msgid "Audio capture..." msgstr "Entrée sonore..." -#: ../game/main.cc:156 +#: ../game/main.cc:166 msgid "Audio playback..." msgstr "Sortie sonore..." -#: ../game/main.cc:159 +#: ../game/main.cc:169 msgid "Miscellaneous..." msgstr "Divers" -#: ../game/main.cc:174 +#: ../game/main.cc:183 msgid "Main menu..." msgstr "Menu principal..." -#: ../game/main.cc:185 +#: ../game/main.cc:194 msgid "Screenshot taken!" msgstr "Capture d'écran effectuée" -#: ../game/main.cc:188 +#: ../game/main.cc:197 msgid "Screenshot failed!" msgstr "Echec de la capture d'écran" @@ -202,38 +222,31 @@ msgstr "Entrez un nom pour créer un nouveau joueur." msgid "Search Text:" msgstr "Recherche:" -#: ../game/songs.cc:192 +#: ../game/songs.cc:195 msgid "random order" msgstr "ordre aléatoire" -#: ../game/songs.cc:193 +#: ../game/songs.cc:196 msgid "sorted by song" msgstr "classement par chanson" -#: ../game/songs.cc:194 +#: ../game/songs.cc:197 msgid "sorted by artist" msgstr "classement par artiste" -#: ../game/songs.cc:195 +#: ../game/songs.cc:198 msgid "sorted by edition" msgstr "classement par édition" -#: ../game/songs.cc:196 +#: ../game/songs.cc:199 msgid "sorted by genre" msgstr "classement par genre" -#: ../game/songs.cc:197 +#: ../game/songs.cc:200 msgid "sorted by path" msgstr "classement par chemin" -#: ../game/songs.cc:198 +#: ../game/songs.cc:201 msgid "sorted by language" msgstr "classement par langue" -#~ msgid "Loading..." -#~ msgstr "Chargement..." -#~ msgid "filter: " -#~ msgstr "filtre: " -#~ msgid "none" -#~ msgstr "aucun" - |
|
From: Yoda-JM <yo...@us...> - 2010-04-03 09:17:30
|
Module: performous
Branch: master
Commit: 70b1fc4dcbe17bc6839bef8a84eb3fef6fcf700a
Author: Vincent Le Ligeour <yo...@us...>
Date: Sat Apr 3 11:16:40 2010 +0200
Updated gentoo ebuild and removed debug message
---
game/fs.cc | 1 -
.../games-arcade/performous/performous-9999.ebuild | 26 ++++++++++++++++---
2 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/game/fs.cc b/game/fs.cc
index 7d1bf96..32163d0 100644
--- a/game/fs.cc
+++ b/game/fs.cc
@@ -30,7 +30,6 @@ fs::path getLocaleDir() {
dir = LOCALEDIR;
} else {
dir = plugin::execname().parent_path().parent_path() / LOCALEDIR;
- std::cout << "REL: " << dir << std::endl;
}
return dir;
diff --git a/portage-overlay/games-arcade/performous/performous-9999.ebuild b/portage-overlay/games-arcade/performous/performous-9999.ebuild
index e1f28cf..8337767 100644
--- a/portage-overlay/games-arcade/performous/performous-9999.ebuild
+++ b/portage-overlay/games-arcade/performous/performous-9999.ebuild
@@ -3,13 +3,15 @@
# $Header: /cvsroot/ultrastar-ng/UltraStar-ng/portage-overlay/games-arcade/performous/performous-9999.ebuild,v 1.10 2007/09/29 13:04:19 yoda-jm Exp $
EAPI=2
-inherit git games cmake-utils
+
+inherit games cmake-utils
+[ "$PV" == "9999" ] && inherit git
RESTRICT="nostrip"
SONGS_PN=ultrastar-songs
-DESCRIPTION="Karaoke game similar to Singstar"
+DESCRIPTION="Party game similar to Singstar, RockBand, Guitar Hero and Stepmania"
HOMEPAGE="http://performous.org"
SRC_URI="songs? (
mirror://sourceforge/${PN}/${SONGS_PN}-jc-1.zip
@@ -18,7 +20,12 @@ SRC_URI="songs? (
mirror://sourceforge/${PN}/${SONGS_PN}-shearer-1.zip
)"
-EGIT_REPO_URI="git://performous.git.sourceforge.net/gitroot/performous/performous"
+if [ "$PV" != "9999" ]; then
+ SRC_URI=" mirror://sourceforge/${PN}/${MY_P}.tar.bz2
+ $SRC_URI"
+else
+ EGIT_REPO_URI="git://performous.git.sourceforge.net/gitroot/performous/performous"
+fi
LICENSE="GPL-2
songs? (
@@ -51,14 +58,22 @@ RDEPEND="gnome-base/librsvg
DEPEND="${RDEPEND}
>=dev-util/cmake-2.6.0"
+S="${WORKDIR}/${MY_P}"
+
src_unpack() {
- git_src_unpack
+ if [ "${PV}" != "9999" ]; then
+ unpack "${MY_P}.tar.bz2"
+ else
+ git_src_unpack
+ cd "${S}"
+ fi
if use songs; then
cd "${S}"
unpack "${SONGS_PN}-jc-1.zip"
unpack "${SONGS_PN}-libre-3.zip"
unpack "${SONGS_PN}-restricted-3.zip"
unpack "${SONGS_PN}-shearer-1.zip"
+ cd "${S}"
fi
}
@@ -73,6 +88,7 @@ src_configure() {
$(cmake-utils_use_enable editor EDITOR)
-DCMAKE_INSTALL_PREFIX=${GAMES_PREFIX}
-DSHARE_INSTALL=share/performous
+ -DLOCALE_DIR=/usr/share
-DLIBDA_AUTODETECT_PLUGINS=false
-DLIBDA_PLUGIN_TESTING=false
-DCMAKE_BUILD_TYPE=Release"
@@ -87,6 +103,8 @@ src_compile() {
src_install() {
DOCS="docs/*.txt" cmake-utils_src_install
+ mv "${D}/${GAMES_PREFIX}/share/locale" "${D}/usr/share/"
+
if use songs; then
insinto "/usr/share/games/ultrastar"
doins -r "${S}/songs" || die "doins songs failed"
|
|
From: Tapio V. <aa...@us...> - 2010-03-31 17:49:27
|
Module: performous
Branch: master
Commit: d174cdb188a2c55957861a1d3c485091f1c6e903
Author: Tapio Vierros <tap...@gm...>
Date: Wed Mar 31 20:48:12 2010 +0300
Hack a better score display for lone instrument player.
---
game/guitargraph.cc | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index 96a51c8..f46faeb 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -867,6 +867,11 @@ void GuitarGraph::drawInfo(double time, double offsetX, Dimensions dimensions) {
} else {
float xcor = 0.35 * dimensions.w();
float h = 0.075 * 2.0 * dimensions.w();
+ // Hack to show the scores better when there is more space (1 instrument)
+ if (m_width.get() > 0.99) {
+ xcor += 0.15;
+ h *= 1.2;
+ }
// Draw scores
glColor4f(0.1f, 0.3f, 1.0f, 0.90f);
m_scoreText->render((boost::format("%04d") % getScore()).str());
|
|
From: Yoda-JM <yo...@us...> - 2010-03-30 21:53:24
|
Module: performous
Branch: master
Commit: 0c2c6f693dd3c0141ed05066f6079e7a4961305e
Author: Vincent Le Ligeour <yo...@us...>
Date: Tue Mar 30 23:53:07 2010 +0200
Fixed some UltraStar files misdetected as Stepmania files (reported by duke42)
---
game/songparser-sm.cc | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/game/songparser-sm.cc b/game/songparser-sm.cc
index fcbc224..48f4877 100644
--- a/game/songparser-sm.cc
+++ b/game/songparser-sm.cc
@@ -40,8 +40,10 @@ namespace {
/// 'Magick' to check if this file looks like correct format
bool SongParser::smCheck(std::vector<char> const& data) {
if (data[0] != '#' || data[1] < 'A' || data[1] > 'Z') return false;
- for (std::vector<char>::const_iterator it = data.begin(); it != data.end(); ++it)
- if (*it == ';') return true;
+ for (std::vector<char>::const_iterator it = data.begin(); it != data.end(); ++it){
+ if (*it == '\n') return false;
+ else if (*it == ';') return true;
+ }
return false;
}
|
|
From: Yoda-JM <yo...@us...> - 2010-03-30 21:44:51
|
Module: performous
Branch: master
Commit: 61587646fa32eb0f3d41c96e319bd6e66b5e1a58
Author: Vincent Le Ligeour <yo...@us...>
Date: Tue Mar 30 23:44:30 2010 +0200
Enhanced song parser exception message
---
game/songparser-sm.cc | 2 +-
game/songparser-txt.cc | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/songparser-sm.cc b/game/songparser-sm.cc
index 811d398..fcbc224 100644
--- a/game/songparser-sm.cc
+++ b/game/songparser-sm.cc
@@ -89,7 +89,7 @@ bool SongParser::smParseField(std::string line) {
//Here the data contained by the current line is separated in key and value.
//However, because of the differing format of notedata the value is analyzed only if key is not NOTES
std::string::size_type pos = line.find(':');
- if (pos == std::string::npos) throw std::runtime_error("Invalid format, should be #key:value");
+ if (pos == std::string::npos) throw std::runtime_error("Invalid sm format, should be #key:value");
std::string key = boost::trim_copy(line.substr(1, pos - 1));
if (key == "NOTES") {
/*All remaining data is parsed here.
diff --git a/game/songparser-txt.cc b/game/songparser-txt.cc
index 479d00a..348bd6e 100644
--- a/game/songparser-txt.cc
+++ b/game/songparser-txt.cc
@@ -62,7 +62,7 @@ bool SongParser::txtParseField(std::string const& line) {
if (line.empty()) return true;
if (line[0] != '#') return false;
std::string::size_type pos = line.find(':');
- if (pos == std::string::npos) throw std::runtime_error("Invalid format, should be #key:value");
+ if (pos == std::string::npos) throw std::runtime_error("Invalid txt format, should be #key:value");
std::string key = boost::trim_copy(line.substr(1, pos - 1));
std::string value = boost::trim_copy(line.substr(pos + 1));
if (value.empty()) return true;
|
|
From: Yoda-JM <yo...@us...> - 2010-03-28 23:26:48
|
Module: performous
Branch: master
Commit: 9df0c6037708637765101091cfbab562a1024bee
Author: Vincent Le Ligeour <yo...@us...>
Date: Mon Mar 29 01:24:47 2010 +0200
Fixed Windows installation file list (missing theme files)
---
win32/setup.nsi | 32 +++++++++++++++++++-------------
1 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/win32/setup.nsi b/win32/setup.nsi
index 6eb7614..1fac2df 100644
--- a/win32/setup.nsi
+++ b/win32/setup.nsi
@@ -150,7 +150,6 @@ Section "SezionePrincipale" SEC01
File "${FILES_PATH}\themes\default\band_cover.svg"
File "${FILES_PATH}\themes\default\bassneck.svg"
File "${FILES_PATH}\themes\default\button.svg"
- File "${FILES_PATH}\themes\default\button_l.svg"
File "${FILES_PATH}\themes\default\configuration_bg.svg"
File "${FILES_PATH}\themes\default\configuration_item.svg"
File "${FILES_PATH}\themes\default\configuration_value.svg"
@@ -165,9 +164,9 @@ Section "SezionePrincipale" SEC01
File "${FILES_PATH}\themes\default\icon.bmp"
File "${FILES_PATH}\themes\default\icon.png"
File "${FILES_PATH}\themes\default\icon.svg"
+ File "${FILES_PATH}\themes\default\instrument_cover.svg"
File "${FILES_PATH}\themes\default\instrumenthelp.svg"
File "${FILES_PATH}\themes\default\instruments.svg"
- File "${FILES_PATH}\themes\default\instrument_cover.svg"
File "${FILES_PATH}\themes\default\intro_bg.svg"
File "${FILES_PATH}\themes\default\intro_configure.svg"
File "${FILES_PATH}\themes\default\intro_practice.svg"
@@ -184,17 +183,17 @@ Section "SezionePrincipale" SEC01
File "${FILES_PATH}\themes\default\message_text.svg"
File "${FILES_PATH}\themes\default\mine.svg"
File "${FILES_PATH}\themes\default\neck_glow.svg"
+ File "${FILES_PATH}\themes\default\no_cover.svg"
+ File "${FILES_PATH}\themes\default\no_player_image.svg"
File "${FILES_PATH}\themes\default\notebar.png"
File "${FILES_PATH}\themes\default\notebar.svg"
+ File "${FILES_PATH}\themes\default\notebar_hi.svg"
File "${FILES_PATH}\themes\default\notebarfs-hl.png"
File "${FILES_PATH}\themes\default\notebarfs.svg"
File "${FILES_PATH}\themes\default\notebargold.png"
File "${FILES_PATH}\themes\default\notebargold.svg"
File "${FILES_PATH}\themes\default\notebargold_hi.svg"
- File "${FILES_PATH}\themes\default\notebar_hi.svg"
File "${FILES_PATH}\themes\default\notelines.svg"
- File "${FILES_PATH}\themes\default\no_cover.svg"
- File "${FILES_PATH}\themes\default\no_player_image.svg"
File "${FILES_PATH}\themes\default\practice.ogg"
File "${FILES_PATH}\themes\default\practice_bg.svg"
File "${FILES_PATH}\themes\default\practice_note.svg"
@@ -221,10 +220,14 @@ Section "SezionePrincipale" SEC01
File "${FILES_PATH}\themes\default\sing_tostartfg.svg"
File "${FILES_PATH}\themes\default\songs_bg.svg"
File "${FILES_PATH}\themes\default\songs_bg_default.svg"
- File "${FILES_PATH}\themes\default\songs_hiscore.svg"
+ File "${FILES_PATH}\themes\default\songs_has_hiscore.svg"
+ File "${FILES_PATH}\themes\default\songs_hiscores.svg"
File "${FILES_PATH}\themes\default\songs_order.svg"
File "${FILES_PATH}\themes\default\songs_song.svg"
File "${FILES_PATH}\themes\default\star.svg"
+ File "${FILES_PATH}\themes\default\tail.svg"
+ File "${FILES_PATH}\themes\default\tail_drumfill.svg"
+ File "${FILES_PATH}\themes\default\tail_glow.svg"
File "${FILES_PATH}\themes\default\tap.svg"
File "${FILES_PATH}\themes\default\vumeter_bg.svg"
File "${FILES_PATH}\themes\default\vumeter_fg.svg"
@@ -278,10 +281,14 @@ Section Uninstall
Delete "$INSTDIR\themes\default\vumeter_fg.svg"
Delete "$INSTDIR\themes\default\vumeter_bg.svg"
Delete "$INSTDIR\themes\default\tap.svg"
+ Delete "$INSTDIR\themes\default\tail_glow.svg"
+ Delete "$INSTDIR\themes\default\tail_drumfill.svg"
+ Delete "$INSTDIR\themes\default\tail.svg"
Delete "$INSTDIR\themes\default\star.svg"
Delete "$INSTDIR\themes\default\songs_song.svg"
Delete "$INSTDIR\themes\default\songs_order.svg"
- Delete "$INSTDIR\themes\default\songs_hiscore.svg"
+ Delete "$INSTDIR\themes\default\songs_hiscores.svg"
+ Delete "$INSTDIR\themes\default\songs_has_hiscore.svg"
Delete "$INSTDIR\themes\default\songs_bg_default.svg"
Delete "$INSTDIR\themes\default\songs_bg.svg"
Delete "$INSTDIR\themes\default\sing_tostartfg.svg"
@@ -308,17 +315,17 @@ Section Uninstall
Delete "$INSTDIR\themes\default\practice_note.svg"
Delete "$INSTDIR\themes\default\practice_bg.svg"
Delete "$INSTDIR\themes\default\practice.ogg"
- Delete "$INSTDIR\themes\default\no_player_image.svg"
- Delete "$INSTDIR\themes\default\no_cover.svg"
Delete "$INSTDIR\themes\default\notelines.svg"
- Delete "$INSTDIR\themes\default\notebar_hi.svg"
Delete "$INSTDIR\themes\default\notebargold_hi.svg"
Delete "$INSTDIR\themes\default\notebargold.svg"
Delete "$INSTDIR\themes\default\notebargold.png"
Delete "$INSTDIR\themes\default\notebarfs.svg"
Delete "$INSTDIR\themes\default\notebarfs-hl.png"
+ Delete "$INSTDIR\themes\default\notebar_hi.svg"
Delete "$INSTDIR\themes\default\notebar.svg"
Delete "$INSTDIR\themes\default\notebar.png"
+ Delete "$INSTDIR\themes\default\no_player_image.svg"
+ Delete "$INSTDIR\themes\default\no_cover.svg"
Delete "$INSTDIR\themes\default\neck_glow.svg"
Delete "$INSTDIR\themes\default\mine.svg"
Delete "$INSTDIR\themes\default\message_text.svg"
@@ -335,9 +342,9 @@ Section Uninstall
Delete "$INSTDIR\themes\default\intro_practice.svg"
Delete "$INSTDIR\themes\default\intro_configure.svg"
Delete "$INSTDIR\themes\default\intro_bg.svg"
- Delete "$INSTDIR\themes\default\instrument_cover.svg"
Delete "$INSTDIR\themes\default\instruments.svg"
Delete "$INSTDIR\themes\default\instrumenthelp.svg"
+ Delete "$INSTDIR\themes\default\instrument_cover.svg"
Delete "$INSTDIR\themes\default\icon.svg"
Delete "$INSTDIR\themes\default\icon.png"
Delete "$INSTDIR\themes\default\icon.bmp"
@@ -352,7 +359,6 @@ Section Uninstall
Delete "$INSTDIR\themes\default\configuration_value.svg"
Delete "$INSTDIR\themes\default\configuration_item.svg"
Delete "$INSTDIR\themes\default\configuration_bg.svg"
- Delete "$INSTDIR\themes\default\button_l.svg"
Delete "$INSTDIR\themes\default\button.svg"
Delete "$INSTDIR\themes\default\bassneck.svg"
Delete "$INSTDIR\themes\default\band_cover.svg"
@@ -465,4 +471,4 @@ Section Uninstall
SetAutoClose true
SectionEnd
-BrandingText "${PRODUCT_NAME} ${PRODUCT_VERSION}"
\ No newline at end of file
+BrandingText "${PRODUCT_NAME} ${PRODUCT_VERSION}"
|