mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-19 15:52:53 +00:00
Fix menu visibility
This commit is contained in:
parent
4b80ed1e9e
commit
64a1e4c176
@ -1499,7 +1499,7 @@ namespace IW4
|
|||||||
int ownerDrawFlags;
|
int ownerDrawFlags;
|
||||||
float borderSize;
|
float borderSize;
|
||||||
int staticFlags;
|
int staticFlags;
|
||||||
int dynamicFlags[1];
|
unsigned int dynamicFlags[1];
|
||||||
int nextTime;
|
int nextTime;
|
||||||
float foreColor[4];
|
float foreColor[4];
|
||||||
float backColor[4];
|
float backColor[4];
|
||||||
|
@ -488,7 +488,7 @@ namespace IW4
|
|||||||
return ConvertExpression(expression, menu, item);
|
return ConvertExpression(expression, menu, item);
|
||||||
}
|
}
|
||||||
|
|
||||||
_NODISCARD Statement_s* ConvertVisibleExpression(itemDef_s* item, const ISimpleExpression* expression, const CommonMenuDef* commonMenu, const CommonItemDef* commonItem = nullptr) const
|
_NODISCARD Statement_s* ConvertVisibleExpression(windowDef_t* window, const ISimpleExpression* expression, const CommonMenuDef* commonMenu, const CommonItemDef* commonItem = nullptr) const
|
||||||
{
|
{
|
||||||
if (expression == nullptr)
|
if (expression == nullptr)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
@ -497,11 +497,11 @@ namespace IW4
|
|||||||
{
|
{
|
||||||
const auto staticValue = expression->Evaluate();
|
const auto staticValue = expression->Evaluate();
|
||||||
if (staticValue.IsTruthy())
|
if (staticValue.IsTruthy())
|
||||||
item->window.dynamicFlags[0] |= WINDOW_FLAG_VISIBLE;
|
window->dynamicFlags[0] |= WINDOW_FLAG_VISIBLE;
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
item->window.dynamicFlags[0] |= WINDOW_FLAG_VISIBLE;
|
window->dynamicFlags[0] |= WINDOW_FLAG_VISIBLE;
|
||||||
return ConvertExpression(expression, commonMenu, commonItem);
|
return ConvertExpression(expression, commonMenu, commonItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -912,7 +912,7 @@ namespace IW4
|
|||||||
item->type = ConvertItemType(commonItem.m_type);
|
item->type = ConvertItemType(commonItem.m_type);
|
||||||
item->window.border = commonItem.m_border;
|
item->window.border = commonItem.m_border;
|
||||||
item->window.borderSize = static_cast<float>(commonItem.m_border_size);
|
item->window.borderSize = static_cast<float>(commonItem.m_border_size);
|
||||||
item->visibleExp = ConvertVisibleExpression(item, commonItem.m_visible_expression.get(), &parentMenu, &commonItem);
|
item->visibleExp = ConvertVisibleExpression(&item->window, commonItem.m_visible_expression.get(), &parentMenu, &commonItem);
|
||||||
item->disabledExp = ConvertExpression(commonItem.m_disabled_expression.get(), &parentMenu, &commonItem);
|
item->disabledExp = ConvertExpression(commonItem.m_disabled_expression.get(), &parentMenu, &commonItem);
|
||||||
item->window.ownerDraw = commonItem.m_owner_draw;
|
item->window.ownerDraw = commonItem.m_owner_draw;
|
||||||
item->window.ownerDrawFlags = commonItem.m_owner_draw_flags;
|
item->window.ownerDrawFlags = commonItem.m_owner_draw_flags;
|
||||||
@ -1050,7 +1050,7 @@ namespace IW4
|
|||||||
ApplyFlag(menu->window.staticFlags, commonMenu.m_hidden_during_ui, WINDOW_FLAG_HIDDEN_DURING_UI);
|
ApplyFlag(menu->window.staticFlags, commonMenu.m_hidden_during_ui, WINDOW_FLAG_HIDDEN_DURING_UI);
|
||||||
menu->allowedBinding = ConvertString(commonMenu.m_allowed_binding);
|
menu->allowedBinding = ConvertString(commonMenu.m_allowed_binding);
|
||||||
ApplyFlag(menu->window.staticFlags, commonMenu.m_text_only_focus, WINDOW_FLAG_TEXT_ONLY_FOCUS);
|
ApplyFlag(menu->window.staticFlags, commonMenu.m_text_only_focus, WINDOW_FLAG_TEXT_ONLY_FOCUS);
|
||||||
menu->visibleExp = ConvertExpression(commonMenu.m_visible_expression.get(), &commonMenu);
|
menu->visibleExp = ConvertVisibleExpression(&menu->window, commonMenu.m_visible_expression.get(), &commonMenu);
|
||||||
menu->rectXExp = ConvertOrApplyStatement(menu->window.rect.x, commonMenu.m_rect_x_exp.get(), &commonMenu);
|
menu->rectXExp = ConvertOrApplyStatement(menu->window.rect.x, commonMenu.m_rect_x_exp.get(), &commonMenu);
|
||||||
menu->rectYExp = ConvertOrApplyStatement(menu->window.rect.y, commonMenu.m_rect_y_exp.get(), &commonMenu);
|
menu->rectYExp = ConvertOrApplyStatement(menu->window.rect.y, commonMenu.m_rect_y_exp.get(), &commonMenu);
|
||||||
menu->rectWExp = ConvertOrApplyStatement(menu->window.rect.w, commonMenu.m_rect_w_exp.get(), &commonMenu);
|
menu->rectWExp = ConvertOrApplyStatement(menu->window.rect.w, commonMenu.m_rect_w_exp.get(), &commonMenu);
|
||||||
|
@ -787,7 +787,12 @@ void MenuDumper::WriteMenuData(const menuDef_t* menu)
|
|||||||
WriteKeywordProperty("hiddenDuringUI", menu->window.staticFlags & WINDOW_FLAG_HIDDEN_DURING_UI);
|
WriteKeywordProperty("hiddenDuringUI", menu->window.staticFlags & WINDOW_FLAG_HIDDEN_DURING_UI);
|
||||||
WriteStringProperty("allowedBinding", menu->allowedBinding);
|
WriteStringProperty("allowedBinding", menu->allowedBinding);
|
||||||
WriteKeywordProperty("textOnlyFocus", menu->window.staticFlags & WINDOW_FLAG_TEXT_ONLY_FOCUS);
|
WriteKeywordProperty("textOnlyFocus", menu->window.staticFlags & WINDOW_FLAG_TEXT_ONLY_FOCUS);
|
||||||
WriteStatementProperty("visible", menu->visibleExp, true);
|
|
||||||
|
if (menu->visibleExp)
|
||||||
|
WriteStatementProperty("visible", menu->visibleExp, true);
|
||||||
|
else if (menu->window.dynamicFlags[0] & WINDOW_FLAG_VISIBLE)
|
||||||
|
WriteIntProperty("visible", 1, 0);
|
||||||
|
|
||||||
WriteStatementProperty("exp rect X", menu->rectXExp, false);
|
WriteStatementProperty("exp rect X", menu->rectXExp, false);
|
||||||
WriteStatementProperty("exp rect Y", menu->rectYExp, false);
|
WriteStatementProperty("exp rect Y", menu->rectYExp, false);
|
||||||
WriteStatementProperty("exp rect W", menu->rectWExp, false);
|
WriteStatementProperty("exp rect W", menu->rectWExp, false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user