Physics: Fix climb ladders on the fly
http://doom2d.org/forum/viewtopic.php?f=36&t=2347
http://doom2d.org/forum/viewtopic.php?f=36&t=2347
added "common" module for Holmes UI (preparation for layout manager)
moved Holmes UI and most of it's low-level gfx subsystem to separate modules (to ease UI developing and testing)
holmes: better scaled UI rendering
fixed tests and tools (new hashtable API)
did the same thing for binary heap
slightly faster hashtable, and slightly nicer hashtable interface
removed "unused vars" hints in headless mode
experimental (and ugly) loading progress bar
renamed `SArray` type to `SSArray`, and moved it to "utils.pas"
adjust particle size according to current scale
hashtable cosmetix; holmes scissoring fixes
holmes: moved non-ui renderer to a better place in global render list
don't load unused textures
texture switching on "effect" trigger should work now
fixed map loading bug: panel texture internal id was incorrect (and worked only by accident)
holmes: new outliner; it should work in all scales now
fixed bug 26 (broken sound triggers); actually, not only sound triggers were broken...
...it is not wise to use uninitialized trigger to initialize game info
...it is not wise to use uninitialized trigger to initialize game info
tools fixes
code cleanup for headless mode (nothing interesting, just unused vars)
pascal `{}` comment support in parser
moved some geometry functions to shared/geom.pas; TODO: move most of g_basic.pas there
Revert previous commit (yes, I'm dumb)
Game: Fix tiny typo
typos
do not forbid selecting invalid saves; report "you idiot" instead
hashtable cosmetic updates
parser and parser-dependent modules cosmetix
turned on "SCOPEDENUMS" fpc option
fixed build bug in headless server (lol, i am dumb)
less OpenGL calls for headless server
cheats are active in single/coop now ('cause Wyoming Knotts, you know)
dynamic light convars
"holmes pause" mode
save/load UI cosmetix
compiler hint fix
bye-bye, bineditor, we won't miss you
more help for "d_monster"
bineditor: switched from old-style `File` i/o to new-style `TStream` i/o; should fix some windows problems (or not)
slightly faster map reloading on restart; enabled "--game-scale" cli arg in non-debug builds
hashtable changes (preparation to exoma scripting)
render monster drop after monsters, so monster corpses will not obscure ammo clips, for example
tools can be compiled again
xdynrec: some code cleanup
simple allocation counter for classes
added d_mem command
added `glFlush()` and `glFinish()` to texture uploader: this should make buggy drivers happier (i hope)
made "dbg_scale" non-restricted
do not bilinear anything except sky
dbg_scale fixes; made non-sky textures always NEAREST
cosmetix: `curTime*` -> `getTime*`
some more exoma code
exoma fixes
save/load fixes
plus one very experimental feature, do not touch!
plus one very experimental feature, do not touch!
hacked new ray tracer: it is complete shit, but at least it seems to work; i'll rewrite it later... maybe
replaced line-vs-aabb test with floating point one: it seems to be both faster and more precise
berserk autoswitch is cheat now
ambient light for level (doesn't work with dynamic lights; I. WANT. SHADERS!)
lighting now works in scaled mode
xdynrec: TColor type (rgb, and optional a)
simplified trigger loading code
map records and fields can have optional tooltips ("tip") and help ("help") in mapdef.txt; somebody should write 'em...
fixed typo in trigger caching; Anower Station is REALLY working now
trigger data now cached on map loading (so it should be as fast as the previous trigger data structure)
mplat triggers can make sound now
center player when the game is scaled (lighting is not working correctly yet, tho)
allow 'mywad.wad:/map01' in '-map' and other similar places (previously, only ':\' was allowed)
cosmetix in dynrecs; fixed mapcvt
xdynrec: more API works
dynrec API documenting and cleanup (still has some way to go, though)
"--write-mapdef" cli arg to write "mapdef.txt" and exit
mapdef.txt cosmetix
mapdef cleanup; renamed some fields; mapdef.txt is RC0 now
trigger field renames
removed duplicate ucs2->1251 conversion function
render fixes for NPOT textures and mplat with size changes
network/panel code cleanup
network code for mplats: looks like it works; see commit comments for some more info
there was a bug with panel syncing on join (introduced by me earlier);
it is fixed now.
internally, server only sends new panel state when something "interesting"
happens (active state changed, direction changed, etc.). in this case,
server will also send monster positions for affected monsters (just in case).
otherwise, dead reckoning should do it's work.
maybe it will be better to spam network with panel/monster state constantly,
i don't know. for now, players with huge lag can be suddenly squashed by
unsynced mplat. this should be checked with real network games.
note that network protocol will likely be changed again when we'll get final
specs for mplats.
there was a bug with panel syncing on join (introduced by me earlier);
it is fixed now.
internally, server only sends new panel state when something "interesting"
happens (active state changed, direction changed, etc.). in this case,
server will also send monster positions for affected monsters (just in case).
otherwise, dead reckoning should do it's work.
maybe it will be better to spam network with panel/monster state constantly,
i don't know. for now, players with huge lag can be suddenly squashed by
unsynced mplat. this should be checked with real network games.
note that network protocol will likely be changed again when we'll get final
specs for mplats.
entity now can be squashed by growing mplats (imagine lowering ceiling, for example)
don't be *too* smart: `swapInt()` should not do xor trick, 'cause we may pass the same var to it
grid: clip rect outside of the loops in `forEachInAABB()`
grid: fixed update bug with resized bodies ('cmon, missing '-1' is *so* well-known bug, how did it.., you stupid ketmar?!)
ooops
slightly faster(?) tile walker
shitfix (incorrect, but working) for lines starting out of the viewport (almost impossible for us, but still...)
`forEachAlongLine()` switched to `TLineWalker`
slightly better `traceBox()`
new raycaster, based on seg-vs-aabb intersections; moved common line tracing code to TLineWalker
.cfg option to control autoswitching to superfist: Game/BerserkAutoswitch
some npot fixes; not really working
untested code for NPOT resizing panels
slightly better mplat rendering (no support for NPOT yet)
xdynrec: double free on exception while parsing
cosmetix
mplat fixes
mplat: some code for moving "steps"
`traceBox()` API bugfix; squashing now works (i hope)
mplat code for monsters, corpses and gibs; see commit message for comments
the whole thing should work now, including squashing.
but gibs (and corpses?) should take velocity change when they hit lift,
and then bounces away. this is not implemented yet.
the whole thing should work now, including squashing.
but gibs (and corpses?) should take velocity change when they hit lift,
and then bounces away. this is not implemented yet.
some new code for moving platforms: only for players yet
particles: fixes for mplats