// функция получения списка приоритета стеков 
int __stdcall GetStackPriority()
{
   int a = 0;  // переменная которая будет хранить кол-во стеков с HP больше нуля
   for (j = 0; j <= 41; j++) // для этого создаем цикл и проходим по всем стекам 0 ... 41
   {
         // проверка на кол-во монстров в стеке в цикле, и если больше нуля, то записывам номер стека в массив
     if (GetBattleStackParam1(j, 76) > 0) 
     {
          // потом тут будут также проверки на ослепление, окаменение и паралич
       StackPriority[a] = j; // создаем массив [a] со списком монстров, у которых текущее кол-во больше нуля
       a++;
     }
   }
   // теперь создаем список приоритетов из имеющегося массива живых стеков через пузырьковую сортировку
   for (i = 0; i <= a - 1; i++)
   {
      // вызываем функцию приоритетов
      // v1 = CALL_3(int, __thiscall, 0x464B30, o_BattleMgr_, &(o_BattleMgr_->stack[side][stack]), &(o_BattleMgr_->stack[side][stack]) ); 
         // если второй стек приоритетнее первого
      if (CALL_3(int, __thiscall, 0x464B30, o_BattleMgr_, &(o_BattleMgr_->stack(StackPriority[i])), &(o_BattleMgr_->stack(StackPriority[i + 1])) ) != 1) 
        // тут будут меняться местами стеки [i] и [i + 1] внути массива StackPriority[a]
   }
   return 1;
}