Build 6737
SVN-
General
Improve CON perf tracking's ability to determine actor names
SVN handles and Git names are merged into one person.
Improve CON perf tracking's ability to determine actor names
Backport some CON profiling stuff from Lunatic. Use "printtimes" in the console.
Fix up CON to work with Q16.16 values
Flesh out Fix16 with some operators we need to work with it from CON
Move "EVENT_DISPLAYREST" after "EVENT_DISPLAYCROSSHAIR".
Patch from Fox.
1. Fix translucency in the mouse cursor.
2. In "EVENT_DISPLAYCROSSHAIR" and "EVENT_DISPLAYCURSOR", make "userdef[].return" 1 and 2 return the coordinates, and 3 the alpha ("EVENT_DISPLAYCURSOR" only). 3. New event "EVENT_DISPLAYPOINTER" Similar to "EVENT_DISPLAYCURSOR", it is used to display the pointer that controls the aiming in Wii. "RETURN" / "userdef[].return" work in the same way as "EVENT_DISPLAYCURSOR". Patch from Fox.
New userdef structure "return"
This works like an extension of the RETURN gamevar and it accepts multiple values. Reading or writing the value of "userdef[].return 0" is the same as reading of writing the RETURN gamevar. The following userdefs are now aliases: - m_origin_x = userdef[].return 1 - m_origin_y = userdef[].return 2 - screenarea_x1 = userdef[].return 0 - screenarea_y1 = userdef[].return 1 - screenarea_x1 = userdef[].return 2 Additionally, the API for EVENT_PLAYLEVELMUSICSLOT is hereby redefined to use return 1 and 2 (not 0) _instead of_ ud.m_*_number. Patch from Fox.
Save the player's map time before EVENT_ENDLEVELSCREEN, which happens regardless of whether the hardcoded bonus screen is displayed.
Make sure ud.displaybonusscreen is set to 1 if you want this to take place. The bonus screen can still be skipped by setting RETURN to -1 in EVENT_ENDLEVELSCREEN.
Some screentext fixes (that don't affect CON scripts)
Change OSD_Printf to initprintf for addlog and addlogvar
Add undefinecheat.
Add resetplayerflag 4, which always loads if possible
Replace bespoke CON/def module and clipmap filename array reallocing with a new class, GrowArray.
Remove GAMEFUNC_* hardcoded labels.
Fix FPS limiter in EVENT_SCREEN.
Apply the FPS limiter to EVENT_SCREEN.
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.
New events EVENT_PLAYLEVELMUSICSLOT and EVENT_CONTINUELEVELMUSICSLOT.
Called when a music track will be started from the beginning, and when the current track is continued after loading a save, etc. The requested track is passed into PLAYLEVELMUSICSLOT via ud.m_volume_number and ud.m_level_number.
Add commands "swaptrackslot" and "preloadtrackslotforswap"
Add user_map and m_user_map read-only userdefs.
Systematize the appearance of the menu fonts using the DOS version as a reference.
New events: "EVENT_MENUCURSORLEFT" "EVENT_MENUCURSORRIGHT" "EVENT_MENUCURSORSHADE" "EVENT_MENUSHADESELECTED" New userdef structures: "menu_shadedeselected" "menu_shadedisabled" "menutext_zoom" "menutext_xspace" "menutext_pal" "menutext_palselected" "menutext_paldeselected" "menutext_paldisabled" "menutext_palselected_right" "menutext_paldeselected_right" "menutext_paldisabled_right" "gametext_zoom" "gametext_xspace" "gametext_pal" "gametext_palselected" "gametext_paldeselected" "gametext_paldisabled" "gametext_palselected_right" "gametext_paldeselected_right" "gametext_paldisabled_right" "minitext_zoom" "minitext_xspace" "minitext_tracking" "minitext_pal" "minitext_palselected" "minitext_paldeselected" "minitext_paldisabled" "minitext_palselected_right" "minitext_paldeselected_right" "minitext_paldisabled_right" "menutitle_pal" "slidebar_palselected" "slidebar_paldisabled" Self-explanatory. Use in conjunction with "menutext_tracking" and "gametext_tracking" ("mgametext_tracking" is now ignored). The values for disabled shade is added to the selected or deselected shades. The palettes have a disabled > selected > deselected hierarchy, and are applied if not zero. Patch from Fox
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.
Add EVENT_DISPLAYOVERHEADMAPPLAYER.
RETURN is the tilenum to be displayed. It is pre-populated with what the game will display for the current frame. Set RETURN to -1 to disable.
Add "Alternate Weapon" key similar to Shadow Warrior Classic Redux.
When pressed it switches between pipebomb / detonator or shrinker / expander. New event "EVENT_ALTWEAPON" Akin to "EVENT_PREVIOUSWEAPON" and "EVENT_NEXTWEAPON". RETURN is set to 12. Patch from Fox.
New userdef structure: "statusbarflags", "statusbarrange", "statusbarcustom"
"statusbarflags" is a bitfield. Values are: STATUSBAR_NONONE = 1 STATUSBAR_NOMINI = 2 STATUSBAR_NOFULL = 4 STATUSBAR_NOSHRINK = 8 STATUSBAR_NOFRAGBAR = 16 STATUSBAR_NOOVERLAY = 32 STATUSBAR_NOMODERN = 64 Default value is 8. In case you modify it, you also have to set the other status bar related userdefs in EVENT_SETDEFAULTS. Default values in EDuke32 are: screen_size = 4; statusbarmode = 1; althud = 1; "statusbarrange" is used to add more alternatives for the status bar without breaking the option in the menu. If used, the mini status bar (screen_size = 4) will cycle through "statusbarcustom" when changing the screen size. Also fix the size of the viewport when the screen is shrunk and the scale of the status bar is not 100%. Patch from Fox.
Add new events at various points that display hardcoded screens.
New event "EVENT_MAINMENUSCREEN" Triggered before the main menu is displayed. Set RETURN to -1 to disable the screens that appear before the main menu. New event "EVENT_NEWGAMESCREEN" Triggered when a new game is started. Set RETURN to -1 to disable The Birth intro animation. New event "EVENT_ENDLEVELSCREEN" Triggered when a level ends. Set RETURN to -1 to disable the bonus and deathmatch score screens after a level ends. New event "EVENT_EXITGAMESCREEN" Triggered when a running game is ended. Set RETURN to -1 to disable the deathmatch score screen when you quit mid-game. New event "EVENT_EXITPROGRAMSCREEN" Triggered when the program is closed. Set RETURN to -1 to disable the shareware or TEN screen,sif they were enabled in LOGO_FLAGS. Patch from Fox.
New event "EVENT_SETDEFAULTS".
Use this event to change the value of userdefs when initializing cfg settings with defaults. Patch from Fox.
New def token for "cutscene": "aspect"
Overrides the aspect ratio for IVF files. cutscene <path> { aspect <numerator> <denominator> } Note: For ANMs, you can use rotatesprite and setaspect to draw TILE_ANIM (currently defined as 30716) in EVENT_CUTSCENE with a custom aspect. Patch from Fox.