Skip to content

Commit 9c1928e

Browse files
committed
Refactor to eliminate duplicated code in printing lineup names
1 parent 59e28f4 commit 9c1928e

File tree

2 files changed

+32
-141
lines changed

2 files changed

+32
-141
lines changed

ChangeLog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
entirely incorrect. This has been corrected. (#45)
1919
- In handling rosters, treat blank or null values for batting or throwing side
2020
as if they were explicit question marks.
21+
- In `cwgame`, output nulls for computed team totals from boxscore files whenever any
22+
player's totals are null.
2123

2224

2325
# [0.10.0] - 2023-01-02

src/cwtools/cwgame.c

Lines changed: 30 additions & 141 deletions
Original file line numberDiff line numberDiff line change
@@ -1254,220 +1254,109 @@ DECLARE_FIELDFUNC(cwgame_goahead_rbi_name)
12541254
}
12551255
}
12561256

1257-
DECLARE_FIELDFUNC(cwgame_visitors_batter1_name)
1257+
int cwgame_find_lineup_name(CWGame *game, char *buffer,
1258+
int alignment, int slot,
1259+
CWRoster *visitors, CWRoster *home)
12581260
{
1259-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 0, 1);
1261+
CWAppearance *starter = cw_game_starter_find(game, alignment, slot);
12601262
if (starter) {
1261-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1262-
visitors, home);
1263+
return cwgame_find_player_name(game, buffer, starter->player_id,
1264+
visitors, home);
12631265
}
12641266
else {
1265-
return sprintf(buffer, "(null)");
1267+
return sprintf(buffer, "(null)");
12661268
}
1269+
1270+
}
1271+
1272+
DECLARE_FIELDFUNC(cwgame_visitors_batter1_name)
1273+
{
1274+
return cwgame_find_lineup_name(gameiter->game, buffer, 0, 1, visitors, home);
12671275
}
12681276

12691277
DECLARE_FIELDFUNC(cwgame_visitors_batter2_name)
12701278
{
1271-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 0, 2);
1272-
if (starter) {
1273-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1274-
visitors, home);
1275-
}
1276-
else {
1277-
return sprintf(buffer, "(null)");
1278-
}
1279+
return cwgame_find_lineup_name(gameiter->game, buffer, 0, 2, visitors, home);
12791280
}
12801281

12811282
DECLARE_FIELDFUNC(cwgame_visitors_batter3_name)
12821283
{
1283-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 0, 3);
1284-
if (starter) {
1285-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1286-
visitors, home);
1287-
}
1288-
else {
1289-
return sprintf(buffer, "(null)");
1290-
}
1284+
return cwgame_find_lineup_name(gameiter->game, buffer, 0, 3, visitors, home);
12911285
}
12921286

12931287
DECLARE_FIELDFUNC(cwgame_visitors_batter4_name)
12941288
{
1295-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 0, 4);
1296-
if (starter) {
1297-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1298-
visitors, home);
1299-
}
1300-
else {
1301-
return sprintf(buffer, "(null)");
1302-
}
1289+
return cwgame_find_lineup_name(gameiter->game, buffer, 0, 4, visitors, home);
13031290
}
13041291

13051292
DECLARE_FIELDFUNC(cwgame_visitors_batter5_name)
13061293
{
1307-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 0, 5);
1308-
if (starter) {
1309-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1310-
visitors, home);
1311-
}
1312-
else {
1313-
return sprintf(buffer, "(null)");
1314-
}
1294+
return cwgame_find_lineup_name(gameiter->game, buffer, 0, 5, visitors, home);
13151295
}
13161296

13171297
DECLARE_FIELDFUNC(cwgame_visitors_batter6_name)
13181298
{
1319-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 0, 6);
1320-
if (starter) {
1321-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1322-
visitors, home);
1323-
}
1324-
else {
1325-
return sprintf(buffer, "(null)");
1326-
}
1299+
return cwgame_find_lineup_name(gameiter->game, buffer, 0, 6, visitors, home);
13271300
}
13281301

13291302
DECLARE_FIELDFUNC(cwgame_visitors_batter7_name)
13301303
{
1331-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 0, 7);
1332-
if (starter) {
1333-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1334-
visitors, home);
1335-
}
1336-
else {
1337-
return sprintf(buffer, "(null)");
1338-
}
1304+
return cwgame_find_lineup_name(gameiter->game, buffer, 0, 7, visitors, home);
13391305
}
13401306

13411307
DECLARE_FIELDFUNC(cwgame_visitors_batter8_name)
13421308
{
1343-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 0, 8);
1344-
if (starter) {
1345-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1346-
visitors, home);
1347-
}
1348-
else {
1349-
return sprintf(buffer, "(null)");
1350-
}
1309+
return cwgame_find_lineup_name(gameiter->game, buffer, 0, 8, visitors, home);
13511310
}
13521311

13531312
DECLARE_FIELDFUNC(cwgame_visitors_batter9_name)
13541313
{
1355-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 0, 9);
1356-
if (starter) {
1357-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1358-
visitors, home);
1359-
}
1360-
else {
1361-
return sprintf(buffer, "(null)");
1362-
}
1314+
return cwgame_find_lineup_name(gameiter->game, buffer, 0, 9, visitors, home);
13631315
}
13641316

13651317
DECLARE_FIELDFUNC(cwgame_home_batter1_name)
13661318
{
1367-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 1, 1);
1368-
if (starter) {
1369-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1370-
visitors, home);
1371-
}
1372-
else {
1373-
return sprintf(buffer, "(null)");
1374-
}
1319+
return cwgame_find_lineup_name(gameiter->game, buffer, 1, 1, visitors, home);
13751320
}
13761321

13771322
DECLARE_FIELDFUNC(cwgame_home_batter2_name)
13781323
{
1379-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 1, 2);
1380-
if (starter) {
1381-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1382-
visitors, home);
1383-
}
1384-
else {
1385-
return sprintf(buffer, "(null)");
1386-
}
1324+
return cwgame_find_lineup_name(gameiter->game, buffer, 1, 2, visitors, home);
13871325
}
13881326

13891327
DECLARE_FIELDFUNC(cwgame_home_batter3_name)
13901328
{
1391-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 1, 3);
1392-
if (starter) {
1393-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1394-
visitors, home);
1395-
}
1396-
else {
1397-
return sprintf(buffer, "(null)");
1398-
}
1329+
return cwgame_find_lineup_name(gameiter->game, buffer, 1, 3, visitors, home);
13991330
}
14001331

14011332
DECLARE_FIELDFUNC(cwgame_home_batter4_name)
14021333
{
1403-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 1, 4);
1404-
if (starter) {
1405-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1406-
visitors, home);
1407-
}
1408-
else {
1409-
return sprintf(buffer, "(null)");
1410-
}
1334+
return cwgame_find_lineup_name(gameiter->game, buffer, 1, 4, visitors, home);
14111335
}
14121336

14131337
DECLARE_FIELDFUNC(cwgame_home_batter5_name)
14141338
{
1415-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 1, 5);
1416-
if (starter) {
1417-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1418-
visitors, home);
1419-
}
1420-
else {
1421-
return sprintf(buffer, "(null)");
1422-
}
1339+
return cwgame_find_lineup_name(gameiter->game, buffer, 1, 5, visitors, home);
14231340
}
14241341

14251342
DECLARE_FIELDFUNC(cwgame_home_batter6_name)
14261343
{
1427-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 1, 6);
1428-
if (starter) {
1429-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1430-
visitors, home);
1431-
}
1432-
else {
1433-
return sprintf(buffer, "(null)");
1434-
}
1344+
return cwgame_find_lineup_name(gameiter->game, buffer, 1, 6, visitors, home);
14351345
}
14361346

14371347
DECLARE_FIELDFUNC(cwgame_home_batter7_name)
14381348
{
1439-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 1, 7);
1440-
if (starter) {
1441-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1442-
visitors, home);
1443-
}
1444-
else {
1445-
return sprintf(buffer, "(null)");
1446-
}
1349+
return cwgame_find_lineup_name(gameiter->game, buffer, 1, 7, visitors, home);
14471350
}
14481351

14491352
DECLARE_FIELDFUNC(cwgame_home_batter8_name)
14501353
{
1451-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 1, 8);
1452-
if (starter) {
1453-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1454-
visitors, home);
1455-
}
1456-
else {
1457-
return sprintf(buffer, "(null)");
1458-
}
1354+
return cwgame_find_lineup_name(gameiter->game, buffer, 1, 8, visitors, home);
14591355
}
14601356

14611357
DECLARE_FIELDFUNC(cwgame_home_batter9_name)
14621358
{
1463-
CWAppearance *starter = cw_game_starter_find(gameiter->game, 1, 9);
1464-
if (starter) {
1465-
return cwgame_find_player_name(gameiter->game, buffer, starter->player_id,
1466-
visitors, home);
1467-
}
1468-
else {
1469-
return sprintf(buffer, "(null)");
1470-
}
1359+
return cwgame_find_lineup_name(gameiter->game, buffer, 1, 9, visitors, home);
14711360
}
14721361

14731362
/* Field 159 */

0 commit comments

Comments
 (0)