SergOz, раньше были баги с раундами -1, 0, 0. Что-то случалось два раза, что-то до появления поля боя. Наличие тактики несколько меняло счёт. Теперь показываю основную задумку и исходный код Славы:
Code:
case 'U': // вызов каждый 4-й турн
case 'u': // вызов один раз
case 'l':{ // вызов каждый раз, начиная со второго райнда клона
Byte *bh;
int x,y,CodeP,Flags=0;
if(BatMan[0x13D68]) break; // tactic phase
Сперва проверка на тактику, в ней не вызывается. Но по комментариям видна цель.
Далее:
Code:
if(ebp->Type=='u'){
if(Day!=1) break;
}else if(ebp->Type=='U'){
if((Day%4)!=1) break;
}else{
if(Day<1) break;
Здесь Day - номер раунда. В нулевом ничего не должно было происходить. То, что каждый четыре хода клонируется, в 1, 5, 9-м. Отдельная проверка на < 1, тогда сразу выход.
Поэтому исправление нумерации исправило и баг. Судя по всему, задумкой была возможность уничтожить/уменьшить отряд до его первого клонирования/вызова, что логично.
Просто именно наличие тактики сбивает счёт. Ты просишь, по сути, вернуть баг.
; ВНИМАНИЕ: никакой гарантии совместимости со скриптами, модами и поддержки в будущем этого кода
Сейчас новый баг добавился из-за сложности использования BU:R в нулевой раунде, буду смотреть, как исправить.