Commit Graph
260 Commits
Author SHA1 Message Date
ac-stef 03e21b097d fix stuff found by cppcheck
almost 3000 lines of "errors" contained one actual memleak, one actually
unused variable and three actual ambiguous code parts

from cppcheck website: "The goal is to detect only real errors in the
 code (i.e. have zero false positives)." :)

thx for finding five problems in our code
2017-06-17 12:40:35 +02:00
ac-stef 30a0e8608c menu code cleanup and subdirectory support
menuitemmapload mapname action [hoveraction [desc]]

    create menu entry for a map file

  menudirlistsub action dots

    adds subdirectory entries to a menu with a files list
    has to come after the menudirlist command
    <action> is the command to be executed, when the menu entry is chosen
    if <dots> is 1, an entry ".." is added

  enumfiles path [extension]

    lists files in a directory
    if extension is specified, only files of that extension are listed
    if the extension is "dir", only directories are listed

DOCREF menuitemmapload menudirlistsub enumfiles
2017-06-12 20:07:11 +02:00
ac-stef 7a02ccd8b7 only load map descriptions and preview pictures when needed
+ memleak fixed
+ possible NULL dereference fixed
2017-06-12 03:24:34 +02:00
ac-stef 06b9d3103d remove maploaditemlength
and add map name to preview picture

DOCREF maploaditemlength
2017-06-11 17:07:49 +02:00
ac-stef 800e4f3a13 add reset option for loadcrosshair
loadcrosshair reset

    loads all default crosshairs (including teammate and scope)

    short form of "loadcrosshair default default.png ; loadcrosshair
    scope red_dot.png ; loadcrosshair teammate teammate.png"

DOCREF loadcrosshair
2017-06-10 00:15:58 +02:00
ac-stef 0e78c1e9dd fix empty menu footers
thx BrutalSystem
2017-06-06 19:19:57 +02:00
ac-stef dbcb040eeb menu code cleanup
* fix some memory leaks
* rename stuff
* fix crash

Removed commands and variables:

  chmenumdl (replaced by menumdl)

  scorefont (replaced by "menufont score mono")

  menuitemvar (better handled with fully dynamic menus)

Changed commands:

  menufont menu font

    Sets the font for a specific menu. If menu is "", the currently
    initialised menu is used. Example: menufont score mono

  menumdl menu mdl anim rotspeed scale

    Assumes the function of the previous chmenumdl. If menu is "", the
    currently initialised menu is used. Specifies, which model to render
    and how. If only menu is specified, no model is rendered.

DOCREF chmenumdl scorefont menufont menumdl menuitemvar
2017-06-06 13:17:20 +02:00
ac-stef 7948212234 add radio buttons and simplify sliders
- omit step size for sliders with value descriptions
- optionally auto-determine max value by list length

  menuitemslider text min max value display action wrap
  menuitemradio text min max value display action

    text: menu item text
    min: min value
    max: max value (or optionally -1 and set by display string length)
    value: initial value
    display: list of value descriptions or value step size
    action: executed on value changes (new value in arg1)
    wrap: if 1, wrap slider around (radio buttons always wrap)

DOCREF menuitemslider menuitemradio
2017-06-06 13:17:20 +02:00
ac-stef c9ddadd525 per-slider option to wrap around
menuitemslider text min max val step display action wrap

DOCREF menuitemslider
2017-06-05 15:14:40 +02:00
ac-stef d81071f200 provide HOME for all
...menus
2017-06-04 17:43:44 +02:00
ac-stef 72e5b08463 add edit info panel
updateeditinfopanel is a cubescript hook to provide additional information
about the current edit situation, like, for example, the closest entity.

The returned text is rendered on the right side of the screen.

Default for updateeditinfopanel is explainclosestentity which provides
detailed info about the closest entity.

  editinfopanelmillis <n>

    update the edit info panel every n milliseconds

  hideeditinfopanel 0|1

    render (0) or hide (1) the edit info panel

DOCREF updateeditinfopanel editinfopanelmillis hideeditinfopanel
2017-05-30 10:43:55 +02:00
ac-stef 8ece94d5bb allow menu checkboxes to change position
and: fix enumsounds, kill some CR, cleanup

menuitemcheckbox <text> <value> <action> <position>

  Now takes an optional fourth parameter "position" in the range from 0
  to 100, default 0, which moves the position of the checkbox over the
  width of a text input or slider, with 100 being left and 0 being right.

DOCREF menuitemcheckbox
2017-05-24 02:09:17 +02:00
ac-stef aa2e3876f9 fix menu footer size calculation
also: limit width of item descriptions to screen width & wrap around
2017-05-18 19:29:31 +02:00
ac-stef 33af150e23 fix menu texture preview updates
it was kind of naive to hope, that newstrings would not reuse the exact
same freed memory that was used for the last string at least sometimes...
2017-05-12 13:49:23 +02:00
ac-stef 59389a14f9 use menuselectionbgcolor for all menu item types 2017-05-11 22:48:27 +02:00
ac-stef 3e1578c35f fix crash with menuselectiondescbgcolor 2017-05-07 20:30:55 +02:00
ac-stef 9739464381 unify menu slider width calculation
* fixes bug with text input fields with less than 15 chars allowed
* recalculates slider width for resolution and font changes (on menu open)
* new tab-like function for '\n' in menuitems: sync with slider width
  (see example in menus_edit.cfg in this commit)

DOCREF menuitem
2017-04-24 19:51:40 +02:00
ac-stef 227e6651f5 add option to sync tabs in menus
menusynctabstops 0|1
    if enabled(1), tab positions in a menu are synchronised
    default is off(0)
    affects menu title, header and items but not footer or descriptions

DOCREF menusynctabstops
2017-04-24 19:51:40 +02:00
aurhat 782a885289 Fix and improve menu with keyinput items
1. Added background to description of selected keyinput item.
2. Added warning to menu footer, when user tries to bind already bound key.
3. Cleanup, fixed background color in description of selected active
menu items, when "menuitem" is absent in the menu.
2017-04-22 16:14:35 +02:00
ac-stef d73b0313cb fix text input field rendering of hidden text
also: show hidden content of input field as long as CTRL is pressed
2017-04-22 15:10:02 +02:00
ac-stef c2d64d3a2b fix menu layout
- fix calculation of footer lines, menu pages and menu widths
- make sure, FONTH is never zero
- unify menu action execution
- clean up some code
2017-04-19 15:39:45 +02:00
aurhat 682c3b7425 Add number of pages in menu 2017-04-05 21:30:05 +02:00
aurhat 0c75b8ef4b Execute action after pressing Enter in menu text field 2017-03-20 22:42:21 +01:00
ac-stef 60a7fa9e17 don't pitch weapons and playermodels 2016-11-21 22:11:41 +01:00
ac-stef 8cd6d15247 hide hudgun while menu shows a mapmodel
...to avoid overlap
2016-11-20 15:20:16 +01:00
ac-stef 76fadbae52 use camera pitch when browsing mapmodels
-10°..10° is treated as zero
2016-11-17 15:30:11 +01:00
ac-stef 07d9ae608d fix menuinitselection for dynamic menus
If a menu is not (yet) big enough for the selection to be set, wait until
the menu is opened and initialised - then try again.
2016-10-01 20:08:25 +02:00
ac-stef 13e6460ff3 set lastmenu during execution of menuinit script 2016-10-01 16:51:25 +02:00
ac-stef 4b2767a96d cleanup
* removed convertcase
  use toupper (concat A B C D ....) instead

* moved several COMMAND macros to their function bodies

* cleaned up screenshot extension handling

* prefix screenshot argument with "screenshot/" and add correct extension
2016-08-31 17:20:28 +02:00
ac-stef b7d797d73c new menu for edit mode key binds
Two new commands, menuitemeditkeyinput and menuitemspectkeyinput, both
work the same as menuitemkeyinput - only for edit and spect binds.
The new edit keys menu should also work fine as edit key help :)

menuitem[|edit|spect]keyinput text bindcmd

  Menuitem, that displays "text" and all keys, that bind "bindcmd" - in
  game-, edit- or spect mode.

DOCREF menuitemeditkeyinput menuitemspectkeyinput
2016-08-26 14:34:44 +02:00
ac-stef ebd1c917dc enable the keyboard settings menu to handle multiple binds 2016-08-26 14:31:58 +02:00
ac-stef 989db7d5c8 change behaviour of menuitemtextinput
Now, if the last line of a menu is a text input item, pressing enter in
that line will not only execute the assigned command, but also close the
menu.

With this, menus without the annoying "[OK]"-button can be created.

Also: emptied text input fields don't magically fill up again, when you
deselect them.

DOCREF menuitemtextinput
2016-08-26 14:28:54 +02:00
ac-stef 2fbbb04b76 move menu background texture to packages/misc
so that altering the menu background does not change maps that use it
as texture

packages/textures/makke/menu.jpg is being kept, because maps use it
2016-08-04 20:59:03 +02:00
ac-stef 5fe69aa4b4 drop cube 1 media package support
Drop support for maps outside packages/maps and for package config files.
(never been used in AC anyway)

also: generate all map related filenames with proper path separators
2016-06-13 23:22:33 +02:00
aurhat b06a5209e3 Add background to description of active menu items
DOCREF menuselectiondescbgcolor
2015-09-21 20:36:12 +02:00
aurhat cbddcf05cf Add searching for map and demo in menu
Searching is by map/demo names and descriptions (also custom descriptions,
in case of demo).

DOCREF menudirlist
2015-09-21 20:29:15 +02:00
ac-stef 394ddd12f7 allow chmenutexture to display pictures as well
By specifying a title string in the second argument to chmenutexture,
a picture is rendered instead of a texture. The title string is
displayed instead of the texture resolution. The variable menupicturesize
holds a size modifier for pictures, similar to menutexturesize.

DOCREF chmenutexture menupicturesize
2015-09-07 14:53:56 +02:00
aurhat 3456304702 Fix formatting of menu footer in second and next lines
In second and next lines server description lost formatting, so also
colors, and it could be cut.
Now text in footer will be also divided by spaces, and not characters
(not applicable in case of long continuous strings).
2015-08-22 13:54:56 +02:00
ac-stef f3e72b8fb7 remove gettext
DOCREF gettext
2015-06-10 14:28:50 +02:00
ac-stef d3cdec0708 allow persistent menu selections
menuselectionpersistent
  Enables persistent selections for the currently displayed menu and also
  restores a previously saved selection. Probably most efficient inside
  "menuinit". The position is restored during execution of this command,
  so the menu entry has to already exist and the alias with the last
  position has to be read from saved.cfg. In autmatically created menus
  it may be necessary to execute the command with a short delay (see
  examples in this commit).

DOCREF menuselectionpersistent
2015-06-10 14:22:11 +02:00
ac-stef 4e3c40c3be clean up texture boxes in menus
too many copies of the same few lines...
2015-06-10 14:22:11 +02:00
ac-stef 148719c0f7 add script command for menu items with alternate fonts
Also: add '\a' to the list of escaped characters and remove storage of
  unneeded "filename".

mitemaltfont <altfont> <text> <action> <hoveraction> <desc>
  Displays a menu line with a text which may contain chars from an
  alternate font.

  altfont
    Name of the alternate font.

  text
    Content of menu line. Chars from the alternate font have to be marked
    with "\a". Alternate font chars have no width and are just rendered
    above the following text. Use spaces to counter that.

  action, hoveraction, desc
    Same function as with other menu lines.

DOCREF menuitemaltfont
2015-06-10 14:12:43 +02:00
ac-stef d78002e167 texture preview display for menus
chmenutexture <menu name> <texture path>
  Displays a texture on the right side of a menu.

menutexturesize <size factor>
  Changes the size of textures displayed in menus. Mostly for testing
  purposes.

DOCREF chmenutexture menutexturesize
2015-06-05 16:00:02 +02:00
ac-stef 4b1c4f466f new command menurenderoffset
Moves a menu away from the middle of the screen. Values of "100" represent
half the screen width and height.

  menurenderoffset x-offset y-offset

DOCREF menurenderoffset
2015-06-05 16:00:02 +02:00
ac-stef acb26e23a0 cleanup menus.cpp
Place the command macro near the function body. Makes it easier to keep
command signature and function prototype in sync.
2015-06-05 16:00:01 +02:00
ac-stef ae82b6b22e add attr5..7, add mapmodel pitch and roll
Keys 5, 6 and 7 (in combination with the scrollwheel) can be used to alter
the new entity attributes.

Pressing editmeta (LCTRL by default) speeds up the scrolling.

(Parts of the roll code are borrowed from Alejandro V. Garcia's commit
"Model rotations, experimental" from January 2013)

Note: coop edit is now broken between "next" and older clients, but I
  don't want to bump the protocol just yet.
2015-05-18 14:59:41 +02:00
ac-stef f6f2216f85 keep menu selection during menu rebuild
Not clearing the menu selection in a followup "newmenu" command does not
seem to have negative effects - and keeps the selection.

Initaction ("menuinit") is now executed before the selction focus is set
during menu->open. This avoids old hover commands to be executed before
the menu gets deleted during rebuild.
2015-05-18 14:59:41 +02:00
ac-stef 618d72cdc4 swap execution order of menuinit and item init
Now the command specified by menuinit is executed first, and then the
various menu item init commands (for example getting the value for
menuitemtextinput lines).

This may affect some menu init scripts - but I couldn't find any problems.
It only affects menus which use "menuinit" _and_ menu items with
initialisation.
2015-05-18 14:59:41 +02:00
ac-stef 3b8f642a38 add description entries for scripted menu items
This looks ugly, if the descriptions are long. There should be some kind
of linewrap for descriptions.

DOCREF menuitem
2015-05-17 00:24:39 +02:00
aurhat 4e0e128b16 Fix and improve displaying map message in menu 2015-04-17 17:11:34 +02:00