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: Peque <ms...@us...> - 2010-01-27 16:15:29
|
Module: performous
Branch: master
Commit: 28d119d81a450ac02c35af171d45a1e2a207d579
Author: Miguel Sánchez de León Peque <mi...@vo...>
Date: Wed Jan 27 17:13:27 2010 +0100
When both text and type filter are activated in screen_songs, first CANCEL just clear text filter.
---
game/screen_songs.cc | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/game/screen_songs.cc b/game/screen_songs.cc
index 3f5c619..ea62d4f 100644
--- a/game/screen_songs.cc
+++ b/game/screen_songs.cc
@@ -74,8 +74,9 @@ void ScreenSongs::manageEvent(SDL_Event event) {
else manageSharedKey(nav);
return;
} else if (nav == input::CANCEL) {
- if (m_search.text.empty() && m_songs.getTypeFilter() == 0) sm->activateScreen("Intro");
- else { m_search.text.clear(); m_songs.setFilter(m_search.text); m_songs.setTypeFilter(0); }
+ if (!m_search.text.empty()) { m_search.text.clear(); m_songs.setFilter(m_search.text); }
+ else if (m_songs.getTypeFilter() != 0) m_songs.setTypeFilter(0);
+ else sm->activateScreen("Intro");
}
// The rest are only available when there are songs available
else if (m_songs.empty()) return;
|
|
From: Tapio V. <aa...@us...> - 2010-01-27 13:53:29
|
Module: performous
Branch: master
Commit: e2fdf66c9d09b2a4cdf3a38cee631f577e6019eb
Author: Tapio Vierros <tap...@gm...>
Date: Wed Jan 27 14:39:59 2010 +0200
Add notification about broken tracks in song.
---
game/screen_sing.cc | 6 +++++-
game/song.cc | 1 +
game/song.hh | 1 +
game/songparser-ini.cc | 2 +-
4 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index 945b1e3..76dd130 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -36,9 +36,13 @@ void ScreenSing::enter() {
try { SongParser sp(*m_song); }
catch (std::exception& e) {
std::cout << e.what() << std::endl;
- ScreenManager::getSingletonPtr()->activateScreen("Songs");
+ ScreenManager* sm = ScreenManager::getSingletonPtr();
+ sm->flashMessage(_("Song is broken!"));
+ sm->activateScreen("Songs");
}
}
+ // Notify about broken tracks
+ if (m_song->b0rkedTracks) ScreenManager::getSingletonPtr()->flashMessage(_("Song contains broken tracks!"));
bool foundbg = false;
if (!m_song->background.empty()) {
try {
diff --git a/game/song.cc b/game/song.cc
index 33b294f..a67015d 100644
--- a/game/song.cc
+++ b/game/song.cc
@@ -33,6 +33,7 @@ void Song::reload(bool errorIgnore) {
preview_start = getNaN();
beginTime = endTime = getNaN();
m_scoreFactor = 0.0;
+ b0rkedTracks = false;
try { SongParser(*this); } catch (...) { if (!errorIgnore) throw; }
collateUpdate();
}
diff --git a/game/song.hh b/game/song.hh
index b2c3fe9..33b29cd 100644
--- a/game/song.hh
+++ b/game/song.hh
@@ -88,6 +88,7 @@ class Song: boost::noncopyable {
double m_scoreFactor; ///< Normalization factor for the scoring system
typedef std::vector<std::pair<double,double> > Stops;
Stops stops;
+ bool b0rkedTracks;
};
static inline bool operator<(Song const& l, Song const& r) { return l.collateByArtist < r.collateByArtist; }
diff --git a/game/songparser-ini.cc b/game/songparser-ini.cc
index 7d6745c..9faa435 100644
--- a/game/songparser-ini.cc
+++ b/game/songparser-ini.cc
@@ -159,6 +159,7 @@ void SongParser::iniParse() {
// This number has been extracted from broken song tracks, but
// it is probably DIFFICULTYCOUNT * different_frets.
if (durCount <= 20) {
+ s.b0rkedTracks = true;
nm2.clear();
s.track_map.erase(name);
}
@@ -238,7 +239,6 @@ void SongParser::iniParse() {
oss << s.path << s.midifilename << std::endl;
std::cerr << oss.str(); // More likely to be atomic when written as one string
}
-
/*if (s.notes.empty()) {
Note n;
n.begin = 30.0;
|
|
From: Tapio V. <aa...@us...> - 2010-01-27 13:53:02
|
Module: performous Branch: master Commit: 897978b2d947e2754f5e5756e2a61899bf55afe7 Author: Tapio Vierros <tap...@gm...> Date: Wed Jan 27 15:47:40 2010 +0200 Update fi translation. --- lang/fi.po | 192 ++++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 108 insertions(+), 84 deletions(-) diff --git a/lang/fi.po b/lang/fi.po index a4bd93a..cf3d99f 100644 --- a/lang/fi.po +++ b/lang/fi.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: Performous\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-21 07:58+0200\n" +"POT-Creation-Date: 2010-01-27 15:43+0200\n" "PO-Revision-Date: \n" -"Last-Translator: Lasse Kärkkäinen <tro...@tr...>\n" +"Last-Translator: Tapio Vierros <tap...@gm...>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -13,79 +13,35 @@ msgstr "" "X-Poedit-Basepath: .\n" "X-Poedit-SearchPath-0: ../game\n" -#: ../game/main.cc:141 -msgid "Loading..." -msgstr "Käynnistyy..." - -#: ../game/main.cc:171 -msgid "Screenshot taken!" -msgstr "Kuvakaappaus tallennettu!" - -#: ../game/main.cc:174 -msgid "Screenshot failed!" -msgstr "Kuvakaappaus epäonnistui!" - -#: ../game/screen_players.cc:110 -msgid "No players found!" -msgstr "Pelaajia ei löytynyt!" - -#: ../game/screen_players.cc:111 -msgid "Enter a name to create a new player." -msgstr "Syötä nimi luodaksesi uuden pelaajan." - -#: ../game/screen_players.cc:113 -msgid "Press enter to create player!" -msgstr "Paina Enter luodaksesi pelaajan!" - -#: ../game/screen_players.cc:120 -msgid "You reached %1% points!" -msgstr "Sait %1% pistettä!" - -#: ../game/screen_players.cc:121 -msgid "Change player with arrow keys." -msgstr "Valitse pelaaja nuolinäppäimillä." - -#: ../game/screen_players.cc:122 -msgid "Name:" -msgstr "Nimi:" - -#: ../game/screen_players.cc:125 -msgid "Type text to filter or create a new player." -msgstr "Kirjoita etsiäksesi tai luodaksesi uuden pelaajan." - -#: ../game/screen_players.cc:125 -msgid "Search Text:" -msgstr "Etsi:" - -#: ../game/screen_intro.cc:10 +#: ../game/screen_intro.cc:15 msgid "Perform" msgstr "Esiinny" -#: ../game/screen_intro.cc:10 +#: ../game/screen_intro.cc:15 msgid "Start performing!" msgstr "Aloita esiintyminen!" -#: ../game/screen_intro.cc:11 +#: ../game/screen_intro.cc:16 msgid "Practice" msgstr "Harjoittele" -#: ../game/screen_intro.cc:11 +#: ../game/screen_intro.cc:16 msgid "Check your skills or test the microphones" msgstr "Tarkista taitosi tai testaa mikrofonit" -#: ../game/screen_intro.cc:12 +#: ../game/screen_intro.cc:17 msgid "Configure" msgstr "Asetukset" -#: ../game/screen_intro.cc:12 +#: ../game/screen_intro.cc:17 msgid "Configure game options" msgstr "Muokkaa pelin asetuksia" -#: ../game/screen_intro.cc:13 +#: ../game/screen_intro.cc:18 msgid "Quit" msgstr "Lopeta" -#: ../game/screen_intro.cc:13 +#: ../game/screen_intro.cc:18 msgid "Leave the game" msgstr "Poistu pelistä" @@ -105,96 +61,108 @@ msgstr "" "\n" "Säädä ääniasetuksia ennen pelaamista." -#: ../game/screen_sing.cc:313 +#: ../game/screen_sing.cc:34 +msgid "Loading song..." +msgstr "Ladataan kappaletta..." + +#: ../game/screen_sing.cc:42 +msgid "Song is broken!" +msgstr "Kappale on rikki!" + +#: ../game/screen_sing.cc:47 +msgid "Song contains broken tracks!" +msgstr "Kappaleessa on rikkinäisiä osia!" + +#: ../game/screen_sing.cc:326 msgid " ENTER to skip instrumental break" msgstr " ENTER hypätäksesi lauluosaan" -#: ../game/screen_sing.cc:314 +#: ../game/screen_sing.cc:327 msgid " Remember to wait for grading!" msgstr " Muista odottaa arvostelua!" -#: ../game/screen_sing.cc:402 +#: ../game/screen_sing.cc:415 msgid "No player!" msgstr "Pelaajia ei löytynyt!" -#: ../game/screen_sing.cc:411 +#: ../game/screen_sing.cc:424 msgid "Hit singer" msgstr "Tähti" -#: ../game/screen_sing.cc:412 +#: ../game/screen_sing.cc:425 msgid "Lead singer" msgstr "Solisti" -#: ../game/screen_sing.cc:413 -#: ../game/screen_sing.cc:419 -#: ../game/screen_sing.cc:425 +#: ../game/screen_sing.cc:426 +#: ../game/screen_sing.cc:432 +#: ../game/screen_sing.cc:438 msgid "Rising star" msgstr "Harrastaja" -#: ../game/screen_sing.cc:414 -#: ../game/screen_sing.cc:420 -#: ../game/screen_sing.cc:426 +#: ../game/screen_sing.cc:427 +#: ../game/screen_sing.cc:433 +#: ../game/screen_sing.cc:439 msgid "Amateur" msgstr "Amatööri" -#: ../game/screen_sing.cc:415 -#: ../game/screen_sing.cc:427 +#: ../game/screen_sing.cc:428 +#: ../game/screen_sing.cc:440 msgid "Tone deaf" msgstr "Lahjaton" -#: ../game/screen_sing.cc:417 +#: ../game/screen_sing.cc:430 msgid "Maniac" msgstr "Maanikko" -#: ../game/screen_sing.cc:418 +#: ../game/screen_sing.cc:431 msgid "Hoofer" msgstr "Ekspertti" -#: ../game/screen_sing.cc:421 +#: ../game/screen_sing.cc:434 msgid "Loser" msgstr "Luuseri" -#: ../game/screen_sing.cc:423 +#: ../game/screen_sing.cc:436 msgid "Virtuoso" msgstr "Virtuoosi" -#: ../game/screen_sing.cc:424 +#: ../game/screen_sing.cc:437 msgid "Rocker" msgstr "Rokkari" -#: ../game/songs.cc:192 +#: ../game/songs.cc:195 msgid "random order" msgstr "satunnainen järjestys" -#: ../game/songs.cc:193 +#: ../game/songs.cc:196 msgid "sorted by song" msgstr "järjestetty kappaleen mukaan" -#: ../game/songs.cc:194 +#: ../game/songs.cc:197 msgid "sorted by artist" msgstr "järjestetty esittäjän mukaan" -#: ../game/songs.cc:195 +#: ../game/songs.cc:198 msgid "sorted by edition" msgstr "järjestetty julkaisun mukaan" -#: ../game/songs.cc:196 +#: ../game/songs.cc:199 msgid "sorted by genre" msgstr "järjestetty lajityypin mukaan" -#: ../game/songs.cc:197 +#: ../game/songs.cc:200 msgid "sorted by path" msgstr "järjestetty polun mukaan" -#: ../game/songs.cc:198 +#: ../game/songs.cc:201 msgid "sorted by language" msgstr "järjestetty kielen mukaan" -#: ../game/screen_songs.cc:188 +#: ../game/screen_songs.cc:186 msgid "No songs found!" msgstr "Kappaleita ei löytynyt!" -#: ../game/screen_songs.cc:189 +#: ../game/screen_songs.cc:187 msgid "" "Visit performous.org\n" "for free songs" @@ -202,18 +170,74 @@ msgstr "" "Hae ilmaista musiikkia\n" "osoitteesta performous.org" -#: ../game/screen_songs.cc:191 +#: ../game/screen_songs.cc:189 msgid "no songs match search" msgstr "yksikään kappale ei vastannut hakuasi" -#: ../game/screen_songs.cc:199 +#: ../game/screen_songs.cc:197 msgid "(press END to view hiscores)" msgstr "(paina END nähdäksesi ennätykset)" -#: ../game/screen_songs.cc:200 +#: ../game/screen_songs.cc:198 msgid "<type in to search>" msgstr "<kirjoita etsiäksesi>" +#: ../game/screen_players.cc:110 +msgid "No players found!" +msgstr "Pelaajia ei löytynyt!" + +#: ../game/screen_players.cc:111 +msgid "Enter a name to create a new player." +msgstr "Syötä nimi luodaksesi uuden pelaajan." + +#: ../game/screen_players.cc:113 +msgid "Press enter to create player!" +msgstr "Paina Enter luodaksesi pelaajan!" + +#: ../game/screen_players.cc:120 +msgid "You reached %1% points!" +msgstr "Sait %1% pistettä!" + +#: ../game/screen_players.cc:121 +msgid "Change player with arrow keys." +msgstr "Valitse pelaaja nuolinäppäimillä." + +#: ../game/screen_players.cc:122 +msgid "Name:" +msgstr "Nimi:" + +#: ../game/screen_players.cc:125 +msgid "Type text to filter or create a new player." +msgstr "Kirjoita etsiäksesi tai luodaksesi uuden pelaajan." + +#: ../game/screen_players.cc:125 +msgid "Search Text:" +msgstr "Etsi:" + +#: ../game/main.cc:154 +msgid "Audio capture..." +msgstr "Ãänen kaappaus..." + +#: ../game/main.cc:156 +msgid "Audio playback..." +msgstr "Ãänentoisto..." + +#: ../game/main.cc:159 +msgid "Miscellaneous..." +msgstr "Sekalaista..." + +#: ../game/main.cc:174 +msgid "Main menu..." +msgstr "Päävalikko..." + +#: ../game/main.cc:185 +msgid "Screenshot taken!" +msgstr "Kuvakaappaus tallennettu!" + +#: ../game/main.cc:188 +msgid "Screenshot failed!" +msgstr "Kuvakaappaus epäonnistui!" + #: ../game/screen_hiscore.cc:88 msgid "Hiscore for " msgstr "Ennätykset kappaleelle " |
|
From: Tapio V. <aa...@us...> - 2010-01-27 13:52:55
|
Module: performous
Branch: master
Commit: b6624441328a630ee75fbe23c67c9f33bd0e03a9
Author: Tapio Vierros <tap...@gm...>
Date: Wed Jan 27 15:41:25 2010 +0200
Add a hack to bring SM parser to the memory saving bussiness.
---
game/songparser-sm.cc | 1 +
game/songparser.hh | 2 +-
2 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/game/songparser-sm.cc b/game/songparser-sm.cc
index ba60e40..811d398 100644
--- a/game/songparser-sm.cc
+++ b/game/songparser-sm.cc
@@ -55,6 +55,7 @@ reaches value #NOTES.
/// Parse header data for Songs screen
// TODO: This actually parses the whole thing
+// TODO: Songparser drops parsed notes, remove it when smParseHeader is more intelligent
void SongParser::smParseHeader() {
Song& s = m_song;
std::string line;
diff --git a/game/songparser.hh b/game/songparser.hh
index 842dd75..14f3f37 100644
--- a/game/songparser.hh
+++ b/game/songparser.hh
@@ -59,7 +59,7 @@ class SongParser {
try {
if (type == TXT) txtParseHeader();
else if (type == INI) iniParseHeader();
- else if (type == SM) smParseHeader();
+ else if (type == SM) { smParseHeader(); s.dropNotes(); } // Hack: drop notes here
} catch (std::runtime_error& e) {
throw SongParserException(e.what(), m_linenum);
}
|
|
From: Tapio V. <aa...@us...> - 2010-01-27 13:52:50
|
Module: performous
Branch: master
Commit: afa567dca8f365aaeaf785a82f8214f73d03be53
Author: Tapio Vierros <tap...@gm...>
Date: Wed Jan 27 15:26:19 2010 +0200
Add "Loading song..." notification.
---
game/main.cc | 2 +-
game/screen.hh | 6 +++++-
game/screen_sing.cc | 4 +++-
game/screenmanager.cc | 2 +-
4 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/game/main.cc b/game/main.cc
index 40bfc9b..da85251 100644
--- a/game/main.cc
+++ b/game/main.cc
@@ -149,7 +149,7 @@ void audioSetup(Capture& capture, Audio& audio) {
void mainLoop(std::string const& songlist) {
Window window(config["graphic/window_width"].i(), config["graphic/window_height"].i(), config["graphic/fullscreen"].b());
- ScreenManager sm;
+ ScreenManager sm(window);
try {
sm.flashMessage(_("Audio capture..."), 0.0f, 1.0f, 1.0f); window.blank(); sm.drawFlashMessage(); window.swap();
Capture capture;
diff --git a/game/screen.hh b/game/screen.hh
index 481744e..08f8973 100644
--- a/game/screen.hh
+++ b/game/screen.hh
@@ -3,6 +3,7 @@
#include "singleton.hh"
#include "animvalue.hh"
#include "opengl_text.hh"
+#include "video_driver.hh"
#include <boost/ptr_container/ptr_map.hpp>
#include <SDL.h>
#include <string>
@@ -35,7 +36,7 @@ class Screen {
class ScreenManager: public Singleton <ScreenManager> {
public:
/// constructor
- ScreenManager();
+ ScreenManager(Window& window);
/// adds a screen to the manager
void addScreen(Screen* s) { std::string tmp = s->getName(); screens.insert(tmp, s); };
/// Switches active screen
@@ -46,6 +47,8 @@ class ScreenManager: public Singleton <ScreenManager> {
Screen* getCurrentScreen() { return currentScreen; };
/// returns pointer to Screen for given name
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);
@@ -58,6 +61,7 @@ class ScreenManager: public Singleton <ScreenManager> {
bool isFinished() { return m_finished; };
private:
+ Window& window;
bool m_finished;
float m_timeToFadeIn;
float m_timeToFadeOut;
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index 5cefeb3..9b5123c 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -30,13 +30,15 @@ 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
theme.reset(new ThemeSing());
// Load the rest of the song
if (m_song->loadStatus != Song::FULL) {
try { SongParser sp(*m_song); }
catch (std::exception& e) {
std::cout << e.what() << std::endl;
- ScreenManager* sm = ScreenManager::getSingletonPtr();
sm->flashMessage(_("Song is broken!"));
sm->activateScreen("Songs");
}
diff --git a/game/screenmanager.cc b/game/screenmanager.cc
index ddf6279..f678ebb 100644
--- a/game/screenmanager.cc
+++ b/game/screenmanager.cc
@@ -5,7 +5,7 @@
template<> ScreenManager* Singleton<ScreenManager>::ms_Singleton = NULL;
-ScreenManager::ScreenManager(): m_finished(false), currentScreen(), m_messagePopup(0.0, 1.0), m_textMessage(getThemePath("message_text.svg")) {
+ScreenManager::ScreenManager(Window& window): window(window), m_finished(false), currentScreen(), m_messagePopup(0.0, 1.0), m_textMessage(getThemePath("message_text.svg")) {
m_textMessage.dimensions.middle().screenTop(0.05);
}
|
|
From: Tapio V. <aa...@us...> - 2010-01-27 13:52:45
|
Module: performous
Branch: master
Commit: 6541a99ed896a0bf6bed8a2224e4c1d03b8d9ef9
Author: Tapio Vierros <tap...@gm...>
Date: Wed Jan 27 15:00:28 2010 +0200
Drop note data when exiting song.
---
game/screen_sing.cc | 1 +
game/song.cc | 20 ++++++++++++++++++++
game/song.hh | 2 ++
3 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index 76dd130..5cefeb3 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -171,6 +171,7 @@ void ScreenSing::exit() {
m_pause_icon.reset();
m_video.reset();
m_background.reset();
+ m_song->dropNotes();
theme.reset();
if (m_audio.isPaused()) m_audio.togglePause();
}
diff --git a/game/song.cc b/game/song.cc
index a67015d..0d2af5b 100644
--- a/game/song.cc
+++ b/game/song.cc
@@ -38,6 +38,26 @@ void Song::reload(bool errorIgnore) {
collateUpdate();
}
+void Song::dropNotes() {
+ // Singing
+ if (!notes.empty()) {
+ notes.clear();
+ notes.push_back(Note()); // Dummy note to indicate there is a track
+ }
+ // Instruments
+ if (!track_map.empty()) {
+ for (TrackMap::iterator it = track_map.begin(); it != track_map.end(); ++it)
+ it->second.nm.clear();
+ }
+ // Dancing
+ if (!danceTracks.empty()) {
+ for (DanceTracks::iterator it = danceTracks.begin(); it != danceTracks.end(); ++it)
+ it->second.clear();
+ }
+ b0rkedTracks = false;
+ loadStatus = HEADER;
+}
+
void Song::collateUpdate() {
collateByTitle = collate(title + artist) + '\0' + filename;
collateByTitleOnly = collate(title);
diff --git a/game/song.hh b/game/song.hh
index 33b29cd..9718265 100644
--- a/game/song.hh
+++ b/game/song.hh
@@ -29,6 +29,8 @@ class Song: boost::noncopyable {
void reload(bool errorIgnore = true);
/// parse field
bool parseField(std::string const& line);
+ /// drop notes (to conserve memory), but keep info about available tracks
+ void dropNotes();
/** Get formatted song label. **/
std::string str() const { return title + " by " + artist; }
/** Get full song information (used by the search function). **/
|
|
From: Tapio V. <aa...@us...> - 2010-01-27 13:52:38
|
Module: performous
Branch: master
Commit: 0daf6a74411a733d604a499dd46e2254a10a17e0
Author: Tapio Vierros <tap...@gm...>
Date: Wed Jan 27 14:23:46 2010 +0200
Refactor INI track name parsing.
---
game/songparser-ini.cc | 38 ++++++++++++++++++++------------------
1 files changed, 20 insertions(+), 18 deletions(-)
diff --git a/game/songparser-ini.cc b/game/songparser-ini.cc
index f2d2f10..7d6745c 100644
--- a/game/songparser-ini.cc
+++ b/game/songparser-ini.cc
@@ -33,6 +33,24 @@ namespace {
throw std::runtime_error("\"" + str + "\" is not valid floating point value");
}
}
+ /// Change the MIDI track name to Performous track name
+ /// Return false if not valid
+ bool mangleTrackName(std::string& name) {
+ if (name == "T1 GEMS") { // Some old MIDI files have a track named T1 GEMS
+ name = "guitar"; return true;
+ }
+ else if (name.substr(0, 5) != "PART ") return false;
+ else name.erase(0, 5);
+ if (name == "GUITAR COOP") name = "coop guitar";
+ else if (name == "RHYTHM") name = "rhythm guitar";
+ else if (name == "DRUM") name = "drums";
+ else if (name == "DRUMS") name = "drums";
+ else if (name == "BASS") name = "bass";
+ else if (name == "GUITAR") name = "guitar";
+ else if (name == "VOCALS") return true;
+ else return false;
+ return true;
+ }
}
/// Parse header data for Songs screen
@@ -99,15 +117,7 @@ void SongParser::iniParseHeader() {
// Figure out the track name
std::string name = it->name;
if (midi.tracks.size() == 1) name = "guitar"; // Original (old) FoF songs only have one track
- else if (name == "T1 GEMS") name = "guitar"; // Some old MIDI files have a track named T1 GEMS
- else if (name.substr(0, 5) != "PART ") continue;
- else name.erase(0, 5);
- if (name == "GUITAR COOP") name = "coop guitar";
- else if (name == "RHYTHM") name = "rhythm guitar";
- else if (name == "DRUM") name = "drums";
- else if (name == "DRUMS") name = "drums";
- else if (name == "BASS") name = "bass";
- else if (name == "GUITAR") name = "guitar";
+ else if (!mangleTrackName(name)) continue; // Beautify the track name
// Add dummy notes to tracks so that they can be seen in song browser
if (name != "VOCALS") s.track_map.insert(make_pair(name,Track(name)));
else s.notes.push_back(Note());
@@ -127,15 +137,7 @@ void SongParser::iniParse() {
// Figure out the track name
std::string name = it->name;
if (midi.tracks.size() == 1) name = "guitar"; // Original (old) FoF songs only have one track
- else if (name == "T1 GEMS") name = "guitar"; // Some old MIDI files have a track named T1 GEMS
- else if (name.substr(0, 5) != "PART ") continue;
- else name.erase(0, 5);
- if (name == "GUITAR COOP") name = "coop guitar";
- else if (name == "RHYTHM") name = "rhythm guitar";
- else if (name == "DRUM") name = "drums";
- else if (name == "DRUMS") name = "drums";
- else if (name == "BASS") name = "bass";
- else if (name == "GUITAR") name = "guitar";
+ else if (!mangleTrackName(name)) continue; // Beautify the track name
// Process non-vocal tracks
if (name != "VOCALS") {
int durCount = 0;
|
|
From: Tapio V. <aa...@us...> - 2010-01-27 13:52:33
|
Module: performous Branch: master Commit: a7663d4adc9b94e6320f7ce778768291cf69202f Author: Tapio Vierros <tap...@gm...> Date: Tue Jan 26 23:14:01 2010 +0200 First version of parsing only song headers. --- game/screen_sing.cc | 9 ++++++++ game/song.cc | 2 + game/song.hh | 3 ++ game/songparser-ini.cc | 52 ++++++++++++++++++++++++++++++++++++----------- game/songparser-sm.cc | 11 +++++++++- game/songparser-txt.cc | 17 ++++++++++++-- game/songparser.hh | 34 ++++++++++++++++++++++++------ game/songs.cc | 3 ++ 8 files changed, 108 insertions(+), 23 deletions(-) |
|
From: Tapio V. <aa...@us...> - 2010-01-26 18:55:56
|
Module: performous
Branch: master
Commit: a8f7ee7546050560b60684af260ad8140e91e3b0
Author: Tapio Vierros <tap...@gm...>
Date: Tue Jan 26 20:50:49 2010 +0200
Use guitar track first rather than bass; also, put drum graph last (until it can be put middle).
---
game/notes.hh | 12 ++++++++++--
game/screen_sing.cc | 6 +++---
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/game/notes.hh b/game/notes.hh
index 9ea9fe6..f5bbe71 100644
--- a/game/notes.hh
+++ b/game/notes.hh
@@ -45,6 +45,14 @@ struct Duration {
typedef std::vector<Duration> Durations;
typedef std::map<int, Durations> NoteMap;
+/// Sort by instrument track name
+struct CompTrack {
+ bool operator()(std::string const& l, std::string const& r) const {
+ // TODO: Sort other guitar tracks (coop / rhythm) properly
+ return l > r;
+ }
+};
+
struct Track {
// TODO: name should not be needed here (contained into the map)
Track(std::string n): name(n) {}
@@ -53,8 +61,8 @@ struct Track {
};
// keep these ones
-typedef std::map<std::string,Track> TrackMap;
-typedef std::map<std::string,Track const*> TrackMapConstPtr; // this one really needed ? can't we save only the map key for comparison ?
+typedef std::map<std::string, Track, CompTrack> TrackMap;
+typedef std::map<std::string, Track const*, CompTrack> TrackMapConstPtr; // this one really needed ? can't we save only the map key for comparison ?
namespace {
bool isTrackInside(TrackMap const& track_map, std::string const& name) {
diff --git a/game/screen_sing.cc b/game/screen_sing.cc
index ef0d8ec..03ad50f 100644
--- a/game/screen_sing.cc
+++ b/game/screen_sing.cc
@@ -67,12 +67,12 @@ void ScreenSing::enter() {
try {
if (idx == 0) {
if (type == 0 && !m_song->hasDance()) ++type;
- if (type == 1 && !m_song->hasDrums()) ++type;
- if (type == 2 && !m_song->hasGuitars()) ++type;
+ if (type == 1 && !m_song->hasGuitars()) ++type;
+ if (type == 2 && !m_song->hasDrums()) ++type;
if (type == 3) break;
}
if (type == 0) m_dancers.push_back(new DanceGraph(m_audio, *m_song));
- else m_instruments.push_back(new GuitarGraph(m_audio, *m_song, type == 1, idx));
+ else m_instruments.push_back(new GuitarGraph(m_audio, *m_song, type == 2, idx));
++idx;
} catch (input::NoDevError&) {
++type;
|
|
From: Tapio V. <aa...@us...> - 2010-01-26 17:18:09
|
Module: performous
Branch: master
Commit: 07b204045e27d37245f4c789a73ff86f7b996ad2
Author: Tapio Vierros <tap...@gm...>
Date: Tue Jan 26 19:15:06 2010 +0200
Add a little jump/beat to drum graph when bass drum is hit.
---
game/guitargraph.cc | 8 ++++++++
game/guitargraph.hh | 1 +
2 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index 52e4185..1c9e459 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -70,6 +70,7 @@ GuitarGraph::GuitarGraph(Audio& audio, Song const& song, bool drums, int number)
m_level(),
m_text(getThemePath("sing_timetxt.svg"), config["graphic/text_lod"].f()),
m_correctness(0.0, 5.0),
+ m_drumJump(0.0, 12.0),
m_streakPopup(0.0, 1.0),
m_godmodePopup(0.0, 0.666),
m_score(),
@@ -393,6 +394,7 @@ void GuitarGraph::drumHit(double time, int fret) {
if (!m_drumfills.empty()) m_starmeter += score; // Only add starmeter if it's possible to activate GodMode
m_flames[fret].push_back(AnimValue(0.0, flameSpd));
m_flames[fret].back().setTarget(1.0);
+ if (fret == 0) m_drumJump.setTarget(1.0); // Do a jump for bass drum
if (m_chordIt->status == m_chordIt->polyphony) {
//m_score -= m_chordIt->score;
//m_chordIt->score *= m_chordIt->polyphony;
@@ -535,6 +537,12 @@ void GuitarGraph::draw(double time) {
glTranslatef(frac * 2.0 * offsetX, 0.0f, 0.0f);
glutil::PushMatrixMode pmb(GL_MODELVIEW);
glTranslatef((1.0 - frac) * offsetX, dimensions.y2(), 0.0f);
+ // Do some jumping for drums
+ if (m_drums) {
+ float jumpanim = m_drumJump.get();
+ if (jumpanim == 1.0) m_drumJump.setTarget(0.0);
+ if (jumpanim > 0) glTranslatef(0.0f, -m_drumJump.get() * 0.01, 0.0f);
+ }
glRotatef(g_angle, 1.0f, 0.0f, 0.0f);
float temp_s = dimensions.w() / 5.0f;
glScalef(temp_s, temp_s, temp_s);
diff --git a/game/guitargraph.hh b/game/guitargraph.hh
index 4e3e521..c44091a 100644
--- a/game/guitargraph.hh
+++ b/game/guitargraph.hh
@@ -138,6 +138,7 @@ class GuitarGraph {
typedef std::map<Duration const*, unsigned> NoteStatus; // Note in song to m_events[unsigned - 1] or 0 for not played
NoteStatus m_notes;
AnimValue m_correctness;
+ AnimValue m_drumJump;
AnimValue m_streakPopup; /// for animating the popup
AnimValue m_godmodePopup; /// for animating the popup
double m_score; /// unnormalized scores
|
|
From: Yoda-JM <yo...@us...> - 2010-01-24 23:52:00
|
Module: performous Branch: master Commit: 929dbbdf5274ed9a39142f956b964528aa3a0557 Author: Vincent Le Ligeour <yo...@us...> Date: Mon Jan 25 00:51:40 2010 +0100 Updated French translation --- lang/fr.po | 24 +++++++++++++++++++----- 1 files changed, 19 insertions(+), 5 deletions(-) diff --git a/lang/fr.po b/lang/fr.po index d7ce21c..4920ea9 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-21 00:06+0100\n" +"POT-Creation-Date: 2010-01-25 00:30+0100\n" "PO-Revision-Date: \n" "Last-Translator: Vincent Le Ligeour <yo...@us...>\n" "Language-Team: \n" @@ -147,14 +147,26 @@ msgid "Hiscore for " msgstr "Records pour " #: ../game/main.cc:154 -msgid "Loading..." -msgstr "Chargement..." +msgid "Audio capture..." +msgstr "Entrée sonore..." -#: ../game/main.cc:184 +#: ../game/main.cc:156 +msgid "Audio playback..." +msgstr "Sortie sonore..." + +#: ../game/main.cc:159 +msgid "Miscellaneous..." +msgstr "Divers" + +#: ../game/main.cc:174 +msgid "Main menu..." +msgstr "Menu principal..." + +#: ../game/main.cc:185 msgid "Screenshot taken!" msgstr "Capture d'écran effectuée" -#: ../game/main.cc:187 +#: ../game/main.cc:188 msgid "Screenshot failed!" msgstr "Echec de la capture d'écran" @@ -218,6 +230,8 @@ msgstr "classement par chemin" msgid "sorted by language" msgstr "classement par langue" +#~ msgid "Loading..." +#~ msgstr "Chargement..." #~ msgid "filter: " #~ msgstr "filtre: " #~ msgid "none" |
|
From: Stefano A. <xa...@us...> - 2010-01-24 23:13:11
|
Module: performous Branch: master Commit: 30b5f82d3664042b163114c5b5cedd4c156f7288 Author: Xaldyz <xa...@us...> Date: Mon Jan 25 00:13:15 2010 +0100 Updated Italian translation --- lang/it.po | 131 +++++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 81 insertions(+), 50 deletions(-) diff --git a/lang/it.po b/lang/it.po index d1784ea..71d913f 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-13 15:27+0100\n" +"POT-Creation-Date: 2010-01-25 00:10+0100\n" "PO-Revision-Date: \n" "Last-Translator: Xaldyz <xa...@us...>\n" "Language-Team: \n" @@ -13,39 +13,63 @@ msgstr "" "X-Poedit-Basepath: .\n" "X-Poedit-SearchPath-0: ../game\n" -#: ../game/screen_hiscore.cc:104 +#: ../game/main.cc:154 +msgid "Audio capture..." +msgstr "Registramento audio..." + +#: ../game/main.cc:156 +msgid "Audio playback..." +msgstr "Riproduzione audio..." + +#: ../game/main.cc:159 +msgid "Miscellaneous..." +msgstr "Varie..." + +#: ../game/main.cc:174 +msgid "Main menu..." +msgstr "Menu principale..." + +#: ../game/main.cc:185 +msgid "Screenshot taken!" +msgstr "Screenshot eseguito!" + +#: ../game/main.cc:188 +msgid "Screenshot failed!" +msgstr "Screenshot non eseguito!" + +#: ../game/screen_hiscore.cc:88 msgid "Hiscore for " msgstr "Punteggi per " -#: ../game/screen_intro.cc:10 +#: ../game/screen_intro.cc:15 msgid "Perform" msgstr "Gioca" -#: ../game/screen_intro.cc:10 +#: ../game/screen_intro.cc:15 msgid "Start performing!" msgstr "Comincia a cantare" -#: ../game/screen_intro.cc:11 +#: ../game/screen_intro.cc:16 msgid "Practice" msgstr "Pratica" -#: ../game/screen_intro.cc:11 +#: ../game/screen_intro.cc:16 msgid "Check your skills or test the microphones" msgstr "Controlla la tua bravura! / Test microfono" -#: ../game/screen_intro.cc:12 +#: ../game/screen_intro.cc:17 msgid "Configure" msgstr "Configura" -#: ../game/screen_intro.cc:12 +#: ../game/screen_intro.cc:17 msgid "Configure game options" msgstr "Opzioni di configurazione gioco" -#: ../game/screen_intro.cc:13 +#: ../game/screen_intro.cc:18 msgid "Quit" msgstr "Esci" -#: ../game/screen_intro.cc:13 +#: ../game/screen_intro.cc:18 msgid "Leave the game" msgstr "Lascia il gioco" @@ -65,96 +89,100 @@ msgstr "" "\n" "Per favore entra in configurazione prima di giocare" -#: ../game/screen_players.cc:109 +#: ../game/screen_players.cc:110 msgid "No players found!" msgstr "Nessun giocatore trovato!" -#: ../game/screen_players.cc:110 +#: ../game/screen_players.cc:111 msgid "Enter a name to create a new player." msgstr "Inserisci un nome per creare un nuovo giocatore." -#: ../game/screen_players.cc:112 +#: ../game/screen_players.cc:113 msgid "Press enter to create player!" msgstr "Premi invio per creare il giocatore!" -#: ../game/screen_players.cc:119 -#, boost-format +#: ../game/screen_players.cc:120 msgid "You reached %1% points!" msgstr "Hai fatto %1% punti!" -#: ../game/screen_players.cc:120 +#: ../game/screen_players.cc:121 msgid "Change player with arrow keys." msgstr "Cambia il giocatore con le frecce." -#: ../game/screen_players.cc:121 +#: ../game/screen_players.cc:122 msgid "Name:" msgstr "Nome:" -#: ../game/screen_players.cc:124 +#: ../game/screen_players.cc:125 msgid "Type text to filter or create a new player." msgstr "Inserisci un nome per selezionare un giocatore o crearne uno nuovo." -#: ../game/screen_players.cc:124 +#: ../game/screen_players.cc:125 msgid "Search Text:" msgstr "Testo di ricerca" -#: ../game/screen_sing.cc:338 +#: ../game/screen_sing.cc:310 msgid " ENTER to skip instrumental break" msgstr " INVIO per saltare lo stacco musicale" -#: ../game/screen_sing.cc:339 +#: ../game/screen_sing.cc:311 msgid " Remember to wait for grading!" msgstr " Ricordati di aspettare per il voto!" -#: ../game/screen_sing.cc:427 +#: ../game/screen_sing.cc:399 msgid "No player!" msgstr "Nessun giocatore trovato!" -#: ../game/screen_sing.cc:436 +#: ../game/screen_sing.cc:408 msgid "Hit singer" msgstr "Star" -#: ../game/screen_sing.cc:437 +#: ../game/screen_sing.cc:409 msgid "Lead singer" msgstr "Cantante" -#: ../game/screen_sing.cc:428 +#: ../game/screen_sing.cc:410 +#: ../game/screen_sing.cc:416 +#: ../game/screen_sing.cc:422 msgid "Rising star" msgstr "Dilettante" -#: ../game/screen_sing.cc:429 +#: ../game/screen_sing.cc:411 +#: ../game/screen_sing.cc:417 +#: ../game/screen_sing.cc:423 msgid "Amateur" msgstr "Amatore" +#: ../game/screen_sing.cc:412 #: ../game/screen_sing.cc:424 msgid "Tone deaf" msgstr "Stonato" -#: ../game/screen_sing.cc:442 +#: ../game/screen_sing.cc:414 msgid "Maniac" msgstr "Maniaco" -#: ../game/screen_sing.cc:443 +#: ../game/screen_sing.cc:415 msgid "Hoofer" msgstr "Professionista" -#: ../game/screen_sing.cc:446 +#: ../game/screen_sing.cc:418 msgid "Loser" msgstr "Perdente" -#: ../game/screen_sing.cc:448 +#: ../game/screen_sing.cc:420 msgid "Virtuoso" msgstr "Virtuoso" -#: ../game/screen_sing.cc:449 +#: ../game/screen_sing.cc:421 msgid "Rocker" msgstr "Rockstar" -#: ../game/screen_songs.cc:178 +#: ../game/screen_songs.cc:186 msgid "No songs found!" msgstr "Nessuna canzone trovata!" -#: ../game/screen_songs.cc:179 +#: ../game/screen_songs.cc:187 msgid "" "Visit performous.org\n" "for free songs" @@ -162,47 +190,50 @@ msgstr "" "Visita performous.org\n" "per canzoni gratis" -#: ../game/screen_songs.cc:181 +#: ../game/screen_songs.cc:189 msgid "no songs match search" msgstr "nessuna canzone trovata" -#: ../game/screen_songs.cc:188 -msgid "filter: " -msgstr "filtro:" +#: ../game/screen_songs.cc:197 +msgid "(press END to view hiscores)" +msgstr "(premi END per vedere i punteggi migliori)" -#: ../game/screen_songs.cc:188 -msgid "none" -msgstr "niente" +#: ../game/screen_songs.cc:198 +msgid "<type in to search>" +msgstr "<premi qualche lettera per cercare>" -#: ../game/songs.cc:204 +#: ../game/songs.cc:192 msgid "random order" msgstr "ordine casuale" -#: ../game/songs.cc:205 +#: ../game/songs.cc:193 msgid "sorted by song" msgstr "ordinato per canzone" -#: ../game/songs.cc:206 +#: ../game/songs.cc:194 msgid "sorted by artist" msgstr "ordinato per artista" -#: ../game/songs.cc:207 +#: ../game/songs.cc:195 msgid "sorted by edition" msgstr "ordinato per edizione" -#: ../game/songs.cc:208 +#: ../game/songs.cc:196 msgid "sorted by genre" msgstr "ordinato per genere" -#: ../game/songs.cc:209 +#: ../game/songs.cc:197 msgid "sorted by path" msgstr "ordinato per percorso" -#: ../game/songs.cc:210 +#: ../game/songs.cc:198 msgid "sorted by language" msgstr "ordinato per lingua" -#: ../game/screen_songs.cc:196 -msgid "(press END to view hiscores)" -msgstr "(premi END per vedere i punteggi migliori)" +#~ msgid "Loading..." +#~ msgstr "Caricamento in corso..." +#~ msgid "filter: " +#~ msgstr "filtro:" +#~ msgid "none" +#~ msgstr "niente" |
|
From: Tapio V. <aa...@us...> - 2010-01-24 20:35:17
|
Module: performous
Branch: master
Commit: 5f842e6d7923dcad8db5e40dca6b0be24f9248a4
Author: Tapio Vierros <tap...@gm...>
Date: Sun Jan 24 22:34:24 2010 +0200
Fix keyboard instrument buttons not detected when holding shift.
---
game/joystick.cc | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/joystick.cc b/game/joystick.cc
index 2069fbd..3725763 100644
--- a/game/joystick.cc
+++ b/game/joystick.cc
@@ -378,7 +378,7 @@ bool input::SDL::pushEvent(SDL_Event _e) {
bool dancepad = config["game/keyboard_dancepad"].b();
if(!guitar && !drumkit && !dancepad) return false;
- if (_e.key.keysym.mod & (KMOD_CTRL|KMOD_SHIFT|KMOD_ALT|KMOD_META)) return false;
+ if (_e.key.keysym.mod & (KMOD_CTRL|KMOD_ALT|KMOD_META)) return false;
switch(_e.key.keysym.sym) {
case SDLK_RETURN: case SDLK_KP_ENTER:
@@ -527,7 +527,7 @@ bool input::SDL::pushEvent(SDL_Event _e) {
bool dancepad = config["game/keyboard_dancepad"].b();
if(!guitar && !drumkit && !dancepad) return false;
- if (_e.key.keysym.mod & (KMOD_CTRL|KMOD_SHIFT|KMOD_ALT|KMOD_META)) return false;
+ if (_e.key.keysym.mod & (KMOD_CTRL|KMOD_ALT|KMOD_META)) return false;
switch(_e.key.keysym.sym) {
case SDLK_RETURN: case SDLK_KP_ENTER:
|
|
From: GergÅ N. <ge...@us...> - 2010-01-24 19:54:25
|
Module: performous Branch: master Commit: 17871c72530cd614282f069e1f264df87fda17e0 Author: geri <ge...@fr...> Date: Sun Jan 24 20:44:58 2010 +0100 lang/hu.mo Hungarian language file / Magyar nyelvi fáj --- lang/hu.po | 230 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 230 insertions(+), 0 deletions(-) diff --git a/lang/hu.po b/lang/hu.po new file mode 100644 index 0000000..69568c1 --- /dev/null +++ b/lang/hu.po @@ -0,0 +1,230 @@ +# +# Gegsite <ge...@fr...>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: Performous\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-01-24 12:31+0100\n" +"PO-Revision-Date: 2010-01-24 18:19+0100\n" +"Last-Translator: Gegsite <ge...@fr...>\n" +"Language-Team: Hungarian <>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-KeywordsList: _\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ../game\n" + +#: ../game/screen_songs.cc:186 +msgid "No songs found!" +msgstr "Zenét nem találtam!" + +#: ../game/screen_songs.cc:187 +msgid "" +"Visit performous.org\n" +"for free songs" +msgstr "" +"Látogass el a performous.org -ra\n" +"ingyenes zenékért" + +#: ../game/screen_songs.cc:189 +msgid "no songs match search" +msgstr "A keresett zene nem található" + +#: ../game/screen_songs.cc:197 +msgid "(press END to view hiscores)" +msgstr "(Nyomj END-et a ranglistához)" + +#: ../game/screen_songs.cc:198 +msgid "<type in to search>" +msgstr "<Ãrj a kereséshez>" + +#: ../game/main.cc:154 +msgid "Audio capture..." +msgstr "Hangfelvétel..." + +#: ../game/main.cc:156 +msgid "Audio playback..." +msgstr "Hang lejátszás..." + +#: ../game/main.cc:159 +msgid "Miscellaneous..." +msgstr "Vegyes..." + +#: ../game/main.cc:174 +msgid "Main menu..." +msgstr "FÅmenü â¦" + +#: ../game/main.cc:185 +msgid "Screenshot taken!" +msgstr "KépernyÅkép elkészült!" + +#: ../game/main.cc:188 +msgid "Screenshot failed!" +msgstr "KépernyÅkép nem sikerült!" + +#: ../game/screen_sing.cc:310 +msgid " ENTER to skip instrumental break" +msgstr "Nyomj ENTER-et a zenei rész átugrásához" + +#: ../game/screen_sing.cc:311 +msgid " Remember to wait for grading!" +msgstr "Ne feledd a besorolást megvárni!" + +#: ../game/screen_sing.cc:399 +msgid "No player!" +msgstr "Nincs játékos!" + +#: ../game/screen_sing.cc:408 +msgid "Hit singer" +msgstr "Kiváló énekes" + +#: ../game/screen_sing.cc:409 +msgid "Lead singer" +msgstr "Szólista" + +#: ../game/screen_sing.cc:410 ../game/screen_sing.cc:416 +#: ../game/screen_sing.cc:422 +msgid "Rising star" +msgstr "SzületÅ csillag" + +#: ../game/screen_sing.cc:411 ../game/screen_sing.cc:417 +#: ../game/screen_sing.cc:423 +msgid "Amateur" +msgstr "AmatÅr" + +#: ../game/screen_sing.cc:412 ../game/screen_sing.cc:424 +msgid "Tone deaf" +msgstr "Botfülű" + +#: ../game/screen_sing.cc:414 +msgid "Maniac" +msgstr "Mániákus" + +#: ../game/screen_sing.cc:415 +msgid "Hoofer" +msgstr "Profi táncos" + +#: ../game/screen_sing.cc:418 +msgid "Loser" +msgstr "Vesztes" + +#: ../game/screen_sing.cc:420 +msgid "Virtuoso" +msgstr "Virtuóz" + +#: ../game/screen_sing.cc:421 +msgid "Rocker" +msgstr "Rockker" + +#: ../game/screen_hiscore.cc:88 +msgid "Hiscore for " +msgstr "Pontozás" + +#: ../game/songs.cc:192 +msgid "random order" +msgstr "Véletlen elrendezés" + +#: ../game/songs.cc:193 +msgid "sorted by song" +msgstr "Zeneszám alapján" + +#: ../game/songs.cc:194 +msgid "sorted by artist" +msgstr "ElÅadó alapján" + +#: ../game/songs.cc:195 +msgid "sorted by edition" +msgstr "Kivitel alapján" + +#: ../game/songs.cc:196 +msgid "sorted by genre" +msgstr "Kategória alapján" + +#: ../game/songs.cc:197 +msgid "sorted by path" +msgstr "Elérési út alapján" + +#: ../game/songs.cc:198 +msgid "sorted by language" +msgstr "Nyelv alapján" + +#: ../game/screen_players.cc:110 +msgid "No players found!" +msgstr "Nem találtam játékost!" + +#: ../game/screen_players.cc:111 +msgid "Enter a name to create a new player." +msgstr "Ãrd be az új játékos nevét." + +#: ../game/screen_players.cc:113 +msgid "Press enter to create player!" +msgstr "Nyomj ENTER-t a létrehozáshoz!" + +#: ../game/screen_players.cc:120 +msgid "You reached %1% points!" +msgstr "%1% pontot kaptál!" + +#: ../game/screen_players.cc:121 +msgid "Change player with arrow keys." +msgstr "Válts a nyilakkal játékost." + +#: ../game/screen_players.cc:122 +msgid "Name:" +msgstr "Név:" + +#: ../game/screen_players.cc:125 +msgid "Type text to filter or create a new player." +msgstr "Ãrj be szöveget a szűréshez, vagy csinálj egy új játékost." + +#: ../game/screen_players.cc:125 +msgid "Search Text:" +msgstr "Szöveg keresÅ:" + +#: ../game/screen_intro.cc:15 +msgid "Perform" +msgstr "ElÅadás" + +#: ../game/screen_intro.cc:15 +msgid "Start performing!" +msgstr "Kezd az elÅadást!" + +#: ../game/screen_intro.cc:16 +msgid "Practice" +msgstr "Gyakorlás" + +#: ../game/screen_intro.cc:16 +msgid "Check your skills or test the microphones" +msgstr "Ãnekelj és ellenÅrizd a mikrofont" + +#: ../game/screen_intro.cc:17 +msgid "Configure" +msgstr "BeállÃtás" + +#: ../game/screen_intro.cc:17 +msgid "Configure game options" +msgstr "Játék beállÃtások" + +#: ../game/screen_intro.cc:18 +msgid "Quit" +msgstr "Kilépés" + +#: ../game/screen_intro.cc:18 +msgid "Leave the game" +msgstr "Játék abbahagyása" + +#: ../game/screen_intro.cc:21 +msgid "No playback devices could be used.\n" +msgstr "Nem találtam használható lejátszó eszközt.\n" + +#: ../game/screen_intro.cc:22 +msgid "No microphones found.\n" +msgstr "Nem találtam mikrofont.\n" + +#: ../game/screen_intro.cc:23 +msgid "" +"\n" +"Please configure some before playing." +msgstr "" +"\n" +"ÃllÃts be egy-két dolgot a játék elÅtt." |
|
From: tatanka <tim...@us...> - 2010-01-24 18:36:07
|
Module: performous Branch: master Commit: f16f3c0fb97e4f23608586f0846c713f408fd5f6 Author: Tim Ooms <tim...@us...> Date: Sun Jan 24 19:11:29 2010 +0100 Dutch translation updated --- lang/nl.po | 116 ++++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 71 insertions(+), 45 deletions(-) diff --git a/lang/nl.po b/lang/nl.po index d48f2fa..ccc1b0a 100644 --- a/lang/nl.po +++ b/lang/nl.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: performous\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-16 12:12+0100\n" +"POT-Creation-Date: 2010-01-24 17:14+0100\n" "PO-Revision-Date: \n" -"Last-Translator: Tim Ooms <tim...@us...>\n" +"Last-Translator: TatankaT <tim...@us...>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -45,63 +45,63 @@ msgstr "Typ tekst om te zoeken of een nieuwe speler aan te maken." msgid "Search Text:" msgstr "Zoek op tekst:" -#: ../game/songs.cc:181 +#: ../game/songs.cc:192 msgid "random order" msgstr "willekeurige volgorde" -#: ../game/songs.cc:182 +#: ../game/songs.cc:193 msgid "sorted by song" msgstr "gesorteerd op titel" -#: ../game/songs.cc:183 +#: ../game/songs.cc:194 msgid "sorted by artist" msgstr "gesorteerd op artiest" -#: ../game/songs.cc:184 +#: ../game/songs.cc:195 msgid "sorted by edition" msgstr "gesorteerd op editie" -#: ../game/songs.cc:185 +#: ../game/songs.cc:196 msgid "sorted by genre" msgstr "gesorteerd op genre" -#: ../game/songs.cc:186 +#: ../game/songs.cc:197 msgid "sorted by path" msgstr "gesorteerd op pad" -#: ../game/songs.cc:187 +#: ../game/songs.cc:198 msgid "sorted by language" msgstr "gesorteerd op taal" -#: ../game/screen_intro.cc:10 +#: ../game/screen_intro.cc:15 msgid "Perform" msgstr "Performen" -#: ../game/screen_intro.cc:10 +#: ../game/screen_intro.cc:15 msgid "Start performing!" msgstr "Opvoering starten!" -#: ../game/screen_intro.cc:11 +#: ../game/screen_intro.cc:16 msgid "Practice" msgstr "Oefenen" -#: ../game/screen_intro.cc:11 +#: ../game/screen_intro.cc:16 msgid "Check your skills or test the microphones" msgstr "Je vaardigheden testen en de microfoons controleren" -#: ../game/screen_intro.cc:12 +#: ../game/screen_intro.cc:17 msgid "Configure" msgstr "Opties" -#: ../game/screen_intro.cc:12 +#: ../game/screen_intro.cc:17 msgid "Configure game options" msgstr "Spelopties aanpassen" -#: ../game/screen_intro.cc:13 +#: ../game/screen_intro.cc:18 msgid "Quit" msgstr "Afsluiten" -#: ../game/screen_intro.cc:13 +#: ../game/screen_intro.cc:18 msgid "Leave the game" msgstr "Spel verlaten" @@ -121,68 +121,92 @@ msgstr "" "\n" "Gelieve eerst de spelopties aan te passen voor het spelen." -#: ../game/screen_sing.cc:322 +#: ../game/main.cc:154 +msgid "Audio capture..." +msgstr "Audio opname..." + +#: ../game/main.cc:156 +msgid "Audio playback..." +msgstr "Audio weergave..." + +#: ../game/main.cc:159 +msgid "Miscellaneous..." +msgstr "Diversen..." + +#: ../game/main.cc:174 +msgid "Main menu..." +msgstr "Hoofdmenu..." + +#: ../game/main.cc:185 +msgid "Screenshot taken!" +msgstr "Schermafdruk genomen!" + +#: ../game/main.cc:188 +msgid "Screenshot failed!" +msgstr "Schermafdruk nemen mislukt!" + +#: ../game/screen_sing.cc:310 msgid " ENTER to skip instrumental break" msgstr " ENTER: sla muzikaal stuk over" -#: ../game/screen_sing.cc:323 +#: ../game/screen_sing.cc:311 msgid " Remember to wait for grading!" msgstr " Even wachten op de uitslag!" -#: ../game/screen_sing.cc:411 +#: ../game/screen_sing.cc:399 msgid "No player!" msgstr "Geen speler!" -#: ../game/screen_sing.cc:420 +#: ../game/screen_sing.cc:408 msgid "Hit singer" msgstr "Hitzanger" -#: ../game/screen_sing.cc:421 +#: ../game/screen_sing.cc:409 msgid "Lead singer" msgstr "Solozanger" +#: ../game/screen_sing.cc:410 +#: ../game/screen_sing.cc:416 #: ../game/screen_sing.cc:422 -#: ../game/screen_sing.cc:428 -#: ../game/screen_sing.cc:434 msgid "Rising star" msgstr "Opkomende ster" +#: ../game/screen_sing.cc:411 +#: ../game/screen_sing.cc:417 #: ../game/screen_sing.cc:423 -#: ../game/screen_sing.cc:429 -#: ../game/screen_sing.cc:435 msgid "Amateur" msgstr "Amateur" +#: ../game/screen_sing.cc:412 #: ../game/screen_sing.cc:424 -#: ../game/screen_sing.cc:436 msgid "Tone deaf" msgstr "Toondoof" -#: ../game/screen_sing.cc:426 +#: ../game/screen_sing.cc:414 msgid "Maniac" msgstr "Maniak" -#: ../game/screen_sing.cc:427 +#: ../game/screen_sing.cc:415 msgid "Hoofer" msgstr "Professional" -#: ../game/screen_sing.cc:430 +#: ../game/screen_sing.cc:418 msgid "Loser" msgstr "Loser" -#: ../game/screen_sing.cc:432 +#: ../game/screen_sing.cc:420 msgid "Virtuoso" msgstr "Virtuoos" -#: ../game/screen_sing.cc:433 +#: ../game/screen_sing.cc:421 msgid "Rocker" msgstr "Rocker" -#: ../game/screen_songs.cc:184 +#: ../game/screen_songs.cc:186 msgid "No songs found!" msgstr "Geen liedjes gevonden!" -#: ../game/screen_songs.cc:185 +#: ../game/screen_songs.cc:187 msgid "" "Visit performous.org\n" "for free songs" @@ -190,22 +214,24 @@ msgstr "" "Bezoek performous.org\n" "voor gratis liedjes" -#: ../game/screen_songs.cc:187 +#: ../game/screen_songs.cc:189 msgid "no songs match search" msgstr "filter geeft geen resultaat" -#: ../game/screen_songs.cc:195 +#: ../game/screen_songs.cc:197 msgid "(press END to view hiscores)" -msgstr "(duw op END om hoogste scores te zien)" - -#: ../game/screen_songs.cc:196 -msgid "filter: " -msgstr "filter: " +msgstr "(duw op END om recordscores te zien)" -#: ../game/screen_songs.cc:196 -msgid "none" -msgstr "geen" +#: ../game/screen_songs.cc:198 +msgid "<type in to search>" +msgstr "<typ tekst om te zoeken>" #: ../game/screen_hiscore.cc:88 msgid "Hiscore for " -msgstr "Hoogste scores voor " +msgstr "Recordscores voor " + +#~ msgid "filter: " +#~ msgstr "filter: " +#~ msgid "none" +#~ msgstr "geen" + |
|
From: Peque <ms...@us...> - 2010-01-24 16:04:28
|
Module: performous Branch: master Commit: 19a2be46cce53240354627ddb98e3182d4e4be43 Author: Miguel Sánchez de León Peque <mi...@vo...> Date: Sun Jan 24 17:03:31 2010 +0100 Spanish translation updated. --- lang/es.po | 135 ++++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 82 insertions(+), 53 deletions(-) diff --git a/lang/es.po b/lang/es.po index c32d418..b620b96 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-08 12:36+0100\n" +"POT-Creation-Date: 2010-01-24 16:50+0100\n" "PO-Revision-Date: \n" -"Last-Translator: Miguel Sánchez de León Peque <msd...@gm...>\n" +"Last-Translator: Miguel Sánchez de León Peque <peq...@ho...>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -15,39 +15,39 @@ msgstr "" "X-Poedit-Country: SPAIN\n" "X-Poedit-SearchPath-0: ../game\n" -#: ../game/screen_hiscore.cc:104 +#: ../game/screen_hiscore.cc:88 msgid "Hiscore for " msgstr "Mejores puntuaciones para " -#: ../game/screen_intro.cc:10 +#: ../game/screen_intro.cc:15 msgid "Perform" msgstr "Jugar" -#: ../game/screen_intro.cc:10 +#: ../game/screen_intro.cc:15 msgid "Start performing!" msgstr "¡Comienza una partida!" -#: ../game/screen_intro.cc:11 +#: ../game/screen_intro.cc:16 msgid "Practice" msgstr "Practicar" -#: ../game/screen_intro.cc:11 +#: ../game/screen_intro.cc:16 msgid "Check your skills or test the microphones" msgstr "Comprueba tus habilidades o revisa los micrófonos" -#: ../game/screen_intro.cc:12 +#: ../game/screen_intro.cc:17 msgid "Configure" msgstr "Opciones" -#: ../game/screen_intro.cc:12 +#: ../game/screen_intro.cc:17 msgid "Configure game options" msgstr "Cambia las opciones de configuración del juego" -#: ../game/screen_intro.cc:13 +#: ../game/screen_intro.cc:18 msgid "Quit" msgstr "Salir" -#: ../game/screen_intro.cc:13 +#: ../game/screen_intro.cc:18 msgid "Leave the game" msgstr "Sal del juego" @@ -69,128 +69,152 @@ msgstr "" "\n" "Por favor, configura alguno antes de jugar." -#: ../game/screen_players.cc:109 +#: ../game/screen_players.cc:110 msgid "No players found!" msgstr "¡No se han encontrado jugadores!" -#: ../game/screen_players.cc:110 +#: ../game/screen_players.cc:111 msgid "Enter a name to create a new player." msgstr "Introduce un nombre para crear un nuevo jugador." -#: ../game/screen_players.cc:112 +#: ../game/screen_players.cc:113 msgid "Press enter to create player!" msgstr "Presiona \"enter\" para crear el nuevo jugador:" -#: ../game/screen_players.cc:119 +#: ../game/screen_players.cc:120 msgid "You reached %1% points!" msgstr "¡Has conseguido %1% puntos!" -#: ../game/screen_players.cc:120 +#: ../game/screen_players.cc:121 msgid "Change player with arrow keys." msgstr "Cambia de jugador con las flechas del teclado" -#: ../game/screen_players.cc:121 +#: ../game/screen_players.cc:122 msgid "Name:" msgstr "Nombre:" -#: ../game/screen_players.cc:124 +#: ../game/screen_players.cc:125 msgid "Type text to filter or create a new player." msgstr "Introduce texto para filtrar o crear un nuevo jugador." -#: ../game/screen_players.cc:124 +#: ../game/screen_players.cc:125 msgid "Search Text:" msgstr "Buscar texto:" -#: ../game/songs.cc:204 +#: ../game/songs.cc:192 msgid "random order" msgstr "ordenadas aleatoriamente" -#: ../game/songs.cc:205 +#: ../game/songs.cc:193 msgid "sorted by song" msgstr "ordenadas por canción" -#: ../game/songs.cc:206 +#: ../game/songs.cc:194 msgid "sorted by artist" msgstr "ordenadas por artista" -#: ../game/songs.cc:207 +#: ../game/songs.cc:195 msgid "sorted by edition" msgstr "ordenadas por edición" -#: ../game/songs.cc:208 +#: ../game/songs.cc:196 msgid "sorted by genre" msgstr "ordenadas por género" -#: ../game/songs.cc:209 +#: ../game/songs.cc:197 msgid "sorted by path" msgstr "ordenadas por directorio" -#: ../game/songs.cc:210 +#: ../game/songs.cc:198 msgid "sorted by language" msgstr "ordenadas por idioma" -#: ../game/screen_sing.cc:338 +#: ../game/screen_sing.cc:310 msgid " ENTER to skip instrumental break" msgstr " \"ENTER\" para pasar la parte instrumental" -#: ../game/screen_sing.cc:339 +#: ../game/screen_sing.cc:311 msgid " Remember to wait for grading!" msgstr " Recuerda esperar para ser evaluado!" -#: ../game/screen_sing.cc:427 +#: ../game/screen_sing.cc:399 msgid "No player!" msgstr "¡No se han encontrado jugadores!" -#: ../game/screen_sing.cc:436 +#: ../game/screen_sing.cc:408 msgid "Hit singer" msgstr "Superestrella" -#: ../game/screen_sing.cc:437 +#: ../game/screen_sing.cc:409 msgid "Lead singer" msgstr "Vocalista" -#: ../game/screen_sing.cc:438 -#: ../game/screen_sing.cc:444 -#: ../game/screen_sing.cc:450 +#: ../game/screen_sing.cc:410 +#: ../game/screen_sing.cc:416 +#: ../game/screen_sing.cc:422 msgid "Rising star" msgstr "Aficionado" -#: ../game/screen_sing.cc:439 -#: ../game/screen_sing.cc:445 -#: ../game/screen_sing.cc:451 +#: ../game/screen_sing.cc:411 +#: ../game/screen_sing.cc:417 +#: ../game/screen_sing.cc:423 msgid "Amateur" msgstr "Novato" -#: ../game/screen_sing.cc:440 -#: ../game/screen_sing.cc:452 +#: ../game/screen_sing.cc:412 +#: ../game/screen_sing.cc:424 msgid "Tone deaf" msgstr "Sin oÃdo" -#: ../game/screen_sing.cc:442 +#: ../game/screen_sing.cc:414 msgid "Maniac" msgstr "ManÃaco" -#: ../game/screen_sing.cc:443 +#: ../game/screen_sing.cc:415 msgid "Hoofer" msgstr "Artista" -#: ../game/screen_sing.cc:446 +#: ../game/screen_sing.cc:418 msgid "Loser" msgstr "Perdedor" -#: ../game/screen_sing.cc:448 +#: ../game/screen_sing.cc:420 msgid "Virtuoso" msgstr "Virtuoso" -#: ../game/screen_sing.cc:449 +#: ../game/screen_sing.cc:421 msgid "Rocker" msgstr "Rockero" -#: ../game/screen_songs.cc:178 +#: ../game/main.cc:154 +msgid "Audio capture..." +msgstr "Captura de audio..." + +#: ../game/main.cc:156 +msgid "Audio playback..." +msgstr "Reproducción de audio..." + +#: ../game/main.cc:159 +msgid "Miscellaneous..." +msgstr "Varios..." + +#: ../game/main.cc:174 +msgid "Main menu..." +msgstr "Menú principal..." + +#: ../game/main.cc:185 +msgid "Screenshot taken!" +msgstr "¡Captura de pantalla exitosa!" + +#: ../game/main.cc:188 +msgid "Screenshot failed!" +msgstr "¡Captura de pantalla fallida!" + +#: ../game/screen_songs.cc:186 msgid "No songs found!" msgstr "¡No se encontraron canciones!" -#: ../game/screen_songs.cc:179 +#: ../game/screen_songs.cc:187 msgid "" "Visit performous.org\n" "for free songs" @@ -198,15 +222,20 @@ msgstr "" "Visita performous.org\n" "para descargar canciones gratuitas" -#: ../game/screen_songs.cc:181 +#: ../game/screen_songs.cc:189 msgid "no songs match search" msgstr "ninguna canción satisface el criterio de búsqueda" -#: ../game/screen_songs.cc:188 -msgid "filter: " -msgstr "filtro: " +#: ../game/screen_songs.cc:197 +msgid "(press END to view hiscores)" +msgstr "(presiona FIN para ver las mejores puntuaciones)" + +#: ../game/screen_songs.cc:198 +msgid "<type in to search>" +msgstr "<escribe para buscar>" -#: ../game/screen_songs.cc:188 -msgid "none" -msgstr "ninguno" +#~ msgid "filter: " +#~ msgstr "filtro: " +#~ msgid "none" +#~ msgstr "ninguno" |
|
From: knittl <kn...@us...> - 2010-01-24 11:44:13
|
Module: performous Branch: menu Commit: 900c243c661688d99a9948e977e4d84e3ad95232 Author: knittl <kn...@us...> Date: Sat Dec 5 22:20:11 2009 +0100 freestyle notebar --- themes/default/notebarfs.svg | 376 ++++++++++++++++++++++++++++-------------- 1 files changed, 256 insertions(+), 120 deletions(-) |
|
From: knittl <kn...@us...> - 2010-01-24 11:44:10
|
Module: performous Branch: master Commit: d3adc4966d3ae433588a3427276e476708c87c63 Author: knittl <kn...@us...> Date: Sun Jan 24 12:43:30 2010 +0100 updated german translation --- lang/de.po | 233 +++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 185 insertions(+), 48 deletions(-) diff --git a/lang/de.po b/lang/de.po index c7b0f12..34068ab 100644 --- a/lang/de.po +++ b/lang/de.po @@ -2,94 +2,231 @@ msgid "" msgstr "" "Project-Id-Version: Performous\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-07 01:56+0100\n" +"POT-Creation-Date: 2010-01-24 12:31+0100\n" "PO-Revision-Date: \n" +"Last-Translator: knittl <kn...@us...>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-KeywordsList: _\n" "X-Poedit-Basepath: .\n" -"Last-Translator: Jack_MD <2.m...@gm...>\n" "X-Poedit-SearchPath-0: ../game\n" -#: ../game/screen_hiscore.cc:104 +#: ../game/screen_songs.cc:186 +msgid "No songs found!" +msgstr "Keine Songs vorhanden!" + +#: ../game/screen_songs.cc:187 +msgid "" +"Visit performous.org\n" +"for free songs" +msgstr "" +"Besuche performous.org\n" +"für freie Songs" + +#: ../game/screen_songs.cc:189 +msgid "no songs match search" +msgstr "Keine Songs gefunden" + +#: ../game/screen_songs.cc:197 +msgid "(press END to view hiscores)" +msgstr "(ENDE drücken um Highscores anzuzeigen)" + +#: ../game/screen_songs.cc:198 +msgid "<type in to search>" +msgstr "<für Suche tippen>" + +#: ../game/main.cc:154 +msgid "Audio capture..." +msgstr "Audio-Aufnahme" + +#: ../game/main.cc:156 +msgid "Audio playback..." +msgstr "Audio-Wiedergabe â¦" + +#: ../game/main.cc:159 +msgid "Miscellaneous..." +msgstr "Sonstiges â¦" + +#: ../game/main.cc:174 +msgid "Main menu..." +msgstr "Hauptmenü â¦" + +#: ../game/main.cc:185 +msgid "Screenshot taken!" +msgstr "Screenshot gemacht!" + +#: ../game/main.cc:188 +msgid "Screenshot failed!" +msgstr "Screenshot schlug fehl!" + +#: ../game/screen_sing.cc:310 +msgid " ENTER to skip instrumental break" +msgstr "ENTER um " + +#: ../game/screen_sing.cc:311 +msgid " Remember to wait for grading!" +msgstr "Nicht auf die Beurteilung vergessen" + +#: ../game/screen_sing.cc:399 +msgid "No player!" +msgstr "Keine Spieler!" + +#: ../game/screen_sing.cc:408 +msgid "Hit singer" +msgstr "Hitsänger" + +#: ../game/screen_sing.cc:409 +msgid "Lead singer" +msgstr "Leadsänger" + +#: ../game/screen_sing.cc:410 +#: ../game/screen_sing.cc:416 +#: ../game/screen_sing.cc:422 +msgid "Rising star" +msgstr "Nachwuchskünstler" + +#: ../game/screen_sing.cc:411 +#: ../game/screen_sing.cc:417 +#: ../game/screen_sing.cc:423 +msgid "Amateur" +msgstr "Amateur" + +#: ../game/screen_sing.cc:412 +#: ../game/screen_sing.cc:424 +msgid "Tone deaf" +msgstr "Taub" + +#: ../game/screen_sing.cc:414 +msgid "Maniac" +msgstr "Wahnsinniger" + +#: ../game/screen_sing.cc:415 +msgid "Hoofer" +msgstr "Profi-Tänzer" + +#: ../game/screen_sing.cc:418 +msgid "Loser" +msgstr "Verlierer" + +#: ../game/screen_sing.cc:420 +msgid "Virtuoso" +msgstr "Virtuose" + +#: ../game/screen_sing.cc:421 +msgid "Rocker" +msgstr "Rocker" + +#: ../game/screen_hiscore.cc:88 msgid "Hiscore for " -msgstr "Punktzahl für" +msgstr "Punktzahl für " + +#: ../game/songs.cc:192 +msgid "random order" +msgstr "zufällige reihenfolge" + +#: ../game/songs.cc:193 +msgid "sorted by song" +msgstr "nach Liedern sortiert" + +#: ../game/songs.cc:194 +msgid "sorted by artist" +msgstr "nach Interpreten sortiert" + +#: ../game/songs.cc:195 +msgid "sorted by edition" +msgstr "nach Edition sortiert" + +#: ../game/songs.cc:196 +msgid "sorted by genre" +msgstr "nach Genre sortiert" + +#: ../game/songs.cc:197 +msgid "sorted by path" +msgstr "nach Dateipfad sortiert" + +#: ../game/songs.cc:198 +msgid "sorted by language" +msgstr "nach Sprache sortiert" + +#: ../game/screen_players.cc:110 +msgid "No players found!" +msgstr "Keine Spieler gefunden!" + +#: ../game/screen_players.cc:111 +msgid "Enter a name to create a new player." +msgstr "Namen eingeben um neuen Spieler zu erzeugen." + +#: ../game/screen_players.cc:113 +msgid "Press enter to create player!" +msgstr "Enter drücken um einen Spieler zu erzeugen!" + +#: ../game/screen_players.cc:120 +msgid "You reached %1% points!" +msgstr "Du hast %1% punkte erreicht!" -#: ../game/screen_intro.cc:9 +#: ../game/screen_players.cc:121 +msgid "Change player with arrow keys." +msgstr "Spieler mit Pfeiltasten wechseln." + +#: ../game/screen_players.cc:122 +msgid "Name:" +msgstr "Name:" + +#: ../game/screen_players.cc:125 +msgid "Type text to filter or create a new player." +msgstr "Namen eingeben Spieler zu suchen oder neu anzulegen." + +#: ../game/screen_players.cc:125 +msgid "Search Text:" +msgstr "Suchtext:" + +#: ../game/screen_intro.cc:15 msgid "Perform" msgstr "Spielen" -#: ../game/screen_intro.cc:9 +#: ../game/screen_intro.cc:15 msgid "Start performing!" msgstr "Starte deinen Auftritt!" -#: ../game/screen_intro.cc:10 +#: ../game/screen_intro.cc:16 msgid "Practice" -msgstr "Ãbung" +msgstr "Ãben" -#: ../game/screen_intro.cc:10 +#: ../game/screen_intro.cc:16 msgid "Check your skills or test the microphones" msgstr "Prüfe deine Fähigkeiten oder teste das Mikrofon" -#: ../game/screen_intro.cc:11 +#: ../game/screen_intro.cc:17 msgid "Configure" -msgstr "Konfiguriere" +msgstr "Konfigurieren" -#: ../game/screen_intro.cc:11 +#: ../game/screen_intro.cc:17 msgid "Configure game options" -msgstr "Konfiguriere die Spiel-Optionen" +msgstr "Spiele-Optionen konfigurieren" -#: ../game/screen_intro.cc:12 +#: ../game/screen_intro.cc:18 msgid "Quit" msgstr "Beenden" -#: ../game/screen_intro.cc:12 +#: ../game/screen_intro.cc:18 msgid "Leave the game" -msgstr "Verlasse das Spiel" +msgstr "Spiel verlassen" -#: ../game/screen_intro.cc:19 +#: ../game/screen_intro.cc:21 msgid "No playback devices could be used.\n" msgstr "Kann keine Abspielgeräte benutzen.\n" -#: ../game/screen_intro.cc:20 +#: ../game/screen_intro.cc:22 msgid "No microphones found.\n" msgstr "Keine Mikrofone gefunden.\n" -#: ../game/screen_intro.cc:21 +#: ../game/screen_intro.cc:23 msgid "" "\n" "Please configure some before playing." msgstr "" "\n" -"Bitte konfiguriere ein wenig bevor du spielst." - -#: ../game/screen_players.cc:110 -msgid "No players found!" -msgstr "Keine Spieler gefunden!" - -#: ../game/screen_players.cc:111 -msgid "Enter a name to create a new player." -msgstr "Gib einen Namen ein um einen neuen Spieler zu erzeugen." - -#: ../game/screen_players.cc:113 -msgid "Press enter to create player!" -msgstr "Drücke Enter um einen Spieler zu erzeugen!" - -#: ../game/screen_songs.cc:209 -msgid "No songs found!" -msgstr "Kein Song gefunden!" - -#: ../game/screen_songs.cc:210 -msgid "" -"Visit performous.org\n" -"for free songs" -msgstr "" -"Besuche performous.org\n" -"für freie Songs" - -#: ../game/screen_songs.cc:212 -msgid "no songs match search" -msgstr "kein Song zur Suche gefunden" +"Du musst zuerst die Ein- und Ausgabegerate konfigurieren, bevor du spielst." |
|
From: Tapio V. <aa...@us...> - 2010-01-23 16:21:57
|
Module: performous
Branch: master
Commit: eb005de0581aeeaabb28ab6b087c4a7bdb75c45d
Author: Tapio Vierros <tap...@gm...>
Date: Sat Jan 23 18:13:07 2010 +0200
Make drum fills easier to complete (user feedback).
---
game/guitargraph.cc | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index e1b9508..52e4185 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -340,8 +340,8 @@ void GuitarGraph::updateDrumFill(double time) {
// Check if fill is over
if (m_dfIt != m_drumfills.end()) {
if (time > m_dfIt->end - past) {
- // Check if we can activate GodMode -> requires ~ 6 hits per second
- if (m_drumfillScore >= 10.0 * (m_dfIt->end - m_dfIt->begin)) activateStarpower();
+ // Check if we can activate GodMode -> requires ~ 7 hits per second
+ if (m_drumfillScore >= 7.0 * (m_dfIt->end - m_dfIt->begin)) activateStarpower();
m_drumfillScore = 0;
} else return;
} else if (canActivateStarpower()) {
|
|
From: Yoda-JM <yo...@us...> - 2010-01-23 10:09:49
|
Module: performous Branch: master Commit: 8a359a488fa28bb9e202f76b487eb658ad66412c Author: Vincent Le Ligeour <yo...@us...> Date: Sat Jan 23 11:09:31 2010 +0100 Added FSB extractor tool inside the tree (need lot of love) --- CMakeLists.txt | 2 +- docs/gh_fsb_decrypt.1 | 12 + tools/CMakeLists.txt | 1 + tools/gh_fsb/CMakeLists.txt | 5 + tools/gh_fsb/fsb.h | 177 +++++ tools/gh_fsb/fsbext.c | 1830 +++++++++++++++++++++++++++++++++++++++++++ tools/gh_fsb/mywav.h | 244 ++++++ tools/gh_fsb/show_dump.h | 68 ++ tools/gh_fsb/xma_header.h | 349 ++++++++ 9 files changed, 2687 insertions(+), 1 deletions(-) |
|
From: Yoda-JM <yo...@us...> - 2010-01-23 09:44:39
|
Module: performous
Branch: master
Commit: aef30e2e17ab704a244c3c6fb2740f5d2727b686
Author: Vincent Le Ligeour <yo...@us...>
Date: Sat Jan 23 10:43:51 2010 +0100
Added Guitar Hero xen decrypter (need some love and some testing)
---
docs/CMakeLists.txt | 5 +++-
docs/gh_xen_decrypt.1 | 15 ++++++++++
tools/CMakeLists.txt | 3 +-
tools/gh_xen_decrypt.cpp | 68 ++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 89 insertions(+), 2 deletions(-)
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
index d4f0c76..a54ca5d 100644
--- a/docs/CMakeLists.txt
+++ b/docs/CMakeLists.txt
@@ -22,7 +22,10 @@ if(UNIX)
message("WARNING: One of the following is missing: help2man, gzip; performous man page will not be generated")
endif(HELP2MAN AND GZIP)
if(ENABLE_TOOLS AND GZIP)
- set(TOOLS "ss_pak_extract" "ss_extract" "ss_cover_conv" "ss_adpcm_decode" "ss_ipu_decode" "ss_ipu_conv")
+ set(TOOLS
+ "ss_pak_extract" "ss_extract" "ss_cover_conv"
+ "ss_adpcm_decode" "ss_ipu_decode" "ss_ipu_conv"
+ "gh_xen_decrypt")
set(MAN_SECTION "1")
foreach(TOOL ${TOOLS})
set(TOOL_MANFILE ${CMAKE_CURRENT_SOURCE_DIR}/${TOOL}.${MAN_SECTION})
diff --git a/docs/gh_xen_decrypt.1 b/docs/gh_xen_decrypt.1
new file mode 100644
index 0000000..d11b5a2
--- /dev/null
+++ b/docs/gh_xen_decrypt.1
@@ -0,0 +1,15 @@
+.TH "gh_xen_decrypt" "1" "" "" ""
+.SH "NAME"
+gh_xen_decrypt \- Tool for decrypting Guitar Hero xen files
+.SH "SYNOPSIS"
+\fBgh_xen_decrypt\fR input.xen output
+.TP
+\fBinput.xen\fR
+Xen source file
+.TP
+\fBoutput\fR
+destination file
+.SH "DESCRIPTION"
+Tool for decrypting Guitar Hero xen files
+.SH "SEE ALSO"
+\fIperformous\fR(6)
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index 7a1611e..75c3819 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -54,10 +54,11 @@ if (Boost_FOUND)
endif()
endif (Boost_FOUND)
+add_executable(gh_xen_decrypt gh_xen_decrypt.cpp)
add_executable(ss_adpcm_decode adpcm_decode.cpp pak.cpp)
add_executable(ss_ipu_decode ipu_decode.cpp)
add_executable(ss_ipu_conv ipu_conv.cpp ipuconvmain.cpp pak.cpp)
-set(targets ${targets} ss_pak_extract ss_adpcm_decode ss_ipu_decode ss_ipu_conv itg_pck)
+set(targets ${targets} gh_xen_decrypt ss_pak_extract ss_adpcm_decode ss_ipu_decode ss_ipu_conv itg_pck)
# add install target:
install(TARGETS ${targets} DESTINATION bin)
diff --git a/tools/gh_xen_decrypt.cpp b/tools/gh_xen_decrypt.cpp
new file mode 100644
index 0000000..971c75b
--- /dev/null
+++ b/tools/gh_xen_decrypt.cpp
@@ -0,0 +1,68 @@
+#include <cstdlib>
+#include <stdexcept>
+#include <fstream>
+#include <iostream>
+
+#define KEY_LEN 11
+
+// Code originaly credited by "Invo" and provided ASIS
+// found here: http://www.scorehero.com/forum/viewtopic.php?t=39923
+// This code code be use to "decrypt" ".xen" files used in at least GH3 PC
+// key should be guessed (xor)
+
+char SwapByteBits(unsigned char cInput) {
+ unsigned char nResult=0;
+
+ for(unsigned int i = 0 ; i < 8 ; i++) {
+ nResult = nResult << 1;
+ nResult |= (cInput & 1);
+ cInput = cInput >> 1;
+ }
+ return nResult;
+}
+
+
+// TODO: use boost iterator to decode in one line
+int main(int argc, char** argv) {
+ unsigned char cpKey[KEY_LEN] = "5atu6w4zaw";
+
+ // Check params
+ if (argc != 3) throw std::runtime_error(std::string("Usage: ") + argv[0] + " <Input> <Output>");
+
+ // Open files
+ std::ofstream outputFile(argv[2], std::ofstream::binary);
+ std::ifstream inputFile(argv[1], std::ios::binary);
+
+ // Get the file size
+ inputFile.seekg (0, std::ios::end);
+ unsigned int fileSize = inputFile.tellg();
+ inputFile.seekg (0, std::ios::beg);
+
+ // Allocate buffer
+ char *pBuffer = new char[fileSize];
+
+ // Reading inputfile
+ std::cout << "Reading input file (" << fileSize << " Bytes)... ";
+ inputFile.read(pBuffer, fileSize);
+ inputFile.close();
+ std::cout << "DONE!" << std::endl;
+
+ // Decrypt
+ std::cout << "Decrypting... ";
+ char *pInput = pBuffer;
+ for (unsigned int nLoopIdx = 0 ; nLoopIdx < fileSize ; nLoopIdx++) {
+ *pInput = SwapByteBits(*pInput ^ cpKey[nLoopIdx % (KEY_LEN-1)]);
+ pInput++;
+ }
+ std::cout << "DONE!" << std::endl;
+
+ // Write the output
+ std::cout << "Writing outpout file... ";
+ outputFile.write(pBuffer, fileSize);
+ outputFile.close();
+ delete [] pBuffer;
+ std::cout << "DONE!" << std::endl;
+
+ return EXIT_SUCCESS;
+}
+
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-23 07:05:59
|
Module: performous
Branch: master
Commit: 40b54e86139021b247d586b217a1e4af31cd1541
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Jan 23 09:05:49 2010 +0200
Use GLEW_ARB_texture_non_power_of_two instead of GL_~ (which also compiled fine on my system for some reason)
---
game/surface.cc | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/game/surface.cc b/game/surface.cc
index 1328491..aea4965 100644
--- a/game/surface.cc
+++ b/game/surface.cc
@@ -82,7 +82,7 @@ void Texture::load(unsigned int width, unsigned int height, pix::Format format,
PixFmt const& f = getPixFmt(format);
glPixelStorei(GL_UNPACK_SWAP_BYTES, f.swap);
// Load the data into texture
- if ((isPow2(width) && isPow2(height)) || GL_ARB_texture_non_power_of_two) { // Can directly load the 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);
} else {
int newWidth = prevPow2(width);
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-23 06:47:44
|
Module: performous
Branch: master
Commit: 7c5db191a10dc2757356afe6c9b2ba6ebff58131
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Jan 23 08:47:11 2010 +0200
PortAudio device enumeration
---
libs/libda/plugins/audio_dev_pa19.cpp | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/libs/libda/plugins/audio_dev_pa19.cpp b/libs/libda/plugins/audio_dev_pa19.cpp
index 215ef1d..ffeb044 100644
--- a/libs/libda/plugins/audio_dev_pa19.cpp
+++ b/libs/libda/plugins/audio_dev_pa19.cpp
@@ -1,9 +1,24 @@
#include "portaudio.hh"
#include <libda/audio_dev.hpp>
+#include <iostream>
#include <ostream>
#include <sstream>
namespace {
+
+ struct Foo {
+ portaudio::Init init;
+ Foo() {
+ std::clog << "PortAudio devices:\n";
+ for (int i = 0, end = Pa_GetDeviceCount(); i != end; ++i) {
+ PaDeviceInfo const* info = Pa_GetDeviceInfo(i);
+ if (!info) continue;
+ std::clog << " pa19:" << i << " " << info->name << " (" << info->maxInputChannels << " in, " << info->maxOutputChannels << " out)\n";
+ }
+ std::clog << std::endl;
+ }
+ } foo;
+
using namespace da;
class pa19_record: public record::dev {
settings s;
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-23 06:47:40
|
Module: performous
Branch: master
Commit: 189c0380b08534c0322e564768fa63263c2a02da
Author: Lasse Karkkainen <tro...@tr...>
Date: Sat Jan 23 08:46:04 2010 +0200
Cleanup for texture loading
---
game/surface.cc | 19 +------------------
1 files changed, 1 insertions(+), 18 deletions(-)
diff --git a/game/surface.cc b/game/surface.cc
index 70bfd44..1328491 100644
--- a/game/surface.cc
+++ b/game/surface.cc
@@ -24,12 +24,6 @@ float Dimensions::screenY() const {
throw std::logic_error("Dimensions::screenY(): unknown m_screenAnchor value");
}
-bool checkExtension(std::string const& extension) {
- std::istringstream iss(reinterpret_cast<char const*>(glGetString(GL_EXTENSIONS)));
- for (std::string ext; iss >> ext;) if (ext == extension) return true;
- return false;
-}
-
template <typename T> void loader(T& target, fs::path name) {
std::string const filename = name.string();
if (!fs::exists(name)) throw std::runtime_error("File not found: " + filename);
@@ -88,20 +82,9 @@ void Texture::load(unsigned int width, unsigned int height, pix::Format format,
PixFmt const& f = getPixFmt(format);
glPixelStorei(GL_UNPACK_SWAP_BYTES, f.swap);
// Load the data into texture
- if ((isPow2(width) && isPow2(height)) ||
- checkExtension("GL_ARB_texture_non_power_of_two")) { // Use OpenGL 2.0 functionality
+ if ((isPow2(width) && isPow2(height)) || GL_ARB_texture_non_power_of_two) { // Can directly load the texture
glTexImage2D(type(), 0, GL_RGBA, width, height, 0, f.format, f.type, buffer);
} else {
- // TODO: Test for OpenGL extension GL_ARB_texture_non_power_of_two and if not found,
- // use gluScaleImage to upscale the texture to nextPow2 dimensions before calling
- // glTexImage2D (if it isn't pow2 already).
- // speeds it up... trust me you need it for now at least! :P
- // TODO: remove when cairo is fixed.
- //
- //if (isPow2(width) && isPow2(height))
- // gluBuild2DMipmaps(GL_TEXTURE_2D, 3, width, height, fmt, buffer_fmt, buffer);
- // int newWidth = nextPow2(width);
- // int newHeight = nextPow2(height);
int newWidth = prevPow2(width);
int newHeight = prevPow2(height);
std::vector<uint32_t> outBuf(newWidth * newHeight);
|
|
From: Tapio V. <aa...@us...> - 2010-01-22 13:51:38
|
Module: performous
Branch: master
Commit: 90c80e259e52537912b6bc52082c20e1c4d37177
Author: Tapio Vierros <tap...@gm...>
Date: Fri Jan 22 15:48:09 2010 +0200
Drum fills
* Drum fills start to appear when GodMode is ready
* During drum fill (long notes), hack the drums to activate GodMode
---
game/guitargraph.cc | 76 ++++++++++++++++++++++++++++++++++++++++++-----
game/guitargraph.hh | 8 ++++-
game/songparser-ini.cc | 2 -
3 files changed, 74 insertions(+), 12 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index 7f17a4e..e1b9508 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -66,6 +66,7 @@ GuitarGraph::GuitarGraph(Audio& audio, Song const& song, bool drums, int number)
m_width(0.5, 0.4),
m_stream(),
m_track_index(m_track_map.end()),
+ m_dfIt(m_drumfills.end()),
m_level(),
m_text(getThemePath("sing_timetxt.svg"), config["graphic/text_lod"].f()),
m_correctness(0.0, 5.0),
@@ -78,7 +79,8 @@ GuitarGraph::GuitarGraph(Audio& audio, Song const& song, bool drums, int number)
m_longestStreak(),
m_bigStreak(),
m_jointime(getNaN()),
- m_dead()
+ m_dead(),
+ m_drumfillScore()
{
// Copy all tracks of supported types (either drums or non-drums) to m_track_map
for (TrackMap::const_iterator it = m_song.track_map.begin(); it != m_song.track_map.end(); ++it) {
@@ -182,6 +184,7 @@ void GuitarGraph::engine() {
if (m_input.pressed(i)) m_hit[i + 1].setValue(1.0);
}
}
+ if (m_drums && !m_drumfills.empty()) updateDrumFill(time); // Drum Fills
if (m_starpower.get() > 0.001) m_correctness.setTarget(1.0, true);
double whammy = 0;
bool difficulty_changed = false;
@@ -331,9 +334,38 @@ void GuitarGraph::fail(double time, int fret) {
endStreak();
}
+/// Calculates the start and end times for the next/current drum fill
+/// Also activates GodMode if fill went well
+void GuitarGraph::updateDrumFill(double time) {
+ // Check if fill is over
+ if (m_dfIt != m_drumfills.end()) {
+ if (time > m_dfIt->end - past) {
+ // Check if we can activate GodMode -> requires ~ 6 hits per second
+ if (m_drumfillScore >= 10.0 * (m_dfIt->end - m_dfIt->begin)) activateStarpower();
+ m_drumfillScore = 0;
+ } else return;
+ } else if (canActivateStarpower()) {
+ // Search for the next drum fill
+ for (Durations::const_iterator it = m_drumfills.begin(); it != m_drumfills.end(); ++it) {
+ if (it->begin >= time + future) { m_dfIt = it; return; }
+ }
+ }
+ m_dfIt = m_drumfills.end(); // Reset iterator
+}
+
/// Handle drum hit scoring
void GuitarGraph::drumHit(double time, int fret) {
if (fret >= 5) return;
+ // Handle drum fills
+ if (m_dfIt != m_drumfills.end() && time >= m_dfIt->begin - maxTolerance
+ && time <= m_dfIt->end + maxTolerance) {
+ m_drumfillScore += 1;
+ Duration const* dur = &(*m_dfIt);
+ m_events.push_back(Event(time, 1, fret, dur));
+ m_flames[fret].push_back(AnimValue(0.0, flameSpd));
+ m_flames[fret].back().setTarget(1.0);
+ return;
+ }
// Find any suitable note within the tolerance
double tolerance = maxTolerance;
Chords::iterator best = m_chords.end();
@@ -358,6 +390,7 @@ void GuitarGraph::drumHit(double time, int fret) {
double score = points(tolerance);
m_chordIt->score += score;
m_score += score;
+ if (!m_drumfills.empty()) m_starmeter += score; // Only add starmeter if it's possible to activate GodMode
m_flames[fret].push_back(AnimValue(0.0, flameSpd));
m_flames[fret].back().setTarget(1.0);
if (m_chordIt->status == m_chordIt->polyphony) {
@@ -549,17 +582,38 @@ void GuitarGraph::draw(double time) {
// Draw the notes
{ glutil::UseLighting lighting(m_use3d);
+ // Draw drum fills
+ bool drumfill = m_drums && m_dfIt != m_drumfills.end();
+ if (drumfill) {
+ for (int fret = 1; fret < 5; ++fret) { // Loop through the frets
+ glutil::Color c = color(fret);
+ // Draw long notes to mark drum fills
+ drawNote(fret, c, m_dfIt->begin - time, ((m_dfIt->end > time + future) ?
+ future : m_dfIt->end - time), 0, false, false, 0, 0);
+ }
+ }
+ // Iterate chords
for (Chords::iterator it = m_chords.begin(); it != m_chords.end(); ++it) {
float tBeg = it->begin - time;
- float tEnd = it->end - time;
+ float tEnd = m_drums ? tBeg : it->end - time;
if (tBeg > future) break;
if (tEnd < past) {
if (it->status < 100) it->status += 100; // Mark as past note for rewinding
continue;
}
- if (it->status >= 100 || (tBeg > maxTolerance
- && it->status > 0)) continue; // Don't show past chords when rewinding
- for (int fret = 0; fret < 5; ++fret) { // Loop through the frets
+ // Don't show past chords when rewinding
+ if (it->status >= 100 || (tBeg > maxTolerance && it->status > 0)) continue;
+ // Ignore notes inside drum fills when GodMode can be activated
+ if (drumfill && it->begin >= m_dfIt->begin - maxTolerance
+ && it->begin <= m_dfIt->end + maxTolerance) {
+ if (it->status == 0) {
+ it->status = it->polyphony; // Mark as hit so that streak doesn't reset
+ m_score += it->polyphony * 50.0 * 0.75; // Give 75% points from notes under drum fill
+ }
+ continue;
+ }
+ // Loop through the frets
+ for (int fret = 0; fret < 5; ++fret) {
if (!it->fret[fret] || (tBeg > maxTolerance && it->releaseTimes[fret] > 0)) continue;
if (tEnd > future) tEnd = future;
unsigned event = m_notes[it->dur[fret]];
@@ -741,7 +795,9 @@ void GuitarGraph::drawInfo(double time, double offsetX, Dimensions dimensions) {
if (canActivateStarpower()) {
float a = std::abs(std::fmod(time, 1.0) - 0.5f) * 2.0f;
m_text.dimensions.screenBottom(-0.02).middle(-0.12 + offsetX);
- m_text.draw("God Mode Ready!", a);
+ if (m_dfIt != m_drumfills.end() && time >= m_dfIt->begin && time <= m_dfIt->end)
+ m_text.draw(" Drum Fill! ", a);
+ else m_text.draw("God Mode Ready!", a);
} else {
// Solo?
for (Durations::const_iterator it = m_solos.begin(); it != m_solos.end(); ++it) {
@@ -789,7 +845,7 @@ void GuitarGraph::drawBar(double time, float h) {
/// Create the Chord structures for the current track/difficulty level
void GuitarGraph::updateChords() {
- m_chords.clear();
+ m_chords.clear(); m_solos.clear(); m_drumfills.clear();
m_scoreFactor = 0;
Durations::size_type pos[5] = {}, size[5] = {};
Durations const* durations[5] = {};
@@ -841,10 +897,14 @@ void GuitarGraph::updateChords() {
m_chords.push_back(c);
}
m_chordIt = m_chords.begin();
- m_scoreFactor = 10000.0 / m_scoreFactor; // normalize maximum score factor
+ m_scoreFactor = 10000.0 / m_scoreFactor; // Normalize maximum score factor
// Solos
NoteMap const& nm = m_track_index->second->nm;
NoteMap::const_iterator it = nm.find(103); // 103 = Expert Solo - used for every difficulty
if (it != nm.end()) m_solos = it->second;
+ // Drum fills
+ it = nm.find(124); // 124 = drum fills (actually 120-124, but one is enough)
+ if (it != nm.end()) m_drumfills = it->second;
+ m_dfIt = m_drumfills.end();
}
diff --git a/game/guitargraph.hh b/game/guitargraph.hh
index 8010e22..4e3e521 100644
--- a/game/guitargraph.hh
+++ b/game/guitargraph.hh
@@ -67,7 +67,7 @@ class GuitarGraph {
std::string getTrack() const { return m_track_index->first; }
std::string getDifficultyString() const;
private:
- bool canActivateStarpower() { return !m_drums && (m_starmeter > 6000); }
+ bool canActivateStarpower() { return (m_starmeter > 6000); }
void activateStarpower();
void fail(double time, int fret);
void endHold(int fret, double time = 0.0);
@@ -95,7 +95,10 @@ class GuitarGraph {
std::vector<AnimValue> m_flames[5]; /// flame effect queues for each fret
TrackMapConstPtr m_track_map; /// tracks
TrackMapConstPtr::const_iterator m_track_index;
- std::vector<Duration> m_solos;
+ std::vector<Duration> m_solos; /// holds guitar solos
+ std::vector<Duration> m_drumfills; /// holds drum fills (used for activating GodMode)
+ Durations::const_iterator m_dfIt; /// current drum fill
+ void updateDrumFill(double time);
void drumHit(double time, int pad);
void guitarPlay(double time, input::Event const& ev);
enum Difficulty {
@@ -145,5 +148,6 @@ class GuitarGraph {
int m_bigStreak; /// next limit when a popup appears
double m_jointime; /// when the player joined
int m_dead; /// how many notes has been passed without hitting buttons
+ double m_drumfillScore; /// keeps track that enough hits are scored
};
diff --git a/game/songparser-ini.cc b/game/songparser-ini.cc
index 9b28339..3c76696 100644
--- a/game/songparser-ini.cc
+++ b/game/songparser-ini.cc
@@ -110,7 +110,6 @@ void SongParser::iniParse() {
if (name == "GUITAR") name = "guitar";
// Process non-vocal tracks
if (name != "VOCALS") {
- bool drums = (name == "drums");
int durCount = 0;
s.track_map.insert(make_pair(name,Track(name)));
NoteMap& nm2 = s.track_map.find(name)->second.nm;
@@ -122,7 +121,6 @@ void SongParser::iniParse() {
double end = midi.get_seconds(it3->end);
if (end == 0) continue; // Note with no ending
if (beg > end) { reversedNoteCount++; continue; } // Reversed note
- if (drums) end = beg;
dur.push_back(Duration(beg, end));
durCount++;
}
|