Vangers icon indicating copy to clipboard operation
Vangers copied to clipboard

Заезд в эскейв с нюхой и Механическим Мессией

Open mephi42 opened this issue 5 months ago • 0 comments

Если заехать в эскейв с 7 единицами правильной и 1 единицей неправильной нюхи в одном нюхонтейнере и Механическим Мессией, то советник выбросит из эскейва с сообщением о том, что нюха неправильная. Это вводит в заблуждение, потому что если заехать с тем же нюхонтейнером, но без Мессии, то нюху возьмут, так как правильной больше, чем неправильной.

Тыканье в gdb показало, что причиной этому является следующая проверка в uvsVanger::sellCirt():

if (tmp_good >= tmp_bad && tmp_good > 0 && !dgAbortStatus ){

dgAbortStatus устанавливается из-за Мессии.

Вот так получается починить проблему - из эскейва по-прежнему выбрасывают, но теперь с правильным сообщением про Мессию:

--- a/src/uvs/univang.cpp
+++ b/src/uvs/univang.cpp
@@ -6591,6 +6591,8 @@ int uvsVanger::sellCirt(void){
        GamerResult.cirt_bad = -1;
        GamerResult.cirt_good = -1;
 
+       if (dgAbortStatus) return 0;
+
        while( pi ){
                tmp_good = 0;
                tmp_bad = 0;
@@ -6619,7 +6621,7 @@ int uvsVanger::sellCirt(void){
                                }
 
 
-                       if (tmp_good >= tmp_bad && tmp_good > 0 && !dgAbortStatus ){
+                       if (tmp_good >= tmp_bad && tmp_good > 0){
                                tmp_good = 0;
 
        //                      if(cool_index == -1) ErrH.Abort("uvsVanger::sellCirt - good cirt not found but it have");

mephi42 avatar Sep 20 '24 21:09 mephi42