1
1
mirror of https://github.com/tstellar/bygfoot.git synced 2025-02-14 18:40:51 +01:00

"Transfers improved."

This commit is contained in:
gyboth 2005-06-19 11:24:25 +00:00
parent 0f296367f8
commit fe2c828cd5
12 changed files with 160 additions and 79 deletions

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-06-18 16:43+0200\n"
"POT-Creation-Date: 2005-06-19 13:22+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -51,7 +51,9 @@ msgid "There are no offers for the player."
msgstr ""
#: src/callback_func.c:344
msgid "There are some offers for the player which you will see next week."
msgid ""
"There are some offers for the player which you rejected or will see next "
"week."
msgstr ""
#: src/callback_func.c:353
@ -84,40 +86,48 @@ msgid ""
"player are satisfied with your offer. Do you still want to buy the player?"
msgstr ""
#: src/callback_func.c:425
#: src/callback_func.c:426
#, c-format
msgid "User %s didn't consider your offer yet."
msgstr ""
#: src/callback_func.c:433
#: src/callback_func.c:434
msgid ""
"The player is locked (the team owners are considering an offer currently)."
msgstr ""
#: src/callback_func.c:438
#: src/callback_func.c:447
#, c-format
msgid ""
"You are making an offer for %s. Your scout's recommendations for value and "
"You are making an offer for %s. Your scout's recommendations for fee and "
"wage are preset."
msgstr ""
#: src/callback_func.c:443
#: src/callback_func.c:450 src/callback_func.c:458
msgid "Fee"
msgstr ""
#: src/callback_func.c:444 src/treeview.c:259 src/treeview.c:1749
#: src/callback_func.c:451 src/callback_func.c:458 src/treeview.c:259
#: src/treeview.c:1749
msgid "Wage"
msgstr ""
#: src/callback_func.c:461
#: src/callback_func.c:455
#, c-format
msgid ""
"You are making an offer for %s again. Your previous values for fee and wage "
"are preset."
msgstr ""
#: src/callback_func.c:476
msgid "You can't offer a new contract if the old one is still above 2 years."
msgstr ""
#: src/callback_func.c:466
#: src/callback_func.c:481
msgid "The player won't negotiate with you anymore."
msgstr ""
#: src/callback_func.c:480
#: src/callback_func.c:495
#, c-format
msgid ""
"You are negotiating with %s about a new contract. Pay attention to what "
@ -127,7 +137,7 @@ msgid ""
"Your scout's recommendations are preset:"
msgstr ""
#: src/callback_func.c:601
#: src/callback_func.c:616
#, c-format
msgid ""
"You want to fire %s. Since his contract expires in %.1f years, he demands a "
@ -1467,36 +1477,36 @@ msgstr ""
msgid "Loading miscellaneous..."
msgstr ""
#: src/misc2_callback_func.c:45
#: src/misc2_callback_func.c:47
#, c-format
msgid "%s couldn't afford to buy %s or his roster was full."
msgstr ""
#: src/misc2_callback_func.c:49
#: src/misc2_callback_func.c:51
#, c-format
msgid "You didn't have enough money to buy %s or your roster was full."
msgstr ""
#: src/misc2_callback_func.c:78
#: src/misc2_callback_func.c:81
msgid "Your player roster is full or you don't enough money."
msgstr ""
#: src/misc2_callback_func.c:112
#: src/misc2_callback_func.c:115
#, c-format
msgid "The structure value %d is invalid."
msgstr ""
#: src/misc2_callback_func.c:152
#: src/misc2_callback_func.c:155
#, c-format
msgid "%s accepts your offer."
msgstr ""
#: src/misc2_callback_func.c:161
#: src/misc2_callback_func.c:164
#, c-format
msgid "%s rejects your offer. You may still make %d offers."
msgstr ""
#: src/misc2_callback_func.c:168
#: src/misc2_callback_func.c:171
#, c-format
msgid ""
"%s rejects your offer and won't negotiate with you anymore. You should sell "
@ -2256,7 +2266,7 @@ msgstr ""
msgid "W "
msgstr ""
#: src/transfer.c:414
#: src/transfer.c:434
#, c-format
msgid "%s has been added to the transfer list for %d weeks."
msgstr ""

View File

@ -340,8 +340,8 @@ callback_transfer_list_user(gint button, gint idx)
if(trans(idx).offers->len == 0)
game_gui_print_message(_("There are no offers for the player."));
else if(trans(idx).offers->len > 0 &&
!transoff(idx, 0).accepted)
game_gui_print_message(_("There are some offers for the player which you will see next week."));
transoff(idx, 0).status != TRANSFER_OFFER_ACCEPTED)
game_gui_print_message(_("There are some offers for the player which you rejected or will see next week."));
else
{
misc_print_grouped_int(transoff(idx, 0).fee, buf2, FALSE);
@ -409,6 +409,7 @@ callback_transfer_list_clicked(gint button, gint idx)
{
gchar buf[SMALL];
Transfer *tr = &trans(idx);
gint old_fee, old_wage = -1;
if(tr->tm == current_user.tm)
{
@ -416,7 +417,7 @@ callback_transfer_list_clicked(gint button, gint idx)
return;
}
else if(tr->offers->len > 0 &&
transoff(idx, 0).accepted)
transoff(idx, 0).status == TRANSFER_OFFER_ACCEPTED)
{
if(transoff(idx, 0).tm == current_user.tm)
{
@ -435,13 +436,27 @@ callback_transfer_list_clicked(gint button, gint idx)
return;
}
sprintf(buf, _("You are making an offer for %s. Your scout's recommendations for value and wage are preset."),
player_of_id_team(tr->tm, tr->id)->name->str);
stat1 = STATUS_SHOW_TRANSFER_LIST;
stat2 = idx;
if(tr->offers->len > 0)
transfer_get_previous_offer(tr, current_user.tm, &old_fee, &old_wage);
window_show_digits(buf, _("Fee"), tr->fee[current_user.scout % 10],
_("Wage"), tr->wage[current_user.scout % 10]);
if(old_wage == -1)
{
sprintf(buf, _("You are making an offer for %s. Your scout's recommendations for fee and wage are preset."),
player_of_id_team(tr->tm, tr->id)->name->str);
window_show_digits(buf, _("Fee"), tr->fee[current_user.scout % 10],
_("Wage"), tr->wage[current_user.scout % 10]);
}
else
{
sprintf(buf, _("You are making an offer for %s again. Your previous values for fee and wage are preset."),
player_of_id_team(tr->tm, tr->id)->name->str);
window_show_digits(buf, _("Fee"), old_fee, _("Wage"), old_wage);
}
}
/** Show the contract window for the player with the specified index. */

View File

@ -520,7 +520,7 @@ on_treeview_right_button_press_event (GtkWidget *widget,
{
case STATUS_SHOW_TRANSFER_LIST:
if(trans(idx - 1).tm == current_user.tm ||
(trans(idx - 1).offers->len > 0 && transoff(idx - 1, 0).accepted) ||
(trans(idx - 1).offers->len > 0 && transoff(idx - 1, 0).status == TRANSFER_OFFER_ACCEPTED) ||
event->button == 1)
callback_transfer_list_clicked(event->button, idx - 1);
else if(event->button == 3)

View File

@ -52,8 +52,9 @@ misc2_callback_transfer_user_player(void)
player_of_id_team(trans(stat2).tm, trans(stat2).id)->name->str);
user_event_add(user_from_team(new_team), EVENT_TYPE_WARNING, -1, -1, NULL, buf);
g_array_remove_index(trans(stat2).offers, 0);
if(trans(stat2).offers->len > 0)
transoff(stat2, 0).accepted = TRUE;
if(trans(stat2).offers->len > 0 &&
transoff(stat2, 0).status == TRANSFER_OFFER_NOT_CONSIDERED)
transoff(stat2, 0).status = TRANSFER_OFFER_ACCEPTED;
}
}
else

View File

@ -424,8 +424,16 @@ void
on_button_transfer_no_clicked (GtkButton *button,
gpointer user_data)
{
g_array_remove_index(trans(stat2).offers, 0);
if(trans(stat2).offers->len > 0)
gint len = 1;
transoff(stat2, 0).status = TRANSFER_OFFER_REJECTED;
if(transoff(stat2, 0).tm == current_user.tm)
{
g_array_remove_index(trans(stat2).offers, 0);
len = 0;
}
if(trans(stat2).offers->len > len)
transfer_offers_notify(&trans(stat2), FALSE);
treeview_show_user_player_list();

View File

@ -31,8 +31,11 @@ transfer_update(void)
for(i=transfer_list->len - 1;i>=0;i--)
for(j=trans(i).offers->len - 1;j>=0;j--)
if(transoff(i, j).accepted || team_is_user(transoff(i, j).tm) == -1)
if(transoff(i, j).status == TRANSFER_OFFER_REJECTED2 ||
team_is_user(transoff(i, j).tm) == -1)
g_array_remove_index(trans(i).offers, j);
else if(transoff(i, j).status == TRANSFER_OFFER_REJECTED)
transoff(i, j).status = TRANSFER_OFFER_REJECTED2;
transfer_add_new_players();
transfer_add_cpu_offers();
@ -108,10 +111,18 @@ transfer_offer_compare_func(gconstpointer a, gconstpointer b)
*tr2 = (const TransferOffer*)b;
gint return_value;
return_value = (tr1->fee != tr2->fee) ?
misc_int_compare(tr1->fee, tr2->fee) :
misc_int_compare(tr1->wage, tr2->wage);
if(tr1->status >= TRANSFER_OFFER_REJECTED &&
tr2->status >= TRANSFER_OFFER_REJECTED)
return_value = 0;
else if(tr1->status >= TRANSFER_OFFER_REJECTED)
return_value = 1;
else if(tr2->status >= TRANSFER_OFFER_REJECTED)
return_value = -1;
else
return_value = (tr1->fee != tr2->fee) ?
misc_int_compare(tr1->fee, tr2->fee) :
misc_int_compare(tr1->wage, tr2->wage);
return return_value;
}
@ -126,7 +137,7 @@ transfer_offers_notify(Transfer *tr, gboolean sort)
g_array_sort(tr->offers, transfer_offer_compare_func);
off = &g_array_index(tr->offers, TransferOffer, 0);
off->accepted = TRUE;
off->status = TRANSFER_OFFER_ACCEPTED;
if(team_is_user(tr->tm) != -1)
user_event_add(user_from_team(tr->tm), EVENT_TYPE_TRANSFER_OFFER_USER,
@ -147,6 +158,7 @@ void
transfer_evaluate_offers(void)
{
gint i, j;
gboolean notify = FALSE;
for(i=transfer_list->len - 1;i>=0;i--)
if(trans(i).offers->len > 0)
@ -155,35 +167,42 @@ transfer_evaluate_offers(void)
{
for(j=trans(i).offers->len - 1; j >= 0; j--)
{
if(player_of_id_team(trans(i).tm, trans(i).id)->value > transoff(i, j).fee &&
player_of_id_team(trans(i).tm, trans(i).id)->wage > transoff(i, j).wage)
if(transoff(i, j).status != TRANSFER_OFFER_REJECTED2)
{
user_event_add(user_from_team(transoff(i, j).tm),
EVENT_TYPE_TRANSFER_OFFER_REJECTED_FEE_WAGE,
transoff(i, j).fee, transoff(i, j).wage,
trans(i).tm, player_of_id_team(trans(i).tm, trans(i).id)->name->str);
g_array_remove_index(trans(i).offers, j);
}
else if(player_of_id_team(trans(i).tm, trans(i).id)->value > transoff(i, j).fee)
{
user_event_add(user_from_team(transoff(i, j).tm),
EVENT_TYPE_TRANSFER_OFFER_REJECTED_FEE,
transoff(i, j).fee, transoff(i, j).wage,
trans(i).tm, player_of_id_team(trans(i).tm, trans(i).id)->name->str);
g_array_remove_index(trans(i).offers, j);
}
else if(player_of_id_team(trans(i).tm, trans(i).id)->wage > transoff(i, j).wage)
{
user_event_add(user_from_team(transoff(i, j).tm),
EVENT_TYPE_TRANSFER_OFFER_REJECTED_WAGE,
transoff(i, j).fee, transoff(i, j).wage,
trans(i).tm, player_of_id_team(trans(i).tm, trans(i).id)->name->str);
g_array_remove_index(trans(i).offers, j);
if(player_of_id_team(trans(i).tm, trans(i).id)->value > transoff(i, j).fee &&
player_of_id_team(trans(i).tm, trans(i).id)->wage > transoff(i, j).wage)
{
user_event_add(user_from_team(transoff(i, j).tm),
EVENT_TYPE_TRANSFER_OFFER_REJECTED_FEE_WAGE,
transoff(i, j).fee, transoff(i, j).wage,
trans(i).tm, player_of_id_team(trans(i).tm, trans(i).id)->name->str);
transoff(i, j).status = TRANSFER_OFFER_REJECTED;
}
else if(player_of_id_team(trans(i).tm, trans(i).id)->value > transoff(i, j).fee)
{
user_event_add(user_from_team(transoff(i, j).tm),
EVENT_TYPE_TRANSFER_OFFER_REJECTED_FEE,
transoff(i, j).fee, transoff(i, j).wage,
trans(i).tm, player_of_id_team(trans(i).tm, trans(i).id)->name->str);
transoff(i, j).status = TRANSFER_OFFER_REJECTED;
}
else if(player_of_id_team(trans(i).tm, trans(i).id)->wage > transoff(i, j).wage)
{
user_event_add(user_from_team(transoff(i, j).tm),
EVENT_TYPE_TRANSFER_OFFER_REJECTED_WAGE,
transoff(i, j).fee, transoff(i, j).wage,
trans(i).tm, player_of_id_team(trans(i).tm, trans(i).id)->name->str);
transoff(i, j).status = TRANSFER_OFFER_REJECTED;
}
else
notify = TRUE;
}
}
}
else
notify = TRUE;
if(trans(i).offers->len > 0)
if(notify)
transfer_offers_notify(&trans(i), TRUE);
}
}
@ -336,7 +355,7 @@ transfer_player_has_offer(const Player *pl)
if(trans(i).tm == pl->team &&
trans(i).id == pl->id &&
trans(i).offers->len > 0 &&
transoff(i, 0).accepted)
transoff(i, 0).status == TRANSFER_OFFER_ACCEPTED)
return &transoff(i, 0);
return NULL;
@ -355,13 +374,14 @@ transfer_add_offer(gint idx, Team *tm, gint fee, gint wage)
{
transoff(idx, i).fee = fee;
transoff(idx, i).wage = wage;
transoff(idx, i).status = TRANSFER_OFFER_NOT_CONSIDERED;
return TRUE;
}
new.tm = tm;
new.fee = fee;
new.wage = wage;
new.accepted = FALSE;
new.status = TRANSFER_OFFER_NOT_CONSIDERED;
g_array_append_val(trans(idx).offers, new);
@ -434,12 +454,27 @@ transfer_offers_pending(void)
for(i=0;i<transfer_list->len;i++)
if((trans(i).tm == current_user.tm &&
trans(i).offers->len > 0 &&
transoff(i, 0).accepted) ||
transoff(i, 0).status == TRANSFER_OFFER_ACCEPTED) ||
(team_is_user(trans(i).tm) == -1 &&
trans(i).offers->len > 0 &&
transoff(i, 0).tm == current_user.tm &&
transoff(i, 0).accepted))
transoff(i, 0).status == TRANSFER_OFFER_ACCEPTED))
return TRUE;
return FALSE;
}
/** Find out whether the team has already made an offer for the player
and set the fee and wage accordingly. */
void
transfer_get_previous_offer(const Transfer *tr, const Team *tm, gint *fee, gint *wage)
{
gint i;
for(i=0;i<tr->offers->len;i++)
if(g_array_index(tr->offers, TransferOffer, i).tm == tm)
{
*fee = g_array_index(tr->offers, TransferOffer, i).fee;
*wage = g_array_index(tr->offers, TransferOffer, i).wage;
}
}

View File

@ -71,4 +71,7 @@ query_transfer_current_team_offer(const Player *pl);
gboolean
transfer_offers_pending(void);
void
transfer_get_previous_offer(const Transfer *tr, const Team *tm, gint *fee, gint *wage);
#endif

View File

@ -26,8 +26,17 @@ typedef struct
Team *tm;
/** Transfer fee and wage offer. */
gint fee, wage;
/** Whether the offer got accepted. */
gboolean accepted;
/** Whether the offer got accepted or rejected etc. */
gint status;
} TransferOffer;
enum TransferOfferStatus
{
TRANSFER_OFFER_NOT_CONSIDERED = 0,
TRANSFER_OFFER_ACCEPTED,
TRANSFER_OFFER_REJECTED,
TRANSFER_OFFER_REJECTED2,
TRANSFER_OFFER_END
};
#endif

View File

@ -17,7 +17,7 @@ enum
TAG_TRANSFER_OFFER_TEAM_ID,
TAG_TRANSFER_OFFER_FEE,
TAG_TRANSFER_OFFER_WAGE,
TAG_TRANSFER_OFFER_ACCEPTED,
TAG_TRANSFER_OFFER_STATUS,
TAG_END
};
@ -92,7 +92,7 @@ xml_loadsave_transfers_end_element (GMarkupParseContext *context,
}
else if(tag == TAG_TRANSFER_OFFER_WAGE ||
tag == TAG_TRANSFER_OFFER_FEE ||
tag == TAG_TRANSFER_OFFER_ACCEPTED ||
tag == TAG_TRANSFER_OFFER_STATUS ||
tag == TAG_TRANSFER_OFFER_TEAM_ID)
state = TAG_TRANSFER_OFFER;
else if(tag != TAG_TRANSFERS)
@ -129,8 +129,8 @@ xml_loadsave_transfers_text (GMarkupParseContext *context,
new_offer.tm = team_of_id(int_value);
else if(state == TAG_TRANSFER_OFFER_WAGE)
new_offer.wage = int_value;
else if(state == TAG_TRANSFER_OFFER_ACCEPTED)
new_offer.accepted = int_value;
else if(state == TAG_TRANSFER_OFFER_STATUS)
new_offer.status = int_value;
else if(state == TAG_TRANSFER_OFFER_FEE)
new_offer.fee = int_value;
}
@ -203,8 +203,8 @@ xml_loadsave_transfers_write(const gchar *prefix)
TAG_TRANSFER_OFFER_TEAM_ID, I2);
xml_write_int(fil, transoff(i, j).wage,
TAG_TRANSFER_OFFER_WAGE, I2);
xml_write_int(fil, transoff(i, j).accepted,
TAG_TRANSFER_OFFER_ACCEPTED, I2);
xml_write_int(fil, transoff(i, j).status,
TAG_TRANSFER_OFFER_STATUS, I2);
xml_write_int(fil, transoff(i, j).fee,
TAG_TRANSFER_OFFER_FEE, I2);

View File

@ -738,6 +738,6 @@ int_name_max_product 2000
# list instead of the specified one
float_name_random_list_prob 2000
string_language_names English Deutsch Hollands
string_language_names English Deutsch Nederlands
string_language_codes C de_DE nl_NL
string_language_symbols flag_england.png flag_germany.png flag_nl.png

View File

@ -4,14 +4,14 @@
# Most of these options are uncommented because their meaning
# is rather clear if you take a look at the options window in the game.
int_opt_user_show_live_game 1
int_opt_user_show_live_game 0
int_opt_user_live_game_speed 0
int_opt_user_live_game_verbosity 5
int_opt_user_live_game_verbosity 7
int_opt_user_show_tendency_bar 1
int_opt_user_pause_injury 1
int_opt_user_pause_red 1
int_opt_user_pause_break 1
int_opt_user_auto_sub 0
int_opt_user_auto_sub 1
int_opt_user_show_job_offers 1
int_opt_user_swap_adapts 1
int_opt_user_show_overall 0

View File

@ -13,7 +13,7 @@
<cup_rounds>
<cup_round>
<new_teams>4</new_teams>
<new_teams>8</new_teams>
<choose_teams>
<choose_team>
<choose_team_sid>CUP1</choose_team_sid>