Dicembre 2011
-
Generale
Remove written-out savegame.c function declarations from demo.c and include
Mostra dettagli
savegame.h instead.
-
Generale
Remove 'projectile' field from actor_t because it was entirely unused.
Mostra dettagli
WARNING: This silently breaks savegames on 64-bit platforms.
-
Generale
Remove a few unused variables from global.[ch], update build date string.
-
Generale
minor cosmetic tweaks in sector.[ch] and a off-by-one limit correction there
-
Generale
Fix out-of-bounds write when passing a map filename to Mapster32.
-
actor. (Needs SAMESIZE_ACTOR_T, which is not yet enabled)
-
Generale
misc. beautifying some game code...
-
Generale
some more clearbuf -> memset in gamedef.c plus add a forgotten keystatus
Mostra dettagli
reset in the editor
-
Generale
savegame.c: minor cleanup and crash prevention in doloadplayer2
Mostra dettagli
if loading directly from file to state.
-
Generale
CON parser cleanup: In C_Compile, initially clear three arrays with
Mostra dettagli
Bmemset(..., 0, sizeof(...)) instead of clearbuf(..., MAX..., 0), because the latter would clear only half of the data on 64-bit platforms.
-
Generale
In EDuke32 loading/saving menus, when finding old version savegame, display
Mostra dettagli
some information about it instead of simply omitting it. Internally, struct savegame --> struct savegame_ for easier grepping.
-
Generale
actor t_data commoning: forgot do add a #define in duke3d.h
-
Generale
animvpx loop: do at least on input device poll each frame (i.e. even if we're
Mostra dettagli
lagging) to be able to cancel the movie in any case.
-
Generale
Preliminary commoning of actor[].t_data[10] to an array of int32's on both
Mostra dettagli
32- and 64-bit platforms. Also, make struct type actor_t also have a common size of 128 bytes. New code currently disabled and #ifdef'd for comparison. This requires certain t_data[] entries ([1]: move ptr, [4]: action ptr and [5]: ai ptr with actors) to be converted to script offsets instead of pointers, breaking savegame and net packet compatibility (we could in theory try hard not to, but it would be too much trouble).
-
Generale
Add new actor[].flags flag 2048 (SPRITE_NOCLIP), for 'spriteflags' CON usage.
Mostra dettagli
Actors are always moved such that _they_ clip against blocking sprites, even if their blocking bit is clear. Setting the new bit make them not clip against anything. The promary use of this is for decorative moving sprites that are spawned in masses, such as rain or snow.
-
Generale
engine.c, in engine_addtsprite: if we can't add more tsprites because we
Mostra dettagli
already have MAXSPRITESONSCREEN of them, return 1 to signal that the caller should break out of the loop.
-
Generale
Tweaks to compile the release build with clang. Now if it only would not
Mostra dettagli
generate curious code like this one (Ubuntu 11.10's clang 2.9 on i386): 0x080a57ea <+538>: xor %al,%al 0x080a57ec <+540>: test %al,%al 0x080a57ee <+542>: jnz 0x80a57f2 <initgroupfile+546> => 0x080a57f0 <+544>: jmp 0x80a57f0 <initgroupfile+544> 0x080a57f2 <+546>: shl $0x4,%edi
-
Generale
Patch up out-of-bounds access in some voxel drawing code.
-
Generale
Don't spawn weapon tiles (WEAPONx_SPAWN) if any such value has been set
Mostra dettagli
to negative numbers. Previously, only checks for being zero were performed, but CON code in the wild also has WEAPONx_SPAWN -1, which would propagate to the sprite picnum...
-
Generale
a.m32: new state 'print_parallel_midpts'
-
Rudimentary support for auto-aligning along TROR nextwalls.
Mostra dettagli
Usage: press the ['] (quote) modifier together with the PERIOD key. Aligns only the immediate upper and lower neighbors of each wall that got aligned by following point2s or nextwalls. Doesn't play well with Alt (carry over xrepeat) yet, might need two subsequent alignment passes.
-
Generale
Fix out-of-bounds access in tile selector code in astub.c
-
Generale
checkdefs.sh script: hackish support for CON files, only 'include *.con' and
Mostra dettagli
'definesound ... *.(voc|wav|ogg)' commands (missing: 'music', something else?).
-
Generale
Fix two yax_drawrooms() calls with too large sectnums (copy&paste error).
-
Generale
Fix a number of oob accesses with "switch switches".
Mostra dettagli
Various code checked for switch tiles in the following manner, for (ii=0; ii<2; ii++) switch (DynamicTileMap[sprite[i].picnum-1+ii]) { case SOME_SWITCH: ... } which blows for picnum 0. Now, we simply disallow it.
-
Remove {eduke32,mapster32}.memmap files on clean/veryclean targets
Mostra dettagli
(bioman request).
-
Generale
Fix negative array access in premap.c
-
Generale
Fix potential out-of-bounds array access in P_DisplayTip (happened with
Mostra dettagli
WGR2 SVN, so not sure where there's a tipping animation there).
-
Generale
Fix sintable[] access with out-of-bounds values in core engine functions
Mostra dettagli
(getzrange, hitscan, clipmove, drawmapview). They're reproducible with DNE1.3D; Since these angle values most likely come from CON code, my suggestion would be to bit-and all values representing angles with 2047 when setting the from CON, but I'd have to think about potential side-effects of doing this.
-
Generale
- Fix invalid polymer light array access originating from game's cleanup
Mostra dettagli
callback 'G_Polymer_UnInit'. - In astub.c, reset spritelightid to -1 when nulling the spritelightptr of a sprite (no crashes observed, just precaution) - In sdlayer.c, catch SIGILLs with our signal handler too, since illegal instructions are what the instrumented debug builds will execute when attempting to carry out an undefined (per C) operation.
-
Generale
engine.c: fix shift by negative value in parascan().
-
Generale
polymer.c: fix out-of-bounds picanm[] read.
-
Generale
gameexec.c: fix calculation of a pointer value outside the bounds of an array
Mostra dettagli
and an invalid derived pointer value.
-
Generale
Fix shift by values greater than 31 in some voxel loading code.
-
Generale
kplib.c: patch up negative array access, dunno how to really fix this at
Mostra dettagli
the root.
-
fix AWFUL out-of-bounds WRITE with sector highlighting.
Mostra dettagli
How in the name of hell this could pass undetected for so long is a mystery to me.
-
fix oob read when passing negative 'col' or 'backcol'
Mostra dettagli
values; check the color index that is potentially gotten from the string to be printed.
-
Generale
Fix a potential out-of-bounds read and write when loading the help file
Mostra dettagli
in Mapster32.
-
Generale
When compiling debugging builds with clang, enable -fcatch-undefined-behavior.
-
disable a few warning categories and other switches when compiling
Mostra dettagli
with clang to prevent spamming the output.
-
Generale
Remove some warnings with clang, code-side changes.
-
Generale
Fix a warning with 64-bit builds.
-
Generale
Simple one-liner from Robin Green to fix a problem where the menu background tint would sometimes draw over the menu contents
-
Generale
a.m32: New function save_restore_hlsectors, also accessible from the Quote-F
Mostra dettagli
menu. If some sectors are highlighted, save their indices. The highlighting of those particular sectors can then be restored at a later time (but careful across structural modifications that tweak sector indices) by running the same function. Shares a 'gamearray' with function 'collect_teleporting_sectors', so the latter will reset this one when run.
-
when failing to compile a state with a menu name, don't keep the
Mostra dettagli
menu entry.
-
fix filling all sectors of a bunch with Ctrl-U. Previously, only
Mostra dettagli
one sector was filled and the 'clear bunch' message was displayed even if the operation was canceled.
-
Generale
CON parser cleanup: make labelcode save offsets to CON code instead of
Mostra dettagli
pointers and make it into an int32_t*.
-
Generale
CON parser cleanup: make labeltype be an int32_t* instead of an intptr_t*.
-
Generale
CON parser cleanup: when getting a value from labelcode[], assume that it
Mostra dettagli
represents a pointer into the script for label types other than LABEL_DEFINE instead of checking inclusion of the value in the script bounds. This assertion was tested with WGR2 SVN.
-
Add the following commands to those which shouldn't be optimized away
Mostra dettagli
with empty branches: ifcanseetarget, ifpdistl, ifpdistg, ifgotweapononce.