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
grid: `traceBox()` API; `sweepAABB()` API
fixed segfault on loading invalid maps
gibs and corpses now affected by mplats
TODO: create gib/corpse grid, to speed up spatial queries
TODO: create gib/corpse grid, to speed up spatial queries
"suicide" console command now works in singleplayer mode
field namefix: `FLive` -> `FAlive`; `live` -> `alive`
particle cosmetix for mplats
mplat bug: it was EXTREMELY wise to ask monster grid for old panel position
Holmes: option to highlight panel cells in grid
cosmetix
holmes cosmetix
game should write stack trace on exceptions now
"hlm_ui_scale" convar; "--holmes_ui_scale" cli arg; (fgsfds request)
some code to squash monsters and players by mplats (somewhat buggy: sometimes monsters are squashed when they shouldn't be)
some accessors to publish more properties
correctly freeing dynrecords; as a consequence, no more memory leaks in custom game selector