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;
|
MenuConversionZoneState* m_conversion_zone_state;
|
||||||
MenuAssetZoneState* m_parsing_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)
|
_NODISCARD static rectDef_s ConvertRectDef(const CommonRect& rect)
|
||||||
{
|
{
|
||||||
return rectDef_s{
|
return rectDef_s{
|
||||||
@ -652,7 +634,7 @@ namespace IW4
|
|||||||
_NODISCARD itemDef_s* ConvertItem(const CommonMenuDef& parentMenu, const CommonItemDef& commonItem) const
|
_NODISCARD itemDef_s* ConvertItem(const CommonMenuDef& parentMenu, const CommonItemDef& commonItem) const
|
||||||
{
|
{
|
||||||
auto* item = m_memory->Create<itemDef_s>();
|
auto* item = m_memory->Create<itemDef_s>();
|
||||||
ApplyItemDefaults(item);
|
memset(item, 0, sizeof(itemDef_s));
|
||||||
|
|
||||||
item->window.name = ConvertString(commonItem.m_name);
|
item->window.name = ConvertString(commonItem.m_name);
|
||||||
item->text = ConvertString(commonItem.m_text);
|
item->text = ConvertString(commonItem.m_text);
|
||||||
@ -742,7 +724,7 @@ namespace IW4
|
|||||||
_NODISCARD menuDef_t* ConvertMenu(const CommonMenuDef& commonMenu) const
|
_NODISCARD menuDef_t* ConvertMenu(const CommonMenuDef& commonMenu) const
|
||||||
{
|
{
|
||||||
auto* menu = m_memory->Create<menuDef_t>();
|
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->window.name = m_memory->Dup(commonMenu.m_name.c_str());
|
||||||
menu->fullScreen = commonMenu.m_full_screen;
|
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 a;
|
||||||
};
|
};
|
||||||
double array[4];
|
double array[4];
|
||||||
|
|
||||||
|
CommonColor();
|
||||||
|
CommonColor(double r, double g, double b, double a);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CommonRect
|
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:
|
protected:
|
||||||
void ProcessMatch(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result) const override
|
void ProcessMatch(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result) const override
|
||||||
{
|
{
|
||||||
auto newMenu = std::make_unique<CommonMenuDef>();
|
auto newMenu = std::make_unique<CommonMenuDef>();
|
||||||
|
ApplyDefaults(*newMenu);
|
||||||
state->m_current_menu = newMenu.get();
|
state->m_current_menu = newMenu.get();
|
||||||
state->m_menus.emplace_back(std::move(newMenu));
|
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:
|
protected:
|
||||||
void ProcessMatch(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result) const override
|
void ProcessMatch(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result) const override
|
||||||
{
|
{
|
||||||
auto newItemDef = std::make_unique<CommonItemDef>();
|
auto newItemDef = std::make_unique<CommonItemDef>();
|
||||||
|
ApplyDefaults(*newItemDef);
|
||||||
state->m_current_item = newItemDef.get();
|
state->m_current_item = newItemDef.get();
|
||||||
state->m_current_menu->m_items.emplace_back(std::move(newItemDef));
|
state->m_current_menu->m_items.emplace_back(std::move(newItemDef));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user