1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-05-13 22:06:58 +02:00

Further loss improvements.

This commit is contained in:
Michał W. Urbańczyk 2010-02-01 19:19:42 +00:00
parent f5a719c2da
commit 172b3b0158
3 changed files with 16 additions and 3 deletions

View File

@ -367,7 +367,7 @@ void CGeneralTextHandler::load()
{ {
loadToIt(tmp, strc, itr, 3); loadToIt(tmp, strc, itr, 3);
colors.push_back(tmp); colors.push_back(tmp);
toupper(tmp[0]); tmp[0] = toupper(tmp[0]);
capColors.push_back(tmp); capColors.push_back(tmp);
} }

View File

@ -3193,7 +3193,7 @@ void CGameState::obtainPlayersStats(SThievesGuildInfo & tgi, int level)
int CGameState::lossCheck( ui8 player ) const int CGameState::lossCheck( ui8 player ) const
{ {
const PlayerState *p = getPlayer(player); const PlayerState *p = getPlayer(player);
if(map->lossCondition.typeOfLossCon == lossStandard) //if(map->lossCondition.typeOfLossCon == lossStandard)
if(checkForStandardLoss(player)) if(checkForStandardLoss(player))
return -1; return -1;

View File

@ -2877,7 +2877,8 @@ bool CGameHandler::makeBattleAction( BattleAction &ba )
break; break;
} }
} }
battleMadeAction.setn(true); if(ba.stackNumber == gs->curB->activeStack)
battleMadeAction.setn(true);
return ok; return ok;
} }
@ -3510,6 +3511,10 @@ void CGameHandler::winLoseHandle(ui8 players )
void CGameHandler::checkLossVictory( ui8 player ) void CGameHandler::checkLossVictory( ui8 player )
{ {
const PlayerState *p = gs->getPlayer(player);
if(p->status) //player already won / lost
return;
int loss = gs->lossCheck(player); int loss = gs->lossCheck(player);
int vic = gs->victoryCheck(player); int vic = gs->victoryCheck(player);
@ -3542,6 +3547,14 @@ void CGameHandler::checkLossVictory( ui8 player )
} }
} }
} }
else //player lost -> all his objects become unflagged (neutral)
{
for (std::vector<CGObjectInstance*>::const_iterator i = gs->map->objects.begin(); i != gs->map->objects.end(); i++)
{
if(*i && (*i)->tempOwner == player)
setOwner((**i).id,NEUTRAL_PLAYER);
}
}
if(vic) if(vic)
end2 = true; end2 = true;