diff options
author | Didier 'OdyX' Raboud <didier@raboud.com> | 2013-10-30 17:27:05 +0100 |
---|---|---|
committer | Didier 'OdyX' Raboud <didier@raboud.com> | 2013-11-13 09:35:31 +0100 |
commit | 8f7f56f1eae2998b9431e07a3ed0ea7765eb19ba (patch) | |
tree | e52f756a4d4212cce2d9d8691b75ea43928348d5 /src/app/system_macosx.cpp | |
parent | 68d9a72357016206db6578e0137b3e8227865fbd (diff) | |
download | colobot-8f7f56f1eae2998b9431e07a3ed0ea7765eb19ba.tar.gz colobot-8f7f56f1eae2998b9431e07a3ed0ea7765eb19ba.tar.bz2 colobot-8f7f56f1eae2998b9431e07a3ed0ea7765eb19ba.zip |
On Mac OS X, write colobot.ini and savegames to Application Support directories
Diffstat (limited to 'src/app/system_macosx.cpp')
-rw-r--r-- | src/app/system_macosx.cpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/app/system_macosx.cpp b/src/app/system_macosx.cpp new file mode 100644 index 0000000..8e9608c --- /dev/null +++ b/src/app/system_macosx.cpp @@ -0,0 +1,60 @@ +// * This file is part of the COLOBOT source code +// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch +// * Copyright (C) 2013, Polish Portal of Colobot (PPC) +// * +// * 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 3 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, see http://www.gnu.org/licenses/. + +#include "app/system_macosx.h" + +#include "common/logger.h" + +#include <stdlib.h> + +#include <CoreServices/CoreServices.h> + +#include <boost/filesystem.hpp> + +void CSystemUtilsMacOSX::Init() +{ + // These functions are a deprecated way to get the 'Application Support' folder, but they do work, in plain C++ + FSRef ref; + OSType folderType = kApplicationSupportFolderType; + char path[PATH_MAX]; + FSFindFolder( kUserDomain, folderType, kCreateFolder, &ref ); + FSRefMakePath( &ref, reinterpret_cast<UInt8*>(&path), PATH_MAX ); + + m_ASPath = path; + m_ASPath.append("/colobot/"); + + // Make sure the directory exists + boost::filesystem::create_directories(m_ASPath.c_str()); +} + +std::string CSystemUtilsMacOSX::GetProfileFileLocation() +{ + std::string profileFile = m_ASPath + "/colobot.ini"; + + GetLogger()->Trace("Profile file is %s\n", profileFile.c_str()); + return profileFile; +} + +std::string CSystemUtilsMacOSX::GetSavegameDirectoryLocation() +{ + std::string savegameDir = m_ASPath + "/savegame"; + boost::filesystem::create_directories(savegameDir.c_str()); + GetLogger()->Trace("Saved game files are going to %s\n", savegameDir.c_str()); + + return savegameDir; +} + |