[Tux4kids-commits] [SCM] tuxhistory - Educational history game branch, master, updated. f9eb89b4d701a1321a4b991b5c50c85bca7c0f6e
julio (none)
julio at julio-desktop.
Wed Jun 16 03:12:06 UTC 2010
The following commit has been merged in the master branch:
commit f9eb89b4d701a1321a4b991b5c50c85bca7c0f6e
Author: julio <julio at julio-desktop.(none)>
Date: Tue Jun 15 22:10:58 2010 -0500
Fixing make problems and adding event handling to game.c
diff --git a/configure.ac b/configure.ac
index 2318e0d..d716798 100644
--- a/configure.ac
+++ b/configure.ac
@@ -425,6 +425,7 @@ data/images/penguins/Makefile
data/images/status/Makefile
data/images/title/Makefile
data/images/tux/Makefile
+data/images/terrain/Makefile
data/images/terrain/arctic/Makefile
data/images/terrain/desert/Makefile
data/images/terrain/grassland/Makefile
diff --git a/data/images/Makefile.am b/data/images/Makefile.am
index 73573d5..99ca50f 100644
--- a/data/images/Makefile.am
+++ b/data/images/Makefile.am
@@ -1,7 +1,8 @@
-## Makefile.am for tuxmath data/images:
+## Makefile.am for TuxHistorudata/images:
## Process with AutoMake:
SUBDIRS = backgrounds \
+ terrain \
icons \
penguins \
status \
diff --git a/data/images/terrain/Makefile.am b/data/images/terrain/Makefile.am
index dfcac0f..e040d00 100644
--- a/data/images/terrain/Makefile.am
+++ b/data/images/terrain/Makefile.am
@@ -2,19 +2,15 @@
## Process with Automake to create Makefile.in
SUBDIRS = arctic\
- beach \
desert \
grassland \
highSeas \
- hills \
marsh \
- mountains \
ocean \
plains \
prairie \
savannah \
swamp \
- terrain13 \
tundra \
unexplored
diff --git a/data/images/terrain/arctic/Makefile.am b/data/images/terrain/arctic/Makefile.am
index dc005af..63ddeed 100644
--- a/data/images/terrain/arctic/Makefile.am
+++ b/data/images/terrain/arctic/Makefile.am
@@ -4,11 +4,10 @@
arcticdir = $(pkgdatadir)/images/terrain/arctic
-dist_arctic_DATA =
-border_E_even.png \
+dist_arctic_DATA = border_E_even.png \
border_E_odd.png \
border_NE_even.png \
-border_NE_odd.png \
+border_NE_odd.png\
border_N_even.png \
border_N_odd.png \
border_NW_even.png \
diff --git a/data/images/terrain/desert/Makefile.am b/data/images/terrain/desert/Makefile.am
index d5743ed..1ae6240 100644
--- a/data/images/terrain/desert/Makefile.am
+++ b/data/images/terrain/desert/Makefile.am
@@ -4,8 +4,7 @@
desertdir = $(pkgdatadir)/images/terrain/desert
-dist_desert_DATA =
-border_E_even.png \
+dist_desert_DATA = border_E_even.png \
border_E_odd.png \
border_NE_even.png \
border_NE_odd.png \
diff --git a/data/images/terrain/grassland/Makefile.am b/data/images/terrain/grassland/Makefile.am
index 4a465d6..4dda38f 100644
--- a/data/images/terrain/grassland/Makefile.am
+++ b/data/images/terrain/grassland/Makefile.am
@@ -4,8 +4,7 @@
grasslanddir = $(pkgdatadir)/images/terrain/grassland
-dist_grassland_DATA =
-border_E_even.png \
+dist_grassland_DATA = border_E_even.png \
border_E_odd.png \
border_NE_even.png \
border_NE_odd.png \
diff --git a/data/images/terrain/highSeas/Makefile.am b/data/images/terrain/highSeas/Makefile.am
index 9eacea1..6887eba 100644
--- a/data/images/terrain/highSeas/Makefile.am
+++ b/data/images/terrain/highSeas/Makefile.am
@@ -4,8 +4,7 @@
highSeasdir = $(pkgdatadir)/images/terrain/highSeas
-dist_highSeas_DATA =
-border_E_even.png \
+dist_highSeas_DATA = border_E_even.png \
border_E_odd.png \
border_NE_even.png \
border_NE_odd.png \
diff --git a/data/images/terrain/marsh/Makefile.am b/data/images/terrain/marsh/Makefile.am
index d17be4b..ba07908 100644
--- a/data/images/terrain/marsh/Makefile.am
+++ b/data/images/terrain/marsh/Makefile.am
@@ -4,8 +4,7 @@
marshdir = $(pkgdatadir)/images/terrain/marsh
-dist_marsh_DATA =
-border_E_even.png \
+dist_marsh_DATA = border_E_even.png \
border_E_odd.png \
border_NE_even.png \
border_NE_odd.png \
diff --git a/data/images/terrain/ocean/Makefile.am b/data/images/terrain/ocean/Makefile.am
index caa2485..26b9cb5 100644
--- a/data/images/terrain/ocean/Makefile.am
+++ b/data/images/terrain/ocean/Makefile.am
@@ -4,8 +4,7 @@
oceandir = $(pkgdatadir)/images/terrain/ocean
-dist_ocean_DATA =
-border_E_even.png \
+dist_ocean_DATA = border_E_even.png \
border_E_odd.png \
border_NE_even.png \
border_NE_odd.png \
diff --git a/data/images/terrain/plains/Makefile.am b/data/images/terrain/plains/Makefile.am
index c28437e..ebba025 100644
--- a/data/images/terrain/plains/Makefile.am
+++ b/data/images/terrain/plains/Makefile.am
@@ -4,8 +4,7 @@
plainsdir = $(pkgdatadir)/images/terrain/plains
-dist_plains_DATA =
-border_E_even.png \
+dist_plains_DATA = border_E_even.png \
border_E_odd.png \
border_NE_even.png \
border_NE_odd.png \
diff --git a/data/images/terrain/prairie/Makefile.am b/data/images/terrain/prairie/Makefile.am
index 2da1222..afe765e 100644
--- a/data/images/terrain/prairie/Makefile.am
+++ b/data/images/terrain/prairie/Makefile.am
@@ -4,8 +4,7 @@
prairiedir = $(pkgdatadir)/images/terrain/prairie
-dist_prairie_DATA =
-border_E_even.png \
+dist_prairie_DATA = border_E_even.png \
border_E_odd.png \
border_NE_even.png \
border_NE_odd.png \
diff --git a/data/images/terrain/savannah/Makefile.am b/data/images/terrain/savannah/Makefile.am
index 2c39157..042115a 100644
--- a/data/images/terrain/savannah/Makefile.am
+++ b/data/images/terrain/savannah/Makefile.am
@@ -4,8 +4,7 @@
savannahdir = $(pkgdatadir)/images/terrain/savannah
-dist_savannah_DATA =
-border_E_even.png \
+dist_savannah_DATA = border_E_even.png \
border_E_odd.png \
border_NE_even.png \
border_NE_odd.png \
diff --git a/data/images/terrain/swamp/Makefile.am b/data/images/terrain/swamp/Makefile.am
index d1c7dc0..2255dfc 100644
--- a/data/images/terrain/swamp/Makefile.am
+++ b/data/images/terrain/swamp/Makefile.am
@@ -4,8 +4,7 @@
swampdir = $(pkgdatadir)/images/terrain/swamp
-dist_swamp_DATA =
-border_E_even.png \
+dist_swamp_DATA = border_E_even.png \
border_E_odd.png \
border_NE_even.png \
border_NE_odd.png \
diff --git a/data/images/terrain/tundra/Makefile.am b/data/images/terrain/tundra/Makefile.am
index 5258010..b039409 100644
--- a/data/images/terrain/tundra/Makefile.am
+++ b/data/images/terrain/tundra/Makefile.am
@@ -4,8 +4,7 @@
tundradir = $(pkgdatadir)/images/terrain/tundra
-dist_tundra_DATA =
-border_E_even.png \
+dist_tundra_DATA = border_E_even.png \
border_E_odd.png \
border_NE_even.png \
border_NE_odd.png \
diff --git a/data/images/terrain/unexplored/Makefile.am b/data/images/terrain/unexplored/Makefile.am
index 6350172..e3ff30b 100644
--- a/data/images/terrain/unexplored/Makefile.am
+++ b/data/images/terrain/unexplored/Makefile.am
@@ -4,8 +4,7 @@
unexploreddir = $(pkgdatadir)/images/terrain/unexplored
-dist_unexplored_DATA =
-border_E_even.png \
+dist_unexplored_DATA = border_E_even.png \
border_E_odd.png \
border_NE_even.png \
border_NE_odd.png \
diff --git a/src/fileops_media.c b/src/fileops_media.c
index 354775c..75f3ba0 100644
--- a/src/fileops_media.c
+++ b/src/fileops_media.c
@@ -215,7 +215,7 @@ int load_image_data()
"terrain/ocean/border_S_odd.png",
"terrain/ocean/border_N_odd.png",
"terrain/ocean/center1.png",
- "terrain/ocean/border_S_even.png"
+ "terrain/ocean/border_S_even.png",
"terrain/marsh/border_E_odd.png",//MARSH
"terrain/marsh/border_SW_even.png",
"terrain/marsh/border_NW_odd.png",
diff --git a/src/game.c b/src/game.c
index 05afa35..acfd671 100644
--- a/src/game.c
+++ b/src/game.c
@@ -1,22 +1,15 @@
/*
- game.c
-
- For TuxMath
- The main game loop!
-
- by Bill Kendrick
- bill at newbreedsoftware.com
- http://www.newbreedsoftware.com/
-
-
- Part of "Tux4Kids" Project
- http://www.tux4kids.org/
-
- August 26, 2001 - February 18, 2004
-
- Revised by David Bruce, Tim Holy and others
- 2005-2009
-*/
+ * game.c
+ *
+ * Description: The main game loop for TuxHistory
+ *
+ * Author: Jesús Manuel Mager Hois (fongog at gmail.com) 2010
+ * Copyright: GPL v3 or later
+ *
+ * Part of "Tux4Kids Project
+ * http://www.tux4kids.com
+ *
+ */
/* put this first so we get <config.h> and <gettext.h> immediately: */
#include "tuxhistory.h"
@@ -41,30 +34,404 @@
#include "options.h"
#include "SDL_extras.h"
#include "pixels.h"
+#include "map.h"
-#define FPS 15 /* 15 frames per second */
+#define FPS 15 /* 15 frames per second */
#define MS_PER_FRAME (1000 / FPS)
+/************ Static Variable definitions ***********/
+//Game variables
+
+static int quit;
+
+// ControlKeys
+static int left_pressed;
+static int right_pressed;
+static int up_pressed;
+static int shift_pressed;
+static int shoot_pressed;
+
+// GameControl
+static int game_status;
+static int paused;
+static int user_quit_received;
+static int SDL_quit_received;
+//static int gameover_counter;
+static int escape_received;
+
+// Background Surfaces
static SDL_Surface* bkgd = NULL; //640x480 background (windowed)
static SDL_Surface* scaled_bkgd = NULL; //native resolution (fullscreen)
+/********** Static functions definitions *********/
+
+static void game_handle_user_events(void);
+static int game_mouse_event(SDL_Event event);
+
+static int check_exit_conditions(void);
+static int game_over(int);
+static int pause_game(void);
+
+/************** Implementation *******************/
static SDL_Surface* current_bkgd()
- {
- return screen->flags & SDL_FULLSCREEN ? scaled_bkgd : bkgd;
- }
+{
+ return screen->flags & SDL_FULLSCREEN ? scaled_bkgd : bkgd;
+}
int game(void)
{
- Uint32 timer = 0;
+ Uint32 last_time, now_time;
+
+ DEBUGMSG(debug_game, "Entering game():\n");
+
+ //see if the option matches the actual screen
+ if (Opts_GetGlobalOpt(FULLSCREEN) == !(screen->flags & SDL_FULLSCREEN) )
+ {
+ ;//SwitchScreenMode(); //Huh??
+ }
+
+ while(game_status == GAME_IN_PROGRESS)
+ {
+ last_time = SDL_GetTicks();
+
+ game_handle_user_events();
+ game_status = check_exit_conditions();
- DEBUGMSG(debug_game, "Entering game():\n");
+ if(paused)
+ {
+ pause_game();
+ paused = 0;
+ }
- //see if the option matches the actual screen
- if (Opts_GetGlobalOpt(FULLSCREEN) == !(screen->flags & SDL_FULLSCREEN) )
+ // Maintain Frame-rate
+ now_time = SDL_GetTicks();
+ if(now_time < last_time + MS_PER_FRAME)
+ {
+ now_time = (last_time+MS_PER_FRAME) - now_time;
+ if (now_time > MS_PER_FRAME)
+ now_time = MS_PER_FRAME;
+ SDL_Delay(now_time);
+ }
+ }
+ game_over(game_status);
+}
+
+static int pause_game(void)
+{
+ /* NOTE - done and quit changed to pause_done and pause_quit */
+ /* due to potentially confusing name collision */
+ int pause_done, pause_quit;
+ SDL_Event event;
+ SDL_Rect dest;
+
+ /* Only pause if pause allowed: */
+ if (!Opts_AllowPause())
{
- ;//SwitchScreenMode(); //Huh??
+ fprintf(stderr, "Pause requested but not allowed by Opts!\n");
+ return 0;
}
+ pause_done = 0;
+ pause_quit = 0;
+
+ dest.x = (screen->w - images[IMG_PAUSED]->w) / 2;
+ dest.y = (screen->h - images[IMG_PAUSED]->h) / 2;
+ dest.w = images[IMG_PAUSED]->w;
+ dest.h = images[IMG_PAUSED]->h;
+
+ DarkenScreen(1); // cut all channels by half
+ SDL_BlitSurface(images[IMG_PAUSED], NULL, screen, &dest);
+ SDL_UpdateRect(screen, 0, 0, 0, 0);
+
+#ifndef NOSOUND
+ if (Opts_UsingSound())
+ Mix_PauseMusic();
+#endif
+
+ do
+ {
+ while (SDL_PollEvent(&event))
+ {
+ if (event.type == SDL_KEYDOWN)
+ pause_done = 1;
+ else if (event.type == SDL_QUIT)
+ {
+ user_quit_received = GAME_OVER_WINDOW_CLOSE;
+ pause_quit = 1;
+ }
+ }
+
+ SDL_Delay(100);
+ }
+ while (!pause_done && !pause_quit);
+
+#ifndef NOSOUND
+ if (Opts_UsingSound())
+ Mix_ResumeMusic();
+#endif
+
+ return (pause_quit);
}
+
+static int game_over(int game_status)
+{
+ Uint32 last_time, now_time;
+ SDL_Rect dest_message;
+ SDL_Event event;
+
+
+ /* TODO: need better "victory" screen with animation, special music, etc., */
+ /* as well as options to review missed questions, play again using missed */
+ /* questions as question list, etc. */
+ switch (game_status)
+ {
+ case GAME_OVER_WON:
+ {
+ int looping = 1;
+// int frame;
+ /* set up victory message: */
+ dest_message.x = (screen->w - images[IMG_GAMEOVER_WON]->w) / 2;
+ dest_message.y = (screen->h - images[IMG_GAMEOVER_WON]->h) / 2;
+ dest_message.w = images[IMG_GAMEOVER_WON]->w;
+ dest_message.h = images[IMG_GAMEOVER_WON]->h;
+
+ do
+ {
+ last_time = SDL_GetTicks();
+
+ SDL_BlitSurface(images[IMG_GAMEOVER_WON], NULL, screen, &dest_message);
+ SDL_Flip(screen);
+
+ while (1)
+ {
+ SDL_PollEvent(&event);
+ if (event.type == SDL_QUIT
+ || event.type == SDL_KEYDOWN
+ || event.type == SDL_MOUSEBUTTONDOWN)
+ {
+ looping = 0;
+ break;
+ }
+ }
+
+ now_time = SDL_GetTicks();
+
+ if (now_time < last_time + MS_PER_FRAME)
+ SDL_Delay(last_time + MS_PER_FRAME - now_time);
+ }
+ while (looping);
+ break;
+ }
+
+ case GAME_OVER_ERROR:
+ {
+ DEBUGMSG(debug_factoroids, "game() exiting with error");
+ }
+ case GAME_OVER_LOST:
+ case GAME_OVER_OTHER:
+ {
+ int looping = 1;
+
+ /* set up GAMEOVER message: */
+ dest_message.x = (screen->w - images[IMG_GAMEOVER]->w) / 2;
+ dest_message.y = (screen->h - images[IMG_GAMEOVER]->h) / 2;
+ dest_message.w = images[IMG_GAMEOVER]->w;
+ dest_message.h = images[IMG_GAMEOVER]->h;
+
+ do
+ {
+ //frame++;
+ last_time = SDL_GetTicks();
+
+ SDL_BlitSurface(images[IMG_GAMEOVER], NULL, screen, &dest_message);
+ SDL_Flip(screen);
+
+ while (1)
+ {
+ SDL_PollEvent(&event);
+ if (event.type == SDL_QUIT
+ || event.type == SDL_KEYDOWN
+ || event.type == SDL_MOUSEBUTTONDOWN)
+ {
+ looping = 0;
+ break;
+ }
+ }
+
+ now_time = SDL_GetTicks();
+
+ if (now_time < last_time + MS_PER_FRAME)
+ SDL_Delay(last_time + MS_PER_FRAME - now_time);
+ }
+ while (looping);
+
+ break;
+ }
+
+ case GAME_OVER_ESCAPE:
+ {
+ break;
+ }
+
+ case GAME_OVER_WINDOW_CLOSE:
+ {
+ break;
+ }
+
+ }
+
+ /* Return the chosen command: */
+ if (GAME_OVER_WINDOW_CLOSE == game_status)
+ {
+ /* program exits: */
+ return 1;
+ }
+ else
+ {
+ /* return to title() screen: */
+ return 0;
+ }
+}
+
+
+
+static void game_handle_user_events(void)
+{
+ SDL_Event event;
+ SDLKey key;
+
+ while (SDL_PollEvent(&event) > 0)
+ {
+ if (event.type == SDL_QUIT)
+ {
+ SDL_quit_received = 1;
+ quit = 1;
+ }
+ if (event.type == SDL_MOUSEBUTTONDOWN)
+ {
+ key = game_mouse_event(event);
+ }
+ if (event.type == SDL_KEYDOWN ||
+ event.type == SDL_KEYUP)
+ {
+ key = event.key.keysym.sym;
+
+ if (event.type == SDL_KEYDOWN)
+ {
+ if (key == SDLK_ESCAPE)
+ {
+ // Return to menu!
+ escape_received = 1;
+
+ }
+
+ // Key press...
+
+ if (key == SDLK_RIGHT)
+ {
+ // Rotate CW
+
+ left_pressed = 0;
+ right_pressed = 1;
+ }
+ else if (key == SDLK_LEFT)
+ {
+ // Rotate CCW
+
+ left_pressed = 1;
+ right_pressed = 0;
+ }
+ else if (key == SDLK_UP)
+ {
+ // Thrust!
+
+ up_pressed = 1;
+ }
+
+ if (key == SDLK_LSHIFT || key == SDLK_RSHIFT)
+ {
+ // Respawn now (if applicable)
+ shift_pressed = 1;
+ }
+
+ if (key == SDLK_TAB || key == SDLK_p)
+ {
+ /* [TAB] or [P]: Pause! (if settings allow) */
+ if (Opts_AllowPause())
+ {
+ paused = 1;
+ }
+ }
+ }
+ else if (event.type == SDL_KEYUP)
+ {
+ // Key release...
+
+ if (key == SDLK_RIGHT)
+ {
+ right_pressed = 0;
+ }
+ else if (key == SDLK_LEFT)
+ {
+ left_pressed = 0;
+ }
+ else if (key == SDLK_UP)
+ {
+ up_pressed = 0;
+ }
+ if (key == SDLK_LSHIFT ||
+ key == SDLK_RSHIFT)
+ {
+ // Respawn now (if applicable)
+ shift_pressed = 0;
+ }
+ }
+ }
+ }
+}
+
+static int game_mouse_event(SDL_Event event)
+{
+ SDLKey key = SDLK_UNKNOWN;
+
+ /* Check to see if user clicked exit button: */
+ /* The exit button is in the upper right corner of the screen: */
+ if ((event.button.x >= (screen->w - images[IMG_STOP]->w))
+ &&(event.button.y <= images[IMG_STOP]->h))
+ {
+ key = SDLK_ESCAPE;
+ //game_key_event(key);
+ escape_received = 1;
+ quit = 1;
+ return -1;
+ }
+
+ if (key == SDLK_UNKNOWN)
+ {
+ return -1;
+ }
+
+ /* now can proceed as if keyboard was used */
+ //game_key_event(key);
+ return key;
+ }
+}
+
+
+static int check_exit_conditions(void)
+{
+ if(SDL_quit_received)
+ {
+ return GAME_OVER_WINDOW_CLOSE;
+ }
+
+ if(escape_received)
+ {
+ return GAME_OVER_ESCAPE;
+ }
+ // TODO: Loose or win...
+ return GAME_IN_PROGRESS;
+}
+
diff --git a/src/game.h b/src/game.h
index fc804d6..69433d9 100644
--- a/src/game.h
+++ b/src/game.h
@@ -1,87 +1,21 @@
/*
- game.h
-
- For TuxMath
- The main game loop!
-
- by Bill Kendrick
- bill at newbreedsoftware.com
- http://www.newbreedsoftware.com/
-
-
- Part of "Tux4Kids" Project
- http://www.tux4kids.org/
-
- August 26, 2001 - February 18, 2004
-*/
-
+ * game.c
+ *
+ * Description: The main game loop for TuxHistory
+ *
+ * Author: Jesús Manuel Mager Hois (fongog at gmail.com) 2010
+ * Copyright: GPL v3 or later
+ *
+ * Part of "Tux4Kids Project
+ * http://www.tux4kids.com
+ *
+ */
#ifndef GAME_H
#define GAME_H
-#define MAX_COMETS 10
-#define NUM_CITIES 4 /* MUST BE AN EVEN NUMBER! */
-
#define NUM_BKGDS 8
-#define MAX_CITY_COLORS 4
-
-typedef struct laser_type {
- int alive;
- int x1, y1;
- int x2, y2;
-} laser_type;
-
-/* Note: both igloos and the original "cities" graphics are handled
- with the "cities" structure.
- hits_left holds the number of hits it can withstand before
- being "dead". If using the original cities graphics,
- 2 = with shield,
- 1 = without shield,
- 0 = dead
- If using the igloo graphics,
- 2 = intact,
- 1 = half-melted
- 0 = melted
-*/
-
-/* For both cities/igloos & penguins, the animation state is
- controlled by "status", and "counter" is used for timing. We also
- have "img" and "layer" so that the image can be pre-planned to have
- a specific rendering order (so that foreground/background issues
- are handled properly). Layer 0 is rendered first, then layer 1, and
- so on. */
-
-typedef struct city_type {
- int hits_left;
- int status, counter;
- int threatened; /* true if a comet is near */
- int x;
- int img,layer;
-} city_type;
-
-typedef struct penguin_type {
- int status, counter;
- int x;
- int img,layer;
-} penguin_type;
-
-typedef struct steam_type {
- int status, counter;
- int img,layer;
-} steam_type;
-
-#define NUM_SNOWFLAKES 100
-
-typedef struct cloud_type {
- int status;
- int city;
- int x,y;
- int snowflake_x[NUM_SNOWFLAKES];
- int snowflake_y[NUM_SNOWFLAKES];
- int snowflake_size[NUM_SNOWFLAKES];
-} cloud_type;
-
#define GAME_MESSAGE_LENGTH 100
typedef struct {
@@ -101,51 +35,10 @@ enum {
GAME_OVER_ERROR
};
-/* City animation status types */
-enum {
- CITY_PRESENT,
- CITY_EXPLODING,
- CITY_EVAPORATING,
- CITY_REBUILDING,
- CITY_GONE
-};
-
-/* Penguin animation status types */
-enum {
- PENGUIN_OFFSCREEN,
- PENGUIN_HAPPY,
- PENGUIN_FLAPPING,
- PENGUIN_DUCKING,
- PENGUIN_GRUMPY,
- PENGUIN_WORRIED,
- PENGUIN_WALKING_OFF,
- PENGUIN_WALKING_ON,
- PENGUIN_STANDING_UP,
- PENGUIN_SITTING_DOWN,
- PENGUIN_BOWING
-};
-
-/* Steam animation status types */
-enum {
- STEAM_OFF,
- STEAM_ON
-};
-
-/* Cloud & snowflake animation types */
-enum {
- EXTRA_LIFE_OFF,
- EXTRA_LIFE_ON
-};
-
int game(void);
void game_set_start_message(const char*, const char*, const char*, const char*);
-/* draw_nums() is used in options.c and factoroids.c/h so need extern linkage */
void draw_nums(const char* str, int x, int y);
-
-/*used in factoroids.c/h*/
-int pause_game(void);
-//void putpixel(SDL_Surface* surface, int x, int y, Uint32 pixel);
void draw_line(int x1, int y1, int x2, int y2, int r, int g, int b);
void draw_numbers(const char* str, int x, int y);
diff --git a/src/map.h b/src/map.h
index f4434a7..bc5539d 100644
--- a/src/map.h
+++ b/src/map.h
@@ -23,5 +23,5 @@ void th_draw_map(void);
//Generates the th_map from a XML string.
th_map** th_make_map(char *);
-char* th_serialize_map(th_map **)
+char* th_serialize_map(th_map **);
diff --git a/tuxmath.spec.in b/tuxmath.spec.in
index b04bfba..770bee4 100644
--- a/tuxmath.spec.in
+++ b/tuxmath.spec.in
@@ -14,7 +14,7 @@ Obsoletes: tuxmath_preview <= @VERSION@
Provides: tuxmath_preview = @VERSION@
%define realname @PACKAGE@
%define progname @PACKAGE@
-Summary: Tux Math - educational math game
+Summary: Tux History - educational History game
Version: @VERSION@
Release: 1
License: GPL
--
tuxhistory - Educational history game
More information about the Tux4kids-commits
mailing list