diff -ru freeciv/Makefile.noimake freeciv-gigs/Makefile.noimake --- freeciv/Makefile.noimake Mon Mar 9 14:25:47 1998 +++ freeciv-gigs/Makefile.noimake Sat May 30 14:23:29 1998 @@ -30,9 +30,15 @@ #XPM_INCLUDE_DIR=-I/users/pjunold/xpm-3.4i/lib #XPM_LIB_DIR=-L/users/pjunold/xpm-3.4i/lib +# +# Should we be using GIGS, ? +# +GIGSC=-I/store/include -DHAVE_GIGS +GIGSL=-L/store/lib -lgigs + X11_INCLUDE=-I/usr/X11R6/include -CLI_INCLUDE=-Iclient -Icommon -Iai -Iserver -SER_INCLUDE=-Iserver -Icommon -Iai +CLI_INCLUDE=-Iclient -Icommon -Iai -Iserver $(GIGSC) +SER_INCLUDE=-Iserver -Icommon -Iai $(GIGSC) XLIB_DIR=/usr/X11R6/lib @@ -41,7 +47,7 @@ # # linux -CFLAGS=-c -g -Wall $(CLI_INCLUDE) $(X11_INCLUDE) $(XPM_INCLUDE_DIR) +CFLAGS=-c -g -Wall $(CLI_INCLUDE) $(X11_INCLUDE) $(XPM_INCLUDE_DIR) $(GIGSC) #irix cc compiler #CFLAGS=-c -fullwarn -j -woff 835 -g -ansi -I$(INCLUDE_DIR) $(XPM_INCLUDE_DIR) #CFLAGS=-c -fullwarn -j -g -ansi -I$(INCLUDE_DIR) $(XPM_INCLUDE_DIR) @@ -53,7 +59,7 @@ # # linux/irix -CLFLAGS=-g -L$(XLIB_DIR) $(XPM_LIB_DIR) -lXpm -lXmu -lXaw -lXt -lX11 +CLFLAGS=-g -L$(XLIB_DIR) $(XPM_LIB_DIR) -lXpm -lXmu -lXaw -lXt -lX11 $(GIGSL) # sunos #CLFLAGS=-L/usr/X11/lib $(XPM_LIB_DIR) -lXpm -lXaw -lXt -lXmu -lX11 -lsocket #hpux @@ -64,7 +70,7 @@ # # linux/irix -SLFLAGS= +SLFLAGS=$(GIGSL) # sunos #SLFLAGS=-lsocket diff -ru freeciv/client/Freeciv.h freeciv-gigs/client/Freeciv.h --- freeciv/client/Freeciv.h Sun Apr 26 16:41:25 1998 +++ freeciv-gigs/client/Freeciv.h Sat May 30 14:31:18 1998 @@ -40,6 +40,11 @@ "*connectdialog.*.cconnectc.foreground: white", "*connectdialog.*.cquitc.background: blue", "*connectdialog.*.cquitc.foreground: white", +"*connectdialog.*.cqueryc.label: Query GIGS", +"*connectdialog.*.cqueryc.fromVert: cportl", +"*connectdialog.*.cqueryc.fromHoriz: cquitc", +"*connectdialog.*.cqueryc.background: blue", +"*connectdialog.*.cqueryc.foreground: white", "*intelpopup.title:", "*intelform.background: lightblue", "*inteltitlelabel.background: grey", diff -ru freeciv/client/connectdlg.c freeciv-gigs/client/connectdlg.c --- freeciv/client/connectdlg.c Mon Mar 9 14:25:47 1998 +++ freeciv-gigs/client/connectdlg.c Sat May 30 14:01:59 1998 @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -27,6 +28,26 @@ XtPointer call_data); void quit_callback(Widget w, XtPointer client_data, XtPointer call_data); void connect_callback(Widget w, XtPointer client_data, XtPointer call_data); +#ifdef HAVE_GIGS +#include +Widget queryw; +void query_callback(Widget w, XtPointer client_data, XtPointer call_data) +{ + char *server = NULL; + int portnum; + + /* Query gigs */ + server = GIGS_chooseServer(FREECIV_NAME, &portnum, NULL, GIGS_chooser_X11); + if (NULL != server) { + char portbuf[10]; + XtVaSetValues(ihost, XtNstring, server, NULL); + sprintf(portbuf, "%d", portnum); + XtVaSetValues(iport, XtNstring, portbuf, NULL); + } else { + printf("No %s server found using GIGS.\n", FREECIV_NAME); + } +} +#endif @@ -65,6 +86,10 @@ XtAddCallback(connw, XtNcallback, connect_callback, NULL); XtAddCallback(quitw, XtNcallback, quit_callback, NULL); +#ifdef HAVE_GIGS + queryw=XtVaCreateManagedWidget("cqueryc", commandWidgetClass, form, NULL); + XtAddCallback(queryw, XtNcallback, query_callback, NULL); +#endif XtPopup(shell, XtGrabNone); xaw_set_relative_position(toplevel, shell, 50, 50); diff -ru freeciv/common/shared.h freeciv-gigs/common/shared.h --- freeciv/common/shared.h Thu Apr 23 20:41:48 1998 +++ freeciv-gigs/common/shared.h Sat May 30 13:35:33 1998 @@ -20,7 +20,8 @@ #define PATCH_VERSION 4 #define VERSION_STRING "1.5.4" -#define FREECIV_NAME_VERSION "Freeciv version "##VERSION_STRING +#define FREECIV_NAME "Freeciv" +#define FREECIV_NAME_VERSION FREECIV_NAME ## " version "##VERSION_STRING #define CITY_NAMES_FONT "10x20" diff -ru freeciv/data/Freeciv freeciv-gigs/data/Freeciv --- freeciv/data/Freeciv Sun Apr 26 16:41:24 1998 +++ freeciv-gigs/data/Freeciv Sat May 30 14:30:31 1998 @@ -56,6 +56,11 @@ *connectdialog.*.cquitc.background: blue *connectdialog.*.cquitc.foreground: white +*connectdialog.*.cqueryc.label: Query GIGS +*connectdialog.*.cqueryc.fromVert: cportl +*connectdialog.*.cqueryc.fromHoriz: cquitc +*connectdialog.*.cqueryc.background: blue +*connectdialog.*.cqueryc.foreground: white ! diff -ru freeciv/server/civserver.c freeciv-gigs/server/civserver.c --- freeciv/server/civserver.c Mon Mar 9 14:25:48 1998 +++ freeciv-gigs/server/civserver.c Sat May 30 14:12:37 1998 @@ -39,6 +39,9 @@ #include #include #include +#ifdef HAVE_GIGS +#include +#endif void show_ending(); void end_game(); @@ -189,11 +192,20 @@ } send_server_info_to_metaserver(1); +#ifdef HAVE_GIGS + GIGS_init(); + GIGS_notifySimple(FREECIV_NAME, port, VERSION_STRING, -1); +#endif /* accept new players, wait for serverop to start..*/ server_state=PRE_GAME_STATE; while(server_state==PRE_GAME_STATE) - sniff_packets(); + { +#ifdef HAVE_GIGS + GIGS_notifySimple(FREECIV_NAME, port, VERSION_STRING, game.nplayers); +#endif + sniff_packets(); + } send_server_info_to_metaserver(1); @@ -264,11 +276,17 @@ } if (game.year>game.end_year || is_game_over()) server_state=GAME_OVER_STATE; +#ifdef HAVE_GIGS + GIGS_notifySimple(FREECIV_NAME, port, VERSION_STRING, game.nplayers); +#endif } show_ending(); notify_player(0, "Game: The game is over.."); +#ifdef HAVE_GIGS + GIGS_serverStopped(FREECIV_NAME, port, VERSION_STRING); +#endif while(server_state==GAME_OVER_STATE) { force_end_of_sniff=0; diff -ru freeciv/server/stdinhand.c freeciv-gigs/server/stdinhand.c --- freeciv/server/stdinhand.c Mon Mar 9 14:25:48 1998 +++ freeciv-gigs/server/stdinhand.c Sat May 30 14:19:30 1998 @@ -25,6 +25,11 @@ #include #include #include +#ifdef HAVE_GIGS +#include /* for sleep() */ +#include +extern int port; /* from civserver.c */ +#endif extern char metaserver_info_line[256]; void cut_player_connection(char *playername); @@ -444,6 +449,10 @@ send_packet_generic_message(game.players[i].conn, PACKET_SERVER_SHUTDOWN, &gen_packet); close_connections_and_socket(); +#ifdef HAVE_GIGS + GIGS_serverStopped(FREECIV_NAME, port, VERSION_STRING); + sleep(1); +#endif exit(1); }