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
55a879fcc0
- put EDuke frontend source into a namespace.
...
This commit does not work yet!
2019-09-21 22:53:00 +02:00
Christoph Oelckers
30c47a8511
- include namespace file in all sources as the very first include.
2019-09-21 20:59:54 +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
hendricks266
9c3ec69c86
CON: Add getgamefuncbind
...
git-svn-id: https://svn.eduke32.com/eduke32@7993 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:10:52 +02:00
hendricks266
67b7d2408b
newgamechoices
...
git-svn-id: https://svn.eduke32.com/eduke32@7930 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/defs.cpp
2019-09-20 16:02:49 +02:00
hendricks266
4523515a33
ext updates
...
git-svn-id: https://svn.eduke32.com/eduke32@7901 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:44:17 +02:00
hendricks266
dcdabd30d3
definecheatdescription
...
git-svn-id: https://svn.eduke32.com/eduke32@7896 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:44:07 +02:00
hendricks266
3a1e4a445f
new special purpose gamevar flag
...
git-svn-id: https://svn.eduke32.com/eduke32@7816 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:57 +02:00
terminx
165b320f64
Amend r7805
...
'Murica.
git-svn-id: https://svn.eduke32.com/eduke32@7811 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:40 +02:00
terminx
763b4b8d7f
Throw a warning when attempting to use CON_DEFINESOUND with a sound index that has already been defined
...
git-svn-id: https://svn.eduke32.com/eduke32@7810 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:37 +02:00
pogokeen
3d63d1b720
Add updatesectorneighbour() and updatesectorneighbourz() and make them accessible to CON to allow searching for nearby neighbouring sectors from a known sector.
...
These updatesector counterparts are more performant for tasks that require determining whether nearby sectors exist at a point as they will not exhaustively search the map.
This also leads to more correct behaviour when sectors are disjoint, as queries will breadth-first search neighbouring sectors rather than risk accidentally stumbling first across accomodating disjoint sectors.
git-svn-id: https://svn.eduke32.com/eduke32@7805 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/build.h
2019-09-20 15:16:47 +02:00
hendricks266
ba7c266f89
CON_MUSIC: Accept "." as meaning "do nothing to this slot"
...
git-svn-id: https://svn.eduke32.com/eduke32@7801 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:14:27 +02:00
terminx
4c290ab4ec
Add gamefunc_Alt_Weapon and EVENT_ALTWEAPON back in
...
git-svn-id: https://svn.eduke32.com/eduke32@7771 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:50 +02:00
terminx
465403a199
Prevent addlogvar from accepting constants, which causes a crash
...
git-svn-id: https://svn.eduke32.com/eduke32@7765 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:36 +02:00
terminx
4e81b4e2f0
Replace gamefunc_Alt_Weapon with a gamefunc_Alt_Fire that works as expected
...
git-svn-id: https://svn.eduke32.com/eduke32@7761 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:28 +02:00
pogokeen
c2340dd409
Add EVENT_RESETGOTPICS which gives scripts the chance to reset gotpics (and similar effects trackers) for effects that run in EVENT_DISPLAYROOMS.
...
EVENT_RESETGOTPICS is called after the last call to EVENT_DISPLAYROOMS in a frame, but before any engine-side calls to renderDrawRoomsQ16()
git-svn-id: https://svn.eduke32.com/eduke32@7734 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:59:20 +02:00
terminx
ccdba037b5
Added Xfree() function to accompany the Xmalloc() family of functions and change all uses of Bfree() to Xfree()
...
This was necessary because everything is already allocated with the Xmalloc() functions, but a future commit will make blocks allocated with those functions no longer compatible with the system implementation of free(), which Bfree() wraps.
git-svn-id: https://svn.eduke32.com/eduke32@7705 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
# source/build/src/mdsprite.cpp
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
# source/build/src/texcache.cpp
# source/build/src/voxmodel.cpp
2019-09-20 12:07:10 +02:00
terminx
22759d8a5e
Make CLIPMASK0 and CLIPMASK1 regular defined tokens instead of read-only gamevars
...
I don't remember if there was any particular reason they were added as gamevars in the first place.
git-svn-id: https://svn.eduke32.com/eduke32@7664 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:35 +02:00
terminx
efa3022d07
CON VM maintenance
...
git-svn-id: https://svn.eduke32.com/eduke32@7658 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:22 +02:00
terminx
db8bcba93a
Minor changes similar to the VM_Execute() maintenance commit
...
No user-facing changes.
git-svn-id: https://svn.eduke32.com/eduke32@7645 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:27:24 +02:00
terminx
b854ddff41
Fix a potentially funny bug in the CON parser
...
I don't think anyone actually ran into this.
git-svn-id: https://svn.eduke32.com/eduke32@7644 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:27:21 +02:00
terminx
e9116bd23a
Add SFLAG_QUEUEDFORDELETE, to handle detection and manipulation of things like decal sprites marked for deletion
...
git-svn-id: https://svn.eduke32.com/eduke32@7604 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:51:41 +02:00
terminx
91d8953420
Patch from Fox adding SFLAG_NOWATERSECTOR, to prevent certain sprites from moving into water
...
git-svn-id: https://svn.eduke32.com/eduke32@7489 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:56:33 +02:00
terminx
f50ad3d424
Use bitmap manipulation functions for "bitptr"
...
git-svn-id: https://svn.eduke32.com/eduke32@7477 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:43 +02:00
terminx
3c0a38d47a
Rename "INCOMPLETE_STRUCT_ACCESS" to CON_DISCRETE_VAR_ACCESS as it was neither incomplete nor anything to do with access to structs
...
However, it's remaining disabled because even with the new dispatch method it still doesn't improve performance any.
git-svn-id: https://svn.eduke32.com/eduke32@7382 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-03 11:15:01 +00:00
terminx
6a251fca16
Free inthash tables used by the CON compiler using the contents of inttables[] instead of listing them explicitly in C_Compile()
...
git-svn-id: https://svn.eduke32.com/eduke32@7371 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:21:41 +00:00
terminx
db51740d3d
Clean up a few uses of the hash table functions to account for hash_findcase() working properly now
...
git-svn-id: https://svn.eduke32.com/eduke32@7366 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:21:21 +00:00
hendricks266
7414f29348
Add buildvfs, abstraction layer for file I/O.
...
Currently it passes calls through to the system libraries as before.
Also adds an incomplete implementation on PhysFS.
git-svn-id: https://svn.eduke32.com/eduke32@7359 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-01 08:51:50 +00:00
hendricks266
328e771636
CON: #ifdef out deactivated stuff that should not be half-in, half-out
...
git-svn-id: https://svn.eduke32.com/eduke32@7355 1a8010ca-5511-0410-912e-c29ae57300e0
2019-02-28 07:21:37 +00:00
hendricks266
f84cbd9a1a
Clean up unused warnings
...
git-svn-id: https://svn.eduke32.com/eduke32@7354 1a8010ca-5511-0410-912e-c29ae57300e0
2019-02-28 07:21:33 +00:00
terminx
523121a995
Don't crash when attempting to define quotes at indexes that exceed MAXQUOTES
...
git-svn-id: https://svn.eduke32.com/eduke32@7337 1a8010ca-5511-0410-912e-c29ae57300e0
2019-02-20 21:32:39 +00:00
terminx
c4753af497
Fix issue where a useless error would be printed to the log and bad memory reads could occur when compiling a CON script with an invalid structure member passed as gamevar structure access shortcut shorthand
...
git-svn-id: https://svn.eduke32.com/eduke32@7323 1a8010ca-5511-0410-912e-c29ae57300e0
2019-01-30 09:36:52 +00:00
terminx
d52151c2e8
Fix issue with definegamefuncname and undefinegamefunc
...
git-svn-id: https://svn.eduke32.com/eduke32@7317 1a8010ca-5511-0410-912e-c29ae57300e0
2019-01-23 00:21:52 +00:00
hendricks266
9b17be7f3e
CON: Add EVENT_DISPLAYROOMSCAMERATILE
...
git-svn-id: https://svn.eduke32.com/eduke32@7313 1a8010ca-5511-0410-912e-c29ae57300e0
2019-01-22 17:56:34 +00:00
terminx
91096d2415
Hendricks and I discussed "auto *" and we've come to the conclusion that it's bad form, so this corrects that.
...
git-svn-id: https://svn.eduke32.com/eduke32@7283 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:39:51 +00:00
terminx
ef91435120
Fix CON commands leaving useless extra values in the bytecode. They were only valid outside of executable blocks so it was never noticed.
...
git-svn-id: https://svn.eduke32.com/eduke32@7277 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:39:14 +00:00
terminx
c287866954
Fix CON compiler line number accounting problem introduced with the optimization that transforms CON_SETVARVAR -> CON_SETVAR if the second parameter is a constant
...
git-svn-id: https://svn.eduke32.com/eduke32@7276 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:39:08 +00:00
terminx
49f77b0a21
This is never going to work. When it was first programmed, it was done under the assumption that dividing an integer by a power of 2 was always the same as shifting it. It turns out that this isn't the case and I'm a dumbass. :D
...
git-svn-id: https://svn.eduke32.com/eduke32@7274 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:38:58 +00:00
terminx
8f7e842beb
After some refactoring, several CON error checks done at runtime stood out as things that could be determined at script compile time. They have been moved.
...
git-svn-id: https://svn.eduke32.com/eduke32@7271 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:38:43 +00:00
terminx
3d4d640be3
Attempting to compile a CON with something stupid like "mul var 0" or "div var 0" in it now throws an error
...
git-svn-id: https://svn.eduke32.com/eduke32@7270 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:38:38 +00:00
terminx
fad17a83c0
WIP work on fixing CON_DIVVAR/CON_MULVAR optimization
...
git-svn-id: https://svn.eduke32.com/eduke32@7267 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:38:22 +00:00
terminx
cf95da82e9
Implement individual opcodes for all the gamevar if checks and the functions that do math on vars
...
git-svn-id: https://svn.eduke32.com/eduke32@7266 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:38:16 +00:00
terminx
ace77922b1
Global var opcodes for common conditional statements. Decent performance gain!
...
git-svn-id: https://svn.eduke32.com/eduke32@7265 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:38:10 +00:00
terminx
6dfafc49b1
Change goofy check for g_errorCnt and g_warningCnt in gamedef
...
git-svn-id: https://svn.eduke32.com/eduke32@7264 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:38:05 +00:00
terminx
dbdf662790
Use separate instructions in the bytecode for manipulating global variables versus more complex variable types. The optimization that transforms CON_DIVVAR and CON_MULVAR into CON_SHIFTVARR and CON_SHIFTVARL plus CON_INV has been disabled for now until I can debug a problem with it.
...
git-svn-id: https://svn.eduke32.com/eduke32@7263 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:38:00 +00:00
terminx
72d80890e2
CON cleanup/tweaks. This improves the game update time by about 5% in some of my test scenarios.
...
git-svn-id: https://svn.eduke32.com/eduke32@7261 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:37:49 +00:00
terminx
76edec81ac
CON cleanups
...
git-svn-id: https://svn.eduke32.com/eduke32@7259 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:37:39 +00:00
terminx
891bac2b0f
This is a cool CON compiler optimization that replaces all of the "varvar" commands and conditional checks in the compiled code with the "var" version if the value supplied to the function is a constant
...
git-svn-id: https://svn.eduke32.com/eduke32@7254 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:37:13 +00:00
terminx
f782a86675
I'm pretty sure this is a bug
...
git-svn-id: https://svn.eduke32.com/eduke32@7253 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:37:08 +00:00