diff -Naur teeworlds-0.5.1-src.orig/default.bam teeworlds-0.5.1-src/default.bam --- teeworlds-0.5.1-src.orig/default.bam 2009-01-25 14:50:33.000000000 +0100 +++ teeworlds-0.5.1-src/default.bam 2009-03-09 12:48:10.000000000 +0100 @@ -7,6 +7,8 @@ config:Add(OptFindCompiler()) config:Add(OptTestCompileC("stackprotector", "int main(){return 0;}", "-fstack-protector -fstack-protector-all")) config:Add(OptFindLibrary("zlib", "zlib.h", false)) +config:Add(OptFindLibrary("wavpack", "wavpack/wavpack.h", false)) +config:Add(OptFindLibrary("pnglite", "sys/types.h", false)) config:Add(SDL.OptFind("sdl", true)) config:Finalize("config.bam") @@ -151,8 +153,29 @@ end -- build the small libraries - wavpack = Compile(settings, Collect("src/engine/external/wavpack/*.c")) - pnglite = Compile(settings, Collect("src/engine/external/pnglite/*.c")) + -- compile wavpack if needed + if config.wavpack.value == 1 then + settings.link.libs:Add("wavpack") + if config.wavpack.include_path then + settings.cc.includes:Add(config.wavpack.include_path) + end + wavpack = {} + else + wavpack = Compile(settings, Collect("src/engine/external/wavpack/*.c")) + settings.cc.includes:Add("src/engine/external") + end + + -- compile pnglite if needed + if config.pnglite.value == 1 then + settings.link.libs:Add("pnglite") + if config.pnglite.include_path then + settings.cc.includes:Add(config.pnglite.include_path) + end + pnglite = {} + else + pnglite = Compile(settings, Collect("src/engine/external/pnglite/*.c")) + settings.cc.includes:Add("src/engine/external/pnglite") + end -- build game components engine_settings = settings:Copy() diff -Naur teeworlds-0.5.1-src.orig/src/engine/client/ec_gfx.c teeworlds-0.5.1-src/src/engine/client/ec_gfx.c --- teeworlds-0.5.1-src.orig/src/engine/client/ec_gfx.c 2009-01-25 14:50:33.000000000 +0100 +++ teeworlds-0.5.1-src/src/engine/client/ec_gfx.c 2009-03-09 12:48:39.000000000 +0100 @@ -18,7 +18,7 @@ #endif #include -#include +#include #include #include diff -Naur teeworlds-0.5.1-src.orig/src/engine/client/ec_snd.c teeworlds-0.5.1-src/src/engine/client/ec_snd.c --- teeworlds-0.5.1-src.orig/src/engine/client/ec_snd.c 2009-01-25 14:50:33.000000000 +0100 +++ teeworlds-0.5.1-src/src/engine/client/ec_snd.c 2009-03-09 12:55:19.000000000 +0100 @@ -6,7 +6,7 @@ #include "SDL.h" -#include +#include #include #include #include @@ -358,19 +358,12 @@ snd->num_frames = num_frames; } - -static IOHANDLE file = NULL; - -static int read_data(void *buffer, int size) -{ - return io_read(file, buffer, size); -} - int snd_load_wv(const char *filename) { SAMPLE *snd; int sid = -1; char error[100]; + char completefilename[512]; WavpackContext *context; /* don't waste memory on sound when we are stress testing */ @@ -381,19 +374,13 @@ if(!sound_enabled) return 1; - file = engine_openfile(filename, IOFLAG_READ); /* TODO: use system.h stuff for this */ - if(!file) - { - dbg_msg("sound/wv", "failed to open %s", filename); - return -1; - } - sid = snd_alloc_id(); if(sid < 0) return -1; snd = &samples[sid]; - context = WavpackOpenFileInput(read_data, error); + engine_getpath(completefilename, sizeof(completefilename), filename, IOFLAG_READ); + context = WavpackOpenFileInput(completefilename, error, 0, 0); if (context) { int samples = WavpackGetNumSamples(context); @@ -410,7 +397,7 @@ if(snd->channels > 2) { - dbg_msg("sound/wv", "file is not mono or stereo. filename='%s'", filename); + dbg_msg("sound/wv", "failed to open %s: %s", completefilename, error); return -1; } @@ -448,9 +435,6 @@ dbg_msg("sound/wv", "failed to open %s: %s", filename, error); } - io_close(file); - file = NULL; - if(config.debug) dbg_msg("sound/wv", "loaded %s", filename); diff -Naur teeworlds-0.5.1-src.orig/src/game/client/render.hpp teeworlds-0.5.1-src/src/game/client/render.hpp --- teeworlds-0.5.1-src.orig/src/game/client/render.hpp 2009-01-25 14:50:33.000000000 +0100 +++ teeworlds-0.5.1-src/src/game/client/render.hpp 2009-03-09 12:56:19.000000000 +0100 @@ -37,7 +37,7 @@ TILERENDERFLAG_EXTEND=4, }; -typedef struct SPRITE; +struct SPRITE; void select_sprite(SPRITE *spr, int flags=0, int sx=0, int sy=0); void select_sprite(int id, int flags=0, int sx=0, int sy=0); diff -Naur teeworlds-0.5.1-src.orig/src/tools/dilate.c teeworlds-0.5.1-src/src/tools/dilate.c --- teeworlds-0.5.1-src.orig/src/tools/dilate.c 2009-01-25 14:50:33.000000000 +0100 +++ teeworlds-0.5.1-src/src/tools/dilate.c 2009-03-09 12:56:50.000000000 +0100 @@ -1,6 +1,9 @@ /* copyright (c) 2007 magnus auvinen, see licence.txt for more info */ -#include "../engine/external/pnglite/pnglite.c" +#include +#include +#include +#include typedef struct pixel_t { diff -Naur teeworlds-0.5.1-src.orig/src/tools/tileset_borderfix.c teeworlds-0.5.1-src/src/tools/tileset_borderfix.c --- teeworlds-0.5.1-src.orig/src/tools/tileset_borderfix.c 2009-01-25 14:50:33.000000000 +0100 +++ teeworlds-0.5.1-src/src/tools/tileset_borderfix.c 2009-03-09 12:57:14.000000000 +0100 @@ -1,6 +1,9 @@ /* copyright (c) 2007 magnus auvinen, see licence.txt for more info */ -#include "../engine/external/pnglite/pnglite.c" +#include +#include +#include +#include typedef struct pixel_t {