Add focussound conversion for menus

This commit is contained in:
Jan 2021-12-29 02:05:21 +01:00
parent 3589035ed6
commit ae095f8fe5

View File

@ -4,7 +4,6 @@
#include <cstring>
#include "MenuConversionZoneStateIW4.h"
#include "Game/IW4/MenuConstantsIW4.h"
#include "Utils/ClassUtils.h"
#include "Menu/AbstractMenuConverter.h"
#include "Parsing/Menu/MenuAssetZoneState.h"
@ -95,6 +94,18 @@ namespace IW4
return static_cast<Material*>(materialDependency->m_ptr);
}
_NODISCARD snd_alias_list_t* ConvertSound(const std::string& soundName, const CommonMenuDef* menu, const CommonItemDef* item = nullptr) const
{
if (soundName.empty())
return nullptr;
auto* soundDependency = m_manager->LoadDependency(ASSET_TYPE_SOUND, soundName);
if (!soundDependency)
throw MenuConversionException("Failed to load sound \"" + soundName + "\"", menu, item);
return static_cast<snd_alias_list_t*>(soundDependency->m_ptr);
}
bool HandleStaticDvarFunctionCall(Statement_s* gameStatement, std::vector<expressionEntry>& entries, const CommonExpressionBaseFunctionCall* functionCall, const int targetFunctionIndex) const
{
if (functionCall->m_args.size() != 1)
@ -682,7 +693,7 @@ namespace IW4
item->mouseExitText = ConvertEventHandlerSet(commonItem.m_on_mouse_exit_text.get(), &parentMenu, &commonItem);
item->action = ConvertEventHandlerSet(commonItem.m_on_action.get(), &parentMenu, &commonItem);
item->accept = ConvertEventHandlerSet(commonItem.m_on_accept.get(), &parentMenu, &commonItem);
// item->focusSound
item->focusSound = ConvertSound(commonItem.m_focus_sound, &parentMenu, &commonItem);
item->dvarTest = ConvertString(commonItem.m_dvar_test);
// enableDvar
item->onKey = ConvertKeyHandler(commonItem.m_key_handlers, &parentMenu, &commonItem);