| 1278 | |
| 1279 | |
| 1280 | int STDCALL SidesPar( |
| 1281 | DdTableResults const * tablep, |
| 1282 | ParResultsDealer sidesRes[2], |
| 1283 | int vulnerable) |
| 1284 | { |
| 1285 | ParResultsMaster parm[2]; |
| 1286 | int res, i, k; |
| 1287 | constexpr size_t buf_size = 13; |
| 1288 | char buff[buf_size]; |
| 1289 | |
| 1290 | res = SidesParBin(tablep, parm, vulnerable); |
| 1291 | |
| 1292 | if (res != RETURN_NO_FAULT) |
| 1293 | return res; |
| 1294 | |
| 1295 | /*Convert the bin results to DealerPar format. */ |
| 1296 | for (i = 0; i <= 1; i++) |
| 1297 | { |
| 1298 | sidesRes[i].score = parm[i].score; |
| 1299 | sidesRes[i].number = parm[i].number; |
| 1300 | |
| 1301 | for (k = 0; k < sidesRes[i].number; k++) |
| 1302 | { |
| 1303 | snprintf(sidesRes[i].contracts[k], 10, "%d", parm[i].contracts[k].level); |
| 1304 | switch (parm[i].contracts[k].denom) |
| 1305 | { |
| 1306 | case 0: |
| 1307 | strcat(sidesRes[i].contracts[k], "N"); |
| 1308 | break; |
| 1309 | case 1: |
| 1310 | strcat(sidesRes[i].contracts[k], "S"); |
| 1311 | break; |
| 1312 | case 2: |
| 1313 | strcat(sidesRes[i].contracts[k], "H"); |
| 1314 | break; |
| 1315 | case 3: |
| 1316 | strcat(sidesRes[i].contracts[k], "D"); |
| 1317 | break; |
| 1318 | case 4: |
| 1319 | strcat(sidesRes[i].contracts[k], "C"); |
| 1320 | break; |
| 1321 | default: |
| 1322 | // Cannot happen, but keeps gcc happy. |
| 1323 | break; |
| 1324 | } |
| 1325 | if (parm[i].contracts[k].under_tricks > 0) |
| 1326 | /* Sacrifice */ |
| 1327 | strcat(sidesRes[i].contracts[k], "*"); |
| 1328 | switch (parm[i].contracts[k].seats) |
| 1329 | { |
| 1330 | case 0: |
| 1331 | strcat(sidesRes[i].contracts[k], "-N"); |
| 1332 | break; |
| 1333 | case 1: |
| 1334 | strcat(sidesRes[i].contracts[k], "-E"); |
| 1335 | break; |
| 1336 | case 2: |
| 1337 | strcat(sidesRes[i].contracts[k], "-S"); |
nothing calls this directly
no test coverage detected