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.
175 lines
5.4 KiB
C++
175 lines
5.4 KiB
C++
#if !defined(__CTCL_H__)
|
|
#define __CTCL_H__
|
|
|
|
// The following ifdef block is the standard way of creating macros which make exporting
|
|
// from a DLL simpler. All files within this DLL are compiled with the CTCL_EXPORTS
|
|
// symbol defined on the command line. this symbol should not be defined on any project
|
|
// that uses this DLL. This way any other project whose source files include this file see
|
|
// CTCL_API functions as being imported from a DLL, wheras this DLL sees symbols
|
|
// defined with this macro as being exported.
|
|
|
|
#define CTCL_API _stdcall
|
|
|
|
#if !defined(BOOL)
|
|
#define BOOL int
|
|
#if !defined(TRUE)
|
|
#define TRUE 1
|
|
#define FALSE 0
|
|
#endif // !defined(TRUE)
|
|
#endif // !defined(BOOL)
|
|
|
|
#pragma pack(push, 1)
|
|
#if !defined(CTCLS_EXPORTS)
|
|
class CInviteCOOP
|
|
{
|
|
public:
|
|
void* m_pParent;
|
|
|
|
int m_nTimeInvite;
|
|
int m_nResult; // 0: not inited, 1: requesting, 2: no, 3: yes...
|
|
int m_nResultAccepted;
|
|
GUID m_guidGameData;
|
|
public:
|
|
CInviteCOOP();
|
|
void Clear();
|
|
};
|
|
#endif // !defined(CTCLS_EXPORTS)
|
|
struct STeslaInfo
|
|
{
|
|
public:
|
|
BOOL m_bCameraShip;
|
|
unsigned long m_ulAddr;
|
|
const char* m_pcsz;
|
|
|
|
int m_nLauncherConnection; // 0: no connection, +1: connection, -1: connecting
|
|
int m_nConnection2; // m_bCameraShip값에 따라 게임 혹은 카메라 쉽과의 접속을 의미, 0: no connection, +1: connection, -1: connecting
|
|
int m_nApplType;
|
|
int m_nApplState;
|
|
int m_nGameState;
|
|
int m_nGameTime;
|
|
int m_nGameIsServer;
|
|
public:
|
|
};
|
|
|
|
#define MAX_PLYR_NAME 20
|
|
struct SPlayerInfo
|
|
{
|
|
public:
|
|
BYTE m_bBot;
|
|
BYTE m_bTeam;
|
|
int m_nLevelOrTesla;
|
|
char m_szName[MAX_PLYR_NAME];
|
|
UINT m_uPlayerID;
|
|
int m_nMechIndex;
|
|
short m_fileID;
|
|
WORD m_recordID;
|
|
char m_szMech[64];
|
|
int m_nTeamOrSkin;
|
|
int m_nDecal;
|
|
DWORD m_dwAddr;
|
|
};
|
|
#pragma pack(pop)
|
|
|
|
#define C_GameInfo 1 // Console 2 Launcher
|
|
#define S_GameInfo 1 // Launcher 2 Console
|
|
|
|
#define C_OrderAppl 10 // Console 2 Launcher
|
|
|
|
#define C_ErrorStartGame 19 // to server & client - error occurred, to mainmenu
|
|
#define C_ReadyStartGame 20 // to server - Game Server Start w/ HostSetup & Mission Params...
|
|
#define C_BOTS 21 // to server - Bot Infos
|
|
#define C_SetMechs 22 // to server & client -
|
|
#define C_GetReady 23 // to server & client -
|
|
#define C_DoLaunch 24 // to server
|
|
|
|
#define S_GameReturn 30 // game to console
|
|
|
|
#define C_SendFile 40
|
|
#define S_SendFile 40
|
|
|
|
#define C_InviteCOOP 50 // to server & client - invite clients
|
|
#define S_InviteCOOP 50 // to server & client - reply to server for invitation
|
|
|
|
class CTeslaInfo;
|
|
typedef CTeslaInfo* TESLA_HANDLE;
|
|
|
|
BOOL CTCL_API CTCL_Start(int nCTCLType);
|
|
void CTCL_API CTCL_Stop();
|
|
void CTCL_API CTCL_Run();
|
|
// Used by All
|
|
int CTCL_API CTCL_API CTCL_GetType();
|
|
BOOL CTCL_API CTCL_IsNone(); // no -ctcltype...
|
|
BOOL CTCL_API CTCL_IsConsole(); // Console Only
|
|
bool CTCL_API CTCL_IsCOOP(); // is COOP?
|
|
BOOL CTCL_API CTCL_IsConsoleOrCOOP(); // Console or COOP(COin OPerational)
|
|
BOOL CTCL_API CTCL_IsConsoleX(); // Game & Cameraship
|
|
// Used by Console(+ COOP)
|
|
int CTCL_API CTCL_GetTeslaCountAll();
|
|
int CTCL_API CTCL_GetTeslaCount();
|
|
TESLA_HANDLE CTCL_API CTCL_GetTeslaInfo(int nIndex, STeslaInfo& TI);
|
|
int CTCL_API CTCL_InviteCOOP(int nTimeInvite, int& nYes, int& nNo, int& nProcessings);
|
|
const char* CTCL_API CTCL_GetTeslaName(int nIndex);
|
|
int CTCL_API CTCL_OrderAppl(int nIndex, int nOrder, int nParam);
|
|
// Used by Launcher
|
|
// Used by Game
|
|
// Used by CameraShip
|
|
|
|
void CTCL_API CTCL_DoTerminateAppl();
|
|
void CTCL_API CTCL_DoEndMission();
|
|
void CTCL_API CTCL_DoMainShell();
|
|
void CTCL_API CTCL_DoCreateGame();
|
|
void CTCL_API CTCL_DoJoinGame();
|
|
void CTCL_API CTCL_StartGame(BOOL bRealLaunch);
|
|
void CTCL_API CTCL_InitMechDatas();
|
|
void CTCL_API CTCL_CheckJoinGame();
|
|
void CTCL_API CTCL_CheckNetConnectedToServer();
|
|
void CTCL_API CTCL_SetMissionParams();
|
|
void CTCL_API CTCL_CheckMissionParams();
|
|
void CTCL_API CTCL_SetMechs();
|
|
void CTCL_API CTCL_CheckClientReady();
|
|
void CTCL_API CTCL_CheckServerReady();
|
|
void CTCL_API CTCL_DefaultHostSetup(int nMode);
|
|
// from here - Mech4 only
|
|
void CTCL_API CTCL_DoSendGameReturn(int nValue);
|
|
void CTCL_API CTCL_SaveNMP(const void* p, int nSize);
|
|
void* CTCL_API CTCL_LoadNMP(int& nSize);
|
|
void CTCL_API CTCL_SendFile(const SYSTEMTIME& SysTime, const GUID& guid, int nType);
|
|
bool CTCL_API CTCL_DoReprintOrCheck(bool bRealPrint);
|
|
void CTCL_API CTCL_SetGameStateAsIdle();
|
|
// to here - Mech4 only
|
|
|
|
extern "C" {
|
|
extern int g_nCTCLType;
|
|
|
|
extern int g_nCTCL_DoLaunchGame;
|
|
#if !defined(CTCLS_EXPORTS)
|
|
extern CInviteCOOP g_InviteCOOP;
|
|
// console only...
|
|
// Mech4 only
|
|
extern int g_nMech4Comm;
|
|
// server & client only
|
|
extern BOOL g_bIsServer;
|
|
// console(All), server & client only(g_aPlayerInfos[0]), server only(g_aPlayerInfos[1..g_nBOTs]
|
|
extern SPlayerInfo g_aPlayerInfos[20];
|
|
extern int g_nPlayerInfos;
|
|
extern int g_nServer;
|
|
extern int g_nTeslas;
|
|
extern int g_nPrintOut;
|
|
extern int g_nMissionReview;
|
|
extern SYSTEMTIME g_SysTime;
|
|
extern GUID g_guidGameDatas;
|
|
// Tesla Server & Clients only
|
|
extern char g_szGameName[128];
|
|
extern int g_nBOTs;
|
|
|
|
extern DWORD g_dwJoinStartTicks;
|
|
#endif // !defined(CTCLS_EXPORTS)
|
|
|
|
extern const char PROF_INI[];
|
|
extern const char SECT_TESLAS[];
|
|
extern const char SECT_GAMES[];
|
|
extern const char SECT_CONFIG[];
|
|
} // end of extern "C"
|
|
|
|
#endif // !defined(__CTCL_H__)
|