2008-04-30 (CVS):
- stricter checking on the values pulled out of .wav file chunk headers.
from the tyrquake tree.
2008-04-22 (CVS):
- renamed model_t to qmodel_t in order to avoid conflicts on solaris.
2008-04-04 (1.4.3-final / CVS):
- fixed the declarations of Host_Error and Host_EndGame: they don't return
either due to Sys_Error() or longjmp().
- added server/client definition checks to hexenworld host.h headers, just
in case.
- even more clean-up in the makefiles.
- some tweaks in the objects link order.
- marked the cvs snapshot from Apr.04 2008 as 1.4.3-final.
2008-04-03 (CVS):
- msg_suppress_1 is used by the Win32 software (MGL) renderer: removed from
all other platforms and defined it as false.
- minor makefile cleanup for svga client.
- updated release notes for version 1.4.3 (2008-04-03.)
2008-04-02 (CVS):
- various fixes for the experimental svgalib client.
- moved msg_suppress_1 from vid files to d_surf.c.
- build system cleanup (removed sanity checks, added a phony report target
to engine makefiles, changed the default nasm command for windows from
nasmw to nasm, maybe a few other things.)
- minor platform clean-up in vid.h and input.h.
- added a note to the main makefiles for SDL requirement.
- added SDLQUAKE as a new preprocessor define: SDLQUAKE must be defined for
all SDL using platforms / targets.
- added a makefile for the svgalib-client. the client compiles fine but it
isn't tested and isn't supported, yet.
- updated release notes for version 1.4.3.
2008-04-01/02 (CVS):
- d_polyse.c: added FIXME notes about mistaken use of mainTransTable instead
of transTable in the T5 series functions, namely D_PolysetRecursiveTriangleT5,
D_PolysetDrawSpans8T5 and D_PolysetDrawFinalVertsT5.
- added video and input drivers for svgalib, adapted from quake1 source.
compiles fine but not tested: not for release at the moment.
- re-diff'ed the extra patches.
2008-03-31 (CVS):
- minor update to SrcNotes.txt.
- removed unnecessary extern declarations from a few C files.
- renamed sound.h to q_sound.h (avoid probable conflicts with system headers
on some platforms).
- re-diff'ed some extra patches.
- removed unnecessary includes from cd_win.c.
- removed a few more obsoleted entries from OSX Xcode files.
- changed beta release version date (2008-03-31 / 1.4.3-rc3).
2008-03-30 (CVS):
- added back some dead and previously removed software renderer stuff for
reference. doesn't affect the current functionality.
- changed beta release version date (2008-03-30 / 1.4.3-rc3).
2008-03-29 (CVS):
- updated the README documents: removed some stuff which are irrelevant
or outdated; added an ALSA workaround by Davide Cendron which resolves
non-power-of-two buffer size issues.
- updated the TODO list.
- minor update to SrcNotes.txt.
2008-03-28 (CVS):
- d_polyse.c: changed to types of the variables pix and pix2 from int to
unsigned int.
- d_polyse.c: changed the type of the variable btemp from byte to unsigned int
because we left shift it while using it as part of an index value (btemp<<8)
anyway.
- r_main.c: R_Init() : finish loading of all files before initing the driver and
performing the protection changes.
- moved FoundTrans from r_edge.c/r_edgea.asm to r_vars.c/r_varsa.asm following
the same style of quake1 with such variables.
- changed beta release version date (2008-03-28 / 1.4.3-rc3).
2008-03-25 (CVS, 1.4.3-rc2):
- a few updates to the documentation.
- updated compilation instructions.
- added link libraries path for directx stuff to the makefiles.
- added directx link libs for mingw.
- added sources for building the directx link libs (from icculus.org sources).
- removed outdated entries from OSX Xcode files.
- updated beta release version / date (1.4.3-rc2 / 2008-03-25)
- marked the cvs snapshot from Mar. 25, 2008, as 1.4.3-rc2.
2008-03-21 (CVS):
- FoundTrans isn't a long but an int, or int32_t to be exact because the asm
code uses it as a dword. it acts as a bool only. changed the type to int.
- r_edge.c, d_edge.c: FoundTrans clean-up; matched the C-only code to the
assembly code. FoundTrans stuff is only in refresh, not in drivers.
- d_scan.c: removed the old version of D_DrawSingleZSpans which didn't
match the asm code. the version in use did not reset ZScanCount for
which reason I don't know at all: enabled the "ZScanCount = 0" line
which is what the asm code does, anyway.
- updated the TODO list (2008-03-21.)
2008-03-20 (CVS):
- various insignificant clean-ups / tidy-ups.
- fixed a gcc-4.3 / type-punned pointer / strict aliasing warning in
utils/genmodel/loadtri.c.
- d_polyse.c: pointer must be cast to intptr_t, not necessarily long.
- d_polyse.c (D_DrawSubdivT5): d_pcolormap pointer isn't used by T5 functions.
- updated BUGS (2008-03-20.)
2008-03-19 (CVS):
2008-03-16 (CVS):
- nasm symbol prefix handling: added header file asm_nasm.inc and moved
common definitions into it. created macro _sym_prefix which adds an
underscore prefix to its given argument: all C-shared symbols are now
processed by this macro, unless the nasm flags contain _NO_PREFIX. for
elf targets, we add _NO_PREFIX to the nasm flags and that disables
symbol prefixing. this has some advantages over what we have been doing
previously: the "--prefix _" command line option used to prefix all of
the symbols, not just the ones we wanted. besides, yasm doesn't support
the --prefix option. now we can use yasm for win32 and dos, too. this
is actually like the id asm code with the C(label) macro.
2008-03-15 (CVS):
2008-03-07 (CVS):
- maputils/flow.c: added missing semicolon after VectorSubstract.
- mathlib macro clean-up: macros with multiple statements are now
enclosed in do-while blocks. changed VectorMA and VectorScale into
macros. not using memcpy for VectorCopy anymore (doesn't work with
DOUBLEVEC_T). usual whitespace clean-up while we were there.
- cl_input.c: whitespace.
- enclosed several macros with multiple statements in do-while blocks.
- added proper ifdefs to make hexen2 and hexenworld compilable with
cplusplus compilers (ie. g++) even when using x86 asm: no linkage
problems anymore. opengl version runs just fine but the software
version suffers severe rendering glitches in that mode except for
the DOS port which surprisingly runs fine.
- updated BUGS (Mar. 07, 2008.)
- made in_win.c to compile using cplusplus compilers (ie. g++).
2008-03-04 (CVS):
2008-02-28 (CVS):
- several documentation updates.
2008-02-08 (CVS):
- minor doc updates.
- updated rpm spec file.
- updated HoT version number in the launcher.
2008-02-07 (CVS, 1.4.3-rc1):
- another bunch of sprintf/strcpy to snprintf/strlcpy changes.
- minor tweak: r_part.o must stay among the softobjs and globs despite
the fact that it is the same. in fact, I should chop it into pieces
like, r_part.c, gl_rpart.c and cl_part.c, someday..
- windows fix: limit GlobalMemoryStatus results to 2GiB in order to
workaround for signed int. found in ezquake.
- fixed a corner case in StripExtension.
- some whitespace clean-up.
- updated release notes for 1.4.3 (2008-02-07.)
- updated beta release date and version (1.4.3-rc1, 2008-02-07.)
2008-02-05 (CVS):
- incremented the gamecode version number to 1.19a.
2008-01-29 (CVS):
- made COM_StripExtension, COM_FileExtension, COM_DefaultExtension and
COM_FileBase buffer size safe.
- added back strlcat and strlcpy to the utilities' build.
- changed the error check macros qerr_strlcat, qerr_strlcpy and
qerr_snprintf into actual functions. They take two additional arguments:
the name of the caller function and the line number. Killed the
Sys_mkdir_err macro, too, Sys_mkdir now takes a second argument,
qboolean crash.
- buffer size safety stuff in the utilities after the similar operation
in the engine tree. actually there is *much* to be done in the utilities
for q_strlcpy, q_strlcat and q_snprintf usage, but this is a good start.
- re-diff'ed the external music file support patch after today's api
changes.
- utilities: started using q_strlcat, q_strlcpy and q_snprintf: common,
genmodel, qfiles.
- minor Sys_FindFirstFile cleanup: Z_Malloc ensures allocation and zeroes
the memory.
- fixed huffman.c compilation after today's api changes.
- fixed compilation by cplusplus compilers (g++) when we configure for
runtime byte order detection: the usual int to enum problems, added
proper enum casts in model.c, gl_model.c and genmodel.c. the testing also
revealed a weird thing in genmodel.c: in its two functions, ReadModel
and WriteModelFile, byte swap operation on the synctype member is done
using LittleFloat, not LittleLong, although synctye_t is an enum and has
nothing to do about float: changed the code to use LittleLong. any ideas
on this? the modelgen tool of quake1 also uses LittleFloat, hmm...
- changed the beta release date to 2008-01-29.
2008-01-26 (CVS):
- don't rely on value to wrap around in get_va_buffer().
- cl_protocol parsing clean-up: use switch statements for better
readability.
- changed the debug message for svc_skybox and svc_mod_name to a
Con_DPrintf.
- added some more info about the hexen2 protocols to protocol.h.
- added 20 among the accepted values for the -protocol command line
argument. a little tidying up. added a debug message to SV_StartSound
to make sure everything is ok with the protocol mess. send empty
strings for svc_mod_name and svc_skybox if running with protocol 20,
uqe handles those empty strings correctly.
- handled the SND_OVERFLOW2 crap (used by UQE, for example). those who
increase the sound limit but don't increment the protocol make their
implementation incompatible with other older clients because they will
not be aware of such a mechanism.
- minor synchronization of headers / comments correction.
- changed the beta release date to 2008-01-26.
2008-01-22 (CVS):
- added my SrcNotes.txt among the documents.
- updated my SrcNotes.txt (2007-01-22).
- a little whitespace cleanup up pr_exec.c and pr_edict.c. while
I was there, renamed the global old_progdefs to is_progdefs111.
added older hwprogs header crc values from hexenworld versions
0.11 and 0.14 for reference.
- added further notes / documentation about old progs versions: 1.09
progheader_crc is the same as that of 1.11!
- hexenworld server: retired the win_stuff directory which only held
sys_win.c.
- updated the mkrelease script.
- minor cleanups.
- removed the eula thing from docs, irrelevant after all these years.
- updated web links again.
- updated release notes for 1.4.3 (2008-01-13).
2008-01-12 (CVS):
- q_stdinc.h: added compile time assert macros in order to make sure
certain types (ie. char, float, int and long) have the right sizes.
the macro was taken from recent SDL headers. some minor formatting
cleanup while we were there.
- tidied up procedures determining the cwd and the userdir.
- removed q_endian stuff from hwmaster. its only use was doing BigShort
on a server port constant and it is now done by htons().
- incremented several version numbers.
- added detection of byte order (endianism) at runtime as a new compile
time option. it is off by default, because compile time decision is a
little bit faster on old hardware. edit the file q_endian.h in order to
change it. compile time byte order is now checked against the runtime
detected order before doing anything else.
- launcher/config_file.c: minor clean-up.
- launcher: better separation of ui and non-ui parts.
- launcher: added ui_error for displaying error messages when the gui
is inactive.
2008-01-10 (CVS):
- removed an obsoleted comment from arch headers.
- updated my systest tool source.
- added msinttypes stuff for M$VC (from msinttypes.googlecode.com)
- added msinttypes/stdint.h conditional include for M$VC.
- makefiles: added our locl w32stuff directory to the includes path so
that include msinttypes/stdint.h works. removed unnecessary mingwdir
and djgppdir paths.
- updated release date to 2007-01-10.
2007-12-30 / 2008-01-04 (CVS):
- small clean-ups in snd_mix.c and snd_win.c
- console line editing: made insert mode the default (Steven's request).
- updated release notes for the upcoming 1.4.3 version (2007-12-30.)
- launcher, md5 checksum: no need for the unpack option.
- updated release date to 2008-01-04.
2007-12-24 (CVS):
- changed the sound driver interface to be more like a 'plugin' interface.
still, I should properly separate the multi-driver cases, such as the
windows wave and dsound, and the dos blaster and gus cases.
- moved S_BlockSound and S_UnblockSound to the snd_dma api, added BlockSound
and UnblockSound among the driver provided functions. made S_BlockSound to
clear the sound buffer. FIXME: do we really need the blocking at the driver
level?
- made sdl input driver to respond to the SDL_ACTIVEEVENT events: made the
game to block/unblock sound upon focus loss/gain.
- simplified stub funcs usage in snd_sys.c.
- made Sys_rmdir and Sys_unlink into actual functions rather than macros.
- added beginnings of SDL joystick support. not complete at the moment, will
stay commented out until I finish it.
- net drivers: rest of the constifications, minor whitespace cleanups.
- now that the old version of sdl audio driver is removed, removed snd_skippaint
which was its dependency.
- added missing memsets to net drivers.
- removed two unnecessary memsets from net_wipx.c after the previous commit.
- removed a deprecated comment from glquake.h
- glquake.h: GL_UNUSED_TEXTURE definition
- removed the ctype.h includes from winquake.h, not necessary anymore.
- removed the unistd.h includes from midi_sdl.c and midi_mac.c, not necessary
any longer.
- added missing global to vid_dos.c. how did it even link before??
- insignificant clean-ups in menu.c..
- removed the snd_restart experimental extra patch. it broke after the sound
driver interface changes and it wasn't stable enough anyway..
- updated release date to 2007-12-24.
- updated the release notes for the upcoming 1.4.3 version.
- documentation, updated web links.
2007-12-19 (CVS):
- Several typo fixes. Changed the uhexen2 version number to 1.4.3
in the documents.
2007-12-14/15 (CVS):
- updated several headers. retired q_types.h and added q_stdinc.h.
- updated HoT version to 1.4.3 (rc0: 2007-12-14.)
2007-12-12 (CVS):
- updated several OS/arch definitions.
- snd_sun.c, fixed compilation.
2007-12-08 (CVS):
- launcher: added a progress bar for the patch operation based on the
written bytes. tiny clean-ups, if any, while we were there.
- launcher: incremented version to 1.0.3
- minor documentation updates after the launcher changes.
2007-12-04 (CVS):
- added aliases for class definitions because some of them are
referenced with a different name in the progs.
- filtered invalid class numbers in Host_Class_f. besides, the demoness
class is only available in the mission pack WITH the mission pack progs
running, made sure of that, too.
- hexenworld: fixed a glitch in class selection menu.
- updated release notes for 1.4.3 (2007-12-04.)
- updated the list of known bugs (2007-12-04.)
2007-11-25 (CVS):
- pa3pyx's solution of resized pic size mismatches after resolution
changes was buggy, because it only handled one picture, probably
intending the intermission screen only and not others, such as the
help screens. Draw_CachePicResize now checks against the intended
dimensions and re-caches when necessary. while we were there, did
minor cleanups in the users of these funtions.
- updated release notes for 1.4.3 (2007-11-25.)
2007-11-22 (CVS):
- added mousewheel support for dos. the latest alpha version of cutemouse
driver (ctmouse 2.0a4) is needed. use the command line argument -mwheel
in order to use it if it is available. doesn't work under win9x dos box
because the windows driver will be in the way.
- made the cvar r_waterwarp value to be written to the config. replaced
the cvar gl_waterwarp with r_waterwarp in order to maintain consistency
between opengl and software versions.
2007-11-17 (CVS):
- made Sys_Error to pop up an alert panel on Mac OS X.
- synchronized the Mac OS X xcode project files with Levent's latest.
2007-11-16 (CVS):
- using memcpy within the same buffer is not safe: replaced such calls
in cmd.c, net_dgrm.c and net_loop.c with memmove calls.
- exported edit_line, key_linepos, key_insert and key_lines through keys.h
and removed the relevant externs from source files.
- tiny clean-up in Con_DrawInput().
- keys.c clean-up: used memmove calls when moving text in the same buffer.
removed some weird behavior with the rightarrow. added word processor
style ctrl-right and ctrl-left handling.
- updated release notes for 1.4.3 (2007-11-16.)
2007-11-14 (CVS):
2007-11-12 (CVS):
- more constifications (#4): things I missed in vid_dos.c/vid_dos.h.
- x86 assembly is needed for dos-hexen2: adjusted the makefile for it.
while we were there, made the makefile to error out immediately if
one wants to build glh2 for dos.
- more constifications (#5): things I missed in hexenworld/huffman.c.
- d_surf.c: cleaner size align code in D_SCAlloc, from quakeforge tree.
should have missed this in 1.4.2-release.
- hexenworld, huffman compression: instead of allocating memory 511 times
for each node, just allocate one chunk of memory (512*sizeof(huffnode_t))
and point to it properly.
- updated the huffman files from the main tree for the xqf rcon patch.
2007-11-11 (CVS):
- invented PR_GetProgFilename and took maplist.txt parsing out of
PR_LoadProgs.
- const correctness improvement: largely trivial stuff with a few
places where a little more care was needed.
- fixed a few warnings about comparison between signed and unsigned
integer expressions.
- const correctness improvement, #2: utilities. more work is needed
here, though.
- more const stuff (#3) in the utilities. while we are there tidied
some type casts especially for LoadFile().
- net_comx.c: fixed compilation after the large commit.
2007-11-07 (CVS):
- moved all of windows crap from snd_dma.c and snd_mix.c to its
platform driver file snd_win.c. those things were only about
locking the directsound buffer, so added SNDDMA_LockBuffer
(equivalent to SNDDMA_BeginPainting of quake2 and quake3) among
the driver provided functions. while we are there, fixed a bug
in our sdl audio implementation (and usage): since sdl output
is callback based, it needs the same locking before every paint
and a corresponding unlock before the submit. those calls were
missing, they are added now.
- retired the old version of sdl audio driver.
- abandoned using hunk allocation for windows 'wave' sound.
- updated release notes for 1.4.3 (2007-11-07.)
2007-11-05 (CVS):
- added v1.11 pakfile data for the oem (Matrox m3D bundle) version.
data for older versions (1.08 and 1.10?) of oem are still missing.
- updated release notes for 1.4.3 (2007-11-05.)
- launcher: stat() the pakfiles before patching.
2007-11-03 (CVS):
- win32 resource files, minor update (clean-up).
- Sys_EnableTerm and Sys_DisableTerm are only for dos.
- relnotes-1.4.3: fixed a typo.
- added the OpenBSD version of inet_addr() for dos. while we are there,
did some minor clean-up in dos_inet.h.
- added short compilation instructions for DOS.
2007-10-30 (CVS):
- a few minor warning fixes and clean-ups.
- fixed my typo in net_comx.c
- added missing casts in several dos files.
2007-10-26 (CVS):
- minor makefile tweaks. gave up refusing 'cc' as the compiler. gave up
using a different name for the launcher demo builds.
- small update to the common makefile includes.
- use standart sys_error for the error exit in dos mpath driver.
- hwmaster functionality is now integrated to qstat and xqf. cleaning up
the stuff here..
2007-10-24 (CVS):
- added a mechanism to reserve certain keys to ensure that they always
stay with their intended hardcoded bindings.. reserved '`', '~' and
the pause keys.
- draw.c, gl_draw.c: added a few missing error checks, plugged a very
minor memleak.
- added back serial driver functionality for the dos support.
- fixed the modem connection menus for dos.
2007-10-23 (CVS):
- added a note about the pause key to Sys_SendKeyEvents.
- fixed an evil bug in key event handling which prevented almost all
pause key events on dos.
- enabled DOS builds of hexen2 software renderer (hey, I still love
my trusty old dos box!). compilation only tested under under linux
using djgpp cross toolchain. at present, the beta 2.04 version of
djgpp is needed because 2.03 and earlier doesn't provide a vsnprintf
for us. some serial driver functionality, either was already absent
in hexen2, or was removed by uhexen2, will be added later. the midi
playback is not there, yet, either. the loading progress bars and the
rotating skull doesn't work yet. other than those, all things seem
to work just fine.
2007-10-22 (CVS):
- added vga screen copy assembly code of quake, converted to nasm
format.
- added DOS support files, from quake1 source with minor adaptations
for uhexen2.
- net_ser.h and dosisms.h are no longer in the unused files directory.
2007-10-21 (CVS):
- several tweaks to the makefiles.
- updated the qstat hwmaster patch for the svn version.
2007-10-20 (CVS):
- platform definition fixes for DOS.
- re-enabled Cmd_CheckParm (will be needed later).
- added DOS conditionals to some includes, most notably unistd.h.
- minor fixes for -Wshadow warnings.
- added conditionals around some input functions which are related
to windowed environments.
- added dos definitions to snd_sys.
- dosquake doesn't use vid buffer locking.
2007-10-18 (CVS):
- more updates to the build scripts.
- endianness macros clean-up for MASK_rgb.
- more updates to the build system, removing the rest of weirdness.
2007-10-16 (CVS):
- more updates to the build scripts.
- updated the loki_patch and xdelta pak patch scripts. the xdelta
script is less brain-damaged and now supports the md5 and md5sum
utilities both and should work on BSD derivatives.
2007-10-15 (CVS):
- more updates to the endianness stuff.
- seems like gcc-3.0 wasn't enough for specifying format attributes for
function pointers: we need gcc >= 3.1. fixed.
- added systest.c (the stupid little tool I use to see a report of type
sizes and byte order) to the scripts folder.
- a few build system tidy-ups: use lowercase host_os names, do not use
the align directives on platforms other than x86 and x86_64, disable
3dfx gamma hack when not compiling for linux or freebsd.
2007-10-14 (CVS):
- fs_gamedir_nopath should actually have an array size of MAX_QPATH.
- added a new compile time option DO_USERDIRS which allows disabling the
user directories even on multi-user platforms.
- re-enabled the use of password file when determining the user's home
directory.
- moved the USE_PASSWORD_FILE definition to appropriate headers (h2option.h).
- fixed a theoretical buffer overrun in Sys_ConsoleInput and printed a
warning message in such cases.
- tidied the sleep calls. made Sys_Sleep to take a milliseconds argument.
while we were there, did a little tidy-up between different versions of
a few sys* files.
- tidy-up for MAXPATHLEN definitions in xdelta.
- disabled USE_PASSWORD_FILE for platforms where it's not needed in sys.h.
- updates to net_sys.h header.
- enable sdl sound on more possible platforms.
- minor things (quicktime include in midi_mac.c).
- updates and some re-organization in arch_def.h headers.
- minor update to the Xcode project file.
- endianness handling: added PDP (NUXI) endian support, inspired from ezquake.
only serves academic purposes, though.. added a function for detecting the
byte order at run-time. adjusted the game launcher to use the standart that
is already in the engine trees.
- fixed BYTE_ORDER conditional compilation in pr_edict.c: the code must
be compiled not simply for BIG_ENDIAN but for !LITTLE_ENDIAN cases.
- fixed the r, g and b shift values in gl_draw.c (thank god they were not
used there, the little endian values in macglquake must be a bad typo!),
added the corresponding nuxi values, moved all of them to the glquake.h
header. removed the BYTE_ORDER conditionals from gl_vid* files and used
these relevant shift and mask macros.
- fixed compilation with gcc2: argument format attributes for function
pointers are not supported for gcc < 3.
2007-10-10 (CVS):
- pass NULL as the timezone argument to gettimeofday.
- added a default MAXHOSTNAMELEN definition to net_sys.h in case we don't
have it through the system headers.
- always use MAXHOSTNAMELEN as the size of the buffer we give to gethostname().
- renamed our min and max macros to q_min and q_max and undefined any
possible default ones to avoid confusion.
- some proper ifdef usage in xdelta. changed S_IFREG usage with S_ISREG.
- arch defs: separated MorphOS (and Amiga) from platform_unix. Kiero (the
MorphOS guy) isn't responding to e-mails, so, it may take some time to
put those things in order.
- arch defs, #2: added a FIXME note about MorphOS: Since MorphOS (and Amiga)
aren't classified as PLATFORM_UNIX, several things may well be broken in
all of the uhexen2 tree. particularly, search for the __MORPHOS__ ifdefs..
2007-10-08 (CVS):
- minor documentation updates and corrections after the 1.4.2 release.
- minor things.
- re-enabled the success check during wad_base loading: although we
are doing intensive pak file validity checks during FS_Init, this
gives more ease of mind.
- a few more comments in q_types.h and C++ NULL definition if we don't have
one.
- fixed the paths in texutils cross compilation scripts.
2007-10-03 (CVS, 1.4.2-final.):
- marked the cvs snapshot from Oct.03 2007 as 1.4.2-final.
2007-10-02 (CVS):
- huffman.c: added a note.
- small final tidy-up in hwmquery.
- hexenworld tools: added extra patches against qstat and xqf for proper
rcon and hwmaster functionality.
- updated docs (2007-10-02.)
2007-10-01 (CVS):
- documented the quakefs file loading procedures.
- host_cmd.c: fixed a typo.
- hexenworld: exported sv_highchars through server.h.
- hexenworld: a few fixes in info strings handling.
- removed unnecessary NULL checks on the values returned by Info_ValueForKey
because it may return an empty string but never NULL. removed the strlen
usage from empty string checks on the values returned by Info_ValueForKey
and just used *val or val[0] instead.
- minor clean-ups in hexenworld utilities.
- updated the version numbers of the hexenworld utilities.
- added the missing printf format attributes to print function pointers in
Host_Status_f and NET_Ban_f.
- updated documentation (2007-10-01.)
2007-09-29 (CVS):
- FS_OpenFile didn't set fs_filesize for files not residing in a pak. fixed.
- implemented deleting of saved games from within the game: pressing the
delete key in the load or save menu (and pressing y at the dialog) does
the job. alternatively, the new console command deletesave <savename>
does the same thing.
- limited recorded demo file, saved config file and game save directory
names to alphanumeric only.
- clean-up in Host_RemoveGIPFiles: replaced two unnecessary snprintf
usages with strlcpy. replaced a va() call with an snprintf onto the
already available local array, which is probably safer.
- allocated the large (256 kb) inverse_pal array on the Hunk rather than
the stack. while we were there, did a little tidy-up.
- replaced a few strncpy usage with strlcpy. surely there are some more
but these are the ones I'm sure about.
- exported Draw_PicFromFile and Draw_PicFileBuf again, in case we use them
someday.
- pr_strng.c: minor trivial clean-up.
- added Sys_unlink and Sys_rmdir. for platform_unix and platform_windows,
they are macros defined as the library functions themselves, for others
it must be implemented.
- updated documentation (2007-09-29.)
2007-09-26 (CVS):
- fixed sound buffer address printing.
- updated the compile instructions for windows.
2007-09-23 (CVS, 1.4.2-rc3):
- always use our q_snprintf and q_vsnprintf wrappers: it is virtually
impossible to maintain a list of non-C99 compliant versions.
- updated the beta release version/date (1.4.2-rc3, 2007-09-23.)
2007-09-22 (CVS, 1.4.2-rc3):
- to overcome the the portability problems with snprintf and vsnprintf,
added suitable q_snprintf / q_vsnprintf wrappers with C99 compliant
return values. updated several other wrapper macros with a consistant
naming scheme.
- gl_vidnt.c: added missing newlines to some warning messages.
- undefine HAVE_STRLCPY and HAVE_STRLCAT in strl_fn.h (just in case..)
- updated the beta release version/date (1.4.2-rc3, 2007-09-22.)
2007-09-21 (CVS, 1.4.2-rc3):
- snd_sdl2.c: added missing casts to buffer allocation calls.
- changed some qboolean types to int in model files where the variables
are actually assigned values other than true and false. this change,
especially the one in gl_mesh.c, fixes the broken models in binaries
compiled using g++ (cplusplus).
- several more clean-ups in value assignments to qboolean variables.
a few minor clean-ups here and there.
- updates to some error routine calls.
- updates to some error routine calls, #2. a few clean-ups while we are
here.
- updated the list of known bugs (2007-09-21.)
- updated the beta release version/date (1.4.2-rc3, 2007-09-21.)
2007-09-20 (CVS, 1.4.2-rc3):
- added FS_CopyFromFile to QFS which uses an open file as its source.
removed MIDI_ExtractFile helper from midi driver files and replaced
its calls with FS_CopyFromFile.
- re-diff'ed the external music file support extra patch after the
FS_CopyFromFile change.
- windows midi clean-up.
- sys_win.c: don't use LONG_MAX as the TIME_WRAP_VALUE.
- changed Xcode project files for Mac OS X to use the new snd audio driver.
- QFS: FS_CreatePath fixes.
- sound: made 22050 Hz the default sample rate. removed 22051 from the
tryrates list.
- updated the release notes for 1.4.2 (2007-09-20)
- updated the beta release version/date (1.4.2-rc3, 2007-09-20.)
2007-09-19 (CVS):
- The new SDL audio driver seems to have fixed the rare bug where the game
would randomly quit with an error message 'Cache_MakeLRU: active link'.
Updated the documents accordingly.
2007-09-15 (CVS):
- clean-up in vid* files: mostly whitespace and readability stuff.
- changed all technically incorrect unsigned int declarations (unsigned)
to explicit unsigned int declarations.
- clean-ups in snd* files: mostly whitespace and readability stuff. while we
were there, fixed a few technically incorrect return codes (int instead of
bool), fixed a wrong cast in some memset calls (dma_t* instead of void*),
made the alsa buffersize warning messages to show up on the game console,
made OSS driver to use the system definition AFMT_S16_NE when available.
- updated the list of known bugs for the 'Cache_MakeLRU: active link' error.
- fixed the reporting of the video mode set when the effective console size
isn't of same dimensions as the video mode itself.
- updated windows compilation instructions.
- exported soundtime through sound.h.
- added snd_skippaint as a new global: it is set by our current sdl audio
driver indicating that it already 'paints audio'. while we were there,
changed the 'available' member of the snd_driver structure of snd_dma.c
from qboolean to int.
- re-diff'ed the alternative snd_sdl and experimental snd_restart extra
patches.
- added the new sdl audio driver mainstream. the old driver seems to be
more problematic, so let's give this one a chance.
- removed the alternative sdl audio patch from the extra patches directory
(already added maintream.)
- activated the new sdl audio driver in the makefiles.
- updated the notes in the experimental snd_restart patch after the
latest changes.
- updated the beta release version/date.
- updated the release notes for the upcoming 1.4.2 version.
2007-09-09 (CVS):
- minor clean-up in alias console command.
- minor whitespace clean-up.
- made the xbm icon bits non-static: they are used only in the relevant
VID_SetIcon procedure and the 'static' was a left-over from gimp icon
file generation.
- re-enabled the mission pack icon in xbm_icon.h in case we build with
H2MP pre-defined.
- changed most of the critical invalid pakfile errors to warning messages
on the terminal.
2007-09-05 (CVS):
- fixed pr_stringssize calculation: progs->numstrings already is the correct
size we should use and the loop for calculating pr_stringssize was wrong
as hell. the bug was carried over from the twilight project which we initially
based our 64 bit support on. sigh...
- updated the beta release version/date.
2007-09-02 (CVS):
- added two missing null terminations after strncpy calls.
- precautions against possible buffer overruns in (gl_)model files. the
loadname array size change was also necessary in order to avoid overruns
in COM_FileBase.
- hexenworld, model.c: fixed typo (oops...)
2007-08-30 (CVS):
- changed all of the string buffer overflows which were previously
non-critical to Host_Errors (the majority of them were in host_cmd.c
and host_cmd.c). while we were there, removed the game load/save
retry messages and changed them into Host_Errors and corrected a few
return codes of the relevant procedures. added a few missing return
code checks around SaveGamestate and LoadGamestate calls. these
changes make hexen2 seem a little less tolerant but more stable and
secure.
- menu.c: minor tidy-up.
- launcher: 'ptr++' tidy-up.
2007-08-28 (CVS):
- UDP: using the hostent method, myAddr may resolve to 127.0.0.1. added
interface scanning to overcome the problem. from the quakeforge tree.
- UDP, unix: added command line option -noifscan, in case someone wants
to disable network interface scanning for some reason.
- updated release notes for v1.4.2 (2007-08-27.)
- made hexen2 dedicated servers to start the demo1 map if map map was
specified on the command line.
- a few more safeprint changes in the net files.
- fixed an incorrect size argument (WIPX_AddrCompare, sa_nodenum, 6, not
4) in the windows ipx driver.
- minor cleanup.
- vid_win.c: whitespace clean-up, dead code removal.
- net_wins.c: minor clean-up.
- net_wipx.c: minor clean-up.
2007-08-25 (CVS):
- net_dgrm.c: Datagram_Init must return -1 if it couldn't initialize any
drivers.
- net_udp.c, net_wins.c, net_wipx.c: fixed the bad merge of the -ip command
line options (-localip was missed and GetSocketAddr had a bad usage of the
options.) added -bindip as an alternative for the -ip option (both are the
same, -ip is checked first). changed several print calls to safeprints in
the init procedures. several cleanups in the windows version. documentation
update will follow shortly.
- hexenworld: added -bindip as an alternative for the -ip option after the
similar hexen2 change (both options are the same, -ip is checked first).
- updated documentation after the ip option additions.
- net_wins.c: another safeprint change (this one got missed previously).
- small update in documentation.
2007-08-20 (CVS):
- host.c, Host_FindMaxClients: svs.maxclients can't be < 2 for listen
and dedicated servers.
- h2ded, net_main.c: removed the port, listen and maxplayers console
commands. they are for use with the client-server binary through
the menu system and shouldn't be around for the dedicated server.
- minor fix in hexenworld map command.
- net_main.c, h2ded: removed the bool listening which is a leftover from
the client-server application.
- ifdef'ed out the SearchForHosts and Connect members of the net_driver_t
structure for the dedicated server and removed the relevant stubs from
server/net_dgrm.c.
- use the standard "struct in_addr" instead of ints or longs for myAddr.
from the tyrquake tree.
- Added the "-bindip" option to hexen2: Enables the user to bind to a
specific IP address on a multi-homed host rather than INADDR_ANY, ie.
all interfaces. Ported from the tyr-quake tree. Note that using this
option will prevent us from receiving broadcast packets, so server
discovery on the LAN will not work if the server uses this option.
Added -localip command line option: Enables the user to specify an IP
to use in response packets for serverinfo and connect requests, but
still binds to INADDR_ANY, therefore it can see the broadcast requests.
This is really just a work around for the problems inherent when
embedding the client/server IP addresses inside the network protocol.
The specific example which drove this implementation is that of a
multi-homed server who needs to listen on INADDR_ANY in order to
receive broadcast server discovery requests but needs to know which
of its IP addresses it should return to the client in the serverinfo
reply. Really, the client should just look at the source address of
the serverinfo reply, but we need to stay somewhat backwards compatible
with old hosts.
- includes cleanup.
- net_udp.c: minor things.
- updated release notes for the 1.4.2 version (2007-08-23.)
2007-08-20 (CVS):
- fixed a crash when changelevel2 is requested for a non-existant map.
- snd_win.c: minor cleanup for DirectSoundCreate call.
- removed the ls_invalid thing which was supposed to prevent unnecessary
multiple drawing of the loading plaque: first, I seem to have forgotten
setting it to false after the first draw which made it non-functional
(sigh). more importantly, multiple Con_Printf calls during the loading
procedure clobber it: the only way of stopping that is cancelling the
immediate screen update call in CON_Printf, but no console text during
the loading stage doesn't look good, so let's remove it already.
- updated the mission pack new game starting menu procedure and added
comments to it.
2007-08-14 (CVS):
- launcher: a more consistant fix for two toggle buttons.
- launcher: renamed interface.h to launcher_ui.h, interface.c and
compat_gtk1.h to gtk_ui.c and gtk_ui.h. adjusted the makefile
accordingly. removed the .gtk1 binary name suffix from gtk-1.2
builds.
- updated the rpm spec file (removed the .gtk1 suffix from launcher
gtk-1.2 builds).
- updated the documents after the launcher changes.
- launcher: removed widget_defs.h and merged its contents to gtk_ui.h.
- launcher: removed the unnecessary delete_handler member from the
PatchWindow structure.
- launcher: several tidy-ups.
- launcher: pointer for the patch thread return value should be unsigned.
- printsys.h: added a Con_SafeDPrintf macro.
- console.c: clean-up for Con_SafePrintf calls.
- changed Con_Printf calls into Con_SafePrintf in the video initialization
routines.
- removed the windows message box asking the user for a retry when the
sound hardware is in use, moved S_Init from vid_win.c to Host_Init.
while we were there, moved Sbar_Init to a place before S_Init, so all
init procedures loading some textures are all together.
- in_win.c: changed Con_Printf calls into Con_SafePrintf in the initialization
routines.
- minor re-organization in VID_ChangeVideoMode procedure.
2007-08-13 (CVS):
- launcher: fixed toggle events for a few buttons. from Steven.
- gl_rmain.c: setting the v_gamma value isn't necessary, view.c
already does that for us.
- gl_model.c, gl_model.h, gl_rmain.c: glow code tidy-up: made the
glow_color member of the model structure an array of 4 instead
of 3. removed an unnecessary glTexEnvf call (setting TEXTURE_ENV_MODE
to GL_REPLACE) from R_DrawAllGlows(). moved torch color setting
from R_DrawGlow() to Mod_SetAliasModelExtraFlags(). minor clean-ups.
2007-08-09 (CVS):
- launcher improvements: removed the "save options" button. options
are saved auto-saved either upon program abort or upon launching
the binary. moved the 'info and patch' string onto its button and
removed the 'go' thing. moved the sample rate menu to the front
tab. added a new 'extra arguments' widget which allows user's own
additional arguments to be passed to the command line. this was a
feature request in our tracker. moved all of gtk specific things
into interface.c and made main.c and all others free of gtk. the
public ui functions are exported from interface.h, so if someone
wants to use another api (qt, kde, whatever) they only have to
re-write interface.c. incremented the version number to 1.0.2. I
might be able to do some user interface clean-up before the final
release, but we'll see.
- a few clean-ups in software renderer.
- updated the TODO list (2007-08-09.)
2007-08-06 (CVS):
- small documentation tidy-up.
- minor clean-up for gl_texturemode and its menu entry.
- sbar.c, small tidy-ups.
- sbar.c: use the global MAX_INVENTORY definition instead of INV_MAX_CNT.
they have the same meaning.
- implemented Raven's D_PolysetDrawFinalVerts series of functions in C.
the function affects drawing of alias models past a certain distance
and the result is most noticable at lower resolutions.
- updated the TODO list (2007-08-06.)
2007-08-01 (CVS):
- opengl, clean-up of glBlendFunc calls: our default blendfunc is
GL_SRC_ALPHA/GL_ONE_MINUS_SRC_ALPHA, no need to specify unless
we use something else. added missing glBlendFunc restore calls
in R_DrawAliasModel (gl_rmain.c) for the EF_SPECIAL_TRANS case,
and in R_BlendLightmaps (gl_rsurf.c) for the GL_RGBA case.
- fixed particle translucency in C-only software renderer.
- trivial clean-ups (d_polyse.c).
- more extern stuff. (btw, why is r_alias.c referencing transTable,
and not mainTransTable ??)
- d_scan.c, d_polyse.c, tidy-ups (trivial).
- d_edge.c, d_surf.c, r_misc.c, more tidy-ups (trivial).
- switched back to destroying and re-creation of the main window during
resolution change for the windows opengl version: otherwise we may run
into failures (at least it happens on my windows xp with an ati card).
in order to overcome directinput loss, added IN_ReInit procedure which
re-initializes directinput only.
- added IN_ReInit to the SDL version for consistancy.
- when touching entities, it is possible for the next linked entity to be
freed, and thus unlinked. when this happens, make sure the pointer to the
next entity to be touched gets updated appropriatly. from the quakeforge
tree. this was a known quake bug on e2m2 with easy skill. see threads at:
http://www.quakesrc.org/forums/viewtopic.php?t=3664
http://www.quakesrc.org/forums/viewtopic.php?t=6633
- dealt with some minor details in windows opengl version.
2007-07-29 (CVS):
- added comment labels for texture modes in GL_Upload8.
- updated the list of known bugs: added more info to the amd64 debug
builds entry. removed the network non-interoperability entry, can't
reproduce the report. 2007-07-26.
- rearranged the compile instructions according to Levent's suggestions.
- changed S_IFREG and S_IFDIR usage into S_ISREG and S_ISDIR macros.
commented out one unnecessary S_ISREG check.
- changed some of our variadic macros so that gcc extensions aren't used
if running in c99 mode.
- gl_rmisc.c: removed some dead code.
- updates to gl_draw.c: texture mode >= 10, hence the sprite boolean in
the GL_Upload functions were never set or used , removed them along
with the associated gl_spritemip cvar. instead of passing another arg
to fxPalTexImage2D, made fxpal_buf a static variable. cleaned up some
code in fxPalTexImage2D and GL_Upload8.
- moved some extern declerations in draw.c and gl_draw.c to appropriate
headers.
- removed the gl_texsort patch from the extra patches for now. it doesn't
work correctly after all.
- tidy up in glquake.h. separated particle types and enums into the
new particle.h header which is shared between opengl and software
renderers and is included from d_iface.h or glquake.h. also made
flush_textures a variable for hexenworld again which is less mess
for us.
- re-diff'ed the gl_fog extra patch.
- gl_model.c, trivial clean-up.
- in_sdl.c, minor things.
- removed some more of redundant extern declrarations from source files
and moved smoe of them to proper headers. this is actually a big mess
and I don't know there is an end to it.
2007-07-25 (CVS):
- merged a new translucency mechanism for the sprite models. this fixes
the demoness (succubus) fireball and powered-up acidball translucency.
still using the original alpha code for the path where no translucency
flags are set: pa3pyx's alpha code looks rather ugly.. besides, truly
fixed the problem of extra lines being drawn: we've been calling the
glTexParameterf after the glBegin call, not before, which was invalid.
so, disabled the old, messy and incorrect work-around for the fireball
lines bug.
- Hunk_AllocName already clears the buffer: no need for manually clearing
svs.clients, reverted that change from july 15.
- updated documents for the known bugs and 1.4.2 release notes.
2007-07-22 (1.4.2-rc2 / CVS):
- updated the compilation instructions.
- minor documentation updates.
- marked the snapshot of 22 July 2007 as 1.4.2-rc2.
2007-07-21 (CVS):
- added comments on type sizes to q_types.h.
- minor documentation updates.
- removed the unnecessary pak.h header and moved its contents to
quakefs.c, its only user.
- rediff'ed some of the extra patches.
2007-07-20 (CVS):
- renamed mousestate_sa to menu_disabled_mouse for better clarity.
- updated documentation (BUGS, TODO, 2007-07-20.)
2007-07-19 (CVS):
- in_win.c: minor directinput clean-ups. no need for SetCursorPos
and ClipCursor calls in direct input mode. set mouseinitialized
and dinput_init to false in IN_Shutdown.
- vid_win.c: for compatibility with newer Windows versions, changed
several SetWindowLong calls into SetWindowLongPtr.
- gl_vidnt.c: made the windows opengl version to re-use its window
and not destroy it during mode changes. with this, direct input is
no longer lost after a vid_restart.
- updated release notess for the 1.4.2 version (2007-07-19.)
2007-07-17 (CVS):
- input drivers update: removed some redundant code from in_sdl.c,
a left-over from from AoT from win32-to-sdl porting times. added
button4 and mousewheel support to win32 dinput code (adapted from
darkplaces). ported the dinput code from hexenworld to hexen2:
works properly as it is but I lose input upon vid mode switching,
to be looked into. some clean-ups elsewhere in the input code.
- added LINK_DIRECTX as a new makefile option, defaulting to no. if set
to yes, we shall link to dinput, dsound and dxguid. if set to no, the
makefile will emit a DX_DLSYM definition to the compiler, we'll load
the necessary symbols at runtime and we'll be compatible with ancient
windows versions without a directx installation. the direct input GUID
definitions taken from the quake3 source.
- NET_SendToAll: renamed the cryptic state1 and state2 variables to
something more indicative of their purpose. suggested by Tyrann.
- in_win.c, snd_win.c: removed the outdated iDirect[xxx]Create definitions.
- snd_dma.c: removed unused S_AmbientOn, S_AmbientOff and snd_ambient.
- in_win.c: fixed the mouse button mapping after the recent changes.
- removed all references to nonintel.c (not needed).
2007-07-15 (CVS):
- network fixes and clean-ups: removed remnants of dead functions
(Datagram_Connect) from the hexen2 dedicated server. removed the
dead variable configRestored from net_main.c (it used to serve
something when the serial driver was compiled in quake). changed
the blocktime argument of NET_SendToAll() to double (the comparison
is against a double). fixed a bug in NET_SendToAll where it didn't
skip non-connected clients. cleared svs.clients after allocating it.
- updated release notes for v1.4.2 (2007-07-15.)
2007-07-12 (CVS):
- strlcat and strlcpy should include arch_def.h.
- removed the splitbuffer, gamealive and soundalive members of the
dma_t structure, they aren't used in any way. a few minor things
here and there.
- build system updates.
2007-07-10/11 (CVS):
- made all of the sys* files to use the exact same platform version of
Sys_DoubleTime. less mess.
- updated some scripts.
- updated platform definitions. updated the endianness header.
- minor updates to some debugging commands.
- big update of platform definitions.
- even more of platform definition updates.
2007-07-09 (CVS):
- msg_io.c: trivial clean-up.
- huffman.c: fixed a wrong ifdef.
- minor huffman cleanups.
- more huffman cleanup: moved all of the debug output stuff to
huffman.c and made almost all of the debug vars static to it.
only PrintFreqs() is exported and we don't call it anyways.
- huffman: other minor things.
- fix for the z/overlay problem in the non-intel sofware renderer code
from Juraj Styk: "The problem was located in R_LeadingEdge() and
R_LeadingEdgeT() in part that tries to determine which surface should
be drawn on top another. One part of the test compares z value from
one surface with z value of another multiplied by constant value of
(1.01 and 0.99 in this case ). It turns out that this constant is too
big (asm code used 1.001 and 0.999) and it can cause problem when two
surfaces overlay one another and are separated only by a little space."
Juraj, you are the man!
- updated the list of known bugs.
2007-07-06/08 (CVS):
- updated the release notes for 1.4.2 (2007-07-06.)
- small updates to the 3dfx gamma library.
- renamed the HX2_ALSA macro to ALSA_FUNC.
- dlsym fixes: added proper casts.
- updated the external music extra patch after the dlsym changes.
- updated the lib3dfxgamma exmaples after the dlsym fixes.
- updated the win32 headers: switched to using the dx6 headers from the
libsdl site. added back the schitech's mglpoint.hpp and mglrect.hpp
headers for C++ compatibility.
- gl_mesh.c: worked around a type-punned pointer. adapted from quakeforge.
- added proper casts to several alloc calls and assignments. avoided
new and this usage as our var names. this makes HoT compilable by
c++ compilers (g++). there are many warnings, but no errors. utils
and others will be checked, too.
- g++ casts and stuff, part 2: the utilities. added proper casts to
several alloc calls and assignments. avoided new and this usage as
our var names. this makes the utils compilable by g++. there are
many warnings, but no errors.
- fixed the gl model borkage after the previous large commit. how
did this sneak in anyway.. there may be even more.
2007-07-04 (CVS):
- minor documentation updates.
- instead of pointing to a stack buffer, the command buffer is allocated
dynamically (Hunk_Alloc or malloc) again. with this, the hexen2 binaries
compiled with gcc-4.0.x in unit-at-a-time mode doesn't segfault anymore.
did the same thing to the client message buffer and net message buffers
of hexen2, as well. added the old SZ_Alloc functionality to SZ_Init in
order to handle allocations.
- adjusted the makefiles after the sizebuf allocation changes. if one
specifically wants to disable the unit-at-a-time mode, he can either
edit the the makefiles for cflags, or he can specify it on the command
line, like: make NO_UNIT_AT_A_TIME=1 [other options]
- updated the COMPILE document after the gcc-4.0.x unit-at-a-time
changes.
- documented the new SZ_Init behavior in sizebuf.h.
- made the cvar r_transwater to really act as an on/off switch
for translucency: setting of the SURF_TRANSLUCENT flag for
water used to depend on r_transwater in Mod_LoadFaces(), and
since it is only run at the level load if the cvar were set
to 0 at that time the flag wasn't set and water translucency
switching wouldn't happen. the previous behavior was probably
intended to avoid the translucency procedures when r_transwater
was set to 0. switching works now.
- gl_mesh.c, minor clean-up: no need for the static paliashdr pointer.
- utils: removed the bogus gfx/palette.lmp string check from the new
version of hcc.
- updated the release notes for the upcoming 1.4.2 version.
2007-07-01 (CVS):
- Fix (work around) for the spans problem of the non-intel software
renderer code. From Juraj Styk. Actually, the whole FoundTrans and
TransCount usage will need a serious audit/clean-up.
- updated the list of known bugs. updated the todo list.
2007-06-30 (CVS):
- sys.h: minor clean-ups, removed stale comments.
- updated the mkrelease script.
- removed or commented out a lot of non-functional variables. surely
there are some more, but these are the ones I'm sure about.
2007-06-28 (CVS):
- utils/dcc: fixed segfaults which were due to an array going out
of bounds in GetReturnType(). now that the culprit is identified,
re-applied the static patch. made several clean-ups.
- utils: dcc, hcc, hcc_old: constifications.
2007-06-27 (CVS):
- small updates to the documentation.
2007-06-26 (CVS):
- minor warning fixes, etc.
2007-06-25 (CVS):
- updated the list of known bugs (June 25, 2007.)
2007-06-24 (CVS):
- Added T2 versions of D_PolysetDrawSpans8 and co. Directly from Juraj Styk:
"D_PolysetDrawSpans8T2 is very similar to D_PolysetDrawSpans8T. The difference
is that D_PolysetDrawSpans8T2 perform one more test in which it test if color
of rendered skin texture is odd or even (assembler code checks if lowest bit
in register containing color index is 0 actually). If it is even it skips the
phase when skin color is mixed with color from display buffer and uses skin
color instead. So part of skin with even numbered colors would be rendered
opaque while parts with odd numbered colors would be semitransparent and parts
with color 0 would be fully transparent." Therefore, in D_PolysetDrawSpans8T2,
if (color_map_idx % 2 == 0) *lpdest = btempl; is just done, instead of doing
*lpdest = mainTransTable[(btemp<<8) + (*lpdest)];
2007-06-22 (CVS):
- conproc.c: minor fix to the CreateThread call.
- made IN_Commands() to return without operation if in_joystick is set
to 0. this might prevent windows xp weirdos that a few people have
been reporting: player continuously spinning around on a system with
no joystick at all..
- win32 midi: fixed debug builds. removed some commented out code. renamed
two private procedures for better clarity.
2007-06-18 (CVS):
- updated Xcode project files for hexen2. from Levent.
2007-06-16 (CVS):
- added initial support for software renderer without intel assembly:
lifted from the hexen2 PSP port (http://jurajstyk.host.sk/) of Juraj
Styk with a few fixes and adjustments. works fairly most of the time,
even gives a 55.1 fps timedemo for demo1 with viewsize maximized at
320x240 resolution on a pentium3-800 (256 kb cache size) whereas the
binary compiled with intel assembly gives 71.7 fps. tested on amd64,
x86 and ppc.
known problems: the span drawer gets crazy sometimes and draws a span
from a point toward the rightmost end of the screen. the places and
the frequency it happens seem to vary by the gcc version used. to be
looked into.
- d_edge.c, d_surf.c, r_misc.c, link_ops.h: fixed a few probable 64
bit compatibility problems. we now require stdint.h, included from
q_types.h.
- fixed more of probable 64 bit compatibility problems. a few minor
clean-ups here and there.
- added back the near versions of calls in the assembly files in
commented out form for reference. before, I removed the nears for
yasm support, otherwise it used to fail with an error message:
'no NEAR form of that jump instruction exists'.
- added cvs version headers to the assembly files.
- now that the software renderer clients can now be compiled on non-intel,
removed the x86 exclusive arch dependency from the rpm spec file.
- updated the documents after the non-intel software renderer changes.
removed the NonIntel.log and NOTES.porting files.
2007-06-15 (CVS):
- utils: fixed a stupid bug in qdir.
- draw.c, gl_draw.c: fixed endianness problems.
- a little more re-arrangement of asm files.
2007-06-12 (CVS):
- vid_win.c: removed VID_PostInitFix which is dead for quite some time.
switched back to Raven's original code in D_ShowLoadingSize for now.
- draw.c: Draw_EndDisc code is causing problems, at least with mgl-win32.
the sdl driver seems to work fine either way. Raven's original source
also had it disabled somehow. disabling it for now.
- draw.c: updated comments in Draw_EndDisc.
- launcher: minor typo fix.
- minor typo fix in documentation. added 'project peanut' to the mods
section in the README.
- removed Q_malloc and Q_free: not used. still keeping FS_LoadMallocFile,
in case it would be needed someday.
- updated the TODO list.
- net_dgrm.c: clean-up for Datagram_Reject.
- docs/README: minor typo fixes.
2007-06-09 (CVS):
- gl_vidsdl.c: avoid null names in the error message when we can't load
the gl library.
- vid_win.c: avoid compiler warnings about mstretch and stretchedmode might
being used uninitialized.
- made a few more vars/functions static (vid* files). these should
be leftovers for quite some time, I think.
2007-06-08 (CVS):
- made the V_BonusFlash_f, V_DarkFlash_f and V_WhiteFlash_f (bf, df
and wf) command functions static to view.c. while there, added the
white flash (wf) command to hexenworld client.
- the cvar sv_sound_distance will no longer be written to the configs:
it is a dead cvar, the C code doesn't make use of it, yet the HexenC
still references it through worldspawn(). removed it from the default
config files, too.
- launcher: minor clean-up.
- utils/hcc: minor clean-up.
2007-06-07 (CVS):
- X/SDL gamma is of no use for old voodoo1/2, thus, adjusted the
USE_3DFXGAMMA ifdefs.
- bound the gamma cvar value in V_CheckGamma() in case someone messes
with crazy values without using the menu system.
- changed the GAMMA_MAX to a float value definition.
- fixed a minor compiler warning.
2007-06-05 (CVS):
- gl_vidsdl.c: added a missing semicolon to fix compilation of the gamma
ramps code.
2007-06-04 (CVS):
- bound the linux 3dfx glide gamma hacks for the old Voodoo Graphics and
Voodoo2 cards to a new makefile option USE_3DFXGAMMA, enabled by default.
the compiler generates code only if it sees the USE_3DFXGAMMA definition.
at runtime, the hack is activated by the -3dfxgamma commandline argument
only on the old 3dfx cards, but this is for completeness. also did some
minor cleanups and fixed a float division bug with GAMMA_MAX.
- minor clean-up.
- launcher: made the installation directory widget to grey-out during
the pak patching process.
- launcher: exclude the trailing slash when determining the work directory.
- launcher: patch process should search its data under the specified
installation directory.
- launcher: removed unnecessary character check from basedir trailing
slash removal.
2007-06-02 (CVS):
2007-06-01 (CVS):
- cd_null.c: fixed compilation.
2007-05-31 (CVS):
- launcher: cleaned-up game mod list building (the first entry in the
lookup table is always available).
- launcher: made read_config_file to return proper value (the return
value isn't used, yet, though.)
- launcher: added ability to specify a different data installation
directory.
- launcher: incremented the version to 1.0.1.
- updated the documents after the launcher changes.
2007-05-23 (CVS):
- made the inventory bar to wrap around. from Steven.
- updated the list of known bugs.
- minor update to the xdelta makefile.
2007-05-21 (CVS):
- minor documentation updates. from Steven.
- updated the Xcode project files for Mac OS X. from Levent.
- genmodel/loadtri.c: fixed a format warning on x86_64.
2007-05-20 (1.4.2-rc1 / CVS):
- marked the snapshot of 20 May 2007 as 1.4.2-rc1.
- fixed rpm spec file.
2007-05-15 (CVS):
- better code for the progs data alignment. adapted from quakeforge.
- eliminated some unnecessary things from h2ded version of model.c.
put proper ifdefs around the Mod_ForName calls in pr_cmd.c (they
are only for alias and sprite models which aren't necessary for
the dedicated server.)
- tiny model clean-up. removed the clipbox, clipmins and clipmaxs members
of the model structure, too: the header says it to be 'solid volume for
clipping (sent from server)', but the server doesn't do that and cl_ents
does a bogus check for clipbox in CL_SetSolidEntities which is removed
now.
- added more informative hunk tags to model.c of hwsv.
- added proper ifdefs around the Mod_ForName calls in pr_cmds.c of hwsv:
it is now more similar to the hexen2 version.
- added cvs version headers to the makefiles.
2007-05-13 (CVS):
- snd_win.c: clean-up.
- cd_win.c: clean-up.
- made lmp2pcx to load the hexen2 palette data at runtime from the
palette.lmp file, rather than embedding the palette data itself:
potential license issues for now. did some additional cleanup here
and there.
- removed the hexen2pal header from the lmp2pcx directory for now
(potential license issues...)
- made jsh2color to use the bspfile object from utils/common and
moved the specific stuff to to litfile.{c|h} and jscolor.{c|h}
files. this beast actually requires ~much~ more cleanup.
- jsh2color cleanups #2: colour -> color.
- jsh2color cleanups #3: moved the DecisionTime thing to jscolor.c.
fixed the declaration of newdlightdata in jscolor.h.
- re-diff'ed some of the extra patches after the recent changes.
- added __thisfunc__ as a new macro and added preprocessor stuff
for its definition in order to workaround different __FUNCTION__
and __func__ availability and behavior. __func__ of C99 is the
default.
- replaced all __FUNCTION__ usage with __thisfunc__ .
- updated the variadic macros for compilers other than gcc.
- workaround for an lcc compilation error. lcc currently doesn't
compile, though: it doesn't like nested variadic macros such as
those in model.c: to be looked into.
- several compile fixes. although I tried compiling with lcc, it seemed
broken when it comes to handling variadic macros.
- hexenworld//pmovetst.c: commented out unreachable code in
PM_TestPlayerPosition(). it seems like a mess, though. I need to
compare QW and HW codes for this function and also for others such
as NudgePosition(), someday.
2007-05-09 (CVS):
- enabled the integer value member of the cvar structure.
- replaced the float value usage of cvars with integer values wherever
possible.
- fixed my viewsize borkage after the cvar integer change. a few additional
tiny clean-ups.
- utils: added copyright notes for the hexen2 palette data.
2007-05-01 (CVS):
- some reorganization in the utils: moved bspfile.{c|h}, scriplib.{c.h}
and hwal.h to the common directory. created texutils as a new group of
utilities. moved bsp2wal to texutils/bsp2wal. added the lmp2pcx tool
to texutils. added several palette files to texutils.
- updated the utilities build scripts after the texutils change.
2007-04-30/05-01 (CVS):
- snd_alsa.c, sv_move.c: minor fixes.
- menu.c, sbar.c, world.c: minor cleanups.
- cvar.c: reverted the %g specifer change in Cvar_SetValue. manually
removing the trailing zeroes again.
- midi.c, midi_sdl.c, midi_mac.c, cd_bsd.c, cd_linux.c, cd_sdl.c: updated
cdaudio and midi volume setting procedures.
- updated release notes for the upcoming 1.4.2 release.
- gl_model.c, gl_rmain.c, gl_rsurf.c, gl_warp.c: more clean-ups.
- gl_vidnt.c, vid_win.c, midi.c, midi.h, mstrconv.c: more clean-ups.
mostly whitespace.
- vid_win.c: reverted the MAX_DESC change from the previous commit in
vid_win.c. the number 13 is relied on in the menu draw.
- cd_null.c, gl_vidnt.c, vid_win.c, winquake.h: cleanup for
CDAudio_MessageHandler of win32 version.
- midi.c: added a success message to win32 midi init.
- midi.c: win32 midi: prevented MMSYSTEM errors from SetAllChannelVolumes()
when midi is not alive.
2007-04-28/29 (CVS):
- fixed multiplayer episode selection in menu.c. performed small clean-ups.
- more menu clean-ups.
- added a new GAME_REGISTERED_OLD flag. added new compile time options
ENABLE_OLD_RETAIL and ENABLE_OLD_DEMO, disabled by default. actually
the old retail (cdrom 1.03) version seems to run fine but it isn't
tested and may lead to unexpected behavior, therefore not enabled by
default. the old demo, on the other hand, does not run as it is, the
option is added only for reference. I still lack detailed information
on the oem (the Matrox m3D bundle) version. along with these changes,
tweaked the launcher information screen.
- launcher/games.c: fixed typo. ouch..
- utilities: several fixes for dcc.
- whitespace clean-up in dcc.
2007-04-26 (CVS):
- updated the release notes for the upcoming 1.4.2 release.
2007-04-25 (CVS):
- gl_rlight.c, gl_rmain.c: Lighting fixes and improvements:
Removed the broken JSHexen2 version of RecursiveLightPointColor and
merged LordHavoc's implementation from QSG. Made R_DrawViewModel to
set shadelight along with ambientlight; R_DrawAliasModel no longer
needs to calc light for the viewmodel. R_DrawAliasModel now honors
the EF_ROTATE flag for the GL_RGBA path: bonus items are no longer
dark and look the same way they do with GL_LUMINANCE lightmaps.
R_DrawAliasModel now checks the model flags first before doing light
calculations: unless the model is MLS_NONE, lighting information is
not used, no need to spend time with R_LightPoint stuff.
All of these changes had to be done zillions of months ago, how we
missed them for this much time is a mystery...
2007-04-21/23 (CVS):
- updated the build_all scripts for the utilities. fixed its README file.
- added a findfirst/findnext implementation to the utilities io library.
- minor fix to utilities StripExtension function.
- removed strlcat and strlcpy from the utilities build: they aren't actually
used there, yet.
- made the bsp2wal tool to report the texture dimensions it extracted.
- made some debug messages to appear in developer mode only.
- minor cosmetic update to the utilities' Error report.
- added the -miponly option to the bsp2wal tool. did some clean-up.
- changed the asterix replace character from dash to underscore.
2007-04-16/20 (CVS):
- added an extra check to inverse_pal loading to make sure that LoadStackFile
didn't allocate it on the hunk.
- minor cleanup in launcher/config_file.c.
- utilities: fixed the utterly broken project path decision in qbsp. it
doesn't scan for a maps directory anymore.
- utilities: added the new bsp2wal tool: It extracts all textures from
a bsp file. the WAL format, based on a quake2 WAL structure and put
together by Jacques 'Korax' Krige, is documented in the hwal.h header.
- utilities: moved some definitions from bsp2wal.c to hwal.h header.
- added new cvar r_texture_external: whether to use external textures.
defaults to 0.
- added abilitiy to load external wal texture files instead of internal
pixel data of the brush model. works for both the opengl and software
renderer versions. adapted from Jacques Krige's code. depends on the
r_texture_external cvar being set to 1.
- finally merged quakeio stuff into quakefs. separating the two didn't serve
to much, so this seemed best. this will be the final api in 1.4.2-final.
- updated the compiler.h header.
- bsp2wal.c, bspfile.c: constifications.
- moved the in-memory structures from pakfile.h into a new pak.h. they
are only used by quakefs. put a copy of the pakfile header into the
utilities common directory and used it in relevant places.
- resolved pakfile type conflicts resulting from the previous commit.
- removed the now unnecessary _FUNC_PRINTF macro and directly used
__attribute__((format(printf,n,n+1)))
- added the noreturn attribute to certain functions.
- renamed dedicated server (h2ded) version of Host_Error to SV_Error,
which is of noreturn attribute, and defined Host_Error as SV_Error.
- reverted the dedicated server Host_Error name change: unnecessary.
properly ifdef'ed the header for two different versions.
- some fixes to, and a better documentation for SetQdirFromPath(). this
functionality is actually a major pain...
- minor fixes in the utilities io functions.
- utilities: added the FileTime utility function.
- tiny clean-up in scriplib of genmodel.
2007-04-15 (CVS):
- cvar update: added a new CVAR_REGISTERED flag set during the initial
registration process. Cvar_RegisterVariable doesn't allocate a dummy
string for the var anymore, but sets the string ptr to NULL. Cvar_Set
doesn't blindly free and reallocate string pointers anymore: it only
allocates at first time registrations and when the string size differs
from the original. Cvar_Set returns without doing anything if string
value is not changed unless it is a first time registration. the
notifications in Cvar_Set are done only if there was a change. the
hexenworld and hexen2 versions of cvar.c are synchronized.
- cvar updates, #2: added a new function Cvar_FindVarAfter and used it
for CCREQ_RULE_INFO responses in net_dgrm.c and for several things
in cmd.c. this ends unnecessary global exposure of cvar_vars. found
this in the darplaces tree.
- misc documentation updates.
- launcher: many clean-ups and tweaks.
2007-04-14 (CVS):
- zone.c: removed unnecessary conditions from Z_CHECKHEAP.
- quakefs: revised pak data checking.
- quakefs: more revisions in pak data checking.
- major updates in the launcher: moved all of the callbacks into the
interface.c and removed unnecessary pointer arguments passed to them.
many smallish code clean-ups and whitespace clean-ups here and there.
created a new games.c and moved mods scanning into it. new feature:
the launcher now scans the installation directory against known game
versions for pak file health, and pops up the patch window with a
short report if it finds something bad. new feature: the mission
pack is disabled if it isn't present or if the base game data isn't
the retail version. similarly, the hexenworld option is disabled if
it isn't present. new feature: closing the window is now disabled
while the patch is in progress. the init sequence is changed: we now
scan game the installation first, then read the config file, register
a ui_init() function and then do gtk_main(). the return value from
the patch process now has meaning. the version number is now 1.0.0.
probably more things that I forgot writing here.
2007-04-11 (CVS):
- isDedicated usage clean-up.
- moved the global current_skill to sv_main.c which is its correct place.
- cache memory isn't used in dedicated server applications. disabled
its compilation in h2ded and hwsv.
- maintained missing synchronization between h2 and h2w versions of quakefs.c.
- ifdef cleanup for Draw_BeginDisc and Draw_EndDisc.
- zone.c: fixed segfault. silly me...
- snd_dma.c: initialize the known_sfx and snd_scaletable arrays even if
the driver initialization fails.
- re-diff'ed the snd_restart-experimental extra patch.
- removed gl_test.c and all GLTEST things.
- zone.c: fixed debug builds.
- restricted the sys_memory, sys_cache and sys_stats commands to debug
builds only. if required, the Z_DEBUG_COMMANDS definition in zone.c
can be edited to change this. completely disabled the Z_CheckHeap()
usage. if required, Z_CHECKHEAP definition in zone.c can be edited to
change this in debug builds only.
- added a sys_zone console command for debug builds.
- zone.c: fixed debug builds (again...)
- added the hexenworld MGNET compile time option to h2option.h.
2007-04-10 (CVS):
- added a short Makefile.xd for building xdelta quickly without autotools
support. adjusted the Makefile of the launcher accordingly. updated the
relevant docs.
- xdelta makefile: removed some of my obsoleted comments.
- sha is unused in the present xdelta code. removed it from the build.
- now that xdelta can build without autotools, adjusted the rpm spec file
accordingly.
- gl_vidsdl.c, gl_vidnt.c: fixed more of those stupid -Wshadow warnings.
- sys_unix.c, sys_win.c: cosmetic stuff - updated some debug messages.
- revised zone memory usage: we now initialize a 256 KB secondary zone for
static textures (sec_zone), which is especially useful for the software
renderer. this is done only for the client-server binary, the dedicated
server apps obviously don't need it. the loading of gfx.wad now uses this
secondary zone and its reloading (either for video restarts, or through
Draw_ReInit) is completely safe because we do not rely on its being the
same file. if a mod ever uses a different gfx.wad, game directory changes
now correctly reload all of the new files through Draw_ReInit: hexenworld
currently makes use of DrawReInit and will benefit from this. if hexen2
supports active game directory changing in the future, it'll benefit from
this too. as a result of these changes, Z_Malloc now takes zone_id as its
second argument, all of its calls in the tree are updated accordingly.
the behavior of Z_Realloc is a bit curious now: a buffer allocated on one
zone may be reallocated on a different zone, now. Z_ClearZone and Z_TagMalloc
were never (and should not ever be) intended for public usage: they are
made private to zone.c now.
2007-04-09 (CVS):
- fixed the evil of LoadStackFile in loading of the big char widths, we
are using temp allocation now. added a warning message for an unlikely
case of a different sized file.
- updated the LoadBufFile procedure to check for nul buffers. added a
warning message for cases where the given buffer is of insufficient size.
provided a better documentation for it.
- updated the documentation about the evils in our re-loading of gfx.wad.
updated W_LoadWadFile after the changes in LoadBufFile.
2007-04-08 (CVS):
- killed COM_InitArgv in hexenworld master server and rearranged things
to be similar to the game engine.
- demo recordings covering multiple episodes: stop recording if this is
a multiplayer game.
- gl_vidsdl.c, gl_vidnt.c: if we aren't caching model meshes, no need to
create the relevant directories under userdir.
- gl_draw clean-up: draw_chars, draw_smallchars and draw_menufont need not
stay resident. switched from LoadHunkFile/Hunk_FreeToLowMark method to
LoadTempFile in Draw_Init. took the width/height of bigfont2.lmp from the
loaded data instead of using hardcoded 160*80 (other places in the code
relies on this 160*80, though.) gathered pic load failure checking into
a tiny static procedure named Draw_PicCheckError.
- loading of bigchar widths file didn't check the result from LoadStackFile.
made it to check for NULL, and made it to generate the width table in case
of loading failures.
- loading of the inverse palette didn't check the result from LoadStackFile.
made it to check for NULL, and made it to generate the palette in case of
loading failures.
- several small things all together: made the load command to get rid of
console or menu. removed the cvar cl_warncmd. tweaked the init sequence:
dedicated servers initialize less subsystems: thus V_Init, Chase_Init,
Key_Init, Con_Init and M_Init, and loading of gfx.wad happen after
R_InitTextures, and only for graphical clients. the dedicated servers do
not exec hexen.rc anymore, they just process the command line arguments.
h2ded and hwsv flush the command buffer from execing server.cfg before
they process the command line arguments.
- fixed the silly typo in SV_UserInit from the previous patch.
- gl_vidsdl.c, gl_vidnt.c: if we aren't caching model meshes, no need to
create the relevant directories under userdir. (properly conditionalized
the dirname variable.)
- more small things: made the connect command to get rid of console or menu.
- more small things: removed unnecessary code from the playdemo command
which was supposed to serve getting rid of console or menu.
2007-04-07 (CVS):
- removed the vcr facility: net_vcr is useless today and now it is one
less thing to worry about and maintain.
- removed the global host_time: it was mostly used in net_vcr. now that it
is removed, replaced the rest of its usage with realtime and killed it.
- tiny clean-up in Cmd_Argv().
- tiny clean-up in COM_FileBase().
- clean-up in Cvar_SetValue (use %g to get the shortest representation).
- more __FUNCTION__ macro usage: cl_main.c.
- replaced MAX_IDENTIFIER with MAX_QPATH in glt structure.
- misc header clean-ups: client.h, keys.h.
- made M_DrawBigCharacter static to menu.c and moved its content who
touches the vid buffer into the new callback Draw_BigCharacter in draw.c
and gl_draw.c. with this arrangement, BigCharWidth need not be a global
anymore, it is static in menu.c now.
2007-04-05 (CVS):
- net*: more const correctness stuff.
- net_udp.c, net_wins.c: fixed a long-standing 0 byte udp packet DoS bug
(from the quakeforge tree): hexen2 checks to see if there were any bytes
to be read and if there were 0 bytes, just carying on without reading
anything. It seems that the 0 byte packet was blocking the queue and so
a 0 byte recvfrom is needed to make sure it gets removed.
- keys.c: minor clean-up.
- net_dgrm.c: clean-up of duplicated code for server sending rejects.
- introduced DEBUG_Printf, which is equivalent to Sys_DPrintf in debug
builds but generating no code for normal builds.
- reserved some spamming debug messages to debug builds only.
- pr_edict.c: changed the realloc message to a Sys_DPrintf.
- midi_sdl.c: clean-up of debug messages.
- used SDL_mixer music type enums in the external-music-file-support patch.
2007-04-01 (CVS, 1.4.2-pre3):
- fixed the doWhiteFlash server message: this thing is a mission pack
crap (called from the buddha_die() function of buddha.hc upon death
of Praevus) and it used to do a V_WhiteFlash_f(), affecting the local
client only. naturally, the recorded demos didn't carry the message
and the flash didn't appear. this is the best solution I found.
- makefiles: for non-x86 but x86_64 cpu, do not disable x86 assembly if
compiling as 32 bit, otherwise the software renderer fails compilation.
- hexen2 dedicated server: Host_Init must check sv.active, not sv.name[0]
before starting the demo1 map.
- hexen2 dedicated server: Host_Map_f must rely on sv.active, not sv.name[0].
- hexen2: fixed mapname reporting for dedicated servers.
- killed some unnecessary r_local.h includes.
- added qio_filepath: it points to the path of the last file opened through
QIO. note: not meaningful (NULL) for files in a pak.
- midi changes: SDL and QuickTime midi will not blindly cache the midi
files in userdir/gamedir/.midi anymore. if a music file is not in a
pak file, it will be used directly. otherwise it will be extracted
directly into the root of userdir as tmpmusic.mid. the userdir/.midi
cache directory is obsoleted now.
- since the userdir/.midi directory is now obsoleted, it no longer needs
to be moved by MoveUserData().
- re-diff'ed the external-music-file-support patch after the midi changes.
- hexen2ded: in PF_lightstylestatic copy the value to d_lightstylevalue
(from the hexenworld server version).
- removed an old #if 1 of mine from Chase_Update.
- updated the comments in the external-music-file-support patch.
- incremented the engine version to 1.19 for Hexen II and 0.19 for HexenWorld.
incremented the gamecode version to 1.19 for consistancy with the engine
version. updated the relevant documentation and scripts. marked the snapshot
of today (Apr. 03, 2007) as 1.4.2-pre3.
2007-04-01 (CVS):
- cl_parse.c: killed some dead code.
- 64 bit support: the QuakeC/HexenC interpreter used to use string pointer
offsets from pr_strings even when the pointers lead to engine data which
is often well out of 32bit range on a 64bit architecture and they lead to
crashes. this is resolved by the newly introduced PR_SetEngineString and
PR_GetString functions which turn any address outside the pr_strings area
into an index into a table of engine string addresses, adding new string
addresses to the table as needed. thanks to LordHavoc for pointers about
this. the engine strings table is allocated with 256 entries at first
(see the PR_STRING_ALLOCSLOTS definition in pr_edict.c) and its size is
incremented by 256 as needed and re-allocated on the zone. managing that
allocation and reallocation is accomplished by the newly added Z_Realloc
function. sv.model_precache, sv.sound_precache and sv.lightstyles are now
strings instead of pointers to strings. changed pr_string_temp to cycle
between 16 static buffers in order to handle many prints in ftos and vtos
calls. killed the non-functional sv.max_edicts: it always used to be set
to MAX_EDICTS. probably a few clean-ups here and there also sneaked in.
- makefiles: automatically disable ia32 assembly on cpus other than x86.
- pr_edict.c: fixed a compiler warning about printf format string.
- in_addr_t does not exist in win32 headers: defined it as the type of the
S_addr of in_addr structure in our net_sys.h header. changed the types of
banAddr and banMask to in_addr_t in net_dgrm.c: the type may be defined
differently on different OS'es and/or arch'es.
2007-03-29 (CVS):
- several clean-ups in pr_cmd.c and pr_edict.c.
- fixed a few -Wshadow warnings which were still present. the warning
about channels was when we compiled the sdl midi option and it was
arising due to clashes with the SDL_mixer.h header. stupid, really,
but it is gone now.
- minor tidy-ups in zone.c. also fixed an erronous size check.
- sys_unix.c: made Sys_FindFirstFile to use Z_Malloc instead of malloc.
quakefs.c: likewise for the maplist command's string allocation.
hexenworld/huffman.c: instead of malloc'ing, allocate HuffTree on the
hunk (Hunk_HighAlloc).
2007-03-25 (CVS):
- more types clean-up in hexen2 net files. also removed the unused
SchedulePollProcedure from hexen2 dedicated server. removed unused
extern PrintStats from net_main.c.
- made some more the functions in sv_main.c and sv_user.c of hexen2 static.
- removed the unused externs playercolor and playername from net.h of
hexen2. renamed plyrcolor back to playercolor in Host_Color_f (it was
previously giving shadowed global warnings against net.h.)
- moved initialization of plyrtex to Draw_Init().
- renamed X11_PATH to X11BASE, some other open source quake engines also
use that name. documented it in the relevant makefiles.
- mapname reporting tidy-up.
2007-03-23 (CVS):
- fixed compilation on windows.
- makefile fixes: COMPILE_32BITS must also affect DEBUG builds.
- added extra optimization flags to hexenworld server build. misc clean-up
in the makefile.
- made win32 version of hexenworld server to use timeGetTime(), similar
to hexen2 dedicated server. misc clean-ups in its sys_win.c.
2007-03-21 (CVS):
- rpm spec file: fixed renamimg of xdelta binary.
- net_dgrm.c: types clean-up.
2007-03-20 (CVS, 1.4.2-pre2):
- net_main.c: cleaned-up the network availablity error for dedicated servers.
- net_main.c: added commentary on the driver checks in the code.
- host_cmd.c, sv_effect.c: reverted the rb mode fopen change and replaced
the ftell/fread usage with fgetc and ungetc.
- cd_sdl.c: fixed a format string error.
- menu.c: renamed ReInitMusic to BGM_RestartMusic and cleaned it up. this
thing will probably require more care in the future: should we add bgmusic.c
and bgmusic.h??
- host.c, host_cmd.c: clean-up.
- re-organized the asm directory.
- updated the mkrelease script.
- marked the snapshot of 2007-03-20 as 1.4.2-pre2.
2007-03-18 (CVS):
- even simpler solution for the mission pack intro screen scrolling.
- origin fixes for tomed fires of vorpal sword and purifier: paladin used
to fire them always from the non-crouched eye position, and it was even
the worst when he was looking up (and down). I won't be shooting my back
again when I stand just in front of a wall and fire by tomed purifier
to the sky from now on ;)
- updated the documentation and the scripts, etc, for the new gamecode
version 1.17.
- updated the print message about svc_mod_name and svc_skybox.
- host_abortserver is a client thing only and is static to its own file.
removed setjmp.h from the common headers.
- moved the userdir definitions to its own header.
- moved compiler.h and arch_def.h includes from quakedef.h to quakeinc.h.
- killed h2ded.h and entstate.h. moved the usercmd, entity states and
client frames stuff to protocol.h. did some whitespace cleaning.
maybe a few things can still bee moved from quakedef.h to protocol.h,
but enough for now.
- minor commentary updates.
- fixed net driver checks in hexen2 dedicated server: for the client-server
case, driver == 0 means it's a local connection (loop driver), but for the
dedicated case, loop isn't compiled.. sigh, this took me a lot of time to
notice and fix.
- removed the unused var stats_restored from SV_SpawnServer.
- updated the RelNotes file for future 1.4.2.
2007-03-16 (CVS):
- fixed the mapname reporting in the map command: removed the defunct
mapstring member of the client_static structure and added a mapname
member to the client_t instead, which holds a copy of the latest map
file name. also added a map console command to the hexenworld client
only to display the levelname and filename of the running map.
- model.h, gl_model.h, quakedef.h: define bitfields using shifts.
- renamed the MAXPRINTMSG definition to MAX_PRINTMSG for consistancy
with other MAX definitions. moved it to quakedef.h.
- fixed system speed dependent mission pack intro text scroll rate.
inspired from Pa3PyX' sources but implemented differently. the extra
global introTime is removed and cl.completed_time is used properly,
instead.
- fixed the software renderer video options menu not resetting the
option cursor.
2007-03-15 (CVS):
- renamed h2_opt.h to h2option.h
- prevented possible segfaults in hexenworld shownet command.
fix ported over from hexen2.
- added missing cvs version headers.
- cl_parse.c: small clean-ups.
- updated the mkrelease script.
- lock the developer cvar during init phase if -developer is specified
on the command line. otherwise it will be overwritten when the config
is exec'ed.
- Consolidated Con_Printf, Con_DPrintf, Con_SafePrintf, Sys_Printf and
Sys_DPrintf into a single CON_Printf procedure, located in console.c
for the graphical client, in sv_send.c for hexenworld server, and in
host.c for hexen II dedicated server. It prepares the message to be
printed and sends it to the proper handlers according to the flags it
was called with. The old functions are now macros wrapping around the
new CON_Printf with correct flags, therefore compatibility the old
api is preserved. Because of the new flags argument of CON_Printf, an
unused flags argument was also added to SV_ClientPrintf. Gathered all
the print prototypes and definitions/macros into the new header file
printsys.h. Moved the log facility into the new debuglog.c/debuglog.h.
Made the log system to keep its log file always open during the whole
session: previously, it closed the file everytime it returned and re-
opened it when called again. Made the print system to log Sys_Printf
content: previously that content was never written to the log. For
this purpose, the log is initialized from within main as early as
possible. Logging is two level: Normal mode is activated either by
using the standart quake command line switch -condebug or by the
new -debuglog. Normal mode logs what is seen on the game console and
the terminal: Therefore if the developer cvar is not set, Con_DPrintf
and Sys_DPrintf content will be lost. The devel mode is activated by
using the -devlog command line switch, and this mode will log any
output regardless of the developer cvar being set.
On the other hand, the on-the-fly log activation/deactivation in the
hexenworld server is not touched, neither was its log file handling,
yet.
- updated the RelNotes file for future 1.4.2.
- updated the readme files for the logging options.
- added the Full logging option to the game launcher. updated its HoT
version to 1.4.2.
- updated some of the copyright notices.
2007-03-14 (CVS):
- minor commentary update to cl_effect.h. also changed the CE_BG_EXPLOSION
definition in hexenworld to CE_LG_EXPLOSION to be consistant with hexen2
and the gamecode. no actual code change here.
- clean-up in the init and command line arguments initialization:
removed many unnecessary double-dash versions of the options,
updated the documents accordingly. the command line arguments
passed to the program are now stored only in the host_parms
structure. made com_argc and com_argv into macros wrapping around
the relevant host_parms members. the huge mess in assigning
com_argc/com_argv and host_parms->arg{c|v} is also cleaned up.
handling of safe mode arguments is moved to the relevant procs.
host_parms is now a pointer and is initialized in main().
Host_Init and friends no longer accept any arguments. did a
little house cleaning in main(). for consistancy with the other
versions, basedir is taken from getcwd() in the dedicated servers.
- added support for Raven's 1.11 server protocol 18. with this, H.o.T.
is able to connect to Raven's original 1.11 servers or play the demos
recorded with that pre-mission pack protocol. allowed running the
server using the old pre-mission pack protocol 18 instead of the
default protocol 19. the -protocol command line switch takes 18 or
19 as an argument. when protocol 18 is used, games are also saved in
the old 1.11 format. on the other hand, the engine can now load old
1.11 style games, as well: game loading is neutral to the save-style:
1.11 and 1.12 styles are automatically detected and converted to the
active style as the player progesses through the game. updated the
documentation accordingly.
- fixed the ftell() failures on win32 when loading games with unix
style line endings: the M$ C library seems to lie with ftell() if
the file is not opened in binary mode. this was a bitch to find..
- incremented the engine version to 1.17.
- updated the RelNotes file for future 1.4.2.
2007-03-08 (CVS):
- uniform Cmd_AddCommand usage.
- re-arranged the cmd layer in hwmaster so that it gives smaller and
readable diff output when compared to its hexen2 counterpart.
2007-03-04 (CVS):
- more trivial stuff: changed a few if conditions to else if.
2007-03-03 (CVS):
- h2ded: fixed win32 build.
- vid_sdl.c, gl_vidsdl.c, gl_vidnt.c: removed unnecessary vmode_t casts.
- gl_vidsdl.c, gl_vidnt.c: added 'apply changes' and 'reset changes'
items to the video options menu for the opengl version. for those who
couldn't figure what to do, there it should be clear enough now ;)
similar changes will soon be applied to the software renderer version.
- gl_vidsdl.c, gl_vidnt.c: fixed the downarrow key behavior in the new
video menu.
- ported the new video menu style to the software renderer version.
- updated the release notes file for future v1.4.2 (2007-03-03).
2007-03-02 (CVS):
- xdelta: tiny cleanups in autogen.sh and configure.in.
- xdelta: fixed out of memory condition caused by not properly unmapping
files (from the loki_patch tree: Sam Lantinga, Apr 10, 2001).
- updated the launcher README file.
- xdelta: updated the readme file for our customized 1.1.4b version.
- updated the xdelta update patch script.
- launcher: fixed a bug in the thread creation failure path.
- updated the SDL header for new GL attributes added in 1.2.10.
- added the hard-coded console toggle bind Shift-Escape to the SDL input
driver. from ioquake3: SDL > 1.2.9 does not support disabling "Dead Key"
recognition. In order to send "Dead Key" characters (e.g. ~, ', `, and ^),
you must key a Space (or sometimes the same character again) after the
character to send it on many international keyboard layouts. This behavior
makes the hard-coded toggleConsole binds ~ and ` annoying to use on many
non-US keyboards. This newly added Shift-Esc key combination helps with
this situation.
- updated the documentation about the new console key.
- updated the release notes file for future v1.4.2 (2007-03-02).
2007-03-01 (CVS):
- xdelta: merged changes from the official 1.1.4 release at xdelta.org
- xdelta: touched the stamp-ser files in order to avoid Emacs-Lisp.
- xdelta: updated the readme file for our customized version.
- launcher: xpatch/loki_xdelta.c: synced with the latest xdelta version.
- launcher: xpatch/loki_xdelta.c: small clean-up.
- gamedata: updated the xdelta update patch script for xdelta-1.1.4.
- updated the README file in gamedata/patchdata about xdelta.
2007-02-28 (CVS):
- killed some dead vars.
- updated the net_sys header.
2007-02-26 (CVS):
- fs_basedir needn't hold a full copy of the basedir. made it a pointer
instead which works as it is intended.
- the dwarf class checks in the hexenworld menu system needn't do any
weird strlen thingies. fs_gamedir_nopath is for these kinds of purposes.
- fixed win32 builds.
- cmd.c: always use the __FUNCTION__ macro.
2007-02-25 (CVS):
- h2ded: process the command line arguments at start. if the server is not
active when initialization is complete, spawn the demo1 map at start just
as hwsv does.
- h2ded, map command: don't display the "Currently on" string if sv.name
is empty.
- added colored dynamic lights and extra dynamic lights to hexenworld
opengl client (stuff copied over from hexen2). gl_colored_dynamic_lights
and gl_extra_dynamic_lights cvars and their menu entries are functional
now.
- updated the release notes file for future v1.4.2 (2007-02-25).
- moved (again) the maplist console command to quakefs.
- made exporting of searchpath_t structure and fs_searchpaths to depend on
_NEED_SEARCHPATH_T definition, added _NEED_SEARCHPATH_T to quakefs.c and
quakeio.c: I don't like making them public. quakefs and quakeio actually
depend very much on each other but I'd like to keep them separate as much
as possible.
2007-02-24 (CVS):
- hexenworld opengl client: fixed bug that dynamic lights had a problem
with RGBA lightmaps (such as torches didn't illuminate) but luminance
mode was fine. Lightmaps in RGBA mode are working now. We still haven't
added proper colored dynamic lights like we did in hexen2, but that's
for later.
- removed the defunct cvar cl_prettylights. it way always on and I think
nobody knew about it. a tiny clean-up in CL_AllocDlight also went in.
- updated the BUGS list.
- updated the release notes file for future v1.4.2 (2007-02-24).
2007-02-23 (CVS):
- moved the NUM_SAFE_ARGVS definition to common.h, I might use it
in near future.
- changed the order of some of the init messages so that they are
emitted after COM_InitArgv returned and argc and argv members of
host_parms are assigned. this way, they will be added to the log
when I merge the new logging stuff.
- defined the x86 fpu functions as do {} while (0) macroes when not
using x86 assembly.
- opengl: killed the empty procedures which served for compatibility with
the software version. defined them as do {} while (0) macroes.
- fs_gamedir_nopath (formerly gamedirfile) had an array size of MAX_OSPATH
which is crazy because it holds one directory name without any path.
made it 32 chars long which should be more than enough.
- fixed a tiny typo in sys.h.
- no need to print the effective console size every frame. do that
only at the beginning and at every actual change.
- removed a defunct extern from h2ded/host_cmd.c.
- more constification and corrections (draw, gl_draw, menu, sbar).
2007-02-22 (CVS):
- added the config file reading and init-phase cvar locking to
the api and took the early reads stuff out of the vid files.
this is still immature as it was, but it does what we need.
- Cvar_UnlockVar should return when it hits what it looks for.
- we only store the texture num of conback now, just like we started doing
the same for draw_backtile, etc since HoT-1.4.1: we don't store their data,
only upload them to the opengl pipeline. Draw_ChangeConsize is now history,
as well, because the conback drawing procedures actually use vid.conwidth,
not the width member of the now dead qpic_t conback.
- fixed the wrong slot number check in CL_NewTranslation although its
caller already does the same check (and does it correctly). in hexen2,
moved the MAX_SCOREBOARDNAME definition to client.h for consistancy
with hexenworld. in hexenworld, MAX_SCOREBOARD definition is replaced
with MAX_CLIENTS but many error messages used the old MAX_SCOREBOARD,
changed them accordingly. replaced the only occurance of MAX_SCOREBOARD
in sbar.c with MAX_CLIENTS. for consistancy with hexenworld, replaced
all MAX_SCOREBOARD usage with MAX_CLIENTS in hexen2.
- fixed bug that the array size for playertextures must be MAX_CLIENTS, but
was hardcoded to be 16.
- fixed bug that netgraphtexture was not reset in Draw_ReInit in hexenworld.
- added Cvar_LockVar for locking only one cvar.
- made Cvar_LockVar and Cvar_UnlockVar to employ Cvar_FindVar for cvar
searching.
2007-02-21 (CVS):
- added a name tag to the quakeparms structure.
- moved sys_nostdout from console.c to sys*.c and moved its initialization
to Host_InitLocal. this is not a frequently used cvar, maybe I remove it
soon, we'll see..
- removed an #if 1 around timeBeginPeriod() call. I've been forgetting
it for a while.
2007-02-20 (CVS):
- the info_mask members of the client_t and client_state_t structures
should be of int type, not necessarily long.
- moved the chase stuff from quakeinc.h to client.h which is where
they belong.
- moved msg_suppress_1 from quakeinc.h to vid.h (any place better for
it to stay?..). moved tha actual var from common.c to vid_win.c and
vid_sdl.c, the software video driver file, where it belongs.
- moved the mission pack objectives related vars and declarations to
more proper places: intro_playing, skip_start and num_intro_msg
belong to cl_demo, not sv_main. they are now exported through clieht.h
which is a better place. skip_start and num_intro_msg, on the other
hand, are not used now commented them out (probably they were used when
Raven prepared the intro demo t9). the info_mask and info_mask2 are now
exported through quakeinc.h. (soon, they'll be moved to host.h).
- moved siege related client stuff from quakeinc.h and cl_parse.c to
client.h and cl_main.c, which are better places for them.
- killed the global noclip_anglehack: in hexenworld it isn't used, in
hexen2, all client-side things achieved by checking the state of that
bool are now done by if(cl.v.movetype == MOVETYPE_NOCLIP).
- instead of manually calling IN_DeactivateMouse and IN_ActivateMouse in
Host_Pause_f, just leave the job to VID_HandlePause: it is purely a
client-side thing and when it sees the svc_setpause message in
CL_ParseServerMessage it actually calls VID_HandlePause for god's sake.
- took the host declarations stuff out of quakeinc.h and placed them into
the new header host.h. for hexen2, created another new header named
entstate.h which holds the entity state and client frame structures.
quakeinc.h and qwsvinc.h headers now only exist as 'the lazy man's
all-in-one big header for all things': it should die in the future and
instead of including quakedef.h (which actually does the job of including
quakeinc.h), each C file should include only the individual necessary
headers.
- removed a-million-year-old remainders of parsing code specific to WinMain
from our main.
- COM_InitArgv: avoid extra spaces in com_cmdline.
- made GL_LoadTexture to immediately return for dedicated servers, no
need to go through the whole procedure. also made Mod_LoadTextures
to skip actual texture loading for dedicated servers which, in turn,
skips GL_LoadTexture. in fact no one should ever use the client-server
binary, let alone the gl-binary as a dedicated server, h2ded is the
choice for that purpose. this is for correctness only.
2007-02-17 (CVS):
- killed Con_DebugLog in hexen2/console.c and favored Sys_DebugLog
in sys*.c. one less difference between hexen2 and hexenworld.
- increased read buffer size from 4K to 16K for QIO_CopyFile. disabled
use native win32 CopyFile and favored QIO_CopyFile, instead. added
null argument check to QIO_CopyFile. made QIO_CopyFile to employ utime()
and copy the source file's timestamp to destination file (yeah, doing
a little fancy.)
- always use the __FUNCTION__ macro.
- made a IOCTL_FAILURE macro for the failed ioctl reporting job in cd_bsd.c
and cd_linux.c.
- removed the compile time warning from midi_sdl.c.
- request the audio in host-endian format in sdl midi (actually sdl doesn't
care and does its own thing, but lets be a little more correct.)
- added a -developer command line argument which sets the developer cvar to
1 during the init phase (ie. before the config is read). found in tyrquake
sources.
- commented out the meaningless developer directive in hexen.rc.
- h2ded should exec not hexen.rc, but server.cfg, instead, which is similar
to hwsv. changed that in Host_Init. the use of cl_warncmd is also fixed
now.
- moved the mode argument definitions for access(2) from sys.h to quakeio.h
where they belong.
- removed meaningless Cvar_Command() check, etc, from Cmd_Exec_f().
- minor update to Host_Init().
2007-02-16 (CVS):
- gethostname() may not NUL-terminate the hostname. do it by hand.
- added a COMPILE_32BITS option to the makefiles.
- updated the release notes file for future v1.4.2 (post-1.4.2-pre1,
2007-02-16)
2007-02-15 (CVS):
- added prefix matching support to the maplist command.
- cleaned up the maplist command. the duplicate name detection was
flawed: if, for example, demo22.bsp was hit first, then demo2.bsp
would be discarded due to the strcasecmp usage. it is fixed now.
maximum number of maps to be listed is now limited to 256 which
eliminates the necessity of two pass search in order to determine
the actual count. in such crazy cases where more than 256 maps are
present, prefix matching shall be the user's friend.
- tiny update to the FS_AddGameDirectory procedure.
- renamed the global gamedirfile to fs_gamedir_nopath and exported it
through quakefs.h.
- killed the global variable fs_savedir (formerly com_savedir). it
doesn't serve any purpose, we always put our saves into fs_userdir.
- small update to the getcwd usage in sys_unix.c.
2007-02-14 (CVS):
- the string loading changes in 1.4.2-pre1 (specifically the one made
on 2007-02-09) broke starting a new game in the mission pack through
the menu system: because if the game is newly started we shall not
have strings.txt loaded. it is fixed now.
2007-02-13 (CVS, 1.4.2-pre1):
- updated the makefiles. removed the idirafter stuff, seems not necessary.
- moved mathlib.c and mathlib.h to common for the utilities. since all of
the utils use double as vec_t and genmodel is an exception (uses float),
added special rules for mathlib.o to the makefiles.
- performed a large scale splitting on utilities/cmdlib, similar to the one
I did to common.c of the game tree yesterday. each thing is sent into their
own file. new files in utils/common: pathutil.c, q_endian.c, util_io.c and
crc.c, and their *.h counterparts. new headers: q_types.h and util_inc.h.
dcc and hcc_old are using the thared cmdlib from now on. Q_filetime() is
removed for good: its only user was genmodel.c::Cmd_Skin(), but the file
existance check is already done when it calls LoadPCXSkin(), which in turn
calls LoadFile which in turn uses SafeOpenRead(), therefore it is safe to
remove it. SafeMalloc() is also removed as a procedure and is made into a
macro in genmodel/loadtri.c, which is its only user.
- moved the ASSUMED_LITTLE_ENDIAN compile time warning to q_endian.c
- fixed compilation of q_endian.c after the above change.
- splitted glquake.h into two, taking the includes into the new glheader.h
which properly gets the opengl typedefs for us. we now can include gl_model.h
separately.
- updated our common headers.
- more updates to our common headers.
- re-diff'ed some of the extra patches.
- added a ReleaseNotes file for a future 1.4.2 release.
- marked the snapshot of 2007-02-13 as 1.4.2-pre1.
- updated the rpm spec file.
2007-02-12 (CVS):
- imported the xdelta-1.1 sources into our own cvs repository (module
name: xdelta11, the same as the one in the xdelta project)
- xdelta: added the auto-generated files back, including the empty
files stamp-ser and libedsio/stamp-ser1. this gets rid of the
emacs hassle.
- xdelta: cleaned up the multiple and recursive includes in the
generated files
- xdelta: do not automatically run configure from within autogen.sh
- xdelta: added --disable-glib2 option to configuration. made
xdelta-config to remember that option and to emit -D_XD_USE_GLIB1
upon --cflags
- xdelta: added glib-1.2 compatibility stuff back, wrapped in
_XD_USE_GLIB1 ifdefs.
- xdelta: avoid autotools warnings. (from RedHat/Fedora.)
- xdelta: gcc-4 fixes for xdelta-1.1.3. (#1, from RedHat/Fedora.)
- xdelta: gcc-4 patches for xdelta-1.1.3. (#2, from SuSE.)
- xdelta: not all systems have stdint.h, so switching to inttypes.h
for now. it would have been better if we had some autotools magic
for it.
- xdelta: commented out the SuSE solution for the memory allocation
bug and merged the RedHat solution. the original RedHat patch only
changed edsio/fh.c, I added the same thing to edsio/default.c, as
well. From the original logs: "fix memory allocation bug that
prevented to apply patches created on x86 platform to be applied on
x86_64 platform. For some reason, amount of memory to allocate is
specified in the delta file, but on 64bit platforms, you need more
space for pointers."
- xdelta: added a README file for our customized version.
- launcher: added integrated ability to patch the pak files using
xdelta11 libraries that I just imported. incremented the version
number to 0.9.0.
- updated the documentation about the launcher's patch ability.
- updated the documentation about the location of xdelta
- updated the rpm spec file after importing the xdelta libraries.
made it to build xdelta before the launcher for correct linkage.
- updated the mkrelease script
- performed a large scale splitting on common.c and common.h. each
thing is sent into their own file. new files: quakefs.c, quakeio.c,
link_ops.c, sizebuf.c, msg_io.c, q_endian.c, and their *.h headers,
and pakfile.h as a new header. similarly, definitions and includes
are separated too: quakedef.h contains the definitions only, and
quakeinc.h (and qwsvinc.h) contains the includes and prototypes
and declarations. common.c and common.h now only contains misc
utility stuff, such as procedures command line processing, file
name processing, other string processing, and replacent functions.
common quake data types are gathered into a new q_types.h header
which already includes sys/types.h.
as a side effect, several functions (along with some global variables)
were renamed: quakeio stuff are prefixed with QIO_, and quakefs
stuff with FS_. see their header files. the procedure for maplist
command was moved to cl_cmd.c where it actually belongs. hexenworld
master server was processed accordingly and it now closely resembles
its game tree counterparts.
a similar operation is yet to be performed on the utilities..
- rediffed some of the extra patches after the latest changes.
2007-02-11 (CVS):
- gathered compiler specific definitions and settings into the
new compiler.h header. at present, it's only the _FUNC_PRINTF
stuff, more may come in the future.
- defs.hc contained 0 amount of code. killing it..
- took the hexenworld specific info strings stuff out of common.c
and common.h and put them into new info_str.c and info_str.h.
similarly, moved the decleration siege global variables to the
hexenworld client.h header where they belong.
2007-02-10 (CVS):
- added an advanced parsing of puzzles.txt: it is now parsed at
its load time only, and is bound to two new global variables,
puzzle_string_index and puzzle_string_count, similar to those
of strings.txt and infolist.txt. broken files (those who are
not following the file format) are gracefully handled.
- limited puzzle names to 256.
- changed all unnecessary atol() calls to atoi().
- started constifying the utilities sources. mostly the common
libraries this time. more to come.
2007-02-09 (CVS):
- fixed parsing of puzzles.txt: Raven seems to have had an ability
towards doing all things in non-standard way and they did this
with only dos style line endings in mind (as they had done parsing
maplist.txt which I fixed in HoT-1.4.1). This used to result in
the names listed as Unknown in the puzzle pieces inventory display
(which you can access through a key bound to the +showdm command,
default: q). the original hexen2 is ok (because it has puzzles.txt
in a pak file and it is of dos line endings), but the mission pack
was broken (because we distributed the mp-specific puzzles.txt with
unix line endings). it is now fixed.
- sbar.c: made FindName() to return immediately if puzzles.txt could
not be loaded.
- introduced PR_LoadPuzzleStrings() as a tiny client-only function:
puzzle_strings is a client-only thing, used in sbar.c only. made
small clean-ups/adjustments here and there.
- strings.txt and infolist.txt loading: hexen2 (with the 1.12 sources
that Raven released) is always loading strings.txt and infolist.txt
only once at init phase (from within Con_Init) and since it is below
host_hunklevel it stays resident. it seems to have loaded it during
every level load before, as can be seen from the commented out code
in cl_parse.c::CL_ParseServerInfo() and sv_main.c::SV_SpawnServer().
hexenworld actually does it this way, loading them at every level
start, and it is a good thing because, in hexenworld, the gamedir can
change between level loads, so can those text files.
I'm now switching to this earlier method: hexen2 will also load them
at every level start. test it as much as you can and in any way that
you can, and report any problems that you run into.
- info_string stuff (infolist.txt) is a client-only thing, too. it is
used in (gl_)screen.c only.
- defined GL_UNUSED_TEXTURE ((GLuint)-1) rather than 0xFFFFFFFFU
- introduced VA_NUM_BUFFS as a define for the number of static buffers
va() would cycle through.
- common.c: small whitespace / coding style clean-up
2007-02-08 (CVS):
- keys.c, keys.h, in_sdl.c: updates to SDL input driver: removed the
remnants of win32 joystick code which was in commented out form.
commented out the joystick cvars until we add SDL jostick support.
removed the mouse_buttons variable. removed the SWAP_MOUSE23
definition and added a lookup table (buttonremap) for converting SDL
mouse button enums to quake enums and used it in both IN_SendKeyEvents
and IN_MouseEvent procedures which solves the mouse2/mouse3 problem
without hacks for good. tidied up the key definitions in keys.h.
other tiny clean-ups here and there.
2007-02-07 (CVS):
- converted 20 or so remaining files to have unix line endings.
- stripped off the CVS log entries at the ends of hundreds of files.
my cvs tarball is around 500 kb smaller now..
- added new lines at the ends of 30 or so files which had none.
- re-diff'ed some of the extra patches.
2007-02-06 (CVS):
- started an attempt at improving const-correctness all over the
uhexen2 tree. this was driven by a feature request by Markus
Elfring a few days ago and this commit now closes that entry.
here is the tracker address:
http://sourceforge.net/tracker/?func=detail&atid=701009&aid=1649713&group_id=124987
notes:
- there are places I purposefully skipped in the files I already
touched, see for example wad.c::W_CleanupName(char *, char *),
which would simply be W_CleanupName(const char *, char *), but
it has one silly user that employs this function as a means for
in-place changing of a string (see at the end of W_LoadWadFile()
function), which makes me doubt about what would be the wise thing
to do. such things will be looked into in the future.
- the utilities and the launcher are not yet touched by this, but
they will be in future.
- there is always room for improvement in this area. if you have
anything, send it to us.
- updated the external-music-file-support patch after the constify
changes.
- updated commentaries for common.c functions
2007-02-05 (CVS):
- minor documentation updates
2007-02-04 (CVS):
- gl_rmain.c, gl_vidnt.c, gl_vidsdl.c: General cleanup: The vendor,
renderer, version and extensions vars are not global anymore, no
one uses them. Added clarifications to the demoness fires fix.
Renamed MyglColorTableEXT to glColorTableEXT_fp for consistancy
with the other gl function pointers. Probably a few other small
things.
- updated the list of known bugs.
- added the tracker information to the external music file support
extra patch. closed the relevant tracker entry [1597004].
2007-02-02 (CVS):
- cmd.c, common.c: small whitespace/readability cleanup
- common.c: updated commentaries
- common.c: made COM_CreatePath() to check for empty paths
- common.c: renamed the arguments of COM_CopyFile() for better clarity
- cmd.c: updated and sanitized the command lister procedures
- cmd.c: small update in Cmd_CheckCommand(). also updated
keys.c::CheckForCommand() which is its only user.
- keys.c: small update in CompleteCommand()
- draw.h, draw.c, gl_draw.c: small whitespace/readability cleanup
2007-01-29 (CVS):
- lib3dfxgamma: added an example patch against tyrquake-0.55
- lib3dfxgamma: added an example patch against quake2 @@ icculus
-
2007-01-15 (CVS):
- enabled printf format warnings in gcc. the patch, originally by div0,
is adapted from the darkplaces project.
- fixed several printf format warnings
2006-12-25 (CVS):
- misc clean-up in launcher
- misc small things
- added external music file support via SDL_mixer as an extra patch
- rpm spec file update.
2006-12-20 (CVS):
- merged the latest OSX Xcode files from Levent.
2006-12-19 (CVS):
|