Use teams from country_list for international jobs

This way we don't need to generate teams sepearately for jobs.
This commit is contained in:
Tom Stellard 2021-03-17 19:50:35 -07:00
parent 804185f354
commit b0fc95a7ad
6 changed files with 12 additions and 59 deletions

View File

@ -1070,14 +1070,6 @@ free_job(Job *job, gboolean free_tm)
free_gchar_ptr(job->country_file); free_gchar_ptr(job->country_file);
free_gchar_ptr(job->country_name); free_gchar_ptr(job->country_name);
free_gchar_ptr(job->league_name); free_gchar_ptr(job->league_name);
for(i=0;i<job_teams->len;i++)
if(g_array_index(job_teams, Team, i).id == job->team_id)
{
if(free_tm)
free_team(&g_array_index(job_teams, Team, i));
g_array_remove_index(job_teams, i);
}
} }
} }
@ -1096,7 +1088,6 @@ free_jobs(gboolean reset)
if(reset) if(reset)
{ {
jobs = g_array_new(FALSE, FALSE, sizeof(Job)); jobs = g_array_new(FALSE, FALSE, sizeof(Job));
job_teams = g_array_new(FALSE, FALSE, sizeof(Team));
} }
return; return;
@ -1106,11 +1097,9 @@ free_jobs(gboolean reset)
free_job(&g_array_index(jobs, Job, i), TRUE); free_job(&g_array_index(jobs, Job, i), TRUE);
free_g_array(&jobs); free_g_array(&jobs);
free_g_array(&job_teams);
if(reset) if(reset)
{ {
jobs = g_array_new(FALSE, FALSE, sizeof(Job)); jobs = g_array_new(FALSE, FALSE, sizeof(Job));
job_teams = g_array_new(FALSE, FALSE, sizeof(Team));
} }
} }

View File

@ -94,9 +94,7 @@ job_add_new_international(gint num_of_new)
printf("job_add_new_international\n"); printf("job_add_new_international\n");
#endif #endif
gint i, k, rndom, idx; gint i, k, rndom;
GPtrArray *country_files = file_get_country_files();
Country countries[num_of_new];
Team *tm = NULL; Team *tm = NULL;
League *league = NULL; League *league = NULL;
gint team_id = -1; gint team_id = -1;
@ -105,37 +103,22 @@ job_add_new_international(gint num_of_new)
k = 0; k = 0;
for(i=0;i<num_of_new;i++) for(i=0;i<num_of_new;i++)
{ {
countries[k].leagues = countries[k].cups = NULL; Country *job_country = NULL;
countries[k].allcups = NULL;
countries[k].name = countries[k].symbol =
countries[k].sid = NULL;
do do
rndom = math_rndi(0, country_files->len - 1); rndom = math_rndi(0, country_list->len - 1);
while(g_strrstr((gchar*)g_ptr_array_index(country_files, rndom), while(g_strrstr(((Country*)g_ptr_array_index(country_list, rndom))->sid,
country.sid)); country.sid));
idx = job_country_is_in_list( job_country = g_ptr_array_index(country_list, rndom);
(gchar*)g_ptr_array_index(country_files, rndom),
countries, num_of_new);
if(idx == -1) job_pick_team_from_country(job_country, &tm, &league);
{
idx = k;
xml_country_read((gchar*)g_ptr_array_index(country_files, rndom),
&countries[k]);
counters[COUNT_LEAGUE_ID] -= countries[k].leagues->len;
k++;
}
job_pick_team_from_country(&countries[idx], &tm, &league);
new_job.country_file = new_job.country_file =
g_strdup_printf("country_%s.xml", countries[idx].sid); g_strdup_printf("country_%s.xml", job_country->sid);
new_job.time = math_rndi(const_int("int_job_update_interval") - 1, new_job.time = math_rndi(const_int("int_job_update_interval") - 1,
const_int("int_job_update_interval") + 1); const_int("int_job_update_interval") + 1);
new_job.country_name = g_strdup(countries[idx].name); new_job.country_name = g_strdup(job_country->name);
new_job.country_rating = countries[idx].rating; new_job.country_rating = job_country->rating;
new_job.league_name = g_strdup(league->name); new_job.league_name = g_strdup(league->name);
new_job.league_layer = league->layer; new_job.league_layer = league->layer;
@ -143,9 +126,6 @@ job_add_new_international(gint num_of_new)
if(team_id == -1) if(team_id == -1)
{ {
team_generate_players_stadium(tm, league->average_talent);
g_array_append_val(job_teams, *tm);
new_job.team_id = tm->id; new_job.team_id = tm->id;
new_job.type = JOB_TYPE_INTERNATIONAL; new_job.type = JOB_TYPE_INTERNATIONAL;
} }
@ -161,8 +141,6 @@ job_add_new_international(gint num_of_new)
g_array_append_val(jobs, new_job); g_array_append_val(jobs, new_job);
} }
free_gchar_array(&country_files);
} }
/** Find out whether the country file is already loaded and part /** Find out whether the country file is already loaded and part
@ -308,13 +286,8 @@ job_get_team(const Job *job)
gint i, j; gint i, j;
if(job->type == JOB_TYPE_NATIONAL) if(job->type == JOB_TYPE_NATIONAL || job->type == JOB_TYPE_INTERNATIONAL) {
return team_of_id(job->team_id); return team_of_id(job->team_id);
else if(job->type == JOB_TYPE_INTERNATIONAL)
{
for(i=0;i<job_teams->len;i++)
if(g_array_index(job_teams, Team, i).id == job->team_id)
return &g_array_index(job_teams, Team, i);
} }
else else
{ {

View File

@ -162,7 +162,6 @@ bygfoot_json_serialize_bygfoot(const Bygfoot *bygfoot)
SERIALIZE_BYGFOOT_FIELD(bets, bygfoot_json_serialize_bets); SERIALIZE_BYGFOOT_FIELD(bets, bygfoot_json_serialize_bets);
SERIALIZE_BYGFOOT_FIELD(current_interest, json_object_new_double); SERIALIZE_BYGFOOT_FIELD(current_interest, json_object_new_double);
SERIALIZE_BYGFOOT_FIELD(jobs, bygfoot_json_serialize_jobs); SERIALIZE_BYGFOOT_FIELD(jobs, bygfoot_json_serialize_jobs);
SERIALIZE_BYGFOOT_FIELD(job_teams, bygfoot_json_serialize_teams);
SERIALIZE_BYGFOOT_FIELD(cur_user, json_object_new_int64); SERIALIZE_BYGFOOT_FIELD(cur_user, json_object_new_int64);
return bygfoot_obj; return bygfoot_obj;

View File

@ -319,7 +319,6 @@ main_init_variables(void)
bets[0] = g_array_new(FALSE, FALSE, sizeof(BetMatch)); bets[0] = g_array_new(FALSE, FALSE, sizeof(BetMatch));
bets[1] = g_array_new(FALSE, FALSE, sizeof(BetMatch)); bets[1] = g_array_new(FALSE, FALSE, sizeof(BetMatch));
jobs = g_array_new(FALSE, FALSE, sizeof(Job)); jobs = g_array_new(FALSE, FALSE, sizeof(Job));
job_teams = g_array_new(FALSE, FALSE, sizeof(Team));
save_file = NULL; save_file = NULL;
constants_app.list = settings.list = constants_app.list = settings.list =

View File

@ -88,9 +88,8 @@ GArray *bets[2];
/** Loan interest for the current week. */ /** Loan interest for the current week. */
gfloat current_interest; gfloat current_interest;
/** Array of jobs in the job exchange and /** Array of jobs in the job exchange. */
teams going with the international jobs. */ GArray *jobs;
GArray *jobs, *job_teams;
/** Some counters we use. */ /** Some counters we use. */
gint counters[COUNT_END]; gint counters[COUNT_END];

View File

@ -174,9 +174,6 @@ xml_loadsave_jobs_read(const gchar *dirname, const gchar *basename)
free_jobs(TRUE); free_jobs(TRUE);
sprintf(file, "%s%s%s___job_teams.xml", dirname, G_DIR_SEPARATOR_S, basename);
xml_loadsave_teams_read(file, job_teams);
sprintf(file, "%s%s%s___jobs.xml", dirname, G_DIR_SEPARATOR_S, basename); sprintf(file, "%s%s%s___jobs.xml", dirname, G_DIR_SEPARATOR_S, basename);
context = context =
@ -212,9 +209,6 @@ xml_loadsave_jobs_write(const gchar *prefix)
gchar buf[SMALL]; gchar buf[SMALL];
FILE *fil = NULL; FILE *fil = NULL;
sprintf(buf, "%s___job_teams.xml", prefix);
xml_loadsave_teams_write(buf, job_teams);
sprintf(buf, "%s___jobs.xml", prefix); sprintf(buf, "%s___jobs.xml", prefix);
file_my_fopen(buf, "w", &fil, TRUE); file_my_fopen(buf, "w", &fil, TRUE);