mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-02-09 22:00:39 +01:00
snapshot. New game button works and game gets saved in DB. Next: display and open from DB.
This commit is contained in:
parent
63487dc5d0
commit
4af30c534c
22 changed files with 2927 additions and 2630 deletions
|
@ -377,14 +377,16 @@ public class CommsTransport implements TransportProcs,
|
||||||
|
|
||||||
switch ( addr.conType ) {
|
switch ( addr.conType ) {
|
||||||
case COMMS_CONN_RELAY:
|
case COMMS_CONN_RELAY:
|
||||||
if ( NetStateCache.netAvail( m_context ) ) {
|
nSent = RelayService.sendPacket( m_context, addr.sms_phone,
|
||||||
putOut( buf ); // add to queue
|
gameID, buf );
|
||||||
if ( null == m_thread ) {
|
// if ( NetStateCache.netAvail( m_context ) ) {
|
||||||
m_thread = new CommsThread();
|
// putOut( buf ); // add to queue
|
||||||
m_thread.start();
|
// if ( null == m_thread ) {
|
||||||
}
|
// m_thread = new CommsThread();
|
||||||
nSent = buf.length;
|
// m_thread.start();
|
||||||
}
|
// }
|
||||||
|
// nSent = buf.length;
|
||||||
|
// }
|
||||||
break;
|
break;
|
||||||
case COMMS_CONN_SMS:
|
case COMMS_CONN_SMS:
|
||||||
nSent = SMSService.sendPacket( m_context, addr.sms_phone,
|
nSent = SMSService.sendPacket( m_context, addr.sms_phone,
|
||||||
|
|
|
@ -133,62 +133,67 @@ game_makeNewGame( MPFORMAL XWGame* game, CurGameInfo* gi,
|
||||||
board_prefsChanged( game->board, cp );
|
board_prefsChanged( game->board, cp );
|
||||||
} /* game_makeNewGame */
|
} /* game_makeNewGame */
|
||||||
|
|
||||||
void
|
XP_Bool
|
||||||
game_reset( MPFORMAL XWGame* game, CurGameInfo* gi,
|
game_reset( MPFORMAL XWGame* game, CurGameInfo* gi,
|
||||||
XW_UtilCtxt* XP_UNUSED_STANDALONE(util),
|
XW_UtilCtxt* XP_UNUSED_STANDALONE(util),
|
||||||
CommonPrefs* cp, const TransportProcs* procs )
|
CommonPrefs* cp, const TransportProcs* procs )
|
||||||
{
|
{
|
||||||
|
XP_Bool result = XP_FALSE;
|
||||||
XP_U16 ii;
|
XP_U16 ii;
|
||||||
|
|
||||||
XP_ASSERT( !!game->model );
|
if ( !!game->model ) {
|
||||||
XP_ASSERT( !!gi );
|
XP_ASSERT( !!game->model );
|
||||||
|
XP_ASSERT( !!gi );
|
||||||
|
|
||||||
gi->gameID = makeGameID( util );
|
gi->gameID = makeGameID( util );
|
||||||
|
|
||||||
#ifndef XWFEATURE_STANDALONE_ONLY
|
#ifndef XWFEATURE_STANDALONE_ONLY
|
||||||
XP_U16 nPlayersHere = 0;
|
XP_U16 nPlayersHere = 0;
|
||||||
XP_U16 nPlayersTotal = 0;
|
XP_U16 nPlayersTotal = 0;
|
||||||
checkServerRole( gi, &nPlayersHere, &nPlayersTotal );
|
checkServerRole( gi, &nPlayersHere, &nPlayersTotal );
|
||||||
|
|
||||||
if ( !!game->comms ) {
|
if ( !!game->comms ) {
|
||||||
if ( gi->serverRole == SERVER_STANDALONE ) {
|
if ( gi->serverRole == SERVER_STANDALONE ) {
|
||||||
comms_destroy( game->comms );
|
comms_destroy( game->comms );
|
||||||
game->comms = NULL;
|
game->comms = NULL;
|
||||||
} else {
|
} else {
|
||||||
comms_reset( game->comms, gi->serverRole != SERVER_ISCLIENT,
|
comms_reset( game->comms, gi->serverRole != SERVER_ISCLIENT,
|
||||||
nPlayersHere, nPlayersTotal );
|
nPlayersHere, nPlayersTotal );
|
||||||
}
|
}
|
||||||
} else if ( gi->serverRole != SERVER_STANDALONE ) {
|
} else if ( gi->serverRole != SERVER_STANDALONE ) {
|
||||||
game->comms = comms_make( MPPARM(mpool) util,
|
game->comms = comms_make( MPPARM(mpool) util,
|
||||||
gi->serverRole != SERVER_ISCLIENT,
|
gi->serverRole != SERVER_ISCLIENT,
|
||||||
nPlayersHere, nPlayersTotal, procs
|
nPlayersHere, nPlayersTotal, procs
|
||||||
#ifdef SET_GAMESEED
|
#ifdef SET_GAMESEED
|
||||||
, 0
|
, 0
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
# ifdef DEBUG
|
# ifdef DEBUG
|
||||||
mpool = mpool; /* quash unused formal warning */
|
mpool = mpool; /* quash unused formal warning */
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
model_setSize( game->model, gi->boardSize );
|
model_setSize( game->model, gi->boardSize );
|
||||||
server_reset( game->server,
|
server_reset( game->server,
|
||||||
#ifndef XWFEATURE_STANDALONE_ONLY
|
#ifndef XWFEATURE_STANDALONE_ONLY
|
||||||
game->comms
|
game->comms
|
||||||
#else
|
#else
|
||||||
NULL
|
NULL
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
board_reset( game->board );
|
board_reset( game->board );
|
||||||
|
|
||||||
for ( ii = 0; ii < gi->nPlayers; ++ii ) {
|
for ( ii = 0; ii < gi->nPlayers; ++ii ) {
|
||||||
gi->players[ii].secondsUsed = 0;
|
gi->players[ii].secondsUsed = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
server_prefsChanged( game->server, cp );
|
||||||
|
board_prefsChanged( game->board, cp );
|
||||||
|
result = XP_TRUE;
|
||||||
}
|
}
|
||||||
|
return result;
|
||||||
server_prefsChanged( game->server, cp );
|
|
||||||
board_prefsChanged( game->board, cp );
|
|
||||||
} /* game_reset */
|
} /* game_reset */
|
||||||
|
|
||||||
#ifdef XWFEATURE_CHANGEDICT
|
#ifdef XWFEATURE_CHANGEDICT
|
||||||
|
|
|
@ -93,8 +93,8 @@ void game_makeNewGame( MPFORMAL XWGame* game, CurGameInfo* gi,
|
||||||
,XP_U16 gameSeed
|
,XP_U16 gameSeed
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
void game_reset( MPFORMAL XWGame* game, CurGameInfo* gi, XW_UtilCtxt* util,
|
XP_Bool game_reset( MPFORMAL XWGame* game, CurGameInfo* gi, XW_UtilCtxt* util,
|
||||||
CommonPrefs* cp, const TransportProcs* procs );
|
CommonPrefs* cp, const TransportProcs* procs );
|
||||||
void game_changeDict( MPFORMAL XWGame* game, CurGameInfo* gi,
|
void game_changeDict( MPFORMAL XWGame* game, CurGameInfo* gi,
|
||||||
DictionaryCtxt* dict );
|
DictionaryCtxt* dict );
|
||||||
|
|
||||||
|
|
|
@ -169,6 +169,7 @@ INCLUDES += ${EXTRAINCS}
|
||||||
ifdef DO_GTK
|
ifdef DO_GTK
|
||||||
GTK_OBJS = \
|
GTK_OBJS = \
|
||||||
$(BUILD_PLAT_DIR)/gtkmain.o \
|
$(BUILD_PLAT_DIR)/gtkmain.o \
|
||||||
|
$(BUILD_PLAT_DIR)/gtkboard.o \
|
||||||
$(BUILD_PLAT_DIR)/gtkdraw.o \
|
$(BUILD_PLAT_DIR)/gtkdraw.o \
|
||||||
$(BUILD_PLAT_DIR)/gtkask.o \
|
$(BUILD_PLAT_DIR)/gtkask.o \
|
||||||
$(BUILD_PLAT_DIR)/gtkletterask.o \
|
$(BUILD_PLAT_DIR)/gtkletterask.o \
|
||||||
|
@ -201,6 +202,7 @@ OBJ = \
|
||||||
$(BUILD_PLAT_DIR)/linuxsms.o \
|
$(BUILD_PLAT_DIR)/linuxsms.o \
|
||||||
$(BUILD_PLAT_DIR)/linuxdict.o \
|
$(BUILD_PLAT_DIR)/linuxdict.o \
|
||||||
$(BUILD_PLAT_DIR)/linuxutl.o \
|
$(BUILD_PLAT_DIR)/linuxutl.o \
|
||||||
|
$(BUILD_PLAT_DIR)/gamesdb.o \
|
||||||
$(CURSES_OBJS) $(GTK_OBJS) $(MAIN_OBJS)
|
$(CURSES_OBJS) $(GTK_OBJS) $(MAIN_OBJS)
|
||||||
|
|
||||||
LIBS = -lm -luuid $(GPROFFLAG)
|
LIBS = -lm -luuid $(GPROFFLAG)
|
||||||
|
|
53
xwords4/linux/gamesdb.c
Normal file
53
xwords4/linux/gamesdb.c
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
/* -*-mode: C; fill-column: 78; c-basic-offset: 4; compile-command: "make MEMDEBUG=TRUE -j3"; -*- */
|
||||||
|
/*
|
||||||
|
* Copyright 2000-2012 by Eric House (xwords@eehouse.org). All rights
|
||||||
|
* reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <sqlite3.h>
|
||||||
|
|
||||||
|
#include "comtypes.h"
|
||||||
|
#include "gamesdb.h"
|
||||||
|
|
||||||
|
#define DB_NAME "games.db"
|
||||||
|
|
||||||
|
sqlite3*
|
||||||
|
openGamesDB( void )
|
||||||
|
{
|
||||||
|
sqlite3* pDb = NULL;
|
||||||
|
int result = sqlite3_open( DB_NAME, &pDb );
|
||||||
|
XP_ASSERT( SQLITE_OK == result );
|
||||||
|
|
||||||
|
const char* createStr =
|
||||||
|
"CREATE TABLE games ( "
|
||||||
|
"game BLOB"
|
||||||
|
",room VARCHAR(32)"
|
||||||
|
")";
|
||||||
|
|
||||||
|
result = sqlite3_exec( pDb, createStr, NULL, NULL, NULL );
|
||||||
|
XP_LOGF( "sqlite3_exec=>%d", result );
|
||||||
|
// XP_ASSERT( SQLITE_OK == result );
|
||||||
|
|
||||||
|
return pDb;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
closeGamesDB( sqlite3* pDb )
|
||||||
|
{
|
||||||
|
sqlite3_close( pDb );
|
||||||
|
XP_LOGF( "%s finished", __func__ );
|
||||||
|
}
|
29
xwords4/linux/gamesdb.h
Normal file
29
xwords4/linux/gamesdb.h
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
/* -*-mode: C; fill-column: 78; c-basic-offset: 4; compile-command: "make MEMDEBUG=TRUE -j3"; -*- */
|
||||||
|
/*
|
||||||
|
* Copyright 2000-2012 by Eric House (xwords@eehouse.org). All rights
|
||||||
|
* reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _GAMESDB_H_
|
||||||
|
#define _GAMESDB_H_
|
||||||
|
|
||||||
|
#include <sqlite3.h>
|
||||||
|
|
||||||
|
sqlite3* openGamesDB( void );
|
||||||
|
void closeGamesDB( sqlite3* dbp );
|
||||||
|
|
||||||
|
#endif
|
|
@ -23,7 +23,7 @@
|
||||||
#ifndef _GTKASK_H_
|
#ifndef _GTKASK_H_
|
||||||
#define _GTKASK_H_
|
#define _GTKASK_H_
|
||||||
|
|
||||||
#include "gtkmain.h"
|
#include "gtkboard.h"
|
||||||
|
|
||||||
/* Returns true for "yes" or "ok" answer, false otherwise.
|
/* Returns true for "yes" or "ok" answer, false otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#ifndef _GTKASKDICT_H_
|
#ifndef _GTKASKDICT_H_
|
||||||
#define _GTKASKDICT_H_
|
#define _GTKASKDICT_H_
|
||||||
|
|
||||||
#include "gtkmain.h"
|
#include "gtkboard.h"
|
||||||
|
|
||||||
gchar* gtkaskdict( GSList* dicts, gchar* buf, gint buflen );
|
gchar* gtkaskdict( GSList* dicts, gchar* buf, gint buflen );
|
||||||
|
|
||||||
|
|
2485
xwords4/linux/gtkboard.c
Normal file
2485
xwords4/linux/gtkboard.c
Normal file
File diff suppressed because it is too large
Load diff
176
xwords4/linux/gtkboard.h
Normal file
176
xwords4/linux/gtkboard.h
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
/* -*- mode: C; fill-column: 78; c-basic-offset: 4; -*- */
|
||||||
|
/* Copyright 1997 - 2005 by Eric House (xwords@eehouse.org) All rights
|
||||||
|
* reserved.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _GTKBOARD_H_
|
||||||
|
#define _GTKBOARD_H_
|
||||||
|
|
||||||
|
#ifdef PLATFORM_GTK
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <pango/pango-font.h>
|
||||||
|
#include <glib.h>
|
||||||
|
|
||||||
|
#include "draw.h"
|
||||||
|
#include "main.h"
|
||||||
|
#include "game.h"
|
||||||
|
#include "dictnry.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
LAYOUT_BOARD
|
||||||
|
,LAYOUT_SMALL
|
||||||
|
,LAYOUT_LARGE
|
||||||
|
,LAYOUT_NLAYOUTS
|
||||||
|
};
|
||||||
|
|
||||||
|
#define MAX_SCORE_LEN 31
|
||||||
|
|
||||||
|
typedef struct GtkDrawCtx {
|
||||||
|
DrawCtxVTable* vtable;
|
||||||
|
|
||||||
|
/* GdkDrawable* pixmap; */
|
||||||
|
GtkWidget* drawing_area;
|
||||||
|
struct GtkAppGlobals* globals;
|
||||||
|
|
||||||
|
#ifdef USE_CAIRO
|
||||||
|
cairo_t* cr;
|
||||||
|
#else
|
||||||
|
GdkGC* drawGC;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
GdkColor black;
|
||||||
|
GdkColor white;
|
||||||
|
GdkColor red; /* for pending tiles */
|
||||||
|
GdkColor tileBack; /* for pending tiles */
|
||||||
|
GdkColor cursor;
|
||||||
|
GdkColor bonusColors[4];
|
||||||
|
GdkColor playerColors[MAX_NUM_PLAYERS];
|
||||||
|
|
||||||
|
/* new for gtk 2.0 */
|
||||||
|
PangoContext* pangoContext;
|
||||||
|
GList* fontsPerSize;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
XP_UCHAR str[MAX_SCORE_LEN+1];
|
||||||
|
XP_U16 fontHt;
|
||||||
|
} scoreCache[MAX_NUM_PLAYERS];
|
||||||
|
|
||||||
|
XP_U16 trayOwner;
|
||||||
|
XP_U16 cellWidth;
|
||||||
|
XP_U16 cellHeight;
|
||||||
|
|
||||||
|
XP_Bool scoreIsVertical;
|
||||||
|
} GtkDrawCtx;
|
||||||
|
|
||||||
|
typedef struct ClientStreamRec {
|
||||||
|
XWStreamCtxt* stream;
|
||||||
|
guint key;
|
||||||
|
int sock;
|
||||||
|
} ClientStreamRec;
|
||||||
|
|
||||||
|
typedef struct GtkAppGlobals {
|
||||||
|
CommonGlobals cGlobals;
|
||||||
|
GtkWidget* window;
|
||||||
|
GtkDrawCtx* draw;
|
||||||
|
|
||||||
|
/* GdkPixmap* pixmap; */
|
||||||
|
GtkWidget* drawing_area;
|
||||||
|
|
||||||
|
GtkWidget* flip_button;
|
||||||
|
GtkWidget* zoomin_button;
|
||||||
|
GtkWidget* zoomout_button;
|
||||||
|
GtkWidget* toggle_undo_button;
|
||||||
|
GtkWidget* prevhint_button;
|
||||||
|
GtkWidget* nexthint_button;
|
||||||
|
|
||||||
|
#ifdef XWFEATURE_CHAT
|
||||||
|
GtkWidget* chat_button;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
EngineCtxt* engine;
|
||||||
|
|
||||||
|
guint idleID;
|
||||||
|
|
||||||
|
struct timeval scoreTv; /* for timer */
|
||||||
|
XP_U32 scoreTimerInterval;
|
||||||
|
|
||||||
|
GtkAdjustment* adjustment;
|
||||||
|
|
||||||
|
ClientStreamRec clientRecs[MAX_NUM_PLAYERS];
|
||||||
|
|
||||||
|
guint timerSources[NUM_TIMERS_PLUS_ONE - 1];
|
||||||
|
|
||||||
|
#ifndef XWFEATURE_STANDALONE_ONLY
|
||||||
|
XP_U16 netStatLeft, netStatTop;
|
||||||
|
XP_UCHAR stateChar;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
XP_Bool gridOn;
|
||||||
|
XP_Bool dropIncommingMsgs;
|
||||||
|
XP_Bool mouseDown;
|
||||||
|
XP_Bool altKeyDown;
|
||||||
|
#ifdef KEYBOARD_NAV
|
||||||
|
XP_Bool keyDown;
|
||||||
|
#endif
|
||||||
|
} GtkAppGlobals;
|
||||||
|
|
||||||
|
/* DictionaryCtxt* gtk_dictionary_make(); */
|
||||||
|
#define GTK_MIN_SCALE 12 /* was 14 */
|
||||||
|
|
||||||
|
#define GTK_MIN_TRAY_SCALEH 24
|
||||||
|
#define GTK_MIN_TRAY_SCALEV GTK_MIN_TRAY_SCALEH
|
||||||
|
#define GTK_TRAYPAD_WIDTH 2
|
||||||
|
|
||||||
|
#define GTK_TOP_MARGIN 0 /* was 2 */
|
||||||
|
#define GTK_BOARD_LEFT_MARGIN 2
|
||||||
|
#define GTK_TRAY_LEFT_MARGIN 2
|
||||||
|
#define GTK_SCORE_BOARD_PADDING 0
|
||||||
|
|
||||||
|
#define GTK_HOR_SCORE_LEFT (GTK_BOARD_LEFT_MARGIN)
|
||||||
|
#define GTK_HOR_SCORE_HEIGHT 12
|
||||||
|
#define GTK_TIMER_HEIGHT GTK_HOR_SCORE_HEIGHT
|
||||||
|
#define GTK_HOR_SCORE_TOP (GTK_TOP_MARGIN)
|
||||||
|
#define GTK_TIMER_PAD 10
|
||||||
|
#define GTK_VERT_SCORE_TOP (GTK_TIMER_HEIGHT + GTK_TIMER_PAD)
|
||||||
|
#define GTK_VERT_SCORE_HEIGHT ((MIN_SCALE*MAX_COLS) - GTK_TIMER_HEIGHT - \
|
||||||
|
GTK_TIMER_PAD)
|
||||||
|
#define GTK_TIMER_WIDTH 40
|
||||||
|
#define GTK_NETSTAT_WIDTH 20
|
||||||
|
#define GTK_TIMER_TOP GTK_HOR_SCORE_TOP
|
||||||
|
#define GTK_HOR_SCORE_WIDTH ((GTK_MIN_SCALE*20)-GTK_TIMER_PAD)
|
||||||
|
#define GTK_VERT_SCORE_WIDTH 40
|
||||||
|
|
||||||
|
#define GTK_BOARD_TOP (GTK_SCORE_TOP + GTK_SCORE_HEIGHT \
|
||||||
|
+ GTK_SCORE_BOARD_PADDING )
|
||||||
|
#define GTK_BOARD_LEFT (GTK_BOARD_LEFT_MARGIN)
|
||||||
|
|
||||||
|
#define GTK_TRAY_LEFT GTK_TRAY_LEFT_MARGIN
|
||||||
|
|
||||||
|
#define GTK_DIVIDER_WIDTH 5
|
||||||
|
|
||||||
|
#define GTK_BOTTOM_MARGIN GTK_TOP_MARGIN
|
||||||
|
#define GTK_RIGHT_MARGIN GTK_BOARD_LEFT_MARGIN
|
||||||
|
|
||||||
|
void initGlobals( GtkAppGlobals* globals, LaunchParams* params );
|
||||||
|
void freeGlobals( GtkAppGlobals* globals );
|
||||||
|
XP_Bool makeNewGame( GtkAppGlobals* globals );
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* PLATFORM_GTK */
|
||||||
|
|
||||||
|
#endif
|
|
@ -23,7 +23,7 @@
|
||||||
#ifdef PLATFORM_GTK
|
#ifdef PLATFORM_GTK
|
||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include "gtkmain.h"
|
#include "gtkboard.h"
|
||||||
|
|
||||||
gchar* gtkGetChatMessage( GtkAppGlobals* globals );
|
gchar* gtkGetChatMessage( GtkAppGlobals* globals );
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#ifndef _GTKCONNSDLG_H_
|
#ifndef _GTKCONNSDLG_H_
|
||||||
#define _GTKCONNSDLG_H_
|
#define _GTKCONNSDLG_H_
|
||||||
|
|
||||||
#include "gtkmain.h"
|
#include "gtkboard.h"
|
||||||
|
|
||||||
gboolean gtkConnsDlg( GtkAppGlobals* globals, CommsAddrRec* addr,
|
gboolean gtkConnsDlg( GtkAppGlobals* globals, CommsAddrRec* addr,
|
||||||
DeviceRole role, XP_Bool readOnly );
|
DeviceRole role, XP_Bool readOnly );
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
#include <gdk/gdkdrawable.h>
|
#include <gdk/gdkdrawable.h>
|
||||||
|
|
||||||
#include "gtkmain.h"
|
#include "gtkboard.h"
|
||||||
#include "draw.h"
|
#include "draw.h"
|
||||||
#include "board.h"
|
#include "board.h"
|
||||||
#include "linuxmain.h"
|
#include "linuxmain.h"
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#ifndef _GTKLETTERASK_H_
|
#ifndef _GTKLETTERASK_H_
|
||||||
#define _GTKLETTERASK_H_
|
#define _GTKLETTERASK_H_
|
||||||
|
|
||||||
#include "gtkmain.h"
|
#include "gtkboard.h"
|
||||||
|
|
||||||
XP_S16 gtkletterask( const PickInfo* pi, XP_Bool forTray,
|
XP_S16 gtkletterask( const PickInfo* pi, XP_Bool forTray,
|
||||||
const XP_UCHAR* name,
|
const XP_UCHAR* name,
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -20,154 +20,8 @@
|
||||||
#ifndef _GTKMAIN_H_
|
#ifndef _GTKMAIN_H_
|
||||||
#define _GTKMAIN_H_
|
#define _GTKMAIN_H_
|
||||||
|
|
||||||
#ifdef PLATFORM_GTK
|
|
||||||
#include <gtk/gtk.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <pango/pango-font.h>
|
|
||||||
#include <glib.h>
|
|
||||||
|
|
||||||
#include "draw.h"
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "game.h"
|
|
||||||
#include "dictnry.h"
|
|
||||||
|
|
||||||
enum {
|
int gtkmain( LaunchParams* params );
|
||||||
LAYOUT_BOARD
|
|
||||||
,LAYOUT_SMALL
|
|
||||||
,LAYOUT_LARGE
|
|
||||||
,LAYOUT_NLAYOUTS
|
|
||||||
};
|
|
||||||
|
|
||||||
#define MAX_SCORE_LEN 31
|
|
||||||
|
|
||||||
typedef struct GtkDrawCtx {
|
|
||||||
DrawCtxVTable* vtable;
|
|
||||||
|
|
||||||
/* GdkDrawable* pixmap; */
|
|
||||||
GtkWidget* drawing_area;
|
|
||||||
struct GtkAppGlobals* globals;
|
|
||||||
|
|
||||||
#ifdef USE_CAIRO
|
|
||||||
cairo_t* cr;
|
|
||||||
#else
|
|
||||||
GdkGC* drawGC;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
GdkColor black;
|
|
||||||
GdkColor white;
|
|
||||||
GdkColor red; /* for pending tiles */
|
|
||||||
GdkColor tileBack; /* for pending tiles */
|
|
||||||
GdkColor cursor;
|
|
||||||
GdkColor bonusColors[4];
|
|
||||||
GdkColor playerColors[MAX_NUM_PLAYERS];
|
|
||||||
|
|
||||||
/* new for gtk 2.0 */
|
|
||||||
PangoContext* pangoContext;
|
|
||||||
GList* fontsPerSize;
|
|
||||||
|
|
||||||
struct {
|
|
||||||
XP_UCHAR str[MAX_SCORE_LEN+1];
|
|
||||||
XP_U16 fontHt;
|
|
||||||
} scoreCache[MAX_NUM_PLAYERS];
|
|
||||||
|
|
||||||
XP_U16 trayOwner;
|
|
||||||
XP_U16 cellWidth;
|
|
||||||
XP_U16 cellHeight;
|
|
||||||
|
|
||||||
XP_Bool scoreIsVertical;
|
|
||||||
} GtkDrawCtx;
|
|
||||||
|
|
||||||
typedef struct ClientStreamRec {
|
|
||||||
XWStreamCtxt* stream;
|
|
||||||
guint key;
|
|
||||||
int sock;
|
|
||||||
} ClientStreamRec;
|
|
||||||
|
|
||||||
typedef struct GtkAppGlobals {
|
|
||||||
CommonGlobals cGlobals;
|
|
||||||
GtkWidget* window;
|
|
||||||
GtkDrawCtx* draw;
|
|
||||||
|
|
||||||
/* GdkPixmap* pixmap; */
|
|
||||||
GtkWidget* drawing_area;
|
|
||||||
|
|
||||||
GtkWidget* flip_button;
|
|
||||||
GtkWidget* zoomin_button;
|
|
||||||
GtkWidget* zoomout_button;
|
|
||||||
GtkWidget* toggle_undo_button;
|
|
||||||
GtkWidget* prevhint_button;
|
|
||||||
GtkWidget* nexthint_button;
|
|
||||||
|
|
||||||
#ifdef XWFEATURE_CHAT
|
|
||||||
GtkWidget* chat_button;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
EngineCtxt* engine;
|
|
||||||
|
|
||||||
guint idleID;
|
|
||||||
|
|
||||||
struct timeval scoreTv; /* for timer */
|
|
||||||
XP_U32 scoreTimerInterval;
|
|
||||||
|
|
||||||
GtkAdjustment* adjustment;
|
|
||||||
|
|
||||||
ClientStreamRec clientRecs[MAX_NUM_PLAYERS];
|
|
||||||
|
|
||||||
guint timerSources[NUM_TIMERS_PLUS_ONE - 1];
|
|
||||||
|
|
||||||
#ifndef XWFEATURE_STANDALONE_ONLY
|
|
||||||
XP_U16 netStatLeft, netStatTop;
|
|
||||||
XP_UCHAR stateChar;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
XP_Bool gridOn;
|
|
||||||
XP_Bool dropIncommingMsgs;
|
|
||||||
XP_Bool mouseDown;
|
|
||||||
XP_Bool altKeyDown;
|
|
||||||
#ifdef KEYBOARD_NAV
|
|
||||||
XP_Bool keyDown;
|
|
||||||
#endif
|
|
||||||
} GtkAppGlobals;
|
|
||||||
|
|
||||||
/* DictionaryCtxt* gtk_dictionary_make(); */
|
|
||||||
int gtkmain( LaunchParams* params, int argc, char *argv[] );
|
|
||||||
|
|
||||||
#define GTK_MIN_SCALE 12 /* was 14 */
|
|
||||||
|
|
||||||
#define GTK_MIN_TRAY_SCALEH 24
|
|
||||||
#define GTK_MIN_TRAY_SCALEV GTK_MIN_TRAY_SCALEH
|
|
||||||
#define GTK_TRAYPAD_WIDTH 2
|
|
||||||
|
|
||||||
#define GTK_TOP_MARGIN 0 /* was 2 */
|
|
||||||
#define GTK_BOARD_LEFT_MARGIN 2
|
|
||||||
#define GTK_TRAY_LEFT_MARGIN 2
|
|
||||||
#define GTK_SCORE_BOARD_PADDING 0
|
|
||||||
|
|
||||||
#define GTK_HOR_SCORE_LEFT (GTK_BOARD_LEFT_MARGIN)
|
|
||||||
#define GTK_HOR_SCORE_HEIGHT 12
|
|
||||||
#define GTK_TIMER_HEIGHT GTK_HOR_SCORE_HEIGHT
|
|
||||||
#define GTK_HOR_SCORE_TOP (GTK_TOP_MARGIN)
|
|
||||||
#define GTK_TIMER_PAD 10
|
|
||||||
#define GTK_VERT_SCORE_TOP (GTK_TIMER_HEIGHT + GTK_TIMER_PAD)
|
|
||||||
#define GTK_VERT_SCORE_HEIGHT ((MIN_SCALE*MAX_COLS) - GTK_TIMER_HEIGHT - \
|
|
||||||
GTK_TIMER_PAD)
|
|
||||||
#define GTK_TIMER_WIDTH 40
|
|
||||||
#define GTK_NETSTAT_WIDTH 20
|
|
||||||
#define GTK_TIMER_TOP GTK_HOR_SCORE_TOP
|
|
||||||
#define GTK_HOR_SCORE_WIDTH ((GTK_MIN_SCALE*20)-GTK_TIMER_PAD)
|
|
||||||
#define GTK_VERT_SCORE_WIDTH 40
|
|
||||||
|
|
||||||
#define GTK_BOARD_TOP (GTK_SCORE_TOP + GTK_SCORE_HEIGHT \
|
|
||||||
+ GTK_SCORE_BOARD_PADDING )
|
|
||||||
#define GTK_BOARD_LEFT (GTK_BOARD_LEFT_MARGIN)
|
|
||||||
|
|
||||||
#define GTK_TRAY_LEFT GTK_TRAY_LEFT_MARGIN
|
|
||||||
|
|
||||||
#define GTK_DIVIDER_WIDTH 5
|
|
||||||
|
|
||||||
#define GTK_BOTTOM_MARGIN GTK_TOP_MARGIN
|
|
||||||
#define GTK_RIGHT_MARGIN GTK_BOARD_LEFT_MARGIN
|
|
||||||
|
|
||||||
#endif /* PLATFORM_GTK */
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -22,13 +22,14 @@
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
#include "linuxutl.h"
|
#include "linuxutl.h"
|
||||||
|
#include "linuxmain.h"
|
||||||
#include "gtknewgame.h"
|
#include "gtknewgame.h"
|
||||||
#include "strutils.h"
|
#include "strutils.h"
|
||||||
#include "nwgamest.h"
|
#include "nwgamest.h"
|
||||||
#include "gtkconnsdlg.h"
|
#include "gtkconnsdlg.h"
|
||||||
#include "gtkutils.h"
|
#include "gtkutils.h"
|
||||||
|
|
||||||
#define MAX_SIZE_CHOICES 10
|
#define MAX_SIZE_CHOICES 32
|
||||||
|
|
||||||
typedef struct GtkNewGameState {
|
typedef struct GtkNewGameState {
|
||||||
GtkAppGlobals* globals;
|
GtkAppGlobals* globals;
|
||||||
|
@ -43,6 +44,7 @@ typedef struct GtkNewGameState {
|
||||||
XP_Bool fireConnDlg;
|
XP_Bool fireConnDlg;
|
||||||
gboolean isNewGame;
|
gboolean isNewGame;
|
||||||
short nCols; /* for board size */
|
short nCols; /* for board size */
|
||||||
|
gchar* dict;
|
||||||
|
|
||||||
#ifndef XWFEATURE_STANDALONE_ONLY
|
#ifndef XWFEATURE_STANDALONE_ONLY
|
||||||
GtkWidget* remoteChecks[MAX_NUM_PLAYERS];
|
GtkWidget* remoteChecks[MAX_NUM_PLAYERS];
|
||||||
|
@ -153,6 +155,14 @@ size_combo_changed( GtkComboBox* combo, gpointer gp )
|
||||||
}
|
}
|
||||||
} /* size_combo_changed */
|
} /* size_combo_changed */
|
||||||
|
|
||||||
|
static void
|
||||||
|
dict_combo_changed( GtkComboBox* combo, gpointer gp )
|
||||||
|
{
|
||||||
|
GtkNewGameState* state = (GtkNewGameState*)gp;
|
||||||
|
state->dict = gtk_combo_box_get_active_text( GTK_COMBO_BOX(combo) );
|
||||||
|
XP_LOGF( "got dict: %s", state->dict );
|
||||||
|
} /* size_combo_changed */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
handle_ok( GtkWidget* XP_UNUSED(widget), gpointer closure )
|
handle_ok( GtkWidget* XP_UNUSED(widget), gpointer closure )
|
||||||
{
|
{
|
||||||
|
@ -199,6 +209,7 @@ makeNewGameDialog( GtkNewGameState* state )
|
||||||
#endif
|
#endif
|
||||||
GtkWidget* nPlayersCombo;
|
GtkWidget* nPlayersCombo;
|
||||||
GtkWidget* boardSizeCombo;
|
GtkWidget* boardSizeCombo;
|
||||||
|
GtkWidget* dictCombo;
|
||||||
CurGameInfo* gi;
|
CurGameInfo* gi;
|
||||||
short ii;
|
short ii;
|
||||||
|
|
||||||
|
@ -334,6 +345,17 @@ makeNewGameDialog( GtkNewGameState* state )
|
||||||
|
|
||||||
gtk_box_pack_start( GTK_BOX(hbox), gtk_label_new("Dictionary: "),
|
gtk_box_pack_start( GTK_BOX(hbox), gtk_label_new("Dictionary: "),
|
||||||
FALSE, TRUE, 0 );
|
FALSE, TRUE, 0 );
|
||||||
|
dictCombo = gtk_combo_box_new_text();
|
||||||
|
g_signal_connect( GTK_OBJECT(dictCombo), "changed",
|
||||||
|
G_CALLBACK(dict_combo_changed), state );
|
||||||
|
gtk_widget_show( dictCombo );
|
||||||
|
gtk_box_pack_start( GTK_BOX(hbox), dictCombo, FALSE, TRUE, 0 );
|
||||||
|
|
||||||
|
GSList* dicts = listDicts( state->globals->cGlobals.params );
|
||||||
|
for ( GSList* iter = dicts; !!iter; iter = iter->next ) {
|
||||||
|
gtk_combo_box_append_text( GTK_COMBO_BOX(dictCombo), iter->data );
|
||||||
|
}
|
||||||
|
g_slist_free( dicts );
|
||||||
|
|
||||||
if ( !!gi->dictName ) {
|
if ( !!gi->dictName ) {
|
||||||
gtk_box_pack_start( GTK_BOX(hbox),
|
gtk_box_pack_start( GTK_BOX(hbox),
|
||||||
|
@ -558,6 +580,9 @@ newGameDialog( GtkAppGlobals* globals, CommsAddrRec* addr, XP_Bool isNewGame,
|
||||||
if ( newg_store( state.newGameCtxt, &globals->cGlobals.params->gi,
|
if ( newg_store( state.newGameCtxt, &globals->cGlobals.params->gi,
|
||||||
XP_TRUE ) ) {
|
XP_TRUE ) ) {
|
||||||
globals->cGlobals.params->gi.boardSize = state.nCols;
|
globals->cGlobals.params->gi.boardSize = state.nCols;
|
||||||
|
replaceStringIfDifferent( globals->cGlobals.params->util->mpool,
|
||||||
|
&globals->cGlobals.params->gi.dictName,
|
||||||
|
state.dict );
|
||||||
} else {
|
} else {
|
||||||
/* Do it again if we warned user of inconsistency. */
|
/* Do it again if we warned user of inconsistency. */
|
||||||
state.revert = XP_TRUE;
|
state.revert = XP_TRUE;
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#ifndef _GTKNEWGAME_H_
|
#ifndef _GTKNEWGAME_H_
|
||||||
#define _GTKNEWGAME_H_
|
#define _GTKNEWGAME_H_
|
||||||
|
|
||||||
#include "gtkmain.h"
|
#include "gtkboard.h"
|
||||||
|
|
||||||
gboolean newGameDialog( GtkAppGlobals* globals, CommsAddrRec* addr,
|
gboolean newGameDialog( GtkAppGlobals* globals, CommsAddrRec* addr,
|
||||||
XP_Bool isNewGame, XP_Bool fireConnDlg );
|
XP_Bool isNewGame, XP_Bool fireConnDlg );
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#ifndef _GTKNTILESASK_H_
|
#ifndef _GTKNTILESASK_H_
|
||||||
#define _GTKNTILESASK_H_
|
#define _GTKNTILESASK_H_
|
||||||
|
|
||||||
#include "gtkmain.h"
|
#include "gtkboard.h"
|
||||||
|
|
||||||
XP_U16 askNTiles( XP_U16 nTilesMax, XP_U16 deflt );
|
XP_U16 askNTiles( XP_U16 nTilesMax, XP_U16 deflt );
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#ifndef _GTKUTILS_H_
|
#ifndef _GTKUTILS_H_
|
||||||
#define _GTKUTILS_H_
|
#define _GTKUTILS_H_
|
||||||
|
|
||||||
#include "gtkmain.h"
|
#include "gtkboard.h"
|
||||||
|
|
||||||
GtkWidget* makeButton( char* text, GCallback func, gpointer data );
|
GtkWidget* makeButton( char* text, GCallback func, gpointer data );
|
||||||
GtkWidget* makeLabeledField( const char* labelText, GtkWidget** field );
|
GtkWidget* makeLabeledField( const char* labelText, GtkWidget** field );
|
||||||
|
|
|
@ -61,6 +61,7 @@
|
||||||
# include "cursesmain.h"
|
# include "cursesmain.h"
|
||||||
#endif
|
#endif
|
||||||
#ifdef PLATFORM_GTK
|
#ifdef PLATFORM_GTK
|
||||||
|
# include "gtkboard.h"
|
||||||
# include "gtkmain.h"
|
# include "gtkmain.h"
|
||||||
#endif
|
#endif
|
||||||
#include "model.h"
|
#include "model.h"
|
||||||
|
@ -1214,6 +1215,7 @@ static void
|
||||||
tmp_noop_sigintterm( int XP_UNUSED(sig) )
|
tmp_noop_sigintterm( int XP_UNUSED(sig) )
|
||||||
{
|
{
|
||||||
LOG_FUNC();
|
LOG_FUNC();
|
||||||
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef XWFEATURE_WALKDICT
|
#ifdef XWFEATURE_WALKDICT
|
||||||
|
@ -1505,6 +1507,39 @@ listDicts( const LaunchParams *params )
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
initParams( LaunchParams* params )
|
||||||
|
{
|
||||||
|
memset( params, 0, sizeof(*params) );
|
||||||
|
|
||||||
|
params->util = malloc( sizeof(params->util) );
|
||||||
|
|
||||||
|
XP_MEMSET( params->util, 0, sizeof(params->util) );
|
||||||
|
|
||||||
|
#ifdef MEM_DEBUG
|
||||||
|
params->util->mpool = mpool_make();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
params->vtMgr = make_vtablemgr(MPPARM_NOCOMMA(params->util->mpool));
|
||||||
|
linux_util_vt_init( MPPARM(params->util->mpool) params->util );
|
||||||
|
#ifndef XWFEATURE_STANDALONE_ONLY
|
||||||
|
params->util->vtable->m_util_informMissing = linux_util_informMissing;
|
||||||
|
params->util->vtable->m_util_addrChange = linux_util_addrChange;
|
||||||
|
params->util->vtable->m_util_setIsServer = linux_util_setIsServer;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
freeParams( LaunchParams* params )
|
||||||
|
{
|
||||||
|
vtmgr_destroy( MPPARM(params->util->mpool) params->vtMgr );
|
||||||
|
linux_util_vt_destroy( params->util );
|
||||||
|
|
||||||
|
mpool_destroy( params->util->mpool );
|
||||||
|
|
||||||
|
free( params->util );
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main( int argc, char** argv )
|
main( int argc, char** argv )
|
||||||
{
|
{
|
||||||
|
@ -1560,17 +1595,7 @@ main( int argc, char** argv )
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
memset( &mainParams, 0, sizeof(mainParams) );
|
initParams( &mainParams );
|
||||||
|
|
||||||
mainParams.util = malloc( sizeof(*mainParams.util) );
|
|
||||||
XP_MEMSET( mainParams.util, 0, sizeof(*mainParams.util) );
|
|
||||||
|
|
||||||
#ifdef MEM_DEBUG
|
|
||||||
mainParams.util->mpool = mpool_make();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
mainParams.vtMgr = make_vtablemgr(MPPARM_NOCOMMA(mainParams.util->mpool));
|
|
||||||
|
|
||||||
/* fprintf( stdout, "press <RET> to start\n" ); */
|
/* fprintf( stdout, "press <RET> to start\n" ); */
|
||||||
/* (void)fgetc( stdin ); */
|
/* (void)fgetc( stdin ); */
|
||||||
|
|
||||||
|
@ -2074,14 +2099,6 @@ main( int argc, char** argv )
|
||||||
|
|
||||||
mainParams.util->gameInfo = &mainParams.gi;
|
mainParams.util->gameInfo = &mainParams.gi;
|
||||||
|
|
||||||
linux_util_vt_init( MPPARM(mainParams.util->mpool) mainParams.util );
|
|
||||||
|
|
||||||
#ifndef XWFEATURE_STANDALONE_ONLY
|
|
||||||
mainParams.util->vtable->m_util_informMissing = linux_util_informMissing;
|
|
||||||
mainParams.util->vtable->m_util_addrChange = linux_util_addrChange;
|
|
||||||
mainParams.util->vtable->m_util_setIsServer = linux_util_setIsServer;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
srandom( seed ); /* init linux random number generator */
|
srandom( seed ); /* init linux random number generator */
|
||||||
XP_LOGF( "seeded srandom with %d", seed );
|
XP_LOGF( "seeded srandom with %d", seed );
|
||||||
|
|
||||||
|
@ -2114,19 +2131,14 @@ main( int argc, char** argv )
|
||||||
#endif
|
#endif
|
||||||
} else if ( !useCurses ) {
|
} else if ( !useCurses ) {
|
||||||
#if defined PLATFORM_GTK
|
#if defined PLATFORM_GTK
|
||||||
gtkmain( &mainParams, argc, argv );
|
gtk_init( &argc, &argv );
|
||||||
|
gtkmain( &mainParams );
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
usage( argv[0], "rtfm" );
|
usage( argv[0], "rtfm" );
|
||||||
}
|
}
|
||||||
|
|
||||||
vtmgr_destroy( MPPARM(mainParams.util->mpool) mainParams.vtMgr );
|
freeParams( &mainParams );
|
||||||
|
|
||||||
linux_util_vt_destroy( mainParams.util );
|
|
||||||
|
|
||||||
mpool_destroy( mainParams.util->mpool );
|
|
||||||
|
|
||||||
free( mainParams.util );
|
|
||||||
|
|
||||||
XP_LOGF( "%s exiting main", argv[0] );
|
XP_LOGF( "%s exiting main", argv[0] );
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -94,4 +94,7 @@ void setOneSecondTimer( CommonGlobals* cGlobals );
|
||||||
# define setOneSecondTimer( cGlobals )
|
# define setOneSecondTimer( cGlobals )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void initParams( LaunchParams* params );
|
||||||
|
void freeParams( LaunchParams* params );
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue