March 2012
-
Update/fix treatment of libpng libraries and headers under Windows and OS X.
-
General
osxbuild.sh: Partial solution for non-building tools: remove "-j 3" parameter. (The -k [--keep-going] parameter has been added just to the tools for a small bit of good measure.)
-
Add $(STATICSTDCPP) variable which the user can set to 0 or 1 to explicitly set C++ standard library linking to static or shared respectively. By default it is transparently left blank.
Show details
An effect is only really seen in the buildtools written in C++, currently just arttool. This is mainly of interest to distributors of the buildtools to avoid missing DLL errors.
-
General
More "malloc + strlen + strcpy --> strdup" in module parameter code.
-
General
Probably fix sheared PNG screenshots.
Show details
We shouldn't assume a particular bytes-per-line value and use ylookup[] instead. Specifically, windowed modes on Windows use a frame buffer that always has odd x dimension.
-
General
Rename 'numpalookups' to 'numshades' internally.
-
General
Weirdness removal in G_LoadExtraPalettes (which reads lookup.dat).
Show details
- replace bit tweaking for big endian archs with clear code - allow palette lookups >= 128, previously we read into a signed byte
-
General
Clear up after r2495. (Because I'm a pedantic asshole.)
Show details
- in Mapster, pre-form the default 10 clip map names before returning from G_CheckCommandLine() so it gets loaded even if we passed no cmdline args. - malloc + strlen + strcpy --> strdup - don't need to spank dead variables ;) - we may call calloc with zero size, which isn't bad by itself, but asserting for non-null afterwards is. Allocs of 0 are implementation-defined, and may well return a null pointer (C99 7.20.3).
-
General
Assorted trivia.
Show details
Make some computer Duke opponent variables in player.c static.
-
General
Input validation: guard makepalookup 'pal', 2dcol 'col'. Add one const.
-
General
Use vlineasm4 for the upright-oriented rotatesprite in C-replacements build.
Show details
Gives a couple more fps for scenes where much screen estate is covered by stuff, like when holding the devastator.
-
General
Port tvlineasm2 to C and enable transmaskvline2 code also for all-C builds.
Show details
With the same setup as before, a screen-filling translucent wall (with nothing drawn behind it) renders at about 7 fps faster (from 60-something fps initially)
-
General
Port [m]vlineasm4 to C replacements and enable for solid and masked walls.
Show details
These two functions draw a vertical line 4 neighboring pixels at a time. This gives a significant speed boost for a full screen solid and masked wall scene for x86_64 (where we have plenty of registers), about 60 --> 76 fps.
-
General
Mapster32 tag-label system: don't consider 'switch' walls with an upwall as linking.
-
General
New "-clipmap" command-line switch to specify sector collision clip maps. This switch works in an additive fashion like -mx and -mh. _clipshape0.map through _clipshape9.map remain loaded by default.
Show details
Also, a very minor change in the con/def module code. (int --> int32_t)
-
General
osxbuild.sh: Potential fix for the $commonargs bash variable.
-
Add "unpackssi" and "Build Customization Suite" [Palette Importer/Extractor] (bsuite), both by JonoF. I have rewritten bsuite to use command-line arguments rather than a 16-bit real mode DOS UI. Both programs have had all warnings fixed and whitespace corrected.
-
General
Remix undo/redo system, fixing potential access of freed memory.
Show details
A run of consecutive mapstates may share sector/wall/sprite blocks, but the code was deciding whether to free them solely on local properties. Now, save a reference count at the beginning of each such allocated block and free it only if it reaches zero.
-
General
In undo/redo, always print the revision that got _restored_.
-
General
"Promote" oob sectnum/statnum sprites to corruption level 4.
Show details
Also, always print at least level 5 corruptions (that is, have no instances of completely silent corruptcheck).
-
sprite list consistency checker in corruptcheck.
Show details
This checks for about every possible type of sprite list corruption and reports back with a corruption level 5 if one of the 14 validations fail.
-
General
Tweak Mapster32's sound index (F2).
Show details
- start scrolling from about half of the visible page - PGUP/DGDN moves the cursor by 1/4 of the page - code cleanup (we only need one displine[80], use clearkeys())
-
General
osxbuild.sh:
Show details
- Make all arguments explicit toggles (except for onlyzip). - Disable PowerPC builds by default on Snow Leopard in addition to Lion. - Enable Darwin 9 compatibility for all builds whenever PowerPC is enabled.
-
General
Re-enable Mapster32's undo/redo functionality.
-
General
This should fix the assertion failure with undo/redo, my failure in r2478.
-
General
Make 'Numsprites' also accessible from CON (read-only) under the same name.
Show details
Note the capitalization. I hope that this makes clashes with user variable names less likely.
-
General
Save 'Numsprites' into savegames and mapstates. Bump savegame minor version.
-
General
Fix (still not enabled) undo/redo code compilation.
Show details
Also include one comment about a currently failing assertion there.
-
General
Include <assert.h> in compat.h.
-
General
When loading map w/ oob sectnum sprites, make them have sect. 0 if updatesector fails.
Show details
Previously, if the sprite turned really out to be in void space, either freelist inconsistency (before the list rewrite) or oob access (now) would happen. Also add an bound-checking assert() for insertsprite's sectnum argument (it's not a bound check!)
-
fix faulty limit check in duplicate_selected_sprites().
-
General
Continuously keep track of the number of sprites in the world.
Show details
New engine variable 'int32_t Numsprites', not yet saved into savegames or mapstates. (The capitalization is to distinguish it from the often-used 'numsprites' locals or structure member names. In the editor, get rid of updatenumsprites().
-
General
Remove redundant sprite freelist.
Show details
Previously, the lists starting at headspritestat[MAXSTATUS] and headspritesect[MAXSECTORS] were both used as sprite freelists and were always in complete synchrony. Now, make only the statnum list keep the free sprites. This way, it has no CON compatibility implications because headspritesect[MAXSECTORS] is inaccessible there. Leave the array at its original size for now.
-
General
osxbuild.sh: new "tools" parameter builds the Build tools in addition to the full binaries
Show details
Makefiles: new features to facilitate above: - buildtools: "make printutils" is a phony which simply lists all the tools - $(EXESUFFIX_OVERRIDE)
-
Fix warnings in enumdisplay.c only revealed with the previous Makefile edits.
-
More Makefile changes, including bringing Makefile.msvc up to date.
-
General
Build tools: Whitespace cleanup and tab stop replacement.
-
General
Fix all warnings in the Build tools for both GCC and Clang.
-
General
Fix another typo in osxbuild.sh.
-
General
Convenience Makefile variable for building with Clang: make CLANG=1
-
General
More Build tools improvements:
Show details
- JFBuild ports: arttool, givedepth, and mkpalette - All viable tools are now built when 'make utils' is invoked, not just some - Revert "initprintf" hack of previous commit and replace it with "compat_tools.c" - Move Bstrtolower from baselayer.c to compat.c - Makefiles: Add start and finish messages for the tools - Makefiles: To prevent "-Wimplicit" from being passed to the C++ compiler, create $(*CONLYFLAGS)
-
General
Fix compiling the Build tools by:
Show details
- Adding $(EXESUFFIX) where it belongs in the Makefile. - Eliminating a call to initprintf() from compat.c. This may not be ideal.
-
General
Fix JonoF's email address.
-
General
osxbuild.sh:
Show details
- Generate changelog and add to zip. - Increase minimum version to Leopard 10.5. - Fix typo in usage printout.
-
General
Rename ud.clipping to ud.noclip internally for sanity.
Show details
This might now be even more confusing for users reading both the source and CON code (where the access is necessarily still via '.clipping'), but at least reading the source now makes sense :P
-
General
After executing actor or loadactor CON code, null the instruction pointer.
Show details
This is so that in the event of a crash, no CON dump will be printed if no (actor or loadactor) CON code was actually executing at the time of the crash, confusing the users. Note: doesn't apply for event code.
-
General
Explicitly call A_DeleteSprite() from game code instead of relying on macro expansion.
-
General
Remove non-SAMESIZE_ACTOR_T code and remaining #defines.
Show details
We've been running with same-sized actor_t for a while without problems now. In the unlikely event (famous last words) that an issue should pop up later, this revision should be consulted for the differences between the two versions.
-
General
Remove YES and NO #defines from duke3d.h since they're giving warnings on OS X.
-
General
Save TROR-related information into map states and bump BYTEVERSION.