char *__thiscall Battle_GetBackgroundPcxName(_BattleMgr_ *this)
{
  battleMgr = this;
  if ( this->ShootTowers <= 0 )
  {
    SpecialGround = this->Special_Ground;
    if ( SpecialGround != -1 && SpecialGround )
    {
      result = SpecialGroundNames[SpecialGround];
    }
    else
    {
      HeroA = battleMgr->Hero[LEFT];
      if ( HeroA
        && LODWORD(HeroA->vizitedFlags) & HF_IN_BOAT
        && (HeroD = battleMgr->Hero[RIGHT]) != 0
        && LODWORD(HeroD->vizitedFlags) & HF_IN_BOAT )
      {
        result = aCmbkboat_pcx;
      }
      else if ( battleMgr->isWaterBank )
      {
        result = aCmbkdeck_pcx;
      }
      else if ( SpecialGround )
      {
        result = BattlePcxNames[AdvMgr_GetBattlefieldTerrian(o_AdvMgr, battleMgr->mapPoint)
                              + 2 * battleMgr->combatTerrain
                              + battleMgr->combatTerrain];
      }
      else
      {
        result = aCmbkbch_pcx;
      }
    }
  }
  else
  {
    result = TownSiegeBackground[this->Town->type];
  }
  battleMgr->iCombatCycleType = 1;
  battleMgr->combatFringe = -1;
  return result;
}