mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-21 00:25:44 +00:00
Apply menu elements defaults
This commit is contained in:
parent
d8b1f58b40
commit
96ad97b784
@ -26,24 +26,6 @@ namespace IW4
|
||||
MenuConversionZoneState* m_conversion_zone_state;
|
||||
MenuAssetZoneState* m_parsing_zone_state;
|
||||
|
||||
static void ApplyMenuDefaults(menuDef_t* menu)
|
||||
{
|
||||
memset(menu, 0, sizeof(menuDef_t));
|
||||
menu->window.foreColor[0] = 1.0f;
|
||||
menu->window.foreColor[1] = 1.0f;
|
||||
menu->window.foreColor[2] = 1.0f;
|
||||
menu->window.foreColor[3] = 1.0f;
|
||||
}
|
||||
|
||||
static void ApplyItemDefaults(itemDef_s* item)
|
||||
{
|
||||
memset(item, 0, sizeof(itemDef_s));
|
||||
item->window.foreColor[0] = 1.0f;
|
||||
item->window.foreColor[1] = 1.0f;
|
||||
item->window.foreColor[2] = 1.0f;
|
||||
item->window.foreColor[3] = 1.0f;
|
||||
}
|
||||
|
||||
_NODISCARD static rectDef_s ConvertRectDef(const CommonRect& rect)
|
||||
{
|
||||
return rectDef_s{
|
||||
@ -652,7 +634,7 @@ namespace IW4
|
||||
_NODISCARD itemDef_s* ConvertItem(const CommonMenuDef& parentMenu, const CommonItemDef& commonItem) const
|
||||
{
|
||||
auto* item = m_memory->Create<itemDef_s>();
|
||||
ApplyItemDefaults(item);
|
||||
memset(item, 0, sizeof(itemDef_s));
|
||||
|
||||
item->window.name = ConvertString(commonItem.m_name);
|
||||
item->text = ConvertString(commonItem.m_text);
|
||||
@ -742,7 +724,7 @@ namespace IW4
|
||||
_NODISCARD menuDef_t* ConvertMenu(const CommonMenuDef& commonMenu) const
|
||||
{
|
||||
auto* menu = m_memory->Create<menuDef_t>();
|
||||
ApplyMenuDefaults(menu);
|
||||
memset(menu, 0, sizeof(menuDef_t));
|
||||
|
||||
menu->window.name = m_memory->Dup(commonMenu.m_name.c_str());
|
||||
menu->fullScreen = commonMenu.m_full_screen;
|
||||
|
21
src/ObjLoading/Parsing/Menu/Domain/CommonMenuTypes.cpp
Normal file
21
src/ObjLoading/Parsing/Menu/Domain/CommonMenuTypes.cpp
Normal file
@ -0,0 +1,21 @@
|
||||
#include "CommonMenuTypes.h"
|
||||
|
||||
using namespace menu;
|
||||
|
||||
CommonColor::CommonColor()
|
||||
: array{}
|
||||
{
|
||||
r = 0.0;
|
||||
g = 0.0;
|
||||
b = 0.0;
|
||||
a = 0.0;
|
||||
}
|
||||
|
||||
CommonColor::CommonColor(const double r, const double g, const double b, const double a)
|
||||
: array{}
|
||||
{
|
||||
this->r = r;
|
||||
this->g = g;
|
||||
this->b = b;
|
||||
this->a = a;
|
||||
}
|
@ -12,6 +12,9 @@ namespace menu
|
||||
double a;
|
||||
};
|
||||
double array[4];
|
||||
|
||||
CommonColor();
|
||||
CommonColor(double r, double g, double b, double a);
|
||||
};
|
||||
|
||||
struct CommonRect
|
||||
|
@ -61,10 +61,17 @@ namespace menu::global_scope_sequences
|
||||
});
|
||||
}
|
||||
|
||||
private:
|
||||
static void ApplyDefaults(CommonMenuDef& menu)
|
||||
{
|
||||
menu.m_fore_color = CommonColor(1.0, 1.0, 1.0, 1.0);
|
||||
}
|
||||
|
||||
protected:
|
||||
void ProcessMatch(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result) const override
|
||||
{
|
||||
auto newMenu = std::make_unique<CommonMenuDef>();
|
||||
ApplyDefaults(*newMenu);
|
||||
state->m_current_menu = newMenu.get();
|
||||
state->m_menus.emplace_back(std::move(newMenu));
|
||||
}
|
||||
|
@ -86,10 +86,17 @@ namespace menu::menu_scope_sequences
|
||||
});
|
||||
}
|
||||
|
||||
private:
|
||||
static void ApplyDefaults(CommonItemDef& item)
|
||||
{
|
||||
item.m_fore_color = CommonColor(1.0, 1.0, 1.0, 1.0);
|
||||
}
|
||||
|
||||
protected:
|
||||
void ProcessMatch(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result) const override
|
||||
{
|
||||
auto newItemDef = std::make_unique<CommonItemDef>();
|
||||
ApplyDefaults(*newItemDef);
|
||||
state->m_current_item = newItemDef.get();
|
||||
state->m_current_menu->m_items.emplace_back(std::move(newItemDef));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user