From 648eb17e0a1efc7d1842662c9fe5f3c03e904b31 Mon Sep 17 00:00:00 2001 From: hikerstk Date: Sun, 5 Feb 2012 20:56:45 +0000 Subject: [PATCH] Added command line option for reversing tracks. git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/branches/reverse_mode@10808 178a84e3-b1eb-0310-8ba1-8eac791a3b58 --- src/main.cpp | 5 +++++ src/race/race_manager.cpp | 3 +-- src/race/race_manager.hpp | 4 +--- src/states_screens/dialogs/track_info_dialog.cpp | 15 ++++++++++----- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index d4d892d82..2f9ceead0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -361,6 +361,7 @@ void cmdLineHelp (char* invocation) " --list-karts Show available karts.\n" " --laps N Define number of laps to N.\n" " --mode N N=1 novice, N=2 driver, N=3 racer.\n" + " --reverse Play track in reverse (if allowed)\n" // TODO: add back "--players" switch // " --players n Define number of players to between 1 and 4.\n" " --item STYLE Use STYLE as your item style.\n" @@ -766,6 +767,10 @@ int handleCmdLine(int argc, char **argv) } i++; } + else if( !strcmp(argv[i], "--reverse")) + { + race_manager->setReverseTrack(true); + } else if( (!strcmp(argv[i], "--track") || !strcmp(argv[i], "-t")) && i+1enterGameState(); setTrack(trackIdent.c_str()); if (num_laps != -1) setNumLaps( num_laps ); - setReverseTrack(reverse_track); setMajorMode(RaceManager::MAJOR_MODE_SINGLE); diff --git a/src/race/race_manager.hpp b/src/race/race_manager.hpp index 285fa3cac..374caf57f 100644 --- a/src/race/race_manager.hpp +++ b/src/race/race_manager.hpp @@ -496,10 +496,8 @@ public: * \param trackIdent Internal name of the track to race on * \param num_laps Number of laps to race, or -1 if number of laps is * not relevant in current mode - * \param reverse_track True if the track should be driven reverse */ - void startSingleRace(const std::string trackIdent, const int num_laps, - const bool reverse_track); + void startSingleRace(const std::string trackIdent, const int num_laps); /** \} */ diff --git a/src/states_screens/dialogs/track_info_dialog.cpp b/src/states_screens/dialogs/track_info_dialog.cpp index 2de5c556c..ff68b4fb7 100644 --- a/src/states_screens/dialogs/track_info_dialog.cpp +++ b/src/states_screens/dialogs/track_info_dialog.cpp @@ -168,7 +168,9 @@ TrackInfoDialog::TrackInfoDialog(const std::string& ribbonItem, const std::strin IGUIStaticText* b = GUIEngine::getGUIEnv()->addStaticText( text_reverse.c_str(), - core::rect< s32 >(m_checkbox->m_x+m_checkbox->m_w, m_checkbox->m_y+10, m_checkbox->m_x+200, m_checkbox->m_y+m_checkbox->m_h), + core::rect< s32 >(m_checkbox->m_x+m_checkbox->m_w, + m_checkbox->m_y+10, m_checkbox->m_x+200, + m_checkbox->m_y+m_checkbox->m_h), false , true , // border, word warp m_irrlicht_window); b->setTabStop(false); @@ -324,7 +326,8 @@ void TrackInfoDialog::onEnterPressedInternal() const int num_laps = (m_spinner == NULL ? -1 : m_spinner->getValue()); const bool reverse_track = m_checkbox == NULL ? false : m_checkbox->getState(); - race_manager->startSingleRace(m_track_ident, num_laps, reverse_track); + race_manager->setReverseTrack(reverse_track); + race_manager->startSingleRace(m_track_ident, num_laps); } // ------------------------------------------------------------------------------------------------------ @@ -336,13 +339,15 @@ GUIEngine::EventPropagation TrackInfoDialog::processEvent(const std::string& eve // Create a copy of member variables we still need, since they will // not be accessible after dismiss: const int num_laps = (m_spinner == NULL ? -1 : m_spinner->getValue()); - const bool reverse_track = m_checkbox == NULL ? false - : m_checkbox->getState(); std::string track_ident = m_track_ident; ModalDialog::dismiss(); - race_manager->startSingleRace(track_ident, num_laps, reverse_track); + race_manager->startSingleRace(track_ident, num_laps); return GUIEngine::EVENT_BLOCK; } + else if (eventSource == "reversecheckbox") + { + race_manager->setReverseTrack(m_checkbox->getState()); + } else if (eventSource == "lapcountspinner") { assert(m_spinner != NULL);