5 * Copyright (c) 2001-2003 Will Day <willday@hpgx.net>
7 * This file is part of Metamod.
9 * Metamod is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at
12 * your option) any later version.
14 * Metamod is distributed in the hope that it will be useful, but
15 * WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with Metamod; if not, write to the Free Software Foundation,
21 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 * In addition, as a special exception, the author gives permission to
24 * link the code of this program with the Half-Life Game Engine ("HL
25 * Engine") and Modified Game Libraries ("MODs") developed by Valve,
26 * L.L.C ("Valve"). You must obey the GNU General Public License in all
27 * respects for all of the code used other than the HL Engine and MODs
28 * from Valve. If you modify this file, you may extend this exception
29 * to your version of the file, but you are not obligated to do so. If
30 * you do not wish to do so, delete this exception statement from your
39 enginefuncs_t meta_engfuncs
=
41 NULL
, // pfnPrecacheModel()
42 NULL
, // pfnPrecacheSound()
43 NULL
, // pfnSetModel()
44 NULL
, // pfnModelIndex()
45 NULL
, // pfnModelFrames()
48 NULL
, // pfnChangeLevel()
49 NULL
, // pfnGetSpawnParms()
50 NULL
, // pfnSaveSpawnParms()
52 NULL
, // pfnVecToYaw()
53 NULL
, // pfnVecToAngles()
54 NULL
, // pfnMoveToOrigin()
55 NULL
, // pfnChangeYaw()
56 NULL
, // pfnChangePitch()
58 NULL
, // pfnFindEntityByString()
59 NULL
, // pfnGetEntityIllum()
60 NULL
, // pfnFindEntityInSphere()
61 NULL
, // pfnFindClientInPVS()
62 NULL
, // pfnEntitiesInPVS()
64 NULL
, // pfnMakeVectors()
65 NULL
, // pfnAngleVectors()
67 NULL
, // pfnCreateEntity()
68 NULL
, // pfnRemoveEntity()
69 NULL
, // pfnCreateNamedEntity()
71 NULL
, // pfnMakeStatic()
72 NULL
, // pfnEntIsOnFloor()
73 NULL
, // pfnDropToFloor()
75 NULL
, // pfnWalkMove()
76 NULL
, // pfnSetOrigin()
78 NULL
, // pfnEmitSound()
79 NULL
, // pfnEmitAmbientSound()
81 NULL
, // pfnTraceLine()
82 NULL
, // pfnTraceToss()
83 NULL
, // pfnTraceMonsterHull()
84 NULL
, // pfnTraceHull()
85 NULL
, // pfnTraceModel()
86 NULL
, // pfnTraceTexture()
87 NULL
, // pfnTraceSphere()
88 NULL
, // pfnGetAimVector()
90 NULL
, // pfnServerCommand()
91 NULL
, // pfnServerExecute()
92 NULL
, // pfnClientCommand()
94 NULL
, // pfnParticleEffect()
95 NULL
, // pfnLightStyle()
96 NULL
, // pfnDecalIndex()
97 NULL
, // pfnPointContents()
99 NULL
, // pfnMessageBegin()
100 NULL
, // pfnMessageEnd()
102 NULL
, // pfnWriteByte()
103 NULL
, // pfnWriteChar()
104 NULL
, // pfnWriteShort()
105 NULL
, // pfnWriteLong()
106 NULL
, // pfnWriteAngle()
107 NULL
, // pfnWriteCoord()
108 NULL
, // pfnWriteString()
109 NULL
, // pfnWriteEntity()
111 NULL
, // pfnCVarRegister()
112 NULL
, // pfnCVarGetFloat()
113 NULL
, // pfnCVarGetString()
114 NULL
, // pfnCVarSetFloat()
115 NULL
, // pfnCVarSetString()
117 NULL
, // pfnAlertMessage()
118 NULL
, // pfnEngineFprintf()
120 NULL
, // pfnPvAllocEntPrivateData()
121 NULL
, // pfnPvEntPrivateData()
122 NULL
, // pfnFreeEntPrivateData()
124 NULL
, // pfnSzFromIndex()
125 NULL
, // pfnAllocString()
127 NULL
, // pfnGetVarsOfEnt()
128 NULL
, // pfnPEntityOfEntOffset()
129 NULL
, // pfnEntOffsetOfPEntity()
130 NULL
, // pfnIndexOfEdict()
131 NULL
, // pfnPEntityOfEntIndex()
132 NULL
, // pfnFindEntityByVars()
133 NULL
, // pfnGetModelPtr()
135 NULL
, // pfnRegUserMsg()
137 NULL
, // pfnAnimationAutomove()
138 NULL
, // pfnGetBonePosition()
140 NULL
, // pfnFunctionFromName()
141 NULL
, // pfnNameForFunction()
143 NULL
, // pfnClientPrintf()
144 NULL
, // pfnServerPrint()
146 NULL
, // pfnCmd_Args()
147 NULL
, // pfnCmd_Argv()
148 NULL
, // pfnCmd_Argc()
150 NULL
, // pfnGetAttachment()
152 NULL
, // pfnCRC32_Init()
153 NULL
, // pfnCRC32_ProcessBuffer()
154 NULL
, // pfnCRC32_ProcessByte()
155 NULL
, // pfnCRC32_Final()
157 NULL
, // pfnRandomLong()
158 NULL
, // pfnRandomFloat()
160 NULL
, // pfnSetView()
162 NULL
, // pfnCrosshairAngle()
164 NULL
, // pfnLoadFileForMe()
165 NULL
, // pfnFreeFile()
167 NULL
, // pfnEndSection()
168 NULL
, // pfnCompareFileTime()
169 NULL
, // pfnGetGameDir()
170 NULL
, // pfnCvar_RegisterVariable()
171 NULL
, // pfnFadeClientVolume()
172 NULL
, // pfnSetClientMaxspeed()
173 NULL
, // pfnCreateFakeClient()
174 NULL
, // pfnRunPlayerMove()
175 NULL
, // pfnNumberOfEntities()
177 NULL
, // pfnGetInfoKeyBuffer()
178 NULL
, // pfnInfoKeyValue()
179 NULL
, // pfnSetKeyValue()
180 NULL
, // pfnSetClientKeyValue()
182 NULL
, // pfnIsMapValid()
183 NULL
, // pfnStaticDecal()
184 NULL
, // pfnPrecacheGeneric()
185 NULL
, // pfnGetPlayerUserId()
186 NULL
, // pfnBuildSoundMsg()
187 NULL
, // pfnIsDedicatedServer()
188 NULL
, // pfnCVarGetPointer()
189 NULL
, // pfnGetPlayerWONId()
191 NULL
, // pfnInfo_RemoveKey()
192 NULL
, // pfnGetPhysicsKeyValue()
193 NULL
, // pfnSetPhysicsKeyValue()
194 NULL
, // pfnGetPhysicsInfoString()
195 NULL
, // pfnPrecacheEvent()
196 NULL
, // pfnPlaybackEvent()
198 NULL
, // pfnSetFatPVS()
199 NULL
, // pfnSetFatPAS()
201 NULL
, // pfnCheckVisibility()
203 NULL
, // pfnDeltaSetField()
204 NULL
, // pfnDeltaUnsetField()
205 NULL
, // pfnDeltaAddEncoder()
206 NULL
, // pfnGetCurrentPlayer()
207 NULL
, // pfnCanSkipPlayer()
208 NULL
, // pfnDeltaFindField()
209 NULL
, // pfnDeltaSetFieldByIndex()
210 NULL
, // pfnDeltaUnsetFieldByIndex()
212 NULL
, // pfnSetGroupMask()
214 NULL
, // pfnCreateInstancedBaseline()
215 NULL
, // pfnCvar_DirectSet()
217 NULL
, // pfnForceUnmodified()
219 NULL
, // pfnGetPlayerStats()
221 NULL
, // pfnAddServerCommand()
224 NULL
, // pfnVoice_GetClientListening()
225 NULL
, // pfnVoice_SetClientListening()
227 // Added for HL 1109 (no SDK update):
228 NULL
, // pfnGetPlayerAuthId()
230 // Added 2003-11-10 (no SDK update):
231 NULL
, // pfnSequenceGet()
232 NULL
, // pfnSequencePickSentence()
233 NULL
, // pfnGetFileSize()
234 NULL
, // pfnGetApproxWavePlayLen()
235 NULL
, // pfnIsCareerMatch()
236 NULL
, // pfnGetLocalizedStringLength()
237 NULL
, // pfnRegisterTutorMessageShown()
238 NULL
, // pfnGetTimesTutorMessageShown()
239 NULL
, // pfnProcessTutorMessageDecayBuffer()
240 NULL
, // pfnConstructTutorMessageDecayBuffer()
241 NULL
, // pfnResetTutorMessageDecayData()
243 // Added Added 2005-08-11 (no SDK update)
244 NULL
, // pfnQueryClientCvarValue()
245 // Added Added 2005-11-22 (no SDK update)
246 NULL
, // pfnQueryClientCvarValue2()
249 C_DLLEXPORT
int GetEngineFunctions(enginefuncs_t
*pengfuncsFromEngine
,
250 int *interfaceVersion
)
252 if(!pengfuncsFromEngine
) {
253 UTIL_LogPrintf("GetEngineFunctions called with null pengfuncsFromEngine");
256 else if(*interfaceVersion
!= ENGINE_INTERFACE_VERSION
) {
257 UTIL_LogPrintf("GetEngineFunctions version mismatch; requested=%d ours=%d", *interfaceVersion
, ENGINE_INTERFACE_VERSION
);
258 // Tell metamod what version we had, so it can figure out who is out of date.
259 *interfaceVersion
= ENGINE_INTERFACE_VERSION
;
262 memcpy(pengfuncsFromEngine
, &meta_engfuncs
, sizeof(enginefuncs_t
));