t-h and -v output now displayed nicely in Win32 client; AI players _should_ also display output properly now too. - 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 7f6da13b01f74dc977648bc4c3bd0bbbf1d420e5
 (DIR) parent 2a6e35aef3c23dc1f6d92224fd35112771adff60
 (HTM) Author: Ben Webb <ben@salilab.org>
       Date:   Thu, 26 Apr 2001 04:01:28 +0000
       
       -h and -v output now displayed nicely in Win32 client; AI players _should_
       also display output properly now too.
       
       
       Diffstat:
         M src/dopewars.c                      |      38 ++++++++++++++++---------------
         M src/winmain.c                       |      71 ++++++++++++++++++++++---------
       
       2 files changed, 70 insertions(+), 39 deletions(-)
       ---
 (DIR) diff --git a/src/dopewars.c b/src/dopewars.c
       t@@ -1669,9 +1669,7 @@ int GeneralStartup(int argc,char *argv[]) {
        /* score init.) - Returns 0 if OK, -1 if something failed.           */
           SetupParameters();
           HandleCmdLine(argc,argv);
       -   if (WantVersion || WantHelp) {
       -      HandleHelpTexts();
       -   } else if (!AIPlayer) {
       +   if (!WantVersion && !WantHelp && !AIPlayer) {
              return InitHighScoreFile();
           }
           return 0;
       t@@ -1686,22 +1684,26 @@ int main(int argc,char *argv[]) {
           bindtextdomain(PACKAGE,LOCALEDIR);
           textdomain(PACKAGE);
        #endif
       -   if (GeneralStartup(argc,argv)==0 && !WantVersion && !WantHelp) {
       -      StartNetworking();
       -      if (Server) {
       -         ServerLoop();
       -      } else if (AIPlayer) {
       -         AIPlayerLoop();
       -      } else switch(WantedClient) {
       -         case CLIENT_AUTO:
       -            if (!GtkLoop(&argc,&argv,TRUE)) CursesLoop();
       -            break;
       -         case CLIENT_WINDOW:
       -            GtkLoop(&argc,&argv,FALSE); break;
       -         case CLIENT_CURSES:
       -            CursesLoop(); break;
       +   if (GeneralStartup(argc,argv)==0) {
       +      if (WantVersion || WantHelp) {
       +         HandleHelpTexts();
       +      } else {
       +         StartNetworking();
       +         if (Server) {
       +            ServerLoop();
       +         } else if (AIPlayer) {
       +            AIPlayerLoop();
       +         } else switch(WantedClient) {
       +            case CLIENT_AUTO:
       +               if (!GtkLoop(&argc,&argv,TRUE)) CursesLoop();
       +               break;
       +            case CLIENT_WINDOW:
       +               GtkLoop(&argc,&argv,FALSE); break;
       +            case CLIENT_CURSES:
       +               CursesLoop(); break;
       +         }
       +         StopNetworking();
              }
       -      StopNetworking();
           }
           CloseHighScoreFile();
           g_free(PidFile);
 (DIR) diff --git a/src/winmain.c b/src/winmain.c
       t@@ -60,6 +60,22 @@ static void LogMessage(const gchar *log_domain,GLogLevelFlags log_level,
           MessageBox(NULL,message,"Error",MB_OK|MB_ICONSTOP);
        }
        
       +static GString *TextOutput=NULL;
       +
       +static void WindowPrintStart() {
       +   TextOutput=g_string_new("");
       +}
       +
       +static void WindowPrintFunc(const gchar *string) {
       +   g_string_append(TextOutput,string);
       +}
       +
       +static void WindowPrintEnd() {
       +   MessageBox(NULL,TextOutput->str,"dopewars",MB_OK|MB_ICONINFORMATION);
       +   g_string_free(TextOutput,TRUE);
       +   TextOutput=NULL;
       +}
       +
        int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
                             LPSTR lpszCmdParam,int nCmdShow) {
           gchar **split;
       t@@ -74,32 +90,45 @@ int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
           split=g_strsplit(lpszCmdParam," ",0);
           argc=0;
           while (split[argc] && split[argc][0]) argc++;
       -   if (GeneralStartup(argc,split)==0 && !WantVersion && !WantHelp) {
       -      StartNetworking();
       -      if (Server) {
       -         AllocConsole();
       -         SetConsoleTitle(_("dopewars server"));
       -         g_log_set_handler(NULL,G_LOG_LEVEL_MESSAGE|G_LOG_LEVEL_WARNING,
       -                           ServerLogMessage,NULL);
       -         g_set_print_handler(ServerPrintFunc);
       -         newterm(NULL,NULL,NULL);
       -         ServerLoop();
       -      } else if (AIPlayer) {
       -         AIPlayerLoop();
       -      } else if (WantedClient==CLIENT_CURSES) {
       -         AllocConsole();
       -         SetConsoleTitle(_("dopewars"));
       -         CursesLoop();
       +   if (GeneralStartup(argc,split)==0) {
       +      if (WantVersion || WantHelp) {
       +         WindowPrintStart();
       +         g_set_print_handler(WindowPrintFunc);
       +         HandleHelpTexts();
       +         WindowPrintEnd();
              } else {
       +         StartNetworking();
       +         if (Server) {
       +            AllocConsole();
       +            SetConsoleTitle(_("dopewars server"));
       +            g_log_set_handler(NULL,G_LOG_LEVEL_MESSAGE|G_LOG_LEVEL_WARNING,
       +                              ServerLogMessage,NULL);
       +            g_set_print_handler(ServerPrintFunc);
       +            newterm(NULL,NULL,NULL);
       +            ServerLoop();
       +         } else if (AIPlayer) {
       +            AllocConsole();
       +            SetConsoleTitle(_("dopewars AI"));
       +            g_log_set_handler(NULL,G_LOG_LEVEL_MESSAGE|G_LOG_LEVEL_WARNING,
       +                              ServerLogMessage,NULL);
       +            g_set_print_handler(ServerPrintFunc);
       +            newterm(NULL,NULL,NULL);
       +            AIPlayerLoop();
       +         } else if (WantedClient==CLIENT_CURSES) {
       +            AllocConsole();
       +            SetConsoleTitle(_("dopewars"));
       +            CursesLoop();
       +         } else {
        #if GUI_CLIENT
       -         GtkLoop(hInstance,hPrevInstance);
       +            GtkLoop(hInstance,hPrevInstance);
        #else
       -         g_print(_("No graphical client available - rebuild the binary\n"
       -                 "passing the --enable-gui-client option to configure, or\n"
       -                 "use the curses client (if available) instead!\n"));
       +            g_print(_("No graphical client available - rebuild the binary\n"
       +                    "passing the --enable-gui-client option to configure, or\n"
       +                    "use the curses client (if available) instead!\n"));
        #endif
       +         }
       +         StopNetworking();
              }
       -      StopNetworking();
           }
           g_strfreev(split);
           CloseHighScoreFile();