2020-10-04 08:28:38 +02:00
|
|
|
// SpaceCadetPinball.cpp : This file contains the 'main' function. Program execution begins and ends there.
|
|
|
|
//
|
|
|
|
|
|
|
|
#include "pch.h"
|
2020-10-24 17:30:45 +02:00
|
|
|
|
2020-12-02 18:12:34 +01:00
|
|
|
#include "winmain.h"
|
2020-10-04 08:28:38 +02:00
|
|
|
|
2021-10-09 11:33:33 +02:00
|
|
|
int MainActual(LPCSTR lpCmdLine)
|
2021-02-18 10:53:25 +01:00
|
|
|
{
|
2021-10-09 11:33:33 +02:00
|
|
|
// Todo: get rid of restart to change resolution.
|
|
|
|
int returnCode;
|
|
|
|
do
|
2020-11-29 16:50:49 +01:00
|
|
|
{
|
2021-10-09 11:33:33 +02:00
|
|
|
returnCode = winmain::WinMain(lpCmdLine);
|
2020-11-29 16:50:49 +01:00
|
|
|
}
|
2021-10-09 11:33:33 +02:00
|
|
|
while (winmain::RestartRequested());
|
|
|
|
return returnCode;
|
|
|
|
}
|
|
|
|
|
|
|
|
int main(int argc, char* argv[])
|
|
|
|
{
|
|
|
|
std::string cmdLine;
|
|
|
|
for (int i = 1; i < argc; i++)
|
|
|
|
cmdLine += argv[i];
|
|
|
|
|
|
|
|
return MainActual(cmdLine.c_str());
|
|
|
|
}
|
|
|
|
|
|
|
|
#if _WIN32
|
|
|
|
#include <windows.h>
|
|
|
|
|
|
|
|
// Windows subsystem main
|
|
|
|
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
|
|
|
|
{
|
|
|
|
return MainActual(lpCmdLine);
|
2020-10-04 08:28:38 +02:00
|
|
|
}
|
2021-11-06 17:22:56 +01:00
|
|
|
|
|
|
|
// fopen to _wfopen adapter, for UTF-8 paths
|
|
|
|
FILE* fopenu(const char* path, const char* opt)
|
|
|
|
{
|
|
|
|
wchar_t* wideArgs[2]{};
|
|
|
|
for (auto& arg : wideArgs)
|
|
|
|
{
|
|
|
|
auto src = wideArgs[0] ? opt : path;
|
|
|
|
auto length = MultiByteToWideChar(CP_UTF8, 0, src, -1, nullptr, 0);
|
|
|
|
arg = new wchar_t[length];
|
|
|
|
MultiByteToWideChar(CP_UTF8, 0, src, -1, arg, length);
|
|
|
|
}
|
|
|
|
|
|
|
|
auto fileHandle = _wfopen(wideArgs[0], wideArgs[1]);
|
|
|
|
for (auto arg : wideArgs)
|
|
|
|
delete[] arg;
|
|
|
|
|
|
|
|
return fileHandle;
|
|
|
|
}
|
2021-10-09 11:33:33 +02:00
|
|
|
#endif
|
2020-10-04 08:28:38 +02:00
|
|
|
|
|
|
|
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
|
|
|
|
// Debug program: F5 or Debug > Start Debugging menu
|
|
|
|
|
|
|
|
// Tips for Getting Started:
|
|
|
|
// 1. Use the Solution Explorer window to add/manage files
|
|
|
|
// 2. Use the Team Explorer window to connect to source control
|
|
|
|
// 3. Use the Output window to see build output and other messages
|
|
|
|
// 4. Use the Error List window to view errors
|
|
|
|
// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
|
|
|
|
// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
|