Commit Graph
615 Commits
Author SHA1 Message Date
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
aurhat bd50e67f65 Allow persistent spectating concrete player in multiplayer
For spectatepersistent = 1 that is always enabled (that means, that
spectated player isn't changed after his death), for 0  - only in
non-arena modes, except of demos.
"if(!available.length()) return f;" is introduced, in order to, in arena
modes, doesn't happen switching to SM_FLY, when last alive players dies
in the same moment and there is no winner of the round.
2014-12-02 21:05:47 +01:00
ac-stef 8604c198e9 cleaning up cubescript hooks
- provide a function to easily assemble and execute the command
- context-selective execution of hooks
- restrict potentially exploitable or harmful hooks to singleplayer-modes
2014-11-12 17:06:35 +01:00
aurhat f9ec71cbab Fix switching from spectator to active team in bot modes
Before this fix player could switch from spectate to alive mode,
but he stayed in SPECTATOR team.
Note: 2 mouse clicks are necessary to player's spawn. Second respawnself()
is needed, because spawnplayer() is executed before server will switch
player1 to active team, so he would always spawn in CLA base (in bot
team modes).
2014-09-30 10:45:18 +02:00
aurhatandac-stef 414c69fef7 fix illegal typecast
fixes crash during intermission caused by activated and held grenade
2014-09-11 10:47:44 +02:00
aurhatandac-stef ced0baf67a Removed unnecessary restrictions of switching to SPECTATOR team
Note: spectate() function doesn't have such restrictions.
2014-07-19 14:38:33 +02:00
aurhatandac-stef 60eb0ac393 Turn off sniper rifle's scope during intermission 2014-07-19 14:38:33 +02:00
aurhatandac-stef 79943778e7 Show list of demos in "Download demo" menu 2014-07-08 19:02:17 +02:00
ac-stef 556b1eb7f2 add map vantage points
The vantage point is supposed to be a distinctive view on a map - like the
angle from which the preview picture was taken.

This commit adds three commands: clearvantagepoint, setvantagepoint and
gotovantagepoint. None has any parameters, all are only allowed in edit
mode. A map can only have one vantage point.
2014-06-23 16:15:47 +02:00
aurhat 5a88f9c323 Fix bugs in spectator mode and removed unused FPCNs
First fix - now togglespect lets to return automatically to previously
spectated player, after spectating him, switching to "fly spectate" mode
and again to spectating players.
Second fix - now player doesn't land and stuck outside of new map,
when during spectating somebody map changed.
FCPNs are removed, because currently they aren't used.
2014-06-20 22:13:18 +02:00
ac-stef a0286d2b3f replace textfilter functions with one-fits-all version
* replaces filtertext() with a version with a dozen of single filters
  that can be used in any combination
* defines classes of allowed characters for strings for various uses
  (see protocol.h line 153ff)
* now the allowed charset of, for example, player names is defined
  in one location only
* fixes issue #58
2014-05-24 12:59:19 +02:00
ac-stef e313a99beb fix buffer overflow for unknown mode numbers
to test, try /mode 1337 ; map ac_desert
2014-05-24 11:42:00 +02:00
ac-stef 08faac728d fix: show intermission after demo playback
thx jamz :)
2014-05-21 22:50:19 +02:00
ac-stef b0649b5ea5 multiple map buffers for map editing: "xmaps"
An xmap holds everything related to map editing at a certain moment: it is
a map editing snapshot. It contains the name, the header, the geometry,
the entities, the extra headers, the undo/redo data and the cameraposition
from the moment, the snapshot was taken.

Xmaps are held in memory and, if persistentxmaps is set to "1", are saved
at game end and restored at game start.

xmap_list
  lists all xmaps currently in memory

xmap_store <nickname>
  create a snapshot and store it under the given nickname
  (nicknames have to qualify as valid filenames)

xmap_restore <nickname>
  restores the named snapshot. Also creates a backup snapshot of the
  current editing data.

xmap_restore
  restores the last automatic backup snapshot. Automatic snapshots are
  taken, a) before a snapshot is restored, b) before a new map is loaded
  (if there were unsaved edits on the map) and c) when the game ends (if
  there were unsaved edits).

xmap_delete <nickname>
  deletes the named snapshot.

Unsaved edits are flagged in the HUD with an "U" in the lower right
corner of the screen.

The files with the persistent xmaps are stored in mapediting/xmaps. After
they were restored at game start, the files are moved to
mapediting/xmaps/backups. Xmap files are cubescript files.
2014-05-15 17:34:25 +02:00
ac-stef eb60302e67 cleanup
- fix possible crash in conc (but it's still an ugly hack)
- fix noob usage of strcmp
- flag some memory leaks (it would be nice, if the author(s) would clean
   up the mess himself)
- fix crash in substr
- whitespace cleanup

there are plenty more memory leaks in command.cpp - for example, every
goto in cubescript does not clean up anything
2014-05-14 22:54:37 +02:00
aurhat 5b94bab21f Fix of wrong "alive" status in scoreboard.
This commit fixes the issue: https://github.com/assaultcube/AC/issues/21
Player in spectate mode isn't dead, so when he switches from spectate to active mode, he is still non-dead.
Therefore d->state=="CS_DEAD" doesn't work in such cases.
This commit removes also some aimless line.
2014-04-05 13:52:41 +02:00
aurhat 1bb7a5d7ac Restoring previous conditions in setfollowplayer().
Current conditions appeared with commit: https://github.com/assaultcube/AC/commit/8f39911eb0725b22bb4dc3a50d3e89702afcc49c
The problem with its is, that when player is SPECTATOR,  then "/setfollowplayer CN" command works only on players in CLA team, and should work on all, like "changefollowplayer".
This commit fixes that. Thread related to this bug: http://forum.cubers.net/thread-7495.html
2014-02-16 13:50:06 +01:00
aurhat ef165773b8 This commit fixes removing sleeps in "resetsleep" function.
To test this bug make, for example, 3 long-standing sleeps, add checking of number of sleeps before and after existing "loopv(sleep)",
and later  type "/resetsleeps" command in AC - result: 3 sleeps "before" and 1 remains "after".

Explanation by stef: after deleting elements from vectors there are no holes,
so if there were sleeps[0], sleeps[1] and sleeps[2], then after removing sleeps[0] there left
sleeps[0] and sleeps[1], so during next loop cycle this sleeps[0] is neglected (because i=1).

Commit just changes loopv to loopvrev (loop from end to begin).
2014-02-15 10:55:07 +01:00
James Harris 5e639fdec2 Fix bug #510 "Wrong CN is displayed ("-1"), when "whois -1" is executed." ty gren
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7688 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2013-12-27 09:08:29 +00:00
Lucas GAUTHERON ffe23e79d7 hitsound 2
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7595 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2013-10-12 07:54:05 +00:00
Lucas GAUTHERON 60d677c1e7 better spectate mode fix
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7590 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2013-10-11 16:59:16 +00:00
Lucas GAUTHERON 397759bb44 /whois -1 fix
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7589 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2013-10-11 16:54:35 +00:00
Lucas GAUTHERON e29f9a1368 spectate mode fix
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7588 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2013-10-11 16:43:16 +00:00
Lucas GAUTHERON e09f3600a1 indent fix, cleanup
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7575 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2013-10-06 15:39:27 +00:00
Lucas GAUTHERON 3c509af36a setnext fix
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7561 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2013-09-29 14:20:35 +00:00
Lucas GAUTHERON f8e42cfff9 setskin bug fix (it seems the skin system is unnecessarily complicated and may need to be reworked anyway)
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7523 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2013-08-02 12:13:39 +00:00
Lucas GAUTHERON 6e19d0c44d use ffa spawns in... ffa gamemodes.
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7504 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2013-06-27 23:19:39 +00:00
Bukz 00f8ef6259 temporary new sound for KTF flag scores
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7437 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2013-03-28 16:41:19 +00:00