BUGFIX: Not played was counted as lost

This commit is contained in:
Jeroen De Meerleer 2023-01-09 10:23:23 +01:00
parent 86244247cf
commit 7a48b7777d
Signed by: JeroenED
GPG Key ID: 28CCCB8F62BFADD6
2 changed files with 13 additions and 4 deletions

View File

@ -234,7 +234,9 @@ class Player
foreach ($this->Pairings as $key => $pairing) {
if ($key < $round || $round == -1) {
if ($pairing->Result == Result::WON_BYE) {
$points += (isset($this->CustomPoints[ 'bye' ])) ? $custompoints[ 'bye' ] : 1;
$points += (isset($custompoints[ 'bye' ])) ? $custompoints[ 'bye' ] : 1;
} else if ($pairing->Result == Result::ABSENT !== false) {
$points += (isset($custompoints[ 'absent' ])) ? $custompoints[ 'absent' ] : 0;
} elseif (array_search($pairing->Result, Constants::WON) !== false) {
$points += (isset($custompoints[ 'win' ])) ? $custompoints[ 'win' ] : 1;
} elseif (array_search($pairing->Result, Constants::DRAW) !== false) {

View File

@ -199,13 +199,17 @@ class Swar5 implements ReaderInterface
*
* @throws IncompatibleReaderException
*/
public function read(string $filename): void
public function read(string $filename, string $compatversion = ''): void
{
$swshandle = fopen($filename, 'rb');
$this->Release = $this->readData('String', $swshandle);
if($compatversion != '') {
$this->Release == $compatversion;
}
if (array_search(substr($this->Release, 0, 3), self::COMPATIBLE_VERSIONS) === false) {
throw new IncompatibleReaderException("This file was not created with Swar 4");
throw new IncompatibleReaderException("This file was not created with Swar 5");
}
$this->Tournament = new Tournament();
@ -437,6 +441,7 @@ class Swar5 implements ReaderInterface
$pt = 0;
for ($i = 0; $i < $this->Tournament->NumberOfPlayers; $i++) {
$player = new Player();
$player->Classement = $this->readData('Int', $swshandle);
$player->Name = $this->readData('String', $swshandle);
$inscriptionNos[ $this->readData('Int', $swshandle) ] = $i;
@ -511,7 +516,8 @@ class Swar5 implements ReaderInterface
$player->Tiebreak = $tiebreaks;
$player->Performance = $this->readData('Int', $swshandle); // To Calculate by libpairtwo
$player->Absent = $this->readData('Int', $swshandle);
$player->AbsentRounds = $this->readData('String', $swshandle);
$player->AbsentRounds = $this->readData('Int', $swshandle);
if(version_compare($this->Release, '5.53', '>=')) $player->Paid = $this->readData('Int', $swshandle);
$player->ExtraPoints = $this->readData('Int', $swshandle);
$player->SpecialPoints = $this->readData('Int', $swshandle);
$player->AllocatedRounds = $this->readData('Int', $swshandle);
@ -531,6 +537,7 @@ class Swar5 implements ReaderInterface
$pt++;
}
$this->Tournament->Pairing = $pairing;
}