diff --git a/NEWS b/NEWS index 8003d768e..b4fe365a4 100644 --- a/NEWS +++ b/NEWS @@ -2,164 +2,175 @@ NEWS for the QuakeForge project ------------------------------- Changes from 0.5.4 - o bring back a bunch of fixes from 0.5.3 (including news items) that got - lost in the rushed release of 0.5.4 - o more cvar renaming: scr_consize -> con_size, scr_conspeed -> con_speed, - gl_conalpha -> con_alpha, vid_conwidth -> con_width, - vid_conheight -> con_height, show_fps -> hud_fps, show_ping -> hud_ping, - show_pl -> hud_pl, show_time -> hud_time, - show_scoresuid -> hud_scoreboard_uid - o demo_speed no longer affects console scrolling or cursor blink rate - o save game loading fixed - o FPS display now updated every 0.2 seconds and displays to the tenth of - an fps - o qfcc conforms better to Objective-C sematics - o Object root class revamped - o qfcc's "struct" support closer to that of C (ie, separate namespace) - o minor improvement s to statement printing (pr_debug >= 1) - o qfcc how supports the "unsigned" type (32 bit unsigned integer) - o improper placement of fullscreen window on startup in -x11 and -glx fixed - (ie, starting with +set vid_fullscreen 1) - o correct handling of ! and &&/|| for traditional code - o QNX fixes from Mike Gorchak - o DirectX is now the default sound driver for windows - o progs debug/disassemble improvements - o plug most (if not all) potential buffer overflows - o qfcc linker error message improvements - o renderer speedups - o demo_quit cvar to cause qf to quit automaticly at the end of a timedemo - to make automation of profiling easier - o better error checking in qfcc - o qfbsp no longer zaps the bsp file when given a bsp instead of a map when - compiling a map - o PNG support thanks to DrSpliff - o progs version update due to missing pointer in the symtab struct - o qfcc: can cast between pointers and integers - o server clients work with mvds - o never allow IP ports < 1024 - o prettier particles. affected by gravity in qw (protocol restrictions in - nq) - o Darwin compile fixes - o fix a segfault when using 1 component lightmaps - o don't display the connect message when +connect is given on the command - line (thanks to Qize) - o qfbsp: better whilespace support for windows - o qfbsp: bring in many of LordHavoc's changes to qbsp: HalfLife WorldCraft - texture alighnment, partial "point of plane" autocorrection, hipnotic - entity rotation - o qfbsp: watervis support - o mouse acceleration support in X11 thanks to Qize - o qfbsp: handle multiple wad files properly - o fix alpha blending in 2d mode when 3d has never been rendered - o don't flush garbage to the screen on the first render frame - o qfbsp: remove many arbitrary limits (edgs, points on windong, tokens and - keys) - o qflight: colored lighting support (from LordHavoc's hlight) - o qflight: use vis data to speed up light passes - o ALSA 0.5 support dropped - o ALSA 1.x support is "alsa", 0.9 is "alsa0_9" (only one is built) - o MIDI BGM support using libWildMidi - o pak: can specify files to extract from a pak - o GIB objects - o qflight: gzipped bsp support (reading only) - o qflight: threading works - o qfbsp: force axis aligned planes to truely be axis aligned (fixes - degenerate polygons being generated by ClipWinding) - o external conchars thanks to DrSpliff - o qfcc: --traditional operator precedence conforms to qcc but --advanced to - C - o qfcc: --traditional is default for progs.src and --advanced for separate - compilation - o qfcc: much better qcc conformance in general for --traditional - o don't parse qsg protocol bits if the server isn't qsg compliant - o GIB functions and methods support named arguments - o qfcc: short circuit logic for && and || (breaks --traditional when - enabled) - o sv_logfile gets flushed on each print - o qfcc: more informative error reporting - o qfcc: if (const) now works properly (though dead code doesn't get - eliminated) - o many server features taken from QWE/mvdsv (HighlandeR): most notably - ktpro support - o progs string revamp: temp strings (eg, result from string + string) get - freed when the creating funciton exits - o nq deathmatch score fix from xi - o find radius bug fixes thanks to Grievre - o Luma texture support for brush models (From Fuh, by way of Grievre) - o --disable-static now works thanks to raorn - o new internal printf engine for progs - o treat server clients like non-client entities for GIB "frag" event - o report all bad builtins rather than just the first. make the bad builtin - number a warning and provide a suitable function in case the function is - called: allows progs with bad (but unused) builtins to run anyway - o expand ~ for fs_dirconf - o progs dump print an address if the def name is blank - o qfcc: allow constant expressions to be used for builtin numbers - o don't write config.cfg until /after/ it's been read :) - o wad utilty along the lines of pak. can't yet be used for wad creation - (that's a little more complicated), but it can be used for listing and - extracting the contents of a wad file. watch out for *foo :) - o ATI's libGL needs to be loaded with global symbols in order to work - properly - o qfbsp: bsp to prt support (for watervising sourceless maps) - o qfbsp: can now dump a map's textures to a wad file - o oss sound doesn't block if the sound device is busy (from Grievre) - o add snd_bits/rate/stereo cvars to win and dx sound targets - o file based cd plugin from ashridah. oggs, wavs and midis can now be used - for background music. default cd plugin for all platforms - o qfdefs nuked. no longer needed as "standard" progs get resolved staticly - o qfcc: better constant folding with auto-conversion between scalar types - o many menu improvements - o win32 server console now has working input - o curses server console scrollback works - o ruamoko math functions from Grievre - o qfcc: warn on if (a = b) - o TruForm support. Controlled by gl_tessellate - o qflight: OpenQuartz's extentions (except -ikmap) brought in. id's light - model is default - o qflight: support properties files for setting default light settings for - different light entity types - o while not yet perfect, qfprogs now works with qfo files - o qfcc: better detection of function calls in binary expressions - o qfvis: support old-style portal files again - o Improvements in time accounting. Accurate to +-0.5ms, instead of -1,0 - like others. Based on Grievre's and zquake's code - o mangled sounds on gamedir change fixed thanks to Grievre - o qfbsp: various impovements from Vic via hqbsp (lordhavoc) - o qfcc: give temp defs a name, making it easier to read disassembly output - o qfcc: ensure a op= b treats b as if it was (b) - o qfcc: ; at end of functions optional. C style function declarations - available - o new opcode: state.f. same as state, but takes a 3rd float operand to - specify the step for calculating nextthink. accessed using - [frame, think, step] (state is [frame, think]) - o qfcc: non-const expressions for frame in state operator valid - o qfcc: computed functions for state think allowed - o qfcc: change --include FILE to pre-include a file rather than add a - directory search path. Maps to -include FILE on the cpp command line. - o mtex support for world rendering. - o qfcc: all warnings (except for @self and self) are now fully controllable - o progs handle x % 0 by giving a 0 result - o qfcc: --traditional now auto-inits uninitialized local vars - o alias models us GL lighting - o support for 7 mouse buttons - o all archived cvars get written to config.cfg prefixed with "seta" (new - command that sets the archive bit) - o x11/glx fullscreen toggling fixes (window placement, mouse input etc) - o add optional reason to kick and ban for qw-server - o qflight: spotlight now works - o DrSpliff's qfadmin script updated - o quaternion support in progs engine and qfcc - o optionally allow recomte commands from a specified host address - o add a -novideo option to fbdev target to allow for headless operation - o full path reporting when writing screenshots - o one level of .. allowed in file access (eg, exec ../configs/foo.cfg) - o add r_norefresh support to sw and sw32 and rename the console side of the - cvar to cooperate better with the evil in customtf - o new cvar from Grievre to control "fake" filtering and change the fake - kick default - o qfcc: fast-float code option (defaults to on). kills almost 3000 - statements from prozac + o General enhancements + * bring back a bunch of fixes from 0.5.3 (including news items) that + got lost in the rushed release of 0.5.4 + * more cvar renaming: scr_consize -> con_size, scr_conspeed -> + con_speed, gl_conalpha -> con_alpha, vid_conwidth -> con_width, + vid_conheight -> con_height, show_fps -> hud_fps, show_ping -> + hud_ping, show_pl -> hud_pl, show_time -> hud_time, show_scoresuid -> + hud_scoreboard_uid + * demo_speed no longer affects console scrolling or cursor blink rate + * save game loading fixed + * FPS display now updated every 0.2 seconds and displays to the tenth + of an fps + * improper placement of fullscreen window on startup in -x11 and -glx + fixed (ie, starting with +set vid_fullscreen 1) + * QNX fixes from Mike Gorchak + * DirectX is now the default sound driver for windows + * renderer speedups + * demo_quit cvar to cause qf to quit automaticly at the end of a + timedemo to make automation of profiling easier + * server clients work with mvds + * never allow IP ports < 1024 + * prettier particles. affected by gravity in qw (protocol restrictions + in nq) + * Darwin compile fixes + * fix a segfault when using 1 component lightmaps + * don't display the connect message when +connect is given on the + command line (thanks to Qize) + * mouse acceleration support in X11 thanks to Qize + * fix alpha blending in 2d mode when 3d has never been rendered + * don't flush garbage to the screen on the first render frame + * PNG support thanks to DrSpliff + * ALSA 0.5 support dropped + * ALSA 1.x support is "alsa", 0.9 is "alsa0_9" (only one is built) + * MIDI BGM support using libWildMidi + * GIB objects + * external conchars thanks to DrSpliff + * sv_logfile gets flushed on each print + * don't parse qsg protocol bits if the server isn't qsg compliant + * GIB functions and methods support named arguments + * many server features taken from QWE/mvdsv (HighlandeR): most notably + ktpro support + * plug most (if not all) potential buffer overflows + * nq deathmatch score fix from xi + * find radius bug fixes thanks to Grievre + * Luma texture support for brush models (From Fuh, by way of Grievre) + * --disable-static now works thanks to raorn + * treat server clients like non-client entities for GIB "frag" event + * expand ~ for fs_dirconf + * don't write config.cfg until /after/ it's been read :) + * ATI's libGL needs to be loaded with global symbols in order to work + properly + * oss sound doesn't block if the sound device is busy (from Grievre) + * add snd_bits/rate/stereo cvars to win and dx sound targets + * file based cd plugin from ashridah. oggs, wavs and midis can now be + used for background music. default cd plugin for all platforms + * many menu improvements + * win32 server console now has working input + * curses server console scrollback works + * qfdefs nuked. no longer needed as "standard" progs get resolved + staticly + * TruForm support. Controlled by gl_tessellate + * Improvements in time accounting. Accurate to +-0.5ms, instead of -1,0 + like others. Based on Grievre's and zquake's code + * mangled sounds on gamedir change fixed thanks to Grievre + * mtex support for world rendering. + * alias models us GL lighting + * support for 7 mouse buttons + * all archived cvars get written to config.cfg prefixed with "seta" + (new command that sets the archive bit) + * x11/glx fullscreen toggling fixes (window placement, mouse input etc) + * add optional reason to kick and ban for qw-server + * DrSpliff's qfadmin script updated + * quaternion support in progs engine and qfcc + * optionally allow recomte commands from a specified host address + * add a -novideo option to fbdev target to allow for headless operation + * full path reporting when writing screenshots + * one level of .. allowed in file access (eg, exec ../configs/foo.cfg) + * add r_norefresh support to sw and sw32 and rename the console side of + the cvar to cooperate better with the evil in customtf + * new cvar from Grievre to control "fake" filtering and change the fake + kick default + * fix bug where certain looped sounds would cause a hang + * 64 bit compile fixes + * alias models are no longer black on maps with no lighting info + o qfcc enhancements. + * conforms better to Objective-C sematics + * "struct" support closer to that of C (ie, separate namespace) + * now supports the "unsigned" type (32 bit unsigned integer) + * correct handling of ! and &&/|| for traditional code + * linker error message improvements + * better error checking in + * can cast between pointers and integers + * --traditional operator precedence conforms to qcc but --advanced to C + * --traditional is default for progs.src and --advanced for separate + compilation + * much better qcc conformance in general for --traditional + * more informative error reporting + * if (const) now works properly (though dead code doesn't get + eliminated) + * allow constant expressions to be used for builtin numbers + * better constant folding with auto-conversion between scalar types + * warn on if (a = b) + * better detection of function calls in binary expressions + * give temp defs a name, making it easier to read disassembly output + * ensure a op= b treats b as if it was (b) + * ; at end of functions optional. C style function declarations + available + * short circuit logic for && and || (breaks --traditional when enabled) + * non-const expressions for frame in state operator valid + * computed functions for state think allowed + * change --include FILE to pre-include a file rather than add a + directory search path. Maps to -include FILE on the cpp command line. + * all warnings (except for @self and self) are now fully controllable + * --traditional now auto-inits uninitialized local vars + * fast-float code option (defaults to on). kills almost 3000 statements + from prozac + o tools enhancements + * wad utilty along the lines of pak. can't yet be used for wad creation + (that's a little more complicated), but it can be used for listing + and extracting the contents of a wad file. watch out for *foo :) + * qfbsp + - no longer zaps the bsp file when given a bsp instead of a map + when compiling a map + - watervis support + - handle multiple wad files properly + - better whilespace support for windows + - bring in many of LordHavoc's changes to qbsp: HalfLife WorldCraft + texture alighnment, partial "point of plane" autocorrection, + hipnotic entity rotation + - remove many arbitrary limits (edgs, points on windong, tokens and + keys) + - force axis aligned planes to truely be axis aligned (fixes + degenerate polygons being generated by ClipWinding) + - bsp to prt support (for watervising sourceless maps) + - can now dump a map's textures to a wad file + - various impovements from Vic via hqbsp (lordhavoc) + * qflight + - colored lighting support (from LordHavoc's hlight) + - use vis data to speed up light passes + - gzipped bsp support (reading only) + - threading works + - OpenQuartz's extentions (except -ikmap) brought in. id's light + model is default + - support properties files for setting default light settings for + different light entity types + - spotlight now works + * pak + - can specify files to extract from a pak + * qfvis + - support old-style portal files again + o Progs engine/Ruamoko enhancements + * Object root class revamped + * progs debug/disassemble improvements + * progs version update due to missing pointer in the symtab struct + + * progs string revamp: temp strings (eg, result from string + string) + get freed when the creating funciton exits + * new internal printf engine for progs + * report all bad builtins rather than just the first. make the bad + builtin number a warning and provide a suitable function in case the + function is called: allows progs with bad (but unused) builtins to + run anyway + * progs dump print an address if the def name is blank + * ruamoko math functions from Grievre + * while not yet perfect, qfprogs now works with qfo files + * new opcode: state.f. same as state, but takes a 3rd float operand to + specify the step for calculating nextthink. accessed using + [frame, think, step] (state is [frame, think]) + * progs handle x % 0 by giving a 0 result Changes from 0.5.3 o CRITICAL: exploitable buffer overflow in qw-server fixed diff --git a/libs/audio/renderer/wav.c b/libs/audio/renderer/wav.c index 33fec985c..0fbed45ff 100644 --- a/libs/audio/renderer/wav.c +++ b/libs/audio/renderer/wav.c @@ -272,16 +272,16 @@ get_info (QFile *file) info.rate = dfmt->samples_per_sec; info.width = dfmt->bits_per_sample / 8; info.channels = dfmt->channels; + info.samples = 0; if (cp) { info.loopstart = cp->sample_offset; if (dltxt) info.samples = info.loopstart + dltxt->len; - else - info.samples = data->ck.len / (info.width * info.channels); } else { info.loopstart = -1; - info.samples = data->ck.len / (info.width * info.channels); } + if (!info.samples) + info.samples = data->ck.len / (info.width * info.channels); info.dataofs = *(int *)data->data; info.datalen = data->ck.len; diff --git a/libs/audio/targets/snd_alsa.c b/libs/audio/targets/snd_alsa.c index 05000f8df..47f88be78 100644 --- a/libs/audio/targets/snd_alsa.c +++ b/libs/audio/targets/snd_alsa.c @@ -335,7 +335,7 @@ SNDDMA_Init (void) Sys_Printf ("%5d samplebits\n", sn.samplebits); Sys_Printf ("%5d submission_chunk\n", sn.submission_chunk); Sys_Printf ("%5d speed\n", sn.speed); - Sys_Printf ("0x%x dma buffer\n", (int) sn.buffer); + Sys_Printf ("0x%lx dma buffer\n", (long) sn.buffer); snd_inited = 1; return &sn; diff --git a/libs/video/renderer/r_light.c b/libs/video/renderer/r_light.c index a2e60098c..24678bc05 100644 --- a/libs/video/renderer/r_light.c +++ b/libs/video/renderer/r_light.c @@ -423,8 +423,10 @@ R_LightPoint (const vec3_t p) vec3_t end; int r; - if (!r_worldentity.model->lightdata) + if (!r_worldentity.model->lightdata) { + ambientcolor[2] = ambientcolor[1] = ambientcolor[0] = 255; return 255; + } end[0] = p[0]; end[1] = p[1];