Marzo 2013
-
Generale
Don't continue animating Ripper, Shrinker, Expander and Freezethrower when the game is paused or the menu is up.
-
Generale
Read GOG.com and Steam Duke3D install paths from the registry instead of hard-coding the default paths.
-
Generale
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.
-
Generale
MSVC build fixes. The change to Makefile.deps is slightly questionable but it's not really an issue.
-
Generale
Fix a case in minitext_() overlooked by r3608.
Mostra dettagli
(This should fix the inventory item box in the statusbar.)
-
Properly implement rotatesprite16 by adding ROTATESPRITE_FULL16 to orientation.
-
Generale
Add "rotatespritea" to CON and M32script.
Mostra dettagli
I hope I didn't bruise Lunatic too much.
-
Generale
Implement alpha into rotatesprite (rotatesprite_) on the engine side.
-
Generale
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.
Mostra dettagli
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.
-
Generale
Hackily implement spriteext.alpha into Classic by internally attaching 33% and 66% to the cstat bits.
-
Generale
Relax CAPITALIZATION restrictions.
-
fix assertion failure with overlong walls in rintersect().
-
Generale
Lunatic translator: proper Lua->CON line mapping for actor/event/etc. headers.
-
return early with 0 from cansee() if either sector is >= MAXSECTORS.
Mostra dettagli
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.
Mostra dettagli
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.
-
Generale
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.
Mostra dettagli
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.
Mostra dettagli
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.
-
Generale
premap.c: fix oob access of tagbitmap[] with formerly negative lo-/hitags.
Mostra dettagli
Also, allocate that array dynamically instead of on the stack.
-
make ivec3 and dvec3 types share same metatable, orthogonalize API.
Mostra dettagli
Specifically, remove ivec3's blen1() method and add from/to BUILD coordinate (z scaled by 16) conversion methods.
-
slightly cleaner weapondata_t access.
Mostra dettagli
Also, for the embedded translator: don't warn on unrecognized command line opt.
-
Generale
Clean up mdsprite.c:voxdraw() a little.
-
Generale
Clean up mdsprite.c:md3draw() by factoring out m->head.flags == 1337 check.
Mostra dettagli
... 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.
-
Generale
Clean up mdsprite.c:md3draw() by factoring out spriteext[tspr->owner] access.
-
Generale
Make -testlua accepted (but ignored) in non-Lunatic build.
Mostra dettagli
So that it doesn't result in the -t (respawn on) command line switch.
-
Generale
Clean up mdsprite.c:md3draw() by tightening locals, factoring out 2x dup code.
-
give sprite cstat 1024 a marco name, CSTAT_SPRITE_MDHACK.
-
Generale
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.
-
Generale
Process ART animations on tspr->picnum early in all three renderers.
Mostra dettagli
This enables ART animations to take effect on voxels in classic, voxels and models in Polymost, and models in Polymer.
-
Generale
Save the configuration files whenever a savegame is made.
-
Generale
Prevent the middle chaingun muzzleflash from animating its position when the player is frozen.
Mostra dettagli
The unmodified behavior is completely wrong and I don't see how any mod could ever use it.
-
Generale
weapons.con.sample: Fix three C to CON porting bugs. Thanks to Fox for the reports.
Mostra dettagli
(Modders who used an older version: Take a look at the SVN diff, the fixes can easily be applied by hand.)
-
Generale
Add to r3544.
-
Generale
Classic screen tilting: fix it by passing bit 1024 to rotatesprite().
Mostra dettagli
This now should look correct for both settings of r_usenewaspect.
-
properly protect weapondata_t members, fix Lua->CON line mapping.
Mostra dettagli
Also, make -Werror-bad-getactorvar disabled by default.
-
Generale
Fix Lunatic build on Windows.
Mostra dettagli
- Make _buildargv[_buildargc] NULL. - With SDL layer, pass argv and argc directly and get rid of _build* ones. - Add tilesiz* to dynsymlists.
-
Generale
Lunatic translator embedded: handle command line arguments.
Mostra dettagli
Also, fix an error() call in control.lua:gamearray_file_common().
-
Generale
Lunatic t.: allow hex literals with >9 digits if the high ones are all 'F's.
Mostra dettagli
(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.
-
Generale
Lunatic translator: new switch -W(no-)error-bad-getactorvar.
Mostra dettagli
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).
-
Generale
Lunatic translator: else if* -> elseif, fix codegen for "if {}".
Mostra dettagli
The first transformation makes the "control structure too long" error appear only with larger if/else cascades, though it's still possible.
-
Generale
Lunatic translator: dynamic tile remapping.
Mostra dettagli
Also, fix message when tiles get remapped in debugging builds.
-
Generale
Lunatic translator: music 0, add two userdefs members.