Commit Graph
642 Commits
Author SHA1 Message Date
ac-stef 83d0199867 command cleanup
changed commands:

  strstr haystack needle

    now returns position of needle in haystack (counting from 1)
    or zero, if not found

  substr string start len

    now counts negative length from total length
    "substr text 1 -2" now returns the text without first and last char

  strreplace text search replace

    no longer restricted to 260 char stringlengths

removed commands:

  swapelements, strpos (can be scripted, if required)

DOCREF strstr substr
DOCREF swapelements strpos
2017-06-07 23:20:00 +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 dd82065177 fix killmessage menu
and add frag/gibmessage weapon name completion
2017-05-22 22:50:51 +02:00
ac-stef 2bc8936680 cleanup killmessages
* remove server-side custom killmessages (log files need to be uniform)
* clean up client-side custom killmessages
2017-05-22 20:19:15 +02:00
ac-stef d0b309320b really cleanup sound
- collect most sound infos in one table and use it to generate the menus
- no more sound category checks with ranges
- now only PAINx and FOOTSTEP* sounds use hardcoded index numbers

enumsounds <list of categories>

  Lists sound index numbers and short descriptions for all sounds of one
  or more categories. The argument should contain one or more of PAIN,
  OWNPAIN, WEAPON, PICKUP, MOVEMENT, BULLET, OTHER, VOICECOM, TEAM,
  PUBLIC, FFA, FLAGONLY. All sounds with at least one of the flags will
  be listed. Flag names prefixed with "!" will exclude all matching
  sound from the list.

  Example: /echo (enumsounds "VOICECOM !PUBLIC") will list all voicecom
  sounds that are for teams only.

DOCREF enumsounds
2017-05-22 17:30:51 +02:00
ac-stef cf55e54faa fix damage indicator overflow after fastforward
break up shiftgametime() time jumps into 5-second jumps and five 1-second
jumps for the last five seconds

rename respawnoffset to lastdeath (because that's what it is)
rename clientside nextmillis to skipmillis (because that's what it does)
2017-05-13 03:46:00 +02:00
ac-stef 12925eaebc attribute damage blend effects to spectated player
...and clear it in case a different player is followed

also: cleanup
2017-05-12 19:07:38 +02:00
ac-stef 1b596e059a roll update
- split into strafe roll (maxroll) and damage roll (maxrolleffect)
- locally recompute remote players roll (can be removed from pos pkt)
- fix maxrollremote

DOCREF maxroll maxrolleffect maxrollremote
2017-04-29 18:23:23 +02:00
gy_beandac-stef 9820e59adb Fix local hitsound priority
Local hitsounds (/hitsound 2) work by running CubeScript
command `sound`, passing hitsound sound number and
priority (highest). However, `sound` command doesn't actually
take the second priority argument and always uses default normal
priority.

This commit adds the second prioity argument to `sound`.
It accepts numeric priority levels as well as string names.

Also use highest priority for server hitsounds (to be consistent with
local hitsounds).

(was pull request #164)

DOCREF sound
2017-04-20 13:53:55 +02:00
aurhat 4d2d326136 Cleanup 2017-02-18 22:40:07 +01:00
aurhat ab43f7acd5 Add command to return CN of spectated player
Also cleanup and added key shortcut to "whois" spectated player
(bound to "I" by default).

DOCREF spectatecn
2016-12-25 22:47:50 +01:00
ac-stef 397c441fed more verbose error messages for disabled commands 2016-09-16 17:35:47 +02:00
ac-stef 870900f92f new map settings menu
Containing all persistent per-map settings (stored in map config and
map header).

removed some random number nonsense
2016-09-03 22:48:49 +02:00
ac-stef a6bffc1858 new command looplisti
same as looplist, but it automatically counts the loops in "i", starting
with 0.

Example:

  a = [u v w] ; b = [x y z]
  looplisti $a m [echo $m (at $b $i) $i]

  u x 0
  v y 1
  w z 2

DOCREF looplisti
2016-09-02 21:58:39 +02:00
ac-stef e1ce0979d0 rewrite calculation of map geometry bounding box
and rename client-side struct "mapdims" to clmapdims (to avoid confusion
with server-side data)
2016-08-26 14:08:55 +02:00
ac-stef d5bd896189 properly adjust texlists when deleting texture slots
check texlists during save (and print warning, if errors were corrected)

also add (undocumented) command to patch messed up texlists
2016-08-20 14:45:41 +02:00
ac-stefandaurhat 158a33caed cleanup config files
* moved compatibility.cfg and autosave.cfg to config/opt/
* firstrun.cfg merged into defaults.cfg

DOCREF compatibilitymode alive currole curmode getclientmode curteam
DOCREF findpn pstat_score orderscorecolumns
2016-08-15 11:52:49 +02:00
ac-stef 6392527cb6 fix ktf indicator during spectating
also, disable ktf indicator during editing and enable damageblend, -roll
and -indicator during spectating

DOCREF ktfindicatoralpha
2016-08-07 00:26:29 +02:00
ac-stef ca0a868acd improve damageindicator
* now eight instead of four directions
* ignore self-inflicted damage
2016-08-04 22:01:12 +02:00
ac-stef 3c2cac6121 simplify curmap command
no argument: just return the filename

DOCREF curmap
2016-07-27 12:23:56 +02:00
ac-stef a860cc58b0 add a map license and comment string to the map header
Two new string variables, mapinfo_license and mapinfo_comment, are stored
withing the header of a map file.

The variables are automatically read and written during loading and
saving maps. Default values are empty strings. The comment string is
ignored, as long as no license string is set. The license string is meant
to hold an abbreviated name of the license, picked from a list of
known map licenses.

DOCREF mapinfo_license mapinfo_comment
2016-07-26 15:41:40 +02:00
aurhat c1e9daee1e Cleanup 2016-07-17 13:27:10 +02:00
ac-stef 32ffd3a4cd replace non-thread-safe functions
replace all uses of strtok, localtime, gmtime and readdir

on platforms without safe versions, use homebrew or unsafe...
2016-02-28 23:14:47 +01:00
aurhat 957f1e49ca Cleanup
Note: abbreviation of minutes and seconds in HUD messages in ktf is
needed, because for 5:4 aspect ratio messages could not fit in display.
2015-12-13 22:08:16 +01:00
aurhat 6c99a9d2a3 Show "whois" info in one line 2015-09-18 21:27:16 +02:00
aurhat f10342fa80 Improve game time and wall clock display
1. Counting backward for gametimedisplay = 1 and forward for 2. The setting
added to HUD menu.
2. Changed name from clockdisplay to gimetimedisplay, in order to
distinguish clocks with system time and game time.
3. Added to wall clock options with UTC/GMT time and 12h format.

DOCREF clockcount clockdisplay gametimedisplay
2015-09-06 22:09:00 +02:00
ac-stef 06f59e0559 use safe strings
(cleanup)
2015-08-21 15:51:36 +02:00
aurhat 24043589fc Improve setadmin
Don't kick, when player typed "setadmin 1" without any password.
2015-08-16 16:43:46 +02:00
aurhat 798b0a6582 Fix camera1 after player disconnection
When player1 spectated alive player and this watched player disconnected,
then camera1 pointed out still this non-existing player, for one main loop.
It had such negative effects, that hudgun could disappear to AC restart,
also AC crashed sometimes.
Tested mainly in tosok, on last alive player in a team.
2015-08-16 14:18:21 +02:00
ac-stef 826499c12d enable gcc to check arguments of printf-like functions
Check printf-like functions like conoutf, if format strings and argument
lists match.

This commit also fixes a lot of code parts that actually had mismatching
argument lists - or did things, that this check does not like.

numtime() was rewritten in an ugly but very portable fashion (it's
recommended to stay away from "long long" format entries, because errors
usually only come up at runtime).

(some code was copied from sauer)
2015-08-02 19:40:41 +02:00
ac-stef fe686b603c fix updatefollowplayer
give "availability" priority over persistent spectating
2015-06-25 01:13:06 +02:00
ac-stef fe6f9e92a7 tab and formfeed cleanup 2015-06-10 14:28:50 +02:00
ac-stef f3e72b8fb7 remove gettext
DOCREF gettext
2015-06-10 14:28:50 +02:00
ac-stef cb9169ab0a remove double filtering of richtext
cubescript quotes ("") already filter richtext
2015-06-10 14:27:52 +02:00
ac-stef 11dc8202fa cleanup 2015-06-05 16:01:03 +02:00
ac-stef 107a563e99 pin selection of closest entity in map editor
Pressing the middle mouse button toggles a pin on the "closest entity"
selector. The HUD will indicate the lock by showing "pinned" instead of
"closest" entity. All actions, that would otherwise affect the closest
entity, will affect the pinned entity instead. Deleting the locked entity
will unlock it.

toggleclosestentpin
  Toggles the pin on the "closest ent" selector. Bound to MOUSE3
  by default.

DOCREF togglelockclosestent
2015-06-05 16:00:01 +02:00
ac-stef 95680b699c add undelete for entities
BACKSPACE in combination with editmeta (LCTRL) now undeletes the last
deleted entity. BACKSPACE in combination with editmeta2 (LSHIFT) brings
up the menu "deleted entities".

The edit menu now has a submenu "deleted entities" which lists all
deleted entities and undeletes the selected one.

undelent [<index>]
  If no index is specified, the last deleted entity is restored. If an
  index is given, the specified entity from the list of deleted entities
  is restored.

getdeletedentities
  Returns a list of deleted entities. Each line contains the entity type,
  the position and all seven attributes.

unlistdeletedentity [<which>]
  If <which> is a number, the specified entry from the list of deleted
  entities gets removed. If <which> is "all", the whole list of deleted
  entities gets deleted. If <which> is "last" the last deleted entity is
  removed from the list of deleted entities.
  Returns the number of entities on the list of deleted entities (even if
  the parameter <which> was unknown or not specified).

DOCREF undelent getdeletedentities unlistdeletedentity
2015-05-27 15:47:05 +02:00
ac-stef f774e4d841 higher resolution for entity attributes
Interpret the values for entity yaw angles and clip entity sizes as
fifths or tenths of cubes or degree.

This makes some entity attributes appear as float values to the user.
The map file still only keeps integer values - but now they are
interpreted differently - for example, a health pack elevation value of 6
now means 0.6 cubes instead of 6.

Note: the scaling factors are hardcoded - use ENTSCALE5 or ENTSCALE10
whereever possible. For generic entity editing, the scaling values are
also stored in entscale[] - but that table can not be changed without
breaking the map format! This scaling is similar to the treatment of the
vdelta values of map cubes.
2015-05-27 15:47:04 +02:00
aurhatandac-stef 8b2b7e0ac7 Change switching between spectate and edit mode
1. In multiplayer this switching isn't allowed, because it was broken
   and messed up, for example other players didn't see concurrently
   spectating and editing player.
2. In demo mode switching from spectate to edit mode is improved.
3. Several years broken code for edit mode is reverted.
2015-05-03 22:42:06 +02:00
aurhat c3ae2066d0 Don't check a duplicate of player1 name in demo mode 2015-04-05 21:58:29 +02:00
ac-stef d9b7e0e159 clean up saved.cfg
* combine all weapon attributes in a table
* sort variables and aliases
* group variables
* implement curname as SVAR
* implement cmdbuf as temporary alias
2015-02-23 20:17:43 +01:00
ac-stef 47f71f1288 allow symbolic arguments for some commands
* new command "listoptions" lists the argument options for several
  argument types like entities, weapons and teamnames
* "burstshots", "weapon", "magcontent", "magreserve", "fragmessage" and
  "gibmessage" now allow guns to be specified by name
* "addpunct" allows plaintext arguments like "brackets" and "quotes"
* the "team" command now understands numeric teams
* entity types can now be specified by type index number
* removed some lists from the config files (now provided by listoptions)
* added argument completion for several commands
* change nextprimary from integer to string variable

DOCREF listoptions burstshots weapon addpunct
DOCREF fragmessage gibmessage magcontent magreserve
DOCREF nextprimary
2015-02-23 18:52:04 +01:00
ac-stef af70d5c069 add locking to addsleep() to support multithreading
Now other threads can also add commands to the queue without messing up
the vector.
2015-02-08 17:39:15 +01:00
ac-stef 39cbee947d Merge branch 'master' into next 2015-02-08 16:17:04 +01:00
aurhat d5763d9f5b More accurate info, when player joins match with less than 60s to end 2015-01-24 22:41:37 +01:00
aurhat 3470b49963 Fix spawn issues in bot modes
It fixes https://github.com/assaultcube/AC/issues/62 : "Respawning in bot
modes doesn't reset camera".
Also only 1 click will be needed to spawn, because it looks, that note in:
https://github.com/assaultcube/AC/commit/f9ec71cbab638189ea4fa3f664e2584605e2ba0e
isn't true now.
2015-01-24 12:21:51 +01:00
aurhat d86e1a9581 Allow only flying spectating in bot modes 2015-01-24 12:18:48 +01:00
aurhat 8205f24f68 Revert "Turn off sniper rifle's scope during intermission"
This reverts commit 60eb0ac393.
There is possible to turn off a scope by weapon changing (however
behaviour of scope during intermission can be changed in "next" branch).
2014-12-26 23:30:26 +01:00
aurhat 8e6fbd9d7b Add the clock to scoreboard and change clockdisplay
Commit shows time in format mm:ss in scoreboard, instead of
"X minutes remaining" info.
It also enables the clock default on the HUD and adds "clockcount"
variable which let to choose between counting forward or backward
in the clocks.

DOCREF clockdisplay clockcount
2014-12-06 17:53:29 +01:00
aurhat 990f6e9c8b Fix output messages in console
Fixes:
1. show time remaining in system console after each minute;
2. correct form of minute(s);
3. show info "everyone died!" instead of "team SPECTATOR has won
the round!" in demo mode;
4. show correct info to which team (name) was player forced, when player1
is spectator.
2014-12-06 17:17:19 +01:00