mirror of
https://github.com/ddnet/ddnet.git
synced 2024-09-19 01:02:20 +00:00
Compare commits
6 commits
383f1cb895
...
6012f7ca7a
Author | SHA1 | Date | |
---|---|---|---|
Chiller Dragon | 6012f7ca7a | ||
66fb5d5d7f | |||
d3f0c2a156 | |||
d5e81ca78d | |||
128ffd2313 | |||
ChillerDragon | 2a71c7fce2 |
|
@ -2162,6 +2162,8 @@ set_src(GAME_SHARED GLOB src/game
|
|||
mapitems_ex.cpp
|
||||
mapitems_ex.h
|
||||
mapitems_ex_types.h
|
||||
mapitems_fng.h
|
||||
mapitems_vanilla.h
|
||||
prng.cpp
|
||||
prng.h
|
||||
teamscore.cpp
|
||||
|
|
|
@ -2929,6 +2929,24 @@ void CClient::Run()
|
|||
g_UuidManager.DebugDump();
|
||||
}
|
||||
|
||||
#ifndef CONF_WEBASM
|
||||
char aNetworkError[256];
|
||||
if(!InitNetworkClient(aNetworkError, sizeof(aNetworkError)))
|
||||
{
|
||||
log_error("client", "%s", aNetworkError);
|
||||
ShowMessageBox("Network Error", aNetworkError);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if(!m_Http.Init(std::chrono::seconds{1}))
|
||||
{
|
||||
const char *pErrorMessage = "Failed to initialize the HTTP client.";
|
||||
log_error("client", "%s", pErrorMessage);
|
||||
ShowMessageBox("HTTP Error", pErrorMessage);
|
||||
return;
|
||||
}
|
||||
|
||||
// init graphics
|
||||
m_pGraphics = CreateEngineGraphicsThreaded();
|
||||
Kernel()->RegisterInterface(m_pGraphics); // IEngineGraphics
|
||||
|
@ -2952,24 +2970,6 @@ void CClient::Run()
|
|||
CVideo::Init();
|
||||
#endif
|
||||
|
||||
#ifndef CONF_WEBASM
|
||||
char aNetworkError[256];
|
||||
if(!InitNetworkClient(aNetworkError, sizeof(aNetworkError)))
|
||||
{
|
||||
log_error("client", "%s", aNetworkError);
|
||||
ShowMessageBox("Network Error", aNetworkError);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if(!m_Http.Init(std::chrono::seconds{1}))
|
||||
{
|
||||
const char *pErrorMessage = "Failed to initialize the HTTP client.";
|
||||
log_error("client", "%s", pErrorMessage);
|
||||
ShowMessageBox("HTTP Error", pErrorMessage);
|
||||
return;
|
||||
}
|
||||
|
||||
// init text render
|
||||
m_pTextRender = Kernel()->RequestInterface<IEngineTextRender>();
|
||||
m_pTextRender->Init();
|
||||
|
|
|
@ -1397,22 +1397,10 @@ void CMenus::RenderDemoBrowserButtons(CUIRect ButtonsView, bool WasListboxItemAc
|
|||
|
||||
// quick search
|
||||
{
|
||||
SetIconMode(true);
|
||||
CUIRect DemoSearch, SearchIcon;
|
||||
CUIRect DemoSearch;
|
||||
ButtonBarTop.VSplitLeft(ButtonBarBottom.h * 21.0f, &DemoSearch, &ButtonBarTop);
|
||||
ButtonBarTop.VSplitLeft(ButtonBarTop.h / 2.0f, nullptr, &ButtonBarTop);
|
||||
DemoSearch.VSplitLeft(TextRender()->TextWidth(14.0f, FONT_ICON_MAGNIFYING_GLASS), &SearchIcon, &DemoSearch);
|
||||
DemoSearch.VSplitLeft(5.0f, nullptr, &DemoSearch);
|
||||
Ui()->DoLabel(&SearchIcon, FONT_ICON_MAGNIFYING_GLASS, 14.0f, TEXTALIGN_ML);
|
||||
SetIconMode(false);
|
||||
m_DemoSearchInput.SetEmptyText(Localize("Search"));
|
||||
|
||||
if(Input()->KeyPress(KEY_F) && Input()->ModifierIsPressed())
|
||||
{
|
||||
Ui()->SetActiveItem(&m_DemoSearchInput);
|
||||
m_DemoSearchInput.SelectAll();
|
||||
}
|
||||
if(Ui()->DoClearableEditBox(&m_DemoSearchInput, &DemoSearch, 12.0f))
|
||||
if(Ui()->DoEditBox_Search(&m_DemoSearchInput, &DemoSearch, 14.0f, !Ui()->IsPopupOpen() && m_pClient->m_GameConsole.IsClosed()))
|
||||
{
|
||||
RefreshFilteredDemos();
|
||||
DemolistOnUpdate(false);
|
||||
|
|
|
@ -683,26 +683,15 @@ void CMenus::RenderServerControl(CUIRect MainView)
|
|||
|
||||
// render quick search
|
||||
CUIRect QuickSearch;
|
||||
Bottom.VSplitLeft(5.0f, 0, &Bottom);
|
||||
Bottom.VSplitLeft(5.0f, nullptr, &Bottom);
|
||||
Bottom.VSplitLeft(250.0f, &QuickSearch, &Bottom);
|
||||
TextRender()->SetFontPreset(EFontPreset::ICON_FONT);
|
||||
TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_PIXEL_ALIGMENT | ETextRenderFlags::TEXT_RENDER_FLAG_NO_OVERSIZE);
|
||||
|
||||
Ui()->DoLabel(&QuickSearch, FONT_ICON_MAGNIFYING_GLASS, 14.0f, TEXTALIGN_ML);
|
||||
float SearchWidth = TextRender()->TextWidth(14.0f, FONT_ICON_MAGNIFYING_GLASS, -1, -1.0f);
|
||||
TextRender()->SetRenderFlags(0);
|
||||
TextRender()->SetFontPreset(EFontPreset::DEFAULT_FONT);
|
||||
QuickSearch.VSplitLeft(SearchWidth, 0, &QuickSearch);
|
||||
QuickSearch.VSplitLeft(5.0f, 0, &QuickSearch);
|
||||
|
||||
if(m_ControlPageOpening || (Input()->KeyPress(KEY_F) && Input()->ModifierIsPressed()))
|
||||
if(m_ControlPageOpening)
|
||||
{
|
||||
Ui()->SetActiveItem(&m_FilterInput);
|
||||
m_ControlPageOpening = false;
|
||||
Ui()->SetActiveItem(&m_FilterInput);
|
||||
m_FilterInput.SelectAll();
|
||||
}
|
||||
m_FilterInput.SetEmptyText(Localize("Search"));
|
||||
Ui()->DoClearableEditBox(&m_FilterInput, &QuickSearch, 14.0f);
|
||||
Ui()->DoEditBox_Search(&m_FilterInput, &QuickSearch, 14.0f, !Ui()->IsPopupOpen() && m_pClient->m_GameConsole.IsClosed());
|
||||
|
||||
// call vote
|
||||
Bottom.VSplitRight(10.0f, &Bottom, 0);
|
||||
|
|
|
@ -257,7 +257,7 @@ void CMenus::SetNeedSendInfo()
|
|||
|
||||
void CMenus::RenderSettingsPlayer(CUIRect MainView)
|
||||
{
|
||||
CUIRect TabBar, PlayerTab, DummyTab, ChangeInfo, QuickSearch, QuickSearchClearButton;
|
||||
CUIRect TabBar, PlayerTab, DummyTab, ChangeInfo, QuickSearch;
|
||||
MainView.HSplitTop(20.0f, &TabBar, &MainView);
|
||||
TabBar.VSplitMid(&TabBar, &ChangeInfo, 20.f);
|
||||
TabBar.VSplitMid(&PlayerTab, &DummyTab);
|
||||
|
@ -340,7 +340,10 @@ void CMenus::RenderSettingsPlayer(CUIRect MainView)
|
|||
}
|
||||
|
||||
MainView.HSplitTop(10.0f, nullptr, &MainView);
|
||||
MainView.HSplitBottom(25.0f, &MainView, &QuickSearch);
|
||||
MainView.HSplitBottom(20.0f, &MainView, &QuickSearch);
|
||||
MainView.HSplitBottom(5.0f, &MainView, nullptr);
|
||||
QuickSearch.VSplitLeft(220.0f, &QuickSearch, nullptr);
|
||||
|
||||
int OldSelected = -1;
|
||||
static CListBox s_ListBox;
|
||||
s_ListBox.DoStart(48.0f, vpFilteredFlags.size(), 10, 3, OldSelected, &MainView);
|
||||
|
@ -378,30 +381,7 @@ void CMenus::RenderSettingsPlayer(CUIRect MainView)
|
|||
SetNeedSendInfo();
|
||||
}
|
||||
|
||||
// render quick search
|
||||
QuickSearch.VSplitLeft(240.0f, &QuickSearch, nullptr);
|
||||
QuickSearch.HSplitTop(5.0f, nullptr, &QuickSearch);
|
||||
|
||||
TextRender()->SetFontPreset(EFontPreset::ICON_FONT);
|
||||
TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_PIXEL_ALIGMENT | ETextRenderFlags::TEXT_RENDER_FLAG_NO_OVERSIZE);
|
||||
Ui()->DoLabel(&QuickSearch, FONT_ICON_MAGNIFYING_GLASS, 14.0f, TEXTALIGN_ML);
|
||||
TextRender()->SetRenderFlags(0);
|
||||
TextRender()->SetFontPreset(EFontPreset::DEFAULT_FONT);
|
||||
|
||||
float SearchWidth = TextRender()->TextWidth(14.0f, FONT_ICON_MAGNIFYING_GLASS, -1, -1.0f);
|
||||
QuickSearch.VSplitLeft(SearchWidth - 1.5f, nullptr, &QuickSearch);
|
||||
QuickSearch.VSplitLeft(5.0f, nullptr, &QuickSearch);
|
||||
QuickSearch.VSplitLeft(QuickSearch.w - 10.0f, &QuickSearch, &QuickSearchClearButton);
|
||||
|
||||
TextRender()->SetRenderFlags(0);
|
||||
TextRender()->SetFontPreset(EFontPreset::DEFAULT_FONT);
|
||||
if(Input()->KeyPress(KEY_F) && Input()->ModifierIsPressed())
|
||||
{
|
||||
Ui()->SetActiveItem(&s_FlagFilterInput);
|
||||
s_FlagFilterInput.SelectAll();
|
||||
}
|
||||
s_FlagFilterInput.SetEmptyText(Localize("Search"));
|
||||
Ui()->DoClearableEditBox(&s_FlagFilterInput, &QuickSearch, 14.0f);
|
||||
Ui()->DoEditBox_Search(&s_FlagFilterInput, &QuickSearch, 14.0f, !Ui()->IsPopupOpen() && m_pClient->m_GameConsole.IsClosed());
|
||||
}
|
||||
|
||||
struct CUISkin
|
||||
|
@ -770,8 +750,8 @@ void CMenus::RenderSettingsTee(CUIRect MainView)
|
|||
CUIRect QuickSearch, DatabaseButton, DirectoryButton, RefreshButton;
|
||||
MainView.HSplitBottom(20.0f, &MainView, &QuickSearch);
|
||||
MainView.HSplitBottom(5.0f, &MainView, nullptr);
|
||||
QuickSearch.VSplitLeft(240.0f, &QuickSearch, &DatabaseButton);
|
||||
QuickSearch.VSplitRight(10.0f, &QuickSearch, nullptr);
|
||||
QuickSearch.VSplitLeft(220.0f, &QuickSearch, &DatabaseButton);
|
||||
DatabaseButton.VSplitLeft(10.0f, nullptr, &DatabaseButton);
|
||||
DatabaseButton.VSplitLeft(150.0f, &DatabaseButton, &DirectoryButton);
|
||||
DirectoryButton.VSplitRight(175.0f, nullptr, &DirectoryButton);
|
||||
DirectoryButton.VSplitRight(25.0f, &DirectoryButton, &RefreshButton);
|
||||
|
@ -904,24 +884,10 @@ void CMenus::RenderSettingsTee(CUIRect MainView)
|
|||
SetNeedSendInfo();
|
||||
}
|
||||
|
||||
// Quick search
|
||||
static CLineInput s_SkinFilterInput(g_Config.m_ClSkinFilterString, sizeof(g_Config.m_ClSkinFilterString));
|
||||
if(Ui()->DoEditBox_Search(&s_SkinFilterInput, &QuickSearch, 14.0f, !Ui()->IsPopupOpen() && m_pClient->m_GameConsole.IsClosed()))
|
||||
{
|
||||
TextRender()->SetFontPreset(EFontPreset::ICON_FONT);
|
||||
TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_PIXEL_ALIGMENT | ETextRenderFlags::TEXT_RENDER_FLAG_NO_OVERSIZE);
|
||||
Ui()->DoLabel(&QuickSearch, FONT_ICON_MAGNIFYING_GLASS, 14.0f, TEXTALIGN_ML);
|
||||
float SearchWidth = TextRender()->TextWidth(14.0f, FONT_ICON_MAGNIFYING_GLASS, -1, -1.0f);
|
||||
TextRender()->SetRenderFlags(0);
|
||||
TextRender()->SetFontPreset(EFontPreset::DEFAULT_FONT);
|
||||
QuickSearch.VSplitLeft(SearchWidth + 5.0f, nullptr, &QuickSearch);
|
||||
static CLineInput s_SkinFilterInput(g_Config.m_ClSkinFilterString, sizeof(g_Config.m_ClSkinFilterString));
|
||||
if(Input()->KeyPress(KEY_F) && Input()->ModifierIsPressed())
|
||||
{
|
||||
Ui()->SetActiveItem(&s_SkinFilterInput);
|
||||
s_SkinFilterInput.SelectAll();
|
||||
}
|
||||
s_SkinFilterInput.SetEmptyText(Localize("Search"));
|
||||
if(Ui()->DoClearableEditBox(&s_SkinFilterInput, &QuickSearch, 14.0f))
|
||||
m_SkinListNeedsUpdate = true;
|
||||
m_SkinListNeedsUpdate = true;
|
||||
}
|
||||
|
||||
static CButtonContainer s_SkinDatabaseButton;
|
||||
|
|
|
@ -282,24 +282,10 @@ void CMenus::RenderSettingsTee7(CUIRect MainView)
|
|||
}
|
||||
}
|
||||
|
||||
// Quick search
|
||||
static CLineInput s_SkinFilterInput(g_Config.m_ClSkinFilterString, sizeof(g_Config.m_ClSkinFilterString));
|
||||
if(Ui()->DoEditBox_Search(&s_SkinFilterInput, &QuickSearch, 14.0f, !Ui()->IsPopupOpen() && m_pClient->m_GameConsole.IsClosed()))
|
||||
{
|
||||
TextRender()->SetFontPreset(EFontPreset::ICON_FONT);
|
||||
TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_PIXEL_ALIGMENT | ETextRenderFlags::TEXT_RENDER_FLAG_NO_OVERSIZE);
|
||||
Ui()->DoLabel(&QuickSearch, FontIcons::FONT_ICON_MAGNIFYING_GLASS, 14.0f, TEXTALIGN_ML);
|
||||
float SearchWidth = TextRender()->TextWidth(14.0f, FontIcons::FONT_ICON_MAGNIFYING_GLASS, -1, -1.0f);
|
||||
TextRender()->SetRenderFlags(0);
|
||||
TextRender()->SetFontPreset(EFontPreset::DEFAULT_FONT);
|
||||
QuickSearch.VSplitLeft(SearchWidth + 5.0f, nullptr, &QuickSearch);
|
||||
static CLineInput s_SkinFilterInput(g_Config.m_ClSkinFilterString, sizeof(g_Config.m_ClSkinFilterString));
|
||||
if(Input()->KeyPress(KEY_F) && Input()->ModifierIsPressed())
|
||||
{
|
||||
Ui()->SetActiveItem(&s_SkinFilterInput);
|
||||
s_SkinFilterInput.SelectAll();
|
||||
}
|
||||
s_SkinFilterInput.SetEmptyText(Localize("Search"));
|
||||
if(Ui()->DoClearableEditBox(&s_SkinFilterInput, &QuickSearch, 14.0f))
|
||||
m_SkinListNeedsUpdate = true;
|
||||
m_SkinListNeedsUpdate = true;
|
||||
}
|
||||
|
||||
static CButtonContainer s_DirectoryButton;
|
||||
|
|
|
@ -352,7 +352,7 @@ int InitSearchList(std::vector<const TName *> &vpSearchList, std::vector<TName>
|
|||
|
||||
void CMenus::RenderSettingsCustom(CUIRect MainView)
|
||||
{
|
||||
CUIRect TabBar, CustomList, QuickSearch, QuickSearchClearButton, DirectoryButton, ReloadButton;
|
||||
CUIRect TabBar, CustomList, QuickSearch, DirectoryButton, ReloadButton;
|
||||
|
||||
MainView.HSplitTop(20.0f, &TabBar, &MainView);
|
||||
const float TabWidth = TabBar.w / NUMBER_OF_ASSETS_TABS;
|
||||
|
@ -599,29 +599,13 @@ void CMenus::RenderSettingsCustom(CUIRect MainView)
|
|||
}
|
||||
}
|
||||
|
||||
// render quick search
|
||||
// Quick search
|
||||
MainView.HSplitBottom(ms_ButtonHeight, &MainView, &QuickSearch);
|
||||
QuickSearch.VSplitLeft(220.0f, &QuickSearch, &DirectoryButton);
|
||||
QuickSearch.HSplitTop(5.0f, nullptr, &QuickSearch);
|
||||
if(Ui()->DoEditBox_Search(&s_aFilterInputs[s_CurCustomTab], &QuickSearch, 14.0f, !Ui()->IsPopupOpen() && m_pClient->m_GameConsole.IsClosed()))
|
||||
{
|
||||
MainView.HSplitBottom(ms_ButtonHeight, &MainView, &QuickSearch);
|
||||
QuickSearch.VSplitLeft(240.0f, &QuickSearch, &DirectoryButton);
|
||||
QuickSearch.HSplitTop(5.0f, 0, &QuickSearch);
|
||||
TextRender()->SetFontPreset(EFontPreset::ICON_FONT);
|
||||
TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_PIXEL_ALIGMENT | ETextRenderFlags::TEXT_RENDER_FLAG_NO_OVERSIZE);
|
||||
|
||||
Ui()->DoLabel(&QuickSearch, FONT_ICON_MAGNIFYING_GLASS, 14.0f, TEXTALIGN_ML);
|
||||
float SearchWidth = TextRender()->TextWidth(14.0f, FONT_ICON_MAGNIFYING_GLASS, -1, -1.0f);
|
||||
TextRender()->SetRenderFlags(0);
|
||||
TextRender()->SetFontPreset(EFontPreset::DEFAULT_FONT);
|
||||
QuickSearch.VSplitLeft(SearchWidth, 0, &QuickSearch);
|
||||
QuickSearch.VSplitLeft(5.0f, 0, &QuickSearch);
|
||||
QuickSearch.VSplitLeft(QuickSearch.w - 10.0f, &QuickSearch, &QuickSearchClearButton);
|
||||
if(Input()->KeyPress(KEY_F) && Input()->ModifierIsPressed())
|
||||
{
|
||||
Ui()->SetActiveItem(&s_aFilterInputs[s_CurCustomTab]);
|
||||
s_aFilterInputs[s_CurCustomTab].SelectAll();
|
||||
}
|
||||
s_aFilterInputs[s_CurCustomTab].SetEmptyText(Localize("Search"));
|
||||
if(Ui()->DoClearableEditBox(&s_aFilterInputs[s_CurCustomTab], &QuickSearch, 14.0f))
|
||||
gs_aInitCustomList[s_CurCustomTab] = true;
|
||||
gs_aInitCustomList[s_CurCustomTab] = true;
|
||||
}
|
||||
|
||||
DirectoryButton.HSplitTop(5.0f, 0, &DirectoryButton);
|
||||
|
|
|
@ -1004,6 +1004,25 @@ bool CUi::DoClearableEditBox(CLineInput *pLineInput, const CUIRect *pRect, float
|
|||
return ReturnValue;
|
||||
}
|
||||
|
||||
bool CUi::DoEditBox_Search(CLineInput *pLineInput, const CUIRect *pRect, float FontSize, bool HotkeyEnabled)
|
||||
{
|
||||
CUIRect QuickSearch = *pRect;
|
||||
TextRender()->SetFontPreset(EFontPreset::ICON_FONT);
|
||||
TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_PIXEL_ALIGMENT | ETextRenderFlags::TEXT_RENDER_FLAG_NO_OVERSIZE);
|
||||
DoLabel(&QuickSearch, FONT_ICON_MAGNIFYING_GLASS, FontSize, TEXTALIGN_ML);
|
||||
const float SearchWidth = TextRender()->TextWidth(FontSize, FONT_ICON_MAGNIFYING_GLASS);
|
||||
TextRender()->SetRenderFlags(0);
|
||||
TextRender()->SetFontPreset(EFontPreset::DEFAULT_FONT);
|
||||
QuickSearch.VSplitLeft(SearchWidth + 5.0f, nullptr, &QuickSearch);
|
||||
if(HotkeyEnabled && Input()->ModifierIsPressed() && Input()->KeyPress(KEY_F))
|
||||
{
|
||||
SetActiveItem(pLineInput);
|
||||
pLineInput->SelectAll();
|
||||
}
|
||||
pLineInput->SetEmptyText(Localize("Search"));
|
||||
return DoClearableEditBox(pLineInput, &QuickSearch, FontSize);
|
||||
}
|
||||
|
||||
int CUi::DoButton_Menu(CUIElement &UIElement, const CButtonContainer *pId, const std::function<const char *()> &GetTextLambda, const CUIRect *pRect, const SMenuButtonProperties &Props)
|
||||
{
|
||||
CUIRect Text = *pRect, DropDownIcon;
|
||||
|
|
|
@ -603,6 +603,24 @@ public:
|
|||
*/
|
||||
bool DoClearableEditBox(CLineInput *pLineInput, const CUIRect *pRect, float FontSize, int Corners = IGraphics::CORNER_ALL, const std::vector<STextColorSplit> &vColorSplits = {});
|
||||
|
||||
/**
|
||||
* Creates an input field with a search icon and a clear [x] button attached to it.
|
||||
* The input will have default text "Search" and the hotkey Ctrl+F can be used to activate the input.
|
||||
*
|
||||
* @see DoEditBox
|
||||
*
|
||||
* @param pLineInput This pointer will be stored and written to on next user input.
|
||||
* So you can not pass in a pointer that goes out of scope such as a local variable.
|
||||
* Pass in either a member variable of the current class or a static variable.
|
||||
* For example ```static CLineInputBuffered<IO_MAX_PATH_LENGTH> s_MyInput;```
|
||||
* @param pRect the UI rect it will attach to
|
||||
* @param FontSize Size of the font (`10.0f`, `12.0f` and `14.0f` are commonly used here)
|
||||
* @param HotkeyEnabled Whether the hotkey to enable this editbox is currently enabled.
|
||||
*
|
||||
* @return true if the value of the input field changed since the last call.
|
||||
*/
|
||||
bool DoEditBox_Search(CLineInput *pLineInput, const CUIRect *pRect, float FontSize, bool HotkeyEnabled);
|
||||
|
||||
int DoButton_Menu(CUIElement &UIElement, const CButtonContainer *pId, const std::function<const char *()> &GetTextLambda, const CUIRect *pRect, const SMenuButtonProperties &Props = {});
|
||||
// only used for popup menus
|
||||
int DoButton_PopupMenu(CButtonContainer *pButtonContainer, const char *pText, const CUIRect *pRect, float Size, int Align, float Padding = 0.0f, bool TransparentInactive = false, bool Enabled = true);
|
||||
|
|
|
@ -1044,50 +1044,6 @@ public:
|
|||
TILE_PUB_ENTITIES_OFF2,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
TILE_FNG_SPIKE_GOLD = 7,
|
||||
TILE_FNG_SPIKE_NORMAL,
|
||||
TILE_FNG_SPIKE_RED,
|
||||
TILE_FNG_SPIKE_BLUE,
|
||||
TILE_FNG_SCORE_RED,
|
||||
TILE_FNG_SCORE_BLUE,
|
||||
|
||||
TILE_FNG_SPIKE_GREEN = 14,
|
||||
TILE_FNG_SPIKE_PURPLE,
|
||||
|
||||
TILE_FNG_SPAWN = 192,
|
||||
TILE_FNG_SPAWN_RED,
|
||||
TILE_FNG_SPAWN_BLUE,
|
||||
TILE_FNG_FLAG_RED,
|
||||
TILE_FNG_FLAG_BLUE,
|
||||
TILE_FNG_SHIELD,
|
||||
TILE_FNG_HEART,
|
||||
TILE_FNG_SHOTGUN,
|
||||
TILE_FNG_GRENADE,
|
||||
TILE_FNG_NINJA,
|
||||
TILE_FNG_LASER,
|
||||
|
||||
TILE_FNG_SPIKE_OLD1 = 208,
|
||||
TILE_FNG_SPIKE_OLD2,
|
||||
TILE_FNG_SPIKE_OLD3
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
TILE_VANILLA_SPAWN = 192,
|
||||
TILE_VANILLA_SPAWN_RED,
|
||||
TILE_VANILLA_SPAWN_BLUE,
|
||||
TILE_VANILLA_FLAG_RED,
|
||||
TILE_VANILLA_FLAG_BLUE,
|
||||
TILE_VANILLA_SHIELD,
|
||||
TILE_VANILLA_HEART,
|
||||
TILE_VANILLA_SHOTGUN,
|
||||
TILE_VANILLA_GRENADE,
|
||||
TILE_VANILLA_NINJA,
|
||||
TILE_VANILLA_LASER,
|
||||
};
|
||||
|
||||
// Explanations
|
||||
enum class EExplanation
|
||||
{
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
#include <game/mapitems_fng.h>
|
||||
#include <game/mapitems_vanilla.h>
|
||||
|
||||
#include "editor.h"
|
||||
|
||||
// DDNet entity explanations by Lady Saavik
|
||||
|
|
33
src/game/mapitems_fng.h
Normal file
33
src/game/mapitems_fng.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
#ifndef GAME_MAPITEMS_FNG_H
|
||||
#define GAME_MAPITEMS_FNG_H
|
||||
|
||||
enum
|
||||
{
|
||||
TILE_FNG_SPIKE_GOLD = 7,
|
||||
TILE_FNG_SPIKE_NORMAL,
|
||||
TILE_FNG_SPIKE_RED,
|
||||
TILE_FNG_SPIKE_BLUE,
|
||||
TILE_FNG_SCORE_RED,
|
||||
TILE_FNG_SCORE_BLUE,
|
||||
|
||||
TILE_FNG_SPIKE_GREEN = 14,
|
||||
TILE_FNG_SPIKE_PURPLE,
|
||||
|
||||
TILE_FNG_SPAWN = 192,
|
||||
TILE_FNG_SPAWN_RED,
|
||||
TILE_FNG_SPAWN_BLUE,
|
||||
TILE_FNG_FLAG_RED,
|
||||
TILE_FNG_FLAG_BLUE,
|
||||
TILE_FNG_SHIELD,
|
||||
TILE_FNG_HEART,
|
||||
TILE_FNG_SHOTGUN,
|
||||
TILE_FNG_GRENADE,
|
||||
TILE_FNG_NINJA,
|
||||
TILE_FNG_LASER,
|
||||
|
||||
TILE_FNG_SPIKE_OLD1 = 208,
|
||||
TILE_FNG_SPIKE_OLD2,
|
||||
TILE_FNG_SPIKE_OLD3
|
||||
};
|
||||
|
||||
#endif
|
19
src/game/mapitems_vanilla.h
Normal file
19
src/game/mapitems_vanilla.h
Normal file
|
@ -0,0 +1,19 @@
|
|||
#ifndef GAME_MAPITEMS_VANILLA_H
|
||||
#define GAME_MAPITEMS_VANILLA_H
|
||||
|
||||
enum
|
||||
{
|
||||
TILE_VANILLA_SPAWN = 192,
|
||||
TILE_VANILLA_SPAWN_RED,
|
||||
TILE_VANILLA_SPAWN_BLUE,
|
||||
TILE_VANILLA_FLAG_RED,
|
||||
TILE_VANILLA_FLAG_BLUE,
|
||||
TILE_VANILLA_SHIELD,
|
||||
TILE_VANILLA_HEART,
|
||||
TILE_VANILLA_SHOTGUN,
|
||||
TILE_VANILLA_GRENADE,
|
||||
TILE_VANILLA_NINJA,
|
||||
TILE_VANILLA_LASER,
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Reference in a new issue