Christoph Oelckers
05e381ff6d
- fixed screen clearing for the automap.
...
This should only affect the active window, not the entire screen.
2019-12-31 19:50:27 +01:00
Christoph Oelckers
ef5292b4ae
- don't use Build's clipping code to clip automap parts to the screen.
...
Not really surprisingly this is not compatible with a real triangulator. Fortunately it's also not really needed.
2019-12-31 19:38:50 +01:00
Christoph Oelckers
1890df98f9
- process lines through the 2D drawer.
2019-12-31 19:02:55 +01:00
Christoph Oelckers
2f8d472d7d
- cleaned up the map drawer by using a real triangulator.
...
Immediate benefit: almost 200 lines of bona-fide Kencode go to the dumpster.
2019-12-31 17:23:29 +01:00
Christoph Oelckers
77cd7bffc5
- fixed alpha calculations for textured automap.
2019-12-31 15:50:08 +01:00
Christoph Oelckers
d825282726
- removed a few software rendering parts from the automap drawer.
...
These won't be needed anymore.
2019-12-31 15:41:12 +01:00
Christoph Oelckers
964e303dd7
- draw the textures on the automap with the 2D drawer.
2019-12-31 15:05:08 +01:00
Christoph Oelckers
2c35f87925
- fixed translucency determination.
2019-12-30 21:03:15 +01:00
Christoph Oelckers
ad24a1ce31
- place weapon sprites in a separate render list.
...
They need to be drawn in a different pass than the 2D overlay HUD so the backend must have them separately.
2019-12-30 20:16:51 +01:00
Christoph Oelckers
7ea053bd90
- reconnected the HUD model drawer.
...
This will have to be done differently later when the postprocessor is fully working, but for now it's sufficient to just render the model right away.
2019-12-30 20:16:51 +01:00
Christoph Oelckers
6459f4e532
- refactored rotatesprite to really use the 2D drawer.
...
Mostly working, except clipping and weapon sprites.
2019-12-30 19:37:23 +01:00
Christoph Oelckers
f1891c7750
- fixed compilation.
2019-12-29 22:47:40 +01:00
hendricks266
456d975392
Make the Polymode cstat bits Duke-only by translating them to tspr->clipdist
...
git-svn-id: https://svn.eduke32.com/eduke32@8523 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
# source/duke3d/src/astub.cpp
# source/duke3d/src/common_game.h
# Conflicts:
# source/duke3d/src/common_game.h
2019-12-29 22:23:18 +01:00
hendricks266
6a5906833b
Move TSPR_EXTRA_MDHACK from extra to clipdist
...
git-svn-id: https://svn.eduke32.com/eduke32@8522 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/mdsprite.cpp
# source/build/src/polymer.cpp
2019-12-29 22:22:20 +01:00
hendricks266
6465feb438
Refactor tsprite creation into renderAddTSpriteFromSprite
...
git-svn-id: https://svn.eduke32.com/eduke32@8521 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymer.cpp
# source/duke3d/src/m32exec.cpp
2019-12-29 22:22:19 +01:00
Christoph Oelckers
3a6d0b8f84
- more cleanup.
2019-12-29 17:04:38 +01:00
Christoph Oelckers
2e261a7468
- cleanup and removal of unused code.
...
compat.h probably needs a bit more attention, it's a horrendous mess of the wrong type of "compatibility" concerns.
2019-12-29 16:35:51 +01:00
Christoph Oelckers
cc332486b4
- cleaned out the 2D drawing code.
...
With the new backend there will always be just one page, never more, so the RS_PERMS case will never be entered.
In addition, since the software renderer has already been nonfunctional due to lacking support from the 2D drawer, its 2D components have also been removed. Its main remaining purpose, drawing camera textures, remains unaffected by this.
2019-12-29 15:46:48 +01:00
Christoph Oelckers
737bf15ad8
- added GZDoom's postprocessing/presentation code.
...
Compiles but only draws a black screen. Something must be missing but no idea yet what that might be.
2019-12-28 22:36:47 +01:00
Christoph Oelckers
f6dee38d28
- route all 2D drawing through the 2D drawer unconditionally.
...
This is needed so that the postprocessor receives a clean 3D view to process without messing up the 2D parts.
2019-12-28 19:10:23 +01:00
Christoph Oelckers
6373b75d22
Merge branch 'master' into powerslave
...
# Conflicts:
# source/common/gamecontrol.cpp
# source/common/version.h
# wadsrc/static/engine/grpinfo.txt
2019-12-26 14:46:14 +01:00
Christoph Oelckers
d473f9c590
- replaced all uses of Bfree with Xfree so they are subjected to debug instrumentation, uses FStrings in a few cases where it made sense.
...
- fixed: Sound channels weren't freed.
2019-12-26 14:43:44 +01:00
Christoph Oelckers
62e9112133
- renamed the internal resource directory to "engine" and routed most literal mentions of the engine name through version.h
...
All this comes from a time when I didn't use version.h so it's better to do it the same way as GZDoom to allow easy renaming of the engine.
2019-12-26 14:04:53 +01:00
hendricks266
8e6a54a1e4
Mostly clean up the codebase in preparation for tspritetype != uspritetype
...
Remaining exceptions:
SW - ConnectCopySprite
CON and M32Script - pSprite/pUSprite
git-svn-id: https://svn.eduke32.com/eduke32@8519 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/polymer.h
# source/build/src/engine.cpp
# source/build/src/engine_priv.h
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
# source/duke3d/src/astub.cpp
# source/duke3d/src/game.h
# source/duke3d/src/m32common.cpp
# source/duke3d/src/m32exec.cpp
# source/duke3d/src/m32structures.cpp
# source/kenbuild/src/bstub.cpp
# source/kenbuild/src/game.cpp
# source/sw/src/jnstub.cpp
# source/sw/src/jsector.cpp
2019-12-26 08:58:25 +01:00
Christoph Oelckers
1a8f11e01d
Merge branch 'master' into powerslave
...
# Conflicts:
# source/build/src/sdlayer.cpp
# source/common/menu/menu.cpp
# source/sw/src/config.cpp
# source/sw/src/game.cpp
2019-12-26 00:21:04 +01:00
Christoph Oelckers
e180d9afd3
Merge commit '40a533402e443a0de1673543642c892ab9c731fd' into powerslave
...
# Conflicts:
# source/audiolib/include/fx_man.h
# source/audiolib/include/multivoc.h
# source/audiolib/src/_multivc.h
# source/audiolib/src/fx_man.cpp
# source/audiolib/src/multivoc.cpp
2019-12-25 19:24:55 +01:00
Christoph Oelckers
745d78d8d7
- fixed voxels leaking memory.
2019-12-25 08:57:58 +01:00
Christoph Oelckers
5bd32cf769
- fixed: Voxel setup code wasn't called anymore.
2019-12-25 00:30:13 +01:00
Christoph Oelckers
055b310d60
- rewrote all remaining places that used wm_msgbox to throw a fatal error instead so that the global error handler can deal with the messages.
...
This eliminates another piece of hideous code.
This commit also moves the memory error handler to the common code, so that all games can call it if triggered.
2019-12-24 19:59:14 +01:00
Christoph Oelckers
43033e830a
- Blood now also starts the first level without leaks.
...
I had to refactor the LoadSave data to allow automatic takedown, the linked list was not the most convenient thing - an array is better.
2019-12-24 19:47:34 +01:00
Christoph Oelckers
2820dc85a8
- plugged more memory leaks.
...
I can now start the first Duke Nukem level, exit with Alt-F4 and no leaked memory blocks get reported.
2019-12-24 18:53:29 +01:00
Christoph Oelckers
0d908960ed
- started fixing memory leaks: Console and clip shapes done.
2019-12-24 16:09:43 +01:00
Christoph Oelckers
e8d7777f4a
- mouse input works again after cleaning out the remaining cruft of the old input code.
2019-12-24 13:54:50 +01:00
Christoph Oelckers
141887263d
- header cleanup
2019-12-23 21:19:42 +01:00
Christoph Oelckers
9ab8a8c737
- refactored the coordinate printout to a stat and removed printext256 and the associated font.
2019-12-23 20:55:12 +01:00
Christoph Oelckers
3b98635170
- removed all remaining references to SDL. The Windows version is now fully native.
2019-12-23 20:03:03 +01:00
Christoph Oelckers
62ecedf1f8
- got it to the point where it can render to the GL surface from the native backend.
2019-12-23 19:37:40 +01:00
Christoph Oelckers
a1f7f0cc30
- added the GL framebuffer class.
...
Everything compiles again but obviously no init code will run for now.
2019-12-23 15:40:17 +01:00
Christoph Oelckers
6b475417dc
Merge branch 'master' into gzbackend
2019-12-23 14:31:31 +01:00
hendricks266
56e88b33a8
Replace color matching up to index 239 with the engine's fullbright mask
...
Should improve the color range available to non-Duke editors.
git-svn-id: https://svn.eduke32.com/eduke32@8491 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-23 11:37:00 +01:00
hendricks266
34ef03185d
Generate editorcolors[] from vgapal16[] at a better point in the startup process
...
git-svn-id: https://svn.eduke32.com/eduke32@8490 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
# source/build/src/palette.cpp
2019-12-23 11:36:24 +01:00
hendricks266
221e7a6b85
paletteGetClosestColor: I think these < should be <=
...
git-svn-id: https://svn.eduke32.com/eduke32@8489 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-23 10:59:21 +01:00
hendricks266
0a7f5f558a
Rename colmatch functions
...
git-svn-id: https://svn.eduke32.com/eduke32@8488 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/colmatch.h
# source/build/src/build.cpp
# source/build/src/defs.cpp
# source/build/src/palette.cpp
# source/duke3d/src/lunatic/dynsymlist_editor.lds
# source/duke3d/src/lunatic/dynsymlist_game.lds
# source/duke3d/src/lunatic/engine.lua
# source/tools/src/transpal.cpp
2019-12-23 10:59:14 +01:00
hendricks266
7db49ea20a
Change PaletteIndexFullbrights from uint32_t[8] to uint8_t[32]
...
git-svn-id: https://svn.eduke32.com/eduke32@8487 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/palette.h
2019-12-23 10:57:11 +01:00
Christoph Oelckers
6e9631f2d8
- fixed all undefined symbols except OpenGLFrameBuffer.
2019-12-23 10:53:58 +01:00
Christoph Oelckers
10683e9123
- added GZDoom's Windows backend code.
...
Compiles but doesn't link yet.
2019-12-22 20:55:47 +01:00
Christoph Oelckers
773be7db26
- moved around a few bits of code to get rid of winbits.cpp/h.
2019-12-22 18:53:58 +01:00
Christoph Oelckers
417d425f27
- fixed cherry picked commits.
2019-12-22 17:20:13 +01:00
hendricks266
f10ea8e630
Add check against MAXVOXELS in qloadkvx
...
git-svn-id: https://svn.eduke32.com/eduke32@8472 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/engine.cpp
2019-12-22 15:13:30 +01:00
hendricks266
deec38c827
Expose nextvoxid variable
...
This allows game and defs to not overwrite each other's voxels.
git-svn-id: https://svn.eduke32.com/eduke32@8471 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/kenbuild/src/bstub.cpp
# source/kenbuild/src/game.cpp
# source/sw/src/bldscript.cpp
# source/sw/src/jnstub.cpp
2019-12-22 15:12:49 +01:00
hendricks266
abd79c18c1
Defs: Add tilefromtexture subtoken "ifmatch", with subtokens "crc32" and "size"
...
git-svn-id: https://svn.eduke32.com/eduke32@8465 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/build.h
# source/build/src/defs.cpp
# source/build/src/tiles.cpp
2019-12-22 15:10:24 +01:00
hendricks266
777b895748
Defs: Minor ifcrc cleanup
...
git-svn-id: https://svn.eduke32.com/eduke32@8464 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/build.h
# source/build/src/defs.cpp
# source/build/src/tiles.cpp
2019-12-22 15:07:26 +01:00
Christoph Oelckers
fffe1753ec
- removed a few unused bits of code.
2019-12-19 20:04:17 +01:00
Christoph Oelckers
3cb68b2bf0
- replaced the semi-broken screenshot name generator.
...
Also took this file out of the 'build' folder, now that all code in here comes from elsewhere.
This also removes a few dead declarations.
2019-12-19 19:47:51 +01:00
Christoph Oelckers
ee93c6e366
- fixed voxel lighting.
...
In all that impenetrable voodoo math from Polymost it picked the wrong vector to calculate the depth of the scene and since I apparently removed the compensation math for the broken shader on the C++ side the calculated value was no longer correct.
That Polymost renderer really needs to go away. :(
2019-12-19 17:51:33 +01:00
Christoph Oelckers
43c66d07ae
Merge branch 'master' into sound
2019-12-18 11:23:20 +01:00
hendricks266
434ed57337
Fix rotatesprite widescreen pinning in 5:4
...
git-svn-id: https://svn.eduke32.com/eduke32@8454 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-18 11:20:30 +01:00
hendricks266
1ccda16e8e
Avoid shadowed variable in dorotatesprite
...
Backported from PCExhumed.
git-svn-id: https://svn.eduke32.com/eduke32@8446 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-18 11:18:58 +01:00
hendricks266
efc7365df9
Fix the interpretation of old-format PALETTE.DAT
...
Backported from PCExhumed.
git-svn-id: https://svn.eduke32.com/eduke32@8436 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/palette.cpp
2019-12-18 11:14:47 +01:00
hendricks266
6eec629cfd
Expose blackcol variable, containing the palette index closest to #000000
...
Backported from PCExhumed.
git-svn-id: https://svn.eduke32.com/eduke32@8433 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-18 11:13:00 +01:00
hendricks266
120a2b4ca7
Remove arbitrary check on numshades == 32
...
Backported from PCExhumed.
git-svn-id: https://svn.eduke32.com/eduke32@8432 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-18 11:12:41 +01:00
Christoph Oelckers
a7075bc1b0
- SW sound WIP
...
* removed old sound loading code, which was the last bit to use cacheAllocateBlock which is also gone now.
* cleanup of player sound code. All game side tracking of the sound resources has been removed.
does not compile yet.
2019-12-17 23:25:07 +01:00
Christoph Oelckers
7916b16efc
- fixed undefined behavior with iterating over null unique_ptrs.
...
I have no idea why this works most of the time - it should crash right away.
2019-12-17 20:08:59 +01:00
Christoph Oelckers
9b9c009de9
- copybyte is not the same as memcpy.
...
It should be inlined to use it, though, because homegrown loops for this stuff may have been ok in 1995, but not in 2019.
2019-12-15 21:06:41 +01:00
Christoph Oelckers
91f83d4c55
- input code cleanup and addition of ZDoom's joystick code, which is not fully connected yet.
2019-12-14 17:15:17 +01:00
nukeykt
bff0646263
Recalculate horizycent because ydim can be changed in renderSetTarget
2019-12-14 00:20:58 +01:00
Christoph Oelckers
052ed5fff7
Merge branch 'master' into powerslave
2019-12-13 20:43:23 +01:00
Christoph Oelckers
b13ee90aa0
- first steps trying to get the game to work.
2019-12-13 00:19:34 +01:00
hendricks266
0d7fc1263e
Improve diagnostic printing of slopalookup overflows
...
git-svn-id: https://svn.eduke32.com/eduke32@8419 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-09 17:25:25 +01:00
hendricks266
b71ef4a140
Fix regression in software rendering of slopes in r8363
...
git-svn-id: https://svn.eduke32.com/eduke32@8418 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-09 17:25:16 +01:00
Christoph Oelckers
0604c72586
- code cleanup
...
removed some unused definitions
replaced the copybuf* functions with memcpy. These days doing homegrown copy loops is not efficient anymore.
2019-12-09 01:39:40 +01:00
Christoph Oelckers
a74797b97c
- fix merge errors.
2019-12-08 08:51:54 +01:00
terminx
0af13dcde0
Minor changes to hash table code
...
git-svn-id: https://svn.eduke32.com/eduke32@8372 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/hash.h
2019-12-08 08:09:13 +01:00
terminx
441b0460aa
Map SDL joystick device trackball input to mouse input
...
git-svn-id: https://svn.eduke32.com/eduke32@8367 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/sdlayer.cpp
2019-12-08 07:59:14 +01:00
terminx
cbfb675577
Shitcan the few uses of the bool type in the VM after reading some things and dicking around on godbolt.org
...
git-svn-id: https://svn.eduke32.com/eduke32@8366 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/duke3d/src/gameexec.cpp
# source/duke3d/src/gameexec.h
2019-12-08 07:56:50 +01:00
terminx
265e7109aa
Equivalent to 04e7e6af69
...
git-svn-id: https://svn.eduke32.com/eduke32@8363 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-08 07:53:27 +01:00
Christoph Oelckers
0b8da78ff5
- toupperlookup was no longer referenced anywhere.
2019-12-07 10:56:35 +01:00
Christoph Oelckers
0342b96335
- cleaned out the remaining wrappers from cache1d.h and use the file system directly instead.
2019-12-07 10:49:23 +01:00
Christoph Oelckers
30cbcb54b1
- renamed the remaining file system access wrappers in cache1d.h
2019-12-07 10:31:27 +01:00
Christoph Oelckers
749eda32c5
- moved kopenfilereader into the FileSystem class.
2019-12-07 10:14:51 +01:00
Christoph Oelckers
a0fe7f4048
- more mouse fixes. Most of the menu is now mouse controllable again.
...
The exceptions are the text screens which do not react to the mouse and the confirmation screen which treats a mouse click as a cancel event.
2019-12-06 00:06:41 +01:00
Christoph Oelckers
3d10d006a7
- fixing mouse menu control, part 1.
2019-12-05 23:49:32 +01:00
Christoph Oelckers
db425a1228
- fixed keybinding and mouse cursor display.
...
- fixed some merge issues in Shadow Warrior.
2019-12-05 21:39:02 +01:00
Christoph Oelckers
223c6d628e
Merge branch 'master' into menu_for_real
2019-12-05 21:08:46 +01:00
hendricks266
d1ed4063eb
Fix the widescreen alignment of weapons when shrinking the screen with + or - (currently disabled by default)
...
Patch from Fox.
git-svn-id: https://svn.eduke32.com/eduke32@8356 1a8010ca-5511-0410-912e-c29ae57300e0
2019-12-05 17:23:07 +01:00
Christoph Oelckers
1cfe5be130
- fixed creation of true color textures.
...
The palette check was not correct so they ended up empty and caused other problems down the line.
2019-12-01 21:43:54 +01:00
Christoph Oelckers
8a98f9b3ca
- removed quitevent.
...
This was some meticulously preserved relic of bad old DOS times used to block OS facilities to close an app.
Since this has been worked around at a lower level already the variable was essentially without function but some quite bad code depended on it.
2019-12-01 09:02:17 +01:00
Christoph Oelckers
c36402eb5c
- fixed savegame validation and recursive ticker calls.
2019-11-30 23:33:04 +01:00
Christoph Oelckers
2a9e4fca46
WIP safety commit
2019-11-30 19:23:54 +01:00
Christoph Oelckers
115675417a
Merge branch 'master' into powerslave
2019-11-28 17:07:11 +01:00
Christoph Oelckers
3bb46a4d8d
Merge branch 'master' into menu_for_real
2019-11-27 18:04:44 +01:00
hendricks266
ece20928a0
Fix buffer overflow in getclosestcol_lim
...
Patch from Nuke.YKT.
git-svn-id: https://svn.eduke32.com/eduke32@8315 1a8010ca-5511-0410-912e-c29ae57300e0
2019-11-27 18:01:58 +01:00
Christoph Oelckers
0f4d80b5d3
Merge branch 'master' into menu_for_real
2019-11-26 19:19:21 +01:00
hendricks266
31f8cb4def
SW: Fix an assertion failure in palette changing code
...
git-svn-id: https://svn.eduke32.com/eduke32@8300 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/palette.cpp
2019-11-26 17:59:01 +01:00
hendricks266
46d4855901
Fix the ifcrc token: 0 is a valid CRC32 result!
...
git-svn-id: https://svn.eduke32.com/eduke32@8296 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/defs.cpp
2019-11-26 17:51:33 +01:00
Christoph Oelckers
a74a670c99
-- more work on the menu - episode and skill menus are working in DN3D.
2019-11-25 23:21:51 +01:00
Christoph Oelckers
a96f1b25f7
- fixed recursion issue with menu and CON scripting.
...
Curse all those busy loops in the engine.
2019-11-24 17:52:54 +01:00
nukeykt
524d0dd496
Fix buffer overflow in getclosestcol_lim
2019-11-23 23:37:32 +01:00
Christoph Oelckers
52cfb7fb92
- completely disconnected the old menu from the rest of the game to allow rebuilding the new one.
...
Sadly this uncovered a few more places where script events are allowed too broad access to the game state.
2019-11-23 23:05:24 +01:00
nukeykt
337dea13e6
Add FPS counter
2019-11-22 00:12:57 +01:00
nukeykt
5b50236d18
Fix movement issues when emulating old engine code
2019-11-22 00:10:35 +01:00
nukeykt
bef08f4442
Fix getflor/ceilingofslope_old
2019-11-22 00:10:31 +01:00
nukeykt
6b6ecaf0fa
Fix silly typo in cansee
2019-11-22 00:10:30 +01:00
nukeykt
708483ca78
wip
2019-11-21 22:59:46 +01:00
nukeykt
50349a6b3d
wip
...
# Conflicts:
# platform/Windows/exhumed.vcxproj
# platform/Windows/exhumed.vcxproj.filters
# source/build/include/build.h
# source/build/src/palette.cpp
2019-11-21 22:59:33 +01:00
Christoph Oelckers
5f9b57519a
- hooked up the menu code so that it can receive events.
...
Nothing pretty yet but a start is made.
2019-11-21 22:31:46 +01:00
Christoph Oelckers
2740913c60
- added a redirection hack for rotatesprite so that it can be transitionally used in the 2D drawer.
2019-11-21 19:30:27 +01:00
Christoph Oelckers
81ddf22d5d
- added ZDoom's menu system as a base to build a new menu on.
...
# Conflicts:
# source/CMakeLists.txt
# source/build/src/engine.cpp
2019-11-21 18:03:09 +01:00
Christoph Oelckers
caa450dcb9
- debugprintf
2019-11-20 20:07:33 +01:00
Christoph Oelckers
6d40c9202c
- deleted a batch of code from engine.cpp which is only needed for the assembly drawers.
2019-11-20 19:33:36 +01:00
Christoph Oelckers
022c074ece
- fixed brightmaps again - hopefully for real this time.
...
The lighting model being used here is not really good for implementing render effect.
2019-11-11 23:54:09 +01:00
Christoph Oelckers
79561ace09
- use the precalculated or script-specified fade colors, if present.
2019-11-10 21:11:17 +01:00
Christoph Oelckers
21ac5e87b5
- added blend table translucency estimation instead of using a lame default.
...
- draw fullscreen blends below the console.
- moved all mouse event processing out of the SDL backend to D_PostEvent.
- removed all remaining code for dealing with mouse buttons directly.
2019-11-10 15:15:14 +01:00
Christoph Oelckers
a1a9770b44
- reworked the FPS display to use ZDoom's fstat class to get rid of the microscopic font it used.
...
- changed time display for rendering to exclude VSync and playsim times to get more meaningful information.
2019-11-10 11:42:25 +01:00
Christoph Oelckers
cae710bd59
- fixed alpha threshold.
...
Not only is this a deprecated feature - it also does not work right when complex lighting is at play, it must be done in the shader to get proper results.
2019-11-10 10:01:31 +01:00
Christoph Oelckers
7e70c217fe
- fixed console event processing and added a texture memory calculator.
2019-11-09 23:58:26 +01:00
Christoph Oelckers
2997bb6292
- the keybinding menu is finally working.
...
Obviously the existing menu implementation from Duke Nukem needs to be tossed out at some point, but at least the functionality is there again.
2019-11-09 22:22:51 +01:00
Christoph Oelckers
299f596afc
- Changed EDuke menu to receive all settings storage locations as CVARs.
...
With this out of the way the only part that needs a real replacement immediately is the keybinds menu.
2019-11-09 19:15:03 +01:00
Christoph Oelckers
0f74a5c3a4
- make the ImGui popup close on request.
2019-11-09 14:05:52 +01:00
Christoph Oelckers
fd4680c347
Merge commit '3061e3860cd212893e7d08a09223d4e9ad78b204' into Dear_ImGui
2019-11-09 13:42:59 +01:00
Christoph Oelckers
9aa275f996
- got rid of some editor-only code and the entire buildvfs header
...
Nearly all file write access now uses the FileWriter class, which is UTF-8-safe on all platforms - unlike stdio.
2019-11-08 02:02:54 +01:00
Christoph Oelckers
2d46827ecc
font
...
- Dear ImGUI test.
2019-11-07 20:32:49 +01:00
Christoph Oelckers
e4735fdff1
- dead code removal.
2019-11-07 00:49:19 +01:00
Christoph Oelckers
b6a3a60251
- console output is functional.
2019-11-06 23:40:10 +01:00
Christoph Oelckers
341ca9dd3a
- removed the EDuke revision data and replaced it with Demolition's own.
2019-11-05 20:48:34 +01:00
Christoph Oelckers
3a0b8364f7
- removed the OSD entirely.
2019-11-05 20:31:30 +01:00
Christoph Oelckers
8321bc6208
- removed most of the old OSD's hooks.
2019-11-05 20:25:57 +01:00
Christoph Oelckers
c46b22e52e
- more cleanup of obsolete OSD code.
2019-11-05 20:16:53 +01:00
Christoph Oelckers
a4483f131d
- Printf related cleanup.
2019-11-05 20:07:16 +01:00
Christoph Oelckers
d943fe036d
- added the ZDoom console and made all needed changes to get it compiled.
2019-11-05 19:57:48 +01:00
Christoph Oelckers
ffa16b2a53
- removed all command related code from the OSD.
...
None of this was used anymore.
2019-11-05 00:48:27 +01:00
Christoph Oelckers
5b67d653ed
- removed the bind command set from the osdcmd files to make sure that they don't get called anympre. All input should be routed through the new console code now.
...
# Conflicts:
# source/blood/src/osdcmd.cpp
# source/build/src/osd.cpp
# source/common/console/c_cmdline.h
# source/common/console/c_dispatch.cpp
# source/common/console/c_dispatch.h
# source/duke3d/src/osdcmds.cpp
# source/rr/src/osdcmds.cpp
2019-11-05 00:22:42 +01:00
Christoph Oelckers
44f81ebd56
- let OSD_Dispatch forward everything to the ZDoom-based command dispatcher.
...
Essentially making the OSD a dumb terminal. :P
2019-11-05 00:12:20 +01:00
Christoph Oelckers
bbf0a73471
- input works again.
2019-11-04 20:29:07 +01:00
Christoph Oelckers
1ee4efebb0
- fixed compilation.
2019-11-04 17:58:18 +01:00
Christoph Oelckers
e7f4433df6
- consolidation of mouse code and obsolete code removal
2019-11-04 02:07:59 +01:00
Christoph Oelckers
0b6db7eede
- cleanup of baselayer.cpp
2019-11-04 01:18:38 +01:00
Christoph Oelckers
4bf6c306ab
- added handling for cleariung mouse wheel events
2019-11-04 01:07:34 +01:00
Christoph Oelckers
29b7e1cf79
- moved all mouse button handling to the input state
...
Yet again an unbelievable piece of code working around how input works on modern systems to keep the old 90's code alive.
2019-11-04 01:01:54 +01:00
Christoph Oelckers
b4f91de7d3
- major refactoring on the input code.
...
* moved the ASCII conversion hackery in SDLayer to a subfunction because this made things just messy.
* integrated the keyboard callback's functionality directly into inputState for consolidation purposes. This was yet another independent layer in the keyboard management.
* hook up D_PostEvent as the central place to dispatch keyboard input. This is now the only function that is getting called from the backend and a major prerequiside for swapping out the backend for GZDoom's.
Todo: Route mouse input through that, too.
2019-11-04 00:55:49 +01:00
Christoph Oelckers
b747df60ee
- moved all keyboard related code into the InputState class, so that looking for this stuff is easier.
...
Sadly there's 1ß00 lines of code using this...
2019-11-04 00:53:55 +01:00
Christoph Oelckers
01d5d51f13
- pass key events to the event queue.
2019-11-03 22:46:01 +01:00
Christoph Oelckers
eb049abc3a
- it compiles again (safety commit)
2019-11-03 20:24:50 +01:00
Christoph Oelckers
b179767d4a
- do not use the command line but the module filename to create the progdir path.
...
argv[0] is not guaranteed to contain anything usable and in cmd.exe it doesn't.
2019-11-03 13:39:42 +01:00
Christoph Oelckers
250fa0b847
- consolidation of exit and quit CCMDs.
2019-11-03 13:31:03 +01:00
Christoph Oelckers
e24b1e8903
- replaced all uses of xxhash with SuperFastHash.
...
That's one more third party dependency down.
Not only are two hashing algorithms redundant, there was also a large size discrepancy: SuperFastHash is 3 kb of source code while xxhash is 120kb and generally extremely awful code.
It was easy to make a choice here. None of the use cases require this kind of performance tweaking, the longest hashed block of data is a 768 byte palette.
2019-11-02 22:52:13 +01:00
Christoph Oelckers
7853a9db6c
- do not use EDuke32's savegame identifiers.
...
The engine may be incopatible already and the format will certainly change in the future.
2019-11-02 22:22:57 +01:00
Christoph Oelckers
3530c52264
- no need to have 2 CRC32 implementations.
...
Just let Bcrc32 point to zlib instead of having its own implementation.
2019-11-02 22:10:53 +01:00
Christoph Oelckers
768a75b712
- fixed video startup.
...
Make sure that SDL is initialized as the first thing and that the validmodecnt variable does not get cleared
2019-11-02 17:26:40 +01:00
Christoph Oelckers
e4ecc5d8df
- some reshuffling on OSD code.
...
* moved the binding commands to osd.cpp. They were in the global namespace already and this way everything to be tossed out is in the same place when the time comes.
* removed support for the OSDs native CVARs. The only ones left were some internal ones I won't need until this code can be replaced.
* same for the custpmization code the games added. Duke Nukem was the only one anyway to have a decent font for it.
2019-11-02 14:25:35 +01:00
Christoph Oelckers
8fb54b51c3
- rewrote the screenshot code to use m_png as its backend.
...
Mainly to finally get rid of kplib. There's really no use to keep such code around if alternatives are already present.
2019-11-02 12:59:59 +01:00
Christoph Oelckers
1d7bfe14dc
- removed kplib's compression code.
...
Its only use in savegames has already been disabled in favor of a format restructuring.
2019-11-02 11:29:23 +01:00
Christoph Oelckers
fca3c2f5b5
- removed the directory scan code from compat.cpp.
...
It is only used by the user map menus which I had to disable already and on top of that is blissfully incapable of dealing with Unicode.
2019-11-02 10:39:31 +01:00
Christoph Oelckers
c54ae1be83
- removed the remaining parts of cache1d. The only thing left is the dummy cacheAllocateBlock function that needs to stick around until a working cache is present.
...
- disabled the user maps menu because it is hopelessly dependent on functionality that cannot be fixed. Better wait until the menu refactor to do it right - it'd be a waste of time fixing the current menus.
2019-11-02 01:30:21 +01:00
Christoph Oelckers
1149b4f4aa
- various fixes and improvements related to file location management:
...
* saving of demos and savegames no longer mindlessly writes to the mod directory. All such access is now being rerouted through the special paths interface so that the game data can reside in write protected locations.
* refactored all occurences of klistpath except fnlist_getnames.
* do not allow CON scripts to write to arbitrary files. This is a massive exploit and can be used to cause real damage if someone knows how to play this thing - it's far easier than people may think! It will now write any such data to a special section in the main config which is safe and cannot be manipulated to write to random locations on the hard drive.
2019-11-02 00:38:30 +01:00
Christoph Oelckers
cfca8060ba
- gutted cache1d. The old file system is gone, excepr for klistpath, which still gets used in a few places.
...
- consolidated the 3 identical S_OpenAudio implementations. The replacement code is disabled for the time being because it needs a rewrite. The replacement logic is uses is a bit too volatile.
- removed the old GRP scan code.
2019-11-01 22:17:15 +01:00
Christoph Oelckers
2d7c0e26d2
- cleanup of the old file system initialization.
...
The real fun part is yet to come, i.e. removing the remaining dependencies on the old file system code.
2019-11-01 19:25:42 +01:00
Christoph Oelckers
39bfd64fe9
- a bit more cleanup in app_init.
2019-11-01 08:24:10 +01:00
Christoph Oelckers
6c5d9c3507
- moved the net init code out of the game frontends to avoid having to call atexit for their deinit function.
...
When doing this during startup it can be done by regular cleanup measures.
This also moves two larger chunks of networking code out of game.cpp.
Nevertheless, the fact that enet is a very dirty library which directly depends on Windows types is a big problem because it bleeds Windows definitions everywhere thanks to poor abstraction in all relevant layers.
2019-11-01 07:26:49 +01:00
Christoph Oelckers
67acad3984
- startup cleanup.
2019-11-01 00:32:56 +01:00
Christoph Oelckers
57f879fa8b
- moved the startup dialog out of the game front ends, now that there is a global cross-game list of playable configurations.
2019-10-31 23:25:21 +01:00
Christoph Oelckers
2a7beeff69
- cleaned out some chunks of unused or useless code, most importantly the Build cache which was only used by the sound code for permanently loading the data into memory.
2019-10-30 21:51:04 +01:00
Christoph Oelckers
5b1036093c
- fixed startup.
2019-10-30 19:55:03 +01:00
hendricks266
797c79d4a5
Move registry reading to engine
...
git-svn-id: https://svn.eduke32.com/eduke32@8268 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/duke3d/src/common.cpp
2019-10-30 18:27:40 +01:00
hendricks266
9b21fe0c28
Move VDF parsing to engine
...
git-svn-id: https://svn.eduke32.com/eduke32@8267 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/common.h
# source/duke3d/src/common.cpp
2019-10-30 18:15:00 +01:00
Christoph Oelckers
ac87665972
- use std::filesystem for directory traversal.
...
So far implemented for scanning search paths
2019-10-29 19:53:46 +01:00
Christoph Oelckers
762f174743
- moved the command line parser out of the game frontends.
...
Some part are not done yet, and the file system data is currently ignored - there's no way to properly set this up with the file system code Build came with.
2019-10-28 22:19:50 +01:00
Christoph Oelckers
e7f75cbf4d
WIP
2019-10-28 01:12:31 +01:00
Christoph Oelckers
c0d5ca8ab8
- Config work almost done.
...
The only thing still referencing the old config file is Shadow Warrior's config read function.
2019-10-27 13:40:24 +01:00
Christoph Oelckers
038c1ba4ba
- more CVARs.
2019-10-27 09:53:09 +01:00
Christoph Oelckers
4b5ec2aabb
- transitioned the combat macros to the new config and made them independent for all games, so that everything can use the original text. (But considering that they are a multiplayer feature I'm not sure how much that is worth.)
...
- sort the config output alphabetically.
- do not use [=] as key names for the bindings.
2019-10-27 08:14:58 +01:00
Christoph Oelckers
db1a9a9363
- the config finally get saved.
...
Still with a few errors, though.
2019-10-26 20:47:37 +02:00
ny00123
731671c401
Make the secondary backslash key of the standard 102-keys PC keyboard layout, also known as a "less than" key, usable. This is the key generally sitting in-between the left shift and Z keys, for the 102-keys QWERTY layout.
...
git-svn-id: https://svn.eduke32.com/eduke32@8265 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-26 19:29:13 +02:00
Christoph Oelckers
f53c9f6947
- save stuff to the new config.
2019-10-26 19:24:46 +02:00
Christoph Oelckers
cd47582632
- disabled the settings.cfg console script so that the newly added config code can take over its duties.
...
- write the console log to the folder returned by M_GetDocumentsPath and not to the root game directory.
- removed G_ExtPreInit because it has become redundant. The search path setup will have to be redone anyway.
2019-10-26 13:41:42 +02:00
Christoph Oelckers
1e0d49f947
- game starts again.
2019-10-26 13:16:32 +02:00
Christoph Oelckers
1c29169492
-perform a proper exit, i.e. make sure that the deinit code can run, by throwing a special exception and actually catching it in the main function.
2019-10-26 10:30:08 +02:00
Christoph Oelckers
966751b7e8
- added GZDoom's font code and some dependencies.
2019-10-24 01:20:58 +02:00
Christoph Oelckers
20df360778
- converted the Polymost CVARs.
2019-10-23 21:11:37 +02:00
Christoph Oelckers
21d90fd08b
- fixed compilation.
2019-10-23 18:36:48 +02:00
Christoph Oelckers
63f020996e
- a few more CVARs
2019-10-23 01:30:43 +02:00
Christoph Oelckers
e5aa6c5df0
- refactored the HUD scaling into something manageable.
...
Blood was fine, albeit with an inverted scale, but the EDuke implementation was something very special - and not in a good way, using 4 CVARs to store the scaling state instead of one.
2019-10-22 23:31:46 +02:00
Christoph Oelckers
f7b9fb92c1
- added back ZDoom's CVAR code and hooked into the OSD.
...
This has the distinct advantage, aside from much cleaner coding, that it can interoperate with the gameconfigfile class.
2019-10-21 22:39:26 +02:00
terminx
91dac5c73a
I swear, the amount of trivial differences between toolchain setups drives me up the wall sometimes
...
git-svn-id: https://svn.eduke32.com/eduke32@8247 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-21 19:37:14 +02:00
terminx
b2421887a1
Use stat() instead of fopen() to detect existing files when saving screenshots
...
git-svn-id: https://svn.eduke32.com/eduke32@8246 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-21 19:37:13 +02:00
Christoph Oelckers
72b87e5bd7
- fixed compilation.
2019-10-21 19:36:54 +02:00
Christoph Oelckers
8c7590e161
- refactored most of the remaining calls to kopen4load
2019-10-21 17:16:08 +02:00
Christoph Oelckers
0c4ffdea43
- do not use the cache for loading voxel data
...
This stuff is software rendering only so should be made optional anyway.
But aside from that it was the last non-sound data, being loaded into the cache.
With this gone the sound cache can be redone as a dedicated object and the atrocious cache1d implementation be tossed out.
2019-10-21 01:17:26 +02:00
Christoph Oelckers
5333f6adc1
- refactored a few more - simple stuff but lots of lines.
2019-10-21 00:13:17 +02:00
Christoph Oelckers
d3c2d8e96f
- refactored file access in the movie player.
2019-10-20 22:48:21 +02:00
Christoph Oelckers
449a5a4717
- refactoring of palette loader.
2019-10-20 22:26:53 +02:00
terminx
69a3f9e884
Band-aid fix for Duke3d E4L4 map "corruption"
...
The map isn't necessarily "corrupt", but it has a large water sector with half a dozen different SE7 teleporter sprites in it, of which all but one have destination SE7 sprites that are constantly moving while the matching SE7 in the large sector stays in place. When you teleport, the game code picks one. It doesn't always pick the one that matches.
Yeah, OK, it never picks the one that matches.
The area is a total clusterfuck.
git-svn-id: https://svn.eduke32.com/eduke32@8241 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 21:08:48 +02:00
Christoph Oelckers
2be5727137
- refactored all file reading in the savegame code to the FileReader interface.
...
In this case a different open function is used because this is normally files on the hard drive and not assets, so being able to have a different setup for finding them is important.
2019-10-20 21:04:55 +02:00
Christoph Oelckers
7cacb7203f
- refactored all file access in SW frontend to use the FileReader variant and added a few utilities to avoid opening handles.
...
Because use of the handle API needs to be eliminated before a functioning resource management can be plugged in here.
2019-10-20 20:08:17 +02:00
Christoph Oelckers
489170b12c
- fixed compilation again.
2019-10-20 10:52:38 +02:00
terminx
ba02bbaf67
Add #pragma once to debugbreak.h and remove it from separate inclusion in a couple of translation units as we're including it directly in compat.h now
...
git-svn-id: https://svn.eduke32.com/eduke32@8192 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/sdlayer.cpp
# source/duke3d/src/gamedef.cpp
2019-10-20 10:45:48 +02:00
terminx
d7f779eaec
Use EXIT_FAILURE and EXIT_SUCCESS from stdlib.h when calling exit()
...
git-svn-id: https://svn.eduke32.com/eduke32@8190 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
# source/build/src/polymost.cpp
# source/build/src/tiles.cpp
# source/duke3d/src/astub.cpp
2019-10-20 10:45:48 +02:00
Christoph Oelckers
2316957026
- made things compile again after updating enet. Also removed the redundant dumb and game_music_emu libraries which just got imported by accident when using other things from GZDoom.
...
Note: enet uses 'malloc' and 'free' as field names in a struct - this does not work with any compiler using some sort of heap instrumentation that #defines these names!
This had to be changed to allow MSVC debug builds to compile again.
2019-10-20 09:16:01 +02:00
terminx
63713002b3
Swap out our old deprecated version of ENet for a single-file header-based fork, including features like IPv6 support
...
git-svn-id: https://svn.eduke32.com/eduke32@8175 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# GNUmakefile
# libraries/enet/LICENSE
# libraries/enet/callbacks.c
# libraries/enet/compress.c
# libraries/enet/enet/callbacks.h
# libraries/enet/enet/enet.h
# libraries/enet/enet/list.h
# libraries/enet/enet/protocol.h
# libraries/enet/enet/time.h
# libraries/enet/enet/types.h
# libraries/enet/enet/unix.h
# libraries/enet/enet/utility.h
# libraries/enet/enet/win32.h
# libraries/enet/host.c
# libraries/enet/list.c
# libraries/enet/packet.c
# libraries/enet/peer.c
# libraries/enet/protocol.c
# libraries/enet/unix.c
# libraries/enet/win32.c
# platform/Windows/build.vcxproj
# platform/Windows/build.vcxproj.filters
# platform/Windows/eduke32.sln
# platform/Windows/eduke32.vcxproj
# source/duke3d/src/player.cpp
2019-10-20 08:43:36 +02:00
terminx
1667d4dd87
This is useless
...
git-svn-id: https://svn.eduke32.com/eduke32@8170 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 08:31:49 +02:00
terminx
8b43ed5777
Rename timerUpdate() and timerGetRate() to timerUpdateClock() and timerGetClockRate(), because they both only apply to totalclock
...
git-svn-id: https://svn.eduke32.com/eduke32@8169 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/timer.cpp
# source/build/src/winlayer.cpp
2019-10-20 08:31:26 +02:00
terminx
0270cc2df5
SDL_free() is not for pointers to SDL_RWops structures...
...
git-svn-id: https://svn.eduke32.com/eduke32@8151 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 08:16:02 +02:00
Christoph Oelckers
e5ddb28a2b
- renamed texcache.cpp and moved it to its proper place.
...
The old content no longer exists, this is entirely backend code now.
2019-10-20 08:04:54 +02:00
Christoph Oelckers
f29dd6c495
- include cleanup
2019-10-20 08:02:45 +02:00
terminx
70171ea341
Use timerGetHiTicks() instead of timerGetTicks() for timing in osdfunc_fileinfo()
...
git-svn-id: https://svn.eduke32.com/eduke32@8141 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 07:48:16 +02:00
terminx
4c4ffa80b4
Use tabledivide64() in timerUpdate()
...
git-svn-id: https://svn.eduke32.com/eduke32@8136 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 07:48:02 +02:00
Christoph Oelckers
85d377647a
- tweaked the fade ramp a bit.
...
For Duke Nukem and its direct offspring (Nam, WW2GI and Redneck Rampage) the ramp is not a linear fade from 0 to 1, it needs to be a little darker than that.
Unfortunately the proper factor needed here must be set manually, this cannot really be calculated from the lookup tables.
2019-10-20 01:14:48 +02:00
Christoph Oelckers
abaa1d19ee
- fixed some bad setup in SetTextureInternal.
2019-10-20 00:31:27 +02:00
Christoph Oelckers
bb4a19cf3a
- added a few more texture formats to FHardwareTexture.
...
For brightmaps we do not need full RGBA8 data with mipmaps - RGBA2 without mipmaps is fully sufficient here and will save a lot of video memory.
2019-10-19 23:14:36 +02:00
Christoph Oelckers
7d2f61db2e
- converted all boolean parameters of the shader into a single flag word.
...
- discarded the idea of transient palettes because the maintenance here stood in no relation to the savingd.
2019-10-19 22:46:37 +02:00
Christoph Oelckers
6f4ca480b5
- sky clamping may only be done in Blood for now.
...
This needs a better solution.
2019-10-19 20:25:58 +02:00
Christoph Oelckers
5fa879d5d1
- use texture clamping for skies, because these textures do not always wrap.
2019-10-19 19:29:59 +02:00
Christoph Oelckers
d4fc13fba5
- cleaned up the sampler manager's content names and added the missing types to allow easier switching between indexed (no filtering) and non-indexed (filter as per user option).
2019-10-19 19:10:09 +02:00
Christoph Oelckers
2152780806
- added some hackery to render voxels properly again.
...
Something about their data preparation is not right, their depth looks totally off and causes fog to become to dense.
One more reason to reconstruct the renderer in a sane fashion.
2019-10-19 18:14:13 +02:00
Christoph Oelckers
cd7bbe35a8
- removed all legacy fog code.
2019-10-19 15:52:46 +02:00
Christoph Oelckers
2ef89abe08
- reworked palookupinfo output.
2019-10-19 13:27:09 +02:00
Christoph Oelckers
4a9f0248d7
- removed the texture ID cache.
...
Although this initially helped, it was only because it partially covered up the issues from the real problem which was using the sampler properties of the texture offsets.
With that one fixed this cache became pointless.
2019-10-19 10:40:47 +02:00
Christoph Oelckers
bc986b8054
- make the engine consistently use BGRA data - the internal palettes were still RGBA, which caused problems down the line.
...
- increased cache size to 200 MB (Note: The cache really needs to be replaced with something better that can adapt better to a system's RAM size.)
2019-10-19 10:22:02 +02:00
Christoph Oelckers
c6f973d05f
- more palookup information dumping
2019-10-19 00:25:42 +02:00
Christoph Oelckers
00630f728f
- fixed voxel rendering.
...
Still need to move the voxel textures into the texture manager but at least they render properly again.
2019-10-18 22:25:47 +02:00
Christoph Oelckers
00d59459a1
- fixed creation of true color textures and disabled fog in palette mode.
...
The fog should go away entirely but in palette mode it made everything too dark.
2019-10-18 22:09:19 +02:00
Christoph Oelckers
2ed722f329
- do not draw invalid textures.
2019-10-18 19:29:35 +02:00
Christoph Oelckers
dab7c43f7c
- fixed all compiler errors.
...
It mostly works again, but still has a few glitches.
2019-10-18 19:06:57 +02:00
Christoph Oelckers
23265ad213
- rework of texture management for models
...
Voxels yet to do.
This also removes the redundant texture matrix for the glow texture.
2019-10-18 14:04:32 +02:00
Christoph Oelckers
542994cc20
- added lookup for brightmap palettes.
2019-10-18 12:11:53 +02:00
Christoph Oelckers
530a9944f7
- texture loader redone but not tested yet
...
Models are currently non-functional and need to reroute their texture handling to the global texture manager instead of handling everything themselves.
Voxels also need a bit of work to make their texture management more automated.
2019-10-18 11:37:07 +02:00
Christoph Oelckers
c6514949e3
- texture creation WIP.
2019-10-18 00:20:27 +02:00
Christoph Oelckers
3da49ad20a
- safety commit: all relevant code for the texturing system has been moved to texcache.cpp.
2019-10-17 21:44:34 +02:00
Christoph Oelckers
bef8c9ae76
- hictinting cleanup.
...
This needs to be moved into the backend, and partially into the shader. So far this only removes the code from the main rendering logic, the final implementation is not done yet.
It had to go because it required the main rendering code to look deep into the texture data which would be a major blocker for refactoring.
2019-10-17 20:29:58 +02:00
Christoph Oelckers
304a906aa7
copy code
2019-10-17 14:21:51 +02:00
Christoph Oelckers
1426ebec20
Moved hightile replacement data into the textures
...
Not tested yet!
2019-10-17 12:45:25 +02:00
Christoph Oelckers
452cfe385e
- Blood's voxel loader override has somehow gotten lost.
2019-10-16 23:57:29 +02:00
Christoph Oelckers
4cd2c024fc
- fixed crash in texture deinit code and ensure that everything gets deleted.
2019-10-16 21:16:40 +02:00
Christoph Oelckers
64e116a4b1
- use special classes with [] operators to redirect the frequently used global arrays to the newly implemented texture manager.
...
This allows to use the contained storage without changing all the code.
2019-10-16 20:39:59 +02:00
Christoph Oelckers
4dc69620b7
- cleanup
2019-10-15 23:56:29 +02:00
Christoph Oelckers
57c221644a
- transitioned all texture options of the def file
2019-10-15 23:38:01 +02:00
Christoph Oelckers
bb78db71bc
- tileDelete / tileSetDummy
2019-10-15 23:29:47 +02:00
Christoph Oelckers
9a52e8039c
- rerouted tileCreate and tileSetExternal calls.
2019-10-15 23:18:52 +02:00
Christoph Oelckers
c3bc690e98
- more updating and bug in UpdatePicSize fixed.
2019-10-15 20:02:37 +02:00
Christoph Oelckers
0e165e40a3
- first batch of adjustments to the new tile management.
...
- consolidated Polymost precaching and removed precaching for static tiles because they now are always loaded.
- removed cache configurability. On modern systems this is relatively pointless - allocating 50 or 100 MB is a non-issue - and the cache is due for replacement anyway.
2019-10-15 00:54:14 +02:00
Christoph Oelckers
4b6f28e7c8
- hooked up the writable texture types.
2019-10-15 00:19:31 +02:00
Christoph Oelckers
a6ba81939a
- reworked texture management, not yet active.
2019-10-12 22:49:46 +02:00
Christoph Oelckers
fbc22e0125
- sanitized walock.
...
Sorry, but having a globally writable pointer to every texture is just insane and makes any functional management impossible.
This is merely a preparation for adding a real texture manager. That cannot be done if any code can write over the data at will. For that, it now has to make the texture writable first or create a writable empty texture.
2019-10-11 23:31:59 +02:00
Christoph Oelckers
3621aae3f0
- rerouted all write accesses to tilesiz and picsiz through a function interface.
...
These will have to do some texture management bookkeeping so directly changing the values is problematic.
This required changing the parameter interface in polymost.cpp because a few places hacked around with the global state to pass parameters to subfunctions.
2019-10-11 21:04:31 +02:00
Christoph Oelckers
14b21bab7a
- merged playing_blood and bloodhack variables because they did the same thing.
...
The only difference was that bloodhack came from NBlood and playing_blood was added for unhandled differences between the backends of EDuke32 and NBlood.
2019-10-11 00:34:27 +02:00
Christoph Oelckers
d9d721bff6
- removed old sky code.
...
r_flatsky is now the only option.
2019-10-11 00:15:20 +02:00
Christoph Oelckers
79ef3413dc
- removed a large block of fudging code for NPOT textures on non-supporting hardware.
...
We do not care about non-supporting hardware, so off this goes.
2019-10-10 23:38:06 +02:00
Christoph Oelckers
4d83a3c2a5
- moved all code related to texture creation to texache.cpp
...
Also go directly to the source when trying to determine translucency of a texture.
2019-10-10 23:29:13 +02:00
Christoph Oelckers
c588cd499a
- let GLInstance::Draw set the palette indexing mode.
...
This can be trivially decided based on the texture type, so there's really no need to let the higher level code deal with this.
2019-10-10 23:14:57 +02:00
Christoph Oelckers
36ca38258e
- hotfixed the transparency checkers to not create textures from regular tiles.
...
This caused some broken textures, apparently this gets called when not everything has been set up.
The hightile case will also have to be fixed.
2019-10-10 22:23:20 +02:00
Christoph Oelckers
fbc7e626e9
- removed the fullbright render pass, because this is better set up as a shader option.
...
- also removed the legacy fog modes because their implementation did not mix well with the texture system - they are also not really useful to begin with.
The last fog mode will most likely also be removed once true color shading is working but that one is less of an issue.
2019-10-10 21:05:10 +02:00
Christoph Oelckers
84b10bdb74
- cleaned up videoUpdatePalette function and removed the hardware texture invalidation from it.
...
This makes no sense because it'd toss out all the level textures that may still be needed for what probably is only a temporary palette change (like going underwater)
2019-10-10 20:28:41 +02:00
Christoph Oelckers
1407c18f8b
- cleaned out some remains of the non-indexed render path.
...
All of this will be redone in the backend.
2019-10-10 19:40:33 +02:00
Christoph Oelckers
46ffea94a4
- cleanup of gloadtile_art.
2019-10-10 19:30:05 +02:00
Christoph Oelckers
34b7759b7e
- removed the non-indexed parts of gloadtile_art.
...
This won't be needed anymore.
2019-10-10 19:25:03 +02:00
Christoph Oelckers
c428e367a0
- hotfix for texture filter settings.
...
This needs to be done differently later to choose the proper clamp setting.
2019-10-10 19:16:27 +02:00
Christoph Oelckers
1fee7a5f01
- cleanup of texture creation code.
...
There were several mostly pointless options complicating all of this.
2019-10-10 00:07:45 +02:00
Christoph Oelckers
eca099681a
- hooked up the Shadow Warrior frontend.
...
It doesn't really work but this way it always gets compiled and linked so that it receives the changes to the backend code.
2019-10-09 20:14:04 +02:00
Christoph Oelckers
ef0fd57367
- small bits of cleanup.
2019-10-08 22:23:48 +02:00
Christoph Oelckers
93f9303c62
- minor reorganization of tiles.
2019-10-08 19:46:39 +02:00
Christoph Oelckers
b78b53d75b
- deleted unused function.
2019-10-08 18:48:14 +02:00
Christoph Oelckers
50e6d364be
- prevent crash on invalid textures.
2019-10-08 01:37:24 +02:00
Christoph Oelckers
7131fe6c6e
- use separate textures for the palswap shade tables.
...
This creates a lot less mess than one big texture and also allows easier use of texelFetch in the server which is preferable for data textures.
2019-10-08 01:08:08 +02:00
Christoph Oelckers
82f6e2edb0
- fixed creation of paletted textures and added some palette debugging aids.
2019-10-07 23:32:38 +02:00
Christoph Oelckers
c050a0c4c8
- changed palswap management to handle the size of full lookup tables.
2019-10-07 00:34:15 +02:00
Christoph Oelckers
7713860b63
wip.
2019-10-07 00:14:16 +02:00
Christoph Oelckers
734d8b7d1e
- moved the palette management into the backend.
2019-10-06 21:15:53 +02:00
Christoph Oelckers
b1aaafb973
- abstracted uploadpalswap out of the game code.
...
This needs special setup on the renderer side that needs to be done in a more controlled fashion.
2019-10-06 19:47:31 +02:00
Christoph Oelckers
ef2de97077
- the harmless changes of the failed refactoring of the shader.
2019-10-06 19:32:35 +02:00
Christoph Oelckers
71d132b470
- use explicitly declared matrix uniforms.
...
The builtin matrices are no longer available in modern GLSL, preventing an upgrade of the shader.
Also perform better reporting of shader compilation errors.
2019-10-06 10:19:51 +02:00
Christoph Oelckers
d1a7c4225d
- added a texture class for ART-format hightiles.
...
This allows to treat them like all other image formats.
2019-10-05 23:44:28 +02:00
Christoph Oelckers
0dfe99356d
- stripped most of the image processing code from kplib, because it's not needed anymore - and also not salvageable for any refactoring.
2019-10-05 22:32:32 +02:00
Christoph Oelckers
93ad83b380
- use GZDoom's texture backend to read hightile textures. (Hightile tinting code moved to the shader but isn't active yet.
...
- remove all code for faking gamma correction through palette manipulated images.
2019-10-05 21:59:03 +02:00
Christoph Oelckers
bedfc262c4
- added a FileReader wrapper for kopen4load.
...
Needed when transitioning the hightile loader to GZDoom's texture loader.
2019-10-05 17:30:23 +02:00
Christoph Oelckers
f99492d6d5
- removed OpenGL headers from non-backend files.
2019-10-05 13:57:26 +02:00
Christoph Oelckers
3c193bb243
- moved the animvpx shader to the backend code.
...
This removes the final access to OpenGL from the rest of the source, with the exception of the glFinish call in the swap code.
2019-10-05 13:38:02 +02:00
Christoph Oelckers
b83349fe6b
- moved the surface shader to the backend and the shader source to the resource file.
2019-10-05 13:09:15 +02:00
Christoph Oelckers
644b07b718
- minor fixes.
2019-10-05 12:39:50 +02:00
Christoph Oelckers
bd4e4834e3
- moved the main shader and its entire uniform maintenance into the backend.
2019-10-05 12:28:08 +02:00
Christoph Oelckers
d058084c10
- added an engine resource file.
...
Currently this only contains the main Polymost shaders and the resources from nblood.pk3.
The latter cannot be used yet because the Build resource management system is too stubborn to add the newly added file without some changes.
It's better to refactor the entire system instead.
2019-10-04 23:29:00 +02:00
Christoph Oelckers
ae1e090716
- all non-shader related GL calls are gone from the main code base.
2019-10-04 21:13:04 +02:00
Christoph Oelckers
f992aebf33
- two more
2019-10-04 19:17:55 +02:00
Christoph Oelckers
cb80e877ff
- refactored fog and depth func setting into GLInterface.
2019-10-04 18:44:16 +02:00
Christoph Oelckers
204abab724
glColor calls refactored.
2019-10-04 18:25:18 +02:00
Christoph Oelckers
96c0c3197c
- abstracted away more OpenGL calls, in particular all matrix access.
2019-10-04 18:12:03 +02:00
Christoph Oelckers
1ff8ea6a19
- added matrix class for moving the GL matrix manipulation out of the engine code.
2019-10-04 01:41:57 +02:00
Christoph Oelckers
471f720d95
- consolidated console clear functions.
2019-10-04 01:25:10 +02:00
Christoph Oelckers
ebbe1803bb
- made the game selector configurable (It's still Windows only...)
2019-10-04 00:26:13 +02:00
nukeykt
61b4fae6e0
Simplify voxel rotation handling
...
# Conflicts:
# source/build/include/mdsprite.h
2019-09-30 20:31:09 +02:00
nukeykt
c815e1c246
Minor sorting fix
2019-09-25 23:15:45 +02:00
nukeykt
9deb486626
Second attempt to fix polymost sprite sorting issue
2019-09-25 23:15:44 +02:00
Christoph Oelckers
d12563f644
- got rid of klzw and the legacy demo code along with it.
2019-09-25 23:12:29 +02:00
Christoph Oelckers
0261fef4a8
- removed some unused files.
2019-09-25 23:00:10 +02:00
Christoph Oelckers
18b1ca287e
- moved the platform specific files out of the Build folder, mainly to get them out of the way.
2019-09-25 22:43:06 +02:00
Christoph Oelckers
cd920299d0
- moved winbits.cpp to the platform folder and cleaned out unused parts.
2019-09-25 22:38:47 +02:00
Christoph Oelckers
ad4527c8be
- initialize the GL backend in the proper place.
...
As long as there are still video mode switches this needs to be in the video mode switching function.
2019-09-23 23:33:59 +02:00
Christoph Oelckers
a5441061e9
- always save the entire config.
...
It is a major hassle if values cannot be looked up and then change when switching between branches etc.
2019-09-23 21:27:23 +02:00
Christoph Oelckers
330c80246e
- added ZDoom's FArgs class for easier command line checking.
2019-09-23 19:29:25 +02:00
Christoph Oelckers
37907ddd06
- startup hacks.
...
Unfortunately nothing of this can be fixed before the resource management has been refactored from the ground up. Sp for now this ugliness needs to suffice.
2019-09-23 18:17:36 +02:00
nukeykt
895fb719d9
blooddemohack -> enginecompatibility_mode
2019-09-23 01:30:07 +02:00
Christoph Oelckers
527d99008b
- fixed the setup.
...
Renamed all elements still referring to zdoom.
removed the frontend specific resource data.
fixed startup dialog to accept ANSI date despite building as Unicode. This needed a bit of hackery because the macros in windowsx.h are not character set sensitive.
2019-09-23 01:28:18 +02:00
Christoph Oelckers
2cbe211e7c
- transitioned project to CMake and deleted most of the old build system.
...
The EDuke32 and RedNukem frontends are working, Blood isn't yet.
Notes:
many of the CMake variables and its output still refer to zdoom. Before changing that I wanted to make sure to be able to commit something that works.
support code for Windows XP has been entirely removed. On Windows this will only target Vista and up.
the crc32.h header had to be renamed to deconflict from zlib.
several Windows API calls were changed to call the A-versions directly. Weirdly enough there were places that defined their parameters as T types but in a non-working way.
removed some remaining editor files and support for the native software rendering only Windows backend.
in a few simple cases, replaced 'char' with 'uint8_t'. The code as-is depends on chars being unsigned which is non-portable. This needs to be carefully reviewed.
2019-09-22 23:15:46 +02:00
Christoph Oelckers
2dc051f7cf
- put RedNukem game frontend into a namespace.
2019-09-22 00:10:48 +02:00
Christoph Oelckers
401a645ea1
- added a temorary requester to allow choosing the game until the code has been sufficiently refactored to do this in the startup dialog.
2019-09-21 23:45:57 +02:00
Christoph Oelckers
55a879fcc0
- put EDuke frontend source into a namespace.
...
This commit does not work yet!
2019-09-21 22:53:00 +02:00
Christoph Oelckers
5050716bc0
- removed most extern "C" from the rest of the code base.
2019-09-21 20:14:34 +02:00
Christoph Oelckers
998ac01157
- manual merge of all NBlood changes that couldn't get cherry picked.
2019-09-21 13:02:17 +02:00
nukeykt
81f78c24b7
Implement rotate parameter for voxel definitions
...
# Conflicts:
# source/build/include/build.h
# source/build/include/mdsprite.h
# source/build/src/defs.cpp
2019-09-21 11:43:50 +02:00
nukeykt
90b005a44a
Fix mouse centering in menu
2019-09-21 11:40:44 +02:00
nukeykt
78a3240c3e
Fix flat sky y offset
2019-09-21 10:51:47 +02:00
nukeykt
d3994b0801
Revise polymost HOM issue workaround in Duke's E1L1. Add code to remove very thin spans.
...
This commit does not gain noticeable rendering performance, but at least should prevent weird polygon leakages
2019-09-21 10:31:34 +02:00
nukeykt
935084ae52
More hacks to emulate old clipping
...
# Conflicts:
# source/build/src/clip.cpp
2019-09-21 10:28:10 +02:00
nukeykt
af2106c9d0
Finally Duke's DEMO1 is sync
2019-09-21 10:27:59 +02:00
nukeykt
05749679a8
I think this is enough
2019-09-21 10:27:59 +02:00
nukeykt
1aab7601df
Add old lintersect implementation
2019-09-21 10:27:58 +02:00
nukeykt
5c099bea05
Start adding old collision code for demo compatibility.
...
DEMO2 and DEMO3 of Duke3D are sync again
# Conflicts:
# source/build/src/clip.cpp
2019-09-21 10:27:58 +02:00
nukeykt
e6ffc816c9
Fix blood crash
...
# Conflicts:
# source/build/src/engine.cpp
2019-09-21 10:24:13 +02:00
nukeykt
a90711f328
Add extra field to tilefromtexture
...
# Conflicts:
# source/build/src/defs.cpp
2019-09-21 10:20:43 +02:00
nukeykt
14401ca694
Fix TROR NULL texture
2019-09-21 10:11:03 +02:00
nukeykt
107a630883
Add TROR rendering
...
# Conflicts:
# source/blood/src/mapedit.cpp
# source/build/include/editor.h
# source/build/include/polymer.h
# source/build/src/build.cpp
# source/build/src/polymer.cpp
2019-09-21 10:11:02 +02:00
nukeykt
858da4351c
Semi-working map save
2019-09-21 10:08:04 +02:00
nukeykt
140174d1ee
Minor tweaks
...
# Conflicts:
# source/blood/src/m32common.cpp
# source/blood/src/mapedit.cpp
2019-09-21 10:08:04 +02:00
nukeykt
2867131c86
Add ability to load blood maps
...
# Conflicts:
# platform/Windows/nmapedit.vcxproj
# platform/Windows/nmapedit.vcxproj.filters
# source/blood/src/mapedit.cpp
# source/build/src/build.cpp
# source/build/src/engine.cpp
2019-09-21 10:06:57 +02:00
nukeykt
388bf2665f
Enable TROR code and rotated wall cstat bit for blood
2019-09-21 09:59:16 +02:00
terminx
ce1a479ace
Fix bugged height check in cliptestsector()
...
git-svn-id: https://svn.eduke32.com/eduke32@8118 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 23:25:39 +02:00
terminx
3e4f2de79a
Add yax_getzsofslope(), based on getzsofslope_player()
...
git-svn-id: https://svn.eduke32.com/eduke32@8109 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 23:23:17 +02:00
terminx
062207b2e9
Fix polymost_dorotatesprite() clipping
...
git-svn-id: https://svn.eduke32.com/eduke32@8108 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 23:23:17 +02:00
hendricks266
1bd690c8c2
Fix warning in clip.cpp
...
git-svn-id: https://svn.eduke32.com/eduke32@8092 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 23:20:09 +02:00
hendricks266
475743424f
Make sjson its own object
...
git-svn-id: https://svn.eduke32.com/eduke32@8091 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 23:19:58 +02:00
terminx
5708b36d26
Fix qradarang calculation
...
git-svn-id: https://svn.eduke32.com/eduke32@8088 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 23:18:47 +02:00
terminx
d0a3b86c77
Fix relative aligned floor/ceiling texture wiggling
...
Patch from Nuke.YKT.
git-svn-id: https://svn.eduke32.com/eduke32@8087 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 23:18:00 +02:00
terminx
aa8ce8d42a
Fix USE_OPENGL=0 builds
...
git-svn-id: https://svn.eduke32.com/eduke32@8082 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 23:17:57 +02:00
terminx
7849693aef
Bump BMAXPAGESIZE to 16384
...
x86 stuff will only ever return 4096, but 64-bit ARM supports 16K.
git-svn-id: https://svn.eduke32.com/eduke32@8077 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 23:17:21 +02:00
terminx
c17db80734
Fix npot sky rendering in Polymost
...
Patch from Nuke.YKT.
git-svn-id: https://svn.eduke32.com/eduke32@8076 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
2019-09-20 23:16:01 +02:00
Christoph Oelckers
d0a49c3278
- moved 4 more.
2019-09-20 23:12:07 +02:00
Christoph Oelckers
b34c48962a
- removed some unused files.
2019-09-20 22:55:44 +02:00
Christoph Oelckers
3b8b2b1fe0
- it compiles again.
2019-09-20 22:44:42 +02:00
Christoph Oelckers
be29d3a2df
- removed the remains of the polymer renderer.
...
This cannot be reused in its current form, maybe it can help later.
2019-09-20 22:37:24 +02:00
Christoph Oelckers
1b20e5d4da
- 3 more files moved out of 'build' folder.
...
# Conflicts:
# platform/Windows/build.vcxproj
2019-09-20 22:34:34 +02:00
Christoph Oelckers
0c6af775ad
- got rid of editor.h.
...
# Conflicts:
# source/build/include/editor.h
# source/build/src/2d.cpp
# source/build/src/softwarerenderer/engine_swr.cpp
2019-09-20 22:24:53 +02:00
Christoph Oelckers
46b4b6ffd4
- removed all editor related code from 2D.cpp.
...
# Conflicts:
# source/build/include/build.h
# source/build/src/2d.cpp
# source/build/src/softwarerenderer/engine_swr.cpp
2019-09-20 22:24:03 +02:00
Christoph Oelckers
a3b6485b5e
- removed some more inline assembly.
2019-09-20 22:21:43 +02:00
Christoph Oelckers
ce260526cb
- moved fix16 to thirdparty as well and removed the now unused assembly files.
...
# Conflicts:
# platform/Windows/build.vcxproj
2019-09-20 22:21:31 +02:00
Christoph Oelckers
f3d01e8244
- moved compression utilities to a 'thirdparty' folder to get them out of the way.
...
# Conflicts:
# platform/Windows/build.vcxproj
# platform/Windows/props/build_common.props
2019-09-20 22:20:53 +02:00
Christoph Oelckers
ba73268470
- removed GLES support and most related files.
...
My future plans do not include mobile support due tp poor support of modern APIs so this is essentially just baggage.
# Conflicts:
# source/build/src/2d.cpp
# source/build/src/dxtfilter.cpp
# source/build/src/mdsprite.cpp
# source/build/src/polymost.cpp
# source/build/src/sdlayer.cpp
# source/build/src/texcache.cpp
2019-09-20 22:16:21 +02:00
Christoph Oelckers
19bcfecc67
- get rid of the non-inlined assembly as well.
2019-09-20 22:11:01 +02:00
Christoph Oelckers
b389c99bf5
- removed some SDL 1 parts.
2019-09-20 22:09:56 +02:00
Christoph Oelckers
5503ee98a0
- fixed bad merge
2019-09-20 22:06:15 +02:00
terminx
c8d42af954
Flat parallax skies in Polymost
...
Patch from Nuke.YKT.
git-svn-id: https://svn.eduke32.com/eduke32@8074 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/polymost.cpp
# source/build/src/voxmodel.cpp
2019-09-20 21:15:14 +02:00
terminx
4b6123f303
Change a couple of memcpys to just clear the whole size of the array instead of computing the size at runtime
...
git-svn-id: https://svn.eduke32.com/eduke32@8073 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 21:10:43 +02:00