SNMetamorph / PrimeXT

Modern Half-Life 1 SDK for Xash3D FWGS engine, has enhanced graphics and physics and a lot of new features for mod-makers. Crossplatform, supports Windows/Linux. Based on XashXT and Spirit Of Half-Life.
https://snmetamorph.github.io/PrimeXT/
107 stars 31 forks source link

server/util.cpp@196 ASSERT FAILED: sizeof(pMap->dataDesc[i].func) == sizeof(void *) #209

Open a1batross opened 5 months ago

a1batross commented 5 months ago

Указатели на члены класса не обязательно равны указателям на void *.

Воспроизводится на 64-битной сборке под Linux.

Полагаю, можно воспроизвести на Windows с MSVC, поигравшись с флагами /vmg /vmm : https://learn.microsoft.com/en-us/cpp/build/reference/vmm-vms-vmv-general-purpose-representation?view=msvc-170

Немного размышлений на тему: https://godbolt.org/z/f1qPv55Kq https://devblogs.microsoft.com/oldnewthing/20040209-00/?p=40713

SNMetamorph commented 3 months ago

И вот встаёт вопрос, как это в сейвы записывать в портабельном виде, если у каждого компилятора своя реализация :/