Marzo 2012
-
Generale
Add APPLE_FRAMEWORKS Makefile variable which can be passed to the make invocation.
Mostra dettagli
ex: make APPLE_FRAMEWORKS=~/Library/Frameworks
-
Generale
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.
-
Generale
JFDuke3D port: OS X Startup Window, copied almost verbatim
Mostra dettagli
It needs to have the sound quality box removed and the Game directory box added, possibly among other things.
-
Generale
JFDuke3D port: Display DUKETEAM.ANM at the end of episode 3 under v1.3D.
Mostra dettagli
Fix for end-of-game sequence with 1.3D data, by Turrican.
-
Generale
Define strtoll to _strtoi64 on MSVC.
Mostra dettagli
Usage of a search machine by Hendricks.
-
Generale
When failing to open a savegame file for writing, print the reason to the log.
Febbraio 2012
-
Generale
More rebust (and "correct"/expected) decimal number parsing in CON.
Mostra dettagli
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].
-
Generale
Make 'dommxoverlay' and 'beforedrawrooms' static in engine.c.
-
Generale
Significantly speed up non-power-of-two floor sprite texture mapping functions.
Mostra dettagli
(Classic renderer). We don't need 64-bit integers; also use the nice asm version of divscale32() if possible.
-
zip -r
-
Generale
Fix osxbuild.sh on my setup.
-
Generale
Try to find another mirror wall if the assigned one breaks.
Mostra dettagli
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.
-
Generale
Update "osxbuild.sh" to reflect implementation of .app bundles on Mac OS X.
-
Generale
The Mac OS X build process will now automatically copy the .app bundles to "./" and move the binaries into them.
-
Generale
add Mac OS X .app bundles to repository
-
Generale
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.
-
Generale
cosmetic:
Mostra dettagli
* 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
-
Generale
Do bound check for "quick" sector/wall accesses from CON, i.e. in getvarvar.
Mostra dettagli
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.
-
Generale
Fix user quotes colored with a 2-digit number being wrongly x-aligned.
Mostra dettagli
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!
-
Generale
Pull the 'for (' ... ')' out of the TRAVERSE_{CONNECT,SPRITE_*} macros.
Mostra dettagli
This plays more nicely with automatic formatters. Also indent accordingly.
-
Generale
QUOTE_NVG_OFF-p->heat_on --> QUOTE_NVG_OFF-!!p->heat_on in sector.c.
Mostra dettagli
Because: 1) It used to be like this; 2) guard against bad CON input.
-
Generale
Fix potential (certain?) oob access with ST28/SE21.
Mostra dettagli
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.
-
Generale
Fix sprites with picnums >= MAXSPRITES not drawing in classic.
Mostra dettagli
This was discovered because viewscreens (TILE_VIEWSCR) ceased being drawn with the MAXTILES increase (reported by Hank, who also did the bisect).
-
Generale
Uncomment "CrosshairColor" parsing code in config.c.
Mostra dettagli
Untested, but LeoD says it works.
-
Generale
Define Batoi/Batol to strtol(...) in compat.h and use these when necessary.
Mostra dettagli
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.
Mostra dettagli
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.
-
Generale
Make neartag() return void instead of always 0.
-
Generale
polymost.c: More informative failure message for gloadtile_cached().
-
Generale
Use maps selector: draw files found in ZIPs with pal 8.
-
Generale
cache1d.c: more meaning-preserving transformations, patch up one oob access.
Mostra dettagli
lzwcompress can access one byte after lzwrawbuf[LZWSIZE] when provided with an uncompleng of LZWSIZE, so we increase that array's size by one.
-
Generale
cache1d.c: formatting and trivial changes.
Mostra dettagli
Remove dfread and kdfwrite, only leave a recipe how to get their source from the respective used functions.
-
Generale
cache1d.c: rename three variables, put commented out code at the end.
-
Generale
cache1d.c: allocate internal LZW buffers statically instead of with allocache.
-
Generale
Rebuild nedmalloc.dll using newest git sources
-
Generale
Make compiler happy: remove 'may be used uninitialized' warning in multivoc.c.
Mostra dettagli
I'm not getting this warning (synthesis is) but I think it's justified because the VOC block parsing code isn't terribly validating...
-
Generale
Fix a potential free() of stack memory in screenshot code. Ouch!
-
Generale
Comment out unused dfread and kdfwrite functions in cache1d.c.
-
Generale
constify various cache1d and pragmas functions, some copybuf* -> memcpy/move.
Mostra dettagli
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.
-
Generale
cache1d.c: debugging feature routing all allocache requests to malloc.
Mostra dettagli
This is useful to debug out-of-bound violations for memory allocated with that function.
-
Generale
menus.c: rename _bar to sliderbar.
-
make aspect ratio also control r_usenewaspect.
Mostra dettagli
- 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
-
Generale
Fix non-OpenGL build.
-
Generale
In the user map selector, sort file names case-insensitively on Unix'y systems.
Mostra dettagli
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.
-
Generale
Fix non-asm build, I forgot a line with the preceding change.
-
Generale
engine.c: more formatting, removing of textually duplicate code.
-
Generale
engine.c: formatting changes
Mostra dettagli
The bulk are whitespace changes; the only exception is a "if (expr) { stmt; }" --> "if (expr) stmt;"
-
Generale
osxbuild.sh: detect whether we're keeping the source in SVN or git.
-
Generale
Update samples/trueror1.map with some tests of sprites lying on TROR floors.
Mostra dettagli
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.
Mostra dettagli
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.
-
Generale
When loading a map in-game, clear TROR wall members corresponding to up/down links.
Mostra dettagli
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.