m2m : quake map converter : response files format description (ver0.6b)
(c) by PiRaMidA

textures.m2m format
-=-=-=-=-=-=-=-=-=-
Any line starting with an ';' is comment, empty lines allowed.
Mapping is one line with two strings: first being texture name
in quake1 map, second - texture name that would be substituted
for quake2 map.

NOTE: All those textures that don't have an explicit mapping in
textures.m2m would be left as is, and their names would be written
into textures.bad, so you'll know which textures you need to cut out
from .bsp by hand (or add mappings for them), use any bsp extraction
tool, and then pcx2wal (by Fingers, available at http://www.portal.ru/quake2)
to convert .pcx's to .wal's

see textures.m2m for example

params.m2m format
-=-=-=-=-=-=-=-=-
Any line starting with an ';' is comment, empty lines allowed.
There are five mapping types allowed for parameters (parameter:
an entity's key with a value, like "origin" "0 0 0"). In the
description below, <entity> would mean classname of an entity,
like "info_player_start", <key> would mean parameter name, like
"origin", and <value> would mean parameter's value, like "0 0 0"
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
1. Add parameter: adds <key> to any entity with classname <entity>
   , setting value to <value>. If the <key> is set already, you must
   remove it before setting new value (see next mapping).

<entity> + <key> = <value>
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
2. Subtract: removes <key> from all <entity>s

<entity> - <key>
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
3. Map: changes classname for all <entity1>s to <entity2>

<entity1> = <entity2>
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
4. Remove: removes all <entity>s

<entity> *
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
5. Swap: swaps params, i.e. adds parameter <key2> to <entity2> with
value of parameter <key1> of <entity1>, and removes <key1> from <entity1> :)

<entity1> & <key1> = <entity2> & <key2>
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
6. Removes entity's brush(es), calculates first brush's center and adds a key
   to this entity with a value, equal to the centers position (for teleports):

<entity> % <key1>
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
7. Reposition: move origin of an <entity> by <vector>, where <vector> is "x y z"

<entity> ^ <vector>
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
8. Overlap: add another <entity2> at each <entity1> origin point, you can't define
any keys for that new entity right away, please use '+' mapping, etc.

<entity1> # <entity2>
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
9. Condition: performs any of the 1-8, but with condition on <entity1>:

<entity1> ( <key1> = <value1> ) ...

performs mapping ... only when <key1>=<value1> and classname is <entity1>
You can add several conditions on one line, they will be combined with
logical AND:

<entity1> ( <key1> = <value1> ) ( <key2> = <value2> ) ...

When all key1, key2, etc match corresponding <value>s the mapping would be performed.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Examples:
-=-=-=-=-
monster_army = monster_soldier
worldspawn - wad
light + _color = 1 1 0.5
trigger_changelevel & map = worldspawn & nextmap
       ('map' parameter value from 'trigger_changelevel' will be assigned
         to 'nextmap' parameter of 'worldspawn' entity)
monster_army *
       (the following 2-line block shows multi-rule example)
item_super_damage = item_quad
item_super_damage + spawnflags = 1794

item_health ( spawnflags = 2 ) = iteam_health_mega
item_health ( spawnflags = 2 ) - spawnflags
item_health ( spawnflags = 2 ) + spawnflags = 1794
item_health ( spawnflags = 1 ) = item_health_large
       (would change all 100% healths into item_health_mega and change
       it's spawnflags to 1794, and also change 25% healthes to item_health_large.
       Note that you have to subtract key first for it to be added with new value!)

trigger_teleport % origin
trigger_teleport = misc_teleporter
info_teleport_destination = misc_teleporter_dest
       (this should replace all old-style teleporters with new one's)

ammo_nails = item_bullets
ammo_nails ^ 16 16 16
       (reason for this is different ammo box positioning in q1 and q2)

info_player_deathmatch # weapon_shotgun
	(that is the one and only way to give each player shotgun - at the playerstarts.
	if you think that you should have shotgun, please review params.m2m, 
	find -=infos=- section and uncomment corresponding lines there)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Howto cut all torches from Quake1 map
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
1. cut entity bit - a text part - from <yourmap>.bsp using your favourite hex editor
2. unzip params.m2m from m2mtorch.zip - get it on http://www.portal.ru/quake2/
3. run m2m with -p cmdline parameter
4. rename m2m output file to <yourmap>.map
5. run "qbsp -onlyents <yourmap>"

IF THERE WOULD BE NEED FOR ANY MORE ADVANCED PARAMETER MAPPINGS PLZ
LET ME KNOW, AS THERE IS NO COMPLETE QUAKE2 MAP FORMAT DESCRIPTION
AVAILABLE YET: email piramida@ars.ml.org with your additions.
