commit e694fa9cbc3214dbf38465474571e2d9209f7d23
parent b640bc616c1036dcad85a2bf4a4be86ade2e30a8
Author: Ben Webb <ben@salilab.org>
Date: Sat, 2 Jun 2001 15:31:00 +0000
"Sack Bitch" bug fixed
Diffstat:
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);