UwUHax/menu.cpp
2021-08-27 18:58:23 +07:00

600 lines
18 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "hooks.h"
cMenu g_Menu(400,200,290,253);
bool bSliderFix[50];
int iSliderIndex = -1;
int iCurrSlider;
DWORD dwWait;
#define COLOR1 60, 60, 60, 255
#define COLOR2 85, 85, 85, 255
#define COLOR3 0, 0, 0, 255
#define COLOR4 35, 35, 35, 255
#define COLOR5 50, 50, 50, 255
#define COLOR6 100, 100, 100, 255
#define COLOR7 73, 73, 73, 255
#define COLOR8 65, 65, 65, 255
#define COLOR9 (gCvars.espcolor[0]), (gCvars.espcolor[1]), (gCvars.espcolor[2]), 255
#define LISTITEM_TEXTCOLOR 255, 255, 255, 255
#define ELEMENT_SEPERATION 20
#define CHECKBOX_SEPERATION_FROM_TEXT 100
#define CHECKBOX_SIZE 13
#define DEFAULT_X_TO_ADD (70 + CHECKBOX_SIZE + 40)
#define DROPDOWN_WIDTH 57
#define DROPDOWN_HEIGHT 15
#define ADDER_SIZE 12
#define ADDER_SEPERATE_FROM_BOXES 44
cMenu::cMenu(int x, int y, int w, int h)
{
m_x = x;
m_y = y;
m_w = w;
m_h = h;
}
char *fuckingkeynames[] = { "M2","F","Z","Q","V" };
float fuckingkeyvalues[] = { 0x02,0x46,0x5A,0x51,0x56 };
void cMenu::InitMenuElements()
{
static cMenuSection msAimbot;
static cMenuSection msAimbotSliders;
static cMenuSection radarslider;
static cMenuSection msEsp;
static cMenuSection msMisc;
static cMenuSection msRemovals;
static cMenuSection msskinss;
static cMenuSection hoodrich;
int iRowTwo = DEFAULT_X_TO_ADD;
int iUsualX = m_x + 10;
iCurrSlider = 0;
switch (GetTabIndex())
{
case AIMTAB:
msAimbot.ClearSection();
msAimbotSliders.ClearSection();
msAimbot.Draw(iUsualX, m_y + 30, m_w - 22, 80);
msAimbot.AddElement(ONOFF, -3, L" AIM ENABLE", &gCvars.ENABLEAIM);
msAimbot.AddElement(ONOFF, -3, L" AIM ON FIRE", &gCvars.AIMONFIRE);
msAimbot.AddElement(ONOFF, -3, L" SILENT AIM", &gCvars.SILENTAIM);
msAimbot.RestartSection();
msAimbot.AddElement(ONOFF, iRowTwo, L" NORECOIL", &gCvars.NORECOIL);
msAimbot.AddElement(ONOFF, iRowTwo, L" NOSPREAD", &gCvars.NOSPREAD);
msAimbot.AddElement(ONOFF, iRowTwo, L" AUTOFIRE", &gCvars.AUTOFIRE);
msAimbotSliders.Draw(iUsualX, m_y + 116, m_w - 22, 124);
msAimbotSliders.SetSlider(iCurrSlider, true);
msAimbotSliders.AddElement(SLIDER, 0, L"TARGET SELECTION FOV", &gCvars.AIMFOV, 0, 180);
msAimbotSliders.SetSlider(iCurrSlider, true);
msAimbotSliders.AddElement(SLIDER, 0, L"SMOOTHNESS PITCH", &gCvars.SMOOTHPITCH, 0, 255);
msAimbotSliders.SetSlider(iCurrSlider, true);
msAimbotSliders.AddElement(SLIDER, 0, L"SMOOTHNESS YAW", &gCvars.SMOOTHYAW, 0, 255);
break;
case ESPTAB:
msEsp.ClearSection();
radarslider.ClearSection();
msEsp.Draw(iUsualX, m_y + 30, m_w - 22, 90);
msEsp.AddElement(ONOFF, 0, L"ESP NAME", &gCvars.ESPNAME);
msEsp.AddElement(ONOFF, 0, L"ESP BOX", &gCvars.ESPBOX);
msEsp.AddElement(ONOFF, 0, L"ESP HEALTH", &gCvars.ESPHEALTH);
msEsp.AddElement(ONOFF, 0, L"IGNORE INFECTED", &gCvars.INGOREINFECTED);
msEsp.RestartSection();
msEsp.AddElement(ONOFF, iRowTwo, L" CHAMS", &gCvars.CHAMS);
msEsp.AddElement(ONOFF, iRowTwo, L" CHAM XQZ", &gCvars.CHAMSXQZ);
msEsp.AddElement(ONOFF, iRowTwo, L" CHAM HAND", &gCvars.CHAMHAND);
radarslider.Draw(iUsualX, m_y + 116, m_w - 22, 124);
radarslider.SetSlider(iCurrSlider, true);
radarslider.AddElement(SLIDER, 0, L"RED", &gCvars.espcolor[0], 0, 255);
radarslider.SetSlider(iCurrSlider, true);
radarslider.AddElement(SLIDER, 0, L"GREEN", &gCvars.espcolor[1], 0, 255);
radarslider.SetSlider(iCurrSlider, true);
radarslider.AddElement(SLIDER, 0, L"BLUE", &gCvars.espcolor[2], 0, 255);
break;
case MISCTAB:
msRemovals.ClearSection();
msskinss.ClearSection();
hoodrich.ClearSection();
hoodrich.Draw(iUsualX, m_y + 30, m_w - 22, 64);
hoodrich.SetValueNames(fuckingkeynames, fuckingkeyvalues, 5);
hoodrich.AddElement(ADDER, -20, L" SEQUENCE", &gCvars.LAGFAST, 0, 1000);
hoodrich.AddElement(DROPDOWN, -20, L" KEYBIND", &gCvars.LAGKEY);
hoodrich.RestartSection();
hoodrich.SetValueNames(fuckingkeynames, fuckingkeyvalues, 5);
hoodrich.AddElement(ADDER, iRowTwo -14, L" OVERSPED", &gCvars.SPEEDFAST, 0, 10);
hoodrich.AddElement(DROPDOWN, iRowTwo -14, L" KEYBIND", &gCvars.SPEEDKEY);
msRemovals.Draw(iUsualX, m_y + 100, m_w - 175, 140);
msRemovals.AddElement(ONOFF, -17, L" BUNNYHOP", &gCvars.AUTOBH);
msRemovals.AddElement(ONOFF, -17, L" VELOCITY", &gCvars.velocity);
msRemovals.AddElement(ONOFF, -17, L" RADAR", &gCvars.radar);
msRemovals.AddElement(ONOFF, -17, L" WATERMARK", &gCvars.watermark);
msRemovals.AddElement(ONOFF, -17, L" NO VOMIT", &gCvars.NOVOMIT);
msRemovals.AddElement(ONOFF, -17, L" MONITOR", &gCvars.drawmonitor);
msskinss.Draw(iUsualX + 120, m_y + 100, m_w - 142, 140);
msskinss.AddElement(ONOFF, -9, L" TRIGGERBOT", &gCvars.trigenable);
msskinss.AddElement(ONOFF, -9, L" TRIG HEAD", &gCvars.trighead);
msskinss.AddElement(ONOFF, -9, L" TRIG BODY", &gCvars.triggerbody);
msskinss.AddElement(ONOFF, -9, L" TRIG LIMB", &gCvars.TRIGLIMB);
msskinss.SetValueNames(fuckingkeynames, fuckingkeyvalues, 5);
msskinss.AddElement(DROPDOWN, -10, L" KEY BIND", &gCvars.triggerkey);
msskinss.AddElement(ADDER, -10, L" DELAY", &gCvars.trigerdelay, 1, 150);
hoodrich.PostSection();
msskinss.PostSection();
msRemovals.PostSection();
break;
}
}
int iNubLoop[] = {22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0};
void cMenu::DrawTab(int index, int &setindex, int x, int y, const char *pszTitle)
{
static int iWidth = 90;
static int iHeight = 22;
bool bOverTri = false;
bool bOverBack = g_Mouse.IsOver(x + iHeight, y - iHeight, iWidth + 1 - iHeight, iHeight + 1);
bool bSame = setindex == index;
for (int ax = 0; ax <= iHeight; ax++)
{
if (g_Mouse.IsOver(x + ax, y - ax, 2, ax) || g_Mouse.IsOver(x + iWidth + ax, y - iHeight, 2, iNubLoop[ax]))
{
bOverTri = true;
break;
}
}
for (int i = 0; i <= iHeight; i++)
{
if (bSame)
{
pSurface->DrawSetColor(COLOR7);
pSurface->DrawLine(x + i, y, x + iHeight + i, y - iHeight);
pSurface->DrawLine(x + iWidth + iHeight - i, y - iHeight, x + iWidth - i, y);
if (i == iHeight)
Draw::FillRGBA(x + iHeight, y - iHeight, iWidth - iHeight, iHeight + 1, COLOR7);
}
else
{
if (bOverBack || bOverTri)
pSurface->DrawSetColor(COLOR8);
else
pSurface->DrawSetColor(COLOR1);
pSurface->DrawLine(x + i, y, x + iHeight + i, y - iHeight);
pSurface->DrawLine(x + iWidth + iHeight - i, y - iHeight, x + iWidth - i, y);
if (g_Mouse.HasMouseOneJustBeenReleased() && (bOverBack || bOverTri))
setindex = index;
if (i == iHeight)
{
if (bOverBack || bOverTri)
Draw::FillRGBA(x + iHeight, y - iHeight, iWidth - iHeight, iHeight + 1, COLOR8);
else
Draw::FillRGBA(x + iHeight, y - iHeight, iWidth - iHeight, iHeight + 1, COLOR1);
}
}
}
pSurface->DrawSetColor(COLOR2);
pSurface->DrawLine(x, y, x + iHeight, y - iHeight);
pSurface->DrawLine(x + iHeight, y - iHeight, x + iWidth + iHeight + 1, y - iHeight);
pSurface->DrawLine(x + iWidth, y, x + iWidth + iHeight, y - iHeight);
pSurface->DrawLine(x, y, x + iWidth, y);
Draw::DrawStringA(Fonts::m_WatermarkFont, true, x + (iWidth + iHeight) * 0.5, y + 1 - iHeight, COLOR9, pszTitle);
}
void cMenu::DrawMenu()
{
Draw::FillRGBA(m_x + 22, m_y - 22, 80 * NUM_OF_TABS + 20, 23, COLOR4);
pSurface->DrawSetColor(COLOR1);
DrawTab(AIMTAB, iTabIndex, m_x, m_y, "AIM");
DrawTab(ESPTAB, iTabIndex, m_x + 100, m_y, "VISUALS");
DrawTab(MISCTAB, iTabIndex, m_x + 200, m_y, "MISC");
Draw::FillRGBA(m_x, m_y + 1, m_w, m_h, COLOR3);
Draw::FillRGBA(m_x + 1, m_y + 2, m_w - 2, m_h - 2, COLOR4);
Draw::FillRGBA(m_x + 6, m_y + 7, m_w - 12, m_h - 12, COLOR3);
Draw::FillRGBA(m_x + 7, m_y + 8, m_w - 14, m_h - 14, COLOR5);
Draw::FillRGBA(m_x + 5, m_y + 6, m_w - 10, 17, COLOR3);
Draw::FillRGBA(m_x + 5, m_y + 7, m_w - 10, 15, COLOR5);
#define BUILDSTAMP ( L"BUILD DATE: " __DATE__ L" @ " __TIME__ )
Draw::DrawTexts(Fonts::m_MenuFont, m_x + 15, m_y + 7, COLOR9, BUILDSTAMP);
Draw::FillRGBA(m_x - 15, m_y + 95, 15, 55, COLOR3);
if (g_Mouse.OneLeftClick(m_x - 14, m_y + 96, 14, 53)) //LOAD CFG
{
Config->Save();
}
if (g_Mouse.LeftClick(m_x - 14, m_y + 96, 14, 53))
Draw::FillRGBA(m_x - 15, m_y + 95, 15, 55, COLOR9);
Draw::FillRGBA(m_x - 14, m_y + 96, 14, 53, COLOR6);
Draw::DrawTexts(Fonts::m_MenuFont, m_x - 10, m_y + 95, COLOR9, L"S");
Draw::DrawTexts(Fonts::m_MenuFont, m_x - 10, m_y + 107, COLOR9, L"A");
Draw::DrawTexts(Fonts::m_MenuFont, m_x - 10, m_y + 119, COLOR9, L"V");
Draw::DrawTexts(Fonts::m_MenuFont, m_x - 10, m_y + 131, COLOR9, L"E");
Draw::FillRGBA(m_x + m_w, m_y + 95, 15, 55, COLOR3);
if (g_Mouse.OneLeftClick(m_x + m_w, m_y + 96, 14, 53)) //SAVE CFG
{
Config->Load();
}
if (g_Mouse.LeftClick(m_x + m_w, m_y + 96, 15, 55))
Draw::FillRGBA(m_x + m_w, m_y + 95, 15, 55, COLOR9);
Draw::FillRGBA(m_x + m_w, m_y + 96, 14, 53, COLOR6);
Draw::DrawTexts(Fonts::m_MenuFont, m_x + m_w + 3, m_y + 95, COLOR9, L"L");
Draw::DrawTexts(Fonts::m_MenuFont, m_x + m_w + 3, m_y + 107, COLOR9, L"O");
Draw::DrawTexts(Fonts::m_MenuFont, m_x + m_w + 3, m_y + 119, COLOR9, L"A");
Draw::DrawTexts(Fonts::m_MenuFont, m_x + m_w + 3, m_y + 131, COLOR9, L"D");
InitMenuElements();
}
void cMenuSection::Draw(int x, int y, int w, int h)
{
Draw::FillRGBA(x,y,10,1,COLOR2);
Draw::FillRGBA(x,y,1,h,COLOR2);
Draw::FillRGBA(x,y+h,w,1,COLOR2);
Draw::FillRGBA(x+w,y,1,h+1,COLOR2);
Draw::FillRGBA(x, y, w, 1, COLOR2);
SetSectionPos(x,y);
}
void cMenuSection::DrawAllDropDowns()
{
int iNumOfDropDowns = vecDropDowns.size();
int iWhich = -1;
for(int i2 = (iNumOfDropDowns - 1); i2 >= 0; i2--)
{
bool bIsActive = bActiveDropDown[i2];
if(bIsActive)
{
iWhich = i2;
dwWait = GetTickCount() + 700;
break;
}
}
for(int i = (iNumOfDropDowns - 1); i >= 0; i--)
{
int e_x = vecDropDowns[i].x;
int e_y = vecDropDowns[i].y;
int iCount = vecDropDowns[i].iCount;
bool bIsActive = bActiveDropDown[i];
char **ppszNames = vecDropDowns[i].ppszNames;
float *fValues = vecDropDowns[i].fValues;
float *cvar = vecDropDowns[i].cvar;
if(bIsActive)
{
int string_x = e_x + (DROPDOWN_WIDTH * 0.5);
for(int ax = 0; ax < iCount; ax++)
{
if(g_Mouse.IsOver(e_x,e_y + (ax * DROPDOWN_HEIGHT),DROPDOWN_WIDTH,DROPDOWN_HEIGHT))
{
if(!g_Menu.IsHandlingItem())
g_Menu.AddMenuFlag(FL_DISABLEDRAG);
Draw::FillRGBA(e_x + 1,e_y + 1 + (ax * DROPDOWN_HEIGHT),DROPDOWN_WIDTH - 1,DROPDOWN_HEIGHT - (ax == (iCount - 1) ? 1 : 0),COLOR5);
if(g_Mouse.HasMouseOneJustBeenReleased())
{
*cvar = fValues[ax];
bActiveDropDown[i] = false;
}
}
else
{
Draw::FillRGBA(e_x + 1,e_y + 1 + (ax * DROPDOWN_HEIGHT),DROPDOWN_WIDTH - 1,DROPDOWN_HEIGHT - (ax == (iCount - 1) ? 1 : 0),COLOR4);
if(g_Mouse.HasMouseOneJustBeenReleased())
{
bActiveDropDown[i] = false;
}
}
if(ax == (iCount - 1))
Draw::SoftOutlinedRectangle(e_x,e_y,DROPDOWN_WIDTH,(ax + 1) * DROPDOWN_HEIGHT,COLOR3);
if(*cvar == fValues[ax])
Draw::DrawStringA(Fonts::m_ListItemFont,true,string_x,e_y + (ax * DROPDOWN_HEIGHT),COLOR9,ppszNames[ax]);
else
Draw::DrawStringA(Fonts::m_ListItemFont,true,string_x,e_y + (ax * DROPDOWN_HEIGHT),LISTITEM_TEXTCOLOR,ppszNames[ax]);
}
}
else
{
if(g_Mouse.IsOver(e_x,e_y,DROPDOWN_WIDTH,DROPDOWN_HEIGHT))
{
if(!g_Menu.IsHandlingItem())
g_Menu.AddMenuFlag(FL_DISABLEDRAG);
Draw::FillRGBA(e_x + 1,e_y + 1,DROPDOWN_WIDTH - 1,DROPDOWN_HEIGHT - 1,COLOR5);
if(g_Mouse.HasMouseOneJustBeenReleased() && (dwWait < GetTickCount() || iWhich == -1))
{
bActiveDropDown[i] = true;
}
}
else
Draw::FillRGBA(e_x + 1,e_y + 1,DROPDOWN_WIDTH - 1,DROPDOWN_HEIGHT - 1,COLOR4);
Draw::SoftOutlinedRectangle(e_x,e_y,DROPDOWN_WIDTH,DROPDOWN_HEIGHT,COLOR3);
int string_x = e_x + (DROPDOWN_WIDTH * 0.5);
int string_y = e_y;
for(int ax = 0; ax < iCount; ax++)
{
if(*cvar == fValues[ax])
{
Draw::DrawStringA(Fonts::m_ListItemFont,true,string_x,string_y,LISTITEM_TEXTCOLOR,ppszNames[ax]);
break;
}
}
}
}
ClearAllElementSpecifics();
}
void cMenuSection::AddElement(int iType, int add_to_x, const wchar_t *pszElementName, float *cvar, float min, float max, float step)
{
int e_x = s_x + 10 + add_to_x;
int e_y = s_y + 15 + (iSection * ELEMENT_SEPERATION);
bool bDropDownActive = false;
for (int i2 = 0; i2 < 50; i2++)
{
bDropDownActive = bActiveDropDown[i2];
if (bDropDownActive)
break;
}
if (iType == ONOFF)
{
Draw::DrawTexts(Fonts::m_WatermarkFont, e_x, e_y, LISTITEM_TEXTCOLOR, pszElementName);
e_x += CHECKBOX_SEPERATION_FROM_TEXT;
if (g_Mouse.OneLeftClick(e_x - 3, e_y - 3, CHECKBOX_SIZE + 5, CHECKBOX_SIZE + 5) && !bDropDownActive)
*cvar = !*cvar;
e_y += 1;
Draw::FillRGBA(e_x, e_y, CHECKBOX_SIZE, CHECKBOX_SIZE, COLOR7);
if (*cvar)
{
pSurface->DrawSetColor(COLOR4);
pSurface->DrawLine(e_x + 2, e_y + 2, e_x + CHECKBOX_SIZE - 1, e_y + CHECKBOX_SIZE - 1);
pSurface->DrawLine(e_x + CHECKBOX_SIZE - 2, e_y + 2, e_x + 1, e_y + CHECKBOX_SIZE - 1);
}
if (g_Mouse.IsOver(e_x, e_y, CHECKBOX_SIZE, CHECKBOX_SIZE))
{
Draw::OutlinedRectangle(e_x, e_y, CHECKBOX_SIZE, CHECKBOX_SIZE, COLOR9);
if (!g_Menu.IsHandlingItem())
g_Menu.AddMenuFlag(FL_DISABLEDRAG);
}
else
Draw::OutlinedRectangle(e_x, e_y, CHECKBOX_SIZE, CHECKBOX_SIZE, COLOR4);
}
else if (iType == DROPDOWN)
{
Draw::DrawTexts(Fonts::m_WatermarkFont, e_x, e_y, LISTITEM_TEXTCOLOR, pszElementName);
e_y += 1;
DropDown_t ddNew;
ddNew.x = e_x + CHECKBOX_SEPERATION_FROM_TEXT - 20;
ddNew.y = e_y - 2;
ddNew.fValues = fValueList;
ddNew.cvar = cvar;
ddNew.ppszNames = ppszValueNames;
ddNew.iCount = iValueCount;
AddDropDownToDrawList(ddNew);
}
else if (iType == SLIDER)
{
float Scale = max / 245;
bool bOver = false;
wchar_t szCopy[256];
wcscpy_s(szCopy, pszElementName);
swprintf_s(szCopy, L"%s %2.2f", pszElementName, *cvar);
Draw::DrawTexts(Fonts::m_WatermarkFont, e_x, e_y - 7, LISTITEM_TEXTCOLOR, szCopy);
e_y += 8;
Draw::FillRGBA(e_x + 3, e_y + 7, 240, 1, 115, 120, 123, 185);
int mouse_x, mouse_y;
g_Mouse.GetMousePosition(mouse_x, mouse_y);
if (mouse_x >= (e_x - 3) && mouse_x <= (e_x + fLength + 3) && mouse_y >= (e_y) && mouse_y <= (e_y + 10) && GetAsyncKeyState(VK_LBUTTON) && (iSliderIndex == -1) && dwWait < GetTickCount() && !bSliderFix[iCurrSlider])
{
iSliderIndex = iCurrSlider;
bSliderFix[iCurrSlider] = true;
if (!g_Menu.IsHandlingItem())
g_Menu.AddMenuFlag(FL_DISABLEDRAG);
}
if (mouse_x >= (e_x - 1000) && mouse_x <= (e_x + fLength + 1000) && mouse_y >= (e_y - 1000) && mouse_y <= (e_y + 1000) && GetAsyncKeyState(VK_LBUTTON) && !bDropDownActive)
{
if (bSliderFix[iCurrSlider])
{
*cvar = min + (mouse_x - e_x) * Scale;
bOver = true;
if (!g_Menu.IsHandlingItem())
g_Menu.AddMenuFlag(FL_DISABLEDRAG);
}
}
else if (bSliderFix[iCurrSlider])
{
iSliderIndex = -1;
bSliderFix[iCurrSlider] = false;
}
if (*cvar > max)
*cvar = max;
if (*cvar < min)
*cvar = min;
static int iSizeOf = 6;
for (int nu = 0; nu <= iSizeOf; nu++)
{
Draw::FillRGBA(e_x + (*cvar / Scale) - iSizeOf + nu, e_y + iSizeOf - nu, (iSizeOf + 1) - nu, 1, COLOR4);
Draw::FillRGBA(e_x + (*cvar / Scale) - iSizeOf + nu, e_y + iSizeOf + nu, (iSizeOf + 1) - nu, 1, COLOR4);
Draw::FillRGBA(e_x + (*cvar / Scale), e_y + iSizeOf - nu, (iSizeOf + 1) - nu, 1, COLOR4);
Draw::FillRGBA(e_x + (*cvar / Scale), e_y + iSizeOf + nu, (iSizeOf + 1) - nu, 1, COLOR4);
}
if (g_Mouse.IsOver(e_x + (*cvar / Scale) - iSizeOf, e_y - 1, 10, 14) || bOver)
pSurface->DrawSetColor(COLOR9);
else
pSurface->DrawSetColor(COLOR6);
pSurface->DrawLine(e_x + (*cvar / Scale) - (iSizeOf + 1), e_y + iSizeOf, e_x + (*cvar / Scale), e_y - 1);
pSurface->DrawLine(e_x + (*cvar / Scale), e_y - 1, e_x + (*cvar / Scale) + (iSizeOf + 1), e_y + iSizeOf);
pSurface->DrawLine(e_x + (*cvar / Scale) + (iSizeOf + 1), e_y + iSizeOf, e_x + (*cvar / Scale), e_y + (iSizeOf * 2 + 1));
pSurface->DrawLine(e_x + (*cvar / Scale), e_y + (iSizeOf * 2 + 1), e_x + (*cvar / Scale) - (iSizeOf + 1), e_y + iSizeOf);
}
else if (iType == ADDER)
{
Draw::DrawTexts(Fonts::m_WatermarkFont, e_x, e_y, LISTITEM_TEXTCOLOR, pszElementName);
e_y += 1;
e_x += (CHECKBOX_SEPERATION_FROM_TEXT - 20);
Draw::FillRGBA(e_x, e_y, ADDER_SIZE, ADDER_SIZE, COLOR7);
if (g_Mouse.IsOver(e_x, e_y, ADDER_SIZE, ADDER_SIZE))
{
Draw::OutlinedRectangle(e_x, e_y, ADDER_SIZE, ADDER_SIZE, COLOR9);
if (g_Mouse.HasMouseOneJustBeenReleased() && !bDropDownActive)
*cvar -= step;
if (g_Mouse.IsMouseTwoBeingHeld() && !bDropDownActive)
*cvar -= 1;
}
else
Draw::OutlinedRectangle(e_x, e_y, ADDER_SIZE, ADDER_SIZE, COLOR4);
Draw::DrawStringA(Fonts::m_ListItemFont, true, e_x + ADDER_SIZE * 0.5, e_y - 1, COLOR9, "<");
Draw::DrawStringA(Fonts::m_WatermarkFont, true, e_x - 6 + ADDER_SIZE + ADDER_SEPERATE_FROM_BOXES * 0.5, e_y - 2, LISTITEM_TEXTCOLOR, "%2.0f", *cvar);
e_x += ADDER_SEPERATE_FROM_BOXES;
Draw::FillRGBA(e_x, e_y, ADDER_SIZE, ADDER_SIZE, COLOR7);
if (g_Mouse.IsOver(e_x, e_y, ADDER_SIZE, ADDER_SIZE))
{
Draw::OutlinedRectangle(e_x, e_y, ADDER_SIZE, ADDER_SIZE, COLOR9);
if (g_Mouse.HasMouseOneJustBeenReleased() && !bDropDownActive)
*cvar += step;
if (g_Mouse.IsMouseTwoBeingHeld() && !bDropDownActive)
*cvar += 1;
}
else
Draw::OutlinedRectangle(e_x, e_y, ADDER_SIZE, ADDER_SIZE, COLOR4);
Draw::DrawStringA(Fonts::m_ListItemFont, true, e_x + ADDER_SIZE * 0.5, e_y - 1, COLOR9, ">");
//clamp but go to min,max instead of not allowing to increase/decrease
if (*cvar < min)
*cvar = max;
if (*cvar > max)
*cvar = min;
}
PostElement((iType == SLIDER ? 2 : 1));
}