Build 6649
SVN-
Generale
Fix FPS limiter in EVENT_SCREEN.
Nickname SVN e nomi Git sono unificati per persona.
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.
screenpeek for EVENT_RECOGSOUND
Revert a minor change I made to EVENT_LOGO
Revise view background / border drawing code.
New event "EVENT_UPDATESCREENAREA" Use this event to change the size of the game view, similar to when you press + or -. New event "EVENT_DISPLAYBORDER" Set RETURN to change the background tile of the game view, set -1 to disable the background and border. New userdef structures "screenarea_x1", "screenarea_y1", "screenarea_x2", "screenarea_y2" Use these structures to change the boundaries of the view in EVENT_UPDATESCREENAREA. Patch from Fox.
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.
Fix issue with savemapstate/loadmapstate and gamearrays
This should fix the scrambled log output when the game crashes while executing a CON script somewhere
Pass the parameters of the warp and skill cheats to EVENT_ACTIVATECHEAT through userdef[].m_* and read them back afterward.
Make setinput work better in EVENT_PROCESSINPUT
Expose "show2dsector" to CON
Use tokenmap_t struct to define all CON keywords
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.
CON parser: Merge some cases for code size savings.