Build 10590
GIT-
allow frame drawing between segments of EVENT_WORLD/EVENT_PREWORLD chains
-
add CON_YIELD
Show details
Allows long-running CON execution to yield to rendering and player input handling.
SVN handles and Git names are merged into one person.
allow frame drawing between segments of EVENT_WORLD/EVENT_PREWORLD chains
add CON_YIELD
Allows long-running CON execution to yield to rendering and player input handling.
support sensible conversions between gamearray types when loading savegames
add .ang member for walls in CON
allow the user to choose whether to continue with internal scripts once bad CON files are encountered in their game directory
use internal CONs if external CON compilation fails, like the DOS version did.
I see now that Todd was actually very wise.
fix a rare input issue involving creating savegames while the CON script execution is lagging
detect invalid .sectnum and .statnum with setactor
fix bug in CON EVENT_SCREEN where keypresses weren't being cleared between loop iterations, preventing animations where each keypress skips a segment without bailing out of the whole thing
change crouch jump handling to short-circuit CON VM "ifp pducking" instead of short-circuiting how the player code chooses which autostep value to use
fix m32script crash
add an EVENT_INIT that fires once per explicit `include` of a script filename from the console (including from within m32_autoexec.cfg)
improve CON VM debug dump output
Replaces more or less useless offsets from script pointer with filename and line number and consolidates parameters passed to CON commands into the same line in the output.
add debug vm_preempt cvar to control CON VM preemption by frame drawing
This doesn't save to the .cfg because it's a tool for debugging and is not intended to be used as a user preference.
add projectile flags to CON default definitions
disallow drawing frames between EVENT_PREGAME iterations
stupid CON VM optimizations
Replaces VM_ASSERT macro with new VM_ABORT_IF macro, ~1-2% perf increase in real world tests using heavy scripts (Ion Fury)
cool CON optimization
WIP controller force feedback (rumble) support
Currently hard-coded with no real customization; algorithm and range of values will certainly change but the current implementation attempts to automatically discern appropriate force feedback values based on the potential damage inflicted by projectiles the player fires, events occurring in the map such as explosions and earthquakes, and on the damage the player receives. A future commit will likely contain a way to send the force feedback impulses from CON.
make actors set to move vertically in CON act as if SFLAG_SMOOTHMOVE was explicitly enabled
This smooths out stuff like octabrains and flying liztroops without making them look stupid when they move on the ground.
add predefined TILE_ANIM and TILE_VIEWSCR tokens for CON
remove extra S_SoundIsValid() check from A_PlaySound()
This is checked in both S_PlaySound() and S_PlaySound3D() anyway, and we need to get to that stage of execution in order for EVENT_SOUND to fire.
zero player .horizRecenter and .horizSkew when zeroing return_to_center from CON
additional gamevar verification when loading savegames
add predefined MAXLEVELS and MAXVOLUMES for CON
in EVENT_LOADGAME, give RETURN a default value equaling the userbytever field from the savegame header and relax sv_loadheader() check
add xfliphighlightedsectors/yfliphighlightedsectors/xmirrorhighlightedsectors/ymirrorhighlightedsectors to m32script, remove read-only flag from startpos vars so the map start position can be changed from scripts
break from CON while loops on VM_RETURN
This should fix terminx/eduke32#16
CON control over player height and other properties
You're gonna have to talk to me or read the source for full details on usage, sorry. These are also all still liable to change in future builds, either in name or in functionality.
per-player gravity control through .gravity member of player struct
The default value is 256 (GRAVITATIONALCONSTANT value from USER.CON + 80).
fix incorrect sound_t struct member type
This didn't really affect anything because this functionality isn't exposed to CON yet.
remove STATIC prefix from the CON dynamic label preprocessor definitions because it's ugly
This also adds bounds checking to the DYNAMICSOUNDMAP and DYNAMICTILEMAP macros, and reduces the size of the corresponding arrays to something more reasonable.
expose gotsector[] to CON for checking to see if a particular sector was drawn during the last frame
clamp m32script line drawing color range to 255 instead of 15
handle negative color indexes for m32script printext16 the same as the line drawing commands
remove INTERNAL ERROR messages from Gv_GetVarIndex() and Gv_GetArrayIndex()
This is only ever used for refreshing pointers to certain special gamevars and for checking if variables in savegames exist in the currently running script--it doesn't need to print errors to the console.
get rid of separate check for common gamevar types before the switches in getvar__ and setvar__
It wasn't any faster.
Merge branch 'goodbye_lunatic' into 'master'
Remove Lunatic-related code This removes almost anything related to Lunatic, not just LunaCON. It may remove a bit more than desired, e.g., functions that can be used as possible hooks (I believe that this was one purpose of LUNATIC_EXTERN, now replaced with static anywhere). Some bits like the optional fix for software rendering of walls with non-POT tile heights remain, albeit they're still compile-time disabled. As previously written, I still know that Philipp Kutin was spending a lot of time on this.
mark compiled CON_MOVE/CON_AI/CON_ACTION with a trailing value
This is so I can tell the difference between actor .t_data[] values that are actually set to something defined in CON versus bullshit arbitrary internal usage of the same variable, which I need for a future commit.