Jeśli działał wcześniej, to i teraz powinien. Mogę spróbować :)
-- Edit
Segfault powodowany jest przez wołanie .front() na pustym wektorze buffers w audiorenderer_extra.h. Tu otworzyłem ci PR:
https://github.com/Milek7/maszyna/pull/20 z tymczasowym naprawieniem problemu. Z tym AI przejechało jeden scenariusz od początku do końca. W łikend jeśli będę miał chwilę, to spróbuję znaleźć, czemu ten bufor jest pusty.
-- Edit2
Popatrzyłem w kod i oczywiście buffer jest pusty, bo wcześniej w lambdzie buffer.id == null_resource. A to jest prawdą, bo wcześniej dzieje się "sound: failed to create AL buffer" z jakiegoś powodu :(
-- Edit3
Cóż, posiedziałem nad tym jeszcze chwilę i przyczyna zwracana z alGetError() to Invalid Value. W związku z tym, że wygląda to na problem z samym tworzeniem buforów przez alGenBuffers(), postawiłem kilka breakpointów i sprawdziłem, jak właściwie wygląda efekt końcowy, czyli wektor m_buffers. Odpaliłem w konsolce debugowania:
for (int i=0; i < m_buffers.size(); i++) ErrorLog(to_string(i).append(": ").append(to_string(m_buffers[i].id)), logtype::generic)
Efekt w załączniku. Zadziwiające, że akurat 1024 i wszystkie dalsze mają id o wartości null_resource. Co dziwne, również zerowy jest zepsuty.
-- Edit4
Zerowy jest zepsuty, bo jest dodawany w konstruktorze:
buffer_manager() { m_buffers.emplace_back( openal_buffer() ); }
Czyli z jakiegos powodu alGenBuffers można zawołać tylko 1023 razy o_O'
-- Edit5
No i wszystko jasne. Ehh… Apple:
https://opensource.apple.com/source/OpenAL/OpenAL-67/Source/OpenAL/oalImp.h.auto.htmlSpróbuję z OpenAL-soft
-- Edit6
Z OpenAL-soft działa :)