Commit graph

7525 commits

Author SHA1 Message Date
terminx
b4404978d6 Change A_AddToDeleteQueue() to call A_DeleteSprite() on sprites it removes from the queue directly, as sprites with statnums other than STAT_ACTOR and STAT_MISC are not deleted automatically when their xrepeat is 0. This fixes using CON_INSERTSPRITEQ with sprites of statnums other than STAT_ACTOR and STAT_MISC.
git-svn-id: https://svn.eduke32.com/eduke32@7275 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:39:03 +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
cad5a5b8c5 Move the debug_break() call in the default case of VM_Execute() to after the call to VM_ScriptInfo().
git-svn-id: https://svn.eduke32.com/eduke32@7273 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:38:53 +00:00
terminx
d35058a8e5 Fix error building the transpal utility
git-svn-id: https://svn.eduke32.com/eduke32@7272 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:38:48 +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
2be7afd33c cmenu console command now opens the menu if it isn't already open
git-svn-id: https://svn.eduke32.com/eduke32@7269 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:38:32 +00:00
terminx
d2f16606c5 Comment out actor and player versions of gamevar manipulation opcodes as they aren't performant with our current switch-based method of processing instructions. This also tweaks the beginning of VM_Execute() to gain a little more performance.
git-svn-id: https://svn.eduke32.com/eduke32@7268 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:38:27 +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
702d30f2b5 Replace pointer with reference in VM_Execute()
git-svn-id: https://svn.eduke32.com/eduke32@7262 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:37:54 +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
0bbde29c85 Use reference to clean up CON_QSPRINTF
git-svn-id: https://svn.eduke32.com/eduke32@7260 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:37:44 +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
cdefc293c0 Fix setvar console command, and add a line of output so you know it did something
git-svn-id: https://svn.eduke32.com/eduke32@7258 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:37:34 +00:00
terminx
6696cb0036 This just shuffles some things around and these aren't (or shouldn't be) functional changes.
git-svn-id: https://svn.eduke32.com/eduke32@7257 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:37:29 +00:00
terminx
f748c85054 Set AllowShortCaseLabelsOnASingleLine to false and AlignAfterOpenBracket to Align in _clang-format
git-svn-id: https://svn.eduke32.com/eduke32@7256 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:37:24 +00:00
terminx
ae39954376 Initialize rottile values to -1 with a loop like this instead, because doing it the C++ way increases the binary size by like 120KB
git-svn-id: https://svn.eduke32.com/eduke32@7255 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:37:19 +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
7fb84c7a69 Include build.h from player.h to satisfy the need for MAXPLAYERS and compat.h stuff that build.h pulls in
git-svn-id: https://svn.eduke32.com/eduke32@7251 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:36:58 +00:00
terminx
07d2222dfa Bump MAXANGVEL and MAXHORIZ
git-svn-id: https://svn.eduke32.com/eduke32@7250 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:36:53 +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
b9fa88b5ed This was worth a couple fps in classic mode for me with particularly heavy CON scripts
git-svn-id: https://svn.eduke32.com/eduke32@7244 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:36:21 +00:00
terminx
ef6a60396c Remove unnecessary spriteNum argument from P_Submerge() and P_Emerge()
git-svn-id: https://svn.eduke32.com/eduke32@7243 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:36:15 +00:00
seventyfive
87cf4495bf - Packet code implementation (merge from private c/s repo), world updates are now synced through snapshots. See tag SVN_SyncPoint_Dec2018 on master of the other repo.
- "Scratch pad" sprites implementation, to avoid desyncs in sprite indexes, clients will insert temporary sprites which are cleared out when they receive the next snapshot from the server.
- Patches from Striker which fix player stomping frag counts, the accept button when hosting a game through the menu, and a "noffire" command line parameter.
- Patches from NY00123: t_data sync optimizations to improve some jittery behavior on the client side.

git-svn-id: https://svn.eduke32.com/eduke32@7242 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-08 00:40:39 +00:00
terminx
7bd5fa42ee macOS build fix
git-svn-id: https://svn.eduke32.com/eduke32@7241 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 21:25:44 +00:00
terminx
252fb58321 Fix oversight with wall texture rotation on tile 0
git-svn-id: https://svn.eduke32.com/eduke32@7240 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 21:17:59 +00:00
terminx
1c83bd0a01 Fix issue with a couple symbols from cmdline.h sometimes picking up different linkage due to accidental double definition in game.h
git-svn-id: https://svn.eduke32.com/eduke32@7239 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 19:03:40 +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
7fd81960e2 Add unsigned access to actor .htmovflag through actor .htumovflag
git-svn-id: https://svn.eduke32.com/eduke32@7237 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:14:49 +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
c29ffec9cb Clean up A_InsertSprite() and the beginning of A_Spawn()
git-svn-id: https://svn.eduke32.com/eduke32@7234 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:14:33 +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
67a3ffd44b Small cleanup in gameexec
git-svn-id: https://svn.eduke32.com/eduke32@7230 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:14:10 +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
6da9b537e5 Fix Gv_GetArrayOrStruct() error message
git-svn-id: https://svn.eduke32.com/eduke32@7228 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:14:00 +00:00
terminx
54bc64ea10 EDUKE32_STANDALONE guard some more Duke3D-specific behavior
git-svn-id: https://svn.eduke32.com/eduke32@7227 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:13:55 +00:00
terminx
4861d1fc3d WIP wall texture rotation bit
git-svn-id: https://svn.eduke32.com/eduke32@7226 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:13:48 +00:00