terminx
21217585c9
Fix crash when starting E2L1
...
git-svn-id: https://svn.eduke32.com/eduke32@7440 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-13 00:51:02 +02:00
terminx
ac87b8c945
I forgot to remove this comment in r7376
...
git-svn-id: https://svn.eduke32.com/eduke32@7384 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-03 11:15:12 +00: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
e61831ad5d
Fix CON issues introduced in r7357 and r7358
...
git-svn-id: https://svn.eduke32.com/eduke32@7378 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:22:08 +00:00
terminx
dbcd3968ee
Am I missing something here?
...
git-svn-id: https://svn.eduke32.com/eduke32@7377 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:22:04 +00:00
terminx
8b7d099cbd
Remove reference pointing to vm.pPlayer because it seems incompatible with the new dispatch method
...
git-svn-id: https://svn.eduke32.com/eduke32@7376 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:22:00 +00:00
terminx
0de543ca2b
This was slightly faster here
...
git-svn-id: https://svn.eduke32.com/eduke32@7363 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:21:09 +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
5c9b921285
CON: Implement a new VM dispatch method using an explicit jump table
...
Most of this patch is by pogokeen.
git-svn-id: https://svn.eduke32.com/eduke32@7358 1a8010ca-5511-0410-912e-c29ae57300e0
2019-02-28 07:21:49 +00:00
hendricks266
12bfbd5a06
CON: Macro-ize CON keyword tokens in gamedef.h and gameexec.cpp
...
Most of this patch is by pogokeen.
git-svn-id: https://svn.eduke32.com/eduke32@7357 1a8010ca-5511-0410-912e-c29ae57300e0
2019-02-28 07:21:43 +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
terminx
766fb93191
Fix a crash when accessing SECTOR_WALLPTR with CON_SETSECTOR
...
git-svn-id: https://svn.eduke32.com/eduke32@7351 1a8010ca-5511-0410-912e-c29ae57300e0
2019-02-22 20:26:38 +00:00
terminx
4b1d268908
Use existing viewingrange and yxaspect for showview so it matches that of the main view
...
This fixes fov when using showview in EVENT_DISPLAYROOMS to do layered rendering, but it might not be right for uses of showview that simply display picture-in-picture stuff on screen.
git-svn-id: https://svn.eduke32.com/eduke32@7350 1a8010ca-5511-0410-912e-c29ae57300e0
2019-02-22 18:35:37 +00:00
terminx
06ac4f88b9
This fixes S_CheckSoundPlaying() and makes CON_IFSOUND work correctly in scripts that run during menus. These changes together fix the exchange between Duke and Lani at the end of episode 3 of Duke3D.
...
git-svn-id: https://svn.eduke32.com/eduke32@7279 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:39:25 +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
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
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
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
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
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
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
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
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
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
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
a7a1ada83d
Tiny cleanups
...
git-svn-id: https://svn.eduke32.com/eduke32@7202 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:11:27 +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
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
2c3ba0fdb6
Clean up VM array handling with references
...
git-svn-id: https://svn.eduke32.com/eduke32@7196 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:10:51 +00:00
terminx
7540f590f1
Refine CON VM error handling behavior.
...
Old behavior: when an operation failed, execution attempted to continue from the next command as if nothing had happened. This behavior was poorly defined and often had unintended consequences; e.g a "random" sprite being operated on because an operation that was supposed to place a sprite id in a gamevar failed, and the previous value was taken as a sprite id instead.
New behavior: execution of the state/actor/event halts. Failure of a particular actor is more immediately obvious and unwanted trampling on other parts of the game state does not occur.
git-svn-id: https://svn.eduke32.com/eduke32@7195 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:10:45 +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
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
949feae240
Introduce some more meaningful function names and structure to the code touched in the last commit
...
git-svn-id: https://svn.eduke32.com/eduke32@7172 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:07:57 +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
hendricks266
696ddec8a8
Fix a big fail in my implementation of CON_DIVR and CON_DIVRU.
...
git-svn-id: https://svn.eduke32.com/eduke32@7137 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-29 06:34:19 +00:00
terminx
ad7d61baa1
Use range-based loops for simplicity
...
git-svn-id: https://svn.eduke32.com/eduke32@7130 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:33:40 +00:00
terminx
82fcd89ed5
Add debug_break() to default case in VM_Execute()
...
git-svn-id: https://svn.eduke32.com/eduke32@7087 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:29:44 +00:00
terminx
9613bbac33
Use std::min and std::max instead of min and max macros.
...
git-svn-id: https://svn.eduke32.com/eduke32@7078 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-16 06:09:54 +00:00
terminx
b50b1ad198
Fix huge bug in CON_COPY
...
git-svn-id: https://svn.eduke32.com/eduke32@7060 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-10 19:15:06 +00:00
terminx
489ed5b803
Fix false positive buffer overflow report in PVS-Studio
...
git-svn-id: https://svn.eduke32.com/eduke32@7014 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-07 05:21:15 +00:00
terminx
0757a6570b
Replace spritenum check with ptr check in VM_ScriptInfo()
...
git-svn-id: https://svn.eduke32.com/eduke32@7005 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-07 05:20:33 +00:00
terminx
a919fecdbb
Don't play DUKE_GOTHEALTHATLOW sound in standalone builds
...
git-svn-id: https://svn.eduke32.com/eduke32@6966 1a8010ca-5511-0410-912e-c29ae57300e0
2018-08-09 16:07:00 +00:00
terminx
0dd623a7fe
Don't spawn hardcoded Duke3D debris/guts/glass sprites when compiled as EDUKE32_STANDALONE
...
git-svn-id: https://svn.eduke32.com/eduke32@6911 1a8010ca-5511-0410-912e-c29ae57300e0
2018-06-09 20:36:31 +00:00
hendricks266
5629f4f433
Manually rebasing my r6899 over the formatting atrocity in r6895 broke my work.
...
git-svn-id: https://svn.eduke32.com/eduke32@6903 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-23 06:01:53 +00:00
hendricks266
48f86ce594
CON: Add "swaparrays" command, which performs a pointer-swap on arrays of the same storage class.
...
git-svn-id: https://svn.eduke32.com/eduke32@6902 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-23 05:58:21 +00:00
hendricks266
a442c4f7bf
CON: Remix resizearray in the following ways:
...
Make only one allocation instead of two.
Calculate array byte sizes in a way compatible with GAMEARRAY_BOOLEAN.
Clear the expanded part of grown arrays using correct counts for non-int32 sizes.
Support resizing an array to 0 to free it.
git-svn-id: https://svn.eduke32.com/eduke32@6900 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-23 05:58:12 +00:00
hendricks266
cb86c86ee1
CON: Implement the copy command for GAMEARRAY_BOOLEAN.
...
git-svn-id: https://svn.eduke32.com/eduke32@6899 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-23 05:58:09 +00:00
hendricks266
064ff3a403
CON: Fix two regressions completely breaking the correctness of the copy command, introduced in r6343.
...
git-svn-id: https://svn.eduke32.com/eduke32@6898 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-23 05:58:03 +00:00
terminx
d2e4823feb
Move some of the more commonly used CON functions to the top of the switch in VM_Execute(), and promote some of the loop's variables to native_t. Unfortunately, Visual Studio's new clang-format integration took it upon itself to reformat everything. Use diff -w.
...
git-svn-id: https://svn.eduke32.com/eduke32@6895 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-22 19:03:44 +00:00
terminx
87d19d5cde
More function name shit
...
git-svn-id: https://svn.eduke32.com/eduke32@6832 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:04:00 +00:00
terminx
19c43b84b3
Function names
...
git-svn-id: https://svn.eduke32.com/eduke32@6831 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:03:47 +00:00
terminx
1fd209444f
Continuing the quest for clearer function names
...
git-svn-id: https://svn.eduke32.com/eduke32@6829 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:03:12 +00:00
terminx
0340e3cc0f
Engine function name cleanup round 2
...
git-svn-id: https://svn.eduke32.com/eduke32@6828 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-12 21:02:51 +00:00
hendricks266
6eeb14a12f
CON: Add spawnceilingglass, spawnwallglass, and spawnwallstainedglass commands.
...
Patch from Striker.
git-svn-id: https://svn.eduke32.com/eduke32@6824 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-11 03:33:59 +00:00
hendricks266
d41f233045
CON: Add resetplayerflag 8, which mandates reload and not savegame load in single player.
...
git-svn-id: https://svn.eduke32.com/eduke32@6823 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-11 03:33:54 +00:00
terminx
260fb278d9
EDUKE32_STANDALONE guard some HoloDuke behavior in CON_IFCANSEE and remove a branch from GAMEARRAY_BITMAP processing in CON_SETARRAY
...
git-svn-id: https://svn.eduke32.com/eduke32@6818 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-06 01:43:12 +00:00
terminx
d10dcd971c
More EDUKE32_STANDALONE guarding. Next commit will merge some of the guarded blocks together for simplicity.
...
git-svn-id: https://svn.eduke32.com/eduke32@6799 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-04 20:47:48 +00:00
hendricks266
084d363364
Replace individual developer email addresses in error messages
...
git-svn-id: https://svn.eduke32.com/eduke32@6778 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-22 04:48:36 +00:00
hendricks266
ed38f0a75d
CON: Add gettiledata/settiledata. Same members as tiledata[] quick access struct. Not all fields writable.
...
Patch from Striker.
git-svn-id: https://svn.eduke32.com/eduke32@6766 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-15 01:19:27 +00:00
hendricks266
1460dec6d8
In case a requested quick load upon death cannot be completed, perform a pistol start instead of doing nothing
...
git-svn-id: https://svn.eduke32.com/eduke32@6761 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-11 03:47:11 +00:00
terminx
a22394db8d
Backport some CON profiling stuff from Lunatic. Use "printtimes" in the console.
...
git-svn-id: https://svn.eduke32.com/eduke32@6736 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-08 00:29:41 +00:00
terminx
ee37c04623
Remove attempt at being compatible with the original ranges of ang and horiz values, and introduce a q16 version of drawrooms (and showroom)
...
git-svn-id: https://svn.eduke32.com/eduke32@6735 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-07 12:02:03 +00:00
terminx
3b6bb3b7a3
Fix up CON to work with Q16.16 values
...
git-svn-id: https://svn.eduke32.com/eduke32@6727 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-07 04:21:31 +00:00
terminx
a76750df55
Q16.16 for player angle, too
...
git-svn-id: https://svn.eduke32.com/eduke32@6725 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-07 04:21:18 +00:00
terminx
4d8bb170a3
Use Q16.16 fixed point for player horiz
...
git-svn-id: https://svn.eduke32.com/eduke32@6724 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-07 04:21:05 +00:00
hendricks266
9878d0c322
Revise the userdef code to accept multiple values.
...
Patch from Fox.
git-svn-id: https://svn.eduke32.com/eduke32@6705 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-26 20:19:55 +00:00
hendricks266
92091a4425
CON: Change OSD_Printf to initprintf for addlog and addlogvar
...
git-svn-id: https://svn.eduke32.com/eduke32@6681 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-20 11:55:28 +00:00
hendricks266
26749bf881
CON: Add resetplayerflag 4, which always loads if possible
...
git-svn-id: https://svn.eduke32.com/eduke32@6677 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-20 11:55:13 +00:00
hendricks266
8ddcef89fc
Fix FPS limiter in EVENT_SCREEN.
...
git-svn-id: https://svn.eduke32.com/eduke32@6648 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-12 02:32:39 +00:00
hendricks266
210f3e54ff
Apply the FPS limiter to EVENT_SCREEN.
...
git-svn-id: https://svn.eduke32.com/eduke32@6641 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-10 22:58:34 +00:00
hendricks266
f228b68736
CON: Add if statements if(var(var)){a,b}(e).
...
Inspired by x86 assembly, these stand for "above" and "below", and perform unsigned versions of greater-than and less-than, respectively.
Useful for testing array bounds.
git-svn-id: https://svn.eduke32.com/eduke32@6640 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-31 05:23:48 +00:00
terminx
cd02a9223e
Use enum
...
git-svn-id: https://svn.eduke32.com/eduke32@6636 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-31 04:13:35 +00:00
terminx
d9a5b4aa13
Restore previous behavior of "allsprites" iterator for CON_FOR and add "allspritesbystat" and "allspritesbysect"
...
git-svn-id: https://svn.eduke32.com/eduke32@6635 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-31 04:13:31 +00:00
hendricks266
b497a6cbde
CON: Add STR_USERMAPFILENAME for qgetsysstr.
...
Patch from Fox.
git-svn-id: https://svn.eduke32.com/eduke32@6629 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-30 01:03:50 +00:00
hendricks266
d41a013a57
CON: Add commands "swaptrackslot" and "preloadtrackslotforswap"
...
git-svn-id: https://svn.eduke32.com/eduke32@6623 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 11:14:04 +00:00
hendricks266
969c9b77d6
Turn get/setmusicposition into no-ops.
...
People were using these commands in spite of my explicit instructions not to.
Now that music track is saved properly, no one has any excuse to continue using these.
git-svn-id: https://svn.eduke32.com/eduke32@6621 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 11:13:55 +00:00
hendricks266
d792054ce2
Refactor all calls to S_PlayMusic.
...
This allows as much of the control flow as possible to fail gracefully without interruping currently playing music.
git-svn-id: https://svn.eduke32.com/eduke32@6619 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 11:13:43 +00:00
hendricks266
e1e5e338dc
New commands: "divr", "divru", "divrd"
...
divr <dividend> <divisor>
Divide gamevar <dividend> by <divisor> and round (aka round to nearest) the result. A result of 0.5 will equal 1.
divru <dividend> <divisor>
Divide gamevar <dividend> by <divisor> and round up (aka round away from zero) the result.
Additionally "divrd" can be used to round down (aka round toward zero), which is equivalent to the current div command as tested on x86, ARM, and PowerPC.
Note that "shiftr" rounds up negative values.
Patch from Fox.
git-svn-id: https://svn.eduke32.com/eduke32@6611 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 02:14:04 +00:00
hendricks266
1cbf5e36e1
New command "qstrcmp"
...
qstrcmp <quote1> <quote2> <var>
Compare two quotes. <var> returns zero if they are identical, -1 if the first quote comes first in alphabetical order, 1 if it comes later.
Note that the lexicographical order is rudimentary, for example "Player 2" is considered greater than "Player 10".
Patch from Fox.
git-svn-id: https://svn.eduke32.com/eduke32@6609 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 02:13:55 +00:00
hendricks266
b3fd642bf4
Replace "INT16_32768" macro with unsigned literal "32768u".
...
git-svn-id: https://svn.eduke32.com/eduke32@6600 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-28 04:30:34 +00:00
hendricks266
214109b506
Revert the parts of r3159 corresponding to redefining lotag and hitag as unsigned, so that they are once again signed.
...
Any issues in Duke's code relating to misunderstanding these types are now restricted to Duke itself rather than changing the engine and potentially introducing new issues in all Build games.
git-svn-id: https://svn.eduke32.com/eduke32@6581 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-15 23:13:50 +00:00
terminx
0ece42110c
Fix breakage I introduced into CON_FOR while fixing breakage in CON_FOR. :(
...
git-svn-id: https://svn.eduke32.com/eduke32@6576 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-29 19:27:11 +00:00
terminx
7291688875
Use native_t instead of bssize_t in gameexec.cpp
...
git-svn-id: https://svn.eduke32.com/eduke32@6575 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-29 19:27:04 +00:00
terminx
fcfac7c1d9
Fix issues with CON_FOR
...
git-svn-id: https://svn.eduke32.com/eduke32@6574 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-29 02:32:12 +00:00
hendricks266
d9b0479343
ZDoom-style saves
...
git-svn-id: https://svn.eduke32.com/eduke32@6569 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-18 11:24:53 +00:00
terminx
948fe80304
Fix undefined behavior in gameexec.cpp
...
git-svn-id: https://svn.eduke32.com/eduke32@6542 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-09 02:56:05 +00:00
terminx
de5f16b1c5
Fix events added in recent commits
...
git-svn-id: https://svn.eduke32.com/eduke32@6537 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-02 09:24:55 +00:00
hendricks266
74908b1def
CON: Add screenpal command.
...
screenpal <r> <g> <b> <a>
Similar to palfrom, but works on screen events. Values range from 0 to 255.
Patch from Fox.
git-svn-id: https://svn.eduke32.com/eduke32@6509 1a8010ca-5511-0410-912e-c29ae57300e0
2017-11-29 07:29:14 +00:00
hendricks266
f6678b336a
CON: Add command "startscreen" and corresponding EVENT_SCREEN.
...
Use startscreen to take control away from the game and display content with rotatesprite.
RETURN is set to 1 when any key is pressed, and if it is nonzero when the event ends, the screen ends and the game resumes.
Patch from Fox.
git-svn-id: https://svn.eduke32.com/eduke32@6508 1a8010ca-5511-0410-912e-c29ae57300e0
2017-11-29 07:29:11 +00:00
hendricks266
38df0b7e82
CON: Add "actorsound" command.
...
Patch from Striker.
git-svn-id: https://svn.eduke32.com/eduke32@6504 1a8010ca-5511-0410-912e-c29ae57300e0
2017-11-29 07:28:58 +00:00
hendricks266
bad61e3934
Replace arbitrary MAXGAMEEVENTS macro with the properly generated MAXEVENTS.
...
git-svn-id: https://svn.eduke32.com/eduke32@6503 1a8010ca-5511-0410-912e-c29ae57300e0
2017-11-29 07:28:54 +00:00
terminx
c52e003e2a
Fix issue with arrays, saved map states, and savegames
...
git-svn-id: https://svn.eduke32.com/eduke32@6492 1a8010ca-5511-0410-912e-c29ae57300e0
2017-10-31 02:09:25 +00:00
hendricks266
d6682d58d3
Expand use of VM_GetKeywordForID to all other references to vm_keywords[].
...
Fixes printing of incorrect keywords, reported by Trooper Dan.
git-svn-id: https://svn.eduke32.com/eduke32@6485 1a8010ca-5511-0410-912e-c29ae57300e0
2017-10-16 03:32:34 +00:00
hendricks266
b3455b7b4d
Amend r6460 to move vm_keywords[] back to gamedef.cpp and factor the ID to keyword mapping into VM_GetKeywordForID().
...
git-svn-id: https://svn.eduke32.com/eduke32@6484 1a8010ca-5511-0410-912e-c29ae57300e0
2017-10-16 03:32:30 +00:00
hendricks266
95d93f770e
Eliminate the force-disabling of glprojectionhacks during showview.
...
Please notify me if this change negatively affects your code.
git-svn-id: https://svn.eduke32.com/eduke32@6473 1a8010ca-5511-0410-912e-c29ae57300e0
2017-10-09 07:37:17 +00:00
terminx
938d444b35
This should fix the scrambled log output when the game crashes while executing a CON script somewhere
...
git-svn-id: https://svn.eduke32.com/eduke32@6460 1a8010ca-5511-0410-912e-c29ae57300e0
2017-10-04 22:30:53 +00:00
hendricks266
11ce89d294
Fix randomseed in multiplayer.
...
Merged from private network branch.
Patch by [IFOC]75, prepared by Striker.
git-svn-id: https://svn.eduke32.com/eduke32@6454 1a8010ca-5511-0410-912e-c29ae57300e0
2017-09-27 02:30:28 +00:00
terminx
98cd4a5c6c
Use tokenmap_t struct to define all CON keywords
...
git-svn-id: https://svn.eduke32.com/eduke32@6432 1a8010ca-5511-0410-912e-c29ae57300e0
2017-08-27 10:20:23 +00:00
hendricks266
af679d2ca8
CON: Call I_ClearAllInput before Anim_Play when executing startcutscene.
...
git-svn-id: https://svn.eduke32.com/eduke32@6428 1a8010ca-5511-0410-912e-c29ae57300e0
2017-08-06 13:45:05 +00:00
hendricks266
df70cbbbeb
CON: Add "stopallmusic" command.
...
git-svn-id: https://svn.eduke32.com/eduke32@6427 1a8010ca-5511-0410-912e-c29ae57300e0
2017-08-06 13:45:02 +00:00
hendricks266
c750f8262a
Partial build fix for Lunatic.
...
git-svn-id: https://svn.eduke32.com/eduke32@6426 1a8010ca-5511-0410-912e-c29ae57300e0
2017-08-06 13:44:59 +00:00
hendricks266
cbb18f5c70
CON: Add starttrackslot <volume> <level>
...
Clobbering ud.volume_number is a hack no one should need to use any more.
Only this command supports specifying -1 for volume to access the main menu, briefing, etc themes.
git-svn-id: https://svn.eduke32.com/eduke32@6414 1a8010ca-5511-0410-912e-c29ae57300e0
2017-08-01 09:48:59 +00:00
hendricks266
bb13b0db85
CON: Fix checkavailweapon command.
...
git-svn-id: https://svn.eduke32.com/eduke32@6408 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-30 21:23:51 +00:00
hendricks266
0f54975751
Yet another round of trailing whitespace.
...
git-svn-id: https://svn.eduke32.com/eduke32@6400 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-29 20:39:46 +00:00
hendricks266
32ed49e5c5
Slightly change readarrayfromfile so that attempting to read arrays of a size that does not evenly divide into the requested type rounds up instead of down and zero-pads the difference.
...
This should help hackish persuits such as reading map files through this command.
git-svn-id: https://svn.eduke32.com/eduke32@6394 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-28 08:27:38 +00:00
hendricks266
201ee80f87
Fix readarrayfromfile with bitmaps and uint32s. Also improve it.
...
git-svn-id: https://svn.eduke32.com/eduke32@6393 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-28 08:27:35 +00:00
hendricks266
6e7daf6d1b
Introduce GAMEARRAY_SIZE_MASK.
...
git-svn-id: https://svn.eduke32.com/eduke32@6392 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-28 08:27:31 +00:00
hendricks266
b01b25bc93
Revise part of r6385 for clarity.
...
git-svn-id: https://svn.eduke32.com/eduke32@6391 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-28 08:27:28 +00:00
terminx
eeaf1f1d54
Build fix
...
git-svn-id: https://svn.eduke32.com/eduke32@6387 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-27 10:08:52 +00:00
terminx
494f09f80c
Build fix
...
git-svn-id: https://svn.eduke32.com/eduke32@6386 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-27 10:02:13 +00:00
terminx
769b1255f6
I think this fixes readarrayfromfile and writearraytofile
...
git-svn-id: https://svn.eduke32.com/eduke32@6385 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-27 09:13:37 +00:00
terminx
b00266b47f
CON-solidation
...
Sorry for the shitty pun
git-svn-id: https://svn.eduke32.com/eduke32@6382 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-27 09:13:21 +00:00
terminx
dad337add8
Fix gcc 7.1.0 warnings
...
git-svn-id: https://svn.eduke32.com/eduke32@6370 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-18 20:53:41 +00:00
terminx
484f640f71
Maybe, possibly, unfuck gamearrays.
...
git-svn-id: https://svn.eduke32.com/eduke32@6368 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-18 20:53:22 +00:00
terminx
bf18114d31
Fix compiler warning
...
git-svn-id: https://svn.eduke32.com/eduke32@6363 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-18 20:52:36 +00:00
hendricks266
1b1fd9e0eb
CON: ifspawnedby and ifwasweapon are really the same command. Merge the code to execute them.
...
git-svn-id: https://svn.eduke32.com/eduke32@6360 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-15 21:56:12 +00:00
terminx
3141084a65
More array work: support for reading and writing the new array types from disk. Not tested.
...
git-svn-id: https://svn.eduke32.com/eduke32@6357 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-11 04:03:01 +00:00
terminx
f164fde06b
What a hilarious typo
...
git-svn-id: https://svn.eduke32.com/eduke32@6348 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-08 22:01:59 +00:00
terminx
8be8ae8743
Revise some CON VM error messages for consistency. Upgrade a couple of CON VM errors to a new critical error type which pops up a dialog box when the error is encountered. If you've been writing crappy scripts that spam "divide by zero!" errors into the log that you've been ignoring, you're gonna have a bad time.
...
git-svn-id: https://svn.eduke32.com/eduke32@6345 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-08 19:41:55 +00:00
terminx
da0cc1b9bd
Some work on CON arrays. Hopefully nothing is broken!
...
git-svn-id: https://svn.eduke32.com/eduke32@6343 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-08 19:41:43 +00:00
terminx
19c58edb40
Add support for bitmap gamearrays and expose gotpic to CON
...
git-svn-id: https://svn.eduke32.com/eduke32@6342 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-08 19:41:36 +00:00
terminx
b3b40c9581
Allow writing to 8 and 16-bit CON arrays
...
git-svn-id: https://svn.eduke32.com/eduke32@6338 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-08 05:18:43 +00:00
terminx
3b1cf74fea
Revise the error message for the default case in VM_Execute()
...
git-svn-id: https://svn.eduke32.com/eduke32@6326 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-05 05:42:42 +00:00
hendricks266
8d3e0a630e
Gv_FillWithVars
...
git-svn-id: https://svn.eduke32.com/eduke32@6323 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-05 05:38:11 +00:00
hendricks266
980b2be584
Move addammo into own function.
...
git-svn-id: https://svn.eduke32.com/eduke32@6321 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-05 05:38:05 +00:00
hendricks266
fb337a80b1
Move addinventory command code into its own function.
...
git-svn-id: https://svn.eduke32.com/eduke32@6320 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-05 05:38:02 +00:00
hendricks266
57a7802f6c
Factor out modification of DukePlayer_t->actors_killed into P_AddKills().
...
git-svn-id: https://svn.eduke32.com/eduke32@6319 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-05 05:37:58 +00:00
hendricks266
01b6047377
Trailing whitespace.
...
git-svn-id: https://svn.eduke32.com/eduke32@6303 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-27 11:01:22 +00:00
terminx
6aa1d36f99
Inconsequential formatting
...
git-svn-id: https://svn.eduke32.com/eduke32@6296 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-27 02:24:02 +00:00
hendricks266
cb12f25cda
Add a wallext structure for non-Lunatic builds so they can have a blend member too.
...
git-svn-id: https://svn.eduke32.com/eduke32@6276 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-25 11:23:53 +00:00
hendricks266
9286a4d40e
Fix Lunatic build.
...
git-svn-id: https://svn.eduke32.com/eduke32@6274 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-25 11:23:41 +00:00
hendricks266
df317aa741
CON: Add drawline256 and drawlinergb commands that call the internal functions used for the automap lines.
...
drawline256 <x0> <y0> <x1> <y1> <index>
drawlinergb <x0> <y0> <x1> <y1> <index> <rgb>
The coordinates are xdim<<12/ydim<<12 based, not 320<<16x200<<16.
<index> is a palette index, and for drawlinergb is used as a fallback in the software renderer.
<rgb> is encoded the same as PROJ_FLASH_COLOR.
git-svn-id: https://svn.eduke32.com/eduke32@6261 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-24 09:21:03 +00:00
hendricks266
517517a1bb
CON: Add getclosestcol command, which finds the closest palette index given
...
getclosestcol <return> <color> <limit>
<color> is encoded the same as PROJ_FLASH_COLOR.
<limit> is the index of the last palette color that should be considered. Use 255 for the whole palette, 254 to exclude the transparent color, 239 to exclude Duke 3D's fullbrights, etc.
git-svn-id: https://svn.eduke32.com/eduke32@6259 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-24 09:20:54 +00:00
terminx
eae02b26a1
Respect r_maxfps in menus and on startup/bonus/end screens
...
git-svn-id: https://svn.eduke32.com/eduke32@6237 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-23 03:59:26 +00:00
terminx
4489e110de
More minor optimizations. Breaks savegames.
...
git-svn-id: https://svn.eduke32.com/eduke32@6236 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-23 03:59:19 +00:00
terminx
f698b1e733
Gamevar cleanup
...
git-svn-id: https://svn.eduke32.com/eduke32@6234 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-23 03:59:06 +00:00
terminx
54a0d8d4ae
Consty McConst
...
git-svn-id: https://svn.eduke32.com/eduke32@6232 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-23 03:58:54 +00:00
hendricks266
e2c44ae253
CON: Handle the save and savenn commands after the full tic is processed, instead of in the middle of it during execution. DONT_BUILD.
...
git-svn-id: https://svn.eduke32.com/eduke32@6222 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-22 22:49:22 +00:00
hendricks266
611031d9e8
Optimize all gametext calls.
...
git-svn-id: https://svn.eduke32.com/eduke32@6210 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-20 09:28:42 +00:00
hendricks266
f781f21ccd
Address some longstanding warnings with printf when building with MinGW's GCC 6 and newer.
...
Building with said newer versions may fix the -Wodr warning when building for release.
git-svn-id: https://svn.eduke32.com/eduke32@6140 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-05 10:05:12 +00:00
hendricks266
62a921c409
Remove the implicit "static" from our FORCE_INLINE macro.
...
This will be important for C++ member functions.
git-svn-id: https://svn.eduke32.com/eduke32@6076 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:53 +00:00
hendricks266
aa04307ad1
Route all inclusion of libc headers and most of POSIX headers through compat.h.
...
git-svn-id: https://svn.eduke32.com/eduke32@6074 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:36 +00:00
hendricks266
417b047cf3
Bring the previous commit into effect.
...
git-svn-id: https://svn.eduke32.com/eduke32@6056 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-01 10:20:54 +00:00
hendricks266
1cc9d13ccf
The great repository rearrangement of 2017.
...
Files moved but not modified. Changes to follow in a subsequent commit.
You down with CPP?
git-svn-id: https://svn.eduke32.com/eduke32@6055 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-01 10:01:11 +00:00