diff --git a/code/fgame/g_public.h b/code/fgame/g_public.h index 33bcb542..2729efaa 100644 --- a/code/fgame/g_public.h +++ b/code/fgame/g_public.h @@ -238,7 +238,10 @@ typedef struct gameImport_s { void (*Error)(int level, const char *format, ...); int (*Milliseconds)(); const char *(*LV_ConvertString)(const char *string); + + // Added in 2.0 const char *(*CL_LV_ConvertString)(const char *string); + void *(*Malloc)(size_t size); void (*Free)(void *ptr); cvar_t *(*Cvar_Get)(const char *varName, const char *varValue, int varFlags); @@ -267,7 +270,10 @@ typedef struct gameImport_s { void (*FS_FreeFileList)(char **list); const char *(*GetArchiveFileName)(const char *fileName, const char *extension); void (*SendConsoleCommand)(const char *text); + + // Added in 2.0 void (*ExecuteConsoleCommand)(int exec_when, const char *text); + void (*DebugGraph)(float value); void (*SendServerCommand)(int client, const char *format, ...); void (*DropClient)(int client, const char *reason); @@ -325,7 +331,10 @@ typedef struct gameImport_s { qboolean cylinder, qboolean traceDeep ); + + // Added in 2.0 float (*CM_VisualObfuscation)(const vec3_t start, const vec3_t end); + baseshader_t *(*GetShader)(int shaderNum); int (*pointcontents)(const vec3_t p, int passEntityNum); int (*PointBrushnum)(const vec3_t p, clipHandle_t model); @@ -345,7 +354,10 @@ typedef struct gameImport_s { int entityNum, int contentMask ); + + // Added in 2.0 qboolean (*HitEntity)(gentity_t *pEnt, gentity_t *pOther); + int (*imageindex)(const char *name); int (*itemindex)(const char *name); int (*soundindex)(const char *name, int streamed); @@ -369,9 +381,16 @@ typedef struct gameImport_s { float (*Anim_Frametime)(dtiki_t *tiki, int animNum); float (*Anim_CrossTime)(dtiki_t *tiki, int animNum); void (*Anim_Delta)(dtiki_t *tiki, int animNum, float *delta); + + // Added in 2.0 + void (*Anim_AngularDelta)(dtiki_t *tiki, int animNum, float *delta); + qboolean (*Anim_HasDelta)(dtiki_t *tiki, int animNum); void (*Anim_DeltaOverTime)(dtiki_t *tiki, int animNum, float time1, float time2, float *delta); + + // Added in 2.0 void (*Anim_AngularDeltaOverTime)(dtiki_t *tiki, int animNum, float time1, float time2, float *delta); + int (*Anim_Flags)(dtiki_t *tiki, int animNum); int (*Anim_FlagsSkel)(dtiki_t *tiki, int animNum); qboolean (*Anim_HasCommands)(dtiki_t *tiki, int animNum); diff --git a/code/server/sv_game.c b/code/server/sv_game.c index 22cc5c90..3934f9b0 100644 --- a/code/server/sv_game.c +++ b/code/server/sv_game.c @@ -777,6 +777,20 @@ void PF_Anim_Delta( dtiki_t *tiki, int animnum, vec3_t delta ) TIKI_Anim_Delta( tiki, animnum, delta ); } +/* +=============== +PF_Anim_AngularDelta +=============== +*/ +void PF_Anim_AngularDelta(dtiki_t* tiki, int animnum, vec3_t delta) +{ + if (!tiki) { + return; + } + + TIKI_Anim_AngularDelta(tiki, animnum, delta); +} + /* =============== PF_Anim_HasDelta @@ -1806,6 +1820,7 @@ void SV_InitGameProgs( void ) { import.Anim_Frametime = PF_Anim_Frametime; import.Anim_CrossTime = PF_Cross_Time; import.Anim_Delta = PF_Anim_Delta; + import.Anim_AngularDelta = PF_Anim_AngularDelta; import.Anim_HasDelta = PF_Anim_HasDelta; import.Anim_DeltaOverTime = PF_Anim_DeltaOverTime; import.Anim_AngularDeltaOverTime = PF_Anim_AngularDeltaOverTime; diff --git a/code/tiki/tiki_anim.cpp b/code/tiki/tiki_anim.cpp index 468a9740..42f2c20a 100644 --- a/code/tiki/tiki_anim.cpp +++ b/code/tiki/tiki_anim.cpp @@ -319,6 +319,29 @@ void TIKI_Anim_Delta(dtiki_t *pmdl, int animnum, float *delta) VectorScale(animData->totalDelta, pmdl->load_scale, delta); } +/* +=============== +TIKI_Anim_AngularDelta + +Added in 2.0 +=============== +*/ +void TIKI_Anim_AngularDelta(dtiki_t *pmdl, int animnum, float *delta) +{ + if (!pmdl) { + *delta = 0; + return; + } + + if (!pmdl->a || animnum < 0 || animnum >= pmdl->a->num_anims) { + *delta = 0; + return; + } + + skelAnimDataGameHeader_t *animData = SkeletorCacheGetData(pmdl->a->m_aliases[animnum]); + *delta = animData->totalAngleDelta; +} + /* =============== TIKI_Anim_HasDelta diff --git a/code/tiki/tiki_anim.h b/code/tiki/tiki_anim.h index 368d5a40..7c10c0e5 100644 --- a/code/tiki/tiki_anim.h +++ b/code/tiki/tiki_anim.h @@ -36,6 +36,7 @@ extern "C" { float TIKI_Anim_Time(dtiki_t *pmdl, int animnum); float TIKI_Anim_Frametime(dtiki_t *pmdl, int animnum); void TIKI_Anim_Delta(dtiki_t *pmdl, int animnum, float *delta); + void TIKI_Anim_AngularDelta(dtiki_t *pmdl, int animnum, float *delta); qboolean TIKI_Anim_HasDelta(dtiki_t *pmdl, int animnum); void TIKI_Anim_DeltaOverTime(dtiki_t *pTiki, int iAnimnum, float fTime1, float fTime2, vec3_t vDelta); void TIKI_Anim_AngularDeltaOverTime(dtiki_t *pTiki, int iAnimnum, float fTime1, float fTime2, float *fDelta);