tennix.git
15 years agoOnly redraw game score strings when necessary
Thomas Perl [Mon, 26 Jan 2009 23:04:45 +0000 (27 00:04 +0100)]
Only redraw game score strings when necessary

Do not redraw the score strings every time the
render() method is called, but only when the text
really changes (using a flag in the GameState).

15 years agoRemove is_fading() from the graphics module
Thomas Perl [Mon, 26 Jan 2009 22:41:23 +0000 (26 23:41 +0100)]
Remove is_fading() from the graphics module

Only used in two places, now refactored.

15 years agoUpdated pygame test code
Thomas Perl [Wed, 21 Jan 2009 22:19:59 +0000 (21 23:19 +0100)]
Updated pygame test code

15 years agoAdd "--benchmark/-b" command line switch
Thomas Perl [Mon, 19 Jan 2009 18:33:20 +0000 (19 19:33 +0100)]
Add "--benchmark/-b" command line switch

When starting tennix with "--benchmark" or "-b", the
game will start in "AI vs. AI" mode for a limited
number of seconds. This can be used for benchmarking
different optimizations.

15 years agoMake sure graphics and sound data is really freed
Thomas Perl [Thu, 15 Jan 2009 11:10:45 +0000 (15 12:10 +0100)]
Make sure graphics and sound data is really freed

After loading of graphics and sound, make sure to
unload the allocated resources, because RWops does
not seem to free the resources, even if told so.

15 years agoBetter loading progress bar (uses button drawing)
Thomas Perl [Fri, 9 Jan 2009 14:01:13 +0000 (9 15:01 +0100)]
Better loading progress bar (uses button drawing)

15 years agoFix referee talk image usage; support more ball states
Thomas Perl [Fri, 9 Jan 2009 14:00:40 +0000 (9 15:00 +0100)]
Fix referee talk image usage; support more ball states

15 years agoLoading progress bar, add missing header files, Maemo
Thomas Perl [Thu, 8 Jan 2009 18:44:57 +0000 (8 19:44 +0100)]
Loading progress bar, add missing header files, Maemo

Add a progress bar while loading resources (graphics
and sound) from the datafile.

Add some missing "#include" lines (scratchbox complained).

Do not make the "hovering" sound on Maemo (touchscreen!)

15 years agoCache width and xposition in get_font_metrics
Thomas Perl [Thu, 8 Jan 2009 18:32:47 +0000 (8 19:32 +0100)]
Cache width and xposition in get_font_metrics

To save some cycles, do not re-calculate the font
metrics every time a string is drawn, but save the
width and xposition permanently after the first
calculation to speed up font drawing.

15 years agoUse Tennix Archive Format instead in-executable data
Thomas Perl [Wed, 7 Jan 2009 14:12:43 +0000 (7 15:12 +0100)]
Use Tennix Archive Format instead in-executable data

This makes the binary smaller, and we can free the
raw game data once the resources have been loaded.

Also, it makes recompiling easier. The data file is
currently named "tennix.tnx" and will be auto-built.

15 years agoVoice support, experimental wind, extended referee
Thomas Perl [Wed, 7 Jan 2009 13:09:38 +0000 (7 14:09 +0100)]
Voice support, experimental wind, extended referee

Add support for playing back voice tracks if voice
files are available (have to enable with "DELUXE=1").

Includes experimental support for in-game wind (you
can modify its direction with "1" and "2").

Add support for the extended referee mode if the
extended referee resources are available (DELUXE=1).

15 years agoTODO items after basic user experience test
Thomas Perl [Fri, 28 Nov 2008 14:00:46 +0000 (28 15:00 +0100)]
TODO items after basic user experience test

15 years agoAdd suggestions to TODO list
Thomas Perl [Fri, 28 Nov 2008 13:02:32 +0000 (28 14:02 +0100)]
Add suggestions to TODO list

15 years agoUpdate TODO list with ideas (tennix.dat)
Thomas Perl [Wed, 29 Oct 2008 15:29:38 +0000 (29 16:29 +0100)]
Update TODO list with ideas (tennix.dat)

15 years agoCorrect sounds (enable the racket/ground sounds)
Thomas Perl [Sat, 25 Oct 2008 00:02:27 +0000 (25 02:02 +0200)]
Correct sounds (enable the racket/ground sounds)

Make sure that we are able to correctly shuffle between
the different racket sounds by fixing the calculation and
also making sure that the audience clapping stops after
the ball is served (range check instead of C macro).

15 years agoFirst cut of support for player selection in options
Thomas Perl [Wed, 22 Oct 2008 21:10:44 +0000 (22 23:10 +0200)]
First cut of support for player selection in options

Now support all four combinations of AI/human matches.

15 years agoAdd background sound for rain mode
Thomas Perl [Wed, 22 Oct 2008 20:27:51 +0000 (22 22:27 +0200)]
Add background sound for rain mode

15 years agoMake sure FPS limit in the main menu is always correct
Thomas Perl [Wed, 22 Oct 2008 20:11:04 +0000 (22 22:11 +0200)]
Make sure FPS limit in the main menu is always correct

Without this patch, after the gameloop has finished, we
won't have reset the FPS counter, so the FPS limiter
will be practically disabled, depending on how long you
played.

With this patch, the FPS limit counter is reset after
the gameloop has finished, so we always have a correct
way of calculating FPS. This can probably be improved.

15 years agoFix a bug with negative offsets in fill_image_offset()
Thomas Perl [Wed, 22 Oct 2008 20:06:49 +0000 (22 22:06 +0200)]
Fix a bug with negative offsets in fill_image_offset()

When negative values for offset_x or offset_y have been
passed to fill_image_offset(), the result wasn't correct.

Fix this by translating negative offsets to positive values.

15 years agoSupport for "night" mode (floodlights) added + source XCF
Thomas Perl [Wed, 22 Oct 2008 19:43:04 +0000 (22 21:43 +0200)]
Support for "night" mode (floodlights) added + source XCF

Add support for playing at night, via a floodlight/spotlight
overlay. Also works fine with fog and rain modes :)

15 years agoMore in-game weather (fog) + fill_image_offset() function
Thomas Perl [Wed, 22 Oct 2008 19:08:23 +0000 (22 21:08 +0200)]
More in-game weather (fog) + fill_image_offset() function

Add support for having in-game fog clouds to make gameplay
harder. This needed an addition of the offset to the fill_image
function, so we have this now too, allowing arbitrary offsets
to shift the repeated image on the start for a moving effect.

15 years agoFirst support for in-game weather (rainfall)
Thomas Perl [Wed, 22 Oct 2008 18:10:30 +0000 (22 20:10 +0200)]
First support for in-game weather (rainfall)

Use the "r" key to increase the amount of rainfall during the game.

15 years agoAdd state machine for main menu + options menu
Thomas Perl [Wed, 22 Oct 2008 17:59:05 +0000 (22 19:59 +0200)]
Add state machine for main menu + options menu

State machine that controls navigating through the menus.

15 years agoIdeas for adding in-game weather effects/mods
Thomas Perl [Wed, 22 Oct 2008 17:54:57 +0000 (22 19:54 +0200)]
Ideas for adding in-game weather effects/mods

15 years agoFPS Limiting for the main menu display code
Thomas Perl [Wed, 22 Oct 2008 15:03:47 +0000 (22 17:03 +0200)]
FPS Limiting for the main menu display code

15 years agoRemove "Options" button and rename to "Resume Game"
Thomas Perl [Wed, 22 Oct 2008 14:56:00 +0000 (22 16:56 +0200)]
Remove "Options" button and rename to "Resume Game"

This is needed due to a re-structuring of the navigation :)

15 years agoMove the GameState object out of the game loop, for resuming
Thomas Perl [Wed, 22 Oct 2008 14:49:31 +0000 (22 16:49 +0200)]
Move the GameState object out of the game loop, for resuming

Rename game() to gameloop() and make the GameState struct a
parameter, so we can do things like resume games that have
not yet finished, etc..

15 years agoMore menu clean-ups and simplifications
Thomas Perl [Wed, 22 Oct 2008 13:57:19 +0000 (22 15:57 +0200)]
More menu clean-ups and simplifications

15 years agoOptimize screen updates (update_rect); simplify menu code
Thomas Perl [Wed, 22 Oct 2008 13:02:33 +0000 (22 15:02 +0200)]
Optimize screen updates (update_rect); simplify menu code

15 years agoUpdate info about wav files on Maemo (README)
Thomas Perl [Wed, 22 Oct 2008 11:19:49 +0000 (22 13:19 +0200)]
Update info about wav files on Maemo (README)

15 years agoAdd new, sliding main menu system
Thomas Perl [Sun, 19 Oct 2008 11:09:55 +0000 (19 13:09 +0200)]
Add new, sliding main menu system

Make the menu system simpler and nicer, based on the
draft of the new Tennix menu found in the doc/ subdir.

15 years agoAdd TODO items after discussion with PG Pauli
Thomas Perl [Wed, 23 Jul 2008 14:34:44 +0000 (23 16:34 +0200)]
Add TODO items after discussion with PG Pauli

Add several ideas for improvements to the TODO list.

16 years agoMaemo-related tweaks and keyboard mappings
Thomas Perl [Thu, 27 Mar 2008 21:09:07 +0000 (27 22:09 +0100)]
Maemo-related tweaks and keyboard mappings

Less elektrons, no mouse cursor in main menu,
no multiplayer menu item (not chooseable, anyway).

Also: Add mappings for all hardware keys on the
Nokia N800 Internet Tablet (Fullscreen, increase and
decrease, the "menu" button and the dpad "enter").

Note in README that we now support Maemo and add a
README.Maemo file that contains information on how
to compile a Tennix package for Maemo.

16 years agoTennix 0.6.1tennix-0.6.1
Thomas Perl [Sat, 22 Mar 2008 09:28:47 +0000 (22 10:28 +0100)]
Tennix 0.6.1

Update makefile and manpage with new version.

16 years agoFix directory creation in makefile, update e-mail address
Thomas Perl [Sat, 22 Mar 2008 09:26:29 +0000 (22 10:26 +0100)]
Fix directory creation in makefile, update e-mail address

Fix creation of the PREFIX/share/icons/hicolor/scalable/apps
directory, so Debian pbuilder won't complain about missing
directories. Thanks to Andrea Colangelo for pointing that out.

Also, update Andrea Colangelo's e-mail address in the manpage.

16 years agoTennix 0.6.0 and documentation updatestennix-0.6.0
Thomas Perl [Thu, 20 Mar 2008 13:28:55 +0000 (20 14:28 +0100)]
Tennix 0.6.0 and documentation updates

Update README and manpage to reflect changes for
the new version. Update copyright notices (add 2008).

Push version number in makefile.

16 years agoFix mouse control, add mouse rectangle, enable mouse by default
Thomas Perl [Thu, 20 Mar 2008 13:19:00 +0000 (20 14:19 +0100)]
Fix mouse control, add mouse rectangle, enable mouse by default

Fix problems with mouse control (lock the mouse if
we are using the keyboard). This makes the mouse
control work nicely together with the keyboard control,
so we enable mouse control by default now.

Draw a mouse rectangle on the screen so the user knows
what's going on when using mouse control. This should
make playing Tennix a bit easier with the mouse, because
the racket is always sloppy (you can move the mouse faster
than you can move the racket.

16 years agoGenerate ChangeLog in makefile; add "release" target
Thomas Perl [Wed, 12 Mar 2008 15:13:26 +0000 (12 16:13 +0100)]
Generate ChangeLog in makefile; add "release" target

Generate the ChangeLog file in the makefile via "git log";
add a "release" makefile target that creates a tarball.

16 years agoAdd high resolution SVG icon (+install on Unix)
Thomas Perl [Tue, 11 Mar 2008 22:30:12 +0000 (11 23:30 +0100)]
Add high resolution SVG icon (+install on Unix)

Add a high resolution SVG icon that can be used when apps
want to display a really big icon for Tennix (i.e. Gnome Do).

Install the scalable SVG icon in $PREFIX/share/icons/hicolor.

16 years agoApply patch from Enrico Zini to improve ball movement
Thomas Perl [Wed, 20 Feb 2008 10:07:17 +0000 (20 11:07 +0100)]
Apply patch from Enrico Zini to improve ball movement

From the mail:
if I understood correctly, the position of the ball is
updated, then the keyboard events are read, then the
screen is redisplayed. It should be instead: the screen
is redisplayed, then keyboard events are read and handled,
then the ball position is updated: that way the keyboard
event is connected with what is on the screen, which is
what the player would expect.

16 years agoFix and improve mouse input, initialize players correctly
Thomas Perl [Thu, 7 Feb 2008 10:42:33 +0000 (7 11:42 +0100)]
Fix and improve mouse input, initialize players correctly

Improve mouse input to work alongside keyboard input
and change the way mouse input works (press and hold
to move the racket, release to swing the racket).

Initialize the "Player" structs in game.c correctly,
so we don't get compile warnings and so that our
variables for each player are initialized sanely.

16 years agoSmoothen player racket movement (accelerate)
Thomas Perl [Thu, 7 Feb 2008 10:10:24 +0000 (7 11:10 +0100)]
Smoothen player racket movement (accelerate)

Add an "acceleration" effect to the player racket
movement, so that keyboard control is a bit more
fine-grained and easier to use (hopefully).

Thanks To Enrico Zini <enricozini.org> for suggesting
this change and providing the feature request.

16 years agoUpdate TODO list for Maemo
Thomas Perl [Thu, 31 Jan 2008 18:00:31 +0000 (31 19:00 +0100)]
Update TODO list for Maemo

Add some TODO items that are related to the
Maemo port of Tennix.

16 years agoRemove some development code from makefile
Thomas Perl [Thu, 24 Jan 2008 07:14:07 +0000 (24 08:14 +0100)]
Remove some development code from makefile

Remove the -g debug flag from the CFLAGS and make
the version 0.5.0 again (instead of 0.5.0+git).

16 years agoAdd FPS limiting code; fix touchpad movement
Thomas Perl [Tue, 22 Jan 2008 22:22:12 +0000 (22 23:22 +0100)]
Add FPS limiting code; fix touchpad movement

Add code to limit rendering to 33 FPS (should make the
CPU a bit happier, after all); this can be disabled.

Fix touchpad movement to be more exact in input_human.

Remove the obsolete BALL_DEFAULT_SPEED define in game.h

16 years agoFaster graphics; touchscreen support
Thomas Perl [Mon, 21 Jan 2008 16:02:28 +0000 (21 17:02 +0100)]
Faster graphics; touchscreen support

Make graphics more faster by only updating the
parts of the UI that have to be redrawn (this
could still be optimized, but works well so far).

Add support for mouse/touchscreen. The mouse and
touchscreen support will not be enabled in Desktop
builds but will be enabled for handheld devices
like the Nokia Internet Tablets.

16 years agoUpdated TODO list (add ChangeLog on release)
Thomas Perl [Mon, 31 Dec 2007 13:06:42 +0000 (31 14:06 +0100)]
Updated TODO list (add ChangeLog on release)

Next time when we're releasing a new version
of Tennix, we should include a ChangeLog file.

16 years agoAdd manpage from Andrea Colangelo
Thomas Perl [Mon, 31 Dec 2007 12:56:27 +0000 (31 13:56 +0100)]
Add manpage from Andrea Colangelo

Add contributed Unix manual page from Andrea
Colangelo <warp10@libero.it> and install it
when installing Tennix on Unix-like systems.

16 years agoTennix 0.5.0tennix-0.5.0
Thomas Perl [Tue, 18 Dec 2007 23:13:15 +0000 (19 00:13 +0100)]
Tennix 0.5.0

Pushed version in makefile

16 years agoAdded TODO list and new side menu draft
Thomas Perl [Tue, 18 Dec 2007 10:08:39 +0000 (18 11:08 +0100)]
Added TODO list and new side menu draft

Added list of TODO items that has accumulated over
the last few weeks (photos, sounds and music).

Added new side menu that I've created yesterday
evening. It's still not finished, but a future Tennix
release should probably have its menu to look something
like this draft (tennix-side-menu.xcf).

16 years agoMerge version info into Mac OS X Tennix.app
Thomas Perl [Mon, 17 Dec 2007 22:34:38 +0000 (17 23:34 +0100)]
Merge version info into Mac OS X Tennix.app

Don't use default "1.0" version in the SDL App about dialog,
but replace it with the correct tennix version when building
the "Tennix.app" Mac OS X application.

16 years agoSupport for BINARY_INSTALL_DIR, Makefile updates
Thomas Perl [Mon, 17 Dec 2007 18:46:18 +0000 (17 19:46 +0100)]
Support for BINARY_INSTALL_DIR, Makefile updates

After a suggestion by a package maintainer, the makefile
now supports the "BINARY_INSTALL_DIR" variable which can
be used to specify an alternative install dir for Unix-like
systems. This can be used to install the "tennix" binary in
/usr/games on Debian-based systems.

The makefile has been updated to more directly remove some
files in the clean target, so all temporary files get removed.

16 years agoJoystick support (via command line); better keyboard controls
Thomas Perl [Sun, 16 Dec 2007 15:05:47 +0000 (16 16:05 +0100)]
Joystick support (via command line); better keyboard controls

Enable more keyboard controls for Player 1 (arrow keys, space,
left control) and enable the usage of a joystick when the user
specifies the name of the joystick as command line argument.

This even works with applesmc on Linux, so you can play and
control Tennix by tilting your Apple MacBook and pressing the
left control key, which is now mapped to Player 1 swing racket.

16 years agoUpdate Win32 startup dialog (icon)
Thomas Perl [Thu, 22 Nov 2007 21:09:48 +0000 (22 22:09 +0100)]
Update Win32 startup dialog (icon)

Update the Win32 startup dialog (asking if the
user wants to start tennix in fullscreen mode)
and add an icon + the Tennix website URL.

16 years agoSound rework, background music, image_id/sound_id
Thomas Perl [Thu, 22 Nov 2007 21:53:49 +0000 (22 22:53 +0100)]
Sound rework, background music, image_id/sound_id

Rework the sound system to strip sound playing from the
game logic and move it into the "display"/"render" code.

Add free background music to menu from MelodyLoops.
Convert sound samples to OGG Vorbis to save space.
Sound panning (left, right) for the "racket hit" sound.

Use image_id/sound_id for the numeric identifier of
resources to make the headers a bit more understandable.

16 years agoBetter option parsing/ignoring
Thomas Perl [Wed, 21 Nov 2007 10:32:11 +0000 (21 11:32 +0100)]
Better option parsing/ignoring

For non-Windows systems, implement better command
line option parsing, so user will get notified on
stderr which command line arguments have been ignored.

16 years agoWin32 dialog box, icon and installer
Thomas Perl [Wed, 21 Nov 2007 09:21:07 +0000 (21 10:21 +0100)]
Win32 dialog box, icon and installer

Added a Win32-API dialog box that will let the user
select if she wants to run tennix in fullscreen or not.

Add a resource file for the dialog box layout and the
Win32-specific icon (our executable now has an icon!).

New .iss installer script (InnoSetup) that will compile
a standalone exe installer from the tennix binaries.

README.win32: Docs for Git, resource editing and Inno Setup

16 years agoTennix 0.4.2tennix-0.4.2
Thomas Perl [Wed, 14 Nov 2007 22:52:54 +0000 (14 23:52 +0100)]
Tennix 0.4.2

Pushed version in makefile

16 years agoSupport for game pausing; clean-up n-gram predictor
Thomas Perl [Wed, 14 Nov 2007 22:51:58 +0000 (14 23:51 +0100)]
Support for game pausing; clean-up n-gram predictor

Support for pausing a running game using the "p" key.

Clean up the n-gram predictor code by only adding print
statements when we're compiling a debug version of Tennix.

16 years agoComputer AI: History-based positioning
Thomas Perl [Sat, 13 Oct 2007 13:48:16 +0000 (13 15:48 +0200)]
Computer AI: History-based positioning

The computer AI now has a slightly better move
algorithm to "catch" the ball.

A simple ngram-based ball position predictor has
been added, so the computer AI can move based on
previous ball movements to have a better chance
of catching the ball.

16 years agoTennix 0.4.1tennix-0.4.1
Thomas Perl [Sun, 23 Sep 2007 21:23:37 +0000 (23 23:23 +0200)]
Tennix 0.4.1

Pushed version in makefile

16 years agoHelp text scroller, font opacity, endgame controls
Thomas Perl [Sun, 23 Sep 2007 21:21:03 +0000 (23 23:21 +0200)]
Help text scroller, font opacity, endgame controls

Do not process input events (human or AI) when the
GameState of the match has set the "is_over" flag.

When loading graphic resources, use black color key
for font images to support opacity-based blitting.

Add font_draw_string_alpha() to draw fonts w/ opacity
and add font_draw_string() macro (opacity=255).

Add a neat, opacity-based text scroller to the main
menu and provide input help text (keyboard controls).

16 years agoCourt textures (grass, clay, hard) and clean-up
Thomas Perl [Sat, 15 Sep 2007 13:01:38 +0000 (15 15:01 +0200)]
Court textures (grass, clay, hard) and clean-up

Re-work court graphic to support different court textures
and convert grass texture from old court + add new textures:
 - Clay (red/orange-ish) and
 - Hard (concrete-looking grey)

Don't call SDL_SetColorKey() for loaded images anymore, because
we're now using RGBA PNG files instead of "black-is-alpha" BMPs.

Removed introimage() function as it's not used anywhere.

16 years agoTennis-like scoring with games/sets and endgame handling
Thomas Perl [Wed, 12 Sep 2007 22:55:26 +0000 (13 00:55 +0200)]
Tennis-like scoring with games/sets and endgame handling

First cut of support for real Tennis-like scoring, apart
from some exceptional scoring rules.

Endgame handling in in-game code by displaying endgame
message and not displaying gameplay graphics.

16 years agoDon't allow racket hit on "out"; non-permanent racket swing
Thomas Perl [Wed, 12 Sep 2007 19:32:01 +0000 (12 21:32 +0200)]
Don't allow racket hit on "out"; non-permanent racket swing

Don't allow the player to hit the ball with the racket when
an "out" state has been reached. The ball will fly-by the
racket even with the racket swung at the time of impact.

Disallow keeping the "swing racket" button permanently
pressed, but add a lock to disallow re-swinging the rack when
the corresponding key has not been released yet.

16 years agoFix problem with data2csrc on amd64 and another bug
Thomas Perl [Wed, 12 Sep 2007 14:18:48 +0000 (12 16:18 +0200)]
Fix problem with data2csrc on amd64 and another bug

16 years agodata2csrc determines variable names, shell compatibility
Thomas Perl [Wed, 12 Sep 2007 11:13:19 +0000 (12 13:13 +0200)]
data2csrc determines variable names, shell compatibility

João Pinto pointed out that Tennix will not compile when
not using bash as /bin/sh, as the makefile in data/ will
complain about bad substitution.

This has been worked around by making data2csrc generating
the variable name on-the-fly if the variable name is not
passed as second command line argument.

16 years agoTennix 0.4.0tennix-0.4.0
Thomas Perl [Sun, 9 Sep 2007 20:10:22 +0000 (9 22:10 +0200)]
Tennix 0.4.0

Fixed makefile

16 years agoNew and updated SVG artwork, referee, clean-up
Thomas Perl [Sun, 9 Sep 2007 19:32:23 +0000 (9 21:32 +0200)]
New and updated SVG artwork, referee, clean-up

Added updated SVG artwork by Thomas Perl, new game graphics
and removed some obsolete files in the data folder.

Make in-game ball rotation faster to fit better to
the new-style ball graphic.

Make right-mouse button act as color switcher in main
menu (currently this is just a visual gimmick..).

16 years agoKeep track of changed resource files in makefile
Thomas Perl [Sun, 9 Sep 2007 16:12:10 +0000 (9 18:12 +0200)]
Keep track of changed resource files in makefile

If graphics or sounds in the "data/" folder change,
let the main makefile update the .c source files in
"data/" to reflect the new state of the resource
files and as a result also rebuild the tennix binary.

16 years agoAdd support for unix-style installation (to /usr/local)
Thomas Perl [Sat, 8 Sep 2007 17:26:33 +0000 (8 19:26 +0200)]
Add support for unix-style installation (to /usr/local)

Added support for the "install" makefile target and added
a "tennix.desktop" file for a Tennix menu entry/icon.

16 years agoTennix 0.3.4tennix-0.3.4
Thomas Perl [Thu, 6 Sep 2007 20:24:36 +0000 (6 22:24 +0200)]
Tennix 0.3.4

Removed ChangeLog and pushed version in makefile to 0.3.4

16 years agoResources in binary support, button drawing functions
Thomas Perl [Wed, 5 Sep 2007 22:58:29 +0000 (6 00:58 +0200)]
Resources in binary support, button drawing functions

Added support for converting data files to c source, which
will then be included and compiled into the binary. This
makes Tennix run without the "data" folder, and the game
resources (sounds and data) cannot simply be edited for the
binary distribution.

Added first cut of button drawing routines which can be
useful for menu navigation later on. (including text)

Fix space character in Smallish font.

16 years agoFont improvements, faded lines, simplified menu+quitting
Thomas Perl [Wed, 5 Sep 2007 15:14:12 +0000 (5 17:14 +0200)]
Font improvements, faded lines, simplified menu+quitting

In-game scores are now displayed using the fond code, the
"score.png" graphic and show_digit() function got removed.

Add dkc2 font, and improve font and graphics code (image
width, image height, sprite width, simplified char search.

New draw_line_faded() method that draws a line with faded
colors, fixed old draw_line() code and make draw_line() a
macro that calls draw_line_faded().

Add support for quitting tennix by closing the tennix window.

Elektrons beatified, added faded line drawing. Move around
items in the menu, remove sound + racket animation.

Fade to black the menu when quitting.

Clean-up stuff in tennix.h.

16 years agoSmoothen animations, fix "release" target for Mac OS X
Thomas Perl [Sun, 2 Sep 2007 15:00:40 +0000 (2 17:00 +0200)]
Smoothen animations, fix "release" target for Mac OS X

Fix animations to be more smooth in font_draw_string()
and rename to BUNGEE and PENDULUM (that's what they
look like, after all).

Make the "release-osx" target create a zipfile that is
named "tennix-x.y.z-macosx.zip" (added "-macosx").

16 years agodraw_line() function and pixel getting/setting
Thomas Perl [Sat, 1 Sep 2007 17:26:29 +0000 (1 19:26 +0200)]
draw_line() function and pixel getting/setting

Added new function to directly draw a line to the screen,
and define macros: GET_PIXEL_DATA, GET_PIXEL_RGB, SET_PIXEL_RGB.

16 years agoTennix 0.3.3: Dynamic Text Enginetennix-0.3.3
Thomas Perl [Fri, 31 Aug 2007 23:56:38 +0000 (1 01:56 +0200)]
Tennix 0.3.3: Dynamic Text Engine

This is Tennix 0.3.3, adding the first version of our dynamic
text engine, which enables us drawing animated bit-mapped fonts
to the screen. Currently used in menus and as gameplay status.

This also disables loading the custom icon (SDL_WM_SetIcon)
when Tennix is ran on Mac OS X, as Tennix on OS X already has a
beatiful icon and OS X doesn't display per-window icons.

16 years agoTennix 0.3.2 and website transitiontennix-0.3.2
Thomas Perl [Sat, 7 Jul 2007 13:51:26 +0000 (7 15:51 +0200)]
Tennix 0.3.2 and website transition

Bumped version to 0.3.2 and changed all website
URLs to http://icculus.org/tennix/, as this is the new
website of Tennix!. Also removed the "settings" menu
item from the menu until it will become active.

16 years agoAdd "Playing Tennix" section in README
Thomas Perl [Thu, 28 Jun 2007 18:03:31 +0000 (28 20:03 +0200)]
Add "Playing Tennix" section in README

Added a Playing Tennix section in README to explain
keyboard controls for playing tennix in two-player mode.

16 years agoSupport for ball service; AI improved; gameplay fading
Thomas Perl [Mon, 25 Jun 2007 20:03:28 +0000 (25 22:03 +0200)]
Support for ball service; AI improved; gameplay fading

Add support for doing serving the ball (using a stopped,
non-moving ball that the player has to hit to start the
game) and re-factor ball-resetting code into a seperate
function.

Improve AI player movement to make the game livelier :)

Fade between two scores and block input (both human and
AI input) while the scene is being faded to add a smooth
crossfade between scores. Don't wait for keypresses as
before.

Fade out audience sound when returning to main menu.

16 years agoAdded application window icon setup code
Thomas Perl [Sun, 17 Jun 2007 21:23:21 +0000 (17 23:23 +0200)]
Added application window icon setup code

Added a simple tennis ball (from the menu) as application
window icon and set this as the window icon in the graphics
initialization code.

16 years agoMove release information to makefile, update win32 target
Thomas Perl [Sun, 17 Jun 2007 15:26:43 +0000 (17 17:26 +0200)]
Move release information to makefile, update win32 target

Move release version information to makefile where it will
be used for release file naming and remove it from tennix.h,
so we have the release version information in one central
location for both code and release work.

Update the win32 target to create tennix-x.y.z-win32.zip.

16 years agoTennix 0.3.1tennix-0.3.1
Thomas Perl [Sun, 17 Jun 2007 14:30:55 +0000 (17 16:30 +0200)]
Tennix 0.3.1

Added ChangeLog file to keep track of Tennix' history, added
some documentation about how to format and generate the
changelog file, updated the README file and pushed version
string to 0.3.1 in tennix.h.

16 years agoAdd fading effect for menu/game transitions
Thomas Perl [Sat, 16 Jun 2007 18:57:28 +0000 (16 20:57 +0200)]
Add fading effect for menu/game transitions

Add fading effect by utilizing alpha blending and an
additional screen buffer. This effect is used for the
menu->game and game->menu transitions currently.

16 years agoMore elektron-based full screen menu bling bling
Thomas Perl [Sat, 16 Jun 2007 13:57:14 +0000 (16 15:57 +0200)]
More elektron-based full screen menu bling bling

Added fullscreen elektron movements when not hovering
over a menu item with the elektrons zooming in to the
menu item when hovering. Also different colors and other
options for the single elektrons.

Removed the menu-highlight.png image, as we don't need
it anymore :)

16 years agoRemoved powershot sound
Thomas Perl [Fri, 15 Jun 2007 18:21:29 +0000 (15 20:21 +0200)]
Removed powershot sound

Removed the optional powershot sound in favor of the
better-suited default racket sounds.

16 years agoNew main menu with highlight and elektron bling bling
Thomas Perl [Fri, 15 Jun 2007 12:06:22 +0000 (15 14:06 +0200)]
New main menu with highlight and elektron bling bling

Added rectangle function to graphics library and added
code for an elektron swarm. This adds nice bling bling
effects to the main menu, which in turn has also been
updated.

16 years agoModularize human input and AI input (AI vs. AI testing)
Thomas Perl [Fri, 15 Jun 2007 07:25:21 +0000 (15 09:25 +0200)]
Modularize human input and AI input (AI vs. AI testing)

Add input_human and input_ai functions that handle human
and computer-controlled players and added several flags
and settings to the Player struct.

This makes it possible to make a match AI vs. AI to test
the quality of our AI code. AI vs. AI is currently the
default for single player mode (still in testing mode :).

16 years agoFirst cut of single-player mode support (Player 2 = AI)
Thomas Perl [Thu, 14 Jun 2007 22:13:02 +0000 (15 00:13 +0200)]
First cut of single-player mode support (Player 2 = AI)

This adds a gameplay mode that makes the 2nd player
controlled by an AI tennix bot which is quite good at
playing tennix.

The single-player (AI) mode is activated with the hi-
scores menu item currently. Still no difficulty settings.

16 years agoFix ball direction gameplay bug
Thomas Perl [Thu, 14 Jun 2007 21:49:34 +0000 (14 23:49 +0200)]
Fix ball direction gameplay bug

This commit fixes a small bug that appeared while testing
the game - ball direction sometimes was inversed, resulting
in the ball to go into the wrong direction.

16 years agoAdded tennis ball and its shadow to 3D test
Thomas Perl [Wed, 13 Jun 2007 18:48:29 +0000 (13 20:48 +0200)]
Added tennis ball and its shadow to 3D test

Added a yellow circle and a gray shadow to the
Tennix pygame 3D-rendering test. The shadow size
changes depending on the ball height (z) and both
ball and shadow size decrease when the ball moves
away from the observer.

16 years agoSetting version to 0.3.0 in tennix.htennix-0.3.0
Thomas Perl [Tue, 12 Jun 2007 20:39:07 +0000 (12 22:39 +0200)]
Setting version to 0.3.0 in tennix.h

16 years agoMerge branch 'gameplay'
Thomas Perl [Tue, 12 Jun 2007 20:37:03 +0000 (12 22:37 +0200)]
Merge branch 'gameplay'

16 years agoBugfix for ball not moving completely off-screen
Thomas Perl [Sun, 10 Jun 2007 21:09:08 +0000 (10 23:09 +0200)]
Bugfix for ball not moving completely off-screen

This fix makes the game only stop when the ball is
completely off-screen, so it doesn't look like the
ball was stopped at the edge of the screen.

16 years agoSupport for ball out with sound
Thomas Perl [Sun, 10 Jun 2007 21:04:37 +0000 (10 23:04 +0200)]
Support for ball out with sound

Added support for situations when the ball is out, i.e.
responsibilities don't change and playback out signal beep.

16 years agoCompile-time debug mode, get_move_y gameplay fixes
Thomas Perl [Sun, 10 Jun 2007 20:19:40 +0000 (10 22:19 +0200)]
Compile-time debug mode, get_move_y gameplay fixes

Added compile-time DEBUG variable to enable or disable
debugging code (currently position visualisation) and
added dest1/dest2 variables to the Ball struct.

Fix return value and handling in get_move_y() to have
smoother gameplay and better ball movement control.

16 years agoLine drawing methods and new gameplay fixes
Thomas Perl [Sat, 9 Jun 2007 17:45:21 +0000 (9 19:45 +0200)]
Line drawing methods and new gameplay fixes

Added horizontal and vertical line drawing methods for debugging
purposes and fix bugs for gameplay changes introduced in May, so
that we have working gameplay again.

16 years agotesting 3d-to-2d conversion with a pygame draft script :)
thp [Fri, 25 May 2007 17:53:34 +0000 (25 17:53 +0000)]
testing 3d-to-2d conversion with a pygame draft script :)

16 years agoFirst cut of gameplay updates, partly broken
thp [Thu, 17 May 2007 20:24:36 +0000 (17 20:24 +0000)]
First cut of gameplay updates, partly broken

17 years agoUpdated Mac OS X iconsvn-r20
thp [Wed, 23 May 2007 07:35:27 +0000 (23 07:35 +0000)]
Updated Mac OS X icon