Build 10429
GIT-
Add missing GAMEVAR_RAWQ16PTR case in VM_GAMEVAR_OPERATOR
SVN handles and Git names are merged into one person.
Add missing GAMEVAR_RAWQ16PTR case in VM_GAMEVAR_OPERATOR
Add warning when `terminate` found outside state or event
Add warning when `break` found inside loop (and not inside `switch`)
Add terminate
Add exit and continue
Add prependstate and appendstate
Add getarraysequence and setarraysequence
Patch from Fox.
Factor out implementations of setarray and resizearray commands
Patch from Fox.
Add userdef .gamepadactive
Add getgamefuncbind
Implement a new VM dispatch method using an explicit jump table
Most of this patch is by pogokeen.
Macro-ize CON keyword tokens in gamedef.h and gameexec.cpp
Most of this patch is by pogokeen.
Move five missed opcodeless keywords down in gamedef.h
#ifdef out deactivated stuff that should not be half-in, half-out
Add EVENT_DISPLAYROOMSCAMERATILE
Add "swaparrays" command, which performs a pointer-swap on arrays of the same storage class.
Factor out the parsing of gamearray names.
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.
Implement the copy command for GAMEARRAY_BOOLEAN.
Fix two regressions completely breaking the correctness of the copy command, introduced in r6343.
make setting a sector's .wallptr call setfirstwall() instead of setting it directly and corrupting the map
Revert r6526 and r6527. This restores the longstanding behavior of the killit command, and setting sprites' xrepeat to zero, to not actually delete sprites unless their statnum is STAT_ACTOR or STAT_MISC. Be sure to set a sprite's statnum to one of these statnums if you want it to be deleted.
This should fix the broken E1L1 sector warp in the existing release of the Duke 64 mod, and the Polymer light culling used in HHR.
Add spawnceilingglass, spawnwallglass, and spawnwallstainedglass commands.
Patch from Striker.
Add resetplayerflag 8, which mandates reload and not savegame load in single player.
Add EVENT_DAMAGESPRITE, EVENT_POSTDAMAGESPRITE, EVENT_DAMAGEWALL, EVENT_DAMAGECEILING, and EVENT_DAMAGEFLOOR.
In these events, THISACTOR is the projectile (or source of damage), and RETURN is the sprite/wall/sector affected. Set RETURN to -1 to cancel any hardcoded effects. ud.return 1 through 5 are the parameters passed to hitradius if RADIUSEXPLOSION is the source of the damage. ud.return 1 is -1 otherwise. New tokens "damageeventtile" and "damageeventtilerange" or tiledata[].gameflags & SFLAG_DAMAGEEVENT to enable processing for receivers with corresponding tilenums. CON commands to replicate hardcoded effects (beyond switching tilenums, such as spawning glass) are forthcoming. Use of EVENT_DAMAGEHPLANE is hereby discouraged. Patch from Striker, based on work by Fox.
Add gettiledata/settiledata. Same members as tiledata[] quick access struct. Not all fields writable.
Patch from Striker.
Change OSD_Printf to initprintf for addlog and addlogvar
Add undefinecheat.
Add resetplayerflag 4, which always loads if possible
Remove GAMEFUNC_* hardcoded labels.
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.
Add STR_USERMAPFILENAME for qgetsysstr.
Patch from Fox.
Add commands "swaptrackslot" and "preloadtrackslotforswap"
Add user_map and m_user_map read-only userdefs.
Add EVENT_RECOGSOUND.
Set RETURN to -1 to disable the sound played when an enemy awaken. You have to use a command to play a sound, because the bosses use globalsound. Patch from Fox.
Add EVENT_OPENMENUSOUND.
Set RETURN to the sound played when the menu is opened. -1 to cancel. Patch from Fox.
Add EVENT_DISPLAYEND and EVENT_DISPLAYROOMSEND.
EVENT_DISPLAYROOMSEND: Triggered right after the game world is rendered and before any sprite above the screen. EVENT_DISPLAYEND: Triggered after the game draws everything above the screen, including menus. A counterpart to EVENT_DISPLAYSTART. Patch from Fox.
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.
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.
Call I_ClearAllInput before Anim_Play when executing startcutscene.
Add "stopallmusic" command.
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.