Note how GSinterfaceinit() and GSinterface() are called in main(). Also, notice the FuncNames[] array.
/* tictactoe.c - version 1 This version of tictactoe is the "minimal" source code needed to support the tictactoe interface. */ #include "geosim.h" #define NAME "Tic Tac Toe" #define IFILE "tictactoe.inf" #define BSTORE 0 #define GAME_WIND "GameWind" #define STATUS_WIND "StatusWind" /* --- Prototypes - interface functions --- */ bool redraw_func(); bool null_func(); bool new_game(); bool undo_move(); bool quit(); bool make_move(int mouse_x, int mouse_y, DragStatusType status); /**/ void main(int argc, void *argv[]) { GSinterfaceinit(NAME, IFILE, BSTORE, "wc", G640x480x256, argc, argv); GSinterface(); } bool redraw_func() { GSredrawnamedwindow("root"); GSredrawnamedwindow(GAME_WIND); GSredrawnamedwindow(SCORE_WIND); return TRUE; } bool null_func() { return TRUE; } bool new_game() { return TRUE; } bool undo_move() { return TRUE; } bool quit() { GSquit(NULL); return TRUE; } bool make_move(int mouse_x, int mouse_y, DragStatusType status) { return TRUE; } IntrFunction FuncNames[] = { {"redraw_func", redraw_func}, {"game_menu", null_func}, {"new_game", new_game}, {"undo_move", undo_move}, {"quit", quit}, {"make_move", make_move}, }; int NumFuncs = GSnumifuncs(FuncNames);