<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/114871/">https://git.reviewboard.kde.org/r/114871/</a>
     </td>
    </tr>
   </table>
   <br />





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">The amount of changes you'll need for this is getting bigger, to the point of not fitting the small patches purpose of Review Board. A sign of this is that you had to reference a previous patch so this one could make sense.

I think it will be the best, for both of us, if you set up a branch just for this new feature. Got committing as you progress, paying attention to not break the game on each commit. This way we have the possibility of reverting to a previous commit case it's needed.</pre>
 <br />









<p>- Roney Gomes</p>


<br />
<p>On January 5th, 2014, 1 p.m. UTC, Jaime Torres Amate wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for KDE Games and Roney Gomes.</div>
<div>By Jaime Torres Amate.</div>


<p style="color: grey;"><i>Updated Jan. 5, 2014, 1 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
knavalbattle
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This patch depends on the utilities for multiple ships patch (only because of the canAddShipsOfShize(size) method).
There are now two phases in the game, also used in the seaview status, placing and playing. Placing can be restarted several times without disturbing the other player.
Before:
  controller called entity start and waited for 2 answers.
Now: 
  controller calls entity startPlacing and waits for 2 ready() signals, then it calls start and waits for 2 more answers.
  if a player can not finish placing its ships, a restartPlacingShips() signal is emited (and not the ready() signal). It reaches playfield where a messagebox is displayed to restart or abort the game (missing, I'm not sure about this option). 
  This patch only affects the human player (the AI, so fast, will retry automatically until a good placement is reached).
  For the network player, it assumes the other player has finished placing its ships, but still needs another message (received when the other player finishes placing ships) to start shooting.


Another possibility is to make use of an Undo function (but I always played in paper with pen, not pencil)</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Finally, it works in local and remote games.
The normal game workflow can be tested without any modification.
The restart workflow can be tested with a little modification in the canAddShipsOfShize(size) to return false sometimes.
I'm reworking the multiple ships patch to make it much more flexible in the number of ships, their size and the board size for network games.
</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>src/aientity.h <span style="color: grey">(d8fc057)</span></li>

 <li>src/aientity.cpp <span style="color: grey">(b085786)</span></li>

 <li>src/controller.h <span style="color: grey">(0165b02)</span></li>

 <li>src/controller.cpp <span style="color: grey">(df44ff4)</span></li>

 <li>src/entity.h <span style="color: grey">(fa45a35)</span></li>

 <li>src/mainwindow.cpp <span style="color: grey">(42e04b4)</span></li>

 <li>src/networkentity.h <span style="color: grey">(bfcfdf4)</span></li>

 <li>src/networkentity.cpp <span style="color: grey">(6609022)</span></li>

 <li>src/playerentity.h <span style="color: grey">(aae134e)</span></li>

 <li>src/playerentity.cpp <span style="color: grey">(230f1ec)</span></li>

 <li>src/playfield.h <span style="color: grey">(431b740)</span></li>

 <li>src/playfield.cpp <span style="color: grey">(1ea0955)</span></li>

 <li>src/seaview.h <span style="color: grey">(b3099be)</span></li>

 <li>src/seaview.cpp <span style="color: grey">(34d44c3)</span></li>

 <li>src/uientity.h <span style="color: grey">(952003b)</span></li>

 <li>src/uientity.cpp <span style="color: grey">(e629879)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/114871/diff/" style="margin-left: 3em;">View Diff</a></p>







  </td>
 </tr>
</table>








  </div>
 </body>
</html>