Marzo 2012
-
Update/fix treatment of libpng libraries and headers under Windows and OS X.
-
Generale
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.
Mostra dettagli
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.
-
Generale
More "malloc + strlen + strcpy --> strdup" in module parameter code.
-
Generale
Probably fix sheared PNG screenshots.
Mostra dettagli
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.
-
Generale
Rename 'numpalookups' to 'numshades' internally.
-
Generale
Weirdness removal in G_LoadExtraPalettes (which reads lookup.dat).
Mostra dettagli
- replace bit tweaking for big endian archs with clear code - allow palette lookups >= 128, previously we read into a signed byte
-
Generale
Clear up after r2495. (Because I'm a pedantic asshole.)
Mostra dettagli
- 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).
-
Generale
Assorted trivia.
Mostra dettagli
Make some computer Duke opponent variables in player.c static.
-
Generale
Input validation: guard makepalookup 'pal', 2dcol 'col'. Add one const.
-
Generale
Use vlineasm4 for the upright-oriented rotatesprite in C-replacements build.
Mostra dettagli
Gives a couple more fps for scenes where much screen estate is covered by stuff, like when holding the devastator.
-
Generale
Port tvlineasm2 to C and enable transmaskvline2 code also for all-C builds.
Mostra dettagli
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)
-
Generale
Port [m]vlineasm4 to C replacements and enable for solid and masked walls.
Mostra dettagli
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.
-
Generale
Mapster32 tag-label system: don't consider 'switch' walls with an upwall as linking.
-
Generale
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.
Mostra dettagli
Also, a very minor change in the con/def module code. (int --> int32_t)
-
Generale
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.
-
Generale
Remix undo/redo system, fixing potential access of freed memory.
Mostra dettagli
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.
-
Generale
In undo/redo, always print the revision that got _restored_.
-
Generale
"Promote" oob sectnum/statnum sprites to corruption level 4.
Mostra dettagli
Also, always print at least level 5 corruptions (that is, have no instances of completely silent corruptcheck).
-
sprite list consistency checker in corruptcheck.
Mostra dettagli
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.
-
Generale
Tweak Mapster32's sound index (F2).
Mostra dettagli
- 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())
-
Generale
osxbuild.sh:
Mostra dettagli
- 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.
-
Generale
Re-enable Mapster32's undo/redo functionality.
-
Generale
This should fix the assertion failure with undo/redo, my failure in r2478.
-
Generale
Make 'Numsprites' also accessible from CON (read-only) under the same name.
Mostra dettagli
Note the capitalization. I hope that this makes clashes with user variable names less likely.
-
Generale
Save 'Numsprites' into savegames and mapstates. Bump savegame minor version.
-
Generale
Fix (still not enabled) undo/redo code compilation.
Mostra dettagli
Also include one comment about a currently failing assertion there.
-
Generale
Include <assert.h> in compat.h.
-
Generale
When loading map w/ oob sectnum sprites, make them have sect. 0 if updatesector fails.
Mostra dettagli
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().
-
Generale
Continuously keep track of the number of sprites in the world.
Mostra dettagli
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().
-
Generale
Remove redundant sprite freelist.
Mostra dettagli
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.
-
Generale
osxbuild.sh: new "tools" parameter builds the Build tools in addition to the full binaries
Mostra dettagli
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.
-
Generale
Build tools: Whitespace cleanup and tab stop replacement.
-
Generale
Fix all warnings in the Build tools for both GCC and Clang.
-
Generale
Fix another typo in osxbuild.sh.
-
Generale
Convenience Makefile variable for building with Clang: make CLANG=1
-
Generale
More Build tools improvements:
Mostra dettagli
- 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)
-
Generale
Fix compiling the Build tools by:
Mostra dettagli
- Adding $(EXESUFFIX) where it belongs in the Makefile. - Eliminating a call to initprintf() from compat.c. This may not be ideal.
-
Generale
Fix JonoF's email address.
-
Generale
osxbuild.sh:
Mostra dettagli
- Generate changelog and add to zip. - Increase minimum version to Leopard 10.5. - Fix typo in usage printout.
-
Generale
Rename ud.clipping to ud.noclip internally for sanity.
Mostra dettagli
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
-
Generale
After executing actor or loadactor CON code, null the instruction pointer.
Mostra dettagli
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.
-
Generale
Explicitly call A_DeleteSprite() from game code instead of relying on macro expansion.
-
Generale
Remove non-SAMESIZE_ACTOR_T code and remaining #defines.
Mostra dettagli
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.
-
Generale
Remove YES and NO #defines from duke3d.h since they're giving warnings on OS X.
-
Generale
Save TROR-related information into map states and bump BYTEVERSION.