Кому интересно, нашел некоторые ошибки оригинала, которые удалось пофиксить:
Не работает вертикальная синхронизация [ТЧ, ЧН, ЗП]Из-за этой проблемы у некоторых людей горели видеокарты, так как не было ограничения кадров в игре. У Лохотрона, например, так сгорело две видюхи, т.к. в меню выдавало аж 6000 кадров в секунду.
Для DX9 это фиксится в файле
HW.cpp:
Код
DevPP.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
и
Код
P.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
меняются на:
Код
DevPP.PresentationInterval = selectPresentInterval();
и соответственно
Код
P.PresentationInterval = selectPresentInterval();
Для DX10/11 в
dxRenderDeviceRender.cpp:
Код
HW.m_pSwapChain->Present( 0, 0);
Добавляем проверку на включение вертикальной синхронизации:
Код
HW.m_pSwapChain->Present(psDeviceFlags.test(rsVSync) ? 1 : 0, 0);
Эффектор перезарядки срабатывает не каждый раз [ЗП]Ну тут всё просто, просто перезапускаем активный эффектор. Заходим в
player_hud.cpp, находим строки 380-381:
Код
if(NULL==ec)
{
Эти две строки с закрывающейся скобкой удаляем. Вместо этого вставляем:
Код
if(ec)
current_actor->Cameras().RemoveCamEffector(eCEWeaponAction);
Теперь эффектор работает при каждой перезарядке.
Очень странный вылет [ТЧ, ЧН, ЗП]Данная проблема была в свое в ЛА еще в 2013 году, и я очень долго не мог найти причину вылета, так как вылет каждый раз ссылался на разные некорректные по его мнению объекты. Причем возникал не всегда и можно было его поймать только при выходе из игры. Спустя несколько месяцев чудом проблема была найдена. Оказывается, проблема была в лампочках, которые включались и выключались скриптово. Игра ловила крэш при 255 и более включении и выключении лампочки. Фиксится в
HangingLamp.cpp в строках:
Код
}
if(!PPhysicsShell())//if we have physiccs_shell it will call processing deactivate when disable
processing_deactivate ();
Удаляем
if(!PPhysicsShell()), теперь
processing_deactivate(); будет срабатывать всегда, как и должен, и мы можем включать и выключать лампочки сколько угодно раз.
Причину бага с глитчами камеры в ЗП я так найти не смог. Может кто находил причину? Проверить баг просто: перезаряжаемся и стрефимся. При одном активном эффекторе, окончание второго эффектора глитчит камеру.