Commit Graph
46 Commits
Author SHA1 Message Date
ac-stef cb630bde49 add per-map overrides to disable graphics features
The mapper has now the choice to disable several graphics features on
the client (for his map only, of course). The overrides are stored in
the map header.

mapoverride_nowaterreflect

  If "1", water reflection is disabled. Useful, when odd water colours
  are used to emulate other liquids that are not supposed to be that
  reflective.

mapoverride_limitwaveheight

  If "1", waveheight is capped at 0.1 max. Useful for small water
  areas (like puddles), where higher waves would look weird.

mapoverride_nostencilshadows

  If "1", stencil shadows are disabled. On clients, where stencil shadows
  are otherwise enabled, blob shadows are used instead. If shadows are
  disabled anyway, they stay disabled. Useful for dim maps, where hard
  shadows make no sense.


The player is free to ignore any of those overrides:

ignoreoverride_nowaterreflect

  If "1", mapoverride_nowaterreflect is ignored and regular client
  settings are used.

ignoreoverride_limitwaveheight

  If "1", mapoverride_limitwaveheight is ignored, and "waveheight" is
  used unchanged.

ignoreoverride_nostencilshadows

  If "1", mapoverride_nostencilshadows is ignored.


DOCREF mapoverride_nowaterreflect ignoreoverride_nowaterreflect
DOCREF mapoverride_limitwaveheight ignoreoverride_limitwaveheight
DOCREF mapoverride_nostencilshadows ignoreoverride_nostencilshadows
2016-09-04 17:44:22 +02:00
ac-stef f65f943050 limit the optimisation of mapmrproper to 4x4 cubes
... which is quite limited, but anything more can trigger lighting
problems in the engine
2016-09-01 22:58:45 +02:00
ac-stef a33577c039 sort mapmodel entities during map save
* sort colored lights behind white ones to avoid a light bug
* sort all clipped entities to the end of the list to speed up physics
* sort all pickups and playerstarts to use smaller index numbers to
  use less bandwidth
2016-08-26 14:08:55 +02:00
ac-stef c54eb7f173 calcmapareastats()
new metrics to assess map geometry
2016-08-26 14:08:55 +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 a067ea2a0b add timestamp to map files 2015-05-27 15:47:04 +02:00
ac-stef 010a7579be remove ability to write map file format 9
didn't work properly anymore anyway
2015-05-27 15:47:04 +02:00
ac-stef ea480a7b0c higher resolution for waterlevel
Interpret the waterlevel value as tenths of a cube.

This makes the waterlevel variable a float value to the user, while the
map file still stores an integer value - but now it is interpreted
differently - for example, a waterlevel value of 123 now means 12.3 cubes
instead of 123. Old map files are converted during loading.

Note: the values of waterlevel and hdr.waterlevel need to be in sync.

DOCREF waterlevel
2015-05-18 14:59:41 +02:00
ac-stef e318ecd68e integrated automatic embedded map config files
This patch enables an option to keep the map config embedded in the map
file - with autogenerated content. Any changes to map config data will be
written with the map. This includes data by loadnotexture, loadsky,
mapmodel, texture, fog, fogcolour, mapsound and shadowyaw. Once enabled,
all changes with those commands become persistent to the map.

New variables:

mapsoundchanged
  Set to "1" with every command that changes mapsound slots. Should be
  used to trigger a rebuild of mapsound menus.

New/changed commands:

mapsound
  Now returns the number of the created slot.

mapmodel
  Now returns the number of the created slot.

texture
  Now returns the number of the created slot.

loadsky
  Is now a builtin string variable (instead of a command), which means,
  that the current value can easily be retrieved or edited.
  The skymap name in the argument is now required to start with
  "textures/skymaps/" - but that part of the path can be omitted.
  examples:
    loadsky steini/steini2 (loads textures/skymaps/steini/steini2_*)
    loadsky textures/skymaps/steini/steini2 (same)
    loadsky ../foo/bar (loads textures/foo/bar_*)
    echo $loadsky

getnotexture
  Returns the current "notexture" path. (Set by loadnotexture)

dumpmapconfig (available for debug binaries only)
  Writes the current automatically generated map config to
  dumpmapconfig.txt.

DOCREF mapsoundchanged mapsound mapmodel texture loadsky getnotexture
2015-05-18 14:46:03 +02:00
ac-stef 4fdba4fa4a less ugly mapdims
replaced the mapdims array with a struct with properly identified members

also reduced the calclight postfilter to actually used map areas
2014-11-12 17:52:44 +01:00
ac-stef 832e46141b undo/redo with editmeta pressed also restores player position
also selects the affected area
(less useful in coopedit because always the own position is restored)

for testers: editmeta still defaults to LCTRL
2014-05-15 13:48:31 +02:00
ac-stef d258b7c186 less annoying visualisation for tagclips
- press B to get the former filled volume view
- raise the value of tagnumfull to get both views simultaneously
- cubescript parameters should be cleaned up before release
2014-01-30 19:38:41 +01:00
ac-stef 3865affb0b additional way of clipping areas: tagclips
In addition to the existing clip- and plclip-entities, this patch provides
a new approach to provide the same: clip areas by tagging cubes.
Each cube of a map has a parameter "tag". All tags in all existing ac maps
are currently zero. It is a leftover from cube 1. This patch uses the tag value
to determine, if a cube (from floor to ceiling) should be forbidden for
players (tag 0x80) or every moving object (tag 0x40). Tagclips have several
advantages over classic clip entities: they are fast to establish (mark
area, then /edittag 0x80) and are "cheap" for the engine. Tagclips do not
increase the number of entities. As tagclips are always floor to ceiling,
they can't be used to build stairs or platforms. Tagclips should be
preferred over clip entities, but can coexist without problems.

Technically, setting the tag value to 0x40 or 0x80 causes the physics
engine to handle the cube like a "solid".
2014-01-28 01:12:52 +01:00
ac-stef c3d4713904 clean up map header handling
Older versions of ac did not obey the map header field "headersize".
When a map was written, only the "version" field was updated, even if
the new written header had a different size. Thanks to bigger headers
in map versions 7 & 8 (and now smaller headers again in 9), the headersize
of basically all official maps is bogus. This fix makes sure, only proper
headersizes are written. It also makes the game tolerate different (bigger)
headers - and keeps their content untouched. Future map format extensions
can use this to add header information without breaking existing map parsers.

This patch establishes a new map format 10, which is identical to format 9,
with the exception that the headersize field is guaranteed to be correct.
Format 10 also allows any amount of additional header data.

This patch also cleans up the transformation routines for old map entities.
2014-01-27 23:01:23 +01:00
Lucas GAUTHERON 2f55903ad0 messy patch tmp revert
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7491 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2013-05-27 17:25:21 +00:00
Lucas GAUTHERON 624dd348d7 make the server store more map data (more accurate pickup calculations)
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7487 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2013-05-26 16:40:57 +00:00
Lucas GAUTHERON a7a1e46bcc merged branch
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7382 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2013-03-22 19:49:21 +00:00
Lucas GAUTHERON f0bf1e28fb map check more permissive, again
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7357 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2013-03-17 08:46:03 +00:00
James Harris c5d17a6b8f Increased MAXHHITS to saner level
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@6834 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2012-06-12 09:58:22 +00:00
Lucas GAUTHERON 8f90268d82 multiple selections support in editmode
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@6647 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2011-09-14 14:59:40 +00:00
Bukz 175fb7ae8e updates/MAXHHITS changed to 6000 (was blocking ac_edifice @ 5,776)
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@6500 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2011-06-05 07:32:58 +00:00
Rafael Barreto 32712318da doing it better... (still testing the exploit, tbh)
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@6494 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2011-06-04 14:14:37 +00:00
Rafael Barreto a8401fd1e3 fixing that obvious map requirements exploit... (no more exploits for the next 6 months...)
@ other devs: check my fix... I expect to not block any good map

git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@6490 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2011-06-03 21:19:44 +00:00
Rafael Barreto b75856ceed clean up, and checking the distance of the items (all official maps pass in the check)
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@5531 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2010-08-03 01:08:42 +00:00
Rafael Barreto db0e2c2ff3 cover
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@5052 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2010-05-25 21:26:13 +00:00
Rafael Barreto bc01595024 blocking bad maps in client side, and beginning the work with the medal system
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@5031 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2010-05-24 17:24:33 +00:00
Rafael Barreto 5835817777 Carbine sounds, and testing 15 dmg for smg
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4911 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2010-05-18 16:36:38 +00:00
flowtron c42b53cbce I_HELMET
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4899 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2010-05-17 18:24:17 +00:00
Lee Salzman d1253d6394 added support for ambient light
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4737 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2009-12-03 12:21:21 +00:00
flowtron 042f462f71 git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4659 e016b1c5-ed68-44aa-a2f7-31cac88cffde 2009-10-12 20:21:34 +00:00
flowtron 5196e222ce MediaPack-aware mapformat (MAPVERSION 7)
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4657 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2009-10-12 19:33:59 +00:00
ac_stef faa86ec001 only allow spawning of clients with the right map & revision
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4359 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2009-04-27 00:50:42 +00:00
ac_stef 60bf761971 simple map revisioning system
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4357 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2009-04-26 19:16:33 +00:00
ac_stef 7f9c99a615 detect and log remote flag pickups
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4314 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2009-04-03 16:20:37 +00:00
ac_stef 7734e7c57a check for map-collisions serverside
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4308 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2009-03-30 22:40:00 +00:00
ac_stef 4bb129ee40 limit number of map entities
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4127 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2009-01-12 15:19:12 +00:00
Lee Salzman 4d6ffecf29 reorganized sqr storage for better cache usage
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4113 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2009-01-04 18:42:09 +00:00
ac_stef b23d935cbc serverside generation of itemlist
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@3989 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2008-12-11 15:24:32 +00:00
Lee Salzman b76491d06e vertex lighting option for mapmodels
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@2656 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2008-09-17 03:34:58 +00:00
Lee Salzman b2811e4893 faster reading of world structure
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@2655 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2008-09-17 01:42:40 +00:00
Lee Salzman 950ab21b9d *** empty log message ***
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@1054 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2007-06-01 11:36:55 +00:00
driAn b8df666851 no message
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@1004 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2007-05-16 20:48:25 +00:00
Lee Salzman 3f200a7009 *** empty log message ***
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@932 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2007-04-06 08:59:50 +00:00
driAn e5637db96c no message
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@774 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2006-12-09 14:57:51 +00:00
driAn 7decc11a6b no message
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@761 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2006-12-03 19:56:24 +00:00
Lee Salzman 4b8d32b733 *** empty log message ***
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@698 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2006-11-17 18:13:55 +00:00