>>
|
No. 120683
>>120682
Я уже говорил - сомнительно, чтобы после генерации DF захотел бы памяти больше 2GB. При желании, конечно, можно поставить лимит населения в 1000 голов и высадится на карте 16х16 тайлов. Но нахуя?
Ликбез:
Такая правка может вызвать проблему, в сущности, только одного рода - преобразование указателей на адрес дальше 2GB в long и порождённые от него типы данных, т.к. при этом указатели большие 0x8xxxxxxx принимают вид не 0x000000008xxxxxxx, а 0xffffffff8xxxxxxx, т.е. выполняется знаковое расширение значения.
Если такая проблема существует в DF, то она должна была проявится в процессе генерации, в противном случае, даже если бы предполагать, что в процессе непосредственно игры DF запросил бы больше 2GB, вероятность ошибки резко снижается: инструментарий (базовые операции), которым создаются карты и которым они играются, наверняка один и тот же (говорю как программист), поэтому если под большой нагрузкой он хорошо отработал, то с чего бы ему валиться в игре. Но ещё раз говорю - это изменение не затрагивает игровой процесс, поскольку во время игры указателей больших 0x80000000 нет, потребности игры существенно меньше. Более того, изменение не затрагивает никакой код, единственное, что меняется - это поведение аллокатора памяти (а DF использует стандартные компоненты для работы с памятью), а именно - даёт ему разрешение на получение страниц в верхнем адресном пространстве.
Одно замечание - всё же, возможны (хоть и очень маловероятны) ещё скрытые ошибки в самой сгенерированной карте, вроде внезапных пустот до самого дна, или наоборот скалы от пола до космоса, или каких-нибудь бронзовых эльфов - чем чёрт не шутит. Но, ещё раз, мне такое поведение представляется исключительно маловероятным.
Резюмируя:
Всё будет норм, поскольку во время игрового процесса больше 2GB памяти не требуется.
|