From ae095f8fe524a124948f93e580b621fdfae47402 Mon Sep 17 00:00:00 2001 From: Jan Date: Wed, 29 Dec 2021 02:05:21 +0100 Subject: [PATCH] Add focussound conversion for menus --- src/ObjLoading/Game/IW4/Menu/MenuConverterIW4.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/ObjLoading/Game/IW4/Menu/MenuConverterIW4.cpp b/src/ObjLoading/Game/IW4/Menu/MenuConverterIW4.cpp index e573688b..ed960828 100644 --- a/src/ObjLoading/Game/IW4/Menu/MenuConverterIW4.cpp +++ b/src/ObjLoading/Game/IW4/Menu/MenuConverterIW4.cpp @@ -4,7 +4,6 @@ #include #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(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(soundDependency->m_ptr); + } + bool HandleStaticDvarFunctionCall(Statement_s* gameStatement, std::vector& 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);