EDuke32 Changelog Archivio non ufficiale

Build 2026

15 settembre 2011 · 9 commit di 1 autore · SVN

Build per mese 15 build

File di log originale · 20110915-2026.txt
------------------------------------------------------------------------
r2026 | helixhorned | 2011-09-15 10:05:00 -0700 (Thu, 15 Sep 2011) | 8 lines

Add high-resolution timers C API for profiling. The functions are called
uint64_t gethiticks() and gethitickspersec().  For SDL 1.2, the timer
has the same resolution as getticks (1000 Hz). For Windows and SDL 1.3,
the resolution of the underlying perf-timers is used.  The only user of
these functions right now is some TROR on-screen debugging code.

Revert an earlier change regarding r_preview_mouseaim.  We can't do the
check because editstatus is set later.
------------------------------------------------------------------------
r2025 | helixhorned | 2011-09-15 10:04:37 -0700 (Thu, 15 Sep 2011) | 5 lines

- Add new trueror1.map that showcases the functionality and limitations of
  the additional rendering pass
- Remove r_preview_mouseaim cvar from the game, since it's only for Mapster
- sdlmusic.c: (Failed) attempt to fix a call of waitpid() with a non-existent
  process ID in the external MIDI playing code. I think there's a race there...
------------------------------------------------------------------------
r2024 | helixhorned | 2011-09-15 10:04:14 -0700 (Thu, 15 Sep 2011) | 26 lines

Support for drawing 'island sectors' for TROR/classic (and with limited
functionality, Polymost).

The new feature can be enabled/disabled with the 'r_tror_nomaskpass' cvar.

The basic idea is that when drawing lower or upper levels, a first pass
is performed that ignores all red walls for which the TROR nextwall link
'towards' the viewer arrives at a red wall.  Thus, in the worst case, there
can be up to twice as many rendering passes now (when it is discovered that
the no-mask-pass isn't different that what would be drawn with the ordinary
one, the latter is skipped, since we've already drawn all needed geometry).

Hovever, this kind of multi-pass splitting is only suitable for simple scenes,
like the upper subway in the TROR test map.  In particular, multiple islands
shouldn't 'see' each other.

Two issues are worth mentioning: first, care needs to be taken for translucent
ceilings or floors, since drawing them twice isn't the same as drawing them
once. This is done for classic, but not for Polymost.  Second, sprites (which
are always drawn _after_ the geometry for a given pass) are still clipped to
the geometry of the ordinary pass, resulting in their disappearance from
certain angles.
--

Additionaly, a change made it into this commit that fixes redundant collection
of sprites in TROR:classic/Polymost.
------------------------------------------------------------------------
r2023 | helixhorned | 2011-09-15 10:03:50 -0700 (Thu, 15 Sep 2011) | 4 lines

misc. cleanup:
- remove 'imageSize' global which was always yres*bytesperline and only used once
- some clearbuf() -> Bmemset() because I find the latter easier to read
- remove some clearbufs to 0 of some global arrays on init
------------------------------------------------------------------------
r2022 | helixhorned | 2011-09-15 10:03:29 -0700 (Thu, 15 Sep 2011) | 6 lines

Make uninitialization sequence more consistent across the editor code. It's
always like this now:
  ExtUninit -> (writesetup, misc.)
  uninitengine -> (uninitsystem -> (uninit timers, mouse, ...))
  exit()
Some paths still lead to a plain exit(), like failures in cache1d.c or mdsprite.c
------------------------------------------------------------------------
r2021 | helixhorned | 2011-09-15 10:03:08 -0700 (Thu, 15 Sep 2011) | 4 lines

In camera viewscreen tiles, also draw upper and lower TROR levels. Works
in any renderer because it's drawn with the software one...
Also add a hack to make Polymer realize that viewscreen tiles can change
each tic so that they don't show a static image anymore.
------------------------------------------------------------------------
r2020 | helixhorned | 2011-09-15 10:02:52 -0700 (Thu, 15 Sep 2011) | 2 lines

Make a couple of variables static in the engine;  don't initialize umost/dmost
with other than base levels, since the y*most arrays are copied there later.
------------------------------------------------------------------------
r2019 | helixhorned | 2011-09-15 10:02:35 -0700 (Thu, 15 Sep 2011) | 5 lines

- In the editor, make bunch-equal-making [J] stricter, because the way it was
  handled could lead to a bunch whose floors and ceilings covered different
  areas. A fix for the reduced functionality arising from this change is
  underway.
- Rewrite a small portion of code using yax_vnextsec() in game.c.
------------------------------------------------------------------------
r2018 | helixhorned | 2011-09-15 10:02:12 -0700 (Thu, 15 Sep 2011) | 4 lines

Engine: add funtion 'yax_vnextsec(wall, cf)' to C API. It's often useful when
dealing with sectors on the two sides of a bunch.  Make yax_globallev and
yax_globalbunch variables non-static.
Rewrite a TROR-related bit in the engine code using the new function.
------------------------------------------------------------------------
r2017 | helixhorned | 2011-09-12 08:03:51 -0700 (Mon, 12 Sep 2011) | 5 lines

fix a couple of editor issues:
- one reported by Micky:
http://forums.duke4.net/topic/3911-true-room-over-room/page__view__findpost__p__106610
- malloc(0) call when saving a map with no sprites
- update 'asksave' after Alt-S and corrupt-check on starting a new map
------------------------------------------------------------------------
Fix

Add high-resolution timers C API for profiling. The functions are called

Philipp Kutin (Helixhorned) 15 set 2011, 10:05 UTC−7 r2026

uint64_t gethiticks() and gethitickspersec(). For SDL 1.2, the timer has the same resolution as getticks (1000 Hz). For Windows and SDL 1.3, the resolution of the underlying perf-timers is used. The only user of these functions right now is some TROR on-screen debugging code. Revert an earlier change regarding r_preview_mouseaim. We can't do the check because editstatus is set later.

FixEngine

- Add new trueror1.map that showcases the functionality and limitations of

Philipp Kutin (Helixhorned) 15 set 2011, 10:04 UTC−7 r2025

the additional rendering pass - Remove r_preview_mouseaim cvar from the game, since it's only for Mapster - sdlmusic.c: (Failed) attempt to fix a call of waitpid() with a non-existent process ID in the external MIDI playing code. I think there's a race there...

FixEngine

Support for drawing 'island sectors' for TROR/classic (and with limited

Philipp Kutin (Helixhorned) 15 set 2011, 10:04 UTC−7 r2024

functionality, Polymost). The new feature can be enabled/disabled with the 'r_tror_nomaskpass' cvar. The basic idea is that when drawing lower or upper levels, a first pass is performed that ignores all red walls for which the TROR nextwall link 'towards' the viewer arrives at a red wall. Thus, in the worst case, there can be up to twice as many rendering passes now (when it is discovered that the no-mask-pass isn't different that what would be drawn with the ordinary one, the latter is skipped, since we've already drawn all needed geometry). Hovever, this kind of multi-pass splitting is only suitable for simple scenes, like the upper subway in the TROR test map. In particular, multiple islands shouldn't 'see' each other. Two issues are worth mentioning: first, care needs to be taken for translucent ceilings or floors, since drawing them twice isn't the same as drawing them once. This is done for classic, but not for Polymost. Second, sprites (which are always drawn _after_ the geometry for a given pass) are still clipped to the geometry of the ordinary pass, resulting in their disappearance from certain angles. -- Additionaly, a change made it into this commit that fixes redundant collection of sprites in TROR:classic/Polymost.

misc. cleanup:

Philipp Kutin (Helixhorned) 15 set 2011, 10:03 UTC−7 r2023

- remove 'imageSize' global which was always yres*bytesperline and only used once - some clearbuf() -> Bmemset() because I find the latter easier to read - remove some clearbufs to 0 of some global arrays on init

Make uninitialization sequence more consistent across the editor code. It's

Philipp Kutin (Helixhorned) 15 set 2011, 10:03 UTC−7 r2022

always like this now: ExtUninit -> (writesetup, misc.) uninitengine -> (uninitsystem -> (uninit timers, mouse, ...)) exit() Some paths still lead to a plain exit(), like failures in cache1d.c or mdsprite.c

Engine

In camera viewscreen tiles, also draw upper and lower TROR levels. Works

Philipp Kutin (Helixhorned) 15 set 2011, 10:03 UTC−7 r2021

in any renderer because it's drawn with the software one... Also add a hack to make Polymer realize that viewscreen tiles can change each tic so that they don't show a static image anymore.

Engine

Make a couple of variables static in the engine; don't initialize umost/dmost

Philipp Kutin (Helixhorned) 15 set 2011, 10:02 UTC−7 r2020

with other than base levels, since the y*most arrays are copied there later.

Fix

- In the editor, make bunch-equal-making [J] stricter, because the way it was

Philipp Kutin (Helixhorned) 15 set 2011, 10:02 UTC−7 r2019

handled could lead to a bunch whose floors and ceilings covered different areas. A fix for the reduced functionality arising from this change is underway. - Rewrite a small portion of code using yax_vnextsec() in game.c.

Engine Engine

add funtion 'yax_vnextsec(wall, cf)' to C API. It's often useful when

Philipp Kutin (Helixhorned) 15 set 2011, 10:02 UTC−7 r2018

dealing with sectors on the two sides of a bunch. Make yax_globallev and yax_globalbunch variables non-static. Rewrite a TROR-related bit in the engine code using the new function.