Febbraio 2013
-
Generale
Lunatic translator: nearing a workable state...
Mostra dettagli
- 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).
-
Generale
Lunatic translator: eventloadactor.
-
Generale
gameexec.c: factor out 2x used code into VM_KillIt.
Mostra dettagli
Also, for Lunatic, handle killit from events.
-
Generale
Lunatic translator: switch statement.
-
Generale
Lunatic translator: qgetsysstr.
-
Generale
Lunatic translator: fix quote commands, taking care of corner cases. Add test.
-
Generale
CON qstrcpy: don't call strcpy() with identical source and destination quotes.
Mostra dettagli
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.
Mostra dettagli
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").
-
Generale
Disable playing RTS sounds until a crash can be resolved.
Mostra dettagli
See comments in the source for details.
-
Generale
Lunatic translator: qsprintf.
-
Generale
CON qsprintf: fix specifying more than one "%s" conversion.
Mostra dettagli
Also, slightly better, though still inadequate checking.
-
don't accept read-only vars for first arg of qstrlen.
-
Generale
Lunatic translator: a couple of quote commands, while*n.
-
Generale
Lunatic translator: gamearrays.
-
Generale
Game -v and -l cmdline opts: cast the numbers to unsigned first for paranoia.
-
Generale
Lunatic translator: text rendering and other niceties.
-
Generale
Fix derailing CON instruction pointer when gametextz is passed null quote.
-
Generale
CON digitalnumber*: move orientation &= (ROTATESPRITE_MAX-1) to G_DrawTXDigiNumZ
-
Generale
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.
Mostra dettagli
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.
-
Generale
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.
-
Generale
Reduce volume number modulo MAXVOLUMES for -v command line option.
-
more commands...
-
Generale
gameexec.c: refactor 'starttrack' for proper bound checking.
-
more commands, timing test for xmath's sine functions.
-
xmath module + timing test for distance functions.
-
Generale
Lunatic (translator): more commands, add some "length" methods to vec* types.
-
Generale
Refactor C code related to gettimedate and sect*interpolation CON commands.
Mostra dettagli
No functional changes.
-
Generale
Factor out setting baslayer timer from game into G_InitTimer().
-
Generale
Fix build without Ken's ZIP library (WITHKPLIB not #define'd in compat.h).
-
Generale
Classic renderer: high-precision sprite drawing, preventing stray lines on top.
Mostra dettagli
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.
-
Generale
engine.c: factor out calculation of texture coords / addresses in wall drawing.
-
Generale
engine.c: don't pass [udls]wal to maskwallscan(), use *wall globals instead.
-
Generale
Lunatic translator: more of everything...
-
Generale
CON myosx*: move masking orientation with user-bits-mask to G_DrawTileGeneric().
-
Generale
Make g_earthquakeTime into a uint16_t, remove DukePlayer_t's name[] member.
Mostra dettagli
Bump BYTEVERSION.
-
input access.
-
Generale
Factor out player[].* allocation into G_MaybeAllocPlayer(), rename 2 functions.
-
sprite.change{sect,stat}, access to more members, member read test.
-
Generale
engine.c: in changesprite{sect,stat}, swap second and third early-out tests.
Mostra dettagli
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.
-
Generale
Lunatic translator: userdef access.
-
Generale
Engine cleanup continued, no functional changes.
-
Generale
engine/Polymer: factor out setting {cos,sin}*globalang into set_globalang().
-
Generale
engine.c: clean up drawsprite()
Mostra dettagli
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.
-
Generale
Fix POLYMER=0 build, cleaning up #include discipline on the way.
Mostra dettagli
Also taking care that the USE_OPENGL=0 build builds.