на вложенную функцию "this" нельзя ссылаться внутри тела лямбды, если оно не находится в списке записей
При попытке добавить строку: PlaySnd(eInvDetachAddon); //Вот тут ошибка происходит эта ошибка
else if (pWnd == m_pUIPropertiesBox && msg == PROPERTY_CLICKED)
{
if (m_pUIPropertiesBox->GetClickedItem())
{
switch (m_pUIPropertiesBox->GetClickedItem()->GetTAG())
{
case INVENTORY_EAT_ACTION: //съесть объект
EatItem();
break;
case INVENTORY_UNLOAD_MAGAZINE: {
auto ProcessUnload = [](void* pWpn) {
auto WpnMagaz = static_cast<CWeaponMagazined*>(pWpn);
WpnMagaz->UnloadMagazine();
PlaySnd(eInvDetachAddon); //Вот тут ошибка
if (auto WpnMagazWgl = smart_cast<CWeaponMagazinedWGrenade*>(WpnMagaz))
{
if (WpnMagazWgl->IsGrenadeLauncherAttached())
{
WpnMagazWgl->PerformSwitchGL();
WpnMagazWgl->UnloadMagazine();
WpnMagazWgl->PerformSwitchGL();
}
}
};
Вот функция PlaySnd
void CUICarBodyWnd::PlaySnd(eInventorySndAction a)
{
if (sounds[a]._handle())
sounds[a].play(NULL, sm_2D);
}
Помогите пожалуйста