main.cpp
来自「Source code (C++) of the Amoebax game fo」· C++ 代码 · 共 204 行
CPP
204 行
//// Cross-platform free Puyo-Puyo clone.// Copyright (C) 2006, 2007 Emma's Software//// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.//#if defined (HAVE_CONFIG_H)#include <config.h>#endif // HAVE_CONFIG_H#include <cstdlib>#include <iomanip>#include <iostream>#include <SDL.h>#include <stdexcept>#include "MainMenuState.h"#include "Options.h"#include "System.h"#if defined (IS_GP2X_HOST)#include "UnixOptions.h"#endif // IS_GP2X_HOSTusing namespace Amoebax;static void endGame (void);static void parseCommandLine (int argc, char **argv);static void showUsage (void);static void showVersion (void);extern char *k_DataDirectory;
char symbianDataDrive();
intmain (int argc, char **argv){
k_DataDirectory[0] = symbianDataDrive(); try { parseCommandLine (argc, argv); System::getInstance ().init (); System::getInstance ().setActiveState (new MainMenuState (), System::FadeIn); System::getInstance ().run (); } catch (std::exception &e) { System::showFatalError (e.what ()); endGame (); return EXIT_FAILURE; } endGame (); return EXIT_SUCCESS;}////// \brief Frees resources and executes the main menu.////// This is only used on the GP2X. On the GP2X if we just/// return from main() the console would look like it was/// hung. Instead, we free SDL resources and execute the menu/// at /usr/gp2x./// For all other platforms, this is just a no operation/// function.///voidendGame (void){#if defined (IS_GP2X_HOST) UnixOptions &options = static_cast<UnixOptions &>(Options::getInstance ()); options.flush (); SDL_Quit ();
#ifndef __SYMBIAN32__ chdir ("/usr/gp2x"); execl ("/usr/gp2x/gp2xmenu", "/usr/gp2x/gp2xmenu", NULL);
#endif#endif // IS_GP2X_HOST}////// \brief Parses the command line for options.////// \param argc The number of arguments from the command line./// \param argv The array of command line parameters.///voidparseCommandLine (int argc, char **argv){ for ( int currentArgument = 1 ; currentArgument < argc ; ++currentArgument ) { std::string argument (argv[currentArgument]); // Fullscreen. if ( argument == "-f" || argument == "--fullscreen" ) { Options::getInstance ().setFullScreen (true); } // Enable sound. else if ( argument == "--enable-sound" ) { Options::getInstance ().setSoundEnabled (true); } // Disable sound else if ( argument == "--disable-sound" ) { Options::getInstance ().setSoundEnabled (false); } // Help. else if ( argument == "-h" || argument == "--help" ) { showUsage (); exit (EXIT_SUCCESS); } // Version. else if ( argument == "-V" || argument == "--version" ) { showVersion (); exit (EXIT_SUCCESS); } // Windowed mode. else if ( argument == "-w" || argument == "--windowed" ) { Options::getInstance ().setFullScreen (false); } // Unknown parameter. else { std::cerr << "Unknown option: " << argument << std::endl; showUsage (); throw std::runtime_error ("Unknown command line option."); } }}////// \brief Shows the application's usage information.///voidshowUsage (void){ using namespace std; const int optionWidth = 25; cout << "Usage: amoebax [OPTION]" << endl; cout << endl; cout << "Free Puyo-Puyo clone game." << endl; cout << endl; cout << left << setw (optionWidth) << " -f, --fullscreen"; cout << right << "start in full screen mode" << endl; cout << left << setw (optionWidth) << " --enable-sound"; cout << right << "enables the sound" << endl; cout << left << setw (optionWidth) << " --disable-sound"; cout << right << "disables the sound" << endl; cout << left << setw (optionWidth) << " -h, --help"; cout << right << "display this help message and exit" << endl; cout << left << setw (optionWidth) << " -V, --version"; cout << right << "print version information" << endl; cout << left << setw (optionWidth) << " -w, --windowed"; cout << right << "start in windowed mode" << endl; cout << endl; cout << "Report bugs to <" << PACKAGE_BUGREPORT << ">" << endl;}////// \brief Shows the application's version information.///voidshowVersion (void){ using namespace std; cout << PACKAGE_STRING << endl; cout << endl; cout << "Copyright (c) 2006, 2007 Emma's Software." << endl; cout << "This is free software; see the source for copying "; cout << "conditions. There is NO" << endl; cout << "warranty; not even for MERCHANTABILITY or FITNESS FOR "; cout << "A PARTICULAR PURPOSE." << endl;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?