// ******************************************************** // 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;