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-01-12 23:59:49
|
Module: performous
Branch: master
Commit: 9099d9b334fcdf95ae2386c79fba9ac52bbb84ab
Author: Vincent Le Ligeour <yo...@us...>
Date: Wed Jan 13 00:59:05 2010 +0100
Added test to know if a song has a hiscore
---
game/database.cc | 5 +++++
game/database.hh | 1 +
game/hiscore.cc | 7 +++++++
game/hiscore.hh | 1 +
4 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/game/database.cc b/game/database.cc
index d04741c..ee68700 100644
--- a/game/database.cc
+++ b/game/database.cc
@@ -130,6 +130,11 @@ void Database::queryPerPlayerHiscore (std::ostream & os, std::string const& trac
}
}
+bool Database::hasHiscore(boost::shared_ptr<Song> s) const {
+ int songid = m_songs.lookup(s);
+ return m_hiscores.hasHiscore(songid);
+}
+
/*
int test(std::string const& name, std::string const& song, int score) {
Database d("database.xml");
diff --git a/game/database.hh b/game/database.hh
index c61ae47..259be37 100644
--- a/game/database.hh
+++ b/game/database.hh
@@ -101,6 +101,7 @@ class Database
void queryPerSongHiscore (std::ostream & os, boost::shared_ptr<Song> s, std::string const& track = "") const;
void queryPerPlayerHiscore (std::ostream & os, std::string const& track = "") const;
+ bool hasHiscore(boost::shared_ptr<Song> s) const;
bool noPlayers() const;
private:
diff --git a/game/hiscore.cc b/game/hiscore.cc
index 4c0bcae..4bd196d 100644
--- a/game/hiscore.cc
+++ b/game/hiscore.cc
@@ -71,6 +71,13 @@ Hiscore::HiscoreVector Hiscore::queryHiscore(int max, int playerid, int songid,
return hv;
}
+bool Hiscore::hasHiscore(int songid) const {
+ for (hiscore_t::const_iterator it = m_hiscore.begin(); it != m_hiscore.end(); ++it) {
+ if(songid == it->songid) return true;
+ }
+ return false;
+}
+
void Hiscore::load(xmlpp::NodeSet const& n) {
for (xmlpp::NodeSet::const_iterator it = n.begin(); it != n.end(); ++it)
{
diff --git a/game/hiscore.hh b/game/hiscore.hh
index 704fe61..7b02df3 100644
--- a/game/hiscore.hh
+++ b/game/hiscore.hh
@@ -72,6 +72,7 @@ class Hiscore
@param max limits the number of elements returned.
*/
HiscoreVector queryHiscore(int max = -1, int playerid = -1, int songid = -1, std::string const& track = "") const;
+ bool hasHiscore(int songid) const;
private:
typedef std::multiset<HiscoreItem>hiscore_t;
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-12 23:36:45
|
Module: performous
Branch: master
Commit: c6d42ce0a41c98a1e6ef1724e8ee9b79841ec250
Author: Lasse Karkkainen <tro...@tr...>
Date: Wed Jan 13 01:36:34 2010 +0200
Indentation fixes
---
game/songparser-sm.cc | 22 +++++++++++-----------
1 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/game/songparser-sm.cc b/game/songparser-sm.cc
index d82f40f..03ec824 100644
--- a/game/songparser-sm.cc
+++ b/game/songparser-sm.cc
@@ -89,32 +89,32 @@ bool SongParser::smParseField(std::string line) {
*/
while (getline(line)) {
- //<NotesType>:
+ //<NotesType>:
std::string notestype = boost::trim_copy(line.substr(0, line.find_first_of(':')));
transform(notestype.begin(), notestype.end(), notestype.begin(), lower_case );
- //<Description>:
+ //<Description>:
if(!getline(line)) { throw std::runtime_error("Required note data missing"); }
std::string description = boost::trim_copy(line.substr(0, line.find_first_of(':')));
- //<DifficultyClass>:
+ //<DifficultyClass>:
if(!getline(line)) { throw std::runtime_error("Required note data missing"); }
std::string difficultyclass = boost::trim_copy(line.substr(0, line.find_first_of(':')));
transform(difficultyclass.begin(), difficultyclass.end(), difficultyclass.begin(), upper_case );
DanceDifficulty danceDifficulty = DIFFICULTYCOUNT;
- if(difficultyclass == "BEGINNER") danceDifficulty = BEGINNER;
- if(difficultyclass == "EASY") danceDifficulty = EASY;
- if(difficultyclass == "MEDIUM") danceDifficulty = MEDIUM;
- if(difficultyclass == "HARD") danceDifficulty = HARD;
- if(difficultyclass == "CHALLENGE") danceDifficulty = CHALLENGE;
+ if(difficultyclass == "BEGINNER") danceDifficulty = BEGINNER;
+ if(difficultyclass == "EASY") danceDifficulty = EASY;
+ if(difficultyclass == "MEDIUM") danceDifficulty = MEDIUM;
+ if(difficultyclass == "HARD") danceDifficulty = HARD;
+ if(difficultyclass == "CHALLENGE") danceDifficulty = CHALLENGE;
- //ignoring difficultymeter and radarvalues
+ //ignoring difficultymeter and radarvalues
//<DifficultyMeter>:
if(!getline(line)) { throw std::runtime_error("Required note data missing"); }
if(!getline(line)) { throw std::runtime_error("Required note data missing"); }
- //<NoteData>:
+ //<NoteData>:
Notes notes = smParseNotes(line);
- //Here all note data from the current track is inserted into containers
+ //Here all note data from the current track is inserted into containers
// TODO: support other track types. For now all others are simply ignored.
if (notestype == "dance-single" || notestype == "dance-double") {
DanceTrack danceTrack(description, notes);
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-12 23:22:00
|
Module: performous
Branch: master
Commit: 30f6be1754514dabd784f703c1bd0daa52fd293d
Author: Lasse Karkkainen <tro...@tr...>
Date: Wed Jan 13 01:11:06 2010 +0200
Ignore notetypes other than dance-single and dance-double.
---
game/songparser-sm.cc | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/game/songparser-sm.cc b/game/songparser-sm.cc
index 9b00cd1..d82f40f 100644
--- a/game/songparser-sm.cc
+++ b/game/songparser-sm.cc
@@ -115,12 +115,15 @@ bool SongParser::smParseField(std::string line) {
Notes notes = smParseNotes(line);
//Here all note data from the current track is inserted into containers
- DanceTrack danceTrack(description, notes);
- if (m_song.danceTracks.find(notestype) == m_song.danceTracks.end() ) {
- DanceDifficultyMap danceDifficultyMap;
- m_song.danceTracks.insert(std::make_pair(notestype, danceDifficultyMap));
+ // TODO: support other track types. For now all others are simply ignored.
+ if (notestype == "dance-single" || notestype == "dance-double") {
+ DanceTrack danceTrack(description, notes);
+ if (m_song.danceTracks.find(notestype) == m_song.danceTracks.end() ) {
+ DanceDifficultyMap danceDifficultyMap;
+ m_song.danceTracks.insert(std::make_pair(notestype, danceDifficultyMap));
+ }
+ m_song.danceTracks[notestype].insert(std::make_pair(danceDifficulty, danceTrack));
}
- m_song.danceTracks[notestype].insert(std::make_pair(danceDifficulty, danceTrack));
}
return false;
}
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-12 23:06:33
|
Module: performous
Branch: master
Commit: e4b4819bbba74fb77fd9966f96bc2613643c7c03
Author: Lasse Karkkainen <tro...@tr...>
Date: Wed Jan 13 00:35:45 2010 +0200
Make lines always correct width
---
game/dancegraph.cc | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/game/dancegraph.cc b/game/dancegraph.cc
index cd0455d..4a6548a 100644
--- a/game/dancegraph.cc
+++ b/game/dancegraph.cc
@@ -388,7 +388,7 @@ void DanceGraph::drawBeats(double time) {
glutil::Begin block(GL_TRIANGLE_STRIP);
float texCoord = 0.0f;
float tBeg = 0.0f, tEnd;
- float w = 2.0;
+ float w = 0.5 * m_pads;
for (Song::Beats::const_iterator it = m_song.beats.begin(); it != m_song.beats.end() && tBeg < future; ++it, texCoord += texCoordStep, tBeg = tEnd) {
tEnd = *it - time;
//if (tEnd < past) continue;
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-12 23:06:33
|
Module: performous
Branch: master
Commit: b754ebdcc70d441273d90d0b4f4c8b6ab3188977
Author: Lasse Karkkainen <tro...@tr...>
Date: Wed Jan 13 01:06:20 2010 +0200
Scaling changes to make the notes scroll faster and to fit two players in 8 panel mode.
---
game/dancegraph.cc | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/game/dancegraph.cc b/game/dancegraph.cc
index 4a6548a..7c08a2d 100644
--- a/game/dancegraph.cc
+++ b/game/dancegraph.cc
@@ -12,9 +12,9 @@ namespace {
const int death_delay = 25; // Delay in notes after which the player is hidden
const float not_joined = -100; // A value that indicates player hasn't joined
const float join_delay = 7.0f; // Time to select track/difficulty when joining mid-game
- const float past = -0.4f;
+ const float past = -0.3f;
const float future = 2.0f;
- const float timescale = 7.0f;
+ const float timescale = 12.0f;
const float texCoordStep = -0.25f; // Four beat lines per beat texture
// Note: t is difference from playback time so it must be in range [past, future]
float time2y(float t) { return timescale * (t - past) / (future - past); }
@@ -356,7 +356,7 @@ void DanceGraph::draw(double time) {
glTranslatef(frac * 2.0 * offsetX, 0.0f, 0.0f);
glutil::PushMatrixMode pmb(GL_MODELVIEW);
glTranslatef((1.0 - frac) * offsetX, dimensions.y1(), 0.0f);
- float temp_s = dimensions.w() / 5.0f;
+ float temp_s = dimensions.w() / 8.0f; // Allow for 8 pads to fit on a track
glScalef(temp_s, temp_s, temp_s);
// Draw the "neck" graph (beat lines)
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-12 22:29:40
|
Module: performous Branch: master Commit: a0dda57414167e5d8f59da26ab84d77cde260dd4 Author: Lasse Karkkainen <tro...@tr...> Date: Wed Jan 13 00:29:10 2010 +0200 Dance beat display and some cleanup --- game/dancegraph.cc | 82 ++++++++------ game/dancegraph.hh | 2 + game/songparser-sm.cc | 3 + themes/default/dancebeat.svg | 248 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 301 insertions(+), 34 deletions(-) |
|
From: Yoda-JM <yo...@us...> - 2010-01-12 20:07:24
|
Module: performous
Branch: master
Commit: 269b06c4da2e742ee3e34dc1aecf7ca804c14557
Author: Vincent Le Ligeour <yo...@us...>
Date: Tue Jan 12 21:06:34 2010 +0100
Removed old ubuntu packaging material / Updated new one
---
cmake/performous-packaging.cmake | 12 ++----------
1 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/cmake/performous-packaging.cmake b/cmake/performous-packaging.cmake
index 5900e86..953d7a5 100644
--- a/cmake/performous-packaging.cmake
+++ b/cmake/performous-packaging.cmake
@@ -11,6 +11,7 @@ set(CPACK_SOURCE_IGNORE_FILES
"/.git/"
"/osx-utils/"
"/portage-overlay/"
+ "/win32/"
)
set(CPACK_PACKAGE_EXECUTABLES performous)
set(CPACK_SOURCE_GENERATOR "TBZ2")
@@ -50,17 +51,8 @@ if(UNIX)
set(CPACK_PACKAGE_ARCHITECTURE amd64)
endif("${CPACK_PACKAGE_ARCHITECTURE}" MATCHES "x86_64")
# Set the dependencies based on the distro version
- if("${LSB_DISTRIB}" MATCHES "Ubuntu8.04")
- set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-thread1.34.1, libboost-serialization1.34.1, libboost-program-options1.34.1, libboost-regex1.34.1, libboost-filesystem1.34.1, libboost-date-time1.34.1, libavcodec1d, libavformat1d, libswscale1d, libmagick++10, libxml++2.6c2a, libglew1.5")
- endif("${LSB_DISTRIB}" MATCHES "Ubuntu8.04")
- if("${LSB_DISTRIB}" MATCHES "Ubuntu8.10")
- set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-thread1.35.0, libboost-serialization1.35.0, libboost-program-options1.35.0, libboost-regex1.35.0, libboost-filesystem1.35.0, libboost-date-time1.35.0, libavcodec51, libavformat52, libswscale0, libmagick++10, libxml++2.6-2, libglew1.5")
- endif("${LSB_DISTRIB}" MATCHES "Ubuntu8.10")
- if("${LSB_DISTRIB}" MATCHES "Ubuntu9.04")
- set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-thread1.35.0, libboost-program-options1.35.0, libboost-regex1.35.0, libboost-filesystem1.35.0, libboost-date-time1.35.0, libavcodec52, libavformat52, libswscale0, libmagick++1, libxml++2.6-2, libglew1.5")
- endif("${LSB_DISTRIB}" MATCHES "Ubuntu9.04")
if("${LSB_DISTRIB}" MATCHES "Ubuntu9.10")
- set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-thread1.38.0, libboost-program-options1.38.0, libboost-regex1.38.0, libboost-filesystem1.38.0, libboost-date-time1.38.0, libavcodec52, libavformat52, libswscale0, libmagick++2, libxml++2.6-2, libglew1.5")
+ set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-thread1.38.0, libboost-program-options1.38.0, libboost-regex1.38.0, libboost-filesystem1.38.0, libboost-date-time1.38.0, libavcodec52, libavformat52, libswscale0, libmagick++2, libxml++2.6-2, libglew1.5 libpng12-0 libjpeg62")
endif("${LSB_DISTRIB}" MATCHES "Ubuntu9.10")
if("${LSB_DISTRIB}" MATCHES "Debian5.*")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsdl1.2debian, libcairo2, librsvg2-2, libboost-dev, libavcodec51, libavformat52, libswscale0, libmagick++10, libxml++2.6-2, libglew1.5")
|
|
From: Tapio V. <aa...@us...> - 2010-01-12 13:29:35
|
Module: performous
Branch: master
Commit: b7dfe92e62699b4671fa27d777b0dd39acdef2d1
Author: Tapio Vierros <tap...@gm...>
Date: Tue Jan 12 15:28:11 2010 +0200
Added GH X-plorer guitar mapping. Needs testing.
---
data/schema.xml | 2 +-
game/joystick.cc | 24 ++++++++++++++++++------
game/joystick.hh | 4 ++--
3 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/data/schema.xml b/data/schema.xml
index fed2106..a7312ea 100644
--- a/data/schema.xml
+++ b/data/schema.xml
@@ -85,7 +85,7 @@ to save the current settings to XML.
</locale>
</entry>
<entry name="game/instruments" type="string_list">
- <!-- Should be SDL_ID:{GUITAR_GUITARHERO|GUITAR_ROCKBAND|DRUMS_GUITARHERO|DRUMS_ROCKBAND|DRUMS_MIDI|DANCEPAD_GENERIC}
+ <!-- Should be SDL_ID:{GUITAR_GUITARHERO|GUITAR_GUITARHERO_XPLORER|GUITAR_ROCKBAND|DRUMS_GUITARHERO|DRUMS_ROCKBAND|DRUMS_MIDI|DANCEPAD_GENERIC}
example:
<stringvalue>0:GUITAR_GUITARHERO</stringvalue>
-->
diff --git a/game/joystick.cc b/game/joystick.cc
index a4b1afa..77f3401 100644
--- a/game/joystick.cc
+++ b/game/joystick.cc
@@ -38,9 +38,10 @@ void input::MidiDrums::process() {
static const unsigned SDL_BUTTONS = 10;
int input::buttonFromSDL(input::Private::Type _type, unsigned int _sdl_button) {
- static const int inputmap[5][SDL_BUTTONS] = {
+ static const int inputmap[6][SDL_BUTTONS] = {
//G R Y B O S // for guitars (S=starpower)
{ 2, 0, 1, 3, 4, 5, -1, -1, 8, 9 }, // Guitar Hero guitar
+ { 0, 1, 3, 2, 4,-1, 8, 9,-1,-1 }, // Guitar Hero X-plorer guitar
{ 3, 0, 1, 2, 4, 5, -1, -1, 8, 9 }, // Rock Band guitar
//K R Y B G O // for drums
{ 3, 4, 1, 2, 0, 4, -1, -1, 8, 9 }, // Guitar Hero drums
@@ -52,14 +53,16 @@ int input::buttonFromSDL(input::Private::Type _type, unsigned int _sdl_button) {
switch(_type) {
case input::Private::GUITAR_GH:
return inputmap[0][_sdl_button];
- case input::Private::GUITAR_RB:
+ case input::Private::GUITAR_GH_XPLORER:
return inputmap[1][_sdl_button];
- case input::Private::DRUMS_GH:
+ case input::Private::GUITAR_RB:
return inputmap[2][_sdl_button];
- case input::Private::DRUMS_RB:
+ case input::Private::DRUMS_GH:
return inputmap[3][_sdl_button];
- case input::Private::DANCEPAD_GENERIC:
+ case input::Private::DRUMS_RB:
return inputmap[4][_sdl_button];
+ case input::Private::DANCEPAD_GENERIC:
+ return inputmap[5][_sdl_button];
default:
return -1;
}
@@ -177,7 +180,8 @@ void input::SDL::init() {
std::map<unsigned int, input::Private::Type> forced_type;
using namespace boost::spirit::classic;
- rule<> type = str_p("GUITAR_GUITARHERO") | "GUITAR_ROCKBAND" | "DRUMS_GUITARHERO" | "DRUMS_ROCKBAND" | "DRUMS_MIDI" | "DANCEPAD_GENERIC";
+ rule<> type = str_p("GUITAR_GUITARHERO") | "GUITAR_ROCKBAND" | "GUITAR_GUITARHERO_XPLORER"
+ | "DRUMS_GUITARHERO" | "DRUMS_ROCKBAND" | "DRUMS_MIDI" | "DANCEPAD_GENERIC";
rule<> entry = uint_p[assign_a(sdl_id)] >> ":" >> (type)[assign_a(instrument_type)];
ConfigItem::StringList const& instruments = config["game/instruments"].sl();
@@ -188,6 +192,8 @@ void input::SDL::init() {
} else {
if (instrument_type == "GUITAR_GUITARHERO") {
forced_type[sdl_id] = input::Private::GUITAR_GH;
+ } else if (instrument_type == "GUITAR_GUITARHERO_XPLORER") {
+ forced_type[sdl_id] = input::Private::GUITAR_GH_XPLORER;
} else if (instrument_type == "DRUMS_GUITARHERO") {
forced_type[sdl_id] = input::Private::DRUMS_GH;
} else if (instrument_type == "GUITAR_ROCKBAND") {
@@ -223,6 +229,9 @@ void input::SDL::init() {
case input::Private::GUITAR_GH:
std::cout << " Detected as: Guitar Hero Guitar (forced)" << std::endl;
break;
+ case input::Private::GUITAR_GH_XPLORER:
+ std::cout << " Detected as: Guitar Hero Guitar X-plorer (forced)" << std::endl;
+ break;
case input::Private::DRUMS_GH:
std::cout << " Detected as: Guitar Hero Drums (forced)" << std::endl;
break;
@@ -243,6 +252,9 @@ void input::SDL::init() {
} else if( name.find("Guitar Hero3") != std::string::npos ) {
std::cout << " Detected as: Guitar Hero Guitar" << std::endl;
input::Private::devices[i] = input::Private::InputDevPrivate(input::Private::GUITAR_GH);
+ } else if( name.find("Guitar Hero X-plorer") != std::string::npos ) {
+ std::cout << " Detected as: Guitar Hero Guitar X-plorer" << std::endl;
+ input::Private::devices[i] = input::Private::InputDevPrivate(input::Private::GUITAR_GH_XPLORER);
} else if( name.find("Guitar Hero4") != std::string::npos ) {
// here we can have both drumkit or guitar .... let say the drumkit
std::cout << " Detected as: Guitar Hero Drums (guessed)" << std::endl;
diff --git a/game/joystick.hh b/game/joystick.hh
index a7ddb7f..20a2188 100644
--- a/game/joystick.hh
+++ b/game/joystick.hh
@@ -32,7 +32,7 @@ namespace input {
};
namespace Private {
- enum Type { GUITAR_RB, DRUMS_RB, GUITAR_GH, DRUMS_GH, DRUMS_MIDI, DANCEPAD_GENERIC };
+ enum Type { GUITAR_RB, DRUMS_RB, GUITAR_GH, GUITAR_GH_XPLORER, DRUMS_GH, DRUMS_MIDI, DANCEPAD_GENERIC };
static unsigned int KEYBOARD_ID = UINT_MAX;
static unsigned int KEYBOARD_ID2 = KEYBOARD_ID-1;
static unsigned int KEYBOARD_ID3 = KEYBOARD_ID-2; // Three ids needed for keyboard guitar/drumkit/dancepad
@@ -79,7 +79,7 @@ namespace input {
input::Private::Type type() {return m_type;};
bool type_match( input::DevType _type) {
if( _type == input::GUITAR &&
- (m_type == input::Private::GUITAR_GH || m_type == input::Private::GUITAR_RB) ) {
+ (m_type == input::Private::GUITAR_GH || m_type == input::Private::GUITAR_GH_XPLORER || m_type == input::Private::GUITAR_RB) ) {
return true;
}
else if( _type == input::DRUMS &&
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-11 16:36:18
|
Module: performous Branch: master Commit: f4a709b87e34b3cb94151c271b46ba11a7e795e3 Author: Lasse Karkkainen <tro...@tr...> Date: Mon Jan 11 18:35:55 2010 +0200 Updated instruments.txt (more buttons for X0 guitar) --- docs/instruments.txt | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) diff --git a/docs/instruments.txt b/docs/instruments.txt index e6cb708..ab70bef 100644 --- a/docs/instruments.txt +++ b/docs/instruments.txt @@ -73,11 +73,24 @@ Ex: A5- => SDL axis 4 with negative value PICK UP: A6- [Guitar Hero X0] Guitar Hero X-plorer + USB id: 1430:4748 + SDL name: Guitar Hero X-plorer GREEN FRET: B1 RED FRET: B2 YELLOW FRET: B4 BLUE FRET: B3 ORANGE FRET: B5 + START: B8 + SELECT: B7 (Says "BACK" on the guitar) + STAR POWER: A4 (Y axis on Windows, didn't verify that it is A4 but A3 is X axis) + DOWN: A6+ + UP: A6- + LEFT: A5- + RIGHT: A5+ + BEND: A3 + PICK DOWN: A6+ + PICK UP: A6- + [Guitar Hero World Tour] PS3 Drumkit USB id: 12ba:0120 |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-10 23:45:43
|
Module: performous Branch: master Commit: 03ae9d5348d4063324c8ee602954ee375f59006f Author: Lasse Karkkainen <tro...@tr...> Date: Mon Jan 11 01:43:54 2010 +0200 Add Guitar Hero X-plorer info to instruments.txt --- docs/instruments.txt | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/docs/instruments.txt b/docs/instruments.txt index 2b1e597..e6cb708 100644 --- a/docs/instruments.txt +++ b/docs/instruments.txt @@ -72,6 +72,13 @@ Ex: A5- => SDL axis 4 with negative value PICK DOWN: A6+ PICK UP: A6- +[Guitar Hero X0] Guitar Hero X-plorer + GREEN FRET: B1 + RED FRET: B2 + YELLOW FRET: B4 + BLUE FRET: B3 + ORANGE FRET: B5 + [Guitar Hero World Tour] PS3 Drumkit USB id: 12ba:0120 SDL name: Licensed by Sony Computer Entertainment Guitar Hero4 for PlayStation (R) 3 |
|
From: Tapio V. <aa...@us...> - 2010-01-10 21:42:59
|
Module: performous
Branch: master
Commit: b10daaf077b0ae77b7f781d6f3363d1428e7c342
Author: Tapio Vierros <tap...@gm...>
Date: Sun Jan 10 23:42:19 2010 +0200
Fixes to instrument type forcing.
---
data/schema.xml | 2 +-
game/joystick.cc | 8 ++++++--
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/data/schema.xml b/data/schema.xml
index a3168d7..fed2106 100644
--- a/data/schema.xml
+++ b/data/schema.xml
@@ -85,7 +85,7 @@ to save the current settings to XML.
</locale>
</entry>
<entry name="game/instruments" type="string_list">
- <!-- Should be SDL_ID:{GUITAR_GUITARHERO|GUITAR_ROCKBAND|DRUMS_GUITARHERO|DRUMS_ROCKBAND}
+ <!-- Should be SDL_ID:{GUITAR_GUITARHERO|GUITAR_ROCKBAND|DRUMS_GUITARHERO|DRUMS_ROCKBAND|DRUMS_MIDI|DANCEPAD_GENERIC}
example:
<stringvalue>0:GUITAR_GUITARHERO</stringvalue>
-->
diff --git a/game/joystick.cc b/game/joystick.cc
index 1a6cdfd..a4b1afa 100644
--- a/game/joystick.cc
+++ b/game/joystick.cc
@@ -177,7 +177,7 @@ void input::SDL::init() {
std::map<unsigned int, input::Private::Type> forced_type;
using namespace boost::spirit::classic;
- rule<> type = str_p("GUITAR_GUITARHERO") | "GUITAR_ROCKBAND" | "DRUMS_GUITARHERO" | "DRUMS_ROCKBAND";
+ rule<> type = str_p("GUITAR_GUITARHERO") | "GUITAR_ROCKBAND" | "DRUMS_GUITARHERO" | "DRUMS_ROCKBAND" | "DRUMS_MIDI" | "DANCEPAD_GENERIC";
rule<> entry = uint_p[assign_a(sdl_id)] >> ":" >> (type)[assign_a(instrument_type)];
ConfigItem::StringList const& instruments = config["game/instruments"].sl();
@@ -193,7 +193,11 @@ void input::SDL::init() {
} else if (instrument_type == "GUITAR_ROCKBAND") {
forced_type[sdl_id] = input::Private::GUITAR_RB;
} else if (instrument_type == "DRUMS_ROCKBAND") {
- forced_type[sdl_id] = input::Private::DRUMS_GH;
+ forced_type[sdl_id] = input::Private::DRUMS_RB;
+ } else if (instrument_type == "DRUMS_MIDI") {
+ forced_type[sdl_id] = input::Private::DRUMS_MIDI;
+ } else if (instrument_type == "DANCEPAD_GENERIC") {
+ forced_type[sdl_id] = input::Private::DANCEPAD_GENERIC;
}
}
}
|
|
From: Tapio V. <aa...@us...> - 2010-01-10 20:56:21
|
Module: performous
Branch: master
Commit: 4ba4c37bf9f453b2135ee202028045de0d770479
Author: Tapio Vierros <tap...@gm...>
Date: Sun Jan 10 22:55:13 2010 +0200
Only seek previews when not in jukebox mode.
---
game/screen_songs.cc | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/game/screen_songs.cc b/game/screen_songs.cc
index 2f4996c..380bb8f 100644
--- a/game/screen_songs.cc
+++ b/game/screen_songs.cc
@@ -151,13 +151,13 @@ void ScreenSongs::stopMultimedia(ScreenSharedInfo& info) {
if (info.music != m_playing && m_playTimer.get() > 0.3) {
m_songbg.reset(); m_video.reset();
double pstart = 0;
- if (!m_songs.empty()) {
+ if (!m_songs.empty() && !m_jukebox) {
pstart = m_songs.current().preview_start;
if (pstart != pstart) pstart = 100; // true if NaN, 100 is caught in the next min
// 5.0s is for performance (don't make it higher unless you implement better seeking method in songs)
pstart = std::min(pstart, (info.music.size() == 1 ? 30.0 : 5.0)); // we can seek further in 1-track songs
}
- if (info.music.empty()) m_audio.fadeout(1.0); else m_audio.playMusic(info.music, true, 2.0, (pstart ? pstart : 5.0));
+ if (info.music.empty()) m_audio.fadeout(1.0); else m_audio.playMusic(info.music, true, 2.0, pstart);
if (!info.songbg.empty()) try { m_songbg.reset(new Surface(info.songbg)); } catch (std::exception const&) {}
if (!info.video.empty() && config["graphic/video"].b()) m_video.reset(new Video(info.video, info.videoGap));
m_playing = info.music;
|
|
From: Peque <ms...@us...> - 2010-01-10 19:05:59
|
Module: performous
Branch: master
Commit: 3c7069f01ee0e4c4a7df512f1a32fd6ce3c8f8ca
Author: Miguel Sánchez de León Peque <peq...@ho...>
Date: Sun Jan 10 20:02:10 2010 +0100
Tags for INI files discussed with FoFiX developers to reach an agreement.
Now all tags used in songparser-ini.cc are "standard" or at least FoF compatible.
---
game/songparser-ini.cc | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/game/songparser-ini.cc b/game/songparser-ini.cc
index caa00d2..6ac8c8a 100644
--- a/game/songparser-ini.cc
+++ b/game/songparser-ini.cc
@@ -46,14 +46,12 @@ void SongParser::iniParse() {
boost::trim(value);
if (key == "name") s.title = value;
else if (key == "artist") s.artist = value;
- // These are added features (not part of FoF, though video is supported in FoFiX SVN)
- // TODO these tags need to be checked/discussed with FoFiX developers
else if (key == "cover") s.cover = value;
else if (key == "background") s.background = value;
else if (key == "video") s.video = value;
else if (key == "video_start_time") { assign(s.videoGap, value); s.videoGap/=1000.0; }
- else if (key == "prev_start_time") { assign(s.preview_start, value); s.preview_start/=1000.0; }
- // End of added features
+ else if (key == "preview_start_time") { assign(s.preview_start, value); s.preview_start/=1000.0; }
+ // Before adding other tags: they should be checked with the already-existing tags in FoF format; in case any tag doesn't exist there, it should be discussed with FoFiX developers before adding it here.
}
if (s.title.empty() || s.artist.empty()) throw std::runtime_error("Required header fields missing");
|
|
From: Stefano A. <xa...@us...> - 2010-01-10 00:12:41
|
Module: performous Branch: master Commit: b8d131b357c12fea241cdc7ec048e82d1e1243cd Author: Xaldyz <xa...@us...> Date: Sun Jan 10 01:12:16 2010 +0100 Merge branch 'master' of ssh://performous.git.sourceforge.net/gitroot/performous/performous --- |
|
From: Stefano A. <xa...@us...> - 2010-01-10 00:12:40
|
Module: performous
Branch: master
Commit: 6e85708518ad6ae093f8ab741d42e9966d6c674c
Author: Xaldyz <xa...@us...>
Date: Sun Jan 10 01:11:50 2010 +0100
Fixed SVGs that causes font problems under Windows. Changed default font if not found to arial, to avoid trouble under Windows
---
game/opengl_text.cc | 2 +-
themes/default/configuration_item.svg | 15 +++++++++------
themes/default/menu_comment.svg | 14 +++++++-------
themes/default/menu_short_comment.svg | 14 +++++++-------
themes/default/sing_pause.svg | 6 ++++--
5 files changed, 28 insertions(+), 23 deletions(-)
diff --git a/game/opengl_text.cc b/game/opengl_text.cc
index 7652a82..290d572 100644
--- a/game/opengl_text.cc
+++ b/game/opengl_text.cc
@@ -8,7 +8,7 @@
#include <sstream>
OpenGLText::OpenGLText(TThemeTxtOpenGL& _text, double m) {
- if (_text.fontfamily.empty()) _text.fontfamily = "Sans";
+ if (_text.fontfamily.empty()) _text.fontfamily = "Arial";
PangoAlignment alignment = PANGO_ALIGN_LEFT;
if (_text.fontalign == "start") alignment = PANGO_ALIGN_LEFT;
diff --git a/themes/default/configuration_item.svg b/themes/default/configuration_item.svg
index 01a272d..0e71280 100644
--- a/themes/default/configuration_item.svg
+++ b/themes/default/configuration_item.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="configuration_item.svg"
- sodipodi:docbase="/home/yoda/UltraStar/sf/UltraStar-ng/themes/lima"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs2513">
@@ -58,15 +58,18 @@
inkscape:window-x="5"
inkscape:window-y="73"
inkscape:current-layer="svg559"
- showgrid="false" />
+ showgrid="false"
+ inkscape:window-maximized="0" />
<text
xml:space="preserve"
- style="font-size:32px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans;text-anchor:middle;text-align:center"
+ style="font-size:32px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;text-anchor:middle;text-align:center;-inkscape-font-specification:Arial;font-stretch:normal;font-variant:normal;writing-mode:lr;line-height:125%"
x="400"
y="213"
- id="text1990"><tspan
+ id="text1990"
+ sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan1992"
x="400"
- y="213">item</tspan></text>
+ y="213"
+ style="-inkscape-font-specification:Arial;font-family:Arial;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:32px;text-anchor:middle;text-align:center;writing-mode:lr;line-height:125%">item</tspan></text>
</svg>
diff --git a/themes/default/menu_comment.svg b/themes/default/menu_comment.svg
index a42342b..be0fe6d 100755
--- a/themes/default/menu_comment.svg
+++ b/themes/default/menu_comment.svg
@@ -16,7 +16,7 @@
height="20"
id="svg559"
sodipodi:version="0.32"
- inkscape:version="0.47pre4 r22446"
+ inkscape:version="0.47 r22583"
sodipodi:docname="menu_comment.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
@@ -42,8 +42,8 @@
</rdf:RDF>
</metadata>
<sodipodi:namedview
- inkscape:window-height="726"
- inkscape:window-width="1280"
+ inkscape:window-height="1000"
+ inkscape:window-width="1680"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
@@ -56,15 +56,15 @@
inkscape:zoom="3.5638182"
inkscape:cx="63.312761"
inkscape:cy="28.662714"
- inkscape:window-x="0"
- inkscape:window-y="25"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
inkscape:current-layer="svg559"
showgrid="false"
inkscape:window-maximized="1" />
<text
x="1.2611415"
y="16.780357"
- style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#060000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Charter;-inkscape-font-specification:Bitstream Charter"
+ style="font-size:17.99999994px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;fill:#060000;fill-opacity:1;stroke:none;display:inline;font-family:Arial;-inkscape-font-specification:Arial"
id="text10203"
xml:space="preserve"
sodipodi:linespacing="125%"
@@ -72,5 +72,5 @@
x="1.2611415"
y="16.780357"
id="tspan10205"
- style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#060000;fill-opacity:1;stroke:none;font-family:Bitstream Charter;-inkscape-font-specification:Bitstream Charter">Comment</tspan></text>
+ style="font-size:17.99999994px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#060000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial;writing-mode:lr;line-height:125%">Comment</tspan></text>
</svg>
diff --git a/themes/default/menu_short_comment.svg b/themes/default/menu_short_comment.svg
index a74618f..49c34b2 100644
--- a/themes/default/menu_short_comment.svg
+++ b/themes/default/menu_short_comment.svg
@@ -37,13 +37,13 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
+ <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
- inkscape:window-height="725"
- inkscape:window-width="1280"
+ inkscape:window-height="1000"
+ inkscape:window-width="1680"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
@@ -56,15 +56,15 @@
inkscape:zoom="3.5638182"
inkscape:cx="63.312761"
inkscape:cy="28.101518"
- inkscape:window-x="0"
- inkscape:window-y="25"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
inkscape:current-layer="svg559"
showgrid="false"
inkscape:window-maximized="1" />
<text
x="1.4361764"
y="16.829205"
- style="font-size:13.92942142px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#060000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Charter;-inkscape-font-specification:Bitstream Charter"
+ style="font-size:13.92899985px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;fill:#060000;fill-opacity:1;stroke:none;display:inline;font-family:Arial;-inkscape-font-specification:Arial"
id="text10203"
xml:space="preserve"
sodipodi:linespacing="125%"
@@ -72,5 +72,5 @@
x="1.4361764"
y="16.829205"
id="tspan10205"
- style="font-size:13.92942142px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#060000;fill-opacity:1;stroke:none;font-family:Bitstream Charter;-inkscape-font-specification:Bitstream Charter">Comment</tspan></text>
+ style="font-size:13.92899985px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#060000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial;writing-mode:lr;line-height:125%">Comment</tspan></text>
</svg>
diff --git a/themes/default/sing_pause.svg b/themes/default/sing_pause.svg
index 016bc84..53391b7 100644
--- a/themes/default/sing_pause.svg
+++ b/themes/default/sing_pause.svg
@@ -87,7 +87,8 @@
sodipodi:role="line"
id="tspan3181"
x="127.49952"
- y="10.672979">QUIT NOW?</tspan></text>
+ y="10.672979"
+ style="-inkscape-font-specification:arial;font-family:arial">QUIT NOW?</tspan></text>
<text
xml:space="preserve"
style="font-size:28px;font-style:normal;font-weight:normal;text-align:center;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
@@ -97,7 +98,8 @@
sodipodi:role="line"
x="139.50516"
y="255.35054"
- id="tspan2823">Enter/Start to quit</tspan><tspan
+ id="tspan2823"
+ style="-inkscape-font-specification:arial;font-family:arial">Enter/Start to quit</tspan><tspan
sodipodi:role="line"
x="139.50516"
y="290.35056"
|
|
From: Stefano A. <xa...@us...> - 2010-01-10 00:12:38
|
Module: performous
Branch: master
Commit: b347043c3cc5da2bcbfa1a1b8b2a7a082e7354e4
Author: Xaldyz <xa...@us...>
Date: Sun Jan 10 01:10:55 2010 +0100
Added language support to Visual Studio
---
game/main.cc | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/game/main.cc b/game/main.cc
index 05b36cd..605c8f6 100644
--- a/game/main.cc
+++ b/game/main.cc
@@ -203,7 +203,11 @@ template <typename Container> void confOverride(Container const& c, std::string
int main(int argc, char** argv) {
#ifdef USE_GETTEXT
// initialize gettext
+#ifdef _MSC_VER
+ setlocale(LC_ALL, "");//only untill we don't have a better solution. This because LC_MESSAGES cause crash under Visual Studio
+#else
setlocale (LC_MESSAGES, "");
+#endif
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
bind_textdomain_codeset (PACKAGE, "UTF-8");
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-09 23:44:36
|
Module: performous Branch: arrowcolors Commit: 87d112da4f4f78e31a7f81e486d066ad680c7602 Author: Lasse Karkkainen <tro...@tr...> Date: Sun Jan 10 01:44:19 2010 +0200 Regular notes colored by phase, holds and cursor still have old graphics. --- game/dancegraph.cc | 17 +++++++++++++++-- themes/default/arrows.svg | 44 ++++++++++++++++++++++---------------------- 2 files changed, 37 insertions(+), 24 deletions(-) |
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-09 23:44:34
|
Module: performous
Branch: arrowcolors
Commit: 2d7c106cfef9fc794147224681c7b1e03b7843dc
Author: Lasse Karkkainen <tro...@tr...>
Date: Sun Jan 10 01:23:29 2010 +0200
Add phase info to notes
---
game/notes.cc | 2 +-
game/notes.hh | 1 +
game/songparser-sm.cc | 2 ++
3 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/game/notes.cc b/game/notes.cc
index 7719f04..0b78c10 100644
--- a/game/notes.cc
+++ b/game/notes.cc
@@ -52,7 +52,7 @@ double MusicalScale::getNoteOffset(double freq) const {
return 12.0 * std::log(frac) / std::log(2.0);
}
-Note::Note(): begin(getNaN()), end(getNaN()), power(getNaN()), type(NORMAL), note(), notePrev() {}
+Note::Note(): begin(getNaN()), end(getNaN()), phase(getNaN()), power(getNaN()), type(NORMAL), note(), notePrev() {}
double Note::diff(double note, double n) { return remainder(n - note, 12.0); }
double Note::maxScore() const { return scoreMultiplier(0.0) * (end - begin); }
diff --git a/game/notes.hh b/game/notes.hh
index 2d17f46..ae1694e 100644
--- a/game/notes.hh
+++ b/game/notes.hh
@@ -70,6 +70,7 @@ struct Note {
Note();
double begin, ///< begin time
end; ///< end time
+ double phase; /// Position within a measure, [0, 1)
/// power of note
mutable double power;
/// how well the note was sung [0,1] (used for drawing a star)
diff --git a/game/songparser-sm.cc b/game/songparser-sm.cc
index 477893e..af8ccc9 100644
--- a/game/songparser-sm.cc
+++ b/game/songparser-sm.cc
@@ -200,10 +200,12 @@ Notes SongParser::smParseNotes(std::string line) {
double step = (end - begin) / div;
for (unsigned note = 0; note < div; ++note) {
double t = begin + note * step;
+ double phase = double(note) / div;
for (DanceChord::iterator it = chords[note].begin(), end = chords[note].end(); it != end; ++it) {
int& holdIdx = holdMarks[it->first]; // holdIdx for current arrow
Note& n = it->second;
n.begin = n.end = t;
+ n.phase = phase;
// TODO: Proper LIFT handling
if (n.type == Note::TAP || n.type == Note::MINE || n.type == Note::LIFT) notes.push_back(n);
// TODO: Proper ROLL handling
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-09 23:44:32
|
Module: performous
Branch: arrowcolors
Commit: 9da2eb2e481389da01f62dffe8a93f7e07cf9219
Author: Lasse Karkkainen <tro...@tr...>
Date: Sun Jan 10 00:45:01 2010 +0200
Make const arrays actually const.
---
game/dancegraph.cc | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/game/dancegraph.cc b/game/dancegraph.cc
index 591cced..8e8c0b3 100644
--- a/game/dancegraph.cc
+++ b/game/dancegraph.cc
@@ -103,12 +103,12 @@ DanceGraph::DanceGraph(Audio& audio, Song const& song):
/// Attempt to select next/previous game mode
void DanceGraph::gameMode(int direction) {
// Position mappings for panels
- static int mapping4[max_panels] = {0, 1, 2, 3,-1,-1,-1,-1,-1,-1};
- static int mapping5[max_panels] = {0, 1, 2, 4, 3,-1,-1,-1,-1,-1};
- static int mapping6[max_panels] = {0, 2, 3, 5, 1, 4,-1,-1,-1,-1};
- static int mapping7[max_panels] = {0, 3, 4, 7, 1, 6, 2,-1,-1,-1};
- static int mapping8[max_panels] = {0, 3, 4, 7, 1, 6, 2, 5,-1,-1};
- static int mapping10[max_panels]= {0, 3, 4, 7, 1, 6, 2, 5,-1,-1};
+ static const int mapping4[max_panels] = {0, 1, 2, 3,-1,-1,-1,-1,-1,-1};
+ static const int mapping5[max_panels] = {0, 1, 2, 4, 3,-1,-1,-1,-1,-1};
+ static const int mapping6[max_panels] = {0, 2, 3, 5, 1, 4,-1,-1,-1,-1};
+ static const int mapping7[max_panels] = {0, 3, 4, 7, 1, 6, 2,-1,-1,-1};
+ static const int mapping8[max_panels] = {0, 3, 4, 7, 1, 6, 2, 5,-1,-1};
+ static const int mapping10[max_panels]= {0, 3, 4, 7, 1, 6, 2, 5,-1,-1};
// Cycling
if (direction == 0) {
m_curTrackIt = m_song.danceTracks.find("dance-single");
|
|
From: Tapio V. <aa...@us...> - 2010-01-09 23:41:53
|
Module: performous
Branch: master
Commit: ac58c489013e4da88cdd587a33f127165a604442
Author: Tapio Vierros <tap...@gm...>
Date: Sun Jan 10 01:41:13 2010 +0200
Add nav stuff to screen_hiscore.
---
game/screen_hiscore.cc | 24 ++++--------------------
1 files changed, 4 insertions(+), 20 deletions(-)
diff --git a/game/screen_hiscore.cc b/game/screen_hiscore.cc
index a369edf..eec3f3d 100644
--- a/game/screen_hiscore.cc
+++ b/game/screen_hiscore.cc
@@ -5,6 +5,7 @@
#include "fs.hh"
#include "util.hh"
#include "database.hh"
+#include "joystick.hh"
#include "i18n.hh"
#include <iostream>
@@ -48,26 +49,9 @@ void ScreenHiscore::activateNextScreen() {
}
void ScreenHiscore::manageEvent(SDL_Event event) {
- if (event.type != SDL_KEYDOWN) return;
- SDL_keysym keysym = event.key.keysym;
- int key = keysym.sym;
- SDLMod mod = event.key.keysym.mod;
-
- // TODO: reload button? - needs database reload
- // if (key == SDLK_r && mod & KMOD_CTRL) { m_players.reload(); m_players.setFilter(m_search.text); }
- if (m_search.process(keysym)) m_players.setFilter(m_search.text);
- else if (key == SDLK_ESCAPE) {
- if (m_search.text.empty()) { activateNextScreen(); return; }
- else { m_search.text.clear(); m_players.setFilter(m_search.text); }
- }
- // The rest are only available when there are songs available
- else if (m_players.empty()) return;
- else if (key == SDLK_SPACE || (key == SDLK_PAUSE || (key == SDLK_p && mod & KMOD_CTRL))) m_audio.togglePause();
- else if (key == SDLK_RETURN) { activateNextScreen(); return; }
- else if (key == SDLK_LEFT) m_players.advance(-1);
- else if (key == SDLK_RIGHT) m_players.advance(1);
- else if (key == SDLK_PAGEUP) m_players.advance(-10);
- else if (key == SDLK_PAGEDOWN) m_players.advance(10);
+ input::NavButton nav(input::getNav(event));
+ if (nav == input::CANCEL || nav == input::START) activateNextScreen();
+ else if (nav == input::PAUSE) m_audio.togglePause();
}
/**Draw the scores in the bottom*/
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-09 23:33:04
|
Module: performous
Branch: master
Commit: 2d7c106cfef9fc794147224681c7b1e03b7843dc
Author: Lasse Karkkainen <tro...@tr...>
Date: Sun Jan 10 01:23:29 2010 +0200
Add phase info to notes
---
game/notes.cc | 2 +-
game/notes.hh | 1 +
game/songparser-sm.cc | 2 ++
3 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/game/notes.cc b/game/notes.cc
index 7719f04..0b78c10 100644
--- a/game/notes.cc
+++ b/game/notes.cc
@@ -52,7 +52,7 @@ double MusicalScale::getNoteOffset(double freq) const {
return 12.0 * std::log(frac) / std::log(2.0);
}
-Note::Note(): begin(getNaN()), end(getNaN()), power(getNaN()), type(NORMAL), note(), notePrev() {}
+Note::Note(): begin(getNaN()), end(getNaN()), phase(getNaN()), power(getNaN()), type(NORMAL), note(), notePrev() {}
double Note::diff(double note, double n) { return remainder(n - note, 12.0); }
double Note::maxScore() const { return scoreMultiplier(0.0) * (end - begin); }
diff --git a/game/notes.hh b/game/notes.hh
index 2d17f46..ae1694e 100644
--- a/game/notes.hh
+++ b/game/notes.hh
@@ -70,6 +70,7 @@ struct Note {
Note();
double begin, ///< begin time
end; ///< end time
+ double phase; /// Position within a measure, [0, 1)
/// power of note
mutable double power;
/// how well the note was sung [0,1] (used for drawing a star)
diff --git a/game/songparser-sm.cc b/game/songparser-sm.cc
index 477893e..af8ccc9 100644
--- a/game/songparser-sm.cc
+++ b/game/songparser-sm.cc
@@ -200,10 +200,12 @@ Notes SongParser::smParseNotes(std::string line) {
double step = (end - begin) / div;
for (unsigned note = 0; note < div; ++note) {
double t = begin + note * step;
+ double phase = double(note) / div;
for (DanceChord::iterator it = chords[note].begin(), end = chords[note].end(); it != end; ++it) {
int& holdIdx = holdMarks[it->first]; // holdIdx for current arrow
Note& n = it->second;
n.begin = n.end = t;
+ n.phase = phase;
// TODO: Proper LIFT handling
if (n.type == Note::TAP || n.type == Note::MINE || n.type == Note::LIFT) notes.push_back(n);
// TODO: Proper ROLL handling
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-09 23:32:59
|
Module: performous
Branch: master
Commit: 9da2eb2e481389da01f62dffe8a93f7e07cf9219
Author: Lasse Karkkainen <tro...@tr...>
Date: Sun Jan 10 00:45:01 2010 +0200
Make const arrays actually const.
---
game/dancegraph.cc | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/game/dancegraph.cc b/game/dancegraph.cc
index 591cced..8e8c0b3 100644
--- a/game/dancegraph.cc
+++ b/game/dancegraph.cc
@@ -103,12 +103,12 @@ DanceGraph::DanceGraph(Audio& audio, Song const& song):
/// Attempt to select next/previous game mode
void DanceGraph::gameMode(int direction) {
// Position mappings for panels
- static int mapping4[max_panels] = {0, 1, 2, 3,-1,-1,-1,-1,-1,-1};
- static int mapping5[max_panels] = {0, 1, 2, 4, 3,-1,-1,-1,-1,-1};
- static int mapping6[max_panels] = {0, 2, 3, 5, 1, 4,-1,-1,-1,-1};
- static int mapping7[max_panels] = {0, 3, 4, 7, 1, 6, 2,-1,-1,-1};
- static int mapping8[max_panels] = {0, 3, 4, 7, 1, 6, 2, 5,-1,-1};
- static int mapping10[max_panels]= {0, 3, 4, 7, 1, 6, 2, 5,-1,-1};
+ static const int mapping4[max_panels] = {0, 1, 2, 3,-1,-1,-1,-1,-1,-1};
+ static const int mapping5[max_panels] = {0, 1, 2, 4, 3,-1,-1,-1,-1,-1};
+ static const int mapping6[max_panels] = {0, 2, 3, 5, 1, 4,-1,-1,-1,-1};
+ static const int mapping7[max_panels] = {0, 3, 4, 7, 1, 6, 2,-1,-1,-1};
+ static const int mapping8[max_panels] = {0, 3, 4, 7, 1, 6, 2, 5,-1,-1};
+ static const int mapping10[max_panels]= {0, 3, 4, 7, 1, 6, 2, 5,-1,-1};
// Cycling
if (direction == 0) {
m_curTrackIt = m_song.danceTracks.find("dance-single");
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-09 23:25:26
|
Module: performous
Branch: arrowcolors
Commit: b0712426124041abb3036d0372439b57d065d26e
Author: Lasse Karkkainen <tro...@tr...>
Date: Sun Jan 10 00:19:51 2010 +0200
Redesign dance scoring to match rank texts and make it harder to get good scores.
---
game/dancegraph.cc | 37 +++++++++++++++++++++++--------------
1 files changed, 23 insertions(+), 14 deletions(-)
diff --git a/game/dancegraph.cc b/game/dancegraph.cc
index 0ad5e25..591cced 100644
--- a/game/dancegraph.cc
+++ b/game/dancegraph.cc
@@ -28,13 +28,29 @@ namespace {
/// Gives points based on error from a perfect hit
double points(double error) {
error = (error < 0.0) ? -error : error;
- double score = 0.0;
- if (error < maxTolerance) score += 15;
- if (error < maxTolerance / 2) score += 15;
- if (error < maxTolerance / 4) score += 15;
- if (error < maxTolerance / 6) score += 5;
- return score;
+ double ac = 1.0 - error / maxTolerance;
+ if (ac > .90) return 50.0; // Perfect
+ if (ac > .80) return 40.0; // Excellent
+ if (ac > .70) return 30.0; // Great
+ if (ac > .60) return 25.0; // Good
+ if (ac > .50) return 20.0; // OK
+ if (ac > .40) return 15.0; // Poor
+ if (ac > .30) return 10.0; // Bad
+ if (ac > 0.0) return 5.0; // Horrible
+ return 0.0;
}
+
+ std::string getRank(double ac) {
+ if (ac > .90) return "Perfect!";
+ if (ac > .80) return "Excellent!";
+ if (ac > .70) return "Great!";
+ if (ac > .60) return "Good!";
+ if (ac > .50) return " OK! ";
+ if (ac > .40) return "Poor!";
+ if (ac > .30) return " Bad! ";
+ return "Horrible!";
+ }
+
struct lessEnd {
bool operator()(const DanceNote& left, const DanceNote& right) {
return left.note.end < right.note.end;
@@ -436,14 +452,7 @@ void DanceGraph::drawNote(DanceNote& note, double time) {
if (glow > 0 && ac > 0 && !mine) {
double s = 1.2 * arrowSize * (1.0 + glow);
glColor3f(1.0f, 1.0f, 1.0f);
- std::string rank = "Horrible!";
- if (ac > .90) rank = "Perfect!";
- else if (ac > .80) rank = "Excellent!";
- else if (ac > .70) rank = "Great!";
- else if (ac > .60) rank = "Good!";
- else if (ac > .50) rank = " OK! ";
- else if (ac > .40) rank = "Poor!";
- else if (ac > .30) rank = " Bad! ";
+ std::string rank = getRank(ac);
m_popupText->render(rank);
m_popupText->dimensions().middle(x).center(time2y(0.0)).stretch(s,s/2.0);
m_popupText->draw();
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-09 22:20:03
|
Module: performous
Branch: master
Commit: b0712426124041abb3036d0372439b57d065d26e
Author: Lasse Karkkainen <tro...@tr...>
Date: Sun Jan 10 00:19:51 2010 +0200
Redesign dance scoring to match rank texts and make it harder to get good scores.
---
game/dancegraph.cc | 37 +++++++++++++++++++++++--------------
1 files changed, 23 insertions(+), 14 deletions(-)
diff --git a/game/dancegraph.cc b/game/dancegraph.cc
index 0ad5e25..591cced 100644
--- a/game/dancegraph.cc
+++ b/game/dancegraph.cc
@@ -28,13 +28,29 @@ namespace {
/// Gives points based on error from a perfect hit
double points(double error) {
error = (error < 0.0) ? -error : error;
- double score = 0.0;
- if (error < maxTolerance) score += 15;
- if (error < maxTolerance / 2) score += 15;
- if (error < maxTolerance / 4) score += 15;
- if (error < maxTolerance / 6) score += 5;
- return score;
+ double ac = 1.0 - error / maxTolerance;
+ if (ac > .90) return 50.0; // Perfect
+ if (ac > .80) return 40.0; // Excellent
+ if (ac > .70) return 30.0; // Great
+ if (ac > .60) return 25.0; // Good
+ if (ac > .50) return 20.0; // OK
+ if (ac > .40) return 15.0; // Poor
+ if (ac > .30) return 10.0; // Bad
+ if (ac > 0.0) return 5.0; // Horrible
+ return 0.0;
}
+
+ std::string getRank(double ac) {
+ if (ac > .90) return "Perfect!";
+ if (ac > .80) return "Excellent!";
+ if (ac > .70) return "Great!";
+ if (ac > .60) return "Good!";
+ if (ac > .50) return " OK! ";
+ if (ac > .40) return "Poor!";
+ if (ac > .30) return " Bad! ";
+ return "Horrible!";
+ }
+
struct lessEnd {
bool operator()(const DanceNote& left, const DanceNote& right) {
return left.note.end < right.note.end;
@@ -436,14 +452,7 @@ void DanceGraph::drawNote(DanceNote& note, double time) {
if (glow > 0 && ac > 0 && !mine) {
double s = 1.2 * arrowSize * (1.0 + glow);
glColor3f(1.0f, 1.0f, 1.0f);
- std::string rank = "Horrible!";
- if (ac > .90) rank = "Perfect!";
- else if (ac > .80) rank = "Excellent!";
- else if (ac > .70) rank = "Great!";
- else if (ac > .60) rank = "Good!";
- else if (ac > .50) rank = " OK! ";
- else if (ac > .40) rank = "Poor!";
- else if (ac > .30) rank = " Bad! ";
+ std::string rank = getRank(ac);
m_popupText->render(rank);
m_popupText->dimensions().middle(x).center(time2y(0.0)).stretch(s,s/2.0);
m_popupText->draw();
|
|
From: Lasse Kärkkäi. <tr...@us...> - 2010-01-09 21:47:53
|
Module: performous Branch: master Commit: aa5cfc9c82c197be09905bb6b4b950a5c9d02f0a Author: Lasse Karkkainen <tro...@tr...> Date: Sat Jan 9 23:47:37 2010 +0200 Proper player icon in screen hiscore (Gnome-stock person.svg) --- game/screen_players.cc | 2 +- themes/default/no_player_image.svg | 249 ++++++++++++++++++++++++++++++++---- 2 files changed, 226 insertions(+), 25 deletions(-) |