mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2025-02-10 06:04:03 +00:00
This means there are no longer two builds necessary (one normal, one dev), and all mod deveopment can be done using one build, by setting Demo builds now allow browsing the online mod list, but neither downloading nor starting mods or applying patches.
121 lines
2.6 KiB
C++
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
|
|
}
|
|
|
|
static void StartAQConfig()
|
|
{
|
|
#if defined(BBGE_BUILD_WINDOWS)
|
|
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);
|
|
}
|
|
|