From 749597197a66e94f8742b9ee90dfabafd59d4dc3 Mon Sep 17 00:00:00 2001 From: Thomas Perl Date: Fri, 6 Feb 2009 00:34:21 +0100 Subject: [PATCH] Tennix 0.7.0 "Deine Eltern sind auf einem Tennixturnier" Updated README and manpage. Made sure tennix.tnx is installed in the right spot, and that the binary can find the data file either in the current directory or in the installed location. Push version to 0.7.0 and display version and URL in the main screen (as with previous versions). --- README | 16 +++++++++++----- archive.c | 21 +++++++++++++-------- graphics.c | 6 ++++++ makefile | 7 ++++--- sound.c | 6 ++++++ tennix.6 | 4 ++-- tennix.c | 5 ++++- tennix.h | 1 + 8 files changed, 47 insertions(+), 19 deletions(-) diff --git a/README b/README index be85281..7403a62 100644 --- a/README +++ b/README @@ -88,6 +88,12 @@ PLAYING TENNIX F .... Toggle fullscreen (X11 only) C .... Switch type of court (grass, clay, etc..) + Bonus (because you took the time to look at the README file): + Obviously, there are some hidden easter eggs that are still not available + via the UI, due to the fact that we didn't implement the UI for it yet :) + Think about [n]ight, [r]ain and fog (think fog[t], even..). Wind is also + available, but it's so broken, you'll have to look up the keys in game.c. + DEVELOPMENT/DEBUGGING ===================== @@ -101,16 +107,16 @@ DEVELOPMENT/DEBUGGING CREDITS ======= - The in-game music has been taken from the free loops available - from MelodyLoops. See http://www.melodyloops.com/ for a - selection of Royality Free Music Loops. + Some sound effects are based on data from the Freesound Project. + + Thanks to Esad Hajdarevic and Stefan Doesinger for some optimizations + done during the Effiziente Programme course in January 2009 :) CONTACT ======= - - E-Mail: Thomas Perl + E-Mail: Thomas Perl URL: http://icculus.org/tennix/ diff --git a/archive.c b/archive.c index 61991fe..f42a1cb 100644 --- a/archive.c +++ b/archive.c @@ -79,6 +79,7 @@ int main(int argc, char* argv[]) exit(EXIT_FAILURE); } tnxar = tnxar_open(argv[1]); + assert(tnxar != NULL); tnxar_dump(tnxar); tnxar_close(tnxar); } else if(strcmp(bn, "extract") == 0) { @@ -87,6 +88,7 @@ int main(int argc, char* argv[]) exit(EXIT_FAILURE); } tnxar = tnxar_open(argv[1]); + assert(tnxar != NULL); if (argc == 2) { while (!tnxar_eof(tnxar)) { filename = tnxar_get_current_filename(tnxar); @@ -138,7 +140,10 @@ TennixArchive* tnxar_open(char* filename) assert(tnxar != NULL); tnxar->fp = fopen(filename, "rb"); - assert(tnxar->fp != NULL); + if (tnxar->fp == NULL) { + free(tnxar); + return NULL; + } tnxar->offset = sizeof(TennixArchiveHeader)*fread(&(tnxar->header), sizeof(TennixArchiveHeader), 1, tnxar->fp); assert(tnxar->offset == sizeof(TennixArchiveHeader)); @@ -297,21 +302,21 @@ void tnxar_build(TennixArchive *tnxar, char* filename) tnxar->header.key = (0xaa + 0x77*tnxar->header.items*3) % 0xff; + fprintf(stderr, "Packing: "); for (i=0; iheader.items; i++) { - fprintf(stderr, "Packing: %s", tnxar->items[i].filename); + fprintf(stderr, "%s", tnxar->items[i].filename); tnxar->items[i].offset = htonl(offset); /* network byte order */ tnxar->items[i].key = 0xaa ^ ((i<<2)%0x100); - fputc('.', stderr); tnxar_xormem(tnxar->blobs[i], tnxar->items[i].length, tnxar->items[i].key); - fputc('.', stderr); memsize[i] = tnxar->items[i].length; offset += tnxar->items[i].length; - fputc('.', stderr); tnxar->items[i].length = htonl(tnxar->items[i].length); /* network byte order */ tnxar_xormem((char*)(tnxar->items + i), sizeof(TennixArchiveItem), tnxar->header.key); - fputc('.', stderr); - fprintf(stderr, "OK\n"); + if (i != tnxar->header.items-1) { + fprintf(stderr, ", "); + } } + fputc('\n', stderr); fprintf(stderr, "Writing: %s", filename); fputc('.', stderr); @@ -320,10 +325,10 @@ void tnxar_build(TennixArchive *tnxar, char* filename) fwrite(tnxar->items, sizeof(TennixArchiveItem), tnxar->header.items, tnxar->fp); fputc('.', stderr); for (i=0; iheader.items; i++) { - fputc('.', stderr); fwrite(tnxar->blobs[i], memsize[i], 1, tnxar->fp); free(tnxar->blobs[i]); } + fputc('.', stderr); fprintf(stderr, "OK\n"); free(memsize); diff --git a/graphics.c b/graphics.c index def10e3..0fb4612 100644 --- a/graphics.c +++ b/graphics.c @@ -25,6 +25,7 @@ #include #include #include +#include #include "tennix.h" #include "graphics.h" @@ -99,6 +100,11 @@ void init_graphics() { } tnxar = tnxar_open(ARCHIVE_FILE); + if (tnxar == NULL) { + /* not found in cwd - try installed... */ + tnxar = tnxar_open(ARCHIVE_FILE_INSTALLED); + assert(tnxar != NULL); + } draw_button(40, (HEIGHT-40)/2, WIDTH-80, 40, 100, 100, 100, 1); store_screen(); diff --git a/makefile b/makefile index 67d9678..08b020c 100644 --- a/makefile +++ b/makefile @@ -25,7 +25,7 @@ ifeq ($(MKCALLGRAPH),1) LD = nccld endif -RELEASE = 0.6.9 +RELEASE = 0.7.0 TARGET ?= default @@ -33,7 +33,7 @@ PREFIX ?= usr/local/ BINARY_INSTALL_DIR ?= $(PREFIX)/bin LIBS = -CFLAGS += -Wall -DVERSION=\"$(RELEASE)\" -O2 +CFLAGS += -Wall -DVERSION=\"$(RELEASE)\" -O2 -DPREFIX=\"$(PREFIX)\" ifeq ($(UPDRECTANGLE),1) CFLAGS += -DDRAW_UPDATE_RECTANGLE @@ -83,12 +83,13 @@ ChangeLog: git log >ChangeLog install: tennix - install -d $(DESTDIR)/$(BINARY_INSTALL_DIR) $(DESTDIR)/$(PREFIX)/share/pixmaps $(DESTDIR)/$(PREFIX)/share/applications $(DESTDIR)/$(PREFIX)/share/man/man6 $(DESTDIR)/$(PREFIX)/share/icons/hicolor/scalable/apps + install -d $(DESTDIR)/$(BINARY_INSTALL_DIR) $(DESTDIR)/$(PREFIX)/share/pixmaps $(DESTDIR)/$(PREFIX)/share/applications $(DESTDIR)/$(PREFIX)/share/man/man6 $(DESTDIR)/$(PREFIX)/share/icons/hicolor/scalable/apps $(DESTDIR)/$(PREFIX)/share/tennix install -s tennix $(DESTDIR)/$(BINARY_INSTALL_DIR)/tennix install tennix.6 $(DESTDIR)/$(PREFIX)/share/man/man6/tennix.6 install -m644 data/icon.png $(DESTDIR)/$(PREFIX)/share/pixmaps/tennix.png install -m644 data/icon.svg $(DESTDIR)/$(PREFIX)/share/icons/hicolor/scalable/apps/tennix.svg install -m644 tennix.desktop $(DESTDIR)/$(PREFIX)/share/applications/ + install -m644 tennix.tnx $(DESTDIR)/$(PREFIX)/share/tennix/ tennix.o: tennix.c tennix.h game.h graphics.h input.h sound.h graphics.o: graphics.c graphics.h tennix.h archive.h sound.h diff --git a/sound.c b/sound.c index 7338633..ceb9ee5 100644 --- a/sound.c +++ b/sound.c @@ -28,6 +28,7 @@ #include #include +#include static Sound* sounds; @@ -124,6 +125,11 @@ void init_sound() { updatescr(); tnxar = tnxar_open(ARCHIVE_FILE); + if (tnxar == NULL) { + /* not found in cwd - try installed... */ + tnxar = tnxar_open(ARCHIVE_FILE_INSTALLED); + assert(tnxar != NULL); + } for( i=0; isets_score_str, 10, 40, 0, 0); + } else { + font_draw_string(GR_DKC2_FONT, "Tennix " VERSION, 10, 10, 0, 0); } + font_draw_string(GR_DKC2_FONT, URL, 10, HEIGHT-10-get_image_height(GR_DKC2_FONT), 0, 0); show_image(GR_BTN_QUIT, WIDTH-get_image_width(GR_BTN_QUIT)+slide+(slide/7)+3-(3*(btn_hovering==MENU_QUIT)), 350, 255); } else { /* Options screen */ diff --git a/tennix.h b/tennix.h index 7182004..cb40522 100644 --- a/tennix.h +++ b/tennix.h @@ -34,6 +34,7 @@ #endif #define ARCHIVE_FILE "tennix.tnx" +#define ARCHIVE_FILE_INSTALLED "/" PREFIX "share/tennix/" ARCHIVE_FILE #define COPYRIGHT "Copyright 2003, 2007, 2008, 2009 Thomas Perl" #define URL "http://icculus.org/tennix/" -- 2.11.4.GIT