Files
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
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.
2026-06-24 21:28:16 -05:00

104 lines
2.7 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include"MW4AppHeaders.hpp"
#include<Windows.h>
//
//Do not use ….\EulaTest\\1.0 as the key for your game; use your game name and version instead…
// PLEASE NOTE: do not place backslashes on beginning or end of regkey.
//
#define GAME_REG_KEY "Software\\Microsoft\\Microsoft Games\\MechWarrior Vengeance"
typedef DWORD (*EBUPROC) (LPCTSTR lpRegKeyLocation, LPCTSTR lpEULAFileName, LPCSTR lpWarrantyFileName, BOOL fCheckForFirstRun);
//
//The game applications .RC file should define strings for the EULA and WARRANTY pathnames…
//
bool FirstRunEula(const char *eula_filename,const char *warranty_filename)
{
#if 1 // jcem
return true;
#else // jcem
EBUPROC pfnEBUEula;
HINSTANCE hMod;
hMod = LoadLibrary("Assets\\binaries\\EBUEula.dll");
if (NULL == hMod)
hMod = LoadLibrary("EBUEula.dll");
if (NULL == hMod) // cant attach to DLL
{
STOP(("Cannot Load EBUEula.dll"));
}
pfnEBUEula = (EBUPROC) GetProcAddress(hMod, "EBUEula");
if (NULL == pfnEBUEula) // cant find entry point
{
FreeLibrary(hMod);
STOP(("Cannot Find Entry Point to EBUEula.dll"));
}
//
//This call enables both EULA and warranty accepting/viewing/printing. If your
//game doesnt ship with a WARRANTY file, specifiy NULL instead of szWarranty…
//The code below, for instance, works with both OEM and retail builds…
//
const char *pszWarrantyParam = 0xFFFFFFFF != GetFileAttributes(warranty_filename) ? warranty_filename : NULL;
BOOL fAllowGameToRun = pfnEBUEula(GAME_REG_KEY, eula_filename, pszWarrantyParam, TRUE);
FreeLibrary(hMod);
return fAllowGameToRun?true:false;
#endif // jcem
}
bool EulaDeclineMsg(const char *str,const char *caption)
{
return IDOK==MessageBox(NULL,str,caption,MB_OKCANCEL);
}
bool ExecuteAndWait(const char *exename)
{
STARTUPINFO sinfo;
PROCESS_INFORMATION pinfo;
ZeroMemory(&sinfo,sizeof(sinfo));
sinfo.cb=sizeof(sinfo);
if(CreateProcess(exename,NULL,NULL,NULL,FALSE,NULL,NULL,NULL,&sinfo,&pinfo)==NULL) return false;
DWORD eflag;
do
{
if(GetExitCodeProcess(pinfo.hProcess,&eflag)==0) return false;
}
while(eflag==STILL_ACTIVE);
return true;
}
extern HWND hWindow;
extern void __stdcall EnterWindowMode();
extern void __stdcall EnterFullScreenMode();
bool WinMessageBox(const char *str,const char *msg,int mode)
{
bool res=false;
bool needflip=Environment.fullScreen;
if(needflip) gos_EnableSetting(gos_Set_MinMaxApp,0);
switch(mode)
{
case 0:
res=(IDRETRY==MessageBox(hWindow,msg,str,MB_RETRYCANCEL));
break;
case 1:
res=(IDOK==MessageBox(hWindow,msg,str,MB_OK));
break;
}
if(needflip) gos_EnableSetting(gos_Set_MinMaxApp,1);
return res;
}