Gennaio 2012
-
sectorsofbunch iterator, error(..., 2), temp 'ud' access
-
Generale
Conditionally compile out the dynamic-to-static tile remapping feature.
-
Generale
Move inithashnames() and freehashnames() declarations into namesdyn.h.
-
Generale
Fix and clean up dynamic-to-static tile remapping source.
-
prohibit initial assigns creating new globals, add some must-fail tests
-
Generale
kplib.c without asm: I see an uninitialized access here, valgrind does not?
-
Generale
A couple of Makefile tweaks for clang 3.1 from SVN, and a workaround
Mostra dettagli
for an assertion failure with clang. Really ought to file a bug report instead.
-
fix for running with static main engine arrays.
-
Generale
Remove a couple of nested externs and #include some headers directly
Mostra dettagli
... instead of relying on indirect inclusion via duke3d.h.
-
Generale
In Mapster32, register the 'vidmode' OSD command in non-GL builds.
-
Generale
Two tweaks for USE_OPENGL=0 builds.
Mostra dettagli
- Always parse 'animsounds' defs - don't print "ignored frame/animation definition" warnings
-
Generale
Fix USE_OPENGL=0 build; squelch one warning.
-
Generale
Fix building with GCC 4.6 link-time optimization.
Mostra dettagli
It looks like GCC doesn't honor the 'used' attribute with LTO. This is "fixed" by declaring the variables in question with external linkage (i.e. removing the 'static'). I consider such behavior a GCC bug, though.
-
Generale
Make sdlayer.c's timerticspersec an 'int32_t' to match the declaration.
-
Generale
Route the 5th mouse button to the game; bump savegame version.
Mostra dettagli
The "double-click button4" had to make way for MOUSE5 in the button binds menu, but I don't think anyone cares. Savegame compatibility was actually silently broken with the MAXTILES update earlier, but I forgot updating the version...
-
Generale
small correction of a memory-clearing line in namesdyn.c
-
Generale
Rearrange 'struct hicreplc_t' members so that no padding is inserted on x64.
-
Generale
engine.c cleanup, making some variables static mostly
-
Generale
Fix a potential sector[-1] access when drawing a masked wall in Polymost.
-
Generale
Fix the insert cicle wall-points bug reported by Norvak.
-
Generale
Fix sprite[-1] access when aborting playing a sound in Mapster's Sound Index.
Mostra dettagli
Also a couple of other cleanup lines... might need more though, I'm not sure it's all good there.
-
Generale
Fix sprite[] access with indices > MAXSPRITES in Polymer model drawing code.
Mostra dettagli
Internally, updateanimation() now takes a third parameter 'lpal'.
-
make sector flipping (X/Y) work properly with TROR.
-
Generale
astub.c: remove some tabs in the code
-
always show highlighted sprites in 2D mode, even in a gray sector.
-
Generale
Fix a potential wall[-1] access in Mapster32.
-
Generale
minor engine cleanup.
Mostra dettagli
- enclose glbuild.h in #idndef ... sentinels - engine.c: remove unused variable 'pageoffset', make 'lastx' static - formatting
-
Generale
Use ATTRIBUTE((used)) for symbols used only in inline asm.
Mostra dettagli
This may fix compilation for optimized builds with GCC or clang where the compiler would otherwise decide that those symbols are unused.
-
Generale
Inreased debugging level for catching oob accesses to 'main' arrays.
Mostra dettagli
If enabled, this makes the following arrays be allocated statically: spriteext, spritesmooth, sector, wall, sprite, tsprite, while necessarily disabling the clipshape feature (because it relies on setting sector/wall to different malloc'd block temporarily). To compile, pass DEBUGANYWAY=1 in addition to RELEASE=0 to 'make', and it's really only useful with CC=clang, of course.
-
Generale
Fix a problem in G_DrawRooms where an sectnum updated to -1 may be used as index.
-
Generale
Fix oob accesses when e.g. shooting tile -1. (can propagate via WEAPONx_SHOOTS)
Mostra dettagli
Ideally, we would also warn when setting WEAPONx_SHOOTS to negative values, but we'd have to intercept CON's setvar's and it wouldn't be pretty.
-
Generale
Double MAXTILES to 30720, reduce EXTRATILES (models w/ custom pal skin) to 3840
Mostra dettagli
I'm decreasing EXTRATILES because I feel that it's way overcommitted. It's the max number of model-tiles that have their own skin for a certain palette, like the slimer egg in the HRP.
-
Generale
less trivial stuff
Mostra dettagli
- fix one bound-checking line - rewrite two lines in astub.c to potentially not overflow an int16 - make tiletovox[] an array of int16's
-
Generale
trivial tweaks: make stuff static, remove unused stuff, formatting...
-
Generale
Add the 'yoffset' token to model definitions to allow models to compensate for ART tiles with large yoffsets, such as #603. Under normal circumstances the existing 'zadd' parameter should be used instead. Special thanks to Supertanker.
-
Generale
weapons.con.sample:
Mostra dettagli
- hud_orientation now uses proper bitwise operations - clean up whitespace
-
Generale
gamedef.c: make some variables static and remove some #if 0'ed code.
-
Generale
Remove the allocache() allocation type for 'intptr_t *lookups'.
Mostra dettagli
Always malloc that buffer. This allows us to remove suckcache() from cache1d.c, which I believe to be buggy (see comments in the source).
-
Generale
cleanup:
Mostra dettagli
- 'whitecol' was defined in the engine and in build.c, use only the engine one - make cachesize, artsize, artversion static in engine.c - undo some formatting havoc presumably done by astyle
-
Generale
Increase the number of maximum art files from 64 to 256 and tweak loadpics().
Mostra dettagli
It is likely that this is the value it used to have at some point, because the MAXTILEFILES macro equals 256 and is as old as the Duke3D source. loadpics() now refuses to load an ART file with localtilestart or localtileend out of bounds, or if localtileend<=localtilestart (i.e. no tiles in ART file, or nonsense). Also, on 'invalid art file version', continue instead of returning. Note: this does not increase the maximum number of tiles, which is still 15360, it only gives a bit more freedom to arrange them (well, into more art files). Also, I don't see what anyone keeps off from packing any number of tiles (from 1 to 15360) into an art file. Old EDITART limits?
-
Generale
Add a hack to the animsounds DEF token parsing to not wrongly emit an error.
-
Generale
Fix parallaxed sector display in Mapster32 on Polymer.
-
Generale
Fix the Polymer hitches first encountered with Parkade.
Mostra dettagli
The cause was a combination of many factors. First, Polymer requires the start-drawing position to be inside the sector to draw (deviations lead to incorrect drawing). This was violated by the game, because it interpolated the current and next tic position without updating the sectnum, leading to inconsistencies especially when passing through narrow sectors. Polymer worked around it by doing an updatesector() each frame, however this works poorly for maps with overlapping geometry such as SoS or RoR. The solution to this is to add a new engine function, updatesector_onlynextwalls(), which searches the sectors (via nextsector) in breadth-first fashion instead of from 0 to numsectors-1, like updatesector does when it fails for the *immediate* nextwall neighbors. Internally, the breadt-first search helpers are moved into the engine.
-
Generale
winlayer.c: in WM_PALETTECHANGED handling code ("someone stole the palette
Mostra dettagli
so try and steal it back"), prevent calling IDirectDrawSurface_SetPalette() with NULL arguments, causing a crash. It's happened for me on Vista, when initially changing from 8-bit to 32-bit mode.
-
Generale
Add Makefile option to use the DMALLOC (debug malloc) library.
Mostra dettagli
I didn't have much success in finding bugs using it, but it works out-of-the-box on my setup, so it may be useful in the future.
-
Generale
sdlayer.c: formatting of preprocessor lines
-
Generale
Support for the first "thumb" mouse button, called MOUSE4 in the menu.
Mostra dettagli
The second one is passed to the 'mouseb' variable, but the game currently can't map it since ud.config.MouseFunctions[] would have to be enlarged, breaking savegame compatibility. Works both for the Windows and SDL layers. For the latter, instead of using the SDL_BUTTON_X1/X2 macro constants, I'm using 8 and 9, since that is what SDL (and incidentally or not, xev) gives me for those buttons.
-
Generale
Temporarily disable the 'model thinning-out' feature intended to save memory.
Mostra dettagli
It turns out that with model interpolation, out-of-bounds frame numbers may be generated with thinned out models, so disable it until I can sort out what's wrong with it. Also, minor code cleanup.
-
Generale
polymer.c: "Compiling GPU program with bits (octal) %o" for easier reading.
Mostra dettagli
Also, for debugging builds, show this message from verbosity level 1 on.
-
Generale
Fix actor[].dispicnum becoming negative.
Mostra dettagli
Since the original source code release of Duke3D, there was a potentially dangerous hack where actor[].dispicnum was set to -4 to signal "this actor should not have a floor shadow for this moment" (it doesn't really work, if you ask me). Now, use another bit of actor[].flags for that purpose because setting any picnum members to negative values asks for trouble.