diff options
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes1.cpp | 127 |
1 files changed, 43 insertions, 84 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index d74537e612..6d95948952 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -5951,9 +5951,6 @@ void Scene1337::handlePlayer0() { } void Scene1337::handlePlayer1() { - int tmpVal = 1; - bool found; - if (this->_gameBoardSide[1]._delayCard._cardId != 0) { switch (_gameBoardSide[1]._delayCard._cardId) { case 10: @@ -5971,36 +5968,25 @@ void Scene1337::handlePlayer1() { case 20: // No break on purpose case 21: - tmpVal = 0; discardCard(&_gameBoardSide[1]._delayCard); - break; + return; default: - found = false; - int i; - for (i = 0; i <= 3; i++) { + for (int i = 0; i <= 3; i++) { if (checkAntiDelayCard(_gameBoardSide[1]._delayCard._cardId, _gameBoardSide[1]._handCard[i]._cardId)) { - found = true; - break; + playAntiDelayCard(&_gameBoardSide[1]._handCard[i], &_gameBoardSide[1]._delayCard); + return; } } - - if (found) { - tmpVal = 0; - playAntiDelayCard(&_gameBoardSide[1]._handCard[i], &_gameBoardSide[1]._delayCard); - } + break; } } - if (tmpVal != 1) - return; - - found = false; for (int i = 0; i <= 3; i++) { int tmpIndx = subC26CB(1, i); if (tmpIndx == -1) break; - tmpVal = 0; + int tmpVal = 0; for (int j = 0; j <= 7; j++) { if (_gameBoardSide[1]._outpostStation[j]._cardId == _gameBoardSide[1]._handCard[tmpIndx]._cardId) { tmpVal = 1; @@ -6023,42 +6009,31 @@ void Scene1337::handlePlayer1() { _winnerId = 1; subC33C0(&_gameBoardSide[1]._handCard[tmpIndx], &_gameBoardSide[1]._outpostStation[j]); - found = true; - break; + return; } } } - if (found) - return; - - tmpVal = findNormalCardInHand(1); - if (tmpVal != -1) { + int normalCardId = findNormalCardInHand(1); + if (normalCardId != -1) { for (int i = 0; i <= 7; i++) { if ((_gameBoardSide[1]._outpostStation[i]._cardId == 0) && (!subC2687(_gameBoardSide[1]._delayCard._cardId))) { - playCard(&_gameBoardSide[1]._handCard[tmpVal], &_gameBoardSide[1]._outpostStation[i]); - found = true; - break; + playCard(&_gameBoardSide[1]._handCard[normalCardId], &_gameBoardSide[1]._outpostStation[i]); + return; } } } - if (found) - return; - - tmpVal = findCard13InHand(1); + int card13Id = findCard13InHand(1); int tmpVal2 = getPlayerWithOutpost(1); - if ((tmpVal != -1) && ( tmpVal2 != -1)) { - playCounterTrickCard(&_gameBoardSide[1]._handCard[tmpVal], tmpVal2); - found = true; - } - - if (found) + if ((card13Id != -1) && (tmpVal2 != -1)) { + playCounterTrickCard(&_gameBoardSide[1]._handCard[card13Id], tmpVal2); return; + } - tmpVal = checkThieftCard(1); - if (tmpVal != -1) { + int thieftId = checkThieftCard(1); + if (thieftId != -1) { int playerIdFound = -1; int rndVal = R2_GLOBALS._randomSource.getRandomNumber(3); for (int i = 0; i <= 3; i++) { @@ -6078,18 +6053,15 @@ void Scene1337::handlePlayer1() { } if (playerIdFound != -1) { - playThieftCard(1, &_gameBoardSide[1]._handCard[tmpVal], playerIdFound); - found = true; + playThieftCard(1, &_gameBoardSide[1]._handCard[thieftId], playerIdFound); + return; } } - if (found) - return; - int count = -1; int i; for (i = 0; i <= 3; i++) { - tmpVal = subC27B5(_gameBoardSide[1]._handCard[i]._cardId); + int tmpVal = subC27B5(_gameBoardSide[1]._handCard[i]._cardId); if (tmpVal != -1) { int rndVal = R2_GLOBALS._randomSource.getRandomNumber(3); @@ -6107,58 +6079,45 @@ void Scene1337::handlePlayer1() { } if (count != -1) { - found = true; - break; + playDelayCard(&_gameBoardSide[1]._handCard[i], &_gameBoardSide[count]._delayCard); + return; } else { rndVal--; if (rndVal < 0) rndVal = 3; } } - - if (found) - break; } } - if (found) - playDelayCard(&_gameBoardSide[1]._handCard[i], &_gameBoardSide[count]._delayCard); - else { - int j; - for (j = 0; j <= 3; j++) { - if (isSlowCard(_gameBoardSide[1]._handCard[j]._cardId) != -1) { - count = -1; - int rndVal = R2_GLOBALS._randomSource.getRandomNumber(3); - for (int l = 0; l <= 3; l++) { - if (rndVal != 1) { - for (int m = 0; m <= 7; m++) { - // 'm' is not used in that loop. It looks suspicious. - if ((_gameBoardSide[rndVal]._delayCard._cardId == 0) && (_gameBoardSide[1]._handCard[j]._cardId == 1)) { - count = rndVal; - break; - } + int j; + for (j = 0; j <= 3; j++) { + if (isSlowCard(_gameBoardSide[1]._handCard[j]._cardId) != -1) { + count = -1; + int rndVal = R2_GLOBALS._randomSource.getRandomNumber(3); + for (int l = 0; l <= 3; l++) { + if (rndVal != 1) { + for (int m = 0; m <= 7; m++) { + // 'm' is not used in that loop. It looks suspicious. + if ((_gameBoardSide[rndVal]._delayCard._cardId == 0) && (_gameBoardSide[1]._handCard[j]._cardId == 1)) { + count = rndVal; + break; } } - if (count != -1) { - found = true; - break; - } else { - rndVal--; - if (rndVal < 0) - rndVal = 3; - } } - if (found) - break; + if (count != -1) { + playDelayCard(&_gameBoardSide[1]._handCard[j], &_gameBoardSide[count]._delayCard); + return; + } else { + rndVal--; + if (rndVal < 0) + rndVal = 3; + } } } - - if (found) - playDelayCard(&_gameBoardSide[1]._handCard[j], &_gameBoardSide[count]._delayCard); - else - subC2835(1); } + subC2835(1); } void Scene1337::handlePlayer3() { |