float CMenus::RenderSettingsControlsMisc(CUIRect View, void *pUser) { CMenus *pSelf = (CMenus*)pUser; // this is kinda slow, but whatever for(int i = 0; i < g_KeyCount; i++) gs_aKeys[i].m_KeyId = 0; for(int KeyId = 0; KeyId < KEY_LAST; KeyId++) { const char *pBind = pSelf->m_pClient->m_pBinds->Get(KeyId); if(!pBind[0]) continue; for(int i = 0; i < g_KeyCount; i++) if(str_comp(pBind, gs_aKeys[i].m_pCommand) == 0) { gs_aKeys[i].m_KeyId = KeyId; break; } } int NumOptions = 14; int StartOption = 17; float ButtonHeight = 20.0f; float Spaceing = 2.0f; float BackgroundHeight = (float)NumOptions*ButtonHeight+(float)NumOptions*Spaceing; View.HSplitTop(BackgroundHeight, &View, 0); pSelf->RenderTools()->DrawUIRect(&View, vec4(0.0f, 0.0f, 0.0f, 0.25f), CUI::CORNER_B, 5.0f); pSelf->UiDoGetButtons(StartOption, StartOption+NumOptions, View, ButtonHeight, Spaceing); return BackgroundHeight; }
void CMenus::ConKeyShortcut(IConsole::IResult *pResult, void *pUserData) { CMenus *pSelf = (CMenus *)pUserData; if(pSelf->Client()->State() == IClient::STATE_ONLINE) { if(pResult->GetInteger(0) != 0) pSelf->m_HotbarActive ^= 1; } }
void CMenus::ConKeyToggleIRC(IConsole::IResult *pResult, void *pUserData) { CALLSTACK_ADD(); CMenus *pSelf = (CMenus *)pUserData; //if(pSelf->Client()->State() == IClient::STATE_ONLINE) { if(pResult->GetInteger(0) != 0) { pSelf->ToggleIRC(); } } }
float CMenus::RenderSettingsControlsMovement(CUIRect View, void *pUser) { CMenus *pSelf = (CMenus*)pUser; // this is kinda slow, but whatever for(int i = 0; i < g_KeyCount; i++) { gs_aKeys[i].m_KeyId = 0; gs_aKeys[i].m_Modifier = 0; } for(int KeyId = 0; KeyId < KEY_LAST; KeyId++) { for(int m = 0; m < CBinds::MODIFIER_COUNT; m++) { const char *pBind = pSelf->m_pClient->m_pBinds->Get(KeyId, m); if(!pBind[0]) continue; for(int i = 0; i < g_KeyCount; i++) if(str_comp(pBind, gs_aKeys[i].m_pCommand) == 0) { gs_aKeys[i].m_KeyId = KeyId; gs_aKeys[i].m_Modifier = m; break; } } } int NumOptions = 6; float ButtonHeight = 20.0f; float Spaceing = 2.0f; float BackgroundHeight = (float)NumOptions*ButtonHeight+(float)NumOptions*Spaceing; View.HSplitTop(BackgroundHeight, &View, 0); pSelf->RenderTools()->DrawUIRect(&View, vec4(0.0f, 0.0f, 0.0f, 0.25f), CUI::CORNER_B, 5.0f); CUIRect Button; View.HSplitTop(Spaceing, 0, &View); View.HSplitTop(ButtonHeight, &Button, &View); pSelf->DoScrollbarOption(&g_Config.m_InpMousesens, &g_Config.m_InpMousesens, &Button, Localize("Mouse sens."), 150.0f, 5, 500); pSelf->UiDoGetButtons(0, 5, View, ButtonHeight, Spaceing); return BackgroundHeight; }
float CMenus::RenderDemoDetails(CUIRect View, void *pUser) { CMenus *pSelf = (CMenus*)pUser; // render demo info if(!pSelf->m_DemolistSelectedIsDir && pSelf->m_DemolistSelectedIndex >= 0 && pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Valid) { CUIRect Button; const float ButtonHeight = 20.0f; const float Spacing = 2.0f; View.HSplitTop(Spacing, 0, &View); View.HSplitTop(ButtonHeight, &Button, &View); pSelf->DoInfoBox(&Button, Localize("Created"), pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aTimestamp); View.HSplitTop(Spacing, 0, &View); View.HSplitTop(ButtonHeight, &Button, &View); pSelf->DoInfoBox(&Button, Localize("Type"), pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aType); View.HSplitTop(Spacing, 0, &View); View.HSplitTop(ButtonHeight, &Button, &View); int Length = ((pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aLength[0]<<24)&0xFF000000) | ((pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aLength[1]<<16)&0xFF0000) | ((pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aLength[2]<<8)&0xFF00) | (pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aLength[3]&0xFF); char aBuf[64]; str_format(aBuf, sizeof(aBuf), "%d:%02d", Length/60, Length%60); pSelf->DoInfoBox(&Button, Localize("Length"), aBuf); View.HSplitTop(Spacing, 0, &View); View.HSplitTop(ButtonHeight, &Button, &View); str_format(aBuf, sizeof(aBuf), "%d", pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_Version); pSelf->DoInfoBox(&Button, Localize("Version"), aBuf); View.HSplitTop(Spacing, 0, &View); View.HSplitTop(ButtonHeight, &Button, &View); pSelf->DoInfoBox(&Button, Localize("Netversion"), pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aNetversion); View.HSplitTop(Spacing, 0, &View); View.HSplitTop(ButtonHeight, &Button, &View); const int MarkerCount = DemoGetMarkerCount(pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info); str_format(aBuf, sizeof(aBuf), "%d", MarkerCount); if(MarkerCount > 0) pSelf->TextRender()->TextColor(0.5, 1, 0.5, 1); pSelf->DoInfoBox(&Button, Localize("Markers"), aBuf); pSelf->TextRender()->TextColor(1, 1, 1, 1); View.HSplitTop(Spacing, 0, &View); View.HSplitTop(ButtonHeight, &Button, &View); pSelf->DoInfoBox(&Button, Localize("Map"), pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aMapName); View.HSplitTop(Spacing, 0, &View); View.HSplitTop(ButtonHeight, &Button, &View); Button.VMargin(ButtonHeight, &Button); CUIRect ButtonRight; Button.VSplitMid(&Button, &ButtonRight); float Size = float((pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aMapSize[0]<<24) | (pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aMapSize[1]<<16) | (pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aMapSize[2]<<8) | (pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aMapSize[3]))/1024.0f; str_format(aBuf, sizeof(aBuf), Localize("%.3f KiB"), Size); pSelf->DoInfoBox(&Button, Localize("Size"), aBuf); unsigned Crc = (pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aMapCrc[0]<<24) | (pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aMapCrc[1]<<16) | (pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aMapCrc[2]<<8) | (pSelf->m_lDemos[pSelf->m_DemolistSelectedIndex].m_Info.m_aMapCrc[3]); str_format(aBuf, sizeof(aBuf), "%08x", Crc); pSelf->DoInfoBox(&ButtonRight, Localize("Crc"), aBuf); } //unused return 0.0f; }