From 412d3c9c3479012d687139f891d14cfe18b6e6ee Mon Sep 17 00:00:00 2001 From: "Tony J. White" Date: Sat, 3 Oct 2009 11:45:20 +0000 Subject: * UI_Text_* emoticon drawing support (e.g. [dretch] draws /emoticons/dretch.tga inline with text) * emoticons are square .tga images placed in the /emoticons dir of fs_game * emoticons should probably be 64x64 to look nice * g_emoticonsAllowedInNames (default ON) is an optional server setting to prevent players from using them in names * emoticons can be escaped by prefixing with an additional [ * cvars ui_emoticons and cg_emoticons can be set to 0 to disable drawing of emoticons in ui or cgame contexts respectively * fix color code continuation on wrapped lines * prefix all wrapped lines with a space to prevent chat shenanigans --- src/ui/ui_main.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/ui/ui_main.c') diff --git a/src/ui/ui_main.c b/src/ui/ui_main.c index d8389c66..8d18372d 100644 --- a/src/ui/ui_main.c +++ b/src/ui/ui_main.c @@ -98,6 +98,8 @@ vmCvar_t ui_developer; vmCvar_t ui_winner; +vmCvar_t ui_emoticons; + static cvarTable_t cvarTable[ ] = { { &ui_browserShowFull, "ui_browserShowFull", "1", CVAR_ARCHIVE }, @@ -120,6 +122,7 @@ static cvarTable_t cvarTable[ ] = { &ui_serverStatusTimeOut, "ui_serverStatusTimeOut", "7000", CVAR_ARCHIVE}, { &ui_textWrapCache, "ui_textWrapCache", "1", CVAR_ARCHIVE }, { &ui_developer, "ui_developer", "0", CVAR_ARCHIVE | CVAR_CHEAT }, + { &ui_emoticons, "ui_emoticons", "1", CVAR_LATCH | CVAR_ARCHIVE }, }; static int cvarTableSize = sizeof( cvarTable ) / sizeof( cvarTable[0] ); @@ -190,6 +193,8 @@ intptr_t vmMain( int command, int arg0, int arg1, int arg2, int arg3, void AssetCache( void ) { + int i; + uiInfo.uiDC.Assets.gradientBar = trap_R_RegisterShaderNoMip( ASSET_GRADIENTBAR ); uiInfo.uiDC.Assets.scrollBar = trap_R_RegisterShaderNoMip( ASSET_SCROLLBAR ); uiInfo.uiDC.Assets.scrollBarArrowDown = trap_R_RegisterShaderNoMip( ASSET_SCROLLBAR_ARROWDOWN ); @@ -199,6 +204,17 @@ void AssetCache( void ) uiInfo.uiDC.Assets.scrollBarThumb = trap_R_RegisterShaderNoMip( ASSET_SCROLL_THUMB ); uiInfo.uiDC.Assets.sliderBar = trap_R_RegisterShaderNoMip( ASSET_SLIDER_BAR ); uiInfo.uiDC.Assets.sliderThumb = trap_R_RegisterShaderNoMip( ASSET_SLIDER_THUMB ); + + if( ui_emoticons.integer ) + uiInfo.uiDC.Assets.emoticonCount = BG_LoadEmoticons( uiInfo.uiDC.Assets.emoticons ); + else + uiInfo.uiDC.Assets.emoticonCount = 0; + + for( i = 0; i < uiInfo.uiDC.Assets.emoticonCount; i++ ) + { + uiInfo.uiDC.Assets.emoticonShaders[ i ] = trap_R_RegisterShaderNoMip( + va( "emoticons/%s.tga", uiInfo.uiDC.Assets.emoticons[ i ] ) ); + } } void UI_DrawSides( float x, float y, float w, float h, float size ) -- cgit