vaccinewars

be a doctor and try to vaccinate the world
git clone git://src.adamsgaard.dk/vaccinewars # fast
git clone https://src.adamsgaard.dk/vaccinewars.git # slow
Log | Files | Refs | README | LICENSE Back to index

commit e694fa9cbc3214dbf38465474571e2d9209f7d23
parent b640bc616c1036dcad85a2bf4a4be86ade2e30a8
Author: Ben Webb <ben@salilab.org>
Date:   Sat,  2 Jun 2001 15:31:00 +0000

"Sack Bitch" bug fixed


Diffstat:
Msrc/gtk_client.c | 9+++++++++
Msrc/serverside.c | 6++++--
2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/gtk_client.c b/src/gtk_client.c @@ -1579,8 +1579,10 @@ static gint DrugSortFunc(GtkCList *clist,gconstpointer ptr1, void UpdateMenus() { gboolean MultiPlayer; + gint Bitches; MultiPlayer = (FirstClient && FirstClient->next!=NULL); + Bitches = InGame && ClientData.Play ? ClientData.Play->Bitches.Carried : 0; gtk_widget_set_sensitive(gtk_item_factory_get_widget(ClientData.Menu, "<main>/Talk"),InGame && Network); @@ -1595,6 +1597,8 @@ void UpdateMenus() { gtk_widget_set_sensitive(gtk_item_factory_get_widget(ClientData.Menu, "<main>/Errands/Tipoff"),InGame && MultiPlayer); gtk_widget_set_sensitive(gtk_item_factory_get_widget(ClientData.Menu, + "<main>/Errands/Sack Bitch"),Bitches>0); + gtk_widget_set_sensitive(gtk_item_factory_get_widget(ClientData.Menu, "<main>/Errands/Get spy reports"), InGame && MultiPlayer); } @@ -2661,6 +2665,9 @@ Names.Bitch,Names.Bitch,Names.Guns,Names.Drugs); void SackBitch(GtkWidget *widget,gpointer data) { char *title,*text; +/* Cannot sack bitches if you don't have any! */ + if (ClientData.Play->Bitches.Carried<=0) return; + /* Title of dialog to sack a bitch (%Tde = "Bitch" by default) */ title=dpg_strdup_printf(_("Sack %Tde"),Names.Bitch); @@ -2671,6 +2678,8 @@ void SackBitch(GtkWidget *widget,gpointer data) { Names.Drugs,Names.Bitch); if (GtkMessageBox(ClientData.window,text,title,MB_YESNO)==IDYES) { + ClientData.Play->Bitches.Carried--; + UpdateMenus(); SendClientMessage(ClientData.Play,C_NONE,C_SACKBITCH,NULL,NULL); } g_free(text); g_free(title); diff --git a/src/serverside.c b/src/serverside.c @@ -413,8 +413,10 @@ void HandleServerMessage(gchar *buf,Player *Play) { } break; case C_SACKBITCH: - LoseBitch(Play,NULL,NULL); - SendPlayerData(Play); + if (Play->Bitches.Carried>0) { + LoseBitch(Play,NULL,NULL); + SendPlayerData(Play); + } break; case C_MSG: if (Network) g_message("%s: %s",GetPlayerName(Play),Data);