Commit graph

66 commits

Author SHA1 Message Date
Christoph Oelckers
a51b77b95b - do not statically initialize DukeGameInfo.
Since this structure contains several large arrays it will inflate the EXE size with 800kb of empty space.
2020-11-29 22:31:02 +01:00
Christoph Oelckers
92bf1232da - Duke: documented global variables for eventual scriptification.
Most are only needed internally or for very special uses and do not need any scripting consideration.
2020-11-29 15:09:23 +01:00
Christoph Oelckers
7ad0750839 - grouped all of Duke's constant per-session state in a single struct.
Mainly done so later the script export can be done more easily.
This also renames a few of the affected variables for clarity.
2020-11-29 13:54:58 +01:00
Christoph Oelckers
24c797b7e3 - Duke World Tour: Exiting E1L7 should go back to E1L5.
fixes #187
2020-11-22 18:27:52 +01:00
Christoph Oelckers
9a43886be6 - Duke: fixed parsing of overlong CON identifiers. 2020-11-15 07:35:39 +01:00
Christoph Oelckers
91fdf160b6 - fixed clearing of actorinfo.
It overwrote memory beyond its end.
2020-10-15 01:34:24 +02:00
Christoph Oelckers
fc82b3bc8a - Duke: replaced the game type macros with inline functions. 2020-10-11 14:30:42 +02:00
Christoph Oelckers
bec1f67178 - implemented the menu caption for Duke et.al. 2020-10-06 20:49:55 +02:00
Christoph Oelckers
82612a1330 - it compiles again (with lots of code commented out.) 2020-10-04 20:11:02 +02:00
Christoph Oelckers
57945d2baf - eliminated a few overlooked 'long's. 2020-10-02 22:18:08 +02:00
Christoph Oelckers
e549aa0527 - fixed: concmd_actor wrote beyond the end of the ScriptCode array.
This was causing spurious crashes.
2020-09-26 12:46:56 +02:00
Christoph Oelckers
2a2209b085 - cleanup and minor fixes. 2020-09-22 23:07:11 +02:00
Christoph Oelckers
f5d14f826a - added the SHOOT event and fixed some issues with poor code generation for the game data accessors.
They created different code depending on the passed index, this was changed to always emit the optional parameter, even when not needed, so that the interpreter does not need to second-guess.
2020-09-17 23:06:54 +02:00
Christoph Oelckers
8fa5d3d9d2 - added the remaining CON features from EDuke 2.x
Not everything will do something, though. This was some incredibly careless code operating without a safety net allowing uncontrolled write access to the map structure.
Most of the critical fields have been made read-only, which has been the only mode of access in the mods I checked.

Note that this does not enable scripting of the weapon sprite drawer, only the gameplay related features were done.
2020-09-17 23:06:54 +02:00
Christoph Oelckers
b7f0e2c3c3 - added sound FX remapping for World Tour so it can use the original VOCs.
Fixes #353
2020-09-11 20:17:36 +02:00
Christoph Oelckers
bd183ad682 - fixed World Tour weapon display and property parsing, resulting in incorrect ammo count for the flamethrower.
Fixes #356
2020-09-07 00:45:11 +02:00
Christoph Oelckers
45882a02cc - fix WT level name display. 2020-09-05 22:14:00 +02:00
Christoph Oelckers
d5b7935ca1 - fixed the CON parser to treat tabs as whitespace.
Fixes #287.

World Tour starts now but still has issues.
2020-09-05 21:53:48 +02:00
Christoph Oelckers
1a0e413d5c - use CCMDs for Exhumed's input where applicable.
- made crosshair toggle consistent across games.
2020-08-23 16:11:18 +02:00
Christoph Oelckers
52ddac21b0 - fixed RR's transition to its final map. 2020-08-14 21:30:09 +02:00
Christoph Oelckers
a861126657 - fixed incorrect sprite being passed to reactor() function. 2020-07-29 20:59:32 +02:00
Christoph Oelckers
be9094cb97 Silenced lots of warnings pointed out by XCode. 2020-07-23 17:02:59 +02:00
Christoph Oelckers
d16d8f0d0e - fixed issues reported by XCode 2020-07-23 17:02:59 +02:00
Christoph Oelckers
253dea7610 - removed parsing_ifelse sanity check because it breaks compilation in a few case.
if there ever needed to be proof that CON is broken beyond repair this should be it, this will allow broken code to slip through the parser and apparently some scripts exploit this bug.
NAM's soldiers won't work with the 'proper' code.
2020-07-22 22:27:51 +02:00
Christoph Oelckers
7d7ae9e463 - fixed gamestartup parser so that it can detect script versions again. 2020-07-20 18:43:50 +02:00
Christoph Oelckers
2dcaf25fea - put the entire CON parser into a class to make its state local to the caller 2020-07-20 18:43:49 +02:00
Christoph Oelckers
381e15a9b2 - renamed playerdata_t::input back to sync and made it a static array again. 2020-07-15 13:10:18 +02:00
Christoph Oelckers
a9f152c1fe - added JFDuke's label type checker and did some cleanup on the CON init code.
Most importantly: Use dynamic buffers for managing the labels instead of hijacking some other storage space.
2020-07-15 12:34:42 +02:00
Christoph Oelckers
63eaec916b - fixed a few things.
Basic level progression is working, special cases still need testing, but for now it's good enough.
2020-07-07 21:38:20 +02:00
Christoph Oelckers
01fce31f43 - everything compiles again.
Still needs testing.
2020-07-07 20:27:21 +02:00
Christoph Oelckers
bb303c6469 - cleaned up the rest of the summary screen code, particularly the totally redundant second variant for RRRA. 2020-07-01 20:31:29 +02:00
Christoph Oelckers
6a0e7c14ee - fixed compile. 2020-06-22 00:37:32 +02:00
Christoph Oelckers
e3153f143d hudweapon
# Conflicts:
#	source/build/src/engine.cpp
2020-06-22 00:05:07 +02:00
Christoph Oelckers
26f3bc1857 - spawn function transitioned. 2020-06-21 23:21:10 +02:00
Christoph Oelckers
5c48d355f1 - reserved script space must be nulled. 2020-06-21 23:17:51 +02:00
Christoph Oelckers
693b15a556 - use 4 byte entries for the script.
We no longer store pointers in here.
2020-06-21 23:17:51 +02:00
Christoph Oelckers
cb1824ca25 - store script code in a dynamic array.
# Conflicts:
#	source/games/duke/src/zz_game.cpp
2020-06-21 23:17:50 +02:00
Christoph Oelckers
6b2fdf24fd - cleanup after removing EDukes's script code.
# Conflicts:
#	source/games/duke/src/zz_game.cpp
#	source/games/duke/src/zz_gameexec.cpp
2020-06-21 23:07:46 +02:00
Christoph Oelckers
15c744f3da - movement code of the VM transitioned 2020-06-21 23:07:41 +02:00
Christoph Oelckers
c59928c6ff - removed most of the old and very messy gamevar code.
# Conflicts:
#	source/games/duke/src/zz_gamevars.cpp
2020-06-21 22:59:22 +02:00
Christoph Oelckers
d01d4bf44c - preparations for gamevar code replacement - thinning out of code that's to be removed 2020-06-21 22:59:09 +02:00
Christoph Oelckers
c28ea5792a - copyright 2020-06-21 22:59:09 +02:00
Christoph Oelckers
e625f94e84 - migrated fully away from EDuke's script compiler
# Conflicts:
#	source/games/duke/src/zz_gamedef.cpp
2020-06-21 22:59:09 +02:00
Christoph Oelckers
6d066d4b7b - cleaned out the old parser.
# Conflicts:
#	source/games/duke/src/zz_gamedef.cpp
2020-06-21 22:56:50 +02:00
Christoph Oelckers
a1a19ab630 - transitioned the gamevar instructions, still with the old backend.
# Conflicts:
#	source/games/duke/src/zz_gamedef.cpp
2020-06-21 22:56:42 +02:00
Christoph Oelckers
05360e14b5 - game startup, include and moving formerly global variables back to global.
# Conflicts:
#	source/games/duke/src/zz_gamedef.cpp
2020-06-21 22:56:36 +02:00
Christoph Oelckers
3a95664b0b - fixing the ifelse check, consolidating the tail code for 'if' instructions. 2020-06-21 22:56:28 +02:00
Christoph Oelckers
2f9d62a40a - the last simple ones. 2020-06-21 22:56:28 +02:00
Christoph Oelckers
422faa99e1 - a lot more commands transitioned
# Conflicts:
#	source/games/duke/src/zz_gamedef.cpp
2020-06-21 22:56:28 +02:00
Christoph Oelckers
79c7748e90 - most 'if's.
# Conflicts:
#	source/games/duke/src/zz_gamedef.cpp
2020-06-21 22:55:30 +02:00