Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
141 lines
3.7 KiB
C++
141 lines
3.7 KiB
C++
// autoconfig.cpp : Defines the class behaviors for the application.
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "autoconfig.h"
|
|
#include "autoconfigDlg.h"
|
|
|
|
#if !defined(STUFF_STUFF_HPP)
|
|
#include "Stuff\Stuff.hpp"
|
|
#endif
|
|
|
|
|
|
#include <GameOS\GameOS.hpp>
|
|
#include <MFCPlatform\MFCPlatform.hpp>
|
|
|
|
|
|
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CAutoconfigApp
|
|
|
|
BEGIN_MESSAGE_MAP(CAutoconfigApp, CWinApp)
|
|
//{{AFX_MSG_MAP(CAutoconfigApp)
|
|
// NOTE - the ClassWizard will add and remove mapping macros here.
|
|
// DO NOT EDIT what you see in these blocks of generated code!
|
|
//}}AFX_MSG
|
|
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CAutoconfigApp construction
|
|
|
|
CAutoconfigApp::CAutoconfigApp()
|
|
{
|
|
// TODO: add construction code here,
|
|
// Place all significant initialization in InitInstance
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// The one and only CAutoconfigApp object
|
|
|
|
CAutoconfigApp theApp;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CAutoconfigApp initialization
|
|
|
|
BOOL CAutoconfigApp::InitInstance()
|
|
{
|
|
AfxEnableControlContainer();
|
|
|
|
// Standard initialization
|
|
// If you are not using these features and wish to reduce the size
|
|
// of your final executable, you should remove from the following
|
|
// the specific initialization routines you do not need.
|
|
|
|
#ifdef _AFXDLL
|
|
Enable3dControls(); // Call this when using MFC in a shared DLL
|
|
#else
|
|
Enable3dControlsStatic(); // Call this when linking to MFC statically
|
|
#endif
|
|
|
|
CString mutexstr;
|
|
mutexstr.LoadString(AFX_IDS_APP_TITLE);
|
|
HANDLE rst=CreateMutex(NULL,TRUE,mutexstr);
|
|
if(ERROR_ALREADY_EXISTS==GetLastError())
|
|
{
|
|
CString errmsg,title;
|
|
errmsg.LoadString(IDS_APPRUNNING);
|
|
title.LoadString(IDS_ERROR);
|
|
if (MessageBox(NULL,errmsg,title,MB_ICONQUESTION | MB_YESNO) == IDNO)
|
|
{
|
|
exit(1);
|
|
}
|
|
ReleaseMutex(rst);
|
|
CreateMutex(NULL,TRUE,mutexstr);
|
|
}
|
|
|
|
CAutoconfigDlg dlg;
|
|
m_pMainWnd = &dlg;
|
|
int nResponse = dlg.DoModal();
|
|
if (nResponse == IDOK)
|
|
{
|
|
// TODO: Place code here to handle when the dialog is
|
|
// dismissed with OK
|
|
}
|
|
else if (nResponse == IDCANCEL)
|
|
{
|
|
// TODO: Place code here to handle when the dialog is
|
|
// dismissed with Cancel
|
|
}
|
|
|
|
// Since the dialog has been closed, return FALSE so that we exit the
|
|
// application, rather than start the application's message pump.
|
|
return FALSE;
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void _stdcall InitializeGameEngine()
|
|
{
|
|
|
|
|
|
Stuff::InitializeClasses();
|
|
|
|
|
|
}
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void _stdcall TerminateGameEngine()
|
|
{
|
|
|
|
Stuff::TerminateClasses();
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
//
|
|
void __stdcall GetGameOSEnvironment(char* CommandLine)
|
|
{
|
|
//
|
|
//----------------------------------------------------------
|
|
// This is where to set GOS environment settings.
|
|
//----------------------------------------------------------
|
|
//
|
|
Environment.applicationName = "AutoConfig";
|
|
Environment.directoryPath = "\\Tools\\AutoConfig";
|
|
Environment.screenWidth = 640;
|
|
Environment.screenHeight = 480;
|
|
Environment.bitDepth = 16;
|
|
Environment.InitializeGameEngine = InitializeGameEngine;
|
|
Environment.TerminateGameEngine = TerminateGameEngine;
|
|
Environment.Renderer = 3; // use blade to avoid Voodoo problems
|
|
|
|
}
|
|
|