cs16-client-legacy/mainui/enginecallback.h

213 lines
7.3 KiB
C

/*
enginecallback.h - actual engine callbacks
Copyright (C) 2010 Uncle Mike
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
*/
#ifndef ENGINECALLBACKS_H
#define ENGINECALLBACKS_H
// built-in memory manager
#define MALLOC( x ) (*g_engfuncs.pfnMemAlloc)( x, __FILE__, __LINE__ )
#define CALLOC( x, y ) (*g_engfuncs.pfnMemAlloc)((x) * (y), __FILE__, __LINE__ )
#define FREE( x ) (*g_engfuncs.pfnMemFree)( x, __FILE__, __LINE__ )
// screen handlers
#define PIC_Width (*g_engfuncs.pfnPIC_Width)
#define PIC_Height (*g_engfuncs.pfnPIC_Height)
#define PIC_EnableScissor (*g_engfuncs.pfnPIC_EnableScissor)
#define PIC_DisableScissor (*g_engfuncs.pfnPIC_DisableScissor)
#define FillRGBA (*g_engfuncs.pfnFillRGBA)
#define GetScreenInfo (*g_engfuncs.pfnGetScreenInfo)
#define GetGameInfo (*g_engfuncs.pfnGetGameInfo)
#define CheckGameDll (*g_engfuncs.pfnCheckGameDll)
#define PIC_SetGamma( x, y ) (*g_engfuncs.pfnProcessImage)( x, y, -1, -1 )
#define PIC_Remap( x, y, z ) (*g_engfuncs.pfnProcessImage)( x, -1.0f, y, z )
#define DRAW_LOGO (*g_engfuncs.pfnDrawLogo)
#define PRECACHE_LOGO( x ) (*g_engfuncs.pfnDrawLogo)( x, 0, 0, 0, 0 )
#define GetLogoWidth (*g_engfuncs.pfnGetLogoWidth)
#define GetLogoHeight (*g_engfuncs.pfnGetLogoHeight)
#define GetLogoLength (*g_engfuncs.pfnGetLogoLength)
inline HIMAGE PIC_Load( const char *szPicName, long flags = 0 )
{
return g_engfuncs.pfnPIC_Load( szPicName, NULL, 0, flags );
}
inline HIMAGE PIC_Load( const char *szPicName, const byte *ucRawImage, long ulRawImageSize, long flags = 0 )
{
return g_engfuncs.pfnPIC_Load( szPicName, ucRawImage, ulRawImageSize, flags );
}
#define PIC_Free (*g_engfuncs.pfnPIC_Free)
#define PLAY_SOUND (*g_engfuncs.pfnPlayLocalSound)
#define CVAR_REGISTER (*g_engfuncs.pfnRegisterVariable)
#define CVAR_SET_FLOAT (*g_engfuncs.pfnCvarSetValue)
#define CVAR_GET_FLOAT (*g_engfuncs.pfnGetCvarFloat)
#define CVAR_GET_STRING (*g_engfuncs.pfnGetCvarString)
#define CVAR_SET_STRING (*g_engfuncs.pfnCvarSetString)
#define CLIENT_COMMAND (*g_engfuncs.pfnClientCmd)
#define CLIENT_JOIN (*g_engfuncs.pfnClientJoin)
#define GET_MENU_EDICT (*g_engfuncs.pfnGetPlayerModel)
#define ENGINE_SET_MODEL (*g_engfuncs.pfnSetModel)
#define R_ClearScene (*g_engfuncs.pfnClearScene)
#define R_AddEntity (*g_engfuncs.CL_CreateVisibleEntity)
#define R_RenderFrame (*g_engfuncs.pfnRenderScene)
#define LOAD_FILE (*g_engfuncs.COM_LoadFile)
#define FILE_EXISTS( file ) (*g_engfuncs.pfnFileExists)( file, FALSE )
#define FREE_FILE (*g_engfuncs.COM_FreeFile)
#define GET_GAME_DIR (*g_engfuncs.pfnGetGameDir)
#define HOST_ERROR (*g_engfuncs.pfnHostError)
#define COM_ParseFile (*g_engfuncs.COM_ParseFile)
#define KEY_SetDest (*g_engfuncs.pfnSetKeyDest)
#define KEY_ClearStates (*g_engfuncs.pfnKeyClearStates)
#define KEY_KeynumToString (*g_engfuncs.pfnKeynumToString)
#define KEY_GetBinding (*g_engfuncs.pfnKeyGetBinding)
#define KEY_SetBinding (*g_engfuncs.pfnKeySetBinding)
#define KEY_IsDown (*g_engfuncs.pfnKeyIsDown)
#define KEY_GetOverstrike (*g_engfuncs.pfnKeyGetOverstrikeMode)
#define KEY_SetOverstrike (*g_engfuncs.pfnKeySetOverstrikeMode)
#define Key_GetState (*g_engfuncs.pfnKeyGetState)
#define SET_CURSOR (*g_engfuncs.pfnSetCursor)
#define Cmd_AddCommand (*g_engfuncs.pfnAddCommand)
#define Cmd_RemoveCommand (*g_engfuncs.pfnDelCommand)
#define CMD_ARGC (*g_engfuncs.pfnCmdArgc)
#define CMD_ARGV (*g_engfuncs.pfnCmdArgv)
#define Con_Printf (*g_engfuncs.Con_Printf)
#define Con_NPrintf (*g_engfuncs.Con_NPrintf)
#define GET_GAMES_LIST (*g_engfuncs.pfnGetGamesList)
#define BACKGROUND_TRACK (*g_engfuncs.pfnPlayBackgroundTrack)
#define SHELL_EXECUTE (*g_engfuncs.pfnShellExecute)
#define HOST_WRITECONFIG (*g_engfuncs.pfnWriteServerConfig)
#define HOST_CHANGEGAME (*g_engfuncs.pfnChangeInstance)
#define CHECK_MAP_LIST (*g_engfuncs.pfnCreateMapsList)
#define HOST_ENDGAME (*g_engfuncs.pfnHostEndGame)
#define GET_CLIPBOARD (*g_engfuncs.pfnGetClipboardData)
#define FS_SEARCH (*g_engfuncs.pfnGetFilesList)
#define MAP_IS_VALID (*g_engfuncs.pfnIsMapValid)
#define GET_SAVE_COMMENT (*g_engfuncs.pfnGetSaveComment)
#define GET_DEMO_COMMENT (*g_engfuncs.pfnGetDemoComment)
#define CL_IsActive() (g_engfuncs.pfnClientInGame() && !CVAR_GET_FLOAT( "cl_background" ))
inline void PIC_Set( HIMAGE hPic, int r, int g, int b )
{
g_engfuncs.pfnPIC_Set( hPic, r, g, b, 255 );
}
inline void PIC_Set( HIMAGE hPic, int r, int g, int b, int a )
{
g_engfuncs.pfnPIC_Set( hPic, r, g, b, a );
}
inline void PIC_Draw( int x, int y, const wrect_t *prc )
{
g_engfuncs.pfnPIC_Draw( x, y, -1, -1, prc );
}
inline void PIC_Draw( int x, int y, int width, int height )
{
g_engfuncs.pfnPIC_Draw( x, y, width, height, NULL );
}
inline void PIC_Draw( int x, int y, int width, int height, const wrect_t *prc )
{
g_engfuncs.pfnPIC_Draw( x, y, width, height, prc );
}
inline void PIC_DrawTrans( int x, int y, const wrect_t *prc )
{
g_engfuncs.pfnPIC_DrawTrans( x, y, -1, -1, prc );
}
inline void PIC_DrawTrans( int x, int y, int width, int height )
{
g_engfuncs.pfnPIC_DrawTrans( x, y, width, height, NULL );
}
inline void PIC_DrawHoles( int x, int y, const wrect_t *prc )
{
g_engfuncs.pfnPIC_DrawHoles( x, y, -1, -1, prc );
}
inline void SPR_DrawHoles( int x, int y, int width, int height )
{
g_engfuncs.pfnPIC_DrawHoles( x, y, width, height, NULL );
}
inline void PIC_DrawAdditive( int x, int y, int width, int height )
{
g_engfuncs.pfnPIC_DrawAdditive( x, y, width, height, NULL );
}
inline void PIC_DrawAdditive( int x, int y, const wrect_t *prc )
{
g_engfuncs.pfnPIC_DrawAdditive( x, y, -1, -1, prc );
}
inline void PIC_DrawAdditive( int x, int y, int w, int h, const wrect_t *prc )
{
g_engfuncs.pfnPIC_DrawAdditive( x, y, w, h, prc );
}
inline void TextMessageSetColor( int r, int g, int b, int alpha = 255 )
{
g_engfuncs.pfnDrawSetTextColor( r, g, b, alpha );
}
#define TextMessageDrawChar (*g_engfuncs.pfnDrawCharacter)
#define DrawConsoleString (*g_engfuncs.pfnDrawConsoleString)
#define GetConsoleStringSize (*g_engfuncs.pfnDrawConsoleStringLen)
#define ConsoleSetColor (*g_engfuncs.pfnSetConsoleDefaultColor)
#define RANDOM_LONG (*g_engfuncs.pfnRandomLong)
#define RANDOM_FLOAT (*g_engfuncs.pfnRandomFloat)
#define COMPARE_FILE_TIME (*g_engfuncs.pfnCompareFileTime)
//#define UtfProcessChar (*g_textfuncs.pfnUtfProcessChar)
//#define UtfMoveLeft (*g_textfuncs.pfnUtfMoveLeft)
//#define UtfMoveRight (*g_textfuncs.pfnUtfMoveRight)
//#define EnableTextInput (*g_textfuncs.pfnEnableTextInput)
inline void EnableTextInput( int enable )
{
if( g_textfuncs.pfnEnableTextInput )
g_textfuncs.pfnEnableTextInput( enable );
}
inline int UtfMoveRight( char *str, int pos, int length )
{
if( g_textfuncs.pfnUtfMoveRight )
return g_textfuncs.pfnUtfMoveRight( str, pos, length );
return pos + 1;
}
inline int UtfMoveLeft( char *str, int pos )
{
if( g_textfuncs.pfnUtfMoveLeft )
return g_textfuncs.pfnUtfMoveLeft( str, pos );
return pos - 1;
}
inline int UtfProcessChar( int in )
{
if( g_textfuncs.pfnUtfProcessChar )
return g_textfuncs.pfnUtfProcessChar( in );
return in;
}
#endif//ENGINECALLBACKS_H