Dicembre 2011
-
more Makefile tweaks; spriteext
-
Generale
Fix issue reported at http://forums.duke4.net/topic/5068-bug-introduced-in-old-versions-of-eduke32
-
When failing to extend a collection of sectors because one of
Mostra dettagli
them has a different height, print the sectnums of two differing sectors to so that the mapper can find and examine them with Ctrl-J.
-
new cfg var 'glusememcache', the same as r_memcache cvar.
-
when having some sectors highlighted, also show how many walls
Mostra dettagli
they contain in total.
-
Makefile bits for Windows.
Novembre 2011
-
Generale
Revert r2141 functionality because it was a stupid-ass hack and breaks E3L5.
Mostra dettagli
The texture warping mode will need to be set depending on whether we're actually drawing a parallaxed sky or not.
-
Generale
Upload sky textures with s wrapping set to GL_CLAMP{_TO_EDGE}.
Mostra dettagli
This fixes the vertical (~1 texel wide) stripes that are especially noticable with tiled art skies and Polymost with r_parallaxskyclamp=1 or Polymer (which always uploads skies with repeating s and t coords). What constitutes a sky tile is currently hardcoded to be >=78 and <=99.
-
Generale
Fix moving cloud panning like in E4L1.
-
Generale
Remove old duplicate_selected_sectors() function and copysector(), which
Mostra dettagli
was only used there, from the source.
-
Generale
Rewrite sector duplication (Insert or C) in terms of backup_highlighted_sector
Mostra dettagli
and restore_highlighted_sector functions. What this means is that TROR bunches are now correctly duplicated too (only if all sectors of a given bunch are highlighted).
-
Generale
New modifier for RAlt. When RShift is depressed while highlighting sectors
Mostra dettagli
(i.e. first press RAlt, then hold RShift to make it active), consider all sectors, even the grayed out ones. This makes 6 modifier keys in 4 categories for RAlt. Can you name them all? Also spell out the labels that get drawn near the reticle when applying some of the modifiers and make them not show when not actually selecting (e.g. pressed RShift alone, but have highlighted sectors)
-
Generale
In backing up highlighted sectors code: also back up TROR information so
Mostra dettagli
that bunches and nextwall links are restores, too. Now, to coalesce two TROR maps (e.g. for a CBP), one could do for i allsectors, sethighlightsector i 1 on the console, and then load the 'other' map to copy over the contents of the first, including all TROR stuff. Note that neither selecting all sectors with RAlt, nor duplicating them with Insert would lead to the desired effect (yet). Internally, - yax_setbunch() now has different behavior for bunchnums -1, -2 and -3 (it either clears the nextwalls or not) - build.c has a helper function free_n_ptrs(). This could be handy in other situations where many blocks of memory must be allocated consecutively and freed in case of failure
-
Generale
When restoring temporarily backed up map, clear all TROR bunches. This is
Mostra dettagli
suboptimal, but at least 'correct' and won't produce the aforementioned corruptions anymore.
-
Generale
Auto-correct the just mentioned inconsistency by clearing the respective TROR
Mostra dettagli
nextwalls. (i.e. setting them to -1 on 'corruptcheck tryfix')
-
Generale
corruption checker: catch TROR-nextwalls in non-extended sectors. These
Mostra dettagli
can be caused by copying map parts from one map to another (or a new one). The copying system is slightly broken right now....
-
Generale
Backing up and restoring highlighted portion of map: calculate new
Mostra dettagli
next{wall,sector} indices instead of using checksectorpointer() so that the nextwalls will be restored exactly as they were (provided that they are copied). Also fix tweaking the sectnums of sprites.
-
Generale
Fix two bugs with the loop punching code that made it practically useless.
-
Generale
Ability to duplicate an inner loop in a neighboring TROR sector.
Mostra dettagli
Called 'loop punching'. In addition to duplicating the loop, the inner portions of the original and cloned loop are made into a new bunch, and the loop walls are made to be neighbors, linking their movement to each other. This gives a way to create island sectors with a differing bunchnum in the midst of an already extended area. Usage: For an extended sector containing a CCW inner loop, select its points using Ctrl+Shift. Press Ctrl-E to be queried whether to duplicate the points into the upper or lower extension (even if it's unambiguous). A number of conditions must be met for a successful 'punch', which should hopefully be more or less obvious. Among them: - loop walls should all be red - the starting wall is only considered among the non-grayed-out ones - the neighboring sector must not contain points inside or at the loop
-
Generale
"Sloped extended sectors cannot be split", oops. Also fix a glitch that
Mostra dettagli
would break out of the 2D mode loop when splitting a sector would exceed limits.
-
Generale
Factor out high-level 'add loop to sector' code into own function.
-
Generale
in 'adding new loop to sector': use local 'firstwall' instead of ovh.suckwall
-
Generale
Three Mapster32 changes (2 wall-drawing related, 1 crash fix)
Mostra dettagli
- Don't crash when sector joining fails under certain circumstances. - Increase the point lock (Manhattan) distance from 1/16th to 1/8th of the grid square length, making it easier to snap to vertices not lying at the grid points with grid lock on - When drawing walls, don't snap to any of them except the first drawn
-
Generale
Batch-insertion of many points at once using line drawing and ENTER.
Mostra dettagli
When having drawn N new points (and having one 'free') and pressing ENTER, the N line segments between the new points are checked one by one for intersection with every non-grayed-out wall and a wall vertex is inserted at every intersecting point. This may be viewed as a prerequisite for a 'cutter' style tool.
-
Generale
Warn user if pressing Ctrl+Shift+ENTER (check all wall pointers) in TROR map.
-
Generale
Factor out high-level point inserting code into M32_InsertPoint().
Mostra dettagli
This function only handles the actual insertion, also taking care of constrained TROR walls. Anything around the inserting such as backing up drawn walls or snapping the x/y position to the grid is handled outside.
-
Generale
Somewhat largish commit with various keyboard tinkering for Mapster.
Mostra dettagli
The main change consist of adding a key press (and release) callback whose only purpose is to be used from m32script as EVENT_KEYPRESS. When entering that event, the RETURN variable will be set to the keystatus code of the key, and whether it was pressed or released can be checked by looking at keystatus[] at that code (ifholdkey and ifhitkey do this). The purpose of this, then, is to be able to remap keys in a more general (and complicated) fashion than is possible with the mapster32.cfg 'remap' option. Various other additions build around this central one: - add an example EVENT_KEYPRESS to a.m32, among other things emulating the keypad arrows with Alt-<normal arrows> for notebook convenience; disabled initially - a.m32: set 'owner' with Alt-KP2: now Alt-Shift-KP2, because of collision with the above - new m32script command: setkey <keycode>, setting keystatus[<keycode>] to 1 (note: may be restricted to use in EVENT_KEYPRESS only in the future) - fix indexing an m32script array with a defined label, there used to be a 'not a gamevar' error instead - add the following constant labels for some key codes: KEY_SCROLL, KEY_F1 .. KEY_F12
-
Generale
- Make old-nextwalls invalid on the following two occasions: ovh_whiteoutgrab
Mostra dettagli
with no highlighted sectors; and when entering 3D mode, even if there are highlighted sectors. This should have almost no effect, but I find it cleaner that way. - Check map for corruption every time an editing change is done. This was accidentally disabled when commenting out the undo code (which I've yet to debug).
-
Generale
Make it impossible to start drawing walls when having a circle-wall
Mostra dettagli
selected. (There was a corner case where this was possible.)
-
Generale
Remove after_handleevents_hook and its only user, the keystatus-level clearing
Mostra dettagli
of SPACE and C when in side-view mode. Now, this is accomplished by checking directly in the overheadeditor code.
-
Generale
Eliminate potential malloc(0) calls when loading (converting) md2 models
Mostra dettagli
with no skins or no GL comands.
-
Generale
Fix calling glEnable() without checking for the rendering mode in the tile
Mostra dettagli
selector. This could lead to a crash when OpenGL wasn't initialized before.
-
Generale
Fix the Makefile on OSX. Their linker has a different syntax for requesting the
Mostra dettagli
memory map.
-
Generale
Fix the flickering in the tile selector with lazy hightile loading on
Mostra dettagli
(lazy_tileselector=1 in mapster32.cfg). We're drawing tiles one by one, so glDrawBuffer(GL_FRONT_AND_BACK) is our friend.
-
Generale
Remove the -nopause switch of r2108, since it didn't help at all.
-
comment out FX_PlayLoopedAuto debug message to stdout
-
Generale
Correct thinko with the ceiling/floor movement code. When moving more than one
Mostra dettagli
sector c/f and moving one of them would go beyond the other side (ceilingz > floorz), don't move any sector c/f at all. When moving only one sector in that case, move so that ceilingz == floorz.
-
Generale
Tweak raising/lowering (groups of) ceilings or floors.
Mostra dettagli
Now, if more than one sectors are affected, always move them by the same amount. That is, if one of them would be sticking against the other side, don't move the rest. Another change consists of determining the z delta first, and only then moving the sprites by that amount. This fixes the problem where you'd e.g. raise a 'floor door' against the ceiling, and the effector sprites would be raised one time too much, preventing them from being lowered the next time.
-
Generale
A couple of Mapster changes related to saving.
Mostra dettagli
- new mapster32.cfg and OSD variable 'fixmaponsave_sprites', telling the editor whether to 'fix' the sprite sectnums on saving and entering 3D mode. Note that a) sprite sectnums are never fixed when 'script_expertmode' is enabled, as before, and b) sprites that have out-of-bounds sectnums are still fixed if a proper sector is found - if saving and some sprite sectnums have thus been tweaked, inform the mapper on the status line and print the changes in the OSD - fix update issue similar to an earlier one: when 'saving as', the astub.c- based file name is now updated too, so saving with Ctrl-S now saves into the one save with 'save as' (and not the old one) - don't attempt to recheck wall pointers from scratch (when saving and running with -check) if it's a TROR map
-
Generale
Oops. Revert the *alloc wrapping to catch them being called with bad values.
Mostra dettagli
This was meant for debugging only.
-
Generale
On Windows, add command-line switch -nopause, disabling the pause key.
Mostra dettagli
Hopefully this fixes the periodic pausing/unpausing that a few people have been experiencing. Also fix build with GCC 3.
-
Generale
Fix building with both LTO and VPX support enabled. Specifically, don't use
Mostra dettagli
the 'optimize' function attribute if LTO is enabled.
-
Generale
Also print file name of cache file in case of failure to open it.
-
Generale
Fix the 'displayrandvar{var}' CON and m32script commands for environments
Mostra dettagli
with RAND_MAX > 32767 (everything except Windows?). The 'displayrand' command now returns values from 0 to 32767 inclusive, across all platforms.
-
Generale
New CON command
Mostra dettagli
setactorsoundpitch <actor#> <sound#> <pitchoffset> which can be used to change the pitch of a playing sound. The pitch offset has the same meaning as the definesound pitch range endpoints, i.e. the units are 1/100th of a seminote. Note that just like the random pitch offset, increasing the pitch makes the sound duration shorter (and vice versa).
-
Make a couple of often-used operations not spam messages to the log.
-
Generale
Eliminate one uinitialized mem access related to projectiles (it's the filler
Mostra dettagli
member, so maybe not *that* bad) and an invalid memory access when trying to access a per-player gamevar in a player-less context (e.g. WGR2 SVN r25 WGR2GAME.CON line 10448).
-
Generale
Explicitly initialize voice->Playing and voice->Paused members in some sound
Mostra dettagli
playback functions. Without these, there would be an uninitialized access in line 444 of multivoc.c (if the memory in question was allocated with malloc, but still...)
-
Generale
More beauty tinkering: decorate the 'start' pointer of the mixing functions
Mostra dettagli
and some VoiceNode struct members with a const, commit forgotten vorbis.c changes.
-
Generale
trivial stylistic changes continued: upcase all macro constants and make
Mostra dettagli
MV_MaxVolume into one again.