terminx
fa5ff547c8
Rename stupid structure member I probably named when I was high
...
git-svn-id: https://svn.eduke32.com/eduke32@7775 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:39:06 +02:00
pogokeen
cdd83905ca
Fix TROR & skyboxes to work with mirrors in Software & Polymost
...
git-svn-id: https://svn.eduke32.com/eduke32@7733 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:59:17 +02:00
pogokeen
19c2c690d3
Fix latency issue introduced by G_FPSLimit() handling of videoNextPage() that was causing frames to be delayed presentation until after the next frame is prepared.
...
videoNextPage() is now called immediately after preparing the frame for drawing, outside of G_FPSLimit() but on the condition that its return value is true.
git-svn-id: https://svn.eduke32.com/eduke32@7730 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:32:27 +02:00
terminx
00222e05f6
Use remove_pointer_t instead of regular std::remove_pointer and add a definition for it for CXX11 builds
...
git-svn-id: https://svn.eduke32.com/eduke32@7719 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:46 +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
02ef02872a
Replace manual casts of sprite and wall pointers to vec2/3_t with use of the anonymous union
...
git-svn-id: https://svn.eduke32.com/eduke32@7697 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
# source/build/src/polymost.cpp
2019-09-20 12:02:26 +02:00
terminx
605d88bb41
Better stupid names for stupid macros in stupid function
...
git-svn-id: https://svn.eduke32.com/eduke32@7670 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:48 +02:00
terminx
c3f7c26708
Sanitize A_GetFurthestAngle() return value
...
git-svn-id: https://svn.eduke32.com/eduke32@7669 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:46 +02:00
terminx
509febe25a
Fix actor z position update bug
...
git-svn-id: https://svn.eduke32.com/eduke32@7667 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:42 +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
7659e816fa
CON_USE_COMPUTED_GOTO eval macro micro-optimization
...
This is almost as fast as ditching the bounds check here entirely.
git-svn-id: https://svn.eduke32.com/eduke32@7657 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:19 +02:00
terminx
9ba2a3b719
Fix old issue with VM_CONDITIONAL macro
...
git-svn-id: https://svn.eduke32.com/eduke32@7655 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:38:46 +02:00
terminx
e69fb3934e
Rename Gv_GetArrayCountFromFile() to Gv_GetArrayCountForAllocSize()
...
git-svn-id: https://svn.eduke32.com/eduke32@7654 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:38:43 +02:00
terminx
52dde4ef32
Rename Gv_SetVarX() to Gv_SetVar() (overloaded)
...
git-svn-id: https://svn.eduke32.com/eduke32@7653 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:38:41 +02:00
terminx
0ff1188b59
Rename Gv_GetVarX() to Gv_GetVar() (overloaded)
...
git-svn-id: https://svn.eduke32.com/eduke32@7652 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:38:38 +02:00
terminx
6db4ac3b01
const correctness that I didn't have another commit to squash into
...
git-svn-id: https://svn.eduke32.com/eduke32@7648 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:27:31 +02:00
terminx
0cbb1df2d1
Rename "loopcnt" to "vm_execution_depth" and CON_DIRECT_THREADING_DISPATCH to CON_USE_COMPUTED_GOTO
...
Also removes a redundant "break" statement in builds not using CON_USE_COMPUTED_GOTO.
git-svn-id: https://svn.eduke32.com/eduke32@7647 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:27:29 +02:00
terminx
058c1a8060
Simplify the beginning of VM_Execute()
...
This also moves the loop control stuff into #ifndef CON_DIRECT_THREADING_DISPATCH blocks, since we don't actually need a loop anymore when using the computed goto stuff.
git-svn-id: https://svn.eduke32.com/eduke32@7646 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:27:26 +02:00
terminx
9ac1ce04d6
Simplify CON_FINDNEARACTOR family of functions and restore the original behavior of returning the nearest sprite instead of any sprite that satisfies the condition
...
git-svn-id: https://svn.eduke32.com/eduke32@7641 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:21:48 +02:00
terminx
271cdeaf5d
Fix errant "continue" found remaining in the CON_FINDNEARACTOR family of functions
...
git-svn-id: https://svn.eduke32.com/eduke32@7640 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:21:46 +02:00
terminx
6a458273a0
Replace a handful of accesses to sprite[vm.spriteNum] with accesses to vm.pSprite
...
It looks like these were simply missed when vm.pSprite was initially added.
git-svn-id: https://svn.eduke32.com/eduke32@7639 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:21:44 +02:00
terminx
d1af530b01
Add VM_ASSERT() macro for handling VM error conditions
...
This is for errors that simply check a condition (surrounded with EDUKE32_PREDICT_FALSE) and bail out with CON_ERRPRINTF() and abort_after_error(). Not everything that fits this description has been transitioned to use the new macro yet.
git-svn-id: https://svn.eduke32.com/eduke32@7638 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:21:41 +02:00
terminx
f8fba45117
Tweak inlined VM_OnEvent() internals, biggest change being the removal of two instances of EDUKE32_PREDICT_FALSE
...
git-svn-id: https://svn.eduke32.com/eduke32@7637 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:21:39 +02:00
terminx
562e6f419c
Use function overloading to clean up some of the CON event execution function names
...
git-svn-id: https://svn.eduke32.com/eduke32@7636 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:21:37 +02:00
terminx
078ef9b871
Optimize A_Execute() control flow
...
git-svn-id: https://svn.eduke32.com/eduke32@7635 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:21:35 +02:00
terminx
de695f22bc
Better VM_DummySprite()
...
git-svn-id: https://svn.eduke32.com/eduke32@7634 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:21:33 +02:00
terminx
3577d8a032
Clean up Lunatic stuff in VM_AlterAng()/VM_Move()/VM_UpdateAnim()/A_Execute()
...
git-svn-id: https://svn.eduke32.com/eduke32@7633 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:21:30 +02:00
terminx
e2f43a59a7
Add EDUKE32_PREDICT_FALSE to EVENT_ANIMATESPRITES check in G_SaveMapState() and G_RestoreMapState()
...
git-svn-id: https://svn.eduke32.com/eduke32@7632 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:21:28 +02:00
terminx
92174a0cf9
Minor VM_Execute() maintenance
...
git-svn-id: https://svn.eduke32.com/eduke32@7631 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:21:26 +02:00
terminx
e25a197f3e
Piddly fart bullshit changes that don't really do anything
...
git-svn-id: https://svn.eduke32.com/eduke32@7606 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:52:31 +02:00
terminx
301ac48ccd
Utilize the types added in the previous commit
...
This patch is a bit large.
git-svn-id: https://svn.eduke32.com/eduke32@7603 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/include/mdsprite.h
# source/build/src/build.cpp
# source/build/src/polymer.cpp
# source/build/src/polymost.cpp
# source/build/src/voxmodel.cpp
2019-09-19 14:46:31 +02:00
terminx
e5c979c997
CON_UPDATESECTOR/CON_UPDATESECTORZ: only use sprite[vm.spriteNum].sectnum if the initial value of the input/output parameter is outside the range of 0 - MAXSECTORS-1
...
git-svn-id: https://svn.eduke32.com/eduke32@7579 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:34 +02:00
hendricks266
23ba7b1550
Tiny performance cleanup in G_ShowView
...
git-svn-id: https://svn.eduke32.com/eduke32@7491 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:56:37 +02:00
terminx
d48ca24079
This should fix most of the remaining issues with projectiles colliding with ledges they shouldn't be hitting
...
git-svn-id: https://svn.eduke32.com/eduke32@7436 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:14:26 +02:00
terminx
bafc3b45a2
Fix "findnearactor" family of CON functions
...
git-svn-id: https://svn.eduke32.com/eduke32@7423 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 11:49:00 +02:00
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