|
From: Tapio V. <aa...@us...> - 2010-08-21 18:03:08
|
Module: performous
Branch: master
Commit: 06cbf09faa2896fe91bd073c7ee642aa0ffa50c5
Author: Tapio Vierros <tap...@gm...>
Date: Thu Jul 8 17:58:51 2010 +0300
Lefty-mode can now be enabled via the menu.
---
game/guitargraph.cc | 6 +++++-
game/guitargraph.hh | 4 ++--
game/menu.hh | 2 +-
3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/game/guitargraph.cc b/game/guitargraph.cc
index 899b4b2..75746bd 100644
--- a/game/guitargraph.cc
+++ b/game/guitargraph.cc
@@ -146,9 +146,11 @@ void GuitarGraph::setupJoinMenu() {
}
// Populate root menu
std::string s(" (");
+ std::string le = m_leftymode.b() ? _("ON") : _("OFF");
m_menu.add(MenuOption(_("Ready!"), _("Start performing!")));
m_menu.add(MenuOption(_("Track"), _("Select track to play") + s + getTrack() + ")", trackmenu));
m_menu.add(MenuOption(_("Difficulty"), _("Select difficulty level") + s + getDifficultyString() + ")", diffmenu));
+ m_menu.add(MenuOption(_("Lefty-mode"), _("Toggle left-handed mode") + s + le + ")", &m_leftymode));
m_menu.add(MenuOption(_("Quit"), _("Exit to song browser"), "Songs"));
}
@@ -272,13 +274,14 @@ void GuitarGraph::engine() {
if (ev.type == input::Event::WHAMMY) whammy = (1.0 + ev.button + 2.0*(rand()/double(RAND_MAX))) / 4.0;
} else {
// Handle drum lefty-mode
- if (m_leftymode && ev.button > 0) ev.button = m_pads - ev.button;
+ if (m_leftymode.b() && ev.button > 0) ev.button = m_pads - ev.button;
}
// Keypress anims
if (ev.type == input::Event::PRESS) m_pressed_anim[!m_drums + ev.button].setValue(1.0);
else if (ev.type == input::Event::PICK) m_pressed_anim[0].setValue(1.0);
// Menu keys
if (menuOpen()) {
+ bool old_lefty = m_leftymode.b();
// Check first regular keys
if (ev.type == input::Event::PRESS && ev.button == 0 + m_drums) m_menu.action(1);
else if (ev.type == input::Event::PRESS && ev.button == 1 + m_drums) m_menu.action(-1);
@@ -294,6 +297,7 @@ void GuitarGraph::engine() {
// See if anything changed
if (m_selectedTrack.s() != getTrack()) setTrack(m_selectedTrack.s());
else if (m_selectedDifficulty.i() != m_level) difficulty(Difficulty(m_selectedDifficulty.i()));
+ else if (old_lefty != m_leftymode.b()) setupJoinMenu();
// Playing
} else if (m_drums) {
if (ev.type == input::Event::PRESS) drumHit(time, ev.button);
diff --git a/game/guitargraph.hh b/game/guitargraph.hh
index a8f853c..622441e 100644
--- a/game/guitargraph.hh
+++ b/game/guitargraph.hh
@@ -98,7 +98,7 @@ class GuitarGraph: public InstrumentGraph {
// Flags
bool m_drums; /// are we using drums?
bool m_use3d; /// are we using 3d?
- bool m_leftymode; /// switch guitar notes to right-to-left direction
+ ConfigItem m_leftymode; /// switch guitar notes to right-to-left direction
bool m_practmode; /// switch to enable practice mode
// Track stuff
@@ -126,7 +126,7 @@ class GuitarGraph: public InstrumentGraph {
void drawNote(int fret, glutil::Color, float tBeg, float tEnd, float whammy = 0, bool tappable = false, bool hit = false, double hitAnim = 0.0, double releaseTime = 0.0);
void drawDrumfill(float tBeg, float tEnd);
void drawInfo(double time, double offsetX, Dimensions dimensions);
- float getFretX(int fret) const { return (-2.0f + fret- (m_drums ? 0.5 : 0)) * (m_leftymode ? -1 : 1); }
+ float getFretX(int fret) { return (-2.0f + fret- (m_drums ? 0.5 : 0)) * (m_leftymode.b() ? -1 : 1); }
// Chords & notes
void updateChords();
diff --git a/game/menu.hh b/game/menu.hh
index 947feef..21ba3d9 100644
--- a/game/menu.hh
+++ b/game/menu.hh
@@ -8,7 +8,7 @@
#include <vector>
class Surface;
-class MenuOption;
+struct MenuOption;
typedef std::vector<MenuOption> MenuOptions;
|