Commit Graph

7174 Commits

Author SHA1 Message Date
hendricks266 e7cbf0b1a9 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.

git-svn-id: https://svn.eduke32.com/eduke32@6624 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 11:14:08 +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 0d1137be5d Add read-only userdefs music_episode and music_level.
TODO: Exposing whether any music is currently playing at all. (No, it is not ud.musictoggle.)

git-svn-id: https://svn.eduke32.com/eduke32@6622 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 11:13:59 +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 6470b51fb9 Properly save the currently playing music track in savegames.
Bump BYTEVERSION.

git-svn-id: https://svn.eduke32.com/eduke32@6620 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 11:13:49 +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 254b822003 When playing a user map, print "User Map: <filename>" to the log instead of "E1L8: User Map".
git-svn-id: https://svn.eduke32.com/eduke32@6618 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 11:13:37 +00:00
hendricks266 2679b42e72 When playing a user map, don't show an episode name in the automap.
git-svn-id: https://svn.eduke32.com/eduke32@6617 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 11:13:34 +00:00
hendricks266 0ca09c08da CON: Add user_map and m_user_map read-only userdefs.
git-svn-id: https://svn.eduke32.com/eduke32@6616 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 11:13:30 +00:00
hendricks266 03fa42b17e Move G_HaveUserMap to game.h, retitle it Menu_HaveUserMap, and add a proper G_HaveUserMap.
git-svn-id: https://svn.eduke32.com/eduke32@6615 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 11:13:21 +00:00
hendricks266 b25e48a1b3 boardfilename cleanups
git-svn-id: https://svn.eduke32.com/eduke32@6614 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 11:13:16 +00:00
hendricks266 2cdf98f07a 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

git-svn-id: https://svn.eduke32.com/eduke32@6613 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 02:14:16 +00:00
hendricks266 c7edef4f43 New LOGO_FLAGS bits LOGO_NOHELP and LOGO_NOCREDITS.
LOGO_NOHELP: Remove the "Help" item in the main menu and the F1 key function.

LOGO_NOCREDITS: Remove the "Credits" item in the main menu.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6612 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 02:14:09 +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 29de10fc91 Maintenance on Gv_DivVar
git-svn-id: https://svn.eduke32.com/eduke32@6610 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-29 02:14:00 +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 97fd71c3db 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.

git-svn-id: https://svn.eduke32.com/eduke32@6608 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-28 04:31:04 +00:00
hendricks266 25ccdca408 Add the official Nuclear Winter demo GRP to the list of recognized GRPs.
git-svn-id: https://svn.eduke32.com/eduke32@6607 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-28 04:31:00 +00:00
hendricks266 6ffcd671fc Menu stuff
git-svn-id: https://svn.eduke32.com/eduke32@6606 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-28 04:30:57 +00:00
hendricks266 7718d661a0 Revert changes made to SIDEBOLT1 in r6244.
git-svn-id: https://svn.eduke32.com/eduke32@6605 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-28 04:30:53 +00:00
hendricks266 a2f5891064 Fix typos in r6244.
git-svn-id: https://svn.eduke32.com/eduke32@6604 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-28 04:30:50 +00:00
hendricks266 4978a8f167 Fix some preprocessor logic errors regrading GL ES on ARM devices with desktop operating systems.
git-svn-id: https://svn.eduke32.com/eduke32@6603 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-28 04:30:46 +00:00
hendricks266 af6097a281 Fix more uses of lotag with values >= 32768 beyond those reported as warnings.
git-svn-id: https://svn.eduke32.com/eduke32@6602 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-28 04:30:42 +00:00
hendricks266 1396f51ca2 Fix all "truncation of constant value" warnings in MSVC due to restoring hitag/lotag to signedness.
git-svn-id: https://svn.eduke32.com/eduke32@6601 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-28 04:30:38 +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 0bad11ee9d Fix typo in r6589.
git-svn-id: https://svn.eduke32.com/eduke32@6599 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-28 04:30:29 +00:00
hendricks266 cbbe66365f Remove function left behind in r6587.
git-svn-id: https://svn.eduke32.com/eduke32@6598 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-28 04:30:25 +00:00
hendricks266 947402e28c New LOGO_FLAGS bit LOGO_HIDEEPISODE: Omit the episode name from the automap.
Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6597 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:35:37 +00:00
hendricks266 740cedefbb New userdef structures "default_volume", "default_skill"
Lets you choose which episode or skill should be selected by default in the menus. Default values are 0 and 1, respectively.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6596 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:35:33 +00:00
hendricks266 535b7c4d66 Display sprite shadows in Polymer if dynamic lighting is disabled.
Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6595 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:35:29 +00:00
hendricks266 a96613f496 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.

git-svn-id: https://svn.eduke32.com/eduke32@6594 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:35:23 +00:00
hendricks266 8744a70dcf Fix the aspect of save thumbnails in Polymost / Polymer in widescreen.
Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6593 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:35:19 +00:00
hendricks266 6a77175ac5 New def token "shadefactor"
shadefactor <value>

Controls the level of shading in GL modes. Normally it is set to the shade at which all colors are pitch black.

The default value calculated from Duke 3D's palette is 30, but most other Build games with a different palette are calculate to 31.

This token is for GL mods without a palette.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6592 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:35:15 +00:00
hendricks266 67438d0cd2 New userdef structure: "global_r", "global_g", "global_b"
Set the tinting RGB values of textures being rendered. Can be used in DISPLAYROOMS or before rotatesprite (similar to setaspect). Remember to reset the values afterwards.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6591 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:35:11 +00:00
hendricks266 392d5fc942 Fix visibility in Polymer with r_usenewshading 4 and palette emulation off.
Move some visibility-related constants from Polymer "core" code elsewhere.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6590 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:35:06 +00:00
hendricks266 1e04f43240 New userdef structure: "menu_slidebarz", "menu_slidebarmargin", "menu_slidecursorz"
Self-explanatory. Default value for all is 65536.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6589 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:35:02 +00:00
hendricks266 4da012a15f Add an option to move the status bar to the top of the screen in the Android version.
Restores a feature temporarily disabled in r6553.

Currently only supports the modern status bar.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6588 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:34:57 +00:00
hendricks266 150ddded12 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.

git-svn-id: https://svn.eduke32.com/eduke32@6587 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:34:51 +00:00
hendricks266 1031f2dec0 Make cutscene "aspect" def token work with ANMs too.
Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6586 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:34:46 +00:00
hendricks266 85d0a3c520 New userdef structure "menubackground"
Set to 0 to disable the black transparent mask below the in-game menu.

Patch from Fox.

git-svn-id: https://svn.eduke32.com/eduke32@6585 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:34:43 +00:00
hendricks266 cf64b480f1 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.

git-svn-id: https://svn.eduke32.com/eduke32@6584 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:34:38 +00:00
hendricks266 29543fd087 Menus: Fix current selection of episode menu when you return from the skill menu.
git-svn-id: https://svn.eduke32.com/eduke32@6583 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-26 04:34:33 +00:00
hendricks266 9949a3cf5c When SE 17 can't find the next sector for the floor, use the heuristic added for ceilings in r3013 to determine the floorz, replacing the game exit added in r2971.
git-svn-id: https://svn.eduke32.com/eduke32@6582 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-18 04:28:55 +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
hendricks266 ecdb08eb68 Revert slight change to fall behavior of pickup sprites in r6500.
git-svn-id: https://svn.eduke32.com/eduke32@6580 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-15 17:46:28 +00:00
hendricks266 fcd9238a67 Don't stomp on shrunken teammates unless friendly fire is enabled.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@6579 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-15 17:46:25 +00:00
hendricks266 8fa438dc0b Fix friendly fire damage conditions in multiplayer.
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@6578 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-15 17:46:21 +00:00
hendricks266 ee298f18b8 Add is_(un)signed to compat.h, with specializations for the Tracker classes.
DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@6577 1a8010ca-5511-0410-912e-c29ae57300e0
2018-01-13 22:15:07 +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