Add Anim_AngularDelta

This commit is contained in:
smallmodel 2024-11-08 19:32:53 +01:00
parent b8cc3313b1
commit c2291e92c4
No known key found for this signature in database
GPG key ID: 9F2D623CEDF08512
4 changed files with 58 additions and 0 deletions

View file

@ -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);

View file

@ -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;

View file

@ -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

View file

@ -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);