March 2013
-
General
Don't continue animating Ripper, Shrinker, Expander and Freezethrower when the game is paused or the menu is up.
-
General
Read GOG.com and Steam Duke3D install paths from the registry instead of hard-coding the default paths.
-
General
Fix shrunk player fist animation speed as requested on the forums. I didn't test this against the DOS version but it seems about right according to my memory. Let me know if it's still wrong and you care that much about it.
-
General
MSVC build fixes. The change to Makefile.deps is slightly questionable but it's not really an issue.
-
General
Fix a case in minitext_() overlooked by r3608.
Show details
(This should fix the inventory item box in the statusbar.)
-
Properly implement rotatesprite16 by adding ROTATESPRITE_FULL16 to orientation.
-
General
Add "rotatespritea" to CON and M32script.
Show details
I hope I didn't bruise Lunatic too much.
-
General
Implement alpha into rotatesprite (rotatesprite_) on the engine side.
-
General
Add orientation bit 2048, enumerated as ROTATESPRITE_FULL16, which is a courtesy provided by the engine for the purpose of the game to internally force use of full 32-bit coordinates. With this bit set, all CON screen drawing commands can use rotatesprite16-like coordinates.
Show details
While the functionality was already internally in place for gametext as one of two hacks using ROTATESPRITE_MAX (the other still used by minitext_() to align with the statusbar) we must codify a bit in the engine for safe external use. (Otherwise, ROTATESPRITE_MAX could/would theoretically increase and leave modders high and dry.) (Dev note: In G_DrawTXDigiNumZ(), ROTATESPRITE_MAX was used to bitshift the value used to calculate digit spacing for no reason I can ascertain other than to introduce rounding errors into the zoom/textscale calculations. It was never used anywhere, so I removed it.) Bonus: The scaling code for digitalnumberz and gametextz has been modified so that the spacing is no longer affected by rounding errors. Try animating the zoom value and compare how the text used to jump but now does not.
-
General
Hackily implement spriteext.alpha into Classic by internally attaching 33% and 66% to the cstat bits.
-
General
Relax CAPITALIZATION restrictions.
-
fix assertion failure with overlong walls in rintersect().
-
General
Lunatic translator: proper Lua->CON line mapping for actor/event/etc. headers.
-
return early with 0 from cansee() if either sector is >= MAXSECTORS.
Show details
Previously, only the <0 condition was checked. However, the passed sectnums could be >= MAXSECTORS (at least in C-CON), for example when issuing 'canseespr' on a sprite not in the game world.
-
readarrayfromfile: fail silently if file can't be opened.
-
simplify RETURN handling, make its behavior across events same as C-CON.
Show details
There's only one RETURN value on the C side (g_RETURN), which is also referenced from Lua. Upon entering an event, its value takes on the per-event default one, and its value when the event code finishes is passed back to the game. Independently of that, its value is always saved and restored across event calls.
-
add LuaJIT's 'dump' module, printing traced bytecode, IR and mcode.
-
don't wrongly report PANIC corruption with MAXSPRITES sprites present.
-
General
Lunatic t.: don't error on changing stat/sect of sprite not in the game world.
-
actor usertypes from CON, set SFLAGs as 2nd gameactor() arg in Lua.
Show details
In passing, fix a couple of omissions: gameactor() being passed nil's in the middle, more than one moveflag to CON *actor.
-
make some variables local, fix some bugs found using listglobals.sh.
-
fix weapondata_t read access, Lua->CON line mapping for if* commands.
-
in readgamearray support code, use engine file functions.
Show details
This is so that files residing in GRPs (or anywhere the engine looks for them) can be read, too.
-
cancel logo on EVENT_LOGO error, fix CON mulscale and writable gv.
-
General
premap.c: fix oob access of tagbitmap[] with formerly negative lo-/hitags.
Show details
Also, allocate that array dynamically instead of on the stack.
-
make ivec3 and dvec3 types share same metatable, orthogonalize API.
Show details
Specifically, remove ivec3's blen1() method and add from/to BUILD coordinate (z scaled by 16) conversion methods.
-
slightly cleaner weapondata_t access.
Show details
Also, for the embedded translator: don't warn on unrecognized command line opt.
-
General
Clean up mdsprite.c:voxdraw() a little.
-
General
Clean up mdsprite.c:md3draw() by factoring out m->head.flags == 1337 check.
Show details
... into a macro MFLAGS_NOCONV(m). Since it currently expands to (0), some dead code will be eliminated. Introduce a "compilation option" macro DO_MD2_MD3_CONV in mdsprite.c.
-
General
Clean up mdsprite.c:md3draw() by factoring out spriteext[tspr->owner] access.
-
General
Make -testlua accepted (but ignored) in non-Lunatic build.
Show details
So that it doesn't result in the -t (respawn on) command line switch.
-
General
Clean up mdsprite.c:md3draw() by tightening locals, factoring out 2x dup code.
-
give sprite cstat 1024 a marco name, CSTAT_SPRITE_MDHACK.
-
General
sdlayer.c: fix incompatible-pointer-type warning.
-
Fix Mapster32. It runs now.
-
Add the default installation paths for the GOG.com release of Duke Nukem 3D: Atomic Edition and the Steam release of Duke Nukem 3D: Megaton Edition (if they exist) to EDuke32's search path.
-
General
Process ART animations on tspr->picnum early in all three renderers.
Show details
This enables ART animations to take effect on voxels in classic, voxels and models in Polymost, and models in Polymer.
-
General
Save the configuration files whenever a savegame is made.
-
General
Prevent the middle chaingun muzzleflash from animating its position when the player is frozen.
Show details
The unmodified behavior is completely wrong and I don't see how any mod could ever use it.
-
General
weapons.con.sample: Fix three C to CON porting bugs. Thanks to Fox for the reports.
Show details
(Modders who used an older version: Take a look at the SVN diff, the fixes can easily be applied by hand.)
-
General
Add to r3544.
-
General
Classic screen tilting: fix it by passing bit 1024 to rotatesprite().
Show details
This now should look correct for both settings of r_usenewaspect.
-
properly protect weapondata_t members, fix Lua->CON line mapping.
Show details
Also, make -Werror-bad-getactorvar disabled by default.
-
General
Fix Lunatic build on Windows.
Show details
- Make _buildargv[_buildargc] NULL. - With SDL layer, pass argv and argc directly and get rid of _build* ones. - Add tilesiz* to dynsymlists.
-
General
Lunatic translator embedded: handle command line arguments.
Show details
Also, fix an error() call in control.lua:gamearray_file_common().
-
General
Lunatic t.: allow hex literals with >9 digits if the high ones are all 'F's.
Show details
(Or '0's, but that case is handled automatically.) The resulting generated number is taken by looking at the 8 lower nibbles and interpreting them as a signed 32-bit integer. Also add some number parsing tests to test/nlcf_break.con.
-
General
Lunatic translator: new switch -W(no-)error-bad-getactorvar.
Show details
Toggling whether a getactorvar for a global or per-player gamevar issues a warning or a hard error, the latter being the default. Also, make it possible to readgamevar/savegamevar per-actor gamevars and add userdefs member "idplayers" (read-only).
-
General
Lunatic translator: else if* -> elseif, fix codegen for "if {}".
Show details
The first transformation makes the "control structure too long" error appear only with larger if/else cascades, though it's still possible.
-
General
Lunatic translator: dynamic tile remapping.
Show details
Also, fix message when tiles get remapped in debugging builds.
-
General
Lunatic translator: music 0, add two userdefs members.