[Tux4kids-commits] r289 - in tuxmath/trunk: . data/images/sprites docs nsis src

tholy-guest at alioth.debian.org tholy-guest at alioth.debian.org
Tue Oct 9 05:19:16 UTC 2007


Author: tholy-guest
Date: 2007-10-09 05:19:15 +0000 (Tue, 09 Oct 2007)
New Revision: 289

Modified:
   tuxmath/trunk/configure
   tuxmath/trunk/data/images/sprites/Makefile
   tuxmath/trunk/data/images/sprites/Makefile.in
   tuxmath/trunk/docs/TODO.txt
   tuxmath/trunk/docs/changelog
   tuxmath/trunk/nsis/tuxmath.nsi
   tuxmath/trunk/nsis/tuxmath_with_conf.nsi
   tuxmath/trunk/src/Makefile.in
   tuxmath/trunk/src/fileops.c
   tuxmath/trunk/src/game.c
   tuxmath/trunk/src/game.h
   tuxmath/trunk/src/mathcards.c
   tuxmath/trunk/src/options.c
   tuxmath/trunk/src/options.h
   tuxmath/trunk/src/titlescreen.c
   tuxmath/trunk/src/tuxmath.h
Log:
The beginning of "real" help for tuxmath. I moved the help menu item
onto the first screen since it's something we might want new users to
notice right away.  Definitely needs a help sprite.


Modified: tuxmath/trunk/configure
===================================================================
--- tuxmath/trunk/configure	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/configure	2007-10-09 05:19:15 UTC (rev 289)
@@ -666,7 +666,6 @@
 INSTALL_PROGRAM
 INSTALL_SCRIPT
 INSTALL_DATA
-am__isrc
 CYGPATH_W
 PACKAGE
 VERSION
@@ -1976,8 +1975,7 @@
     NONENONEs,x,x, &&
   program_prefix=${target_alias}-
 
-am__api_version='1.10'
-
+am__api_version="1.9"
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
 # incompatible versions:
@@ -2129,54 +2127,39 @@
 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
 fi
 
-{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
-echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; }
-if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+  # We used to keeping the `.' as first argument, in order to
+  # allow $(mkdir_p) to be used without argument.  As in
+  #   $(mkdir_p) $(somedir)
+  # where $(somedir) is conditionally defined.  However this is wrong
+  # for two reasons:
+  #  1. if the package is installed by a user who cannot write `.'
+  #     make install will fail,
+  #  2. the above comment should most certainly read
+  #     $(mkdir_p) $(DESTDIR)$(somedir)
+  #     so it does not work when $(somedir) is undefined and
+  #     $(DESTDIR) is not.
+  #  To support the latter case, we have to write
+  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+  #  so the `.' trick is pointless.
+  mkdir_p='mkdir -p --'
 else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in mkdir gmkdir; do
-	 for ac_exec_ext in '' $ac_executable_extensions; do
-	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
-	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
-	     'mkdir (GNU coreutils) '* | \
-	     'mkdir (coreutils) '* | \
-	     'mkdir (fileutils) '4.1*)
-	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
-	       break 3;;
-	   esac
-	 done
-       done
-done
-IFS=$as_save_IFS
-
-fi
-
-  if test "${ac_cv_path_mkdir+set}" = set; then
-    MKDIR_P="$ac_cv_path_mkdir -p"
+  # On NextStep and OpenStep, the `mkdir' command does not
+  # recognize any option.  It will interpret all options as
+  # directories to create, and then abort because `.' already
+  # exists.
+  for d in ./-p ./--version;
+  do
+    test -d $d && rmdir $d
+  done
+  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+  if test -f "$ac_aux_dir/mkinstalldirs"; then
+    mkdir_p='$(mkinstalldirs)'
   else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    test -d ./--version && rmdir ./--version
-    MKDIR_P="$ac_install_sh -d"
+    mkdir_p='$(install_sh) -d'
   fi
 fi
-{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5
-echo "${ECHO_T}$MKDIR_P" >&6; }
 
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
-  [\\/$]* | ?:[\\/]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
 for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -2258,16 +2241,12 @@
 fi
 rmdir .tst 2>/dev/null
 
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
-  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
-  # is not polluted with repeated "-I."
-  am__isrc=' -I$(srcdir)'
-  # test to see if srcdir already configured
-  if test -f $srcdir/config.status; then
-    { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
    { (exit 1); exit 1; }; }
-  fi
 fi
 
 # test whether we have cygpath
@@ -2310,7 +2289,7 @@
 
 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
-install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
 
 # Installed binaries are usually stripped using `strip' when the user
 # run `make install-strip'.  However `strip' might not be the right
@@ -2414,7 +2393,7 @@
 fi
 
 fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
 
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
@@ -3413,7 +3392,9 @@
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
 fi
- if test "x$enable_dependency_tracking" != xno; then
+
+
+if test "x$enable_dependency_tracking" != xno; then
   AMDEP_TRUE=
   AMDEP_FALSE='#'
 else
@@ -3423,6 +3404,7 @@
 
 
 
+
 depcc="$CC"   am_compiler_list=
 
 { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
@@ -3490,7 +3472,6 @@
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
        $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
          >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
@@ -3520,7 +3501,9 @@
 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
- if
+
+
+if
   test "x$enable_dependency_tracking" != xno \
   && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
   am__fastdepCC_TRUE=
@@ -3890,7 +3873,9 @@
 { echo "$as_me:$LINENO: result: $native_win32" >&5
 echo "${ECHO_T}$native_win32" >&6; }
 
- if test "$native_win32" = yes; then
+
+
+if test "$native_win32" = yes; then
   BUILD_MINGW32_TRUE=
   BUILD_MINGW32_FALSE='#'
 else
@@ -5569,7 +5554,9 @@
 PACKAGE_DATA_DIR="data"
 
 
- if test "$native_win32" = yes; then
+
+
+if test "$native_win32" = yes; then
   BUILD_MINGW32_TRUE=
   BUILD_MINGW32_FALSE='#'
 else
@@ -5648,7 +5635,9 @@
 fi
 
 
- if test "$dll_path" = no; then
+
+
+if test "$dll_path" = no; then
   NSI_BUILD_TRUE=
   NSI_BUILD_FALSE='#'
 else
@@ -5672,7 +5661,9 @@
 fi
 
 
- if test "$tuxmath_config_path" != no; then
+
+
+if test "$tuxmath_config_path" != no; then
   NSI_USE_TUXMATH_CONF_TRUE=
   NSI_USE_TUXMATH_CONF_FALSE='#'
 else
@@ -6234,7 +6225,6 @@
 ac_pwd='$ac_pwd'
 srcdir='$srcdir'
 INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
 _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF
@@ -6476,7 +6466,6 @@
 INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
 INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
 INSTALL_DATA!$INSTALL_DATA$ac_delim
-am__isrc!$am__isrc$ac_delim
 CYGPATH_W!$CYGPATH_W$ac_delim
 PACKAGE!$PACKAGE$ac_delim
 VERSION!$VERSION$ac_delim
@@ -6521,6 +6510,7 @@
 GREP!$GREP$ac_delim
 EGREP!$EGREP$ac_delim
 POW_LIB!$POW_LIB$ac_delim
+LIBOBJS!$LIBOBJS$ac_delim
 _ACEOF
 
   if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -6562,7 +6552,6 @@
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
-LIBOBJS!$LIBOBJS$ac_delim
 WINDRES!$WINDRES$ac_delim
 PACKAGE_DATA_DIR!$PACKAGE_DATA_DIR$ac_delim
 NSI_INSTALL_DIR!$NSI_INSTALL_DIR$ac_delim
@@ -6576,7 +6565,7 @@
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 12; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 11; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
@@ -6803,11 +6792,6 @@
   [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
   *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
   esac
-  ac_MKDIR_P=$MKDIR_P
-  case $MKDIR_P in
-  [\\/$]* | ?:[\\/]* ) ;;
-  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
-  esac
 _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF
@@ -6861,7 +6845,6 @@
 s&@abs_builddir@&$ac_abs_builddir&;t t
 s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
 s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
 " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
 
@@ -7026,9 +7009,8 @@
   # some people rename them; so instead we look at the file content.
   # Grep'ing the first line is not enough: some people post-process
   # each Makefile.in and add a new line on top of each file to say so.
-  # Grep'ing the whole file is not good either: AIX grep has a line
-  # limit of 2048, but all sed's we know have understand at least 4000.
-  if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then
+  # So let's grep whole file.
+  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
     dirpart=`$as_dirname -- "$mf" ||
 $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$mf" : 'X\(//\)[^/]' \| \

Modified: tuxmath/trunk/data/images/sprites/Makefile
===================================================================
--- tuxmath/trunk/data/images/sprites/Makefile	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/data/images/sprites/Makefile	2007-10-09 05:19:15 UTC (rev 289)
@@ -49,13 +49,13 @@
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /home/tim/src/tux4kids/tuxmath/trunk/missing --run aclocal-1.10
+ACLOCAL = ${SHELL} /home/tim/src/tux4kids/tuxmath/trunk/missing --run aclocal-1.9
 AMDEP_FALSE = #
 AMDEP_TRUE = 
 AMTAR = ${SHELL} /home/tim/src/tux4kids/tuxmath/trunk/missing --run tar
 AUTOCONF = ${SHELL} /home/tim/src/tux4kids/tuxmath/trunk/missing --run autoconf
 AUTOHEADER = ${SHELL} /home/tim/src/tux4kids/tuxmath/trunk/missing --run autoheader
-AUTOMAKE = ${SHELL} /home/tim/src/tux4kids/tuxmath/trunk/missing --run automake-1.10
+AUTOMAKE = ${SHELL} /home/tim/src/tux4kids/tuxmath/trunk/missing --run automake-1.9
 AWK = gawk
 BUILD_MINGW32_FALSE = 
 BUILD_MINGW32_TRUE = #
@@ -76,13 +76,13 @@
 INSTALL_DATA = ${INSTALL} -m 644
 INSTALL_PROGRAM = ${INSTALL}
 INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
 LDFLAGS = 
 LIBOBJS = 
 LIBS =  -L/usr/lib -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf
 LTLIBOBJS = 
 MAKEINFO = ${SHELL} /home/tim/src/tux4kids/tuxmath/trunk/missing --run makeinfo
-NAME_VERSION = tuxmath-1.5.4
+NAME_VERSION = tuxmath-1.5.5
 NSIS = no
 NSI_BUILD_FALSE = #
 NSI_BUILD_TRUE = 
@@ -96,9 +96,9 @@
 PACKAGE_BUGREPORT = tuxmath-devel at lists.sourceforge.net
 PACKAGE_DATA_DIR = data
 PACKAGE_NAME = Tux Of Math Command
-PACKAGE_STRING = Tux Of Math Command 1.5.4
+PACKAGE_STRING = Tux Of Math Command 1.5.5
 PACKAGE_TARNAME = tuxmath
-PACKAGE_VERSION = 1.5.4
+PACKAGE_VERSION = 1.5.5
 PATH_SEPARATOR = :
 POW_LIB = 
 SDL_CFLAGS = -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
@@ -107,7 +107,7 @@
 SET_MAKE = 
 SHELL = /bin/bash
 STRIP = 
-VERSION = 1.5.4
+VERSION = 1.5.5
 WINDRES = 
 ac_ct_CC = gcc
 am__fastdepCC_FALSE = #
@@ -136,13 +136,13 @@
 htmldir = ${docdir}
 includedir = ${prefix}/include
 infodir = ${datarootdir}/info
-install_sh = $(SHELL) /home/tim/src/tux4kids/tuxmath/trunk/install-sh
+install_sh = /home/tim/src/tux4kids/tuxmath/trunk/install-sh
 libdir = ${exec_prefix}/lib
 libexecdir = ${exec_prefix}/libexec
 localedir = ${datarootdir}/locale
 localstatedir = ${prefix}/var
 mandir = ${datarootdir}/man
-mkdir_p = /bin/mkdir -p
+mkdir_p = mkdir -p --
 oldincludedir = /usr/include
 pdfdir = ${docdir}
 prefix = /usr/local

Modified: tuxmath/trunk/data/images/sprites/Makefile.in
===================================================================
--- tuxmath/trunk/data/images/sprites/Makefile.in	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/data/images/sprites/Makefile.in	2007-10-09 05:19:15 UTC (rev 289)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -13,11 +13,15 @@
 # PARTICULAR PURPOSE.
 
 @SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -46,11 +50,15 @@
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+BUILD_MINGW32_FALSE = @BUILD_MINGW32_FALSE@
+BUILD_MINGW32_TRUE = @BUILD_MINGW32_TRUE@
 CC = @CC@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
@@ -65,7 +73,6 @@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
-INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -75,12 +82,15 @@
 LIBS = @LIBS@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
 NAME_VERSION = @NAME_VERSION@
 NSIS = @NSIS@
+NSI_BUILD_FALSE = @NSI_BUILD_FALSE@
+NSI_BUILD_TRUE = @NSI_BUILD_TRUE@
 NSI_DLL_DIR = @NSI_DLL_DIR@
 NSI_INSTALL_DIR = @NSI_INSTALL_DIR@
 NSI_TUXMATH_CONF_DIR = @NSI_TUXMATH_CONF_DIR@
+NSI_USE_TUXMATH_CONF_FALSE = @NSI_USE_TUXMATH_CONF_FALSE@
+NSI_USE_TUXMATH_CONF_TRUE = @NSI_USE_TUXMATH_CONF_TRUE@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -99,11 +109,9 @@
 STRIP = @STRIP@
 VERSION = @VERSION@
 WINDRES = @WINDRES@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -115,7 +123,6 @@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
-builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -143,15 +150,12 @@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
 sysconfdir = @sysconfdir@
 target = @target@
 target_alias = @target_alias@
 target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
 EXTRA_DIST = cascade0.png	\
 	cascade10.png	\
 	cascade1.png	\
@@ -287,6 +291,7 @@
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+uninstall-info-am:
 tags: TAGS
 TAGS:
 
@@ -295,21 +300,22 @@
 
 
 distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
@@ -368,20 +374,12 @@
 
 install-data-am:
 
-install-dvi: install-dvi-am
-
 install-exec-am:
 
-install-html: install-html-am
-
 install-info: install-info-am
 
 install-man:
 
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -400,19 +398,16 @@
 
 ps-am:
 
-uninstall-am:
+uninstall-am: uninstall-info-am
 
-.MAKE: install-am install-strip
-
 .PHONY: all all-am check check-am clean clean-generic distclean \
 	distclean-generic distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
 	install-strip installcheck installcheck-am installdirs \
 	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.

Modified: tuxmath/trunk/docs/TODO.txt
===================================================================
--- tuxmath/trunk/docs/TODO.txt	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/docs/TODO.txt	2007-10-09 05:19:15 UTC (rev 289)
@@ -1,8 +1,9 @@
 TODO.txt for "tuxmath"
 
-2007.Mar.05
+2007.Oct.08
 
 Build:
+  * Make a relocatable binary for Linux (klik package?)
   * Refine NSIS installer for Windows (or perhaps executable
     itself) to create Start Menu link to options.txt file
 
@@ -13,12 +14,12 @@
   * svg support - allow game to draw correctly at any resolution.
 
 Interface:
+  * Create a Help sprite
   * Add more sound effects and music files
   * Speech mode
   * Add option for number-keys to control main menu and possible options
     (for mouseless scenarios where arrow keys might not be the available...
     is there such a thing as numeric-only keyboards for PCs???)
-  * High-score table
   * Implement lockfile to prevent multiple invocations.
 
 Game Play:
@@ -30,6 +31,8 @@
     correct, etc. on a per-user basis, even if installation doesn't have 
     students log into computers individually.
   * Multiplayer mode - points go to whoever shoots the comet first.
+  * Re-examine algorithm for spacing of comets (allow game to deliver
+    problems faster even if the comet speed limit is not raised).
 
 Documentation:
   * Finish README.txt
@@ -48,3 +51,5 @@
   * Abstract SDL_BlitSurface() calls
   * Consider moving to C++ (ducks!)
 
+Website:
+  * Make something more user-friendly

Modified: tuxmath/trunk/docs/changelog
===================================================================
--- tuxmath/trunk/docs/changelog	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/docs/changelog	2007-10-09 05:19:15 UTC (rev 289)
@@ -1,3 +1,12 @@
+2007.Oct.09 (svn.debian.org/tux4kids - revision 289)
+  Options:
+      * Start of "real" help for tuxmath. I've tried to keep the text
+	simple for early readers, but I imagine this could be improved.
+	Needs a help sprite in the menu.
+
+      Tim Holy <holy at wustl.edu>
+	
+	
 2007.Oct.03 (svn.debian.org/tux4kids - revision 283)
   Version 1.5.5
   Code:

Modified: tuxmath/trunk/nsis/tuxmath.nsi
===================================================================
--- tuxmath/trunk/nsis/tuxmath.nsi	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/nsis/tuxmath.nsi	2007-10-09 05:19:15 UTC (rev 289)
@@ -2,7 +2,7 @@
 # with a few tiny modifications by Phil Harper(philh at theopencd.org)
 # modified for tuxmath by Yves Combe (yves at ycombe.net)
 
-!define PKG_VERSION "1.5.4"
+!define PKG_VERSION "1.5.5"
 !define PKG_PREFIX  "tuxmath"
 
 !define APP_PREFIX  "TuxMath"

Modified: tuxmath/trunk/nsis/tuxmath_with_conf.nsi
===================================================================
--- tuxmath/trunk/nsis/tuxmath_with_conf.nsi	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/nsis/tuxmath_with_conf.nsi	2007-10-09 05:19:15 UTC (rev 289)
@@ -2,7 +2,7 @@
 # with a few tiny modifications by Phil Harper(philh at theopencd.org)
 # modified for tuxmath by Yves Combe (yves at ycombe.net)
 
-!define PKG_VERSION "1.5.4"
+!define PKG_VERSION "1.5.5"
 !define PKG_PREFIX  "tuxmath"
 
 !define APP_PREFIX  "TuxMath"

Modified: tuxmath/trunk/src/Makefile.in
===================================================================
--- tuxmath/trunk/src/Makefile.in	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/src/Makefile.in	2007-10-09 05:19:15 UTC (rev 289)
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.10 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,11 +15,15 @@
 @SET_MAKE@
 
 
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
 install_sh_SCRIPT = $(install_sh) -c
@@ -67,7 +71,7 @@
 	fileops.$(OBJEXT) ConvertUTF.$(OBJEXT) SDL_extras.$(OBJEXT)
 tuxmath_OBJECTS = $(am_tuxmath_OBJECTS)
 tuxmath_LDADD = $(LDADD)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
@@ -78,24 +82,25 @@
 DIST_SOURCES = $(TuxMath_SOURCES) $(tuxmath_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+	install-exec-recursive install-info-recursive \
+	install-recursive installcheck-recursive installdirs-recursive \
+	pdf-recursive ps-recursive uninstall-info-recursive \
+	uninstall-recursive
 HEADERS = $(noinst_HEADERS)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
-  distclean-recursive maintainer-clean-recursive
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
 AWK = @AWK@
+BUILD_MINGW32_FALSE = @BUILD_MINGW32_FALSE@
+BUILD_MINGW32_TRUE = @BUILD_MINGW32_TRUE@
 CC = @CC@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
@@ -110,7 +115,6 @@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 GREP = @GREP@
-INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -120,12 +124,15 @@
 LIBS = @LIBS@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
 NAME_VERSION = @NAME_VERSION@
 NSIS = @NSIS@
+NSI_BUILD_FALSE = @NSI_BUILD_FALSE@
+NSI_BUILD_TRUE = @NSI_BUILD_TRUE@
 NSI_DLL_DIR = @NSI_DLL_DIR@
 NSI_INSTALL_DIR = @NSI_INSTALL_DIR@
 NSI_TUXMATH_CONF_DIR = @NSI_TUXMATH_CONF_DIR@
+NSI_USE_TUXMATH_CONF_FALSE = @NSI_USE_TUXMATH_CONF_FALSE@
+NSI_USE_TUXMATH_CONF_TRUE = @NSI_USE_TUXMATH_CONF_TRUE@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -146,11 +153,9 @@
 
 # SUBDIRS = po
 WINDRES = @WINDRES@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
 ac_ct_CC = @ac_ct_CC@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
@@ -162,7 +167,6 @@
 build_cpu = @build_cpu@
 build_os = @build_os@
 build_vendor = @build_vendor@
-builddir = @builddir@
 datadir = @datadir@
 datarootdir = @datarootdir@
 docdir = @docdir@
@@ -190,15 +194,12 @@
 psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
 sysconfdir = @sysconfdir@
 target = @target@
 target_alias = @target_alias@
 target_cpu = @target_cpu@
 target_os = @target_os@
 target_vendor = @target_vendor@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
 SUBDIRS = po
 @BUILD_MINGW32_FALSE at TUXMATHRC = 
 tuxmath_SOURCES = tuxmath.c \
@@ -274,7 +275,7 @@
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
-	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
 	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
 	  if test -f $$p \
@@ -297,10 +298,10 @@
 	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
 TuxMath$(EXEEXT): $(TuxMath_OBJECTS) $(TuxMath_DEPENDENCIES) 
 	@rm -f TuxMath$(EXEEXT)
-	$(LINK) $(TuxMath_OBJECTS) $(TuxMath_LDADD) $(LIBS)
+	$(LINK) $(TuxMath_LDFLAGS) $(TuxMath_OBJECTS) $(TuxMath_LDADD) $(LIBS)
 tuxmath$(EXEEXT): $(tuxmath_OBJECTS) $(tuxmath_DEPENDENCIES) 
 	@rm -f tuxmath$(EXEEXT)
-	$(LINK) $(tuxmath_OBJECTS) $(tuxmath_LDADD) $(LIBS)
+	$(LINK) $(tuxmath_LDFLAGS) $(tuxmath_OBJECTS) $(tuxmath_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -327,18 +328,19 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tuxmath.Po at am__quote@
 
 .c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+uninstall-info-am:
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -371,7 +373,8 @@
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
 	@failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
@@ -472,21 +475,22 @@
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
 	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
 	    fi; \
@@ -500,7 +504,7 @@
 	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+	    || $(mkdir_p) "$(distdir)/$$subdir" \
 	    || exit 1; \
 	    distdir=`$(am__cd) $(distdir) && pwd`; \
 	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
@@ -508,8 +512,6 @@
 	      $(MAKE) $(AM_MAKEFLAGS) \
 	        top_distdir="$$top_distdir" \
 	        distdir="$$distdir/$$subdir" \
-		am__remove_distdir=: \
-		am__skip_length_check=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -520,7 +522,7 @@
 installdirs: installdirs-recursive
 installdirs-am:
 	for dir in "$(DESTDIR)$(bindir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
 	done
 install: install-recursive
 install-exec: install-exec-recursive
@@ -568,20 +570,12 @@
 
 install-data-am:
 
-install-dvi: install-dvi-recursive
-
 install-exec-am: install-binPROGRAMS
 
-install-html: install-html-recursive
-
 install-info: install-info-recursive
 
 install-man:
 
-install-pdf: install-pdf-recursive
-
-install-ps: install-ps-recursive
-
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -601,25 +595,23 @@
 
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
-	install-strip
+uninstall-info: uninstall-info-recursive
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-binPROGRAMS \
-	clean-generic ctags ctags-recursive distclean \
-	distclean-compile distclean-generic distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-binPROGRAMS install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	installdirs-am maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
-	ps ps-am tags tags-recursive uninstall uninstall-am \
-	uninstall-binPROGRAMS
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
+	clean clean-binPROGRAMS clean-generic clean-recursive ctags \
+	ctags-recursive distclean distclean-compile distclean-generic \
+	distclean-recursive distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-binPROGRAMS \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs installdirs-am \
+	maintainer-clean maintainer-clean-generic \
+	maintainer-clean-recursive mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-recursive pdf pdf-am ps ps-am \
+	tags tags-recursive uninstall uninstall-am \
+	uninstall-binPROGRAMS uninstall-info-am
 
 
 # How to make an RC file

Modified: tuxmath/trunk/src/fileops.c
===================================================================
--- tuxmath/trunk/src/fileops.c	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/src/fileops.c	2007-10-09 05:19:15 UTC (rev 289)
@@ -85,6 +85,7 @@
 };
 
 TTF_Font  *default_font;
+TTF_Font  *help_font;
 
 /* local function prototypes: */
 static int find_tuxmath_dir(void);
@@ -2644,8 +2645,10 @@
 {
   default_font = LoadFont((const unsigned char*)DEFAULT_FONT_NAME,
                            DEFAULT_MENU_FONT_SIZE);
+  help_font = LoadFont((const unsigned char*)DEFAULT_FONT_NAME,
+                           DEFAULT_HELP_FONT_SIZE);
 
-  if (default_font)
+  if (default_font && help_font)
   {
 #ifdef TUXMATH_DEBUG
     fprintf(stderr, "load_default_font(): %s loaded successfully\n\n",

Modified: tuxmath/trunk/src/game.c
===================================================================
--- tuxmath/trunk/src/game.c	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/src/game.c	2007-10-09 05:19:15 UTC (rev 289)
@@ -145,8 +145,13 @@
 static laser_type laser;
 static SDL_Surface* bkgd = NULL;
 
+static game_message s1, s2, s3, s4;
+static int x_is_blinking = 0;
+
 /* Local function prototypes: */
 static int  game_initialize(void);
+static void game_cleanup(void);
+static void game_handle_help(void);
 static void game_handle_user_events(void);
 static void game_handle_demo(void);
 static void game_handle_answer(void);
@@ -162,6 +167,10 @@
 static int check_exit_conditions(void);
 
 static void draw_numbers(const char* str, int x, int y);
+static void game_set_message(game_message *,unsigned char *,int x, int y);
+static void game_clear_message(game_message*);
+static void game_write_message(const game_message*);
+static void game_write_messages(void);
 static void draw_led_console(void);
 static void draw_question_counter(void);
 static void draw_console_image(int i);
@@ -204,6 +213,12 @@
     return 0;
   } 
 
+  if (Opts_HelpMode()) {
+    game_handle_help();
+    game_cleanup();
+    return 0;
+  }
+
   /* --- MAIN GAME LOOP: --- */ 
   do
   {
@@ -414,28 +429,8 @@
 
   } 
 
-  /* Free background: */
-  if (bkgd != NULL)
-  {
-    SDL_FreeSurface(bkgd);
-    bkgd = NULL;
-  }
+  game_cleanup();
 
-  /* Free dynamically-allocated items */
-  free_on_exit();
-
-  /* Stop music: */
-#ifndef NOSOUND
-  if (Opts_UsingSound())
-  {
-    if (Mix_PlayingMusic())
-    {
-      Mix_HaltMusic();
-    }
-  }
-#endif
-
-
   /* Write post-game info to game summary file: */
   if (Opts_SaveSummary())
   {
@@ -445,11 +440,6 @@
   /* Save score in case needed for high score table: */
   Opts_SetLastScore(score);
 
-#ifdef TUXMATH_DEBUG
-  fprintf(stderr, "Leaving game():\n");
-#endif
-
-
   /* Return the chosen command: */
   if (GAME_OVER_WINDOW_CLOSE == game_status) 
   {
@@ -615,9 +605,322 @@
   tux_anim = -1;
   tux_anim_frame = 0;
 
+  // Initialize the messages
+  game_clear_message(&s1);
+  game_clear_message(&s2);
+  game_clear_message(&s3);
+  game_clear_message(&s4);
+
+  x_is_blinking = 0;
+
   return 1;
 }
 
+
+void game_cleanup(void)
+{
+  /* Free background: */
+  if (bkgd != NULL)
+  {
+    SDL_FreeSurface(bkgd);
+    bkgd = NULL;
+  }
+
+  /* Free dynamically-allocated items */
+  free_on_exit();
+
+  /* Stop music: */
+#ifndef NOSOUND
+  if (Opts_UsingSound())
+  {
+    if (Mix_PlayingMusic())
+    {
+      Mix_HaltMusic();
+    }
+  }
+#endif
+
+
+#ifdef TUXMATH_DEBUG
+  fprintf(stderr, "Leaving game():\n");
+#endif
+
+}
+
+void game_handle_help(void)
+{
+  Uint32 last_time, now_time;
+  SDL_Rect dest;
+  const int left_edge = 140;
+
+  // Here are some things that have to happen before we can safely
+  // draw the screen
+  tux_img = IMG_TUX_CONSOLE1;
+  old_tux_img = tux_img;
+  tux_pressing = 0;
+
+  game_handle_user_events();
+  game_handle_cities();
+  game_handle_penguins();
+
+  // Write the introductory text
+  game_set_message(&s1,"Welcome to TuxMath!",-1,50);
+
+  // Draw the screen
+  game_draw();
+
+#ifndef NOSOUND
+    if (Opts_UsingSound())
+    {
+      if (!Mix_PlayingMusic())
+      {
+	    Mix_PlayMusic(musics[MUS_GAME], 0);
+      }  
+    }
+#endif
+ 
+  // Pause while accepting user input
+  for (frame = 0; frame < 20; frame++) {
+    if (game_delay_and_exit())
+      return;
+  }
+
+  game_set_message(&s2,"Your mission is to save your", left_edge, 100);
+  game_set_message(&s3,"penguins' igloos from the", left_edge, 135);
+  game_set_message(&s4,"falling comets.", left_edge, 170);
+  game_draw();
+
+  for (frame = 0; frame < 50; frame++) {
+    if (game_delay_and_exit())
+      return;
+  }
+
+  // Bring in a comet
+  speed = 2;
+  comets[0].alive = 1;
+  comets[0].expl = 0;
+  comets[0].answer = 3;
+  num_comets_alive = 1;
+  comets[0].city = 0;
+  comets[0].x = cities[0].x;
+  comets[0].y = 0;
+  comets[0].zapped = 0;
+  comets[0].bonus = 0;
+  comets[0].flashcard.num1 = 2;
+  comets[0].flashcard.num2 = 1;
+  comets[0].flashcard.num3 = 3;
+  comets[0].flashcard.operation = MC_OPER_ADD;
+  comets[0].flashcard.format = MC_FORMAT_ANS_LAST;
+  strncpy(comets[0].flashcard.formula_string,"2 + 1 = ?",MC_FORMULA_LEN);
+  strncpy(comets[0].flashcard.answer_string,"3",MC_ANSWER_LEN);
+
+  last_time = SDL_GetTicks();
+  for (frame = 0; frame < 50; frame++) {
+    game_handle_user_events();
+    game_handle_comets();
+    game_handle_cities();
+    game_handle_penguins();
+    game_draw();
+    game_status = check_exit_conditions();
+    if (game_status != GAME_IN_PROGRESS)
+      return;
+    now_time = SDL_GetTicks();
+    if (now_time < last_time + FPS)
+      SDL_Delay(last_time+FPS - now_time);
+    last_time = now_time;
+  }
+
+  game_set_message(&s1,"Stop a comet by typing",left_edge,100);
+  game_set_message(&s2,"the answer to the math problem",left_edge,135);
+  game_set_message(&s3,"and hitting 'space' or 'enter'.",left_edge,170);
+  game_clear_message(&s4);
+
+  for (frame = 0; frame < 30; frame++) {
+    game_handle_user_events();
+    game_handle_comets();
+    game_handle_cities();
+    game_handle_penguins();
+    game_draw();
+    game_status = check_exit_conditions();
+    if (game_status != GAME_IN_PROGRESS)
+      return;
+    now_time = SDL_GetTicks();
+    if (now_time < last_time + FPS)
+      SDL_Delay(last_time+FPS - now_time);
+    last_time = now_time;
+  }
+
+  tux_pressing = 1;
+  digits[2] = 3;
+  game_handle_user_events();
+  game_handle_answer();
+  game_handle_tux();
+  game_handle_comets();
+  game_handle_cities();
+  game_handle_penguins();
+  game_draw();
+  now_time = SDL_GetTicks();
+  if (now_time < last_time + FPS)
+    SDL_Delay(last_time+FPS - now_time);
+  last_time = now_time;
+
+  tux_pressing = 1;
+  doing_answer = 1;
+  for (frame = 0; frame < 100; frame++) {
+    if (laser.alive > 0)
+      laser.alive--;
+    game_handle_answer();
+    game_handle_comets();
+    game_handle_cities();
+    game_handle_penguins();
+    game_draw();
+    game_handle_user_events();
+    game_status = check_exit_conditions();
+    if (game_status != GAME_IN_PROGRESS)
+      return;
+    now_time = SDL_GetTicks();
+    if (now_time < last_time + FPS)
+      SDL_Delay(last_time+FPS - now_time);
+    last_time = now_time;
+  }
+
+  game_set_message(&s1,"Fix your igloos by stopping",left_edge,100);
+  game_set_message(&s2,"bonus comets.",left_edge,135);
+  game_clear_message(&s3);
+
+  comets[0].alive = 1;
+  comets[0].expl = 0;
+  comets[0].answer = 9;
+  num_comets_alive = 1;
+  comets[0].city = 0;
+  comets[0].x = cities[0].x;
+  comets[0].y = 0;
+  comets[0].zapped = 0;
+  comets[0].bonus = 1;
+  comets[0].flashcard.num1 = 3;
+  comets[0].flashcard.num2 = 3;
+  comets[0].flashcard.num3 = 9;
+  comets[0].flashcard.operation = MC_OPER_MULT;
+  comets[0].flashcard.format = MC_FORMAT_ANS_LAST;
+  strncpy(comets[0].flashcard.formula_string,"3 * 3 = ?",MC_FORMULA_LEN);
+  strncpy(comets[0].flashcard.answer_string,"9",MC_ANSWER_LEN);
+
+  last_time = SDL_GetTicks();
+  for (frame = 0; frame < 75; frame++) {
+    game_handle_user_events();
+    game_handle_comets();
+    game_handle_cities();
+    game_handle_penguins();
+    game_draw();
+    game_status = check_exit_conditions();
+    if (game_status != GAME_IN_PROGRESS)
+      return;
+    now_time = SDL_GetTicks();
+    if (now_time < last_time + FPS)
+      SDL_Delay(last_time+FPS - now_time);
+    last_time = now_time;
+  }
+
+  tux_pressing = 1;
+  digits[2] = 9;
+  game_handle_user_events();
+  game_handle_answer();
+  game_handle_tux();
+  game_handle_comets();
+  game_handle_cities();
+  game_handle_penguins();
+  game_draw();
+  SDL_Delay(FPS);
+
+  tux_pressing = 1;
+  doing_answer = 1;
+  last_time = SDL_GetTicks();
+  for (frame = 0; frame < 100; frame++) {
+    if (laser.alive > 0)
+      laser.alive--;
+    game_handle_answer();
+    game_handle_comets();
+    game_handle_cities();
+    game_handle_penguins();
+    game_draw();
+    game_handle_user_events();
+    game_status = check_exit_conditions();
+    if (game_status != GAME_IN_PROGRESS)
+      return;
+    now_time = SDL_GetTicks();
+    if (now_time < last_time + FPS)
+      SDL_Delay(last_time+FPS - now_time);
+    last_time = now_time;
+  }
+
+  game_set_message(&s1,"Quit at any time by pressing",left_edge,100);
+  game_set_message(&s2,"'Esc' or clicking the 'X'",left_edge,135);
+  game_set_message(&s3,"in the upper right corner.",left_edge,170);
+
+  frame = 0;
+  x_is_blinking = 1;
+  do {
+    game_draw();
+    game_handle_user_events();
+    game_status = check_exit_conditions();
+    now_time = SDL_GetTicks();
+    if (now_time < last_time + FPS)
+      SDL_Delay(last_time+FPS - now_time);
+    last_time = now_time;
+    frame++;
+  } while (game_status == GAME_IN_PROGRESS);
+
+  x_is_blinking = 0;
+}
+
+int game_delay_and_exit(void)
+{
+  SDL_Delay(100);
+  game_handle_user_events();
+  game_status = check_exit_conditions();
+  return (game_status != GAME_IN_PROGRESS);
+}
+
+void game_set_message(game_message *msg,unsigned char *txt,int x,int y)
+{
+  msg->x = x;
+  msg->y = y;
+  strncpy(msg->message,txt,GAME_MESSAGE_LENGTH);
+}
+
+void game_clear_message(game_message *msg)
+{
+  game_set_message(msg,"",0,0);
+}
+
+void game_write_message(const game_message *msg)
+{
+  SDL_Surface *surf;
+  SDL_Rect rect;
+
+  if (strlen(msg->message) > 0) {
+    surf = BlackOutline( _(msg->message), help_font, &white);
+    rect.w = surf->w;
+    rect.h = surf->h;
+    if (msg->x < 0)
+      rect.x = (screen->w/2) - (rect.w/2);   // centered
+    else
+      rect.x = msg->x;              // left justified
+    rect.y = msg->y;
+    SDL_BlitSurface(surf, NULL, screen, &rect);
+    SDL_FreeSurface(surf);
+    //SDL_UpdateRect(screen, rect.x, rect.y, rect.w, rect.h);
+  }
+}
+
+void game_write_messages(void)
+{
+  game_write_message(&s1);
+  game_write_message(&s2);
+  game_write_message(&s3);
+  game_write_message(&s4);
+}
+
 void game_handle_user_events(void)
 {
   SDL_Event event;
@@ -1478,12 +1781,14 @@
                0);
 
   /* Draw stop button: */
-  dest.x = (screen->w - images[IMG_STOP]->w);
-  dest.y = 0;
-  dest.w = images[IMG_STOP]->w;
-  dest.h = images[IMG_STOP]->h;
-
-  SDL_BlitSurface(images[IMG_STOP], NULL, screen, &dest);
+  if (!x_is_blinking || (frame % 10 < 5)) {
+    dest.x = (screen->w - images[IMG_STOP]->w);
+    dest.y = 0;
+    dest.w = images[IMG_STOP]->w;
+    dest.h = images[IMG_STOP]->h;
+    
+    SDL_BlitSurface(images[IMG_STOP], NULL, screen, &dest);
+  }
    
   /* Draw cities/igloos and (if applicable) penguins: */
   if (Opts_UseIgloos()) {
@@ -1730,6 +2035,9 @@
   /* Draw console, LED numbers, & tux: */
   draw_led_console();
   draw_console_image(tux_img);
+
+  /* Draw any messages on the screen (used for the help mode) */
+  game_write_messages();
  
   /* Swap buffers: */
   SDL_Flip(screen);

Modified: tuxmath/trunk/src/game.h
===================================================================
--- tuxmath/trunk/src/game.h	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/src/game.h	2007-10-09 05:19:15 UTC (rev 289)
@@ -82,6 +82,13 @@
   int snowflake_size[NUM_SNOWFLAKES];
 } cloud_type;
 
+#define GAME_MESSAGE_LENGTH 100
+
+typedef struct {
+  int x,y;
+  char message[GAME_MESSAGE_LENGTH];
+} game_message;
+
 enum {
   GAME_IN_PROGRESS,
   GAME_OVER_WON,

Modified: tuxmath/trunk/src/mathcards.c
===================================================================
--- tuxmath/trunk/src/mathcards.c	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/src/mathcards.c	2007-10-09 05:19:15 UTC (rev 289)
@@ -2052,6 +2052,9 @@
 
   if (math_opts->addition_allowed)
   {
+    #ifdef MC_DEBUG
+    printf("\nAddition problems");
+    #endif
     for (i = math_opts->min_augend; i <= math_opts->max_augend; i++)
     {
       for (j = math_opts->min_addend; j <= math_opts->max_addend; j++)
@@ -2122,6 +2125,9 @@
 
   if (math_opts->subtraction_allowed)
   {
+    #ifdef MC_DEBUG
+    printf("\nSubtraction problems");
+    #endif
     for (i = math_opts->min_minuend; i <= math_opts->max_minuend; i++)
     {
       for (j = math_opts->min_subtrahend; j <= math_opts->max_subtrahend; j++)
@@ -2193,6 +2199,9 @@
 
   if (math_opts->multiplication_allowed)
   {
+    #ifdef MC_DEBUG
+    printf("\nMultiplication problems");
+    #endif
     for (i = math_opts->min_multiplier; i <= math_opts->max_multiplier; i++)
     {
       for (j = math_opts->min_multiplicand; j <= math_opts->max_multiplicand; j++)
@@ -2266,6 +2275,9 @@
 
   if (math_opts->division_allowed)
   {
+    #ifdef MC_DEBUG
+    printf("\nDivision problems");
+    #endif
     for (i = math_opts->min_quotient; i <= math_opts->max_quotient; i++)
     {
       for (j = math_opts->min_divisor; j <= math_opts->max_divisor; j++)
@@ -2338,6 +2350,9 @@
 
   if (math_opts->typing_practice_allowed)
   {
+    #ifdef MC_DEBUG
+    printf("\nTyping problems");
+    #endif
     for (i = math_opts->min_typing_num; i <= math_opts->max_typing_num; i++)
     {
       /* check if max_answer exceeded or if question */

Modified: tuxmath/trunk/src/options.c
===================================================================
--- tuxmath/trunk/src/options.c	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/src/options.c	2007-10-09 05:19:15 UTC (rev 289)
@@ -377,6 +377,7 @@
   game_options->menu_music = DEFAULT_MENU_MUSIC;
   game_options->fullscreen = DEFAULT_FULLSCREEN;
   game_options->use_bkgd = DEFAULT_USE_BKGD;
+  game_options->help_mode = DEFAULT_HELP_MODE;
   game_options->demo_mode = DEFAULT_DEMO_MODE;
   game_options->oper_override = DEFAULT_OPER_OVERRIDE;
   game_options->use_keypad = DEFAULT_USE_KEYPAD;
@@ -464,6 +465,12 @@
 }
 
 
+void Opts_SetHelpMode(int val)
+{
+  game_options->help_mode = int_to_bool(val);
+}
+
+
 void Opts_SetDemoMode(int val)
 {
   game_options->demo_mode = int_to_bool(val);
@@ -819,6 +826,17 @@
 }
 
 
+int Opts_HelpMode(void)
+{
+  if (!game_options)
+  {
+    fprintf(stderr, "\nOpts_HelpMode(): game_options not valid!\n");
+    return GAME_OPTS_INVALID;
+  }
+  return game_options->help_mode;
+}
+
+
 int Opts_DemoMode(void)
 {
   if (!game_options)

Modified: tuxmath/trunk/src/options.h
===================================================================
--- tuxmath/trunk/src/options.h	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/src/options.h	2007-10-09 05:19:15 UTC (rev 289)
@@ -34,6 +34,7 @@
   int menu_music;
   int fullscreen;
   int use_bkgd;
+  int help_mode;
   int demo_mode;
   int oper_override;
   int use_keypad;
@@ -99,6 +100,7 @@
 void Opts_SetMenuMusic(int val);
 void Opts_SetFullscreen(int val);
 void Opts_SetUseBkgd(int val);
+void Opts_SetHelpMode(int val);
 void Opts_SetDemoMode(int val);
 void Opts_SetOperOverride(int val);
 void Opts_SetUseKeypad(int val);
@@ -136,6 +138,7 @@
 int Opts_MenuMusic(void);
 int Opts_Fullscreen(void);
 int Opts_UseBkgd(void);
+int Opts_HelpMode(void);
 int Opts_DemoMode(void);
 int Opts_OperOverride(void);
 int Opts_AllowPause(void);

Modified: tuxmath/trunk/src/titlescreen.c
===================================================================
--- tuxmath/trunk/src/titlescreen.c	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/src/titlescreen.c	2007-10-09 05:19:15 UTC (rev 289)
@@ -609,14 +609,15 @@
 
 int run_main_menu(void)
 {
-  const unsigned char* menu_text[5] =
+  const unsigned char* menu_text[6] =
     {(const unsigned char*)N_("Math Command Training Academy"),
      (const unsigned char*)N_("Play Arcade Game"),
      (const unsigned char*)N_("Play Custom Game"),
+     (const unsigned char*)N_("Help"),
      (const unsigned char*)N_("More Options"),
      (const unsigned char*)N_("Quit")};
-  sprite* sprites[5] =
-    {NULL, NULL, NULL, NULL, NULL};
+  sprite* sprites[6] =
+    {NULL, NULL, NULL, NULL, NULL, NULL};
   menu_options menu_opts;
   int choice,ret;
 
@@ -624,57 +625,76 @@
   sprites[0] = sprite_list[SPRITE_TRAINING];
   sprites[1] = sprite_list[SPRITE_ARCADE];
   sprites[2] = sprite_list[SPRITE_CUSTOM];
-  sprites[3] = sprite_list[SPRITE_OPTIONS];
-  sprites[4] = sprite_list[SPRITE_QUIT];
+  sprites[3] = NULL;  // no help sprite yet
+  sprites[4] = sprite_list[SPRITE_OPTIONS];
+  sprites[5] = sprite_list[SPRITE_QUIT];
 
   set_default_menu_options(&menu_opts);
   menu_opts.ytop = 100;
   menu_opts.ygap = 15;
 
-  choice = choose_menu_item(menu_text,sprites,5,menu_opts);
-
+  choice = choose_menu_item(menu_text,sprites,6,menu_opts);
+  
   while (choice >= 0) {
     switch (choice) {
       case 0: {
-        ret = choose_config_file();
-        break;
+	// Training academy lessons
+	ret = choose_config_file();
+	break;
       }
       case 1: {
-        ret = run_arcade_menu();
-        break;
+	// Arcade games
+	ret = run_arcade_menu();
+	break;
       }
       case 2: {
-        ret = run_custom_menu();
-        break;
+	// Custom game
+	ret = run_custom_menu();
+	break;
       }
       case 3: {
-        ret = run_options_menu();
+	// Help
+	Opts_SetHelpMode(1);
+	Opts_SetDemoMode(0);
+	if (Opts_MenuMusic())  //Turn menu music off for game
+	  {audioMusicUnload();}
+	game();
+	if (Opts_MenuMusic()) //Turn menu music back on
+	  {audioMusicLoad( "tuxi.ogg", -1 );}
+	Opts_SetHelpMode(0);
+	break;
+      }
+      case 4: {
+	// More options
+	ret = run_options_menu();
         break;
       }
-      case 4: {
+      case 5: {
+	// Quit
         return 0;
       }
     }
     menu_opts.starting_entry = choice;
-    choice = choose_menu_item(menu_text,sprites,5,menu_opts);
+    choice = choose_menu_item(menu_text,sprites,6,menu_opts);
   }
   return 0;
 }
 
 int run_arcade_menu(void)
 {
-  const unsigned char* menu_text[5] =
+  const unsigned char* menu_text[6] =
     {(const unsigned char*)N_("Space Cadet"),
      (const unsigned char*)N_("Scout"),
      (const unsigned char*)N_("Ranger"),
      (const unsigned char*)N_("Ace"),
-     (const unsigned char*)N_("Hall Of Fame")};
+     (const unsigned char*)N_("Hall Of Fame"),
+     (const unsigned char*)N_("Main menu")};
   const char* arcade_config_files[4] =
     {"arcade/space_cadet", "arcade/scout", "arcade/ranger", "arcade/ace"};
   const int arcade_high_score_tables[4] =
     {CADET_HIGH_SCORE,SCOUT_HIGH_SCORE,RANGER_HIGH_SCORE,ACE_HIGH_SCORE};
-  sprite* sprites[5] =
-    {NULL, NULL, NULL, NULL, NULL};
+  sprite* sprites[6] =
+    {NULL, NULL, NULL, NULL, NULL, NULL};
   menu_options menu_opts;
   int choice,hs_table;
 
@@ -683,12 +703,13 @@
   sprites[1] = sprite_list[SPRITE_SCOUT];
   sprites[2] = sprite_list[SPRITE_RANGER];
   sprites[3] = sprite_list[SPRITE_ACE];
-  sprites[4] = sprite_list[SPRITE_MAIN];
+  sprites[4] = NULL;
+  sprites[5] = sprite_list[SPRITE_MAIN];
 
   set_default_menu_options(&menu_opts);
   menu_opts.ytop = 100;
 
-  choice = choose_menu_item(menu_text,sprites,5,menu_opts);
+  choice = choose_menu_item(menu_text,sprites,6,menu_opts);
 
   while (choice >= 0) {
     if (choice < 4) {
@@ -721,13 +742,17 @@
 	fprintf(stderr, "\nCould not find %s config file\n",arcade_config_files[choice]);
       }
 
-    } else {
+    } else if (choice == 4) {
       // Display the Hall of Fame
       DisplayHighScores(CADET_HIGH_SCORE);
     }
+    else {
+      // Return to main menu
+      return 0;
+    }
 
     menu_opts.starting_entry = choice;
-    choice = choose_menu_item(menu_text,sprites,5,menu_opts);
+    choice = choose_menu_item(menu_text,sprites,6,menu_opts);
   }
 
   return 0;
@@ -759,25 +784,24 @@
 
 int run_options_menu(void)
 {
-  const unsigned char* menu_text[6] =
+  const unsigned char* menu_text[5] =
     {(const unsigned char*)N_("Settings"),
-     (const unsigned char*)N_("Help"),
      (const unsigned char*)N_("Demo"),
      (const unsigned char*)N_("Credits"),
      (const unsigned char*)N_("Project Info"),
      (const unsigned char*)N_("Main Menu")};
-  sprite* sprites[6] =
-    {NULL, NULL, NULL, NULL, NULL, NULL};
+  sprite* sprites[5] =
+    {NULL, NULL, NULL, NULL, NULL};
   menu_options menu_opts;
   int choice;
 
   // Set up the sprites
-  sprites[5] = sprite_list[SPRITE_MAIN];
+  sprites[4] = sprite_list[SPRITE_MAIN];
 
   set_default_menu_options(&menu_opts);
   menu_opts.ytop = 100;
 
-  choice = choose_menu_item(menu_text,sprites,6,menu_opts);
+  choice = choose_menu_item(menu_text,sprites,5,menu_opts);
 
   while (choice >= 0) {
     switch (choice) {
@@ -787,11 +811,6 @@
       break;
     }
     case 1: {
-      // Help
-      NotImplemented();
-      break;
-    }
-    case 2: {
       // Demo
       if (read_named_config_file("demo"))
       {
@@ -806,26 +825,26 @@
 
       break;
     }
-    case 3: {
+    case 2: {
       // Credits
       //TitleScreen_unload_media();
       credits();
       //TitleScreen_load_media();
       break;
     }
-    case 4: {
+    case 3: {
       // Project Info
       NotImplemented();
       break;
     }
-    case 5: {
+    case 4: {
       // Main menu
       return 0;
     }
     }
 
     menu_opts.starting_entry = choice;
-    choice = choose_menu_item(menu_text,sprites,6,menu_opts);
+    choice = choose_menu_item(menu_text,sprites,5,menu_opts);
   }
 
   return 0;

Modified: tuxmath/trunk/src/tuxmath.h
===================================================================
--- tuxmath/trunk/src/tuxmath.h	2007-10-07 15:26:41 UTC (rev 288)
+++ tuxmath/trunk/src/tuxmath.h	2007-10-09 05:19:15 UTC (rev 289)
@@ -66,6 +66,7 @@
 #define DEFAULT_MENU_MUSIC 1
 #define DEFAULT_FULLSCREEN 1
 #define DEFAULT_USE_BKGD 1
+#define DEFAULT_HELP_MODE 0
 #define DEFAULT_DEMO_MODE 0
 #define DEFAULT_OPER_OVERRIDE 0
 #define DEFAULT_USE_KEYPAD 0
@@ -106,6 +107,7 @@
 
 #define DEFAULT_FONT_NAME "AndikaDesRevG.ttf"
 #define DEFAULT_MENU_FONT_SIZE 18
+#define DEFAULT_HELP_FONT_SIZE 32
 
 
 #define HIGH_SCORES_SAVED 10
@@ -160,6 +162,7 @@
 extern int flipped_img_lookup[];
 
 extern TTF_Font  *default_font;
+extern TTF_Font  *help_font;
 
 
 #ifndef NOSOUND




More information about the Tux4kids-commits mailing list