March 2012
-
General
Add APPLE_FRAMEWORKS Makefile variable which can be passed to the make invocation.
Show details
ex: make APPLE_FRAMEWORKS=~/Library/Frameworks
-
General
Remove four self-assignments in backtrace.c that were added to avoid an unused parameter warning and add ATTRIBUTE((unused)) to the implicated parameters so they will not trigger the warning because they could not be removed.
-
General
JFDuke3D port: OS X Startup Window, copied almost verbatim
Show details
It needs to have the sound quality box removed and the Game directory box added, possibly among other things.
-
General
JFDuke3D port: Display DUKETEAM.ANM at the end of episode 3 under v1.3D.
Show details
Fix for end-of-game sequence with 1.3D data, by Turrican.
-
General
Define strtoll to _strtoi64 on MSVC.
Show details
Usage of a search machine by Hendricks.
-
General
When failing to open a savegame file for writing, print the reason to the log.
February 2012
-
General
More rebust (and "correct"/expected) decimal number parsing in CON.
Show details
The replacement of atoi with strtol in r2374 had the side-effect that numbers out of the range of a 32-bit integer were being returned as LONG_MAX/LONG_MIN instead of being converted by taking the bits and re-interpreting them (note that it was a coincidence that atoi behaved that way; to be strict, the behavior was undefined and there is no regression). Now, we implement parsing decimal integers using strtoll (with assuming "long long" being the same as int64_t) and check in which range the number falls. If it's in the range (INT32_MAX <= x <= UINT32_MAX), issue a warning; if it's not in (INT32_MIN <= x <= UINT32_MAX), warn too (though this better ought to be an error?). In each case, the bit representation is converted to the CON number type (int32 to assume maximum portability) by re-interpreting the bits [this is the same as an int/int cast, with GCC at least; more generally, it's implementation-defined per C99].
-
General
Make 'dommxoverlay' and 'beforedrawrooms' static in engine.c.
-
General
Significantly speed up non-power-of-two floor sprite texture mapping functions.
Show details
(Classic renderer). We don't need 64-bit integers; also use the nice asm version of divscale32() if possible.
-
zip -r
-
General
Fix osxbuild.sh on my setup.
-
General
Try to find another mirror wall if the assigned one breaks.
Show details
This fixes mirrors consisting of more than one walls not drawing when the first assigned mirror wall breaks. It still does not let you have more than one mirror (i.e. mirror sectors) showing up at the same time in the scene. Affects classic and Polymost only.
-
General
Update "osxbuild.sh" to reflect implementation of .app bundles on Mac OS X.
-
General
The Mac OS X build process will now automatically copy the .app bundles to "./" and move the binaries into them.
-
General
add Mac OS X .app bundles to repository
-
General
Add the source .psd files for the EDuke32 logo and program icon to the repository. Though they are .psd, they are effectively vector because they utilize paths.
-
General
cosmetic:
Show details
* update Windows icons to include 64x64, 128x128, and 256x256 sizes * add "orange_icon.ico" (unused; classic orange color of logo) * remove unused 32x32 "build_icon.bmp" file
-
General
Do bound check for "quick" sector/wall accesses from CON, i.e. in getvarvar.
Show details
This was causing oob sector accesses with code like this: getwall[hitwall].nextsector temp ifvarvare sector[temp].floorz sector[temp].ceilingz setvar tempb 1 (from DT's HYPERCORE). Also validate quote indices passed to CON's quote and userquote commands at runtime.
-
General
Fix user quotes colored with a 2-digit number being wrongly x-aligned.
Show details
Such game text was shown starting from about the center of the screen. The reason for the bug was this code: t += 1 + isdigit(*(t+2)); The sequence points here are at the beginning and end of this assignment expression, and the updating of t may happen anywhere between these (C99 6.5.16 #3). Please don't write such code. When in doubt, and assignment and reference to the same object should be split!
-
General
Pull the 'for (' ... ')' out of the TRAVERSE_{CONNECT,SPRITE_*} macros.
Show details
This plays more nicely with automatic formatters. Also indent accordingly.
-
General
QUOTE_NVG_OFF-p->heat_on --> QUOTE_NVG_OFF-!!p->heat_on in sector.c.
Show details
Because: 1) It used to be like this; 2) guard against bad CON input.
-
General
Fix potential (certain?) oob access with ST28/SE21.
Show details
Encountered with Scent.map. Since the SE21 are deleted after they have been used, the search for them in the ST28 code in sector.c may come up empty, in which case sector[-1] would be accessed.
-
General
Fix sprites with picnums >= MAXSPRITES not drawing in classic.
Show details
This was discovered because viewscreens (TILE_VIEWSCR) ceased being drawn with the MAXTILES increase (reported by Hank, who also did the bisect).
-
General
Uncomment "CrosshairColor" parsing code in config.c.
Show details
Untested, but LeoD says it works.
-
General
Define Batoi/Batol to strtol(...) in compat.h and use these when necessary.
Show details
That is, everyplace a user input is to be converted. The only remaining instance of atoi() is now atoi(s_buildDate).
-
make neartag accept a sprite-blacklist function and use it in sector.c.
Show details
Internally, the last argument to neartag is now a pointer to a function int32_t (*blacklist_sprite_func)(int32_t i), which is supposed to return 1 if sprite[i] should NOT be considered for hitting. This is now used in the hard-coded neartag() calls in sector.c, but not in any way in CON (there's neither a C blacklist function provided, nor is there a possibility to define one in CON). There, all sprites with picnums >=1 and <=10 (i.e. the effectors) will be blacklisted. This remedies problems where such sprites would get in the way of switches. Note that a whitelist approach (only consider a predefined set, namely those picnums which will be checked afterwards) has back-compatibility implications since people may have used e.g. lotagged window sprites to cover a switch. Also, the >=1 to <=10 range is [sic] (the static, not dynamic values are used), since anyone redefining effector picnums is clearly out of their mind.
-
General
Make neartag() return void instead of always 0.
-
General
polymost.c: More informative failure message for gloadtile_cached().
-
General
Use maps selector: draw files found in ZIPs with pal 8.
-
General
cache1d.c: more meaning-preserving transformations, patch up one oob access.
Show details
lzwcompress can access one byte after lzwrawbuf[LZWSIZE] when provided with an uncompleng of LZWSIZE, so we increase that array's size by one.
-
General
cache1d.c: formatting and trivial changes.
Show details
Remove dfread and kdfwrite, only leave a recipe how to get their source from the respective used functions.
-
General
cache1d.c: rename three variables, put commented out code at the end.
-
General
cache1d.c: allocate internal LZW buffers statically instead of with allocache.
-
General
Rebuild nedmalloc.dll using newest git sources
-
General
Make compiler happy: remove 'may be used uninitialized' warning in multivoc.c.
Show details
I'm not getting this warning (synthesis is) but I think it's justified because the VOC block parsing code isn't terribly validating...
-
General
Fix a potential free() of stack memory in screenshot code. Ouch!
-
General
Comment out unused dfread and kdfwrite functions in cache1d.c.
-
General
constify various cache1d and pragmas functions, some copybuf* -> memcpy/move.
Show details
The following functions have const qualifiers attached for the 'destination' arguments: kdfwrite, dfwrite in cache1d.c and copybuf{byte,reverse,} in the pragmas source or headers. A couple uses of the latter ones were replaced with calls to standard library functions.
-
General
cache1d.c: debugging feature routing all allocache requests to malloc.
Show details
This is useful to debug out-of-bound violations for memory allocated with that function.
-
General
menus.c: rename _bar to sliderbar.
-
make aspect ratio also control r_usenewaspect.
Show details
- RENDERER SETUP is now also accessible from classic, with only 2 options: 'aspect ratio' and 'ambient light level' - remove the latter option from the VIDEO SETUP menu - When compiled with OpenGL, the aspect ratio option cycles between 3 states: r_usenewaspect=1 (the modern way), and r_usenewaspect=0 but r_widescreen=0/1. In non-GL builds, there are only 2 states. - don't display black translucent overlay in COLOR CORRECTION menu
-
General
Fix non-OpenGL build.
-
General
In the user map selector, sort file names case-insensitively on Unix'y systems.
Show details
This makes more sense because the game selector draws the names with uppercase letters and the hotkeys to jump to a map starting with a particualar letter aren't case sensitive, either. Mapster32's selector will still display maps starting with upper case first.
-
General
Fix non-asm build, I forgot a line with the preceding change.
-
General
engine.c: more formatting, removing of textually duplicate code.
-
General
engine.c: formatting changes
Show details
The bulk are whitespace changes; the only exception is a "if (expr) { stmt; }" --> "if (expr) stmt;"
-
General
osxbuild.sh: detect whether we're keeping the source in SVN or git.
-
General
Update samples/trueror1.map with some tests of sprites lying on TROR floors.
Show details
Also, there's a "ladder" that passes through a TROR portal, and the mirror in that map has been fixed for the classic renderer.
-
Fix extended ceiling/floor picnums taking on picnum 0 in Polymer.
Show details
The reason was that drawmasks(), which was where the resetting of the fake RoR textures happened under Polymer, can be called from polymer_displayrooms() when mirrors are present. I was assuming that drawmasks() was only ever called after the 'main' drawrooms and that hence the sequence of fake RoR tile tweaking was set, reset, set, reset, ... which it was not. Now, do the resetting explicitly after every drawmasks() in the editor.
-
General
When loading a map in-game, clear TROR wall members corresponding to up/down links.
Show details
I find this cleaner for two reasons. First, lotags won't get in the way of neartag(), so that doors and switches near constrained TROR walls can be pushed. Second, this removes the information leak so that CON coders aren't tempted to read that values directly before a proper API for that comes along. When writing out a map in-game (e.g. with dndebug), restore the respective members so that it can be loaded in the editor again.