mirror of
https://github.com/tstellar/bygfoot.git
synced 2025-01-31 07:54:50 +01:00
Automatic loan repayment.
This commit is contained in:
parent
4ee226ffa0
commit
654e42c844
@ -20,7 +20,6 @@
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
<signal name="delete_event" handler="on_window_job_offer_delete_event" last_modification_time="Sun, 15 May 2005 14:52:33 GMT"/>
|
||||
|
||||
<child>
|
||||
@ -718,7 +717,6 @@
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_SPLASHSCREEN</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkVBox" id="vbox28">
|
||||
@ -776,7 +774,6 @@
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
<signal name="delete_event" handler="on_button_warning_clicked" last_modification_time="Sat, 05 Mar 2005 19:16:17 GMT"/>
|
||||
<signal name="destroy_event" handler="on_button_warning_clicked" last_modification_time="Sat, 05 Mar 2005 19:16:28 GMT"/>
|
||||
|
||||
@ -863,7 +860,6 @@
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
<signal name="delete_event" handler="on_window_digits_delete_event" last_modification_time="Sun, 15 May 2005 14:52:21 GMT"/>
|
||||
|
||||
<child>
|
||||
@ -1027,7 +1023,19 @@
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox16">
|
||||
<widget class="GtkHSeparator" id="hseparator10">
|
||||
<property name="height_request">10</property>
|
||||
<property name="visible">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkVBox" id="vbox29">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">3</property>
|
||||
@ -1044,8 +1052,86 @@
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="button_digits_alr">
|
||||
<property name="can_focus">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<signal name="clicked" handler="on_button_digits_alr_clicked" last_modification_time="Sat, 08 Nov 2008 12:17:54 GMT"/>
|
||||
|
||||
<child>
|
||||
<widget class="GtkAlignment" id="alignment16">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xscale">0</property>
|
||||
<property name="yscale">0</property>
|
||||
<property name="top_padding">0</property>
|
||||
<property name="bottom_padding">0</property>
|
||||
<property name="left_padding">0</property>
|
||||
<property name="right_padding">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox38">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">2</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImage" id="image23">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-jump-to</property>
|
||||
<property name="icon_size">4</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label63">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Confirm & schedule repayment</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
@ -1063,15 +1149,15 @@
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
@ -1093,7 +1179,6 @@
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
<signal name="delete_event" handler="on_window_yesno_delete_event" last_modification_time="Sun, 20 Mar 2005 19:14:01 GMT"/>
|
||||
|
||||
<child>
|
||||
@ -1211,7 +1296,6 @@
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
<signal name="delete_event" handler="on_window_contract_delete_event" last_modification_time="Fri, 25 Mar 2005 19:18:36 GMT"/>
|
||||
|
||||
<child>
|
||||
@ -1595,7 +1679,6 @@
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
<signal name="delete_event" handler="on_window_user_management_delete_event" last_modification_time="Sun, 15 May 2005 14:52:50 GMT"/>
|
||||
|
||||
<child>
|
||||
@ -1934,7 +2017,6 @@
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
<signal name="delete_event" handler="on_window_debug_delete_event" last_modification_time="Fri, 13 May 2005 16:56:52 GMT"/>
|
||||
|
||||
<child>
|
||||
@ -2056,7 +2138,6 @@
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
<signal name="delete_event" handler="on_window_help_delete_event" last_modification_time="Sat, 21 May 2005 19:25:09 GMT"/>
|
||||
|
||||
<child>
|
||||
@ -2351,7 +2432,6 @@
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
<signal name="delete_event" handler="on_window_transfer_dialog_delete_event" last_modification_time="Mon, 30 May 2005 14:25:43 GMT"/>
|
||||
|
||||
<child>
|
||||
@ -2552,7 +2632,6 @@
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
<signal name="delete_event" handler="on_window_mmatches_delete_event" last_modification_time="Fri, 19 Aug 2005 10:35:08 GMT"/>
|
||||
|
||||
<child>
|
||||
|
@ -1208,8 +1208,8 @@
|
||||
<property name="n_rows">2</property>
|
||||
<property name="n_columns">3</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="row_spacing">2</property>
|
||||
<property name="column_spacing">2</property>
|
||||
<property name="row_spacing">5</property>
|
||||
<property name="column_spacing">10</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label17">
|
||||
|
@ -332,7 +332,7 @@ callback_get_loan(void)
|
||||
misc_print_grouped_int(max_loan, buf2);
|
||||
sprintf(buf, _("You can take out at most %s."), buf2);
|
||||
|
||||
window_show_digits(buf, _("Loan"), max_loan, NULL, 0);
|
||||
window_show_digits(buf, _("Loan"), max_loan, NULL, 0, TRUE);
|
||||
}
|
||||
|
||||
/** Open the digits window to pay back a loan. */
|
||||
@ -358,7 +358,7 @@ callback_pay_loan(void)
|
||||
misc_print_grouped_int(max_payback, buf2);
|
||||
sprintf(buf, _("You can pay back at most %s"), buf2);
|
||||
|
||||
window_show_digits(buf, _("Payback"), max_payback, NULL, 0);
|
||||
window_show_digits(buf, _("Payback"), max_payback, NULL, 0, FALSE);
|
||||
}
|
||||
|
||||
/** Manage a click on a player of the current team on the
|
||||
@ -494,14 +494,14 @@ callback_transfer_list_clicked(gint button, gint idx)
|
||||
player_of_id_team(tr->tm, tr->id)->name);
|
||||
|
||||
window_show_digits(buf, _("Fee"), tr->fee[current_user.scout % 10],
|
||||
_("Wage"), tr->wage[current_user.scout % 10]);
|
||||
_("Wage"), tr->wage[current_user.scout % 10], FALSE);
|
||||
}
|
||||
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);
|
||||
|
||||
window_show_digits(buf, _("Fee"), old_fee, _("Wage"), old_wage);
|
||||
window_show_digits(buf, _("Fee"), old_fee, _("Wage"), old_wage, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -749,7 +749,7 @@ on_menu_custom_structure_activate (GtkMenuItem *menuitem,
|
||||
{
|
||||
stat1 = STATUS_CUSTOM_STRUCTURE;
|
||||
window_show_digits(_("Enter a structure. The digits must sum up to 10."),
|
||||
NULL, -1, _("Structure"), current_user.tm->structure);
|
||||
NULL, -1, _("Structure"), current_user.tm->structure, FALSE);
|
||||
}
|
||||
|
||||
|
||||
@ -1152,7 +1152,7 @@ on_menu_set_investment_activate (GtkMenuItem *menuitem,
|
||||
stat1 = STATUS_SET_YA_PERCENTAGE;
|
||||
window_show_digits(
|
||||
_("Set the percentage of your income you want to devote to your youth academy."),
|
||||
NULL, -1, "%", current_user.youth_academy.percentage);
|
||||
NULL, -1, "%", current_user.youth_academy.percentage, FALSE);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -124,6 +124,16 @@ finance_update_user_weekly(User *user)
|
||||
|
||||
user->debt = (gint)rint((gfloat)user->debt * (1 + user->debt_interest));
|
||||
|
||||
if(user->alr_start_week != 0 && week >= user->alr_start_week)
|
||||
{
|
||||
finance_pay_loan(user, user->alr_weekly_installment);
|
||||
if(user->debt == 0)
|
||||
{
|
||||
user->alr_start_week =
|
||||
user->alr_weekly_installment = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(user->money < -finance_team_drawing_credit_loan(user->tm, FALSE) &&
|
||||
user->counters[COUNT_USER_POSITIVE] == -1 && debug < 50)
|
||||
{
|
||||
@ -143,7 +153,7 @@ finance_update_user_weekly(User *user)
|
||||
if(user->counters[COUNT_USER_LOAN] > -1)
|
||||
user->counters[COUNT_USER_LOAN]--;
|
||||
|
||||
if(user->counters[COUNT_USER_LOAN] == 0 && debug < 50)
|
||||
if(user->counters[COUNT_USER_LOAN] == 0 && debug < 50 && user->alr_start_week == 0)
|
||||
user_event_add(user, EVENT_TYPE_WARNING, -1, -1, NULL,
|
||||
_("You have to pay back your loan this week."));
|
||||
|
||||
@ -226,42 +236,38 @@ finance_get_loan(gint value)
|
||||
|
||||
game_gui_print_message(_("You have %d weeks to pay back your loan."),
|
||||
current_user.counters[COUNT_USER_LOAN]);
|
||||
|
||||
on_menu_show_finances_activate(NULL, NULL);
|
||||
}
|
||||
|
||||
|
||||
/** Pay back some loan for the current user.
|
||||
/** Pay back some loan for the specified user.
|
||||
@param value The amount of money paid back. */
|
||||
void
|
||||
finance_pay_loan(gint value)
|
||||
finance_pay_loan(User *user, gint value)
|
||||
{
|
||||
gint add = (gint)rint((gfloat)value / (gfloat)(-current_user.debt) *
|
||||
(gfloat)const_int("int_finance_payback_weeks"));
|
||||
gint add = (gint)rint((gfloat)value / (gfloat)(-user->debt) *
|
||||
(gfloat)const_int("int_finance_payback_weeks"));
|
||||
|
||||
if(value > -current_user.debt)
|
||||
value = -current_user.debt;
|
||||
if(value > -user->debt)
|
||||
value = -user->debt;
|
||||
|
||||
current_user.money -= value;
|
||||
current_user.debt += value;
|
||||
user->money -= value;
|
||||
user->debt += value;
|
||||
|
||||
if(current_user.debt == 0)
|
||||
if(user->debt == 0)
|
||||
{
|
||||
current_user.counters[COUNT_USER_LOAN] = -1;
|
||||
current_user.alr_start_week = 0;
|
||||
current_user.alr_weekly_installment = 0;
|
||||
user->counters[COUNT_USER_LOAN] = -1;
|
||||
user->alr_start_week = 0;
|
||||
user->alr_weekly_installment = 0;
|
||||
game_gui_print_message(_("You are free from debt."));
|
||||
}
|
||||
else
|
||||
{
|
||||
current_user.counters[COUNT_USER_LOAN] =
|
||||
MIN(current_user.counters[COUNT_USER_LOAN] + add,
|
||||
user->counters[COUNT_USER_LOAN] =
|
||||
MIN(user->counters[COUNT_USER_LOAN] + add,
|
||||
const_int("int_finance_payback_weeks"));
|
||||
game_gui_print_message(_("You have %d weeks to pay back the rest of your loan."),
|
||||
current_user.counters[COUNT_USER_LOAN]);
|
||||
user->counters[COUNT_USER_LOAN]);
|
||||
}
|
||||
|
||||
on_menu_show_finances_activate(NULL, NULL);
|
||||
}
|
||||
|
||||
/** Return the cost of a stadium improvement.
|
||||
@ -396,21 +402,21 @@ finance_update_current_interest(void)
|
||||
gint
|
||||
finance_calculate_alr_weekly_installment(gint start_week)
|
||||
{
|
||||
gfloat debt_start;
|
||||
gfloat debt_end;
|
||||
gfloat interest_factor;
|
||||
gfloat max_start_week;
|
||||
gfloat installment;
|
||||
gint weekly_installment;
|
||||
|
||||
debt_start = current_user.debt * powf(1 + current_user.debt_interest, (gfloat)(start_week - week));
|
||||
interest_factor = 1 /
|
||||
powf(1 + current_user.debt_interest, (gfloat)(const_int("int_finance_payback_weeks") - start_week + week + 1)) /
|
||||
max_start_week = MIN(week + current_user.counters[COUNT_USER_LOAN], fixture_get_last_scheduled_week());
|
||||
debt_end = current_user.debt * powf(1 + current_user.debt_interest, max_start_week - 1);
|
||||
interest_factor =
|
||||
(powf(1 + current_user.debt_interest, (gfloat)(max_start_week - start_week + 1)) - 1) /
|
||||
current_user.debt_interest;
|
||||
|
||||
installment = -debt_start / (1 / current_user.debt_interest - interest_factor + 1);
|
||||
installment = -debt_end / interest_factor;
|
||||
weekly_installment = (gint)rint(installment);
|
||||
|
||||
printf("start %.2f intfac %.2f inst %.2f winst %d\n", debt_start, interest_factor, installment, weekly_installment);
|
||||
|
||||
return (weekly_installment > installment) ? weekly_installment : weekly_installment + 1;
|
||||
}
|
||||
|
||||
@ -423,14 +429,16 @@ finance_calculate_alr_start_week(gint weekly_installment)
|
||||
gint start_week;
|
||||
gint installment;
|
||||
|
||||
upper = MIN(week + current_user.counters[COUNT_USER_LOAN] - 1, fixture_get_last_scheduled_week());
|
||||
upper = MIN(week + current_user.counters[COUNT_USER_LOAN], fixture_get_last_scheduled_week());
|
||||
|
||||
for(start_week = week + 1; start_week <= upper; start_week++)
|
||||
{
|
||||
installment = finance_calculate_alr_weekly_installment(start_week);
|
||||
if(installment > weekly_installment)
|
||||
return start_week - 1;
|
||||
else if(installment == weekly_installment)
|
||||
return start_week;
|
||||
}
|
||||
|
||||
return start_week - 1;
|
||||
return start_week;
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ gint
|
||||
finance_team_drawing_credit_loan(const Team *tm, gboolean loan);
|
||||
|
||||
void
|
||||
finance_pay_loan(gint value);
|
||||
finance_pay_loan(User *user, gint value);
|
||||
|
||||
void
|
||||
finance_get_loan(gint value);
|
||||
|
@ -137,9 +137,11 @@ on_button_digits_ok_clicked (GtkButton *button,
|
||||
{
|
||||
case STATUS_GET_LOAN:
|
||||
finance_get_loan(values[0]);
|
||||
on_menu_show_finances_activate(NULL, NULL);
|
||||
break;
|
||||
case STATUS_PAY_LOAN:
|
||||
finance_pay_loan(values[0]);
|
||||
finance_pay_loan(¤t_user, values[0]);
|
||||
on_menu_show_finances_activate(NULL, NULL);
|
||||
break;
|
||||
case STATUS_SHOW_TRANSFER_LIST:
|
||||
if(transfer_add_offer(stat2, current_user.tm, values[0], values[1]))
|
||||
@ -170,6 +172,14 @@ on_button_digits_ok_clicked (GtkButton *button,
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
on_button_digits_alr_clicked (GtkButton *button,
|
||||
gpointer user_data)
|
||||
{
|
||||
on_button_digits_ok_clicked(NULL, NULL);
|
||||
on_automatic_loan_repayment_activate(NULL, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
on_button_digits_cancel_clicked (GtkButton *button,
|
||||
gpointer user_data)
|
||||
@ -618,3 +628,4 @@ on_button_mm_import_clicked (GtkButton *button,
|
||||
window_show_file_sel();
|
||||
}
|
||||
|
||||
|
||||
|
@ -204,4 +204,8 @@ on_button_mm_reload_close_clicked (GtkButton *button,
|
||||
void
|
||||
on_button_mm_import_clicked (GtkButton *button,
|
||||
gpointer user_data);
|
||||
|
||||
void
|
||||
on_button_digits_alr_clicked (GtkButton *button,
|
||||
gpointer user_data);
|
||||
#endif
|
||||
|
@ -381,8 +381,14 @@ create_window_digits (void)
|
||||
GtkWidget *label_2;
|
||||
GtkObject *spinbutton2_adj;
|
||||
GtkWidget *spinbutton2;
|
||||
GtkWidget *hbox16;
|
||||
GtkWidget *hseparator10;
|
||||
GtkWidget *vbox29;
|
||||
GtkWidget *button_digits_ok;
|
||||
GtkWidget *button_digits_alr;
|
||||
GtkWidget *alignment16;
|
||||
GtkWidget *hbox38;
|
||||
GtkWidget *image23;
|
||||
GtkWidget *label63;
|
||||
GtkWidget *button_digits_cancel;
|
||||
GtkAccelGroup *accel_group;
|
||||
GtkTooltips *tooltips;
|
||||
@ -437,17 +443,41 @@ create_window_digits (void)
|
||||
gtk_box_pack_start (GTK_BOX (vbox16), spinbutton2, FALSE, FALSE, 0);
|
||||
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton2), TRUE);
|
||||
|
||||
hbox16 = gtk_hbox_new (FALSE, 3);
|
||||
gtk_widget_show (hbox16);
|
||||
gtk_box_pack_start (GTK_BOX (vbox14), hbox16, FALSE, TRUE, 0);
|
||||
hseparator10 = gtk_hseparator_new ();
|
||||
gtk_widget_show (hseparator10);
|
||||
gtk_box_pack_start (GTK_BOX (vbox14), hseparator10, FALSE, FALSE, 0);
|
||||
gtk_widget_set_size_request (hseparator10, -1, 10);
|
||||
|
||||
vbox29 = gtk_vbox_new (FALSE, 3);
|
||||
gtk_widget_show (vbox29);
|
||||
gtk_box_pack_start (GTK_BOX (vbox14), vbox29, TRUE, FALSE, 0);
|
||||
|
||||
button_digits_ok = gtk_button_new_from_stock ("gtk-ok");
|
||||
gtk_widget_show (button_digits_ok);
|
||||
gtk_box_pack_start (GTK_BOX (hbox16), button_digits_ok, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox29), button_digits_ok, FALSE, FALSE, 0);
|
||||
|
||||
button_digits_alr = gtk_button_new ();
|
||||
gtk_box_pack_start (GTK_BOX (vbox29), button_digits_alr, FALSE, FALSE, 0);
|
||||
|
||||
alignment16 = gtk_alignment_new (0.5, 0.5, 0, 0);
|
||||
gtk_widget_show (alignment16);
|
||||
gtk_container_add (GTK_CONTAINER (button_digits_alr), alignment16);
|
||||
|
||||
hbox38 = gtk_hbox_new (FALSE, 2);
|
||||
gtk_widget_show (hbox38);
|
||||
gtk_container_add (GTK_CONTAINER (alignment16), hbox38);
|
||||
|
||||
image23 = gtk_image_new_from_stock ("gtk-jump-to", GTK_ICON_SIZE_BUTTON);
|
||||
gtk_widget_show (image23);
|
||||
gtk_box_pack_start (GTK_BOX (hbox38), image23, FALSE, FALSE, 0);
|
||||
|
||||
label63 = gtk_label_new_with_mnemonic (_("Confirm & schedule repayment"));
|
||||
gtk_widget_show (label63);
|
||||
gtk_box_pack_start (GTK_BOX (hbox38), label63, FALSE, FALSE, 0);
|
||||
|
||||
button_digits_cancel = gtk_button_new_from_stock ("gtk-cancel");
|
||||
gtk_widget_show (button_digits_cancel);
|
||||
gtk_box_pack_start (GTK_BOX (hbox16), button_digits_cancel, TRUE, TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox29), button_digits_cancel, FALSE, FALSE, 0);
|
||||
gtk_tooltips_set_tip (tooltips, button_digits_cancel, _("Esc"), NULL);
|
||||
gtk_widget_add_accelerator (button_digits_cancel, "clicked", accel_group,
|
||||
GDK_Escape, (GdkModifierType) 0,
|
||||
@ -465,6 +495,9 @@ create_window_digits (void)
|
||||
g_signal_connect ((gpointer) button_digits_ok, "clicked",
|
||||
G_CALLBACK (on_button_digits_ok_clicked),
|
||||
NULL);
|
||||
g_signal_connect ((gpointer) button_digits_alr, "clicked",
|
||||
G_CALLBACK (on_button_digits_alr_clicked),
|
||||
NULL);
|
||||
g_signal_connect ((gpointer) button_digits_cancel, "clicked",
|
||||
G_CALLBACK (on_button_digits_cancel_clicked),
|
||||
NULL);
|
||||
@ -480,8 +513,14 @@ create_window_digits (void)
|
||||
GLADE_HOOKUP_OBJECT (window_digits, vbox16, "vbox16");
|
||||
GLADE_HOOKUP_OBJECT (window_digits, label_2, "label_2");
|
||||
GLADE_HOOKUP_OBJECT (window_digits, spinbutton2, "spinbutton2");
|
||||
GLADE_HOOKUP_OBJECT (window_digits, hbox16, "hbox16");
|
||||
GLADE_HOOKUP_OBJECT (window_digits, hseparator10, "hseparator10");
|
||||
GLADE_HOOKUP_OBJECT (window_digits, vbox29, "vbox29");
|
||||
GLADE_HOOKUP_OBJECT (window_digits, button_digits_ok, "button_digits_ok");
|
||||
GLADE_HOOKUP_OBJECT (window_digits, button_digits_alr, "button_digits_alr");
|
||||
GLADE_HOOKUP_OBJECT (window_digits, alignment16, "alignment16");
|
||||
GLADE_HOOKUP_OBJECT (window_digits, hbox38, "hbox38");
|
||||
GLADE_HOOKUP_OBJECT (window_digits, image23, "image23");
|
||||
GLADE_HOOKUP_OBJECT (window_digits, label63, "label63");
|
||||
GLADE_HOOKUP_OBJECT (window_digits, button_digits_cancel, "button_digits_cancel");
|
||||
GLADE_HOOKUP_OBJECT_NO_REF (window_digits, tooltips, "tooltips");
|
||||
|
||||
|
@ -24,8 +24,10 @@
|
||||
*/
|
||||
|
||||
#include "bet.h"
|
||||
#include "callbacks.h"
|
||||
#include "finance.h"
|
||||
#include "fixture.h"
|
||||
#include "game_gui.h"
|
||||
#include "gui.h"
|
||||
#include "main.h"
|
||||
#include "misc_callback_func.h"
|
||||
@ -137,7 +139,7 @@ on_treeview_bets_button_press_event (GtkWidget *widget,
|
||||
stat3 = col_num - 1;
|
||||
|
||||
/* 'Wager' is the amount of money the user placed on a bet. */
|
||||
window_show_digits(buf, _("Wager"), 0, NULL, -1);
|
||||
window_show_digits(buf, _("Wager"), 0, NULL, -1, FALSE);
|
||||
spin_wager = GTK_SPIN_BUTTON(lookup_widget(window.digits, "spinbutton1"));
|
||||
gtk_spin_button_set_range(spin_wager, 0,
|
||||
(gdouble)const_int("int_bet_wager_max"));
|
||||
@ -240,8 +242,6 @@ on_button_calculate_start_week_clicked (GtkButton *button,
|
||||
start_week = finance_calculate_alr_start_week(
|
||||
gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_weekly_installment"))));
|
||||
|
||||
printf("startweek %d\n", start_week);
|
||||
|
||||
gtk_spin_button_set_value(
|
||||
GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_start_week")), (gfloat)start_week);
|
||||
}
|
||||
@ -257,8 +257,6 @@ on_button_calculate_installment_clicked
|
||||
weekly_installment = finance_calculate_alr_weekly_installment(
|
||||
gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_start_week"))));
|
||||
|
||||
printf("inst %d\n", weekly_installment);
|
||||
|
||||
gtk_spin_button_set_value(
|
||||
GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_weekly_installment")), (gfloat)weekly_installment);
|
||||
}
|
||||
@ -268,7 +266,17 @@ void
|
||||
on_button_alr_confirm_clicked (GtkButton *button,
|
||||
gpointer user_data)
|
||||
{
|
||||
current_user.alr_start_week =
|
||||
gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_start_week")));
|
||||
|
||||
current_user.alr_weekly_installment =
|
||||
gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_weekly_installment")));
|
||||
|
||||
window_destroy(&window.alr);
|
||||
|
||||
setsav0;
|
||||
|
||||
on_menu_show_finances_activate(NULL, NULL);
|
||||
}
|
||||
|
||||
|
||||
|
@ -596,8 +596,8 @@ create_window_alr (void)
|
||||
table1 = gtk_table_new (2, 3, FALSE);
|
||||
gtk_widget_show (table1);
|
||||
gtk_box_pack_start (GTK_BOX (vbox5), table1, FALSE, FALSE, 0);
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table1), 2);
|
||||
gtk_table_set_col_spacings (GTK_TABLE (table1), 2);
|
||||
gtk_table_set_row_spacings (GTK_TABLE (table1), 5);
|
||||
gtk_table_set_col_spacings (GTK_TABLE (table1), 10);
|
||||
|
||||
label17 = gtk_label_new (_("Start in week"));
|
||||
gtk_widget_show (label17);
|
||||
|
@ -1489,6 +1489,19 @@ treeview_create_finances(const User* user)
|
||||
gtk_list_store_set(ls, &iter, 0, buf, 1, "", 2, buf2, -1);
|
||||
}
|
||||
|
||||
if(user->alr_start_week != 0)
|
||||
{
|
||||
gtk_list_store_append(ls, &iter);
|
||||
gtk_list_store_set(ls, &iter, 0, _("Automatic repayment"), 1, "", 2, "", -1);
|
||||
|
||||
misc_print_grouped_int(user->alr_weekly_installment, buf);
|
||||
sprintf(buf2, "<span foreground='%s'>%s</span>",
|
||||
const_app("string_treeview_finances_expenses_fg"), buf);
|
||||
sprintf(buf, _("(from week %d)"), user->alr_start_week);
|
||||
gtk_list_store_append(ls, &iter);
|
||||
gtk_list_store_set(ls, &iter, 0, buf, 1, "", 2, buf2, -1);
|
||||
}
|
||||
|
||||
gtk_list_store_append(ls, &iter);
|
||||
gtk_list_store_set(ls, &iter, 0, "", 1, "", 2, "", -1);
|
||||
|
||||
|
@ -461,7 +461,7 @@ window_show_menu_youth(GdkEvent *event)
|
||||
according to the arguments. */
|
||||
void
|
||||
window_show_digits(const gchar *text_main, const gchar* text1, gint value1,
|
||||
const gchar* text2, gint value2)
|
||||
const gchar* text2, gint value2, gboolean show_alr)
|
||||
{
|
||||
GtkLabel *label_main, *label_1, *label_2;
|
||||
GtkSpinButton *spinbutton1, *spinbutton2;
|
||||
@ -496,6 +496,9 @@ window_show_digits(const gchar *text_main, const gchar* text1, gint value1,
|
||||
gtk_label_set_text(label_2, text2);
|
||||
else
|
||||
gtk_widget_hide(GTK_WIDGET(label_2)->parent);
|
||||
|
||||
if(show_alr)
|
||||
gtk_widget_show(lookup_widget(window.digits, "button_digits_alr"));
|
||||
}
|
||||
|
||||
/** Show the stadium window for the current user. */
|
||||
@ -1022,7 +1025,7 @@ window_show_alr(void)
|
||||
gui_label_set_text_from_int(GTK_LABEL(lookup_widget(window.alr, "label_current_weekly_installment")),
|
||||
current_user.alr_weekly_installment, FALSE);
|
||||
gtk_spin_button_set_range(GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_start_week")),
|
||||
week + 1, MIN(week + current_user.counters[COUNT_USER_LOAN] - 1, fixture_get_last_scheduled_week()));
|
||||
week + 1, MIN(week + current_user.counters[COUNT_USER_LOAN], fixture_get_last_scheduled_week()));
|
||||
gtk_spin_button_set_range(GTK_SPIN_BUTTON(lookup_widget(window.alr, "spinbutton_weekly_installment")),
|
||||
0, -current_user.debt * powf(1 + current_user.debt_interest, const_int("int_finance_payback_weeks")));
|
||||
0, -current_user.debt * powf(1 + current_user.debt_interest, const_int("int_finance_payback_weeks")) + 1);
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ window_destroy(GtkWidget **wind);
|
||||
|
||||
void
|
||||
window_show_digits(const gchar *text_main, const gchar* text1,
|
||||
gint value1, const gchar* text2, gint value2);
|
||||
gint value1, const gchar* text2, gint value2, gboolean show_alr);
|
||||
|
||||
void
|
||||
window_show_file_sel(void);
|
||||
|
Loading…
x
Reference in New Issue
Block a user