Commit graph

169 commits

Author SHA1 Message Date
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
terminx
b3d1002b58 Move CON_STARTTRACK in gamedef.cpp so it isn't in between the related CON_IFXXX stuff nearby
git-svn-id: https://svn.eduke32.com/eduke32@7252 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:37:03 +00:00
terminx
5c6d2d706f Use LINE_NUMBER macro in gamedef.cpp
git-svn-id: https://svn.eduke32.com/eduke32@7249 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:36:48 +00:00
terminx
8ff047a82e More minor CON parser cleanup. This commit is not incredibly meaningful.
git-svn-id: https://svn.eduke32.com/eduke32@7248 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:36:42 +00:00
terminx
41c33af8e0 This fixes a small oversight with r7238
git-svn-id: https://svn.eduke32.com/eduke32@7247 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:36:37 +00:00
terminx
f40026a0be Add bounds check to C_GetNextLabelName(). This isn't really necessary because the extra writes to the label buffer are immediately overwritten by the next label found, but I could see it causing a crash in an edge case where somehow the maximum number of labels had been defined.
git-svn-id: https://svn.eduke32.com/eduke32@7246 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:36:32 +00:00
terminx
8b0cce6cb7 Convert *(g_scriptPtr-x) syntax in gamedef.cpp to g_scriptPtr[-x], as it should ultimately be more readable and less prone to programming errors.
git-svn-id: https://svn.eduke32.com/eduke32@7245 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:36:27 +00:00
terminx
6d7537aa27 CON syntax extension: the empty "[]" shortcut for accessing a struct at index THISACTOR can now be omitted.
This allows cleaner syntax such as "geta .x temp", "ife sprite.x temp", etc.

git-svn-id: https://svn.eduke32.com/eduke32@7238 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:14:54 +00:00
terminx
38c473851b Misc CON fixups
git-svn-id: https://svn.eduke32.com/eduke32@7236 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:14:43 +00:00
terminx
2f9f16de7f Further clean up C_SetScriptSize(). This also fixes a bug in the function where when expanding the buffer size, most of the extra space was left uninitialized due to bad parameters passed to memset().
git-svn-id: https://svn.eduke32.com/eduke32@7235 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:14:38 +00:00
terminx
c4f76e55a6 Shuffle things around so most of the script structure access stuff actually resides in gamestructures.cpp
git-svn-id: https://svn.eduke32.com/eduke32@7233 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:14:26 +00:00
terminx
4bc7963f48 Minor CON compiler cleanup
git-svn-id: https://svn.eduke32.com/eduke32@7232 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:14:20 +00:00
terminx
5998256125 This should improve the reliability of CON_SWITCH, and maybe allow nesting them to work.
git-svn-id: https://svn.eduke32.com/eduke32@7231 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:14:15 +00:00
terminx
0aff0aaf20 This is a little bit more readable
git-svn-id: https://svn.eduke32.com/eduke32@7229 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:14:05 +00:00
terminx
21958bc110 Minor start window cleanup. This ended up touching a bunch of other files due to variable renaming, but there are zero functional changes to anything but the startup window in this commit.
git-svn-id: https://svn.eduke32.com/eduke32@7219 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:13:02 +00:00
terminx
0d652ae063 Switch VM_EventCommon to use references
git-svn-id: https://svn.eduke32.com/eduke32@7205 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:11:44 +00:00
terminx
32057d2e19 Direct struct access for tsprite, and break special gamevar access out of Gv_GetVar() and into a separate function like it already was with Gv_GetVarX()
git-svn-id: https://svn.eduke32.com/eduke32@7201 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:11:21 +00:00
terminx
dc519575d4 Add LAST_LABEL macro
git-svn-id: https://svn.eduke32.com/eduke32@7199 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:11:09 +00:00
terminx
893bcbd603 Direct access for the actor structs
git-svn-id: https://svn.eduke32.com/eduke32@7198 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:11:04 +00:00
terminx
34c6fcc69f gamedef.cpp and friends: use preprocessor defines instead of hard-coded values for gamevar IDs that are really constants or arrays or structs
git-svn-id: https://svn.eduke32.com/eduke32@7197 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:10:57 +00:00
terminx
eb546f111e WIP: direct CON read/write access to structure members via pointer and offset instead of translation function. This is only enabled for wall and sector structure members in this commit.
git-svn-id: https://svn.eduke32.com/eduke32@7194 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:10:39 +00:00
terminx
076cc306f8 Remove CON ERROR_OPENBRACKET and ERROR_CLOSEBRACKET and add ERROR_NOTTOPLEVEL
git-svn-id: https://svn.eduke32.com/eduke32@7193 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:10:32 +00:00
terminx
90bfd3d374 Minor gamedef.cpp cleanup
git-svn-id: https://svn.eduke32.com/eduke32@7191 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:10:21 +00:00
terminx
a0562d5e69 Formatting
git-svn-id: https://svn.eduke32.com/eduke32@7190 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:10:15 +00:00
terminx
f14bae5098 Use reference in G_DoGameStartup().
git-svn-id: https://svn.eduke32.com/eduke32@7189 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:10:10 +00:00
terminx
04c9f99620 Add a new member to memberlabel_t to hold the offset of a structure member for CON access. This will be used in a future commit.
git-svn-id: https://svn.eduke32.com/eduke32@7188 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:10:04 +00:00
terminx
e513e1ceae Cleanup includes
git-svn-id: https://svn.eduke32.com/eduke32@7186 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:09:48 +00:00
terminx
b97074eece Remove several unused player struct members and bump BYTEVERSION
git-svn-id: https://svn.eduke32.com/eduke32@7177 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:08:26 +00:00
terminx
86496a8126 CON structure member access readability cleanup
git-svn-id: https://svn.eduke32.com/eduke32@7169 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:07:38 +00:00