2015-11-01 04:50:24 +06:00
|
|
|
#include "precompiled.h"
|
|
|
|
|
|
|
|
DLL_FUNCTIONS *g_pFunctionTable;
|
|
|
|
|
2015-11-09 00:38:31 +06:00
|
|
|
extern void ServerDeactivate_Post();
|
|
|
|
extern void ClientPutInServer_Post(edict_t *pEntity);
|
2015-11-15 00:35:29 +06:00
|
|
|
extern void StartFrame();
|
2015-11-01 04:50:24 +06:00
|
|
|
|
2015-11-09 00:38:31 +06:00
|
|
|
static DLL_FUNCTIONS gFunctionTable =
|
2015-11-01 04:50:24 +06:00
|
|
|
{
|
|
|
|
NULL, // pfnGameInit
|
|
|
|
NULL, // pfnSpawn
|
|
|
|
NULL, // pfnThink
|
|
|
|
NULL, // pfnUse
|
|
|
|
NULL, // pfnTouch
|
|
|
|
NULL, // pfnBlocked
|
|
|
|
NULL, // pfnKeyValue
|
|
|
|
NULL, // pfnSave
|
|
|
|
NULL, // pfnRestore
|
|
|
|
NULL, // pfnSetAbsBox
|
|
|
|
|
|
|
|
NULL, // pfnSaveWriteFields
|
|
|
|
NULL, // pfnSaveReadFields
|
|
|
|
|
|
|
|
NULL, // pfnSaveGlobalState
|
|
|
|
NULL, // pfnRestoreGlobalState
|
|
|
|
NULL, // pfnResetGlobalState
|
|
|
|
|
2015-11-09 00:38:31 +06:00
|
|
|
NULL, // pfnClientConnect
|
2016-01-08 20:09:39 +06:00
|
|
|
NULL, // pfnClientDisconnect
|
2015-11-01 04:50:24 +06:00
|
|
|
NULL, // pfnClientKill
|
|
|
|
NULL, // pfnClientPutInServer
|
|
|
|
NULL, // pfnClientCommand
|
|
|
|
NULL, // pfnClientUserInfoChanged
|
2015-11-09 00:38:31 +06:00
|
|
|
NULL, // pfnServerActivate
|
2015-11-01 04:50:24 +06:00
|
|
|
NULL, // pfnServerDeactivate
|
|
|
|
|
|
|
|
NULL, // pfnPlayerPreThink
|
|
|
|
NULL, // pfnPlayerPostThink
|
|
|
|
|
|
|
|
NULL, // pfnStartFrame
|
|
|
|
NULL, // pfnParmsNewLevel
|
|
|
|
NULL, // pfnParmsChangeLevel
|
|
|
|
|
|
|
|
NULL, // pfnGetGameDescription
|
|
|
|
NULL, // pfnPlayerCustomization
|
|
|
|
|
|
|
|
NULL, // pfnSpectatorConnect
|
|
|
|
NULL, // pfnSpectatorDisconnect
|
|
|
|
NULL, // pfnSpectatorThink
|
|
|
|
|
|
|
|
NULL, // pfnSys_Error
|
|
|
|
|
|
|
|
NULL, // pfnPM_Move
|
|
|
|
NULL, // pfnPM_Init
|
|
|
|
NULL, // pfnPM_FindTextureType
|
|
|
|
|
|
|
|
NULL, // pfnSetupVisibility
|
|
|
|
NULL, // pfnUpdateClientData
|
|
|
|
NULL, // pfnAddToFullPack
|
|
|
|
NULL, // pfnCreateBaseline
|
|
|
|
NULL, // pfnRegisterEncoders
|
|
|
|
NULL, // pfnGetWeaponData
|
|
|
|
NULL, // pfnCmdStart
|
|
|
|
NULL, // pfnCmdEnd
|
|
|
|
NULL, // pfnConnectionlessPacket
|
|
|
|
NULL, // pfnGetHullBounds
|
|
|
|
NULL, // pfnCreateInstancedBaselines
|
|
|
|
NULL, // pfnInconsistentFile
|
|
|
|
NULL, // pfnAllowLagCompensation
|
|
|
|
};
|
|
|
|
|
2015-11-09 00:38:31 +06:00
|
|
|
static DLL_FUNCTIONS gFunctionTable_Post =
|
|
|
|
{
|
|
|
|
NULL, // pfnGameInit
|
|
|
|
NULL, // pfnSpawn
|
|
|
|
NULL, // pfnThink
|
|
|
|
NULL, // pfnUse
|
|
|
|
NULL, // pfnTouch
|
|
|
|
NULL, // pfnBlocked
|
|
|
|
NULL, // pfnKeyValue
|
|
|
|
NULL, // pfnSave
|
|
|
|
NULL, // pfnRestore
|
|
|
|
NULL, // pfnSetAbsBox
|
|
|
|
|
|
|
|
NULL, // pfnSaveWriteFields
|
|
|
|
NULL, // pfnSaveReadFields
|
|
|
|
|
|
|
|
NULL, // pfnSaveGlobalState
|
|
|
|
NULL, // pfnRestoreGlobalState
|
|
|
|
NULL, // pfnResetGlobalState
|
|
|
|
|
2015-11-13 05:01:02 +06:00
|
|
|
NULL, // pfnClientConnect
|
2015-11-09 00:38:31 +06:00
|
|
|
NULL, // pfnClientDisconnect
|
|
|
|
NULL, // pfnClientKill
|
|
|
|
&ClientPutInServer_Post, // pfnClientPutInServer
|
|
|
|
NULL, // pfnClientCommand
|
|
|
|
NULL, // pfnClientUserInfoChanged
|
2015-11-13 05:01:02 +06:00
|
|
|
NULL, // pfnServerActivate
|
2015-11-09 00:38:31 +06:00
|
|
|
&ServerDeactivate_Post, // pfnServerDeactivate
|
|
|
|
|
|
|
|
NULL, // pfnPlayerPreThink
|
|
|
|
NULL, // pfnPlayerPostThink
|
|
|
|
|
|
|
|
NULL, // pfnStartFrame
|
|
|
|
NULL, // pfnParmsNewLevel
|
|
|
|
NULL, // pfnParmsChangeLevel
|
|
|
|
|
|
|
|
NULL, // pfnGetGameDescription
|
|
|
|
NULL, // pfnPlayerCustomization
|
|
|
|
|
|
|
|
NULL, // pfnSpectatorConnect
|
|
|
|
NULL, // pfnSpectatorDisconnect
|
|
|
|
NULL, // pfnSpectatorThink
|
|
|
|
|
|
|
|
NULL, // pfnSys_Error
|
|
|
|
|
|
|
|
NULL, // pfnPM_Move
|
|
|
|
NULL, // pfnPM_Init
|
|
|
|
NULL, // pfnPM_FindTextureType
|
|
|
|
|
|
|
|
NULL, // pfnSetupVisibility
|
|
|
|
NULL, // pfnUpdateClientData
|
|
|
|
NULL, // pfnAddToFullPack
|
|
|
|
NULL, // pfnCreateBaseline
|
|
|
|
NULL, // pfnRegisterEncoders
|
|
|
|
NULL, // pfnGetWeaponData
|
|
|
|
NULL, // pfnCmdStart
|
|
|
|
NULL, // pfnCmdEnd
|
|
|
|
NULL, // pfnConnectionlessPacket
|
|
|
|
NULL, // pfnGetHullBounds
|
|
|
|
NULL, // pfnCreateInstancedBaselines
|
|
|
|
NULL, // pfnInconsistentFile
|
|
|
|
NULL, // pfnAllowLagCompensation
|
|
|
|
};
|
|
|
|
|
|
|
|
C_DLLEXPORT int GetEntityAPI2(DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion)
|
|
|
|
{
|
|
|
|
if (!pFunctionTable)
|
|
|
|
{
|
|
|
|
ALERT(at_logged, __FUNCTION__ " called with null pFunctionTable");
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
else if (*interfaceVersion != INTERFACE_VERSION)
|
|
|
|
{
|
|
|
|
ALERT(at_logged, __FUNCTION__ " version mismatch; requested=%d ours=%d", *interfaceVersion, INTERFACE_VERSION);
|
|
|
|
|
|
|
|
//! Tell metamod what version we had, so it can figure out who is out of date.
|
|
|
|
*interfaceVersion = INTERFACE_VERSION;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
memcpy(pFunctionTable, &gFunctionTable, sizeof(DLL_FUNCTIONS));
|
|
|
|
g_pFunctionTable = pFunctionTable;
|
|
|
|
|
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
2015-11-01 04:50:24 +06:00
|
|
|
C_DLLEXPORT int GetEntityAPI2_Post(DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion)
|
|
|
|
{
|
|
|
|
if (!pFunctionTable)
|
|
|
|
{
|
|
|
|
ALERT(at_logged, __FUNCTION__ " called with null pFunctionTable");
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
else if (*interfaceVersion != INTERFACE_VERSION)
|
|
|
|
{
|
|
|
|
ALERT(at_logged, __FUNCTION__ " version mismatch; requested=%d ours=%d", *interfaceVersion, INTERFACE_VERSION);
|
|
|
|
|
|
|
|
//! Tell metamod what version we had, so it can figure out who is out of date.
|
|
|
|
*interfaceVersion = INTERFACE_VERSION;
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
memcpy(pFunctionTable, &gFunctionTable_Post, sizeof(DLL_FUNCTIONS));
|
|
|
|
g_pFunctionTable = pFunctionTable;
|
|
|
|
|
|
|
|
return TRUE;
|
|
|
|
}
|