Вопрос Смена меню в lw

Начинающий
Статус
Оффлайн
Регистрация
24 Дек 2020
Сообщения
2
Реакции[?]
0
Поинты[?]
0
C++:
#include <ShlObj_core.h>
#include <unordered_map>
#include "menu.h"
#include "../ImGui/code_editor.h"
#include "../constchars.h"
#include "../cheats/misc/logs.h"
#include "../ImGui/checkmark.h"
#include "../ImGui/MenuControls.h"

#include "../BASS/API.h"
#include "../BASS/bass.h"

#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING

#define ALPHA (ImGuiColorEditFlags_AlphaPreview | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoLabel | ImGuiColorEditFlags_AlphaBar| ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_Float)
#define NOALPHA (ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoLabel | ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_Float)

std::vector <std::string> files;
std::vector <std::string> scripts;
std::string editing_script;

auto selected_script = 0;
auto loaded_editing_script = false;

static auto menu_setupped = false;
static auto should_update = true;

IDirect3DTexture9* all_skins[36];

std::string get_wep(int id, int custom_index = -1, bool knife = true)
{
    if (custom_index > -1)
    {
        if (knife)
        {
            switch (custom_index)
            {
            case 0: return ("weapon_knife");
            case 1: return ("weapon_bayonet");
            case 2: return ("weapon_knife_css");
            case 3: return ("weapon_knife_skeleton");
            case 4: return ("weapon_knife_outdoor");
            case 5: return ("weapon_knife_cord");
            case 6: return ("weapon_knife_canis");
            case 7: return ("weapon_knife_flip");
            case 8: return ("weapon_knife_gut");
            case 9: return ("weapon_knife_karambit");
            case 10: return ("weapon_knife_m9_bayonet");
            case 11: return ("weapon_knife_tactical");
            case 12: return ("weapon_knife_falchion");
            case 13: return ("weapon_knife_survival_bowie");
            case 14: return ("weapon_knife_butterfly");
            case 15: return ("weapon_knife_push");
            case 16: return ("weapon_knife_ursus");
            case 17: return ("weapon_knife_gypsy_jackknife");
            case 18: return ("weapon_knife_stiletto");
            case 19: return ("weapon_knife_widowmaker");
            }
        }
        else
        {
            switch (custom_index)
            {
            case 0: return ("ct_gloves"); //-V1037
            case 1: return ("studded_bloodhound_gloves");
            case 2: return ("t_gloves");
            case 3: return ("ct_gloves");
            case 4: return ("sporty_gloves");
            case 5: return ("slick_gloves");
            case 6: return ("leather_handwraps");
            case 7: return ("motorcycle_gloves");
            case 8: return ("specialist_gloves");
            case 9: return ("studded_hydra_gloves");
            }
        }
    }
    else
    {
        switch (id)
        {
        case 0: return ("knife");
        case 1: return ("gloves");
        case 2: return ("weapon_ak47");
        case 3: return ("weapon_aug");
        case 4: return ("weapon_awp");
        case 5: return ("weapon_cz75a");
        case 6: return ("weapon_deagle");
        case 7: return ("weapon_elite");
        case 8: return ("weapon_famas");
        case 9: return ("weapon_fiveseven");
        case 10: return ("weapon_g3sg1");
        case 11: return ("weapon_galilar");
        case 12: return ("weapon_glock");
        case 13: return ("weapon_m249");
        case 14: return ("weapon_m4a1_silencer");
        case 15: return ("weapon_m4a1");
        case 16: return ("weapon_mac10");
        case 17: return ("weapon_mag7");
        case 18: return ("weapon_mp5sd");
        case 19: return ("weapon_mp7");
        case 20: return ("weapon_mp9");
        case 21: return ("weapon_negev");
        case 22: return ("weapon_nova");
        case 23: return ("weapon_hkp2000");
        case 24: return ("weapon_p250");
        case 25: return ("weapon_p90");
        case 26: return ("weapon_bizon");
        case 27: return ("weapon_revolver");
        case 28: return ("weapon_sawedoff");
        case 29: return ("weapon_scar20");
        case 30: return ("weapon_ssg08");
        case 31: return ("weapon_sg556");
        case 32: return ("weapon_tec9");
        case 33: return ("weapon_ump45");
        case 34: return ("weapon_usp_silencer");
        case 35: return ("weapon_xm1014");
        default: return ("unknown");
        }
    }
}

IDirect3DTexture9* get_skin_preview(const char* weapon_name, const std::string& skin_name, IDirect3DDevice9* device)
{
    IDirect3DTexture9* skin_image = nullptr;
    std::string vpk_path;

    if (strcmp(weapon_name, ("unknown")) && strcmp(weapon_name, ("knife")) && strcmp(weapon_name, ("gloves"))) //-V526
    {
        if (skin_name.empty() || skin_name == ("default"))
            vpk_path = ("resource/flash/econ/weapons/base_weapons/") + std::string(weapon_name) + (".png");
        else
            vpk_path = ("resource/flash/econ/default_generated/") + std::string(weapon_name) + ("_") + std::string(skin_name) + ("_light_large.png");
    }
    else
    {
        if (!strcmp(weapon_name, ("knife")))
            vpk_path = ("resource/flash/econ/weapons/base_weapons/weapon_knife.png");
        else if (!strcmp(weapon_name, ("gloves")))
            vpk_path = ("resource/flash/econ/weapons/base_weapons/ct_gloves.png");
        else if (!strcmp(weapon_name, ("unknown")))
            vpk_path = ("resource/flash/econ/weapons/base_weapons/weapon_snowball.png");

    }
    const auto handle = m_basefilesys()->Open(vpk_path.c_str(), ("r"), ("GAME"));
    if (handle)
    {
        int file_len = m_basefilesys()->Size(handle);
        char* image = new char[file_len]; //-V121

        m_basefilesys()->Read(image, file_len, handle);
        m_basefilesys()->Close(handle);

        D3DXCreateTextureFromFileInMemory(device, image, file_len, &skin_image);
        delete[] image;
    }

    if (!skin_image)
    {
        std::string vpk_path;

        if (strstr(weapon_name, ("bloodhound")) != NULL || strstr(weapon_name, ("hydra")) != NULL)
            vpk_path = ("resource/flash/econ/weapons/base_weapons/ct_gloves.png");
        else
            vpk_path = ("resource/flash/econ/weapons/base_weapons/") + std::string(weapon_name) + (".png");

        const auto handle = m_basefilesys()->Open(vpk_path.c_str(), ("r"), ("GAME"));

        if (handle)
        {
            int file_len = m_basefilesys()->Size(handle);
            char* image = new char[file_len]; //-V121

            m_basefilesys()->Read(image, file_len, handle);
            m_basefilesys()->Close(handle);

            D3DXCreateTextureFromFileInMemory(device, image, file_len, &skin_image);
            delete[] image;
        }
    }

    return skin_image;
}

void c_menu::menu_setup(ImGuiStyle& style) //-V688
{

}

std::string get_config_dir()
{
    std::string folder;
    static TCHAR path[MAX_PATH];

    if (SUCCEEDED(SHGetFolderPath(NULL, 0x001a, NULL, NULL, path)))
        folder = std::string(path) + ("\\Lrimuse.pw\\Configs\\");

    CreateDirectory(folder.c_str(), NULL);
    return folder;
}

void load_config()
{
    if (cfg_manager->files.empty())
        return;

    cfg_manager->load(cfg_manager->files.at(g_cfg.selected_config), false);
    c_lua::get().unload_all_scripts();

    for (auto& script : g_cfg.scripts.scripts)
        c_lua::get().load_script(c_lua::get().get_script_id(script));

    scripts = c_lua::get().scripts;

    if (selected_script >= scripts.size())
        selected_script = scripts.size() - 1; //-V103

    for (auto& current : scripts)
    {
        if (current.size() >= 5 && current.at(current.size() - 1) == 'c')
            current.erase(current.size() - 5, 5);
        else if (current.size() >= 4)
            current.erase(current.size() - 4, 4);
    }

    for (auto i = 0; i < g_cfg.skins.skinChanger.size(); ++i)
        all_skins[i] = nullptr;

    g_cfg.scripts.scripts.clear();

    cfg_manager->load(cfg_manager->files.at(g_cfg.selected_config), true);
    cfg_manager->config_files();

    eventlogs::get().add(("Loaded ") + files.at(g_cfg.selected_config) + (" config"), false);
}

void save_config()
{
    if (cfg_manager->files.empty())
        return;

    g_cfg.scripts.scripts.clear();

    for (auto i = 0; i < c_lua::get().scripts.size(); ++i)
    {
        auto script = c_lua::get().scripts.at(i);

        if (c_lua::get().loaded.at(i))
            g_cfg.scripts.scripts.emplace_back(script);
    }

    cfg_manager->save(cfg_manager->files.at(g_cfg.selected_config));
    cfg_manager->config_files();

    eventlogs::get().add(("Saved ") + files.at(g_cfg.selected_config) + (" config"), false);
}

void remove_config()
{
    if (cfg_manager->files.empty())
        return;

    eventlogs::get().add(("Removed ") + files.at(g_cfg.selected_config) + (" config"), false);

    cfg_manager->remove(cfg_manager->files.at(g_cfg.selected_config));
    cfg_manager->config_files();

    files = cfg_manager->files;

    if (g_cfg.selected_config >= files.size())
        g_cfg.selected_config = files.size() - 1; //-V103

    for (auto& current : files)
        if (current.size() > 2)
            current.erase(current.size() - 3, 3);
}

void add_config()
{
    auto empty = true;

    for (auto current : g_cfg.new_config_name)
    {
        if (current != ' ')
        {
            empty = false;
            break;
        }
    }

    if (empty)
        g_cfg.new_config_name = ("config");

    eventlogs::get().add(("Added ") + g_cfg.new_config_name + (" config"), false);

    if (g_cfg.new_config_name.find((".pw")) == std::string::npos)
        g_cfg.new_config_name += (".pw");

    cfg_manager->save(g_cfg.new_config_name);
    cfg_manager->config_files();

    g_cfg.selected_config = cfg_manager->files.size() - 1; //-V103
    files = cfg_manager->files;

    for (auto& current : files)
        if (current.size() > 2)
            current.erase(current.size() - 3, 3);
}

__forceinline void padding(float x, float y)
{

}

void child_title(const char* label)
{

}

namespace config_listbox
{
    static auto vector_getter = [](void* vec, int idx, const char** out_text)
    {
        auto& vector = *static_cast<std::vector<std::string>*>(vec);
        if (idx < 0 || idx >= static_cast<int>(vector.size())) { return false; }
        *out_text = vector.at(idx).c_str();
        return true;
    };

    bool ListBox(const char* label, int* currIndex, std::vector<std::string>& values, int height_in_items = -1)
    {
        ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
        if (values.empty()) { return false; }
        return ImGui::ListBox(label, currIndex, vector_getter, static_cast<void*>(&values), values.size(), height_in_items);
    }

    static bool ListBox(const char* label, int* current_item, std::function<const char* (int)> lambda, int items_count, int height_in_items)
    {
        return ImGui::ListBox(label, current_item, [](void* data, int idx, const char** out_text)
        {
            *out_text = (*reinterpret_cast<std::function<const char* (int)>*>(data))(idx);
            return true;
        }, &lambda, items_count, height_in_items);
    }
}

void draw_combo(const char* name, int& variable, const char* labels[], int count)
{
    ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 6);
    ImGui::Text(name);
    ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 5);
    ImGui::Combo(std::string(("##COMBO__") + std::string(name)).c_str(), &variable, labels, count);
}

void draw_combo(const char* name, int& variable, bool (*items_getter)(void*, int, const char**), void* data, int count)
{
    ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 6);
    ImGui::Text(name);
    ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 5);
    ImGui::Combo(std::string(("##COMBO__") + std::string(name)).c_str(), &variable, items_getter, data, count);
}

bool LabelClick(const char* label, bool* v, const char* unique_id)
{
    ImGuiWindow* window = ImGui::GetCurrentWindow();
    if (window->SkipItems)
        return false;

    // The concatoff/on thingies were for my weapon config system so if we're going to make that, we still need this aids.
    char Buf[64];
    _snprintf(Buf, 62, ("%s"), label);

    char getid[128];
    sprintf_s(getid, 128, ("%s%s"), label, unique_id);


    ImGuiContext& g = *GImGui;
    const ImGuiStyle& style = g.Style;
    const ImGuiID id = window->GetID(getid);
    const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true);

    const ImRect check_bb(window->DC.CursorPos, ImVec2(label_size.y + style.FramePadding.y * 2 + window->DC.CursorPos.x, window->DC.CursorPos.y + label_size.y + style.FramePadding.y * 2));
    ImGui::ItemSize(check_bb, style.FramePadding.y);

    ImRect total_bb = check_bb;

    if (label_size.x > 0)
    {
        ImGui::SameLine(0, style.ItemInnerSpacing.x);
        const ImRect text_bb(ImVec2(window->DC.CursorPos.x, window->DC.CursorPos.y + style.FramePadding.y), ImVec2(window->DC.CursorPos.x + label_size.x, window->DC.CursorPos.y + style.FramePadding.y + label_size.y));

        ImGui::ItemSize(ImVec2(text_bb.GetWidth(), check_bb.GetHeight()), style.FramePadding.y);
        total_bb = ImRect(ImMin(check_bb.Min, text_bb.Min), ImMax(check_bb.Max, text_bb.Max));
    }

    if (!ImGui::ItemAdd(total_bb, id))
        return false;

    bool hovered, held;
    bool pressed = ImGui::ButtonBehavior(total_bb, id, &hovered, &held);
    if (pressed)
        *v = !(*v);

    if (*v)
        ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(198 / 255.f, 123 / 255.f, 219 / 255.f, 1.f));
    if (label_size.x > 0.0f)
        ImGui::RenderText(ImVec2(check_bb.GetTL().x + 12, check_bb.GetTL().y), Buf);
    if (*v)
        ImGui::PopStyleColor();

    return pressed;

}

void draw_keybind(const char* label, key_bind* key_bind, const char* unique_id)
{
    ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);

    if (key_bind->key == KEY_ESCAPE)
        key_bind->key = KEY_NONE;

    auto clicked = false;
    auto text = (std::string)m_inputsys()->ButtonCodeToString(key_bind->key);

    if (key_bind->key <= KEY_NONE || key_bind->key >= KEY_MAX)
        text = ("Bind");

    if (hooks::input_shouldListen && hooks::input_receivedKeyval == &key_bind->key)
    {
        clicked = true;
        text = ("...");
    }

    auto textsize = ImGui::CalcTextSize(text.c_str()).x + 8;
    auto labelsize = ImGui::CalcTextSize(label);

    ImGui::Text(label);
    ImGui::SameLine();

    ImGui::SetCursorPosX(ImGui::GetWindowSize().x - (ImGui::GetWindowSize().x - ImGui::CalcItemWidth()) - max(50, textsize));
    ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 3);

    if (ImGui::KeybindButton(text.c_str(), unique_id, ImVec2(max(50, textsize), 23), clicked, ImGuiButtonFlags_DontClosePopups))
        clicked = true;

    if (clicked)
    {
        hooks::input_shouldListen = true;
        hooks::input_receivedKeyval = &key_bind->key;
    }

    static auto hold = false, toggle = false;

    switch (key_bind->mode)
    {
    case HOLD:
        hold = true;
        toggle = false;
        break;
    case TOGGLE:
        toggle = true;
        hold = false;
        break;
    }

    if (ImGui::BeginPopup(unique_id))
    {
        ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 6);
        ImGui::SetCursorPosX(ImGui::GetCursorPosX() + ((ImGui::GetCurrentWindow()->Size.x / 2) - (ImGui::CalcTextSize(("Hold")).x / 2)));
        ImGui::SetCursorPosX(ImGui::GetCursorPosX() - 11);

        if (LabelClick(("Hold"), &hold, unique_id))
        {
            if (hold)
            {
                toggle = false;
                key_bind->mode = HOLD;
            }
            else if (toggle)
            {
                hold = false;
                key_bind->mode = TOGGLE;
            }
            else
            {
                toggle = false;
                key_bind->mode = HOLD;
            }

            ImGui::CloseCurrentPopup();
        }

        ImGui::SetCursorPosX(ImGui::GetCursorPosX() + ((ImGui::GetCurrentWindow()->Size.x / 2) - (ImGui::CalcTextSize(("Toggle")).x / 2)));
        ImGui::SetCursorPosX(ImGui::GetCursorPosX() - 11);
        ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 9);

        if (LabelClick(("Toggle"), &toggle, unique_id))
        {
            if (toggle)
            {
                hold = false;
                key_bind->mode = TOGGLE;
            }
            else if (hold)
            {
                toggle = false;
                key_bind->mode = HOLD;
            }
            else
            {
                hold = false;
                key_bind->mode = TOGGLE;
            }

            ImGui::CloseCurrentPopup();
        }

        ImGui::EndPopup();
    }
}

void draw_multicombo(std::string name, std::vector<int>& variable, const char* labels[], int count, std::string& preview)
{
    ImGui::Text(((" ") + name).c_str());

    auto hashname = ("##") + name; // we dont want to render name of combo

    for (auto i = 0, j = 0; i < count; i++)
    {
        if (variable[i])
        {

            if (j)
                //preview += (" "); //+ (std::string)labels[i];
                (std::string)labels[i];
            else
                preview = labels[i];

            j++;
        }
    }

    if (ImGui::BeginCombo(hashname.c_str(), preview.c_str())) // draw start
    {
        ImGui::BeginGroup();
        {
            for (auto i = 0; i < count; i++)
                ImGui::Selectable(labels[i], (bool*)&variable[i], ImGuiSelectableFlags_DontClosePopups);
        }
        ImGui::EndGroup();

        ImGui::EndCombo();
    }

    preview = ("None"); // reset preview to use later
}

void draw_semitabs(const char* labels[], int count, int& tab, ImGuiStyle& style)
{

}

__forceinline void tab_start()
{

}

__forceinline void tab_end()
{

}

void lua_edit(std::string window_name)
{
    std::string file_path;

    auto get_dir = [&]() -> void
    {
        static TCHAR path[MAX_PATH];

        if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, NULL, path)))
            file_path = std::string(path) + ("\\Lrimuse.pw\\Scripts\\");

        CreateDirectory(file_path.c_str(), NULL);
        file_path += window_name + (".lua");
    };

    get_dir();
    const char* child_name = (window_name + window_name).c_str();

    ImGui::SetNextWindowSize(ImVec2(700, 700), ImGuiCond_Once);
    ImGui::GetColorU32(ImVec4(40 / 255.f, 40 / 255.f, 40 / 255.f, 1.f));
    ImGui::Begin(window_name.c_str(), nullptr, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
    ImGui::PushStyleVar(ImGuiStyleVar_ScrollbarSize, 5.f);

    static TextEditor editor;

    if (!loaded_editing_script)
    {
        static auto lang = TextEditor::LanguageDefinition::Lua();

        editor.SetLanguageDefinition(lang);
        editor.SetReadOnly(false);

        std::ifstream t(file_path);

        if (t.good())
        {
            std::string str((std::istreambuf_iterator<char>(t)), std::istreambuf_iterator<char>());
            editor.SetText(str);
        }

        loaded_editing_script = true;
    }

    ImGui::SetWindowFontScale(1.f + ((1.0) * 0.5f));

    ImGui::SetWindowSize(ImVec2(ImFloor(500 * (1.f + ((1.0) * 0.5f))), ImFloor(500 * (1.f + ((1.0) * 0.5f)))));
    editor.Render(child_name, ImGui::GetWindowSize() - ImVec2(0, 66 * (1.f + ((1.0) * 0.5f))));

    ImGui::Separator();

    ImGui::SetCursorPosX(ImGui::GetCursorPosX() + ImGui::GetWindowSize().x - (16.f * (1.f + ((1.0) * 0.5f))) - (250.f * (1.f + ((1.0) * 0.5f))));
    ImGui::BeginGroup();

    if (ImGui::CustomButton(("Save"), (("Save") + window_name).c_str(), ImVec2(40 * (1.f + ((1.0) * 0.5f)), 0), true, c_menu::get().skeet_menu, ("")))
    {
        std::ofstream out;

        out.open(file_path);
        out << editor.GetText() << std::endl;
        out.close();
    }

    ImGui::SameLine();

    if (ImGui::CustomButton(("Close"), (("Close") + window_name).c_str(), ImVec2(40 * (1.f + ((1.0) * 0.5f)), 0), ImGuiItemFlags_ButtonRepeat, c_menu::get().skeet_menu, ("")))
    {
        g_ctx.globals.focused_on_input = false;
        loaded_editing_script = false;
        editing_script.clear();
    }

    ImGui::EndGroup();

    ImGui::PopStyleVar();
    ImGui::End();
}

static int tab = 0;

void c_menu::draw(bool is_open)
{
    static float m_alpha = 0.0002f;
    m_alpha = math::clamp(m_alpha + (8.f * (is_open ? 1.f : -1.f)), 0.0001f, 1.f);

    public_alpha = m_alpha;

    if (m_alpha <= 0.0001f)
        return;

    ImGui::PushStyleVar(ImGuiStyleVar_Alpha, m_alpha);

    if (!menu_setupped)
        menu_setup(ImGui::GetStyle());

    ImGui::PushStyleColor(ImGuiCol_ScrollbarGrab, ImVec4(ImGui::GetStyle().Colors[ImGuiCol_ScrollbarGrab].x, ImGui::GetStyle().Colors[ImGuiCol_ScrollbarGrab].y, ImGui::GetStyle().Colors[ImGuiCol_ScrollbarGrab].z, m_alpha));

    ImGui::Begin("ThighHighs & Tranny hake", nullptr, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoScrollWithMouse | ImGuiWindowFlags_NoTitleBar);
    {

        ImGui::BeginChild("Complete Border", ImVec2(660.f, 640.f), false);
        {
            //ImGui::Image(bg, ImVec2(648.f, 628.f));
        }
        ImGui::EndChild();

        ImGui::SameLine(6.f);

        style->Colors[ImGuiCol_ChildBg] = ImColor(0, 0, 0, 0);

        ImGui::BeginChild("Menu Contents", ImVec2(660.f, 640.f), false);
        {

            ImGui::ColorBar("unicorn", ImVec2(648.f, 2.f));

            style->ItemSpacing = ImVec2(0.f, -1.f);

            ImGui::BeginTabs("Tabs", ImVec2(0.0000001f, 622.f), false);
            {

                style->ItemSpacing = ImVec2(0.f, 0.f);

                style->ButtonTextAlign = ImVec2(0.5f, 0.47f);

                ImGui::PushFont(skeet_icon);

                switch (tab)
                {

                case 0:
                    ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));

                    if (ImGui::SelectedTab("A", ImVec2(75.f, 66.f))) tab = 0;
                    if (ImGui::Tab("G", ImVec2(75.f, 66.f))) tab = 1;
                    if (ImGui::Tab("B", ImVec2(75.f, 66.f))) tab = 2;
                    if (ImGui::Tab("C", ImVec2(75.f, 66.f))) tab = 3;
                    if (ImGui::Tab("F", ImVec2(75.f, 66.f))) tab = 4;
                    if (ImGui::Tab("D", ImVec2(75.f, 66.f))) tab = 5;
                    //if (ImGui::Tab("E", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::Tab("H", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::Tab("I", ImVec2(75.f, 66.f))) tab = 7;

                    ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
                    break;
                case 1:
                    ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));

                    if (ImGui::Tab("A", ImVec2(75.f, 66.f))) tab = 0;
                    if (ImGui::SelectedTab("G", ImVec2(75.f, 66.f))) tab = 1;
                    if (ImGui::Tab("B", ImVec2(75.f, 66.f))) tab = 2;
                    if (ImGui::Tab("C", ImVec2(75.f, 66.f))) tab = 3;
                    if (ImGui::Tab("F", ImVec2(75.f, 66.f))) tab = 4;
                    if (ImGui::Tab("D", ImVec2(75.f, 66.f))) tab = 5;
                    //if (ImGui::Tab("E", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::Tab("H", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::Tab("I", ImVec2(75.f, 66.f))) tab = 7;

                    ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
                    break;
                case 2:
                    ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));

                    if (ImGui::Tab("A", ImVec2(75.f, 66.f))) tab = 0;
                    if (ImGui::Tab("G", ImVec2(75.f, 66.f))) tab = 1;
                    if (ImGui::SelectedTab("B", ImVec2(75.f, 66.f))) tab = 2;
                    if (ImGui::Tab("C", ImVec2(75.f, 66.f))) tab = 3;
                    if (ImGui::Tab("F", ImVec2(75.f, 66.f))) tab = 4;
                    if (ImGui::Tab("D", ImVec2(75.f, 66.f))) tab = 5;
                    //if (ImGui::Tab("E", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::Tab("H", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::Tab("I", ImVec2(75.f, 66.f))) tab = 7;

                    ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
                    break;
                case 3:
                    ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));

                    if (ImGui::Tab("A", ImVec2(75.f, 66.f))) tab = 0;
                    if (ImGui::Tab("G", ImVec2(75.f, 66.f))) tab = 1;
                    if (ImGui::Tab("B", ImVec2(75.f, 66.f))) tab = 2;
                    if (ImGui::SelectedTab("C", ImVec2(75.f, 66.f))) tab = 3;
                    if (ImGui::Tab("F", ImVec2(75.f, 66.f))) tab = 4;
                    if (ImGui::Tab("D", ImVec2(75.f, 66.f))) tab = 5;
                    //if (ImGui::Tab("E", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::Tab("H", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::Tab("I", ImVec2(75.f, 66.f))) tab = 7;

                    ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
                    break;
                case 4:
                    ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));

                    if (ImGui::Tab("A", ImVec2(75.f, 66.f))) tab = 0;
                    if (ImGui::Tab("G", ImVec2(75.f, 66.f))) tab = 1;
                    if (ImGui::Tab("B", ImVec2(75.f, 66.f))) tab = 2;
                    if (ImGui::Tab("C", ImVec2(75.f, 66.f))) tab = 3;
                    if (ImGui::SelectedTab("F", ImVec2(75.f, 66.f))) tab = 4;
                    if (ImGui::Tab("D", ImVec2(75.f, 66.f))) tab = 5;
                    //if (ImGui::Tab("E", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::Tab("H", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::Tab("I", ImVec2(75.f, 66.f))) tab = 7;

                    ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
                    break;
                case 5:
                    ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));

                    if (ImGui::Tab("A", ImVec2(75.f, 66.f))) tab = 0;
                    if (ImGui::Tab("G", ImVec2(75.f, 66.f))) tab = 1;
                    if (ImGui::Tab("B", ImVec2(75.f, 66.f))) tab = 2;
                    if (ImGui::Tab("C", ImVec2(75.f, 66.f))) tab = 3;
                    if (ImGui::Tab("F", ImVec2(75.f, 66.f))) tab = 4;
                    if (ImGui::SelectedTab("D", ImVec2(75.f, 66.f))) tab = 5;
                    //if (ImGui::Tab("E", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::Tab("H", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::Tab("I", ImVec2(75.f, 66.f))) tab = 7;

                    ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
                    break;
                case 6:
                    ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));

                    if (ImGui::Tab("A", ImVec2(75.f, 66.f))) tab = 0;
                    if (ImGui::Tab("G", ImVec2(75.f, 66.f))) tab = 1;
                    if (ImGui::Tab("B", ImVec2(75.f, 66.f))) tab = 2;
                    if (ImGui::Tab("C", ImVec2(75.f, 66.f))) tab = 3;
                    if (ImGui::Tab("F", ImVec2(75.f, 66.f))) tab = 4;
                    if (ImGui::Tab("D", ImVec2(75.f, 66.f))) tab = 5;
                    //if (ImGui::SelectedTab("E", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::SelectedTab("H", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::Tab("I", ImVec2(75.f, 66.f))) tab = 7;

                    ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
                    break;
                case 7:
                    ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));

                    if (ImGui::Tab("A", ImVec2(75.f, 66.f))) tab = 0;
                    if (ImGui::Tab("G", ImVec2(75.f, 66.f))) tab = 1;
                    if (ImGui::Tab("B", ImVec2(75.f, 66.f))) tab = 2;
                    if (ImGui::Tab("C", ImVec2(75.f, 66.f))) tab = 3;
                    if (ImGui::Tab("F", ImVec2(75.f, 66.f))) tab = 4;
                    if (ImGui::Tab("D", ImVec2(75.f, 66.f))) tab = 5;
                    //if (ImGui::Tab("E", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::Tab("H", ImVec2(75.f, 66.f))) tab = 6;
                    if (ImGui::SelectedTab("I", ImVec2(75.f, 66.f))) tab = 7;

                    ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
                    break;
                }

                ImGui::PopFont();

                style->ButtonTextAlign = ImVec2(0.5f, 0.5f);

            } ImGui::EndTabs();

            ImGui::SameLine(75.f);

            ImGui::BeginChild("Tab Contents", ImVec2(572.f, 622.f), false);
            {

                style->Colors[ImGuiCol_Border] = ImColor(0, 0, 0, 0);

                switch (tab)
                {

                case 0:
                    Aimbot();
                    break;
                case 1:
                    Antiaim();
                    break;
                case 2:
                    Legit();
                    break;
                case 3:
                    Visuals();
                    break;
                case 4:
                    Chams();
                    break;
                case 5:
                    Misc();
                    break;
                case 6:
                    Configurations();
                    break;
                case 7:
                    Luas();
                    break;
                }

                style->Colors[ImGuiCol_Border] = ImColor(10, 10, 10, 255);

            } ImGui::EndChild();

            style->ItemSpacing = ImVec2(4.f, 4.f);
            style->Colors[ImGuiCol_ChildBg] = ImColor(17, 17, 17, 255);

        } ImGui::EndChild();

        ImGui::PushFont(skeet_menu);

        if (!editing_script.empty())
            lua_edit(editing_script);

        ImGui::PopFont();
    }
    ImGui::End();
}

void c_menu::Legit()
{
    ImGui::PushFont(skeet_menu);

    ImGuiStyle* style = &ImGui::GetStyle();
    InsertSpacer("Top Spacer");

    const char* legit_weapons[6] = { ("Deagle"), ("Pistols"), ("Rifles"), ("SMGs"), ("Snipers"), ("Heavy") };
    const char* hitbox_legit[3] = { ("Nearest"), ("Head"), ("Body") };

    static int weapontab_legit = 0;

    InsertGroupBoxTop(("Weapon Selection"), ImVec2(537.f, 61.f));
    {
        ImGui::Columns(6, nullptr, false);
        ImGui::PushFont(weapon_font);
        style->ButtonTextAlign = ImVec2(0.8f, 0.75f);
        ImGui::PushItemWidth(158.f);

        if (ImGui::TabButton("J", ImVec2(50, 45))) weapontab_legit = 0;

        ImGui::NextColumn();
        {
            if (ImGui::TabButton("C", ImVec2(50, 45))) weapontab_legit = 1;
        }
        ImGui::NextColumn();
        {
            if (ImGui::TabButton("W", ImVec2(50, 45))) weapontab_legit = 2;
        }
        ImGui::NextColumn();
        {
            if (ImGui::TabButton("N", ImVec2(62, 45))) weapontab_legit = 3;
        }
        ImGui::NextColumn();
        {
            if (ImGui::TabButton("Z", ImVec2(62, 45))) weapontab_legit = 4;
        }
        ImGui::NextColumn();
        {
            if (ImGui::TabButton("d", ImVec2(62, 45))) weapontab_legit = 5;
        }

        ImGui::PopFont();

    } InsertEndGroupBoxTop(("Weapon Selection Cover"), ("Weapon Selection"), ImVec2(536.f, 11.f));

    InsertSpacer(("Weapon Selection - Main Group boxes Spacer"));

    ImGui::Columns(2, NULL, false);
    {
        InsertGroupBoxLeft("Aimbot", 427.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.4f);
            ImGui::CustomSpacing(9.f);
            ImGui::PushItemWidth(158.f);

            InsertCheckbox(("Enable"), g_cfg.legitbot.enabled);

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_keybind((" Enable key"), &g_cfg.legitbot.key, ("##HOTKEY_LGBT_KEY"));

            if (g_cfg.legitbot.enabled)
                g_cfg.ragebot.enable = false;

            InsertCheckbox(("Friendly fire"), g_cfg.legitbot.friendly_fire);
            InsertCheckbox(("Automatic pistols"), g_cfg.legitbot.autopistol);
            InsertCheckbox(("Automatic scope"), g_cfg.legitbot.autoscope);

            if (g_cfg.legitbot.autoscope)
                InsertCheckbox(("Unscope after shot"), g_cfg.legitbot.unscope);

            InsertCheckbox(("Snipers in zoom only"), g_cfg.legitbot.sniper_in_zoom_only);

            InsertCheckbox(("Enable in air"), g_cfg.legitbot.do_if_local_in_air);
            InsertCheckbox(("Enable if flashed"), g_cfg.legitbot.do_if_local_flashed);
            InsertCheckbox(("Enable in smoke"), g_cfg.legitbot.do_if_enemy_in_smoke);

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_keybind((" Automatic fire key"), &g_cfg.legitbot.autofire_key, ("##HOTKEY_AUTOFIRE_LGBT_KEY"));
            InsertSliderInt((" Automatic fire delay"), g_cfg.legitbot.autofire_delay, 0, 12, false, (!g_cfg.legitbot.autofire_delay ? ("None") : (g_cfg.legitbot.autofire_delay == 1 ? ("%d tick") : ("%d ticks"))));

        } InsertEndGroupBoxLeft("Aimbot Cover", "Aimbot");
    }
    ImGui::NextColumn(); {

        InsertGroupBoxRight("Weapon", 282.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);
            ImGui::PushItemWidth(158.f);

            //InsertCombo(("Current weapon"), hooks::legit_weapon, legit_weapons, ARRAYSIZE(legit_weapons));

            switch (weapontab_legit)
            {
            case 0:

                InsertCombo(("Hitbox"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].priority, hitbox_legit, ARRAYSIZE(hitbox_legit));

                InsertCheckbox(("Automatic stop"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].auto_stop);

                InsertCombo(("Field of view type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].fov_type, LegitFov, ARRAYSIZE(LegitFov));
                InsertSlider((" Field of view amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].fov, 0.f, 30.f, ("%.2f"));

                ImGui::Spacing();

                InsertSlider((" Silent field of view"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].silent_fov, 0.f, 30.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 0].silent_fov ? ("None") : ("%.2f"))); //-V550

                ImGui::Spacing();

                InsertCombo(("Smooth type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].smooth_type, LegitSmooth, ARRAYSIZE(LegitSmooth));
                InsertSlider((" Smooth amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].smooth, 1.f, 12.f, ("%.1f"));

                ImGui::Spacing();

                InsertSliderInt((" Automatic wall damage"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].awall_dmg, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 0].awall_dmg ? ("None") : ("%d")));
                InsertSliderInt((" Automatic fire hitchance"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].autofire_hitchance, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 0].autofire_hitchance ? ("None") : ("%d")));
                InsertSlider((" Target switch delay"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].target_switch_delay, 0.f, 1.f, ("%.0f"));

                break;
            case 1:

                InsertCombo(("Hitbox"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].priority, hitbox_legit, ARRAYSIZE(hitbox_legit));

                InsertCheckbox(("Automatic stop"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].auto_stop);

                InsertCombo(("Field of view type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].fov_type, LegitFov, ARRAYSIZE(LegitFov));
                InsertSlider((" Field of view amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].fov, 0.f, 30.f, ("%.2f"));

                ImGui::Spacing();

                InsertSlider((" Silent field of view"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].silent_fov, 0.f, 30.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 1].silent_fov ? ("None") : ("%.2f"))); //-V550

                ImGui::Spacing();

                InsertCombo(("Smooth type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].smooth_type, LegitSmooth, ARRAYSIZE(LegitSmooth));
                InsertSlider((" Smooth amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].smooth, 1.f, 12.f, ("%.1f"));

                ImGui::Spacing();

                InsertSliderInt((" Automatic wall damage"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].awall_dmg, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 1].awall_dmg ? ("None") : ("%d")));
                InsertSliderInt((" Automatic fire hitchance"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].autofire_hitchance, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 1].autofire_hitchance ? ("None") : ("%d")));
                InsertSlider((" Target switch delay"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].target_switch_delay, 0.f, 1.f, ("%.0f"));

                break;
            case 2:

                InsertCombo(("Hitbox"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].priority, hitbox_legit, ARRAYSIZE(hitbox_legit));

                InsertCheckbox(("Automatic stop"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].auto_stop);

                InsertCombo(("Field of view type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].fov_type, LegitFov, ARRAYSIZE(LegitFov));
                InsertSlider((" Field of view amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].fov, 0.f, 30.f, ("%.2f"));

                ImGui::Spacing();

                InsertSlider((" Silent field of view"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].silent_fov, 0.f, 30.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 2].silent_fov ? ("None") : ("%.2f"))); //-V550

                ImGui::Spacing();

                InsertCombo(("Smooth type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].smooth_type, LegitSmooth, ARRAYSIZE(LegitSmooth));
                InsertSlider((" Smooth amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].smooth, 1.f, 12.f, ("%.1f"));

                ImGui::Spacing();

                InsertSliderInt((" Automatic wall damage"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].awall_dmg, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 2].awall_dmg ? ("None") : ("%d")));
                InsertSliderInt((" Automatic fire hitchance"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].autofire_hitchance, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 2].autofire_hitchance ? ("None") : ("%d")));
                InsertSlider((" Target switch delay"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].target_switch_delay, 0.f, 1.f, ("%.0f"));

                break;
            case 3:

                InsertCombo(("Hitbox"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].priority, hitbox_legit, ARRAYSIZE(hitbox_legit));

                InsertCheckbox(("Automatic stop"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].auto_stop);

                InsertCombo(("Field of view type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].fov_type, LegitFov, ARRAYSIZE(LegitFov));
                InsertSlider((" Field of view amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].fov, 0.f, 30.f, ("%.2f"));

                ImGui::Spacing();

                InsertSlider((" Silent field of view"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].silent_fov, 0.f, 30.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 3].silent_fov ? ("None") : ("%.2f"))); //-V550

                ImGui::Spacing();

                InsertCombo(("Smooth type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].smooth_type, LegitSmooth, ARRAYSIZE(LegitSmooth));
                InsertSlider((" Smooth amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].smooth, 1.f, 12.f, ("%.1f"));

                ImGui::Spacing();

                InsertSliderInt((" Automatic wall damage"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].awall_dmg, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 3].awall_dmg ? ("None") : ("%d")));
                InsertSliderInt((" Automatic fire hitchance"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].autofire_hitchance, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 3].autofire_hitchance ? ("None") : ("%d")));
                InsertSlider((" Target switch delay"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].target_switch_delay, 0.f, 1.f, ("%.0f"));

                break;
            case 4:

                InsertCombo(("Hitbox"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].priority, hitbox_legit, ARRAYSIZE(hitbox_legit));

                InsertCheckbox(("Automatic stop"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].auto_stop);

                InsertCombo(("Field of view type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].fov_type, LegitFov, ARRAYSIZE(LegitFov));
                InsertSlider((" Field of view amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].fov, 0.f, 30.f, ("%.2f"));

                ImGui::Spacing();

                InsertSlider((" Silent field of view"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].silent_fov, 0.f, 30.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 4].silent_fov ? ("None") : ("%.2f"))); //-V550

                ImGui::Spacing();

                InsertCombo(("Smooth type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].smooth_type, LegitSmooth, ARRAYSIZE(LegitSmooth));
                InsertSlider((" Smooth amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].smooth, 1.f, 12.f, ("%.1f"));

                ImGui::Spacing();

                InsertSliderInt((" Automatic wall damage"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].awall_dmg, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 4].awall_dmg ? ("None") : ("%d")));
                InsertSliderInt((" Automatic fire hitchance"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].autofire_hitchance, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 4].autofire_hitchance ? ("None") : ("%d")));
                InsertSlider((" Target switch delay"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].target_switch_delay, 0.f, 1.f, ("%.0f"));

                break;
            case 5:

                InsertCombo(("Hitbox"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].priority, hitbox_legit, ARRAYSIZE(hitbox_legit));

                InsertCheckbox(("Automatic stop"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].auto_stop);

                InsertCombo(("Field of view type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].fov_type, LegitFov, ARRAYSIZE(LegitFov));
                InsertSlider((" Field of view amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].fov, 0.f, 30.f, ("%.2f"));

                ImGui::Spacing();

                InsertSlider((" Silent field of view"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].silent_fov, 0.f, 30.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 5].silent_fov ? ("None") : ("%.2f"))); //-V550

                ImGui::Spacing();

                InsertCombo(("Smooth type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].smooth_type, LegitSmooth, ARRAYSIZE(LegitSmooth));
                InsertSlider((" Smooth amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].smooth, 1.f, 12.f, ("%.1f"));

                ImGui::Spacing();

                InsertSliderInt((" Automatic wall damage"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].awall_dmg, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 5].awall_dmg ? ("None") : ("%d")));
                InsertSliderInt((" Automatic fire hitchance"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].autofire_hitchance, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 5].autofire_hitchance ? ("None") : ("%d")));
                InsertSlider((" Target switch delay"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].target_switch_delay, 0.f, 1.f, ("%.0f"));

                break;
            }

        } InsertEndGroupBoxRight("Weapon Cover", "Weapon");

        InsertSpacer("Weapon - Other Spacer");

        InsertGroupBoxRight("RCS", 123.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);
            ImGui::PushItemWidth(158.f);

            InsertCombo(("Type"), g_cfg.legitbot.weapon[hooks::legit_weapon].rcs_type, RCSType, ARRAYSIZE(RCSType));
            InsertSlider((" Amount"), g_cfg.legitbot.weapon[hooks::legit_weapon].rcs, 0.f, 100.f, ("%.0f%%"), 1.f);

            if (g_cfg.legitbot.weapon[hooks::legit_weapon].rcs > 0)
            {
                InsertSlider((" Custom field of view"), g_cfg.legitbot.weapon[hooks::legit_weapon].custom_rcs_fov, 0.f, 30.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon].custom_rcs_fov ? ("None") : ("%.2f"))); //-V550
                InsertSlider((" Custom smooth"), g_cfg.legitbot.weapon[hooks::legit_weapon].custom_rcs_smooth, 0.f, 12.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon].custom_rcs_smooth ? ("None") : ("%.1f"))); //-V550
            }

        } InsertEndGroupBoxRight("RCS Cover", "RCS");
    }
    ImGui::PopFont();
}

void c_menu::Aimbot()
{
    ImGui::PushFont(skeet_menu);

    ImGuiStyle* style = &ImGui::GetStyle();
    InsertSpacer("Top Spacer");

    static int weapontab_rage = 0;

    InsertGroupBoxTop(("Weapon Selection"), ImVec2(535.f, 61.f));
    {

        ImGui::Columns(8, nullptr, false);
        ImGui::PushFont(weapon_font);
        style->ButtonTextAlign = ImVec2(0.4f, 0.75f);
        ImGui::PushItemWidth(158.f);

        if (ImGui::TabButton("J", ImVec2(50, 45))) weapontab_rage = 0;

        ImGui::NextColumn();
        {
            if (ImGui::TabButton("C", ImVec2(50, 45))) weapontab_rage = 1;
        }
        ImGui::NextColumn();
        {
            if (ImGui::TabButton("N", ImVec2(50, 45))) weapontab_rage = 2;
        }
        ImGui::NextColumn();
        {
            if (ImGui::TabButton("d", ImVec2(62, 45))) weapontab_rage = 3;
        }
        //ImGui::NextColumn();
        //{
            //if (ImGui::TabButton("f", ImVec2(62, 45))) weapontab_rage = 4;
        //}
        ImGui::NextColumn();
        {
            if (ImGui::TabButton("W", ImVec2(62, 45))) weapontab_rage = 4;
        }
        ImGui::NextColumn();
        {
            if (ImGui::TabButton("a", ImVec2(62, 45))) weapontab_rage = 5;
        }
        ImGui::NextColumn();
        {
            if (ImGui::TabButton("Z", ImVec2(62, 45))) weapontab_rage = 6;
        }
        ImGui::NextColumn();
        {
            if (ImGui::TabButton("X", ImVec2(62, 45))) weapontab_rage = 7;
        }

        ImGui::PopFont();

    } InsertEndGroupBoxTop(("Weapon Selection Cover"), ("Weapon Selection"), ImVec2(536.f, 11.f));

    InsertSpacer(("Weapon Selection - Main Group boxes Spacer"));

    ImGui::Columns(2, NULL, false);
    {
        InsertGroupBoxLeft("Ragebot", 427.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.4f);
            ImGui::CustomSpacing(9.f);
            ImGui::PushItemWidth(158.f);

            InsertCheckbox("Enable", g_cfg.ragebot.enable);

            if (g_cfg.ragebot.enable)
                g_cfg.legitbot.enabled = false;

            InsertSliderInt((" Field of view"), g_cfg.ragebot.field_of_view, 1, 180, ("%d"));
            InsertCheckbox("Silent aim", g_cfg.ragebot.silent_aim);
            InsertCheckbox("Automatic wall", g_cfg.ragebot.autowall);
            InsertCheckbox("Aimbot with zeus", g_cfg.ragebot.zeus_bot);
            InsertCheckbox("Aimbot with knife", g_cfg.ragebot.knife_bot);
            InsertCheckbox("Automatic fire", g_cfg.ragebot.autoshoot);

            ImGui::Spacing();
            InsertCheckbox("Double tap", g_cfg.ragebot.double_tap);

            if (g_cfg.ragebot.double_tap)
            {
                ImGui::SameLine();
                draw_keybind((""), &g_cfg.ragebot.double_tap_key, ("##HOTKEY_DT"));
                InsertSliderInt((" Shift value##DT"), g_cfg.ragebot.double_tap_shift_value, 1, 16, ("%d"));
                InsertCheckbox(("Slow teleport"), g_cfg.ragebot.slow_teleport);
            }

            InsertCheckbox("Hide shots", g_cfg.antiaim.hide_shots);

            if (g_cfg.antiaim.hide_shots)
            {
                ImGui::SameLine();
                draw_keybind((""), &g_cfg.antiaim.hide_shots_key, ("##HOTKEY_HIDESHOTS"));
            }

            style->ItemSpacing = ImVec2(0, 0);
            style->WindowPadding = ImVec2(6, 6);

        } InsertEndGroupBoxLeft("Aimbot Cover", "Ragebot");
    }
    ImGui::NextColumn();
    {
        const char* rage_weapons[8] = { ("Revolver / Deagle"), ("Pistols"), ("SMGs"), ("Rifles"), ("Auto"), ("Scout"), ("AWP"), ("Heavy") };

        InsertGroupBoxRight("Weapon", 427.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            //InsertCombo(("Current weapon"), hooks::rage_weapon, rage_weapons, ARRAYSIZE(rage_weapons));

            switch (weapontab_rage)
            {
            case 0:

                InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].selection_type, selection, ARRAYSIZE(selection));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);

                InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].static_point_scale);

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 0].static_point_scale)
                {
                    InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 0].head_scale ? ("%.2f") : ("None"));
                    InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 0].body_scale ? ("%.2f") : ("None"));
                }

                InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].max_misses);

                InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].max_misses_amount, 0, 6, ("%d"));

                InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].prefer_safe_points);
                InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].prefer_body_aim);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));

                InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].autostop);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);

                InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].hitchance);

                InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].hitchance_amount, 1, 100, ("%d"));

                InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].minimum_visible_damage, 1, 120, ("%d"));

                InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].minimum_damage, 1, 120, ("%d"));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 0].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 0].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 0].damage_override_key.key < KEY_MAX)
                    InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].minimum_override_damage, 1, 120, ("%d"));

            break;

            case 1:

                InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].selection_type, selection, ARRAYSIZE(selection));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);

                InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon].static_point_scale);

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 1].static_point_scale)
                {
                    InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 1].head_scale ? ("%.2f") : ("None"));
                    InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 1].body_scale ? ("%.2f") : ("None"));
                }

                InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].max_misses);

                InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].max_misses_amount, 0, 6, ("%d"));

                InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].prefer_safe_points);
                InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].prefer_body_aim);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));

                InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].autostop);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);

                InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].hitchance);

                InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].hitchance_amount, 1, 100, ("%d"));

                InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].minimum_visible_damage, 1, 120, ("%d"));

                InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].minimum_damage, 1, 120, ("%d"));

                draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 1].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 1].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 1].damage_override_key.key < KEY_MAX)
                    InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].minimum_override_damage, 1, 120, ("%d"));

            break;

            case 2:

                InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].selection_type, selection, ARRAYSIZE(selection));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);

                InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon =2].static_point_scale);

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 2].static_point_scale)
                {
                    InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 2].head_scale ? ("%.2f") : ("None"));
                    InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 2].body_scale ? ("%.2f") : ("None"));
                }

                InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].max_misses);

                InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].max_misses_amount, 0, 6, ("%d"));

                InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].prefer_safe_points);
                InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].prefer_body_aim);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));

                InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].autostop);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);

                InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].hitchance);

                InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].hitchance_amount, 1, 100, ("%d"));

                InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].minimum_visible_damage, 1, 120, ("%d"));

                InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].minimum_damage, 1, 120, ("%d"));

                draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 2].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 2].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 2].damage_override_key.key < KEY_MAX)
                    InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].minimum_override_damage, 1, 120, ("%d"));

            break;

            case 3:

                InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].selection_type, selection, ARRAYSIZE(selection));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);

                InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].static_point_scale);

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 7].static_point_scale)
                {
                    InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 7].head_scale ? ("%.2f") : ("None"));
                    InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 7].body_scale ? ("%.2f") : ("None"));
                }

                InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].max_misses);

                InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].max_misses_amount, 0, 6, ("%d"));

                InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].prefer_safe_points);
                InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].prefer_body_aim);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));

                InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].autostop);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);

                InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].hitchance);

                InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].hitchance_amount, 1, 100, ("%d"));

                InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].minimum_visible_damage, 1, 120, ("%d"));

                InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].minimum_damage, 1, 120, ("%d"));

                draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 7].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 7].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 7].damage_override_key.key < KEY_MAX)
                    InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].minimum_override_damage, 1, 120, ("%d"));

            break;

            case 4:

                InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].selection_type, selection, ARRAYSIZE(selection));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);

                InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].static_point_scale);

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 3].static_point_scale)
                {
                    InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 3].head_scale ? ("%.2f") : ("None"));
                    InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 3].body_scale ? ("%.2f") : ("None"));
                }

                InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].max_misses);

                InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].max_misses_amount, 0, 6, ("%d"));

                InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].prefer_safe_points);
                InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].prefer_body_aim);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));

                InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].autostop);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);

                InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].hitchance);

                InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].hitchance_amount, 1, 100, ("%d"));

                InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].minimum_visible_damage, 1, 120, ("%d"));

                InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].minimum_damage, 1, 120, ("%d"));

                draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 3].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 3].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 3].damage_override_key.key < KEY_MAX)
                    InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].minimum_override_damage, 1, 120, ("%d"));

            break;

            case 5:

                InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].selection_type, selection, ARRAYSIZE(selection));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);

                InsertCheckbox("Automatic scope", g_cfg.ragebot.weapon[hooks::rage_weapon = 5].autoscope);

                InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].static_point_scale);

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 5].static_point_scale)
                {
                    InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 5].head_scale ? ("%.2f") : ("None"));
                    InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 5].body_scale ? ("%.2f") : ("None"));
                }

                InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].max_misses);

                InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].max_misses_amount, 0, 6, ("%d"));

                InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].prefer_safe_points);
                InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].prefer_body_aim);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));

                InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].autostop);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);

                InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].hitchance);

                InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].hitchance_amount, 1, 100, ("%d"));

                InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].minimum_visible_damage, 1, 120, ("%d"));

                InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].minimum_damage, 1, 120, ("%d"));

                draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 5].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 5].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 5].damage_override_key.key < KEY_MAX)
                    InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon].minimum_override_damage, 1, 120, ("%d"));

            break;

            case 6:

                InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].selection_type, selection, ARRAYSIZE(selection));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);

                InsertCheckbox("Automatic scope", g_cfg.ragebot.weapon[hooks::rage_weapon = 6].autoscope);

                InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].static_point_scale);

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 6].static_point_scale)
                {
                    InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 6].head_scale ? ("%.2f") : ("None"));
                    InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 6].body_scale ? ("%.2f") : ("None"));
                }

                InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].max_misses);

                InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].max_misses_amount, 0, 6, ("%d"));

                InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].prefer_safe_points);
                InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].prefer_body_aim);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));

                InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].autostop);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);

                InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].hitchance);

                InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].hitchance_amount, 1, 100, ("%d"));

                InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].minimum_visible_damage, 1, 120, ("%d"));

                InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].minimum_damage, 1, 120, ("%d"));

                draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 6].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 6].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 6].damage_override_key.key < KEY_MAX)
                    InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].minimum_override_damage, 1, 120, ("%d"));

            break;

            case 7:

                InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].selection_type, selection, ARRAYSIZE(selection));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);

                InsertCheckbox("Automatic scope", g_cfg.ragebot.weapon[hooks::rage_weapon = 4].autoscope);

                InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].static_point_scale);

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 4].static_point_scale)
                {
                    InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 4].head_scale ? ("%.2f") : ("None"));
                    InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 4].body_scale ? ("%.2f") : ("None"));
                }

                InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].max_misses);

                InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].max_misses_amount, 0, 6, ("%d"));

                InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].prefer_safe_points);
                InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].prefer_body_aim);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));

                InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].autostop);

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);

                InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].hitchance);

                InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].hitchance_amount, 1, 100, ("%d"));

                InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].minimum_visible_damage, 1, 120, ("%d"));

                InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].minimum_damage, 1, 120, ("%d"));

                draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 4].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));

                if (g_cfg.ragebot.weapon[hooks::rage_weapon = 4].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 4].damage_override_key.key < KEY_MAX)
                    InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].minimum_override_damage, 1, 120, ("%d"));

                break;
            }

        } InsertEndGroupBoxRight("Weapon Cover", "Weapon");
    }
    ImGui::PopFont();
}

void c_menu::Antiaim()
{
    ImGui::PushFont(skeet_menu);

    ImGuiStyle* style = &ImGui::GetStyle();
    InsertSpacer("Top Spacer");

    ImGui::Columns(2, NULL, false);
    {
        InsertGroupBoxLeft("Anti-aim", 506.f);
        {
            static auto type = 0;

            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            InsertCheckbox(("Enable"), g_cfg.antiaim.enable);
            
            InsertCombo(("Anti-aim type"), g_cfg.antiaim.antiaim_type, antiaim_type, ARRAYSIZE(antiaim_type));

            if (g_cfg.antiaim.antiaim_type)
            {
                InsertCombo(("Desync"), g_cfg.antiaim.desync, desync, ARRAYSIZE(desync));

                if (g_cfg.antiaim.desync)
                {
                    InsertCombo(("LBY type"), g_cfg.antiaim.legit_lby_type, lby_type, ARRAYSIZE(lby_type));

                    if (g_cfg.antiaim.desync == 1)
                    {
                        draw_keybind(("Invert desync"), &g_cfg.antiaim.flip_desync, ("##HOTKEY_INVERT_DESYNC"));
                    }
                }
            }
            else
            {
                InsertCombo(("Movement type"), type, movement_type, ARRAYSIZE(movement_type));
                InsertCombo(("Pitch"), g_cfg.antiaim.type[type].pitch, pitch, ARRAYSIZE(pitch));
                InsertCombo(("Yaw"), g_cfg.antiaim.type[type].yaw, yaw, ARRAYSIZE(yaw));
                InsertCombo(("Base angle"), g_cfg.antiaim.type[type].base_angle, baseangle, ARRAYSIZE(baseangle));

                if (g_cfg.antiaim.type[type].yaw)
                {
                    InsertSliderInt(g_cfg.antiaim.type[type].yaw == 1 ? (" Jitter range") : (" Spin range"), g_cfg.antiaim.type[type].range, 1, 180, ("%d°"));

                    if (g_cfg.antiaim.type[type].yaw == 2)
                        InsertSliderInt((" Spin speed"), g_cfg.antiaim.type[type].speed, 1, 15, ("%d°"));

                }

                InsertCombo(("Desync"), g_cfg.antiaim.type[type].desync, desync, ARRAYSIZE(desync));

                if (g_cfg.antiaim.type[type].desync)
                {
                    if (type == ANTIAIM_STAND)
                    {
                        InsertCombo(("LBY type"), g_cfg.antiaim.lby_type, lby_type, ARRAYSIZE(lby_type));
                    }

                    if (type != ANTIAIM_STAND || !g_cfg.antiaim.lby_type)
                    {
                        InsertSliderInt((" Desync range"), g_cfg.antiaim.type[type].desync_range, 1, 60 , ("%d°"));
                        InsertSliderInt((" Inverted desync range"), g_cfg.antiaim.type[type].inverted_desync_range, 1, 60, ("%d°"));
                        InsertSliderInt((" Body lean"), g_cfg.antiaim.type[type].body_lean, 0, 100, ("%d°"));
                        InsertSliderInt((" Inverted body lean"), g_cfg.antiaim.type[type].inverted_body_lean, 0, 100, ("%d°"));
                    }

                    if (g_cfg.antiaim.type[type].desync == 1)
                    {
                        ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                        draw_keybind(("Invert desync"), &g_cfg.antiaim.flip_desync, ("##HOTKEY_INVERT_DESYNC"));
                    }
                }

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind(("Manual back"), &g_cfg.antiaim.manual_back, ("##HOTKEY_INVERT_BACK"));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind(("Manual left"), &g_cfg.antiaim.manual_left, ("##HOTKEY_INVERT_LEFT"));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_keybind(("Manual right"), &g_cfg.antiaim.manual_right, ("##HOTKEY_INVERT_RIGHT"));


                if (g_cfg.antiaim.manual_back.key > KEY_NONE && g_cfg.antiaim.manual_back.key < KEY_MAX || g_cfg.antiaim.manual_left.key > KEY_NONE && g_cfg.antiaim.manual_left.key < KEY_MAX || g_cfg.antiaim.manual_right.key > KEY_NONE && g_cfg.antiaim.manual_right.key < KEY_MAX)
                {
                    InsertCheckbox(("Manuals indicator"), g_cfg.antiaim.flip_indicator);
                    ImGui::SameLine();
                    ImGui::ColorEdit(("##invc"), &g_cfg.antiaim.flip_indicator_color, ALPHA);
                }
            }
        } InsertEndGroupBoxLeft("Anti-aim Cover", "Anti-aim");

    }
    ImGui::NextColumn();
    {
        InsertGroupBoxRight("Fake lag", 331.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            InsertCheckbox(("Enable"), g_cfg.antiaim.fakelag);
            InsertCombo(("Fake lag type"), g_cfg.antiaim.fakelag_type, fakelags, ARRAYSIZE(fakelags));

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_multicombo(("Fake lag triggers"), g_cfg.antiaim.fakelag_enablers, lagstrigger, ARRAYSIZE(lagstrigger), preview);

            InsertSliderInt((" Limit"), g_cfg.antiaim.fakelag_limit, 1, 16, ("%d"));

            auto enabled_fakelag_triggers = false;

            for (auto i = 0; i < ARRAYSIZE(lagstrigger); i++)
                if (g_cfg.antiaim.fakelag_enablers[i])
                    enabled_fakelag_triggers = true;

            InsertSliderInt((" Triggers limit"), g_cfg.antiaim.triggers_fakelag_limit, 1, 16, ("%d"));

        }
        InsertEndGroupBoxRight("Fake lag Cover", "Fake lag");

        InsertSpacer("Fake lag - Other Spacer");

        InsertGroupBoxRight("Other", 153.f);
        {


        }
        InsertEndGroupBoxRight("Other Cover", "Other");
    }
    ImGui::PopFont();
}

void c_menu::Visuals()
{
    ImGui::PushFont(skeet_menu);

    ImGuiStyle* style = &ImGui::GetStyle();
    InsertSpacer("Top Spacer");

    ImGui::Columns(2, NULL, false);
    {
        auto player = players_section;

        InsertGroupBoxLeft("Player ESP", 506.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            const char* players_esp[3] = { ("Enemy"), ("Team"), ("Local") };

            InsertCheckbox(("Enable"), g_cfg.player.enable);

            InsertCombo(("Current ESP"), hooks::players_esp, players_esp, ARRAYSIZE(players_esp));

            //auto player = players_section;

            //ImGui::Checkbox(("OOF arrows"), &g_cfg.player.arrows);
            //ImGui::SameLine();
            //ImGui::ColorEdit(("##arrowscolor"), &g_cfg.player.arrows_color, ALPHA);

            //if (g_cfg.player.arrows)
            //{
                //ImGui::SliderInt(("Arrows distance"), &g_cfg.player.distance, 1, 100);
                //ImGui::SliderInt(("Arrows size"), &g_cfg.player.size, 1, 100);
            //}

            InsertCheckbox(("Bounding box"), g_cfg.player.type[hooks::players_esp].box);
            ImGui::SameLine();
            ImGui::ColorEdit(("##boxcolor"), &g_cfg.player.type[hooks::players_esp].box_color, ALPHA);

            InsertCheckbox(("Name"), g_cfg.player.type[hooks::players_esp].name);
            ImGui::SameLine();
            ImGui::ColorEdit(("##namecolor"), &g_cfg.player.type[hooks::players_esp].name_color, ALPHA);

            InsertCheckbox(("Health bar"), g_cfg.player.type[hooks::players_esp].health);
            InsertCheckbox(("Health color"), g_cfg.player.type[hooks::players_esp].custom_health_color);
            ImGui::SameLine();
            ImGui::ColorEdit(("##healthcolor"), &g_cfg.player.type[hooks::players_esp].health_color, ALPHA);

            for (auto i = 0, j = 0; i < ARRAYSIZE(flags); i++)
            {
                if (g_cfg.player.type[hooks::players_esp].flags[i])
                {
                    if (j)
                        preview += (", ") + (std::string)flags[i];
                    else
                        preview = flags[i];

                    j++;
                }
            }

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_multicombo(("Flags"), g_cfg.player.type[hooks::players_esp].flags, flags, ARRAYSIZE(flags), preview);
            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_multicombo(("Weapon"), g_cfg.player.type[hooks::players_esp].weapon, weaponplayer, ARRAYSIZE(weaponplayer), preview);

            if (g_cfg.player.type[hooks::players_esp].weapon[WEAPON_ICON] || g_cfg.player.type[hooks::players_esp].weapon[WEAPON_TEXT])
            {
                ImGui::Spacing();
                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##weapcolor"), &g_cfg.player.type[hooks::players_esp].weapon_color, ALPHA);
                ImGui::Spacing();
            }

            InsertCheckbox(("Ammo bar"), g_cfg.player.type[hooks::players_esp].ammo);
            ImGui::SameLine();
            ImGui::ColorEdit(("##ammocolor"), &g_cfg.player.type[hooks::players_esp].ammobar_color, ALPHA);

            InsertCheckbox(("Footsteps"), g_cfg.player.type[hooks::players_esp].footsteps);
            ImGui::SameLine();
            ImGui::ColorEdit(("##footstepscolor"), &g_cfg.player.type[hooks::players_esp].footsteps_color, ALPHA);

            if (g_cfg.player.type[hooks::players_esp].footsteps)
            {
                InsertSliderInt((" Thickness"), g_cfg.player.type[hooks::players_esp].thickness, 1, 10, ("%d"));
                InsertSliderInt((" Radius"), g_cfg.player.type[hooks::players_esp].radius, 50, 500, ("%d"));
            }

            InsertCheckbox(("Snap lines"), g_cfg.player.type[hooks::players_esp].snap_lines);
            ImGui::SameLine();
            ImGui::ColorEdit(("##snapcolor"), &g_cfg.player.type[hooks::players_esp].snap_lines_color, ALPHA);

            if (g_cfg.ragebot.enable)
            {
                InsertCheckbox(("Aimbot points"), g_cfg.player.show_multi_points);
                ImGui::SameLine();
                ImGui::ColorEdit(("##showmultipointscolor"), &g_cfg.player.show_multi_points_color, ALPHA);
            }

            InsertCheckbox(("Aimbot hitboxes"), g_cfg.player.lag_hitbox);
            ImGui::SameLine();
            ImGui::ColorEdit(("##lagcompcolor"), &g_cfg.player.lag_hitbox_color, ALPHA);
            
            InsertCombo(("Player model T"), g_cfg.player.player_model_t, player_model_t, ARRAYSIZE(player_model_t));

            InsertCombo(("Player model CT"), g_cfg.player.player_model_ct, player_model_ct, ARRAYSIZE(player_model_ct));
            
        } InsertEndGroupBoxLeft("Player ESP Cover", "Player ESP");
    }
    ImGui::NextColumn();
    {
        InsertGroupBoxRight("Other", 506.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_multicombo(("Indicators"), g_cfg.esp.indicators, indicators, ARRAYSIZE(indicators), preview);

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_multicombo(("Removals"), g_cfg.esp.removals, removals, ARRAYSIZE(removals), preview);

            InsertCheckbox(("Fix zoom sensivity"), g_cfg.esp.fix_zoom_sensivity);

            InsertCheckbox(("Grenade prediction"), g_cfg.esp.grenade_prediction);
            ImGui::SameLine();
            ImGui::ColorEdit(("##grenpredcolor"), &g_cfg.esp.grenade_prediction_color, ALPHA);

            if (g_cfg.esp.grenade_prediction)
            {
                InsertCheckbox(("On click"), g_cfg.esp.on_click);
                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Tracer color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##tracergrenpredcolor"), &g_cfg.esp.grenade_prediction_tracer_color, ALPHA);
                ImGui::Spacing();
            }

            InsertCheckbox(("Grenade projectiles"), g_cfg.esp.projectiles);

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (g_cfg.esp.projectiles)
                draw_multicombo(("Grenade ESP"), g_cfg.esp.grenade_esp, proj_combo, ARRAYSIZE(proj_combo), preview);

                if (g_cfg.esp.grenade_esp[GRENADE_ICON] || g_cfg.esp.grenade_esp[GRENADE_TEXT])
                {
                    ImGui::Spacing();
                    ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                    ImGui::Text((" Color "));
                    ImGui::SameLine();
                    ImGui::ColorEdit(("##projectcolor"), &g_cfg.esp.projectiles_color, ALPHA);
                }

            if (g_cfg.esp.grenade_esp[GRENADE_BOX])
            {
                ImGui::Spacing();
                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Box color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##grenade_box_color"), &g_cfg.esp.grenade_box_color, ALPHA);
            }

            if (g_cfg.esp.grenade_esp[GRENADE_GLOW])
            {
                ImGui::Spacing();
                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Glow color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##grenade_glow_color"), &g_cfg.esp.grenade_glow_color, ALPHA);
            }

            InsertCheckbox(("Fire timer"), g_cfg.esp.molotov_timer);
            ImGui::SameLine();
            ImGui::ColorEdit(("##molotovcolor"), &g_cfg.esp.molotov_timer_color, ALPHA);

            InsertCheckbox(("Smoke timer"), g_cfg.esp.smoke_timer);
            ImGui::SameLine();
            ImGui::ColorEdit(("##smokecolor"), &g_cfg.esp.smoke_timer_color, ALPHA);

            InsertCheckbox(("Bomb indicator"), g_cfg.esp.bomb_timer);
            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_multicombo(("Weapon ESP"), g_cfg.esp.weapon, weaponesp, ARRAYSIZE(weaponesp), preview);

            if (g_cfg.esp.weapon[WEAPON_ICON] || g_cfg.esp.weapon[WEAPON_TEXT] || g_cfg.esp.weapon[WEAPON_DISTANCE])
            {
                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##weaponcolor"), &g_cfg.esp.weapon_color, ALPHA);
            }

            if (g_cfg.esp.weapon[WEAPON_BOX])
            {
                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Box color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##weaponboxcolor"), &g_cfg.esp.box_color, ALPHA);
            }

            if (g_cfg.esp.weapon[WEAPON_GLOW])
            {
                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Glow color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##weaponglowcolor"), &g_cfg.esp.weapon_glow_color, ALPHA);
            }

            if (g_cfg.esp.weapon[WEAPON_AMMO])
            {
                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Ammo bar color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##weaponammocolor"), &g_cfg.esp.weapon_ammo_color, ALPHA);
                ImGui::Spacing();
            }

            InsertCheckbox(("Client bullet impacts"), g_cfg.esp.client_bullet_impacts);
            ImGui::SameLine();
            ImGui::ColorEdit(("##clientbulletimpacts"), &g_cfg.esp.client_bullet_impacts_color, ALPHA);

            InsertCheckbox(("Server bullet impacts"), g_cfg.esp.server_bullet_impacts);
            ImGui::SameLine();
            ImGui::ColorEdit(("##serverbulletimpacts"), &g_cfg.esp.server_bullet_impacts_color, ALPHA);

            InsertCheckbox(("Local bullet tracers"), g_cfg.esp.bullet_tracer);
            ImGui::SameLine();
            ImGui::ColorEdit(("##bulltracecolor"), &g_cfg.esp.bullet_tracer_color, ALPHA);

            InsertCheckbox(("Enemy bullet tracers"), g_cfg.esp.enemy_bullet_tracer);
            ImGui::SameLine();

            ImGui::ColorEdit(("##enemybulltracecolor"), &g_cfg.esp.enemy_bullet_tracer_color, ALPHA);

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_multicombo(("Hit marker"), g_cfg.esp.hitmarker, hitmarkers, ARRAYSIZE(hitmarkers), preview);
            InsertCheckbox(("Damage marker"), g_cfg.esp.damage_marker);
            InsertCheckbox(("Kill effect"), g_cfg.esp.kill_effect);

            ImGui::NewLine(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            ImGui::SliderFloat((" Duration"), &g_cfg.esp.kill_effect_duration, 0.1f, 3.0f);

            ImGui::Spacing();
            ImGui::Spacing();
            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_keybind(("Thirdperson"), &g_cfg.misc.thirdperson_toggle, ("##TPKEY__HOTKEY"));

            InsertCheckbox(("Thirdperson when spectating"), g_cfg.misc.thirdperson_when_spectating);

            if (g_cfg.misc.thirdperson_toggle.key > KEY_NONE && g_cfg.misc.thirdperson_toggle.key < KEY_MAX)
                InsertSliderInt((" Thirdperson distance"), g_cfg.misc.thirdperson_distance, 100, 300, ("%d"));

            InsertSliderInt((" Field of view"), g_cfg.esp.fov, 0, 89, ("%d"));

            InsertCheckbox(("Taser range"), g_cfg.esp.taser_range);
            InsertCheckbox(("Show spread"), g_cfg.esp.show_spread);
            ImGui::SameLine();
            ImGui::ColorEdit(("##spredcolor"), &g_cfg.esp.show_spread_color, ALPHA);
            InsertCheckbox(("Penetration crosshair"), g_cfg.esp.penetration_reticle);

            InsertCheckbox(("Rain"), g_cfg.esp.rain);
            InsertCheckbox(("Full bright"), g_cfg.esp.bright);

            InsertCombo(("Skybox"), g_cfg.esp.skybox, skybox, ARRAYSIZE(skybox));

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            ImGui::Text((" Color "));
            ImGui::SameLine();
            ImGui::ColorEdit(("##skyboxcolor"), &g_cfg.esp.skybox_color, NOALPHA);
            ImGui::Spacing();

            if (g_cfg.esp.skybox == 21)
            {
                static char sky_custom[64] = "\0";

                if (!g_cfg.esp.custom_skybox.empty())
                    strcpy_s(sky_custom, sizeof(sky_custom), g_cfg.esp.custom_skybox.c_str());

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Name"));
                ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f);

                if (ImGui::InputText(("##customsky"), sky_custom, sizeof(sky_custom)))
                    g_cfg.esp.custom_skybox = sky_custom;
            }

            InsertCheckbox(("Color modulation"), g_cfg.esp.nightmode);

            if (g_cfg.esp.nightmode)
            {
                ImGui::Spacing();
                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" World color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##worldcolor"), &g_cfg.esp.world_color, ALPHA);

                ImGui::Spacing();
                ImGui::Spacing();

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Props color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##propscolor"), &g_cfg.esp.props_color, ALPHA);
                ImGui::Spacing();
            }

            InsertCheckbox(("World modulation"), g_cfg.esp.world_modulation);

            if (g_cfg.esp.world_modulation)
            {
                ImGui::NewLine(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::SliderFloat((" Bloom"), &g_cfg.esp.bloom, 0.0f, 750.0f);

                ImGui::NewLine(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::SliderFloat((" Exposure"), &g_cfg.esp.exposure, 0.0f, 2000.0f);

                ImGui::NewLine(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::SliderFloat((" Ambient"), &g_cfg.esp.ambient, 0.0f, 1500.0f);
            }

            InsertCheckbox(("Fog modulation"), g_cfg.esp.fog);

            if (g_cfg.esp.fog)
            {
                InsertSliderInt((" Distance"), g_cfg.esp.fog_distance, 0, 2500, ("%d"));
                InsertSliderInt((" Density"), g_cfg.esp.fog_density, 0, 100, ("%d"));

                ImGui::Spacing();
                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##fogcolor"), &g_cfg.esp.fog_color, NOALPHA);
                ImGui::Spacing();
                ImGui::Spacing();
            }

        } InsertEndGroupBoxRight("Other Cover", "Other");
    }
    ImGui::PopFont();
}

void c_menu::Misc()
{
    ImGui::PushFont(skeet_menu);

    ImGuiStyle* style = &ImGui::GetStyle();
    InsertSpacer("Top Spacer");

    ImGui::Columns(2, NULL, false);
    {
        InsertGroupBoxLeft("Miscellaneous", 506.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            InsertCheckbox(("Anti-screenshot"), g_cfg.misc.anti_screenshot);
            InsertCheckbox(("Clantag"), g_cfg.misc.clantag_spammer);
            InsertCheckbox(("Chat spam"), g_cfg.misc.chat);
            InsertCheckbox("Anti-untrusted", g_cfg.misc.anti_untrusted);
            InsertCheckbox("Rank reveal", g_cfg.misc.rank_reveal);
            InsertCheckbox("Unlock inventory", g_cfg.misc.inventory_access);
            InsertCheckbox("Gravity ragdolls", g_cfg.misc.ragdolls);
            InsertCheckbox("Preserve killfeed", g_cfg.esp.preserve_killfeed);
            InsertCheckbox("Aspect ratio", g_cfg.misc.aspect_ratio);
            
            if (g_cfg.misc.aspect_ratio)
            {
                ImGui::NewLine(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::SliderFloat((" Amount"), &g_cfg.misc.aspect_ratio_amount, 0.1f, 2.f);
            }

            InsertCheckbox(("Enable buybot"), g_cfg.misc.buybot_enable);

            if (g_cfg.misc.buybot_enable)
            {
                InsertCombo(("Snipers"), g_cfg.misc.buybot1, mainwep, ARRAYSIZE(mainwep));

                InsertCombo(("Pistols"), g_cfg.misc.buybot2, secwep, ARRAYSIZE(secwep));

                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                draw_multicombo(("Other"), g_cfg.misc.buybot3, grenades, ARRAYSIZE(grenades), preview);
            }

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_multicombo(("Logs"), g_cfg.misc.events_to_log, events, ARRAYSIZE(events), preview);

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_multicombo(("Logs output"), g_cfg.misc.log_output, events_output, ARRAYSIZE(events_output), preview);

            if (g_cfg.misc.events_to_log[EVENTLOG_HIT] || g_cfg.misc.events_to_log[EVENTLOG_ITEM_PURCHASES] || g_cfg.misc.events_to_log[EVENTLOG_BOMB])
            {
                ImGui::Spacing();
                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##logcolor"), &g_cfg.misc.log_color, ALPHA);
                ImGui::Spacing();
            }

        } InsertEndGroupBoxLeft("Miscellaneous Cover", "Miscellaneous");

    }
    ImGui::NextColumn();
    {
        InsertGroupBoxRight("Settings", 156.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            InsertCheckbox("Watermark", g_cfg.menu.watermark);
            InsertCheckbox("Spectators list", g_cfg.misc.spectators_list);
            InsertCombo("Hitsound", g_cfg.esp.hitsound, sounds, ARRAYSIZE(sounds));
            InsertCheckbox("Killsound", g_cfg.esp.killsound);


        } InsertEndGroupBoxRight("Settings Cover", "Settings");

        InsertSpacer("Settings - Other Spacer");

        InsertGroupBoxRight("Other", 328.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            InsertCheckbox(("Automatic jump"), g_cfg.misc.bunnyhop);

            InsertCombo((" Automatic strafes"), g_cfg.misc.airstrafe, strafes, ARRAYSIZE(strafes));

            InsertCheckbox(("Crouch in air"), g_cfg.misc.crouch_in_air);
            InsertCheckbox(("Fast stop"), g_cfg.misc.fast_stop);
            InsertCheckbox(("Slide walk"), g_cfg.misc.slidewalk);
            InsertCheckbox(("No duck cooldown"), g_cfg.misc.noduck);

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (g_cfg.misc.noduck)
                draw_keybind((" Fake duck"), &g_cfg.misc.fakeduck_key, ("##FAKEDUCK__HOTKEY"));

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_keybind((" Slow walk"), &g_cfg.misc.slowwalk_key, ("##SLOWWALK__HOTKEY"));

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_keybind((" Auto peek"), &g_cfg.misc.automatic_peek, ("##AUTOPEEK__HOTKEY"));

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            draw_keybind((" Edge jump"), &g_cfg.misc.edge_jump, ("##EDGEJUMP__HOTKEY"));

            /*std::string zstations[] =
            {
            "http://air.radiorecord.ru:805/synth_320",
            "https://shoutcast1.hardcoreradio.n1:9000/hcr-mp3",
            "http://air.radiorecord.ru:805/tm_320",
            "http://air.radiorecord.ru:805/mix_320",
            "http://air2.radiorecord.ru:805/rr_320",
            "http://air.radiorecord.ru:805/dub_320",
            "http://air.radiorecord.ru:805/teo_320",
            "http://air.radiorecord.ru:805/dc_320",
            "http://air.radiorecord.ru:805/goa_320",
            "http://air.radiorecord.ru:805/hbass_320",
            "http://air.radiorecord.ru:805/1980_320",
            "http://air.radiorecord.ru:805/rock_320",
            "http://air.radiorecord.ru:805/cadillac_320",
            "http://air.radiorecord.ru:805/eurodance_320",
            "http://antenaradio.org:4550/",
            "http://streaming.tdiradio.com/tdiradiobezreklama-mp3"
            };

            InsertCheckbox("Radio", g_cfg.misc.radio);
            ImGui::NewLine(); ImGui::SameLine(42.f);
            ImGui::Text("Radio Station");
            ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (ImGui::ListBox("", &g_cfg.misc.radiostation, radio_name, IM_ARRAYSIZE(radio_name), 17))
            {
                BASS_ChannelStop(stream);
                stream = NULL;
                stream = BASS_StreamCreateURL(zstations[g_cfg.misc.radiostation].c_str(), 0, 0, NULL, 0);
            }
            if (g_cfg.misc.radio)
            {
                static bool radioInit = false;

                if (!radioInit) {
                    BASS_Init(-1, 44100, BASS_DEVICE_3D, 0, NULL);
                    stream = BASS_StreamCreateURL(zstations[g_cfg.misc.radiostation].c_str(), 0, 0, NULL, 0);
                    radioInit = true;
                }
                static float vol = 0.1f;
                BASS_ChannelSetAttribute(stream, BASS_ATTRIB_VOL, vol / 100.0f);
                BASS_ChannelPlay(stream, false);
                InsertSlider("Radio volume", vol, 0.f, 100.0f, "%0.f%");
            }
            else if (!g_cfg.misc.radio)
            {
                BASS_ChannelStop(stream);
                stream = NULL;
            }*/

        } InsertEndGroupBoxRight("Other Cover", "Other");
    }
    ImGui::PopFont();
}

/*void c_menu::Skins()
{
    ImGui::PushFont(skeet_menu);

    ImGuiStyle* style = &ImGui::GetStyle();
    InsertSpacer("Top Spacer");

    ImGui::Columns(2, NULL, false);
    {

        InsertGroupBoxLeft("Knife options", 112.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);



        }
        InsertEndGroupBoxLeft("Knife options Cover", "Knife options");

        InsertSpacer("Fake lag - Other Spacer");

        InsertGroupBoxLeft("Glove options", 376.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);



        }
        InsertEndGroupBoxLeft("Glove options Cover", "Glove options");
    }
    ImGui::NextColumn();
    {

        InsertGroupBoxRight("Weapon skin", 506.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);



        }
        InsertEndGroupBoxRight("Weapon skin Cover", "Weapon skin");
    }
    ImGui::PopFont();
}*/

void c_menu::Configurations()
{
    ImGui::PushFont(skeet_menu);

    ImGuiStyle* style = &ImGui::GetStyle();
    InsertSpacer("Top Spacer");

    ImGui::Columns(2, NULL, false);
    {
        InsertGroupBoxLeft("Configs", 506.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            static auto should_update = true;

            if (should_update)
            {
                should_update = false;

                cfg_manager->config_files();
                files = cfg_manager->files;

                for (auto& current : files)
                    if (current.size() > 2)
                        current.erase(current.size() - 3, 3);
            }

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (ImGui::Button(("Open configs folder")))
            {
                std::string folder;

                auto get_dir = [&folder]() -> void
                {
                    static TCHAR path[MAX_PATH];

                    if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, NULL, path)))
                        folder = std::string(path) + ("\\Lrimuse.pw\\Configs\\");

                    CreateDirectory(folder.c_str(), NULL);
                };

                get_dir();
                ShellExecute(NULL, ("open"), folder.c_str(), NULL, NULL, SW_SHOWNORMAL);
            }

            InsertSpacer("Top Spacer 1");

            ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f);
            config_listbox::ListBox(("##CONFIGS"), &g_cfg.selected_config, files, 7);
            ImGui::PopStyleVar();

            InsertSpacer("Top Spacer 2");

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (ImGui::Button(("Refresh configs")))
            {
                cfg_manager->config_files();
                files = cfg_manager->files;

                for (auto& current : files)
                    if (current.size() > 2)
                        current.erase(current.size() - 3, 3);
            }

            InsertSpacer("Top Spacer 3");

            static char config_name[64] = "\0";

            ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f);
            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            ImGui::InputText(("##configname"), config_name, sizeof(config_name));
            ImGui::PopStyleVar();

            InsertSpacer("Top Spacer 33");

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (ImGui::Button(("Create config")))
            {
                g_cfg.new_config_name = config_name;
                add_config();
            }

            InsertSpacer("Top Spacer 4");

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (ImGui::Button(("Save Config")))
                save_config();

            InsertSpacer("Top Spacer 5");

            ImGui::PopStyleVar();

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (ImGui::Button(("Load config")))
                load_config();

            InsertSpacer("Top Spacer 6");


            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (ImGui::Button(("Remove config")))
                remove_config();

        }
        InsertEndGroupBoxLeft("Configs Cover", "Configs");
    }
    ImGui::NextColumn();
    {
        InsertGroupBoxRight("Players list", 506.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            auto player = players_section;

            static std::vector <Player_list_data> players;

            static auto current_player = 0;

            InsertSpacer("Player list spacer");

            if (!players.empty())
            {
                std::vector <std::string> player_names;

                for (auto player : players)
                    player_names.emplace_back(player.name);

                ImGui::PushItemWidth(291);
                ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f);
                config_listbox::ListBox(("##PLAYERLIST"), &current_player, player_names, 7);
                ImGui::PopStyleVar();
                ImGui::PopItemWidth();
            }

            if (!g_cfg.player_list.refreshing)
            {
                players.clear();

                for (auto player : g_cfg.player_list.players)
                    players.emplace_back(player);
            }

            InsertSpacer("Player list spacer for 2 spcae");

            if (!players.empty())
            {
                if (current_player >= players.size())
                    current_player = players.size() - 1;

                InsertCheckbox(("White list"), g_cfg.player_list.white_list[players.at(current_player).i]);

                if (!g_cfg.player_list.white_list[players.at(current_player).i])
                {
                    InsertCheckbox(("High priority"), g_cfg.player_list.high_priority[players.at(current_player).i]);
                    InsertCheckbox(("Force safe points"), g_cfg.player_list.force_safe_points[players.at(current_player).i]);
                    InsertCheckbox(("Force body aim"), g_cfg.player_list.force_body_aim[players.at(current_player).i]);
                    InsertCheckbox(("Low delta"), g_cfg.player_list.low_delta[players.at(current_player).i]);
                }
            }

        } InsertEndGroupBoxRight("Players list Cover", "Players list");
    }
    ImGui::PopFont();
}

void c_menu::Luas()
{
    ImGui::PushFont(skeet_menu);

    ImGuiStyle* style = &ImGui::GetStyle();
    InsertSpacer("Top Spacer");

    ImGui::Columns(2, NULL, false);
    {

        InsertGroupBoxLeft("Scripts", 506.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            static auto should_update = true;

            if (should_update)
            {
                should_update = false;
                scripts = c_lua::get().scripts;

                for (auto& current : scripts)
                {
                    if (current.size() >= 5 && current.at(current.size() - 1) == 'c')
                        current.erase(current.size() - 5, 5);
                    else if (current.size() >= 4)
                        current.erase(current.size() - 4, 4);
                }
            }

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (ImGui::Button(("Open scripts folder")))
            {
                std::string folder;

                auto get_dir = [&folder]() -> void
                {
                    static TCHAR path[MAX_PATH];

                    if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, NULL, path)))
                        folder = std::string(path) + ("\\Lrimuse.pw\\Scripts\\");

                    CreateDirectory(folder.c_str(), NULL);
                };

                get_dir();
                ShellExecute(NULL, ("open"), folder.c_str(), NULL, NULL, SW_SHOWNORMAL);
            }

            ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f);

            InsertSpacer("Top Spacer");

            if (scripts.empty())
                config_listbox::ListBox(("##LUAS"), &selected_script, scripts, 7);
            else
            {
                auto backup_scripts = scripts;

                for (auto& script : scripts)
                {
                    auto script_id = c_lua::get().get_script_id(script + (".lua"));

                    if (script_id == -1)
                        continue;

                    if (c_lua::get().loaded.at(script_id))
                        scripts.at(script_id) += (" [loaded]");
                }

                config_listbox::ListBox(("##LUAS"), &selected_script, scripts, 7);
                scripts = std::move(backup_scripts);
            }

            InsertSpacer("Top Spacer 2");

            ImGui::PopStyleVar();

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (ImGui::Button(("Refresh scripts")))
            {
                c_lua::get().refresh_scripts();
                scripts = c_lua::get().scripts;

                if (selected_script >= scripts.size())
                    selected_script = scripts.size() - 1; //-V103

                for (auto& current : scripts)
                {
                    if (current.size() >= 5 && current.at(current.size() - 1) == 'c')
                        current.erase(current.size() - 5, 5);
                    else if (current.size() >= 4)
                        current.erase(current.size() - 4, 4);
                }
            }

            InsertSpacer("Top Spacer 3");

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (ImGui::Button(("Edit script")))
            {
                loaded_editing_script = false;
                editing_script = scripts.at(selected_script);
            }

            InsertSpacer("Top Spacer 4");

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (ImGui::Button(("Load script")))
            {
                c_lua::get().load_script(selected_script);
                c_lua::get().refresh_scripts();

                scripts = c_lua::get().scripts;

                if (selected_script >= scripts.size())
                    selected_script = scripts.size() - 1; //-V103

                for (auto& current : scripts)
                {
                    if (current.size() >= 5 && current.at(current.size() - 1) == 'c')
                        current.erase(current.size() - 5, 5);
                    else if (current.size() >= 4)
                        current.erase(current.size() - 4, 4);
                }

                eventlogs::get().add(("Loaded ") + scripts.at(selected_script) + (" script"), false); //-V106
            }

            InsertSpacer("Top Spacer 5");

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (ImGui::Button(("Unload script")))
            {
                c_lua::get().unload_script(selected_script);
                c_lua::get().refresh_scripts();

                scripts = c_lua::get().scripts;

                if (selected_script >= scripts.size())
                    selected_script = scripts.size() - 1; //-V103

                for (auto& current : scripts)
                {
                    if (current.size() >= 5 && current.at(current.size() - 1) == 'c')
                        current.erase(current.size() - 5, 5);
                    else if (current.size() >= 4)
                        current.erase(current.size() - 4, 4);
                }

                eventlogs::get().add(("Unloaded ") + scripts.at(selected_script) + (" script"), false); //-V106
            }

            InsertSpacer("Top Spacer 6");

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (ImGui::Button(("Reload all scripts")))
            {
                c_lua::get().reload_all_scripts();
                c_lua::get().refresh_scripts();

                scripts = c_lua::get().scripts;

                if (selected_script >= scripts.size())
                    selected_script = scripts.size() - 1; //-V103

                for (auto& current : scripts)
                {
                    if (current.size() >= 5 && current.at(current.size() - 1) == 'c')
                        current.erase(current.size() - 5, 5);
                    else if (current.size() >= 4)
                        current.erase(current.size() - 4, 4);
                }
            }

            InsertSpacer("Top Spacer 7");

            ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            if (ImGui::Button(("Unload all scripts")))
            {
                c_lua::get().unload_all_scripts();
                c_lua::get().refresh_scripts();

                scripts = c_lua::get().scripts;

                if (selected_script >= scripts.size())
                    selected_script = scripts.size() - 1; //-V103

                for (auto& current : scripts)
                {
                    if (current.size() >= 5 && current.at(current.size() - 1) == 'c')
                        current.erase(current.size() - 5, 5);
                    else if (current.size() >= 4)
                        current.erase(current.size() - 4, 4);
                }
            }

        } InsertEndGroupBoxLeft("Scripts Cover", "Scripts");
    }
    ImGui::NextColumn();
    {

        InsertGroupBoxRight("Script elements", 506.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            //InsertCheckbox(("Developer mode"), g_cfg.scripts.developer_mode);
            //InsertCheckbox(("Allow HTTP requests"), g_cfg.scripts.allow_http);
            //InsertCheckbox(("Allow files read or write"), g_cfg.scripts.allow_file);

            auto previous_check_box = false;

            for (auto& current : c_lua::get().scripts)
            {
                auto& items = c_lua::get().items.at(c_lua::get().get_script_id(current));

                for (auto& item : items)
                {
                    std::string item_name;

                    auto first_point = false;
                    auto item_str = false;

                    for (auto& c : item.first)
                    {
                        if (c == '.')
                        {
                            if (first_point)
                            {
                                item_str = true;
                                continue;
                            }
                            else
                                first_point = true;
                        }

                        if (item_str)
                            item_name.push_back(c);
                    }

                    switch (item.second.type)
                    {
                    case NEXT_LINE:
                        previous_check_box = false;
                        break;
                    case CHECK_BOX:
                        previous_check_box = true;
                        InsertCheckbox(item_name.c_str(), item.second.check_box_value);
                        break;
                    case COMBO_BOX:
                        previous_check_box = false;
                        ImGui::Spacing(); ImGui::NewLine(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); ImGui::PopItemWidth(); ImGui::CustomSpacing(1.f);
                        draw_combo(item_name.c_str(), item.second.combo_box_value, [](void* data, int idx, const char** out_text)
                        {
                            auto labels = (std::vector <std::string>*)data;
                            *out_text = labels->at(idx).c_str(); //-V106
                            return true;
                        }, &item.second.combo_box_labels, item.second.combo_box_labels.size());
                        break;
                    case SLIDER_INT:
                        previous_check_box = false;
                        ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(159.f); ImGui::PopItemWidth();
                        ImGui::SliderInt(item_name.c_str(), &item.second.slider_int_value, item.second.slider_int_min, item.second.slider_int_max);
                        break;
                    case SLIDER_FLOAT:
                        previous_check_box = false;
                        ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(159.f); ImGui::PopItemWidth();
                        ImGui::SliderFloat(item_name.c_str(), &item.second.slider_float_value, item.second.slider_float_min, item.second.slider_float_max);
                        break;
                    case COLOR_PICKER:
                        if (previous_check_box)
                            previous_check_box = false;
                        else
                            ImGui::Text((item_name + ' ').c_str());

                        ImGui::SameLine();
                        ImGui::ColorEdit((("##") + item_name).c_str(), &item.second.color_picker_value, ALPHA, true);
                        break;
                    }
                }
            }
        }
        InsertEndGroupBoxRight("Script elements Cover", "Script elements");
    }
    ImGui::PopFont();
}

void c_menu::Chams()
{
    ImGui::PushFont(skeet_menu);

    ImGuiStyle* style = &ImGui::GetStyle();
    InsertSpacer("Top Spacer");

    ImGui::Columns(2, NULL, false);
    {
        InsertGroupBoxLeft("Weapon/Arms chams", 506.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            InsertCheckbox(("Arms chams"), g_cfg.esp.arms_chams);
            ImGui::SameLine();
            ImGui::ColorEdit(("##armscolor"), &g_cfg.esp.arms_chams_color, ALPHA);


            InsertCombo(("Arms chams material"), g_cfg.esp.arms_chams_type, chamstype, ARRAYSIZE(chamstype));

            if (g_cfg.esp.arms_chams_type != 6)
            {
                InsertCheckbox(("Arms double material "), g_cfg.esp.arms_double_material);
                ImGui::SameLine();
                ImGui::ColorEdit(("##armsdoublematerial"), &g_cfg.esp.arms_double_material_color, ALPHA);
            }

            InsertCheckbox(("Arms animated material "), g_cfg.esp.arms_animated_material);
            ImGui::SameLine();
            ImGui::ColorEdit(("##armsanimatedmaterial"), &g_cfg.esp.arms_animated_material_color, ALPHA);

            ImGui::Spacing();

            InsertCheckbox(("Weapon chams"), g_cfg.esp.weapon_chams);
            ImGui::SameLine();
            ImGui::ColorEdit(("##weaponchamscolors"), &g_cfg.esp.weapon_chams_color, ALPHA);

            InsertCombo(("Weapon chams material"), g_cfg.esp.weapon_chams_type, chamstype, ARRAYSIZE(chamstype));

            if (g_cfg.esp.weapon_chams_type != 6)
            {
                InsertCheckbox(("Double material "), g_cfg.esp.weapon_double_material);
                ImGui::SameLine();
                ImGui::ColorEdit(("##weapondoublematerial"), &g_cfg.esp.weapon_double_material_color, ALPHA);
            }

            InsertCheckbox(("Animated material "), g_cfg.esp.weapon_animated_material);
            ImGui::SameLine();
            ImGui::ColorEdit(("##weaponanimatedmaterial"), &g_cfg.esp.weapon_animated_material_color, ALPHA);

        } InsertEndGroupBoxLeft("Weapon/Arms chams Cover", "Weapon/Arms chams");

        //InsertSpacer("Chams - Other Spacer");

        /*InsertGroupBoxLeft("Enemy", 244.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            

        } InsertEndGroupBoxLeft("Enemy Cover", "Enemy chams");*/

    }
    ImGui::NextColumn();
    {

        InsertGroupBoxRight("Local", 506.f);
        {
            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            // 0 = Enemy
            // 1 = Team
            // 2 = Local

            const char* players_chams[3] = { ("Enemy"), ("Team"), ("Local") };

            //auto player = players_section;

            InsertCombo(("Current Chams"), hooks::players_chams, players_chams, ARRAYSIZE(players_chams));

            if (hooks::players_chams == 2)
            {
                InsertCombo(("Type"), g_cfg.player.local_chams_type, local_chams_type, ARRAYSIZE(local_chams_type));
            }

            if (!g_cfg.player.local_chams_type == 1)
            {
                ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Chams"), g_cfg.player.type[hooks::players_chams].chams, g_cfg.player.type[hooks::players_chams].chams[PLAYER_CHAMS_VISIBLE] ? chamsvisact : chamsvis, g_cfg.player.type[hooks::players_chams].chams[PLAYER_CHAMS_VISIBLE] ? ARRAYSIZE(chamsvisact) : ARRAYSIZE(chamsvis), preview);
            }

            if (hooks::players_chams == 2 && !g_cfg.player.local_chams_type == 0)
            {
                InsertCheckbox(("Enable desync chams"), g_cfg.player.fake_chams_enable);
                InsertCheckbox(("Visualize lag"), g_cfg.player.visualize_lag);
                InsertCheckbox(("Layered"), g_cfg.player.layered);

                InsertCombo(("Player chams material"), g_cfg.player.fake_chams_type, chamstype, ARRAYSIZE(chamstype));

                ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##fakechamscolor"), &g_cfg.player.fake_chams_color, ALPHA);
                ImGui::Spacing();

                InsertCheckbox(("Double material "), g_cfg.player.fake_double_material);
                ImGui::SameLine();
                ImGui::ColorEdit(("##doublematerialcolor"), &g_cfg.player.fake_double_material_color, ALPHA);

                InsertCheckbox(("Animated material"), g_cfg.player.fake_animated_material);
                ImGui::SameLine();
                ImGui::ColorEdit(("##animcolormat"), &g_cfg.player.fake_animated_material_color, ALPHA);
            }

            if (hooks::players_chams == 0 || hooks::players_chams == 1 || !g_cfg.player.local_chams_type == 1)
            {
                InsertCombo(("Player chams material"), g_cfg.player.type[hooks::players_chams].chams_type, chamstype, ARRAYSIZE(chamstype));

                ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Visible "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##chamsvisible"), &g_cfg.player.type[hooks::players_chams].chams_color, ALPHA);
                ImGui::Spacing();

                ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Invisible "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##chamsinvisible"), &g_cfg.player.type[hooks::players_chams].xqz_color, ALPHA);
                ImGui::Spacing();

                InsertCheckbox(("Double material "), g_cfg.player.type[hooks::players_chams].double_material);
                ImGui::SameLine();
                ImGui::ColorEdit(("##doublematerialcolor"), &g_cfg.player.type[hooks::players_chams].double_material_color, ALPHA);

                InsertCheckbox(("Animated material"), g_cfg.player.type[hooks::players_chams].animated_material);
                ImGui::SameLine();
                ImGui::ColorEdit(("##animcolormat"), &g_cfg.player.type[hooks::players_chams].animated_material_color, ALPHA);
            }

            if (hooks::players_chams == 0)
            {
                InsertCheckbox(("Backtrack chams"), g_cfg.player.backtrack_chams);

                InsertCombo(("Backtrack chams material"), g_cfg.player.backtrack_chams_material, chamstype, ARRAYSIZE(chamstype));

                ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##backtrackcolor"), &g_cfg.player.backtrack_chams_color, ALPHA);
                ImGui::Spacing();

                InsertCheckbox(("Ragdoll chams"), g_cfg.player.type[hooks::players_chams].ragdoll_chams);

                InsertCombo(("Ragdoll chams material"), g_cfg.player.type[hooks::players_chams].ragdoll_chams_material, chamstype, ARRAYSIZE(chamstype));

                ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::Text((" Color "));
                ImGui::SameLine();
                ImGui::ColorEdit(("##ragdollcolor"), &g_cfg.player.type[hooks::players_chams].ragdoll_chams_color, ALPHA);
                ImGui::Spacing();
            }

            if (hooks::players_chams == 2)
            {
                InsertCheckbox(("Transparency in scope"), g_cfg.player.transparency_in_scope);

                ImGui::NewLine(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
                ImGui::SliderFloat((" Alpha"), &g_cfg.player.transparency_in_scope_amount, 0.0f, 1.0f);
            }

            InsertCheckbox(("Glow"), g_cfg.player.type[hooks::players_chams].glow);

            InsertCombo(("Glow type"), g_cfg.player.type[hooks::players_chams].glow_type, glowtype, ARRAYSIZE(glowtype));

            ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
            ImGui::Text((" Color "));
            ImGui::SameLine();
            ImGui::ColorEdit(("##glowcolor"), &g_cfg.player.type[hooks::players_chams].glow_color, ALPHA);
            ImGui::Spacing();

        } InsertEndGroupBoxRight("Local Cover", "Local");

        //InsertSpacer("Chams other - Other Spacer");

        /*InsertGroupBoxRight("Team", 244.f);
        {

            style->ItemSpacing = ImVec2(4, 2);
            style->WindowPadding = ImVec2(4, 4);
            style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
            ImGui::CustomSpacing(9.f);

            

        } InsertEndGroupBoxRight("Team Cover", "Team");*/

    }
    ImGui::PopFont();
}
Ну не могу я поменять его. Да, я читал этот гайд - https://yougame.biz/threads/188101/. Ну нету у меня там строчки imgui::begin, шо мне делать то теперь?
Сурсы goodtap.pw.
 
Забаненный
Статус
Оффлайн
Регистрация
30 Окт 2021
Сообщения
15
Реакции[?]
1
Поинты[?]
0
2.1. Запрещено оскорбление участников форума в любом виде. В том числе проявление любой грубости, угроз и нецензурных высказываний даже в скрытой форме.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1637691493935.png
 
Сверху Снизу