Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/boards
diff options
context:
space:
mode:
Diffstat (limited to 'src/boards')
-rw-r--r--src/boards/Makefile.am100
-rw-r--r--src/boards/advanced_colors.c8
-rw-r--r--src/boards/algebra.c6
-rw-r--r--src/boards/algebra_guesscount.c6
-rw-r--r--src/boards/awele.c14
-rw-r--r--src/boards/awele_alphaBeta.c2
-rw-r--r--src/boards/awele_utils.c2
-rw-r--r--src/boards/click_on_letter.c6
-rw-r--r--src/boards/clickgame.c6
-rw-r--r--src/boards/clockgame.c10
-rw-r--r--src/boards/colors.c6
-rw-r--r--src/boards/crane.c4
-rw-r--r--src/boards/enumerate.c6
-rw-r--r--src/boards/erase.c4
-rw-r--r--src/boards/fifteen.c5
-rw-r--r--src/boards/gletters.c4
-rw-r--r--src/boards/gtans.c8
-rw-r--r--src/boards/gtans_support.c13
-rw-r--r--src/boards/hanoi.c8
-rw-r--r--src/boards/imageid.c2
-rw-r--r--src/boards/leftright.c2
-rw-r--r--src/boards/machpuzzle.c2
-rw-r--r--src/boards/magic_hat.c8
-rw-r--r--src/boards/maze.c8
-rw-r--r--src/boards/memory.c10
-rw-r--r--src/boards/missingletter.c2
-rw-r--r--src/boards/money.c8
-rw-r--r--src/boards/paratrooper.c6
-rw-r--r--src/boards/planegame.c6
-rw-r--r--src/boards/py-mod-gcompris.c4
-rw-r--r--src/boards/railroad.c4
-rw-r--r--src/boards/read_colors.c6
-rw-r--r--src/boards/reading.c6
-rw-r--r--src/boards/reversecount.c4
-rw-r--r--src/boards/shapegame.c6
-rw-r--r--src/boards/smallnumbers.c6
-rw-r--r--src/boards/submarine.c4
-rw-r--r--src/boards/superbrain.c4
-rw-r--r--src/boards/target.c4
-rw-r--r--src/boards/wordsgame.c2
40 files changed, 160 insertions, 162 deletions
diff --git a/src/boards/Makefile.am b/src/boards/Makefile.am
index 0e8e04a..cd27119 100644
--- a/src/boards/Makefile.am
+++ b/src/boards/Makefile.am
@@ -23,6 +23,15 @@ cairo_ldflags =
cairo_cflags =
endif
+if PLATFORM_WIN32
+shared = -shared
+no_undefined = -no-undefined
+gc_libs = $(GCOMPRIS_LIBS)
+else
+shared =
+no_undefined =
+gc_libs
+endif
SUBDIRS= $(python_subdir)
@@ -80,192 +89,193 @@ INCLUDES = \
$(PYTHON_CFLAGS) \
$(PYGTK_CFLAGS) \
$(sqlite_cflags) \
- $(cairo_cflags)
+ $(cairo_cflags) \
+ -DBOARD_DLL_EXPORT
-libdraw_la_LDFLAGS = -module -avoid-version
+libdraw_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libdraw_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libdraw_la_SOURCES = draw.c
-libawele_la_LDFLAGS = -module -avoid-version
+libawele_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libawele_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libawele_la_SOURCES = awele.c awele_alphaBeta.c awele_utils.c awele_utils.h awele.h
-libcrane_la_LDFLAGS = -module -avoid-version
+libcrane_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libcrane_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libcrane_la_SOURCES = crane.c
-libmenu_la_LDFLAGS = -module -avoid-version
+libmenu_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libmenu_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libmenu_la_SOURCES = menu2.c
-libclickgame_la_LDFLAGS = -module -avoid-version
+libclickgame_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libclickgame_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libclickgame_la_SOURCES = clickgame.c
-libalgebra_la_LDFLAGS = -module -avoid-version
+libalgebra_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libalgebra_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libalgebra_la_SOURCES = algebra.c
-libclockgame_la_LDFLAGS = -module -avoid-version
+libclockgame_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libclockgame_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libclockgame_la_SOURCES = clockgame.c
-libshapegame_la_LDFLAGS = -module -avoid-version
+libshapegame_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) $(XML_LIBS)
libshapegame_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libshapegame_la_SOURCES = shapegame.c
-libwordsgame_la_LDFLAGS = -module -avoid-version
+libwordsgame_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libwordsgame_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libwordsgame_la_SOURCES = wordsgame.c
-libgletters_la_LDFLAGS = -module -avoid-version
+libgletters_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libgletters_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libgletters_la_SOURCES = gletters.c
-libgtans_la_LDFLAGS = -module -avoid-version
+libgtans_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libgtans_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libgtans_la_SOURCES = gtans.c gtans_interface.c gtans_support.c gtans_callbacks.c \
gtans_callbacks.h gtans.h gtans_interface.h gtans_support.h
-libplanegame_la_LDFLAGS = -module -avoid-version
+libplanegame_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libplanegame_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libplanegame_la_SOURCES = planegame.c
-libsmallnumbers_la_LDFLAGS = -module -avoid-version
+libsmallnumbers_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libsmallnumbers_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libsmallnumbers_la_SOURCES = smallnumbers.c
-libparatrooper_la_LDFLAGS = -module -avoid-version
+libparatrooper_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libparatrooper_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libparatrooper_la_SOURCES = paratrooper.c
-libreading_la_LDFLAGS = -module -avoid-version
+libreading_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libreading_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libreading_la_SOURCES = reading.c
-libmemory_la_LDFLAGS = -module -avoid-version
+libmemory_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libmemory_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libmemory_la_SOURCES = memory.c
-libimageid_la_LDFLAGS = -module -avoid-version
+libimageid_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) $(XML_LIBS)
libimageid_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libimageid_la_SOURCES = imageid.c
-libmissingletter_la_LDFLAGS = -module -avoid-version
+libmissingletter_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) $(XML_LIBS)
libmissingletter_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libmissingletter_la_SOURCES = missingletter.c
-libclick_on_letter_la_LDFLAGS = -module -avoid-version
+libclick_on_letter_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libclick_on_letter_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libclick_on_letter_la_SOURCES = click_on_letter.c
-librailroad_la_LDFLAGS = -module -avoid-version
+librailroad_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
librailroad_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
librailroad_la_SOURCES = railroad.c
-liberase_la_LDFLAGS = -module -avoid-version
+liberase_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
liberase_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
liberase_la_SOURCES = erase.c
-libalgebra_guesscount_la_LDFLAGS = -module -avoid-version
+libalgebra_guesscount_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libalgebra_guesscount_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libalgebra_guesscount_la_SOURCES = algebra_guesscount.c
-libleftright_la_LDFLAGS = -module -avoid-version
+libleftright_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libleftright_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libleftright_la_SOURCES = leftright.c
-libcolors_la_LDFLAGS = -module -avoid-version
+libcolors_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libcolors_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libcolors_la_SOURCES = colors.c
-libtarget_la_LDFLAGS = -module -avoid-version
+libtarget_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libtarget_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libtarget_la_SOURCES = target.c
-libmagic_hat_la_LDFLAGS = -module -avoid-version
+libmagic_hat_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libmagic_hat_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libmagic_hat_la_SOURCES = magic_hat.c
-libmaze_la_LDFLAGS = -module -avoid-version
+libmaze_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libmaze_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libmaze_la_SOURCES = maze.c
-libreversecount_la_LDFLAGS = -module -avoid-version
+libreversecount_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libreversecount_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libreversecount_la_SOURCES = reversecount.c
-libcanal_lock_la_LDFLAGS = -module -avoid-version
+libcanal_lock_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libcanal_lock_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libcanal_lock_la_SOURCES = canal_lock.c
-libadvanced_colors_la_LDFLAGS = -module -avoid-version
+libadvanced_colors_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) $(XML_LIBS)
libadvanced_colors_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libadvanced_colors_la_SOURCES = advanced_colors.c
-libsuperbrain_la_LDFLAGS = -module -avoid-version
+libsuperbrain_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libsuperbrain_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libsuperbrain_la_SOURCES = superbrain.c
-libread_colors_la_LDFLAGS = -module -avoid-version
+libread_colors_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs) $(XML_LIBS)
libread_colors_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libread_colors_la_SOURCES = read_colors.c
-libchess_la_LDFLAGS = -module -avoid-version
+libchess_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libchess_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libchess_la_SOURCES = chess.c chess_position.c chess_notation.c \
chess_notation.h chess_position.h chess_makros.h
-libenumerate_la_LDFLAGS = -module -avoid-version
+libenumerate_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libenumerate_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libenumerate_la_SOURCES = enumerate.c
-libmoney_la_LDFLAGS = -module -avoid-version
+libmoney_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libmoney_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libmoney_la_SOURCES = money.c money_widget.c money_widget.h
-libtraffic_la_LDFLAGS = -module -avoid-version
+libtraffic_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libtraffic_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libtraffic_la_SOURCES = traffic.c traffic.h
-libmachpuzzle_la_LDFLAGS = -module -avoid-version
+libmachpuzzle_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libmachpuzzle_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libmachpuzzle_la_SOURCES = machpuzzle.c
-libsubmarine_la_LDFLAGS = -module -avoid-version
+libsubmarine_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libsubmarine_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libsubmarine_la_SOURCES = submarine.c
-libhanoi_la_LDFLAGS = -module -avoid-version
+libhanoi_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libhanoi_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libhanoi_la_SOURCES = hanoi.c
-libhanoi_real_la_LDFLAGS = -module -avoid-version
+libhanoi_real_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libhanoi_real_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libhanoi_real_la_SOURCES = hanoi_real.c
-libfifteen_la_LDFLAGS = -module -avoid-version
+libfifteen_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libfifteen_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libfifteen_la_SOURCES = fifteen.c
-libwordprocessor_la_LDFLAGS = -module -avoid-version
+libwordprocessor_la_LDFLAGS = $(shared) $(no_undefined) -module -avoid-version $(gc_libs)
libwordprocessor_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
libwordprocessor_la_SOURCES = wordprocessor.c
-libpython_la_LDFLAGS = -export-dynamic -module -avoid-version $(PYTHON_LIBS)
+libpython_la_LDFLAGS = -export-dynamic $(shared) $(no_undefined) -module -avoid-version $(gc_libs) $(PYTHON_LIBS)
libpython_la_LIBADD = $(top_builddir)/src/gcompris/libgcompris-1.la
-libpython_la_CFLAGS = -fno-strict-aliasing
+libpython_la_CFLAGS = -fno-strict-aliasing $(PYGTK_CFLAGS)
libpython_la_SOURCES = python.c \
canvas.c canvasmodule.c \
py-gcompris-board.c py-gcompris-board.h \
diff --git a/src/boards/advanced_colors.c b/src/boards/advanced_colors.c
index fa9a581..1362af8 100644
--- a/src/boards/advanced_colors.c
+++ b/src/boards/advanced_colors.c
@@ -196,7 +196,7 @@ static gboolean is_our_board (GcomprisBoard *gcomprisBoard) {
* =====================================================================*/
static void colors_next_level() {
gchar *str = NULL;
- int i;
+ int i, list_length;
GList * list = NULL;
int * item;
@@ -215,8 +215,8 @@ static void colors_next_level() {
for (i=0; i<LAST_COLOR; i++)
list = g_list_append(list, GINT_TO_POINTER(i));
- while ((g_list_length(list) > 0)) {
- i = RAND(0,g_list_length(list)-1);
+ while((list_length = g_list_length(list))) {
+ i = list_length == 1 ? 0 : g_random_int_range(0,g_list_length(list)-1);
item = g_list_nth_data(list, i);
listColors = g_list_append(listColors, item);
list = g_list_remove(list, item);
@@ -288,7 +288,7 @@ static GnomeCanvasItem *colors_create_item(GnomeCanvasGroup *parent) {
g_free(str);
gnome_canvas_item_hide(highlight_image_item);
- i = RAND(0,LAST_COLOR);
+ i = g_random_int_range(0,LAST_COLOR);
gdk_pixbuf_unref(highlight_pixmap);
diff --git a/src/boards/algebra.c b/src/boards/algebra.c
index 4075692..691d653 100644
--- a/src/boards/algebra.c
+++ b/src/boards/algebra.c
@@ -709,7 +709,7 @@ item_event(GnomeCanvasItem *item, GdkEvent *event, gpointer data)
static gint get_operand()
{
gint j = 10;
- gint i = (1+rand()%10);
+ gint i = (1+g_random_int()%10);
// Get the next free slot
while(operation_done[i]==TRUE && j>=0)
@@ -781,8 +781,8 @@ static void get_random_number(guint *first_operand, guint *second_operand)
min = 1;
max = 10;
}
- *second_operand = (min+rand()%(max-min+1));
- *first_operand = *second_operand*(min+rand()%max);
+ *second_operand = (min+g_random_int()%(max-min+1));
+ *first_operand = *second_operand*(min+g_random_int()%max);
break;
default:
g_error("Bad Operation");
diff --git a/src/boards/algebra_guesscount.c b/src/boards/algebra_guesscount.c
index 726e636..722c632 100644
--- a/src/boards/algebra_guesscount.c
+++ b/src/boards/algebra_guesscount.c
@@ -334,7 +334,7 @@ static int generate_numbers() {
gboolean minus, divide;
for (i=0; i<gcomprisBoard->level+1; i++) {
- j = RAND(0,NUM_VALUES-1);
+ j = g_random_int_range(0,NUM_VALUES-1);
answer_num_index[i] = j;
}
@@ -350,7 +350,7 @@ static int generate_numbers() {
}
r = 2 + minus + divide;
- switch (RAND(1,r)) {
+ switch (g_random_int_range(1,r)) {
case 1 :
answer_oper[i] = '+';
result += num_values[answer_num_index[i+1]];
@@ -377,7 +377,7 @@ static int generate_numbers() {
}
break;
case 4 :
- if ( RAND(0,1) == 0) {
+ if ( g_random_int_range(0,1) == 0) {
answer_oper[i] = '-';
result -= num_values[answer_num_index[i+1]];
g_assert(result >= 0);
diff --git a/src/boards/awele.c b/src/boards/awele.c
index 574fc90..a03f757 100644
--- a/src/boards/awele.c
+++ b/src/boards/awele.c
@@ -16,8 +16,6 @@
#include <awele_utils.h>
#include <awele.h>
#include <string.h>
-#include <unistd.h>
-
static GcomprisBoard *gcomprisBoard = NULL;
static gboolean board_paused = TRUE;
@@ -624,17 +622,17 @@ initBoardGraphics (GRAPHICS_ELT * graphsElt)
j < staticAwale->board[i] && idxTabBeans < NBTOTALBEAN;
j++, idxTabBeans++)
{
- k = 0 + rand () % 4;
+ k = 0 + g_random_int() % 4;
graphsElt->ptBeansHoleLink[idxTabBeans].beanPixbuf =
gnome_canvas_item_new (boardRootItem,
gnome_canvas_pixbuf_get_type
(), "x",
(double) caseCoord[i] +
- rand () % 50, "y",
+ g_random_int() % 50, "y",
(double) (((i <
6) ? 260 :
130) +
- rand () %
+ g_random_int() %
60),
"pixbuf",
graphsElt->
@@ -858,15 +856,15 @@ updateNbBeans (int alpha)
j++, idxTabBeans++)
{
- k = 0 + rand () % 4;
+ k = 0 + g_random_int() % 4;
gnome_canvas_item_set (ptBeansHoleLink[idxTabBeans].
beanPixbuf, "x",
(double) caseCoord[i] +
- rand () % 50, "y",
+ g_random_int() % 50, "y",
(double) (((i <
6) ? 260 : 130) +
- rand () % 60), NULL);
+ g_random_int() % 60), NULL);
ptBeansHoleLink[idxTabBeans].hole = i;
}
diff --git a/src/boards/awele_alphaBeta.c b/src/boards/awele_alphaBeta.c
index 418856b..567193d 100644
--- a/src/boards/awele_alphaBeta.c
+++ b/src/boards/awele_alphaBeta.c
@@ -73,7 +73,7 @@ GNode *firstChild(GNode *node)
return NULL;
gint i;
- rand_play = RAND(1, 5);
+ rand_play = g_random_int_range(1, 5);
for (i = 0 ; i < 6; i++)
{
diff --git a/src/boards/awele_utils.c b/src/boards/awele_utils.c
index 368503c..f2d5982 100644
--- a/src/boards/awele_utils.c
+++ b/src/boards/awele_utils.c
@@ -139,7 +139,7 @@ short int randplay(AWALE * a)
AWALE *tmp = NULL;
do {
- i = 6 + rand() % 6;
+ i = 6 + g_random_int() % 6;
} while (a->board[i] == 0 && !(tmp = moveAwale(i, a)));
g_free(tmp);
diff --git a/src/boards/click_on_letter.c b/src/boards/click_on_letter.c
index a5a2e0b..409d1cc 100644
--- a/src/boards/click_on_letter.c
+++ b/src/boards/click_on_letter.c
@@ -353,7 +353,7 @@ static GnomeCanvasItem *click_on_letter_create_item(GnomeCanvasGroup *parent)
g_assert(number_of_letters<=length_of_aphabet); // because we must set unique letter on every "vagon"
for (i=0;i<number_of_letters;i++){
- numbers[i]=((int)(((float)length_of_aphabet)*rand()/(RAND_MAX+1.0)));
+ numbers[i]= g_random_int_range(0, number_of_letters);
// check that the letter has not been taken yet
for(j=0;j<i;j++){
@@ -378,7 +378,7 @@ static GnomeCanvasItem *click_on_letter_create_item(GnomeCanvasGroup *parent)
case 2 : letters[i]=g_strndup(copy_from,copy_to-copy_from); break;
case 3 : letters[i]=g_utf8_strup(copy_from,copy_to-copy_from); break;
default :
- if ( rand() > (RAND_MAX/2) )
+ if ( g_random_boolean() )
letters[i]=g_strndup(copy_from,copy_to-copy_from);
else
letters[i]=g_utf8_strup(copy_from,copy_to-copy_from);
@@ -387,7 +387,7 @@ static GnomeCanvasItem *click_on_letter_create_item(GnomeCanvasGroup *parent)
}
/* */
- right_position = ((int)(((float)number_of_letters)*rand()/(RAND_MAX+1.0)));
+ right_position = g_random_int_range(0,number_of_letters);
g_assert(right_position >= 0 && right_position < number_of_letters);
right_letter = g_utf8_strdown(letters[right_position],-1);
diff --git a/src/boards/clickgame.c b/src/boards/clickgame.c
index efa8a3a..e1351b6 100644
--- a/src/boards/clickgame.c
+++ b/src/boards/clickgame.c
@@ -455,7 +455,7 @@ static FishItem *clickgame_create_item(GnomeCanvasGroup *parent)
fishitem = g_malloc(sizeof(FishItem));
fishitem->currentItem = 0;
- fishitem->speed = (double)(rand()%(60))/10 - 3;
+ fishitem->speed = (double)(g_random_int()%(60))/10 - 3;
fishitem->item_list = NULL;
pixmap = (GdkPixbuf *)g_list_nth_data(imagelist, 0);
@@ -478,7 +478,7 @@ static FishItem *clickgame_create_item(GnomeCanvasGroup *parent)
gnome_canvas_item_new (parent,
gnome_canvas_group_get_type (),
"x", x,
- "y", (double)(rand()%(gcomprisBoard->height-
+ "y", (double)(g_random_int()%(gcomprisBoard->height-
(guint)(gdk_pixbuf_get_height(pixmap)*
imageZoom))),
NULL);
@@ -709,7 +709,7 @@ static void load_random_pixmap()
gchar *str = NULL;
gboolean cont = TRUE;
- i=rand()%(NUMBER_OF_IMAGES);
+ i=g_random_int()%(NUMBER_OF_IMAGES);
/* First image */
j=0;
diff --git a/src/boards/clockgame.c b/src/boards/clockgame.c
index eac8802..30c096e 100644
--- a/src/boards/clockgame.c
+++ b/src/boards/clockgame.c
@@ -726,21 +726,21 @@ item_event(GnomeCanvasItem *item, GdkEvent *event, gpointer data)
static void get_random_hour(GcomprisTime *time)
{
- time->hour=rand()%12;
+ time->hour=g_random_int()%12;
if(gcomprisBoard->level>3)
- time->second=rand()%60;
+ time->second=g_random_int()%60;
else time->second=0;
- time->minute=rand()%60;
+ time->minute=g_random_int()%60;
switch(gcomprisBoard->level)
{
case 1:
- time->minute=rand()%4*15;
+ time->minute=g_random_int()%4*15;
break;
case 2:
- time->minute=rand()%12*5;
+ time->minute=g_random_int()%12*5;
break;
default:
break;
diff --git a/src/boards/colors.c b/src/boards/colors.c
index 8331b29..46cf4a8 100644
--- a/src/boards/colors.c
+++ b/src/boards/colors.c
@@ -211,7 +211,7 @@ static void start_board (GcomprisBoard *agcomprisBoard) {
GcomprisProperties *properties = gc_prop_get();
GList * list = NULL;
int * item;
- int i;
+ int i, list_length;
GHashTable *config = gc_db_get_board_conf();
@@ -239,8 +239,8 @@ static void start_board (GcomprisBoard *agcomprisBoard) {
for (i=0; i<LAST_COLOR; i++)
list = g_list_append(list, GINT_TO_POINTER(i));
- while ((g_list_length(list) > 0)) {
- i = RAND(0,g_list_length(list)-1);
+ while ((list_length = g_list_length(list))) {
+ i = list_length == 1 ? 0 : g_random_int_range(0,g_list_length(list)-1);
item = g_list_nth_data(list, i);
listColors = g_list_append(listColors, item);
list = g_list_remove(list, item);
diff --git a/src/boards/crane.c b/src/boards/crane.c
index 5db70d1..118a01b 100644
--- a/src/boards/crane.c
+++ b/src/boards/crane.c
@@ -696,8 +696,8 @@ void shuffle_list(int list[], int size) {
for (i = 0 ; i < size ; i++) {
- rand1 = RAND(0, size-1);
- rand2 = RAND(0, size-1);
+ rand1 = g_random_int_range(0, size-1);
+ rand2 = g_random_int_range(0, size-1);
buffer = list[rand2];
list[rand2] = list[rand1];
diff --git a/src/boards/enumerate.c b/src/boards/enumerate.c
index f05e604..e4474dc 100644
--- a/src/boards/enumerate.c
+++ b/src/boards/enumerate.c
@@ -377,15 +377,15 @@ static GnomeCanvasItem *enumerate_create_item(GnomeCanvasGroup *parent)
pixmap = gc_pixmap_load(imageList[i]);
- answer_to_find[i] = RAND(1, number_of_item_max);
+ answer_to_find[i] = g_random_int_range(1, number_of_item_max);
answer[i] = 0;
for(j=0; j<answer_to_find[i]; j++)
{
guint x, y;
- x = RAND(0, ANSWER_X-gdk_pixbuf_get_width(pixmap)-ANSWER_WIDTH);
- y = RAND(0, BOARDHEIGHT-gdk_pixbuf_get_height(pixmap));
+ x = g_random_int_range(0, ANSWER_X-gdk_pixbuf_get_width(pixmap)-ANSWER_WIDTH);
+ y = g_random_int_range(0, BOARDHEIGHT-gdk_pixbuf_get_height(pixmap));
item = gnome_canvas_item_new (boardRootItem,
gnome_canvas_pixbuf_get_type (),
diff --git a/src/boards/erase.c b/src/boards/erase.c
index 5210719..b3c89d1 100644
--- a/src/boards/erase.c
+++ b/src/boards/erase.c
@@ -487,8 +487,8 @@ void shuffle_image_list(char *list[], int size)
for(i=0; i<size; i++)
{
- int random1 = RAND(0, size-1);
- int random2 = RAND(0, size-1);
+ int random1 = g_random_int_range(0, size-1);
+ int random2 = g_random_int_range(0, size-1);
char *olditem;
olditem = list[random2];
diff --git a/src/boards/fifteen.c b/src/boards/fifteen.c
index 04646c3..4d71d8f 100644
--- a/src/boards/fifteen.c
+++ b/src/boards/fifteen.c
@@ -431,7 +431,8 @@ scramble (GnomeCanvasItem **board, guint number_of_scrambles)
int dir;
int x, y;
- srand (time (NULL));
+ /* g_random are initialised in gcompris launch */
+ /* srand (time (NULL)); */
/* First, find the blank spot */
@@ -443,7 +444,7 @@ scramble (GnomeCanvasItem **board, guint number_of_scrambles)
for (i = 0; i < number_of_scrambles; i++) {
retry_scramble:
- dir = rand () % 4;
+ dir = g_random_int () % 4;
x = y = 0;
diff --git a/src/boards/gletters.c b/src/boards/gletters.c
index 1ceb498..660b0c1 100644
--- a/src/boards/gletters.c
+++ b/src/boards/gletters.c
@@ -611,7 +611,7 @@ static GnomeCanvasItem *gletters_create_item(GnomeCanvasGroup *parent)
{
attempt++;
str_p = letters_array[gcomprisBoard->level-1];
- i = (int)((float)k*rand()/(RAND_MAX+1.0));
+ i = g_random_int_range(0,k);
for(j = 0; j < i; j++)
{
@@ -651,7 +651,7 @@ static GnomeCanvasItem *gletters_create_item(GnomeCanvasGroup *parent)
"y", (double) -12,
NULL);
- x = 80 + (int)((float)(gcomprisBoard->width-160)*rand()/(RAND_MAX+1.0));
+ x = g_random_int_range( 80, gcomprisBoard->width-160);
gnome_canvas_item_new (GNOME_CANVAS_GROUP(item),
gnome_canvas_text_get_type (),
"text", letter,
diff --git a/src/boards/gtans.c b/src/boards/gtans.c
index 03bed7b..d57ba17 100644
--- a/src/boards/gtans.c
+++ b/src/boards/gtans.c
@@ -20,20 +20,12 @@
#include "gcompris/gcompris.h"
-#include <math.h>
-#include <stdio.h>
#include <string.h>
/* Added by Florian Ernst <florian_ernst@gmx.net> for lines 193 and 194 */
//#include <string.h>
/* End of added section */
-/* uniquement pour mkdir() */
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include <unistd.h>
-
#include "gtans.h"
#include "gtans_interface.h"
#include "gtans_support.h"
diff --git a/src/boards/gtans_support.c b/src/boards/gtans_support.c
index 2590ced..9891b88 100644
--- a/src/boards/gtans_support.c
+++ b/src/boards/gtans_support.c
@@ -1,17 +1,14 @@
-/*
- * DO NOT EDIT THIS FILE - it is generated by Glade.
- */
+
+
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <string.h>
+#include "strings.h"
#include "gcompris/gcompris.h"
+#include <glib/gstdio.h>
#include "gtans_support.h"
@@ -150,7 +147,7 @@ check_file_exists (const gchar *directory,
strcat (full_filename, G_DIR_SEPARATOR_S);
strcat (full_filename, filename);
- status = stat (full_filename, &s);
+ status = g_stat (full_filename, &s);
if (status == 0 && S_ISREG (s.st_mode))
return full_filename;
g_free (full_filename);
diff --git a/src/boards/hanoi.c b/src/boards/hanoi.c
index 60873c6..e70ed0e 100644
--- a/src/boards/hanoi.c
+++ b/src/boards/hanoi.c
@@ -371,7 +371,7 @@ static GnomeCanvasItem *hanoi_create_item(GnomeCanvasGroup *parent)
/* Initialize a random goal and store the color index in position[number_of_item_x] */
for(i=0; i<(number_of_item_y); i++)
{
- guint color = (guint)RAND(0, NUMBER_OF_COLOR-1);
+ guint color = (guint)g_random_int_range(0, NUMBER_OF_COLOR-1);
position[number_of_item_x+1][i]->color = color;
used_colors[color] = TRUE;
@@ -386,10 +386,10 @@ static GnomeCanvasItem *hanoi_create_item(GnomeCanvasGroup *parent)
{
done = FALSE;
- i = (guint)RAND(0, number_of_item_x-2);
+ i = (guint)g_random_int_range(0, number_of_item_x-2);
/* Restrict the goal to lowest items */
- j = (guint)RAND(0, 2);
+ j = (guint)g_random_int_range(0, 2);
if(position[i][j]->color == -1)
{
@@ -408,7 +408,7 @@ static GnomeCanvasItem *hanoi_create_item(GnomeCanvasGroup *parent)
if(position[i][j]->color == -1)
{
/* Take only a color that is not part of the goal */
- guint color = (guint)RAND(0, NUMBER_OF_COLOR-1);
+ guint color = (guint)g_random_int_range(0, NUMBER_OF_COLOR-1);
//printf(" i,j=%d,%d random color = %d used_colors[color]=%d\n", i,j,color, used_colors[color]);
while(used_colors[color])
{
diff --git a/src/boards/imageid.c b/src/boards/imageid.c
index e2d0068..a04431d 100644
--- a/src/boards/imageid.c
+++ b/src/boards/imageid.c
@@ -266,7 +266,7 @@ static GnomeCanvasItem *imageid_create_item(GnomeCanvasGroup *parent)
board_number = g_list_length(board_list)-1;
*/
g_assert(board_number >= 0 && board_number < g_list_length(board_list));
- place = ((int)(3.0*rand()/(RAND_MAX+1.0)));
+ place = g_random_int_range( 0, 3);
g_assert(place >= 0 && place < 3);
right_word = place+1;
diff --git a/src/boards/leftright.c b/src/boards/leftright.c
index c7109d9..23bdc5d 100644
--- a/src/boards/leftright.c
+++ b/src/boards/leftright.c
@@ -314,7 +314,7 @@ static GnomeCanvasItem *leftright_create_item(GnomeCanvasGroup *parent) {
// make sure that next hand is not the same as previous
do {
- i = RAND(0,gcomprisBoard->level*8-1);
+ i = g_random_int_range(0,gcomprisBoard->level*8-1);
} while ( i == last_hand );
last_hand = i;
diff --git a/src/boards/machpuzzle.c b/src/boards/machpuzzle.c
index 569c861..ed30700 100644
--- a/src/boards/machpuzzle.c
+++ b/src/boards/machpuzzle.c
@@ -243,7 +243,7 @@ static GnomeCanvasItem *minigolf_create_item(GnomeCanvasGroup *parent)
NULL));
create_machine_item(MACH_HOLE, 730.0, 260.0);
- create_machine_item(MACH_BASKET_BALL, (double)RAND(60, 150), (double)RAND(60, 400));
+ create_machine_item(MACH_BASKET_BALL, (double)g_random_int_range(60, 150), (double)RAND(60, 400));
return NULL;
diff --git a/src/boards/magic_hat.c b/src/boards/magic_hat.c
index 496fc10..089f7c0 100644
--- a/src/boards/magic_hat.c
+++ b/src/boards/magic_hat.c
@@ -363,9 +363,9 @@ static GnomeCanvasItem *magic_hat_create_item()
// Frame 1
if (board_mode == MODE_MINUS)
- frame1.nb_stars[i] = RAND(2, (1 + (step * nb_list()))); // Minimum 2 to avoid '0' value (which is not easy to understand for kids)
+ frame1.nb_stars[i] = g_random_int_range(2, (1 + (step * nb_list()))); // Minimum 2 to avoid '0' value (which is not easy to understand for kids)
else
- frame1.nb_stars[i] = RAND(1, (step * nb_list()));
+ frame1.nb_stars[i] = g_random_int_range(1, (step * nb_list()));
for (j = 0 ; j < frame1.nb_stars[i] ; j++) frame1.array_star_type[i][j] = i;
for ( ; j < MAX_ITEM ; j++) frame1.array_star_type[i][j] = -1;
@@ -373,9 +373,9 @@ static GnomeCanvasItem *magic_hat_create_item()
// Frame 2
if (board_mode == MODE_MINUS)
- frame2.nb_stars[i] = RAND(1, (frame1.nb_stars[i]) - 1); // Minimum 1 to avoid '0'
+ frame2.nb_stars[i] = g_random_int_range(1, (frame1.nb_stars[i]) - 1); // Minimum 1 to avoid '0'
else
- frame2.nb_stars[i] = RAND(1, ((step * nb_list()) - frame1.nb_stars[i] + 1));
+ frame2.nb_stars[i] = g_random_int_range(1, ((step * nb_list()) - frame1.nb_stars[i] + 1));
for (j = 0 ; j < frame2.nb_stars[i] ; j++) frame2.array_star_type[i][j] = i;
for ( ; j < MAX_ITEM ; j++) frame2.array_star_type[i][j] = -1;
diff --git a/src/boards/maze.c b/src/boards/maze.c
index 6b5a3f2..6618cf1 100644
--- a/src/boards/maze.c
+++ b/src/boards/maze.c
@@ -272,7 +272,7 @@ static void maze_next_level() {
gamewon = FALSE;
initMaze();
- generateMaze((rand()%breedte),(rand()%hoogte));
+ generateMaze((g_random_int()%breedte),(g_random_int()%hoogte));
removeSet();
/* Try the next level */
maze_create_item(gnome_canvas_root(gcomprisBoard->canvas));
@@ -283,8 +283,8 @@ static void maze_next_level() {
}
/* make a new group for the items */
- begin=rand()%hoogte;
- end=rand()%hoogte;
+ begin=g_random_int()%hoogte;
+ end=g_random_int()%hoogte;
/* Draw the tux */
pixmap = gc_pixmap_load("gcompris/misc/tux_top_east.png");
@@ -723,7 +723,7 @@ static void generateMaze(int x, int y)
{
int nr = *po;
int ran, in;
- in=(rand()%nr)+1;
+ in=(g_random_int()%nr)+1;
//printf("random: %d en %d mogelijkheden\n", in, *po);
ran=*(po + in);
if (nr>=1)
diff --git a/src/boards/memory.c b/src/boards/memory.c
index 1643f8d..74c5147 100644
--- a/src/boards/memory.c
+++ b/src/boards/memory.c
@@ -523,7 +523,7 @@ void get_random_token(int token_type, gint *returned_type, gchar **string, gchar
g_assert(max_token >0);
- i = rand()%max_token;
+ i = g_random_int()%max_token;
for (list = data; list != NULL; list = list->next)
if ( i < ((DATUM *)list->data)->bound)
@@ -1163,8 +1163,8 @@ static void get_image(MemoryItem *memoryItem, guint x, guint y)
// Randomly set the pair
- rx = (int)(numberOfColumn*((double)rand()/RAND_MAX));
- ry = (int)(numberOfLine*((double)rand()/RAND_MAX));
+ rx = g_random_int_range( 0, numberOfColumn);
+ ry = g_random_int_range(0, numberOfLine);
while(memoryArray[rx][ry])
{
@@ -1731,8 +1731,8 @@ static gint tux_play(){
}
// Randomly set the pair
- rx = (int)(numberOfColumn*((double)rand()/RAND_MAX));
- ry = (int)(numberOfLine*((double)rand()/RAND_MAX));
+ rx = g_random_int_range( 0, numberOfColumn);
+ ry = g_random_int_range(0, numberOfLine);
gboolean stay_unknown = (remainingCards > (g_queue_get_length (tux_memory)
+ (firstCard ? 1 : 0)));
diff --git a/src/boards/missingletter.c b/src/boards/missingletter.c
index 6ef2ea3..4c973f1 100644
--- a/src/boards/missingletter.c
+++ b/src/boards/missingletter.c
@@ -275,7 +275,7 @@ static GnomeCanvasItem *missing_letter_create_item(GnomeCanvasGroup *parent)
board_number = (gcomprisBoard->level-1) * NUMBER_OF_SUBLEVELS + gcomprisBoard->sublevel-1;
g_assert(board_number >= 0 && board_number < g_list_length(board_list));
- place = ((int)(3.0*rand()/(RAND_MAX+1.0)));
+ place = g_random_int_range( 0, 3);
g_assert(place >= 0 && place < 3);
right_word = place+1;
diff --git a/src/boards/money.c b/src/boards/money.c
index 68ca52e..3f85f33 100644
--- a/src/boards/money.c
+++ b/src/boards/money.c
@@ -469,7 +469,7 @@ static void money_next_level()
double object_price;
gchar *text;
- pixmap = gc_pixmap_load(imageList[RAND(0, NUMBER_OF_IMAGES-1)]);
+ pixmap = gc_pixmap_load(imageList[g_random_int_range(0, NUMBER_OF_IMAGES-1)]);
gnome_canvas_item_new ( boardRootItem,
gnome_canvas_pixbuf_get_type (),
@@ -480,7 +480,7 @@ static void money_next_level()
NULL);
/* Diplay the price */
- object_price = (double) RAND(min_price/number_of_item, max_price/number_of_item);
+ object_price = (double) g_random_int_range(min_price/number_of_item, max_price/number_of_item);
if(currentMode==WITH_CENTS)
{
@@ -489,11 +489,11 @@ static void money_next_level()
/* Add random cents */
if(gcomprisBoard->level == 1)
{
- object_price += (double)((double) RAND(1, 9))/10.0;
+ object_price += (double)((double) g_random_int_range(1, 9))/10.0;
}
else
{
- object_price += (double)((double) RAND(1, 99))/100.0;
+ object_price += (double)((double) g_random_int_range(1, 99))/100.0;
}
}
else
diff --git a/src/boards/paratrooper.c b/src/boards/paratrooper.c
index 4a380c8..804ef50 100644
--- a/src/boards/paratrooper.c
+++ b/src/boards/paratrooper.c
@@ -337,8 +337,8 @@ static void paratrooper_next_level()
NULL);
gdk_pixbuf_unref(pixmap);
- windspeed = (3 + rand()%gcomprisBoard->level);
- if(rand()%2==0)
+ windspeed = (3 + g_random_int()%gcomprisBoard->level);
+ if(g_random_int()%2==0)
windspeed *= -1;
/* Drop a cloud */
@@ -620,7 +620,7 @@ static GnomeCanvasItem *paratrooper_create_cloud(GnomeCanvasGroup *parent)
gnome_canvas_item_new (parent,
gnome_canvas_group_get_type (),
"x", (double) x,
- "y", (double)(rand()%(gcomprisBoard->height-200-
+ "y", (double)(g_random_int()%(gcomprisBoard->height-200-
(guint)(gdk_pixbuf_get_height(pixmap)*
imageZoom))),
NULL);
diff --git a/src/boards/planegame.c b/src/boards/planegame.c
index f0aa74b..251dbf5 100644
--- a/src/boards/planegame.c
+++ b/src/boards/planegame.c
@@ -469,7 +469,7 @@ static GnomeCanvasItem *planegame_create_item(GnomeCanvasGroup *parent)
CloudItem *clouditem;
/* Random cloud number */
- if(rand()%2==0)
+ if(g_random_int()%2==0)
{
/* Put the target */
i = plane_target;
@@ -477,7 +477,7 @@ static GnomeCanvasItem *planegame_create_item(GnomeCanvasGroup *parent)
else
{
min = MAX(1, plane_target - 1);
- i = min + rand()%(plane_target - min + 3);
+ i = min + g_random_int()%(plane_target - min + 3);
}
number = g_strdup_printf("%d", i);
@@ -487,7 +487,7 @@ static GnomeCanvasItem *planegame_create_item(GnomeCanvasGroup *parent)
gnome_canvas_item_new (parent,
gnome_canvas_group_get_type (),
"x", (double) gcomprisBoard->width,
- "y", (double)(rand()%(gcomprisBoard->height-
+ "y", (double)(g_random_int()%(gcomprisBoard->height-
(guint)(gdk_pixbuf_get_height(pixmap)*
imageZoom))),
NULL);
diff --git a/src/boards/py-mod-gcompris.c b/src/boards/py-mod-gcompris.c
index 12c1bd3..c5ae83c 100644
--- a/src/boards/py-mod-gcompris.c
+++ b/src/boards/py-mod-gcompris.c
@@ -671,7 +671,7 @@ py_gcompris_child_watch_add(PyObject *unused, PyObject *args, PyObject *kwargs)
static char *kwlist[] = { "pid", "function", "data", "priority", NULL };
guint id;
gint priority = G_PRIORITY_DEFAULT;
- int pid;
+ GPid pid;
PyObject *func, *user_data = NULL;
struct _PyGChildData *child_data;
@@ -738,7 +738,7 @@ py_gcompris_spawn_async(PyObject *unused, PyObject *args, PyObject *kwargs)
gint *standard_input, *standard_output, *standard_error;
struct _PyGChildSetupData *callback_data = NULL;
GError *error = NULL;
- GPid child_pid = -1;
+ GPid child_pid = (GPid) -1;
int len, i;
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|OsiOOOOO:gcompris.spawn_async",
diff --git a/src/boards/railroad.c b/src/boards/railroad.c
index 7387372..76c0ccc 100644
--- a/src/boards/railroad.c
+++ b/src/boards/railroad.c
@@ -357,7 +357,7 @@ static GnomeCanvasItem *railroad_create_item(GnomeCanvasGroup *parent)
model_size = gcomprisBoard->level +1; // engine + cars
// First the cars, depending of the level
for (i=0; i<model_size-1; i++) {
- r = (int)(((float) WAGONS)*rand()/(RAND_MAX+1.0));
+ r = g_random_int_range( 0, WAGONS);
g_assert( r >=0 && r < WAGONS);
// keep track of the answer
int_model_list = g_list_append(int_model_list, GINT_TO_POINTER(r+ENGINES));
@@ -373,7 +373,7 @@ static GnomeCanvasItem *railroad_create_item(GnomeCanvasGroup *parent)
}
// Then the engine
- r = (int)(((float) ENGINES)*rand()/(RAND_MAX+1.0));
+ r = g_random_int_range( 0, ENGINES);
g_assert( r >=0 && r < ENGINES);
// keep track of the answer
int_model_list = g_list_append(int_model_list, GINT_TO_POINTER(r));
diff --git a/src/boards/read_colors.c b/src/boards/read_colors.c
index f5997ac..06caa2f 100644
--- a/src/boards/read_colors.c
+++ b/src/boards/read_colors.c
@@ -127,7 +127,7 @@ static void pause_board (gboolean pause)
static void start_board (GcomprisBoard *agcomprisBoard) {
GList * list = NULL;
int * item;
- int i;
+ int i,list_length;
if(agcomprisBoard!=NULL) {
gcomprisBoard=agcomprisBoard;
@@ -148,8 +148,8 @@ static void start_board (GcomprisBoard *agcomprisBoard) {
for (i=0; i<LAST_COLOR; i++)
list = g_list_append(list, GINT_TO_POINTER(i));
- while ((g_list_length(list) > 0)) {
- i = RAND(0,g_list_length(list)-1);
+ while ((list_length = g_list_length(list))) {
+ i = list_length == 1 ? 0 : g_random_int_range(0,g_list_length(list)-1);
item = g_list_nth_data(list, i);
listColors = g_list_append(listColors, item);
list = g_list_remove(list, item);
diff --git a/src/boards/reading.c b/src/boards/reading.c
index 34cdfb8..7530582 100644
--- a/src/boards/reading.c
+++ b/src/boards/reading.c
@@ -358,7 +358,6 @@ static GnomeCanvasItem *display_what_to_do(GnomeCanvasGroup *parent)
gint base_Y = 110;
gint base_X = 580;
- gint i;
/* Load the text to find */
@@ -368,9 +367,8 @@ static GnomeCanvasItem *display_what_to_do(GnomeCanvasGroup *parent)
/* Decide now if this time we will display the text to find */
/* Use this formula to have a better random number see 'man 3 rand' */
- i=((int)(2.0*rand()/(RAND_MAX+1.0)));
- if(i==0)
- textToFindIndex = rand() % numberOfLine;
+ if(g_random_boolean())
+ textToFindIndex = g_random_int_range(0, numberOfLine);
else
textToFindIndex = NOT_THERE;
diff --git a/src/boards/reversecount.c b/src/boards/reversecount.c
index a81bf9a..f9872bc 100644
--- a/src/boards/reversecount.c
+++ b/src/boards/reversecount.c
@@ -570,13 +570,13 @@ static void display_random_fish()
{
fish_index = tux_index +
- rand()%(max_dice_number*number_of_dices) + 1;
+ g_random_int()%(max_dice_number*number_of_dices) + 1;
// Wrapping
if(fish_index >= number_of_item)
fish_index = fish_index - (number_of_item);
- fishItem = display_item_at(fishList[rand()%NUMBER_OF_FISHES],
+ fishItem = display_item_at(fishList[g_random_int()%NUMBER_OF_FISHES],
fish_index, -1);
}
diff --git a/src/boards/shapegame.c b/src/boards/shapegame.c
index 9a98e67..ff93bab 100644
--- a/src/boards/shapegame.c
+++ b/src/boards/shapegame.c
@@ -1903,6 +1903,7 @@ parse_doc(xmlDocPtr doc)
xmlNodePtr node;
GList *list;
GnomeCanvasItem *item;
+ int list_length, i;
/* find <Shape> nodes and add them to the list, this just
loops through all the children of the root of the document */
@@ -1915,11 +1916,12 @@ parse_doc(xmlDocPtr doc)
shape_list = g_list_copy(shape_list_init);
/* Insert each of the shapes randomly */
- while(g_list_length(shape_list_init)>0)
+ while((list_length = g_list_length(shape_list_init)))
{
Shape *shape;
- shape = g_list_nth_data(shape_list_init, RAND(0, (g_list_length(shape_list_init)-1)));
+ i = list_length == 1 ? 0 : g_random_int_range(0, g_list_length(shape_list_init)-1);
+ shape = g_list_nth_data(shape_list_init, i);
add_shape_to_canvas(shape);
shape_list_init = g_list_remove (shape_list_init, shape);
diff --git a/src/boards/smallnumbers.c b/src/boards/smallnumbers.c
index 4ad1d10..08cac23 100644
--- a/src/boards/smallnumbers.c
+++ b/src/boards/smallnumbers.c
@@ -376,9 +376,9 @@ static void smallnumbers_create_item(GnomeCanvasGroup *parent)
/* Take care not to go above 9 anyway */
if(total_number==0) {
- i=rand()%6;
+ i=g_random_int()%6;
} else {
- int rando = rand()%(9-total_number);
+ int rando = g_random_int()%(9-total_number);
i=MIN(rando, 5);
}
@@ -434,7 +434,7 @@ static void smallnumbers_create_item(GnomeCanvasGroup *parent)
if(x==0.0)
{
- x = (double)(rand()%(gcomprisBoard->width-
+ x = (double)(g_random_int()%(gcomprisBoard->width-
(guint)(gdk_pixbuf_get_width(smallnumbers_pixmap)* imageZoom)*2));
}
else
diff --git a/src/boards/submarine.c b/src/boards/submarine.c
index c4e6331..1aaea62 100644
--- a/src/boards/submarine.c
+++ b/src/boards/submarine.c
@@ -779,8 +779,8 @@ static GnomeCanvasItem *submarine_create_item(GnomeCanvasGroup *parent) {
// whale item
str = g_strdup_printf("%s/%s", gcomprisBoard->boarddir, "whale.png");
pixmap = gc_pixmap_load(str);
- whale_x = RAND((int)(gdk_pixbuf_get_width(pixmap)), (int)(gcomprisBoard->width-gdk_pixbuf_get_width(pixmap)));
- whale_y = RAND((int)(SURFACE_IN_BACKGROUND + gdk_pixbuf_get_height(pixmap)),(int)MAX_DEPTH);
+ whale_x = g_random_int_range((int)(gdk_pixbuf_get_width(pixmap)), (int)(gcomprisBoard->width-gdk_pixbuf_get_width(pixmap)));
+ whale_y = g_random_int_range((int)(SURFACE_IN_BACKGROUND + gdk_pixbuf_get_height(pixmap)),(int)MAX_DEPTH);
whale = gnome_canvas_item_new (boardRootItem,
gnome_canvas_pixbuf_get_type (),
"pixbuf", pixmap,
diff --git a/src/boards/superbrain.c b/src/boards/superbrain.c
index 769dc66..797bb69 100644
--- a/src/boards/superbrain.c
+++ b/src/boards/superbrain.c
@@ -258,9 +258,9 @@ static void superbrain_next_level()
{
guint j;
- j = (guint)RAND(1, number_of_color);
+ j = (guint)g_random_int_range(1, number_of_color);
while(selected_color[j])
- j = (guint)RAND(1, number_of_color);
+ j = (guint)g_random_int_range(1, number_of_color);
solution[i] = j;
selected_color[j] = TRUE;
diff --git a/src/boards/target.c b/src/boards/target.c
index d81de24..29466a9 100644
--- a/src/boards/target.c
+++ b/src/boards/target.c
@@ -362,12 +362,12 @@ static void display_windspeed()
NULL));
/* Speed orientation */
- second = rand()%60;
+ second = g_random_int()%60;
ang = second * M_PI / 30;
/* Speed force */
wind_speed = targetDefinition[gcomprisBoard->level-1].target_min_wind_speed \
- + rand()%(targetDefinition[gcomprisBoard->level-1].target_max_wind_speed \
+ + g_random_int()%(targetDefinition[gcomprisBoard->level-1].target_max_wind_speed \
- targetDefinition[gcomprisBoard->level-1].target_min_wind_speed);
canvasPoints->coords[0]=SPEED_CENTER_X;
diff --git a/src/boards/wordsgame.c b/src/boards/wordsgame.c
index 05a5044..51d5e61 100644
--- a/src/boards/wordsgame.c
+++ b/src/boards/wordsgame.c
@@ -636,7 +636,7 @@ static GnomeCanvasItem *wordsgame_create_item(GnomeCanvasGroup *parent)
&x2,
&y2);
- gnome_canvas_item_move (item->rootitem,(double) (rand()%(gcomprisBoard->width-(gint)(x2))),(double) 0);
+ gnome_canvas_item_move (item->rootitem,(double) (g_random_int()%(gcomprisBoard->width-(gint)(x2))),(double) 0);
g_static_rw_lock_writer_lock (&items_lock);