t"Sack Bitch" bug fixed - vaccinewars - be a doctor and try to vaccinate the world
 (HTM) git clone git://src.adamsgaard.dk/vaccinewars
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit e694fa9cbc3214dbf38465474571e2d9209f7d23
 (DIR) parent b640bc616c1036dcad85a2bf4a4be86ade2e30a8
 (HTM) Author: Ben Webb <ben@salilab.org>
       Date:   Sat,  2 Jun 2001 15:31:00 +0000
       
       "Sack Bitch" bug fixed
       
       
       Diffstat:
         M src/gtk_client.c                    |       9 +++++++++
         M src/serverside.c                    |       6 ++++--
       
       2 files changed, 13 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/src/gtk_client.c b/src/gtk_client.c
       t@@ -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);
       t@@ -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);
        }
       t@@ -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);
        
       t@@ -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);
 (DIR) diff --git a/src/serverside.c b/src/serverside.c
       t@@ -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);