Вот в .ехе-шнике игры есть свои operator new, operator delete, а также malloc, realloc, free и прочие вещи для контроля динамической памяти.
Стоит ли сделать глобальную перегрузку которая будет вызывать соответствующие .ехе-шные функции, по крайней мере для контейнеров, чтобы dll использовал кучу .ехе-шника? Это сильно скажется на скорости, но разве это не должно быть впринципе так?
Я не вижу смысла вызывать "родные" функции работы с памятью. Во-первых, менеджментом памяти занимается ОС и ей виднее, как лучше работать с кучей. Во-вторых, от "изнанки" того, как реализованы и работают new, delete и т.д., не зависит то, как работает игра. Поэтому нет смысла париться с вызовом "родных" функций (я видел, так делают): смело используйте стандартные.
Но мне кажется если оверхед нулевой, почему бы и нет.
Я не знаю, каким должен быть плагин, чтобы разница от реализации вылилась хотя бы в миллисекунду.
Использовать для определения типа вместо typedef это как раз таки я придумал, а сама эта функция в игре просто вызывается для неописанных функций других заклинаний и возвращает нуль, ну действительно слишком сложно описать логику оценивания, например, силового поля.
Я имею в виду то, как именно
в исходном коде определён тип type_enchant_func. Мне показалось, что определить его через тип функции unimplemented, хорошая идея. А так, да, unimplemented - это default для свитча выбора функции взвешивания.
Да. К тому же, как я описал выше, можно научить ИИ кастовать заклинания, которые оригинальный ИИ не умеет. Список: силовое поле, огненная стена, зыбучие пески, мины, убрать препятствие
Кому-то нужно этим заняться. В оригинале AI ещё и Берсерк не кастует, но где-то видел фикс.