1
1
mirror of https://github.com/tstellar/bygfoot.git synced 2025-01-25 13:28:41 +01:00

1721 Commits

Author SHA1 Message Date
Tom Stellard
200a0dc08f Fix start week for Sweden promotion games 2021-07-27 14:41:40 -04:00
Tom Stellard
a1119d0dd8 Randomize teams lists of non-user countries every season
This way the international cups will have new teams each year.
2021-07-27 14:41:40 -04:00
Tom Stellard
7f17e114d4 workflows: Require success from test-country-defs.sh 2021-07-27 14:41:40 -04:00
Tom Stellard
3e4ead3aae Reset all cups at the beginning of each season
This fixes a bug in league fixture scheduling where league matches would
be scheduled around cup matches from the previous season.  This caused
league matches to be scheduled in later week rounds which in some cases
caused these matches to not be played.
2021-07-27 14:41:40 -04:00
Tom Stellard
4ee618fadf test/test-load-save.sh: Run another test after simulating a full seasons
There are some values in the save files which only exist after a full
season has been simulated (e.g. cup history), so make sure test this.
2021-07-27 14:41:40 -04:00
Tom Stellard
ac4d0fc546 Use cup history for self-referential cups 2021-07-27 14:41:40 -04:00
Tom Stellard
30d96e9952 Save cup results at the end of each season 2021-07-27 14:41:40 -04:00
Tom Stellard
fbfc2e22d8 Remove team_id from User object 2021-07-27 14:41:40 -04:00
Tom Stellard
a23db0b434 Remove team_ids field from Fixture object
We can fetch the ids from the teams object instead.
2021-07-27 14:41:40 -04:00
Tom Stellard
47fa16ddcd fixture_write_round_robin: Use a NULL team to represent a bye
Also don't write byes to the fixture list.  Previously we were writing
byes and removing them later.
2021-07-27 14:41:40 -04:00
Tom Stellard
0f5213bc4e Don't refresh fixture team pointers at the start of season
This is no longer necessary now that team pointers are stable.
2021-07-27 14:41:40 -04:00
Tom Stellard
801cb99b74 Remove team_id member from TableElement
This is no longer needed now that Team pointers always point to the same
team.
2021-07-27 14:41:40 -04:00
Tom Stellard
47b6d5c80d Use a GPtrArray to store teams in leagues
This allows us to have stable Team pointers throughout the game,
so we don't need to recompute pointers from Team IDs every time
the league order changes.
2021-07-27 14:41:40 -04:00
Tom Stellard
a004f939bb Refactor xml_league_read() 2021-07-27 14:41:40 -04:00
Tom Stellard
1fcec6e057 Refactor user_set_up_team_new_game() 2021-07-27 14:41:40 -04:00
Tom Stellard
d4cf73b8d8 Refactor treeview_create_team_selection_list()
Add a Country parameter so that it does not rely on global variables and
simplify some of the code.
2021-07-27 14:41:40 -04:00
Tom Stellard
9a0388cafd Refactor stat_update_league_players() 2021-07-27 14:41:40 -04:00
Tom Stellard
7c1fe79763 Refactor start_new_season_league_changes() 2021-07-27 14:41:40 -04:00
Tom Stellard
19d361fb82 Refactor league_season_start() 2021-07-27 14:41:40 -04:00
Tom Stellard
9d144835ed Refactor team_get_average_talents() 2021-07-27 14:41:40 -04:00
Tom Stellard
5373da9c30 Refactor job_change_country() 2021-07-27 14:41:40 -04:00
Tom Stellard
d84b8683ed Refactor fixture_remove_rrs() 2021-07-27 14:41:40 -04:00
Tom Stellard
05ac1ccb7c Refactor fixture_write_league_fixtures() 2021-07-27 14:41:40 -04:00
Tom Stellard
8ea51d65a1 Refactor cup_load_choose_team_from_cup() 2021-07-27 14:41:40 -04:00
Tom Stellard
273ca50688 json: Add command for getting the country's leagues 2021-07-27 14:41:40 -04:00
Tom Stellard
8df2c6b98c Fix Sweden league3 definitions
league3a and league3b have different promotion cups so the loser should
not have the option of going to the other league.
2021-07-27 14:41:40 -04:00
Tom Stellard
67f5bbb212 Make Liechtenstein choose_team in the Europa Cup optional
There is no alternative to the cup winner since there is no national
league.
2021-07-27 14:41:40 -04:00
Tom Stellard
e5b5b3b757 Fix Switzerland definitions
Promotion games should specify a loser_sid if the losers just return to
their current leagues.  Also, specify the correct of teams that advance.
2021-07-27 14:41:40 -04:00
Tom Stellard
0fcf53e82b Fix Portugal definitions
Promotion games should specify a loser_sid if the losers just return to
their current leagues.
2021-07-27 14:41:40 -04:00
Tom Stellard
6b4645a612 Fix Germany definitions
Promotion games should specify a loser_sid if the losers just return to
their current leagues.
2021-07-27 14:41:40 -04:00
Tom Stellard
6fe3fc306e Fix slovenia1 choose_team in cup_uefa_el definition
We need to handle the case when the 2nd place slovenia1 team qualifies
for the champions league and the 3rd (or even 4th if the 3rd also
qualifies) place team needs to take its spot in uefa_el.
2021-07-27 14:41:40 -04:00
Tom Stellard
4d4d73caa0 Allow optional tag to be used when selecting teams from cups
This fixes a segfault caused by the uefa_el definitions when there
aren't enough teams in uefa_cl to fill all the spots in the choose_team
definition.
2021-07-27 14:41:40 -04:00
Tom Stellard
b126786553 Add helper cup_choose_team_compute_{start,end}_idx helper functions 2021-07-27 14:41:40 -04:00
Tom Stellard
87b5a77ab2 Initialize current_interest after setting the random seed
The way when we run benchmark.sh --verify, the current_interest value
will always be the same.
2021-07-27 14:41:40 -04:00
Tom Stellard
98b76cd999 workflows: Stop building/testing on Ubuntu 16.04
General support for this release has ended.
2021-07-27 14:41:40 -04:00
Tom Stellard
bde97fd39a workflows: Build packages on more operating systems
Also create a release and upload packages when there is a new tag.
2021-06-18 00:08:42 -04:00
Tom Stellard
b44ad7f168 package.sh: Allow custom tar names 2021-06-18 00:08:42 -04:00
Tom Stellard
78e774cd98 cmake: Compile with -fcommon
Newer versions of gcc and clang default to fno-common and
our global variable usage requires -fcommon.
2021-06-18 00:08:42 -04:00
Tom Stellard
2bd484d69c package.sh: Don't pass -B option to cmake
Older versions of cmake don't support this.
2021-06-18 00:08:42 -04:00
Tom Stellard
8b38034e15 cmake: Pass RUNTIME DIRECTORY to bygfoot install target
This is required by some versions of cmake.
2021-06-18 00:08:42 -04:00
Tom Stellard
c62cbe01c6 Remove usage of g_ptr_array_foreach()
This function does not appear to provide any benefits compared to a
standard loop, and it may prevent some compiler optimizations, like
inlining.
2021-04-11 08:21:23 -07:00
Tom Stellard
5c3e3522c0 json: Fix bug serializing team pointers 2021-04-11 08:21:23 -07:00
Tom Stellard
34defb6642 Use teams from country_list for international jobs
This way we don't need to generate teams sepearately for jobs.
2021-04-03 15:43:39 -07:00
Tom Stellard
804185f354 Parse strategy conditions once when loading them from xml
This way strategy_live_game_check() only needs to evaluate the condition
and does not need to reparse it over and over again.

This reduces the number of instructions reported by
./test/benchmark.sh --benchmark by ~35%.
2021-03-30 10:20:11 -04:00
Tom Stellard
72549415cc Refactor strategy_live_game_check() 2021-03-30 10:20:11 -04:00
Tom Stellard
ff343e94d3 Try to avoid calling team_get_fixture() from player_is_banned()
team_get_fixture() is expensive and we can avoid this call in the
majority of cases.

This reduces the number of instructions reported by
./test/benchmark.sh --benchmark by ~40%.
2021-03-27 09:23:22 -04:00
Tom Stellard
879190e971 Fix item size for Player cards array 2021-03-27 09:23:22 -04:00
Tom Stellard
068308636e test: Add benchmark.sh script for collecting benchmark data 2021-03-26 22:47:26 -04:00
Tom Stellard
8a701be6a1 Complete json serialization support for all Bygfoot objects 2021-03-26 22:47:26 -04:00
Tom Stellard
d4de1a66e1 workflows: Disable for pushes to non-default branches 2021-03-20 08:31:47 -07:00