1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2025-07-13 19:35:41 +00:00
Aquaria/Aquaria/Main.cpp
2014-06-26 21:41:40 -06:00

121 lines
2.6 KiB
C++

/*
Copyright (C) 2007, 2010 - Bit-Blot
This file is part of Aquaria.
Aquaria 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "DSQ.h"
#ifdef BBGE_BUILD_WINDOWS
#include <shellapi.h>
#endif
static void MakeRan(void)
{
#ifdef BBGE_BUILD_WINDOWS
std::ofstream out("ran");
if(out)
{
for (int i = 0; i < 32; i++)
out << rand()%1000;
out.close();
}
#endif
}
#if defined(BBGE_BUILD_WINDOWS)
static void StartAQConfig()
{
if (!exists("ran", false, true))
{
MakeRan();
if(exists("AQConfig.exe", false, true))
{
ShellExecute(NULL, "open", "AQConfig.exe", NULL, NULL, SW_SHOWNORMAL);
exit(0);
}
}
remove("ran");
}
#endif
static void CheckConfig(void)
{
#ifdef BBGE_BUILD_WINDOWS
bool hasCfg = exists("usersettings.xml", false, true);
if(!hasCfg)
StartAQConfig();
#endif
}
#if defined(BBGE_BUILD_WINDOWS) && !defined(BBGE_BUILD_SDL)
int WINAPI WinMain( HINSTANCE hInstance, // Instance
HINSTANCE hPrevInstance, // Previous Instance
LPSTR lpCmdLine, // Command Line Parameters
int nCmdShow) // Window Show State
{
#ifdef _DEBUG
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
_CrtSetReportMode ( _CRT_ERROR, _CRTDBG_MODE_DEBUG);
#endif
std::string dsqParam = GetCommandLine();
#else
extern "C" int main(int argc,char *argv[])
{
std::string dsqParam = ""; // fileSystem
std::string extraDataDir = "";
const char *envPath = 0;
#ifdef BBGE_BUILD_UNIX
envPath = getenv("AQUARIA_DATA_PATH");
if (envPath)
{
dsqParam = envPath;
}
#endif
#ifdef AQUARIA_DEFAULT_DATA_DIR
if(!envPath)
dsqParam = AQUARIA_DEFAULT_DATA_DIR;
#endif
#ifdef AQUARIA_EXTRA_DATA_DIR
if(!envPath)
extraDataDir = AQUARIA_EXTRA_DATA_DIR;
#endif
#endif
CheckConfig();
{
DSQ dsql(dsqParam, extraDataDir);
dsql.init();
dsql.main();
dsql.shutdown();
}
MakeRan();
return (0);
}