mirror of
https://github.com/dashr9230/SA-MP.git
synced 2024-11-23 14:29:52 +00:00
154 lines
3.1 KiB
C++
154 lines
3.1 KiB
C++
|
|
#include "main.h"
|
|
|
|
GAME_SETTINGS tSettings;
|
|
HANDLE hInstance=0;
|
|
|
|
CGame *pGame=0;
|
|
|
|
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
|
{
|
|
if(DLL_PROCESS_ATTACH==fdwReason)
|
|
{
|
|
hInstance = hinstDLL;
|
|
InitSettings();
|
|
|
|
if(tSettings.bDebug || tSettings.bPlayOnline)
|
|
{
|
|
// TODO: DllMain
|
|
/*
|
|
SetUnhandledExceptionFilter(TopLevelExceptionFilter);
|
|
dword_1026EB3C = (int)sub_100C4FF0;
|
|
GetModuleFileNameA((HMODULE)hInstance, &Filename, 0x104u);
|
|
v3 = strlen(&Filename);
|
|
if ( *(&Filename + v3) != 92 )
|
|
{
|
|
do
|
|
v4 = *((_BYTE *)&v12 + v3-- + 3);
|
|
while ( v4 != 92 );
|
|
}
|
|
v5 = &v15[v3];
|
|
*(_DWORD *)v5 = 1886216563;
|
|
*((_DWORD *)v5 + 1) = 1633776430;
|
|
v5[8] = 0;
|
|
v6 = operator new(0x935u);
|
|
v12 = v6;
|
|
v16 = 0;
|
|
if ( v6 )
|
|
v7 = (int *)sub_10065350(v6);
|
|
else
|
|
v7 = 0;
|
|
dword_1026EB44 = (int)v7;
|
|
v8 = *v7;
|
|
v16 = -1;
|
|
if ( !(unsigned __int8)(*(int (__thiscall **)(int *, int *))(v8 + 4))(v7, &dword_100EDB18) )
|
|
__debugbreak();*/
|
|
|
|
AddFontResourceA("gtaweap3.ttf");
|
|
AddFontResourceA("sampaux3.ttf");
|
|
|
|
//sub_10062CA0();
|
|
//sub_10062970();
|
|
|
|
pGame = new CGame();
|
|
|
|
//_beginthread((int)sub_100C3A80, 0, 0);
|
|
}
|
|
}
|
|
else if(DLL_PROCESS_DETACH==fdwReason)
|
|
{
|
|
if(tSettings.bDebug || tSettings.bPlayOnline) {
|
|
//sub_10062D90
|
|
}
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
//----------------------------------------------------
|
|
|
|
void InitSettings()
|
|
{
|
|
PCHAR szCmdLine = GetCommandLineA();
|
|
|
|
memset(&tSettings,0,sizeof(GAME_SETTINGS));
|
|
|
|
while(*szCmdLine) {
|
|
|
|
if(*szCmdLine == '-' || *szCmdLine == '/') {
|
|
szCmdLine++;
|
|
switch(*szCmdLine) {
|
|
case 'd':
|
|
tSettings.bDebug = TRUE;
|
|
tSettings.bPlayOnline = FALSE;
|
|
break;
|
|
case 'c':
|
|
tSettings.bPlayOnline = TRUE;
|
|
tSettings.bDebug = FALSE;
|
|
break;
|
|
case 'z':
|
|
szCmdLine++;
|
|
SetStringFromCommandLine(szCmdLine,tSettings.szConnectPass);
|
|
break;
|
|
/*
|
|
// We'll do this using ALT+ENTER
|
|
case 'w':
|
|
tSettings.bWindowedMode = TRUE;
|
|
break;
|
|
*/
|
|
case 'h':
|
|
szCmdLine++;
|
|
SetStringFromCommandLine(szCmdLine,tSettings.szConnectHost);
|
|
break;
|
|
case 'p':
|
|
szCmdLine++;
|
|
SetStringFromCommandLine(szCmdLine,tSettings.szConnectPort);
|
|
break;
|
|
case 'n':
|
|
szCmdLine++;
|
|
SetStringFromCommandLine(szCmdLine,tSettings.szNickName);
|
|
break;
|
|
case 'l':
|
|
szCmdLine++;
|
|
SetStringFromQuotedCommandLine(szCmdLine,tSettings.szDebugScript);
|
|
break;
|
|
}
|
|
}
|
|
|
|
szCmdLine++;
|
|
}
|
|
}
|
|
|
|
//----------------------------------------------------
|
|
|
|
void SetStringFromCommandLine(char *szCmdLine, char *szString)
|
|
{
|
|
while(*szCmdLine == ' ') szCmdLine++;
|
|
while(*szCmdLine &&
|
|
*szCmdLine != ' ' &&
|
|
*szCmdLine != '-' &&
|
|
*szCmdLine != '/')
|
|
{
|
|
*szString = *szCmdLine;
|
|
szString++; szCmdLine++;
|
|
}
|
|
*szString = '\0';
|
|
}
|
|
|
|
//----------------------------------------------------
|
|
|
|
void SetStringFromQuotedCommandLine(char *szCmdLine, char *szString)
|
|
{
|
|
while(*szCmdLine != '"') szCmdLine++;
|
|
szCmdLine++;
|
|
while(*szCmdLine &&
|
|
*szCmdLine != '"')
|
|
{
|
|
*szString = *szCmdLine;
|
|
szString++; szCmdLine++;
|
|
}
|
|
*szString = '\0';
|
|
}
|
|
|
|
//----------------------------------------------------
|