------------------------------------------------------------------------ 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 ------------------------------------------------------------------------