file.cpp
来自「Source code (C++) of the Amoebax game fo」· C++ 代码 · 共 175 行
CPP
175 行
//// 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#if defined (IS_WIN32_HOST)#include <dirent.h>#else // !IS_WIN32_HOST#include <unistd.h>#endif // IS_WIN32_HOST#include <sstream>#include "File.h"#include "Options.h"#ifdef __SYMBIAN32__
#define DATADIR "c:\\resource\\apps\\amoebax"
#endifusing namespace Amoebax;#if( !defined (IS_WIN32_HOST) && !defined (IS_GP2X_HOST) && !defined (IS_OSX_HOST)) || defined(__SYMBIAN32__)#include "binreloc.h"
char symbianDataDrive();
////// \brief Tries to locate the correct data directory.////// \return The data directory to use.///
char *locateDataDir (void){ static char *dataDir = 0; static bool firstTime = true; if ( firstTime ) { firstTime = false; std::string dir (DATADIR); BrInitError error; if ( br_init (&error) == 0 && error != BR_INIT_ERROR_DISABLED ) { // Nothing to do, set hardcoded path. } else { dir = br_find_data_dir(DATADIR); if (dir != DATADIR ) { dir += "/amoebax"; } } dataDir = strdup (dir.c_str ());
} return dataDir;}#endif // !IS_WIN32_HOST && !IS_GP2X_HOST && !IS_OSX_HOST#if defined (IS_WIN32_HOST) || defined (__SYMBIAN32__)static const char *k_DirectorySeparator = "\\";#else // !IS_WIN32_HOSTstatic const char *k_DirectorySeparator = "/";#endif // IS_WIN32_HOST#if (defined (IS_WIN32_HOST) || defined (IS_GP2X_HOST) || defined (IS_OSX_HOST)) && !defined(__SYMBIAN32__)static const char *k_DataDirectory = ".";#else // !IS_WIN32_HOST && !IS_GP2X_HOST && !IS_OSX_HOSTchar *k_DataDirectory = locateDataDir ();#endif // IS_WIN32_HOST || IS_GP2X_HOST || IS_OSX_HOST////// \brief Changes the current work directory.////// \param directory The directory to change to./// \return \a true if the working directory could be changed, \a false/// otherwise.///boolFile::ChangeWorkDirectory (const std::string &directory){ // On Windows and UNIX platforms, it returns 0 on success. return chdir (directory.c_str ()) == 0;}////// \brief Gets the path to a data file.////// \param subdirectory The subdirectory where the file is located/// inside the data directory./// \param fileName The name of the data file to get its path./// \return The absolute or relative path to the data file.///std::stringFile::getDataFilePath (const std::string &subdirectory, const std::string &fileName){ std::string filePath (k_DataDirectory); filePath += k_DirectorySeparator; filePath += subdirectory; filePath += k_DirectorySeparator; filePath += fileName; return filePath;}////// \brief Gets the path to a font file.////// \param fileName The file name of the graphics file to get its path./// \return The absolute or relative path to the font file.///std::stringFile::getFontFilePath (const std::string &fileName){ std::ostringstream fontFilePath; fontFilePath << getDataFilePath ("fonts", fileName); fontFilePath << Options::getInstance ().getScreenHeight (); fontFilePath << ".png"; return fontFilePath.str ();}////// \brief Gets the path to a graphics file.////// \param fileName The file name of the graphics file to get its path./// \return The absolute or relative path to the graphics file.///std::stringFile::getGraphicsFilePath (const std::string &fileName){ return getDataFilePath ("graphics", fileName);}////// \brief Gets the path to a music file.////// \param fileName The file name of the music file to get its path./// \return The absolute or relative path to the graphics file.///std::stringFile::getMusicFilePath (const std::string &fileName){ return getDataFilePath ("music", fileName);}////// \brief Gets the path to a sound file.////// \param fileName The file name of the sound file to get its path./// \return The absolute or relative path to the sound file.///std::stringFile::getSoundFilePath (const std::string &fileName){ return getDataFilePath ("sfx", fileName);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?