NS/dev/tankefugl/source/engine/APIProxy.h

178 lines
10 KiB
C

// ********************************************************
// Functions exported by the client .dll
// ********************************************************
// Function type declarations for client exports
typedef int ( *INITIALIZE_FUNC )( struct cl_enginefuncs_s*, int );
typedef void ( *HUD_INIT_FUNC )( void );
typedef int ( *HUD_VIDINIT_FUNC )( void );
typedef int ( *HUD_REDRAW_FUNC )( float, int );
typedef int ( *HUD_UPDATECLIENTDATA_FUNC )( struct client_data_s*, float );
typedef void ( *HUD_RESET_FUNC )( void );
typedef void ( *HUD_CLIENTMOVE_FUNC )( struct playermove_s *ppmove, qboolean server );
typedef void ( *HUD_CLIENTMOVEINIT_FUNC )( struct playermove_s *ppmove );
typedef char ( *HUD_TEXTURETYPE_FUNC )( char *name );
typedef void ( *HUD_IN_ACTIVATEMOUSE_FUNC )( void );
typedef void ( *HUD_IN_DEACTIVATEMOUSE_FUNC )( void );
typedef void ( *HUD_IN_MOUSEEVENT_FUNC )( int mstate );
typedef void ( *HUD_IN_CLEARSTATES_FUNC )( void );
typedef void ( *HUD_IN_ACCUMULATE_FUNC )( void );
typedef void ( *HUD_CL_CREATEMOVE_FUNC )( float frametime, struct usercmd_s *cmd, int active );
typedef int ( *HUD_CL_ISTHIRDPERSON_FUNC )( void );
typedef void ( *HUD_CL_GETCAMERAOFFSETS_FUNC )( float *ofs );
typedef struct kbutton_s * ( *HUD_KB_FIND_FUNC )( const char *name );
typedef void ( *HUD_CAMTHINK_FUNC )( void );
typedef void ( *HUD_CALCREF_FUNC )( struct ref_params_s *pparams );
typedef int ( *HUD_ADDENTITY_FUNC )( int type, struct cl_entity_s *ent, const char *modelname );
typedef void ( *HUD_CREATEENTITIES_FUNC )( void );
typedef void ( *HUD_DRAWNORMALTRIS_FUNC )( void );
typedef void ( *HUD_DRAWTRANSTRIS_FUNC )( void );
typedef void ( *HUD_STUDIOEVENT_FUNC )( const struct mstudioevent_s *event, const struct cl_entity_s *entity );
typedef void ( *HUD_POSTRUNCMD_FUNC )( struct local_state_s *from, struct local_state_s *to, struct usercmd_s *cmd, int runfuncs, double time, unsigned int random_seed );
typedef void ( *HUD_SHUTDOWN_FUNC )( void );
typedef void ( *HUD_TXFERLOCALOVERRIDES_FUNC )( struct entity_state_s *state, const struct clientdata_s *client );
typedef void ( *HUD_PROCESSPLAYERSTATE_FUNC )( struct entity_state_s *dst, const struct entity_state_s *src );
typedef void ( *HUD_TXFERPREDICTIONDATA_FUNC )( struct entity_state_s *ps, const struct entity_state_s *pps, struct clientdata_s *pcd, const struct clientdata_s *ppcd, struct weapon_data_s *wd, const struct weapon_data_s *pwd );
typedef void ( *HUD_DEMOREAD_FUNC )( int size, unsigned char *buffer );
typedef int ( *HUD_CONNECTIONLESS_FUNC )( const struct netadr_s *net_from, const char *args, char *response_buffer, int *response_buffer_size );
typedef int ( *HUD_GETHULLBOUNDS_FUNC )( int hullnumber, float *mins, float *maxs );
typedef void ( *HUD_FRAME_FUNC)( double );
typedef int ( *HUD_KEY_EVENT_FUNC )( int eventcode, int keynum, const char *pszCurrentBinding );
typedef void ( *HUD_TEMPENTUPDATE_FUNC )( double frametime, double client_time, double cl_gravity, struct tempent_s **ppTempEntFree, struct tempent_s **ppTempEntActive, int ( *Callback_AddVisibleEntity )( struct cl_entity_s *pEntity ), void ( *Callback_TempEntPlaySound )( struct tempent_s *pTemp, float damp ) );
typedef struct cl_entity_s *( *HUD_GETUSERENTITY_FUNC )( int index );
typedef void ( *HUD_VOICESTATUS_FUNC )( int entindex, qboolean bTalking );
typedef void ( *HUD_DIRECTOREVENT_FUNC )( int iSize, void *pbuf );
typedef int ( *HUD_STUDIO_INTERFACE_FUNC )( int version, struct r_studio_interface_s **ppinterface, struct engine_studio_api_s *pstudio );
// Pointers to the exported client functions themselves
typedef struct
{
INITIALIZE_FUNC pInitFunc;
HUD_INIT_FUNC pHudInitFunc;
HUD_VIDINIT_FUNC pHudVidInitFunc;
HUD_REDRAW_FUNC pHudRedrawFunc;
HUD_UPDATECLIENTDATA_FUNC pHudUpdateClientDataFunc;
HUD_RESET_FUNC pHudResetFunc;
HUD_CLIENTMOVE_FUNC pClientMove;
HUD_CLIENTMOVEINIT_FUNC pClientMoveInit;
HUD_TEXTURETYPE_FUNC pClientTextureType;
HUD_IN_ACTIVATEMOUSE_FUNC pIN_ActivateMouse;
HUD_IN_DEACTIVATEMOUSE_FUNC pIN_DeactivateMouse;
HUD_IN_MOUSEEVENT_FUNC pIN_MouseEvent;
HUD_IN_CLEARSTATES_FUNC pIN_ClearStates;
HUD_IN_ACCUMULATE_FUNC pIN_Accumulate;
HUD_CL_CREATEMOVE_FUNC pCL_CreateMove;
HUD_CL_ISTHIRDPERSON_FUNC pCL_IsThirdPerson;
HUD_CL_GETCAMERAOFFSETS_FUNC pCL_GetCameraOffsets;
HUD_KB_FIND_FUNC pFindKey;
HUD_CAMTHINK_FUNC pCamThink;
HUD_CALCREF_FUNC pCalcRefdef;
HUD_ADDENTITY_FUNC pAddEntity;
HUD_CREATEENTITIES_FUNC pCreateEntities;
HUD_DRAWNORMALTRIS_FUNC pDrawNormalTriangles;
HUD_DRAWTRANSTRIS_FUNC pDrawTransparentTriangles;
HUD_STUDIOEVENT_FUNC pStudioEvent;
HUD_POSTRUNCMD_FUNC pPostRunCmd;
HUD_SHUTDOWN_FUNC pShutdown;
HUD_TXFERLOCALOVERRIDES_FUNC pTxferLocalOverrides;
HUD_PROCESSPLAYERSTATE_FUNC pProcessPlayerState;
HUD_TXFERPREDICTIONDATA_FUNC pTxferPredictionData;
HUD_DEMOREAD_FUNC pReadDemoBuffer;
HUD_CONNECTIONLESS_FUNC pConnectionlessPacket;
HUD_GETHULLBOUNDS_FUNC pGetHullBounds;
HUD_FRAME_FUNC pHudFrame;
HUD_KEY_EVENT_FUNC pKeyEvent;
HUD_TEMPENTUPDATE_FUNC pTempEntUpdate;
HUD_GETUSERENTITY_FUNC pGetUserEntity;
HUD_VOICESTATUS_FUNC pVoiceStatus;
HUD_DIRECTOREVENT_FUNC pDirectorMessage;
HUD_STUDIO_INTERFACE_FUNC pStudioInterface;
} cldll_func_t;
// Function type declarations for client destination functions
typedef void ( *DST_INITIALIZE_FUNC )( struct cl_enginefuncs_s**, int *);
typedef void ( *DST_HUD_INIT_FUNC )( void );
typedef void ( *DST_HUD_VIDINIT_FUNC )( void );
typedef void ( *DST_HUD_REDRAW_FUNC )( float*, int* );
typedef void ( *DST_HUD_UPDATECLIENTDATA_FUNC )( struct client_data_s**, float* );
typedef void ( *DST_HUD_RESET_FUNC )( void );
typedef void ( *DST_HUD_CLIENTMOVE_FUNC )( struct playermove_s **, qboolean * );
typedef void ( *DST_HUD_CLIENTMOVEINIT_FUNC )( struct playermove_s ** );
typedef void ( *DST_HUD_TEXTURETYPE_FUNC )( char ** );
typedef void ( *DST_HUD_IN_ACTIVATEMOUSE_FUNC )( void );
typedef void ( *DST_HUD_IN_DEACTIVATEMOUSE_FUNC )( void );
typedef void ( *DST_HUD_IN_MOUSEEVENT_FUNC )( int * );
typedef void ( *DST_HUD_IN_CLEARSTATES_FUNC )( void );
typedef void ( *DST_HUD_IN_ACCUMULATE_FUNC )( void );
typedef void ( *DST_HUD_CL_CREATEMOVE_FUNC )( float *, struct usercmd_s **, int * );
typedef void ( *DST_HUD_CL_ISTHIRDPERSON_FUNC )( void );
typedef void ( *DST_HUD_CL_GETCAMERAOFFSETS_FUNC )( float ** );
typedef void ( *DST_HUD_KB_FIND_FUNC )( const char ** );
typedef void ( *DST_HUD_CAMTHINK_FUNC )( void );
typedef void ( *DST_HUD_CALCREF_FUNC )( struct ref_params_s ** );
typedef void ( *DST_HUD_ADDENTITY_FUNC )( int *, struct cl_entity_s **, const char ** );
typedef void ( *DST_HUD_CREATEENTITIES_FUNC )( void );
typedef void ( *DST_HUD_DRAWNORMALTRIS_FUNC )( void );
typedef void ( *DST_HUD_DRAWTRANSTRIS_FUNC )( void );
typedef void ( *DST_HUD_STUDIOEVENT_FUNC )( const struct mstudioevent_s **, const struct cl_entity_s ** );
typedef void ( *DST_HUD_POSTRUNCMD_FUNC )( struct local_state_s **, struct local_state_s **, struct usercmd_s **, int *, double *, unsigned int * );
typedef void ( *DST_HUD_SHUTDOWN_FUNC )( void );
typedef void ( *DST_HUD_TXFERLOCALOVERRIDES_FUNC )( struct entity_state_s **, const struct clientdata_s ** );
typedef void ( *DST_HUD_PROCESSPLAYERSTATE_FUNC )( struct entity_state_s **, const struct entity_state_s ** );
typedef void ( *DST_HUD_TXFERPREDICTIONDATA_FUNC )( struct entity_state_s **, const struct entity_state_s **, struct clientdata_s **, const struct clientdata_s **, struct weapon_data_s **, const struct weapon_data_s ** );
typedef void ( *DST_HUD_DEMOREAD_FUNC )( int *, unsigned char ** );
typedef void ( *DST_HUD_CONNECTIONLESS_FUNC )( const struct netadr_s **, const char **, char **, int ** );
typedef void ( *DST_HUD_GETHULLBOUNDS_FUNC ) ( int *, float **, float ** );
typedef void ( *DST_HUD_FRAME_FUNC )( double * );
typedef void ( *DST_HUD_KEY_EVENT_FUNC )( int *, int *, const char ** );
typedef void ( *DST_HUD_TEMPENTUPDATE_FUNC )( double *, double *, double *, struct tempent_s ***, struct tempent_s ***, int ( **Callback_AddVisibleEntity )( struct cl_entity_s *pEntity ), void ( **Callback_TempEntPlaySound )( struct tempent_s *pTemp, float damp ) );
typedef void ( *DST_HUD_GETUSERENTITY_FUNC )( int * );
typedef void ( *DST_HUD_VOICESTATUS_FUNC )(int *, qboolean *);
typedef void ( *DST_HUD_DIRECTORMESSAGE_FUNC )( int* iSize, void **pbuf );
typedef void ( *DST_HUD_STUDIO_INTERFACE_FUNC )( int *, struct r_studio_interface_s ***, struct engine_studio_api_s ** );
// Pointers to the client destination functions
typedef struct
{
DST_INITIALIZE_FUNC pInitFunc;
DST_HUD_INIT_FUNC pHudInitFunc;
DST_HUD_VIDINIT_FUNC pHudVidInitFunc;
DST_HUD_REDRAW_FUNC pHudRedrawFunc;
DST_HUD_UPDATECLIENTDATA_FUNC pHudUpdateClientDataFunc;
DST_HUD_RESET_FUNC pHudResetFunc;
DST_HUD_CLIENTMOVE_FUNC pClientMove;
DST_HUD_CLIENTMOVEINIT_FUNC pClientMoveInit;
DST_HUD_TEXTURETYPE_FUNC pClientTextureType;
DST_HUD_IN_ACTIVATEMOUSE_FUNC pIN_ActivateMouse;
DST_HUD_IN_DEACTIVATEMOUSE_FUNC pIN_DeactivateMouse;
DST_HUD_IN_MOUSEEVENT_FUNC pIN_MouseEvent;
DST_HUD_IN_CLEARSTATES_FUNC pIN_ClearStates;
DST_HUD_IN_ACCUMULATE_FUNC pIN_Accumulate;
DST_HUD_CL_CREATEMOVE_FUNC pCL_CreateMove;
DST_HUD_CL_ISTHIRDPERSON_FUNC pCL_IsThirdPerson;
DST_HUD_CL_GETCAMERAOFFSETS_FUNC pCL_GetCameraOffsets;
DST_HUD_KB_FIND_FUNC pFindKey;
DST_HUD_CAMTHINK_FUNC pCamThink;
DST_HUD_CALCREF_FUNC pCalcRefdef;
DST_HUD_ADDENTITY_FUNC pAddEntity;
DST_HUD_CREATEENTITIES_FUNC pCreateEntities;
DST_HUD_DRAWNORMALTRIS_FUNC pDrawNormalTriangles;
DST_HUD_DRAWTRANSTRIS_FUNC pDrawTransparentTriangles;
DST_HUD_STUDIOEVENT_FUNC pStudioEvent;
DST_HUD_POSTRUNCMD_FUNC pPostRunCmd;
DST_HUD_SHUTDOWN_FUNC pShutdown;
DST_HUD_TXFERLOCALOVERRIDES_FUNC pTxferLocalOverrides;
DST_HUD_PROCESSPLAYERSTATE_FUNC pProcessPlayerState;
DST_HUD_TXFERPREDICTIONDATA_FUNC pTxferPredictionData;
DST_HUD_DEMOREAD_FUNC pReadDemoBuffer;
DST_HUD_CONNECTIONLESS_FUNC pConnectionlessPacket;
DST_HUD_GETHULLBOUNDS_FUNC pGetHullBounds;
DST_HUD_FRAME_FUNC pHudFrame;
DST_HUD_KEY_EVENT_FUNC pKeyEvent;
DST_HUD_TEMPENTUPDATE_FUNC pTempEntUpdate;
DST_HUD_GETUSERENTITY_FUNC pGetUserEntity;
DST_HUD_VOICESTATUS_FUNC pVoiceStatus;
DST_HUD_DIRECTORMESSAGE_FUNC pDirectorMessage;
DST_HUD_STUDIO_INTERFACE_FUNC pStudioInterface;
} cldll_func_dst_t;