February 2013
-
General
Lunatic translator: nearing a workable state...
Show details
- some more outer commands - gamearray persistence - faster 'mod': use math.modf instead of math.fmod (the former is JIT-compiled) - checkavail* - THISACTOR special handling - Fix building in Windows (export A_ShootWithZvel instead of A_Shoot).
-
General
Lunatic translator: eventloadactor.
-
General
gameexec.c: factor out 2x used code into VM_KillIt.
Show details
Also, for Lunatic, handle killit from events.
-
General
Lunatic translator: switch statement.
-
General
Lunatic translator: qgetsysstr.
-
General
Lunatic translator: fix quote commands, taking care of corner cases. Add test.
-
General
CON qstrcpy: don't call strcpy() with identical source and destination quotes.
Show details
Thus making the identical source and destination quote number case into the expected no-op instead of being undefined behavior.
-
add "movement by one" debugging functionality via a.m32.
Show details
If m32script gamevar "move_by_one" is nonzero, the some keys move the "player arrow" by increments of 1: - Without SHIFT: LEFT/RIGHT absolute x, DOWN/UP absolute y, A/Z absolute z. - With SHIFT: DOWN/UP (unbounded!) horiz, LEFT/RIGHT angle. This can be useful to debug renderer bugs that show a high sensitivity to the exact location ("are transient in space").
-
General
Disable playing RTS sounds until a crash can be resolved.
Show details
See comments in the source for details.
-
General
Lunatic translator: qsprintf.
-
General
CON qsprintf: fix specifying more than one "%s" conversion.
Show details
Also, slightly better, though still inadequate checking.
-
don't accept read-only vars for first arg of qstrlen.
-
General
Lunatic translator: a couple of quote commands, while*n.
-
General
Lunatic translator: gamearrays.
-
General
Game -v and -l cmdline opts: cast the numbers to unsigned first for paranoia.
-
General
Lunatic translator: text rendering and other niceties.
-
General
Fix derailing CON instruction pointer when gametextz is passed null quote.
-
General
CON digitalnumber*: move orientation &= (ROTATESPRITE_MAX-1) to G_DrawTXDigiNumZ
-
General
Lunatic translator: sprite list commands, findnear*, protect player[].ftq.
-
Take advantage of libogc features: PNG screenshots (libpng/zlib), Ogg Vorbis audio (libtremor), and high-resolution profiling timers.
Show details
FLAC and VPX remain out in the cold.
-
Fix most warnings. Three remain: two are labeled with FIXMEs; the third consists of signed/unsigned comparisons involving LSWAPIB() in kplib.c.
-
Add Homebrew Channel metadata for Mapster32 and expand the build process to easily allow its addition. Unfortunately it closes on launch without any log and I don't have any means to debug it, so it remains disabled. (Who wants to map on a TV with 640x480 resolution anyway?)
-
Fix build.
-
General
Add a new psd of the logo that hue shifts the original orange color to what should be the correct blue color. Oddly, this gives a slightly different result to hue-shifting the final product in GIMP afterwards. This should be investigated further.
-
General
Reduce volume number modulo MAXVOLUMES for -v command line option.
-
more commands...
-
General
gameexec.c: refactor 'starttrack' for proper bound checking.
-
more commands, timing test for xmath's sine functions.
-
xmath module + timing test for distance functions.
-
General
Lunatic (translator): more commands, add some "length" methods to vec* types.
-
General
Refactor C code related to gettimedate and sect*interpolation CON commands.
Show details
No functional changes.
-
General
Factor out setting baslayer timer from game into G_InitTimer().
-
General
Fix build without Ken's ZIP library (WITHKPLIB not #define'd in compat.h).
-
General
Classic renderer: high-precision sprite drawing, preventing stray lines on top.
Show details
Face- and wall-aligned sprites are drawn using the wall routines in BUILD. However, the per-x-screen-coordinate distance (swall[]) is calculated in a way that potentially incurs great precision loss (for example 5 bits for xdimen=1280, yxaspect=65536). This leads to the starting (top) vertical texture coordinate possibly wrapping to large values, leaving an unsightly "stray line" on top of the sprite from certain viewing angles/horiz values. The approach to fix it has two parts: first, the distance is calculated using float values, preventing the precision loss. Because this doesn't fully prevent the unwanted lines, the texture coords are clamped to the mininum and maximum (0 and UINT32_MAX respectively) when calculating them for sprites. Note that stray lines may still appear at the *bottom* of sprites under certain circumstances, for example when viewing at a y-flipped sprite from above. These should be less noticable in real-world usage though. The feature is guarded by a macro HIGH_PRECISION_SPRITE in case using floating point or 64-bit integers is undesirable/impossible on some platforms.
-
General
engine.c: factor out calculation of texture coords / addresses in wall drawing.
-
General
engine.c: don't pass [udls]wal to maskwallscan(), use *wall globals instead.
-
General
Lunatic translator: more of everything...
-
General
CON myosx*: move masking orientation with user-bits-mask to G_DrawTileGeneric().
-
General
Make g_earthquakeTime into a uint16_t, remove DukePlayer_t's name[] member.
Show details
Bump BYTEVERSION.
-
input access.
-
General
Factor out player[].* allocation into G_MaybeAllocPlayer(), rename 2 functions.
-
sprite.change{sect,stat}, access to more members, member read test.
-
General
engine.c: in changesprite{sect,stat}, swap second and third early-out tests.
Show details
That is, first check if the sprite is in the game world and then if it already has the desired sector or status number. This doesn't change anything in our codebase, since the return values of these functions are never examined.
-
General
Lunatic translator: userdef access.
-
General
Engine cleanup continued, no functional changes.
-
General
engine/Polymer: factor out setting {cos,sin}*globalang into set_globalang().
-
General
engine.c: clean up drawsprite()
Show details
The usual: declare locals more tightly, const-qualify them where it helps readability, remove dead code...
-
[gs]et{player,actor}var, access to protected projectile members.
-
working tsprite methods, static members, struct array timing test.
-
General
Fix POLYMER=0 build, cleaning up #include discipline on the way.
Show details
Also taking care that the USE_OPENGL=0 build builds.