- | Before
- | After
+
+
+
+ |
+ |
+
+ | Before
+ | After
+ |
This function is designed to be used on either the whole
@@ -1316,23 +1455,25 @@
copy of it, mirror the copy and paste it on the other side
of the room.
- Mirror vertically
- This function starts by determining the set S
- of vertices that are used by any of the selected linedefs.
- Then all the vertices in S have their
- y-coordinate changed so that they're "mirrored" around the
- horizontal axis that intersects the geometric centre of
+ Mirror vertically
+ This function starts by determining the set S
+ of vertices that are used by any of the linedefs in the
+ working set. Then all the vertices in S have
+ their y-coordinate changed so that they're "mirrored" around
+ the horizontal axis that intersects the geometric centre of
S. Finally, all the linedefs whose both vertices
belong to S are flipped so that the sector
- references remain correct.
+ references remain correct.
-
+
|
+ |
| Before
| After
+ |
This function is designed to be used on either the whole
@@ -1348,24 +1489,90 @@
of the axis of symmetry. You can build one staircase, make a
copy of it, mirror the copy and paste it on the other side
of the room.
+
+ Cut a slice out of a sector
+ You must select exactly two linedefs that face the same
+ sector S. This function creates a linedef A that goes from
+ the first selected linedef to the second and a linedef B
+ that goes from the second to the first. A new sector is
+ created between those four linedefs, with attributes
+ identical to those of S.
+
+
+
+
+ |
+ |
+
+ | Before
+ | After
+ |
+
+
+ This function is somewhat similar to
+ "split-linedefs-and-sector" except that it creates two
+ linedefs instead of one and that it works on doughnut-shaped
+ sectors. In fact, this function is the only one that can
+ split a sector when there is no linedef path between the
+ split points (which is the case when splitting a
+ doughnut-shaped sector between its inner and outer borders).
+
+ If there is a linedef path between the selected linedefs,
+ this function is equivalent to using
+ "add-linedefs-and-split-sector" twice, except that you end
+ up with two sectors, not three. FIXME - need a figure.
+
+ If the selected linedefs happen to share a vertex, only
+ one linedef is created and the new sector is triangular. The
+ linedefs must not be the same or superimposed. FIXME - need
+ a figure.
+
+ Linedefs A and B are created with all their attributes
+ set to zero and their middle textures set to "-".
+ They're oriented so that their right sidedefs face the new
+ sector. Linedef A is the lowest-numbered one.
+
+ The following restrictions apply :
+
+
+ - selected linedefs must not have two sidedefs in the same sector,
+
- selected linedefs must not share more than one sector,
+
- there must be no linedef that would be superimposed with A or B.
+
+
+ These restrictions are stricter than necessary. They may
+ be lifted in the future if time and brain power permit.
+
+ Because this function is not aware of the geometry of the
+ selected linedefs, but only of the sectors they face, it can
+ be used to split sectors in impossible ways. FIXME - need a
+ figure.
+
+ This function assumes the space between the selected
+ linedefs is empty. If there are any other linedefs there,
+ you will have to fix their sector references manually
+ afterwards.
+
+ The key [Ctrl-k] is a shortcut to this
+ function.
- Setting/toggling/clearing linedef flags
+
In linedefs mode, press [a] to open the "set
linedef flags" popup menu.
Press [b] to open the "toggle linedef flags" popup menu.
Press [c] to open the "clear linedef flags" popup menu.
- Undoing
+
As of this release, undoing is not implemented.
- Cut-and-paste from one level to another
+
As of this release, it's not possible.
- Using the flat/patch/sprite/texture viewer
+
Flats, patches, sprites and textures are browsed and selected
with the same basic tool, snappily named the
@@ -1420,16 +1627,34 @@
(invalid), [Return] does not work. To cancel, press
[Esc].
- In the DOS version, pressing [Shift-F1] used to
-save the current flat/patch/sprite/texture to a GIF file.
-However, in the X11 version, this function is currently a no-op
-because I've not taken the time to port the Gifsave library to
-Unix yet. Besides, I'd rather use PPM and/or PNG than GIF.
+ [Shift-F1] saves the current image to file, in
+packed PPM (P6) format. This can be useful for
+textures, that cannot be directly extracted from wads.
+Transparent areas are represented according to the DeuTex
+convention by colour rgb:0/2f/2f ( ). The file is created in the
+working directory and its name is the name of the image
+lowercased and suffixed by ".ppm". For example, flat
+"FLOOR0_7" would be saved as "./floor0_7.ppm".
+If the file already exists, it's mercilessly overwritten.
+
+ Note that under MS-DOS, newlines in the PPM header are in
+Unix format (LF, not CR LF).
+
+There are a few bugs left in this function. Textures are
+clipped to the dimension of the viewer window. Under MS-DOS,
+some "VILE*" sprites will not save, because their names
+contain characters that are not allowed in file names
+("[", "\" and "]").
[F1] prints to stdout the location (file name and
offset) of the current flat, patch or sprite. For debugging
purposes.
+ When viewing textures, you may press [Ctrl-a] and
+[Ctrl-x] to cycle through the patches that make up
+the texture.
+
Finally when viewing sprites, two other useful commands are
[Ctrl-n] and [Ctrl-p]. These go
respectively to the next and previous group of sprites (all
@@ -1437,12 +1662,12 @@
group). It's handy to skip the 69 animation frames of the heavy
weapon dude at once.
- Saving
+
There are two ways to save :
-
- - Press [F2] or do "File->Save". If the level
+
+ Press [F2] or do "File->Save". If the level
comes from the iwad or if its level name or file name is
unknown (because it's a new level), you are prompted for a
level name (EnMn or MAPnm) and a file name first. If the
@@ -1453,7 +1678,7 @@
The level in the window is saved in the specified file,
in the pwad format, under the specified .
-
- Press [F3] or do "File->Save as".
+
Press [F3] or do "File->Save as".
This procedure is identical to the "Save" procedure except
that the query for a level name and file name is
unconditional.
@@ -1466,16 +1691,16 @@
- Closing a window
+
There are two ways to close a window :
-
- - Press [Esc]. If you have made changes since the
+
+ Press [Esc]. If you have made changes since the
last time you saved, or if you have never saved, Yadex
requires confirmation before closing the window.
-
- Press [q] or do "File->Quit". If
+
Press [q] or do "File->Quit". If
you have made changes since the last time you saved, or if
you have never saved, Yadex first saves the level, using the
same procedure as when you press [F2]. After that
@@ -1485,171 +1710,578 @@
-
-
+
+
-There are several ways to configure Yadex :
-the configuration file, the environment variables,
-the command line options and the Preferences menu.
+
+ Yadex has internal variables that serve to configure its
+ behaviour. Variables have a name (a string of letters, digits
+ and underscores), a type and a value. The type constraints
+ the value (boolean, integer, strings, etc.).
+
- The choices made in the Preferences menu override all others
-but they are lost when you exit Yadex.
+
+ Variables can be set in four ways :
+
+
+
+ - from the Preferences menu,
+
- from the command line,
+
- through environment variables.
+
- from the configuration files,
+
- The command line options override the environment variables
-which in turn override the configuration file.
+
+ The settings from the Preferences menu override those from the
+ command line options which in turn override those from the
+ environment variables which in turn override those from the
+ configuration files.
+
- The details of command line options and environment
-variables are explained elsewhere.
+
- Preferences
+
+ You can get a list of variables with their description and value
+ by typing set at the yadex: prompt.
+
-When you create objects, their properties are automatically
-given default values. Some of those default values can be set
-from the configuration file or from the command line but also
-through the Preferences menu, that pops up when you press
-[F5].
+
- The settings entered through the Preferences menu are lost
-when you exit Yadex.
+
+ By default, Yadex uses the default font of your system (that
+ is often "fixed" a.k.a. "6x13"). But
+ you can use the font of your choice by using the "-fn
+ font_name" option or setting
+ "font = font_name" in
+ yadex.cfg. You should use a fixed-width font and
+ not one that is too large for the size of your Yadex window or
+ the display will look ugly. If Yadex does not find the
+ specified font, it emits a warning and falls back on the
+ default system font.
+
- Configuration file
+
+ You can get a list of all available fonts on your system with
+ the command xlsfonts.
+
-If you don't specify "-f" on the command line,
-Yadex tries to open the following files in order :
+
-
- ./yadex.cfg
- ~/.yadex/version/yadex.cfg
- ~/.yadex/yadex.cfg
- install_dir/yadex.cfg
- /usr/local/etc/yadex/version/yadex.cfg
- /usr/local/etc/yadex/yadex.cfg
- /etc/yadex/version/yadex.cfg
+
+ The 3rd mouse button (middle button) is not used yet but you
+ can bet it will a future version. So a 3-button mouse is of
+ course recommended.
+
+
+
+ You can swap the left and right buttons by setting the swap_buttons
+ variable.
+
+
+
+ Buttons 4 and 5 are used for zooming in and out. Wheel mice
+ typically have the wheel mapped to buttons 4 and 5 in such a
+ way that when you roll the wheel "up" (forwards), button4
+ press events are generated and when you roll the wheel "down"
+ (backwards), button5 press events are generated.
+
+
+
+ To configure your X server in the way described above, check
+ the vendor documentation. I have XFree86 and a Logitech Pilot
+ Mouse + and this is what I put in my XF86Config
+ file :
+
+
+
+ Section "Pointer"
+ Protocol "Intellimouse"
+ Device "/dev/mouse"
+ Buttons 5
+ ZAxisMapping 4 5
+
+
+
+
+
+ When you create objects, their properties are automatically
+ given default values. Some of those default values can be set
+ from the configuration file or from the command line but also
+ through the Preferences menu, that pops up when you press
+ [F5].
+
+
+
+ The Preferences menu lets you set the default_*
+ variables interactively. The settings made from the
+ Preferences menu are lost when you exit Yadex.
+
+
+
+
+
+ See the Options section.
+
+
+
+
+
+ See the Environment variables section.
+
+
+
+
+
+
+Configuration files are text files. White space at the
+beginning of a line is ignored. There are three kinds of
+lines :
+
+
+ - Empty lines (lines containing only white space)
+
-
+
+ No effect.
+
+
+ - Comments (lines whose first non white space character is a
+
#)
+ -
+
+ No effect.
+
+
+ - Variable assignments (lines of the form "name
+
= value")
+ -
+
The effect is to assign value to the variable
+ name. name is a string of one or more
+ identifier characters i.e. letters, digits and
+ underscores. value is a string of zero or more
+ non white space characters. There may be any amount of
+ white space around and between the three tokens, including
+ none at all.
+
+
+
+ Please note that :
+
+
+
+ -
+
+ # is special only at the beginning of a
+ line. Therefore you can't put a comment on the same
+ line as a variable assignment.
+
+
+
+ -
+
+ Because white space is a token delimiter and there's
+ no way to quote or escape it, including white space in
+ a value is impossible.
+
+
+
+ -
+
+ Yadex's idea of what is a letter or digit is
+ deliberately locale-independent. Whether it's white
+ space or not, on the other hand, is locale-dependent
+ (isspace(3)).
+
+
+
+
+
+
+ Parse errors are not fatal. In general, they cause a warning
+ message to be printed and the entire line to be ignored. This
+ is to facilitate the sharing of configuration files across
+ versions of Yadex.
+
+
+
+ The configuration file is self-documenting. Look at the sample
+ configuration file in the Yadex distribution to see what
+ options are available.
+
+
+
+
+
+ This is the process by which Yadex turns a configuration file
+ name into one or more actual pathnames.
+
+
+
+ If the specified name is absolute, the location yields exactly
+ that. A name is considered absolute if and only if it begins
+ with a /.
+
+
+
+ If the specified name is relative, Yadex uses a search path,
+ much like the shell uses $PATH to locate
+ commands. The composition of the search path depends on the
+ installation prefix (the argument to ./configure
+ --prefix).
+
+
+
+ /usr/local or /usr :
+ -
+
+ .
+ ~/.yadex/$VERSION
+ ~/.yadex
+ /etc/yadex/$VERSION
+ /etc/yadex
+
+
+ /opt/some/path :
+ -
+
+ .
+ ~/.yadex/$VERSION
+ ~/.yadex
+ /etc/opt/some/path
+
+
+ /some/path :
+ -
+
+ .
+ ~/.yadex/$VERSION
+ ~/.yadex
+ /some/path/etc
+
+
+
+
+ The search path may be walked in either direction, depending
+ on the application. For each element in the search path, a
+ pathname is made by concatenating the path and the specified
+ name. The pathname is tested with stat(2). The
+ result of the location is the list of the pathnames that exist
+ and are not directories.
+
+
+
+ For example, assuming Yadex was compiled with the
+ /usr/local prefix, a front-to-back search for a
+ file named foo/bar.cfg would return those of the
+ following pathnames that exist and are not directories :
+
+
+
+ ./foo/bar.cfg
+ ~/.yadex/$VERSION/foo/bar.cfg
+ ~/.yadex/foo/bar.cfg
+ /etc/yadex/$VERSION/foo/bar.cfg
+ /etc/yadex/foo/bar.cfg
+
+
+
+
+
+ By default, Yadex performs a back-to-front search for files
+ named yadex.cfg and reads all the matches in
+ order. For example, assuming Yadex was compiled with the
+ /usr/local prefix, the following configuration
+ files will be read if they exist :
+
+
+
/etc/yadex/yadex.cfg
+ /etc/yadex/$VERSION/yadex.cfg
+ ~/.yadex/yadex.cfg
+ ~/.yadex/$VERSION/yadex.cfg
+ ./yadex.cfg
-The first file found is used.
+
+ Because the search path is walked back-to-front, any parameter
+ settings in a local configuration file override the settings
+ inherited from less local configuration files. For example,
+ assuming /etc/yadex/$VERSION/yadex.cfg
+ contains :
+
+
+
+
+ a = old
+ b = old
+
+
+
+
+ and ./yadex.cfg contains :
+
+
+
+
+ a = new
+ c = new
+
+
+
+
+ the net effect is :
+
+
+
+
+ a = new
+ b = old
+ c = new
+
+
+
+
+
+
+ The -f option can be used to override Yadex's
+ default choice of configuration files.
+
+
+
+ If Yadex is started with the -f option, the
+ default configuration files are not used. Instead, Yadex
+ performs a front-to-back search for the argument of the
+ -f option, according to the algorithm described
+ in Locating configuration files.
+ The first match is used as a configuration file. Any other
+ matches are ignored.
+
-If you use "-f file" and
-"file" is an absolute name (i.e. it
-starts with "/"), only that name is used.
-
- If "file" is a relative name, the
-standard directories will be searched for a file of that name
-instead of "yadex.cfg". For example, if you
-specify "-f foo/bar", Yadex will try to open
-"./foo/bar",
-"~/.yadex/version/foo/bar", and so on.
-
- For Yadex to recognize the file as a configuration file, its
-first line must contain exactly the following characters :
-"# Yadex configuration file version 2"
-(without the double quotes). If it doesn't, Yadex will print an
-error message and bail out. The reason for being so fussy is to
-avoid headaches when the configuration file format changes and
-there are old configuration files lying around in your
-directories.
-
- The configuration file is self-documenting. Look at the
-sample configuration file in the Yadex distribution to see what
-options are available.
-
- Game definition files
-
-A lot of Yadex's knowledge about thing numbers and names,
-linedef types etc. is stored in so-called game definition files.
-When you specify "-g foo", it in fact means that
-Yadex should use the game definition file named
-"foo.ygd".
+
+ For example, assuming Yadex was built with the
+ /usr/local prefix and run with the
+ -f myown.cfg option, it will use the first
+ file in this list that exists and is not a directory :
+
-When looking for the game definition file, Yadex tries those
-names in order :
- ./game.ygd
- ~/.yadex/version/game.ygd
- install_dir/game.ygd
- /usr/local/share/games/yadex/version/game.ygd
- /usr/share/games/yadex/version/game.ygd
+ ./myown.cfg
+ ~/.yadex/$VERSION/myown.cfg
+ ~/.yadex/myown.cfg
+ /etc/yadex/$VERSION/myown.cfg
+ /etc/yadex/myown.cfg
-For Yadex to recognize the file as a game definition file,
-they must begin with a certain magic string. If they don't,
-Yadex will print an error message an bail out. The reason for
-being so fussy is to avoid headaches when the game definition
-file format changes and there are old game definition files
-lying around in your directories.
+
+
+
+ As Yadex looks for its configuration files in several places,
+ you are put in the situation of having to decide which one to
+ use. Here are a few guidelines to help you make a decision.
+
+
+
+ - Avoid redundancy
+
-
+
+ Take advantage of Yadex's ability to use more than one
+ config file. Put each setting in the right place. Your
+ config files will be easier to read and maintain.
+
+
+ - Versionless vs. versionful files
+
-
+
+ Versionful files
+ (/etc/yadex/$VERSION/yadex.cfg and
+ ~/.yadex/$VERSION/yadex.cfg) are useful to
+ store settings that only work with a particular version of
+ Yadex. But remember that the versionful system-wide file
+ can be clobbered by a reinstallation.
+
+
+
+ Versionless files (/etc/yadex/yadex.cfg and
+ ~/.yadex/yadex.cfg) have the advantage of
+ being seen by all versions of Yadex. If you enter your
+ settings there, you won't have to enter them again when
+ you install a new version of Yadex, as long as the config
+ file syntax remains compatible.
+
+
+ - System-wide vs. user vs. local files
+
-
+
+ System-wide configuration files have the theoretical
+ advantage of being seen by all users, which makes them a
+ good place to put settings that apply to everybody, such
+ as the pathnames of the iwads. Of course, it doesn't make
+ any difference for the typical (single-user) Yadex
+ installation.
+
+
+
+ Per-user files (the ones in ~/.yadex) are
+ appropriate for settings that have to do with personal
+ preferences (fonts etc.). They also have the advantage
+ over system-wide files of not being overwritten by the
+ installation procedure (typing make install a
+ second time will wipe the versionful system file).
+
+
+
+ Local files (./yadex.cfg) are well suited to
+ settings that vary from project to project, such as
+ default textures.
+
+
+
+
+ Concrete application : Yadex was compiled with
+ /usr/local as the prefix. You are the only user
+ on your system. All your levels are for Doom 2, except
+ the one in ~/herewad which is for Heretic. One of
+ your Doom 2 levels (~/cave) is quite dark
+ and requires a different default light level. You usually run
+ Yadex from the directory where the pwad is.
+
-Game definition files are not supposed to be modified in
-normal use. Their format is described there.
+
+ There are several ways to configure Yadex for this setup.
+ Here's a solution in accordance with the above
+ guidelines :
+
+
+ ~/.yadex/yadex.cfg :
+
- The font
+
+ iwad2 = /somewhere/doom2.wad
+iwad3 = /somewhere/else/heretic.wad
+game = doom2
+
-By default, Yadex uses the default font of your system (that
-is often "fixed" a.k.a. "6x13"). But
-you can use the font of your choice by using the "-fn
-font_name" option or setting
-"font = font_name" in
-yadex.cfg. You should use a fixed-width font and
-not one that is too large for the size of your Yadex window or
-the display will look ugly. If Yadex does not find the specified
-font, it emits a warning and falls back on the default system
-font.
+
+ ~/herewad/yadex.cfg :
+
- You can get a list of all available fonts on your system
-with the command xlsfonts.
+
+ game = heretic
+default_floor_texture = floor11
+default_ceiling_texture = floor06
+default_lower_texture = sandsq2
+default_middle_texture = sandsq2
+default_upper_texture = sandsq2
+default_thing = 66
+
- Mouse wheel and other mouse issues
+
+ ~/cave/yadex.cfg :
+
- Button 3
+
+ default_light_level = 112
+
-The mouse 3rd button is not used yet but you can bet it will
-a future version. So a 3-button mouse is of course recommended.
+
+ Note how game is set in the per-user config file
+ (the general case) and overridden in the local config file for
+ Heretic level (the exception).
+
- Buttons 4 and 5
+
+
-People who have a mouse with more than 3 buttons,
-rejoyce ! Buttons 4 and 5 are used (for zooming in and
-out). See the paragraph on mice wheels below.
+
+ Most of Yadex's knowledge about thing numbers and names,
+ linedef types etc. is retrieved from so-called game definition
+ files. When you specify "-g foo", it in
+ fact means that Yadex should use the game definition file
+ named "foo.ygd".
+
- Swapping buttons
+
-You can swap the left and right buttons by setting the swap_buttons
-variable.
+
+ For Yadex to recognize the file as a game definition file, it
+ must begin with a certain magic string. If it doesn't, Yadex
+ will print an error message an bail out. The reason for being
+ so fussy is to avoid headaches when the game definition file
+ format changes and there are old game definition files lying
+ around in your directories.
+
- Wheel
+
+ Game definition files are not supposed to be modified in
+ normal use. Their format is described in ygd.html.
+
-The wheel that certain recent mice have is supported. But to
-be able to use it, you need to first make X aware that your
-mouse has a wheel. There are several ways to do that and they
-might vary depending on which X server you have. I have XFree86
-and a Logitech Pilot Mouse + and this is what I put in my
-XF86Config file :
+
- Section "Pointer"
- Protocol "Intellimouse"
- Device "/dev/mouse"
- Buttons 5
- ZAxisMapping 4 5
+ The algorithm used to locate game definition files is exactly
+ the same as the one described in Locating configuration files. Only
+ the search path is different. As is the case for config files,
+ it depends on the prefix for which Yadex was compiled.
+
-This means that the wheel is mapped to buttons 4 and 5. When
-you roll the wheel "up" (forwards), button4 press events are
-generated. When you roll the wheel "down" (backwards), button5
-press events are generated.
-
- Once you have done that, not only you can use the wheel in
-Yadex to zoom in and out but can also use it in all other X
-applications. That is, those that have bindings for buttons 4
-and 5. One such application is xterm : the wheel
-scrolls the window up and down through the scrolling region.
-
-
-
+
+ /usr :
+ -
+
+ .
+ ~/.yadex/$VERSION
+ ~/.yadex
+ /usr/share/games/yadex/$VERSION
+ /usr/share/games/yadex
+
+
+ /usr/local :
+ -
+
+ .
+ ~/.yadex/$VERSION
+ ~/.yadex
+ /usr/local/share/games/yadex/$VERSION
+ /usr/local/share/games/yadex
+
+
+ /opt/some/path :
+ -
+
+ .
+ ~/.yadex/$VERSION
+ ~/.yadex
+ /opt/some/path/share
+
+
+ /some/path :
+ -
+
+ .
+ ~/.yadex/$VERSION
+ ~/.yadex
+ /some/path/share
+
+
+
+
+
+
+ On startup, Yadex loads the game definition file corresponding
+ to the game variable. It performs a front-to-back
+ search (see Locating game definition
+ files) for a file named game.ygd.
+ The first match is used.
+
+
+
+
Though Yadex has quite a few bugs, most of them are
inconsequential, i.e. not likely to make Yadex unusable or
@@ -1657,43 +2289,63 @@
bite. Those are the ones you should know about :
- - Command line options that take an argument need to have a
- space between their argument and themselves.
+
-
+
Command line options that take an argument need to have
+ a space between their argument and themselves.
+
+ -
+
Exposure events are not always handled. If the Yadex
+ window turns black, back out by pressing [Esc],
+ several times if necessary.
+
+ -
+
If you edit a level from a file that contains several and
+ save it, all the other levels, textures, flats, etc. from
+ that file are lost.
+
+ -
+
Out-of-memory conditions and certain wad I/O errors are
+ handled in a very ungraceful manner. Basically,
+ Yadex aborts and if you haven't saved, you've lost all your
+ work. My advice :
- - Exposure events are not always handled. If the Yadex
- window turns black, back out by pressing [Esc],
- several times if necessary.
-
-
- If you edit a level from a file that contains several and
- save it, all the other levels, textures, flats, etc. from that
- file are lost.
+
+ - Make sure you have at least a couple of megs of free
+ memory.
+
- Save often and make backups.
+
- Don't use wads that contain errors.
+
- Make sure you have enough disk space and adequate
+ permissions.
+
- Don't modify files with an external program while
+ Yadex uses them. For example, if you use a texture wad,
+ don't rebuild it without quitting Yadex first.
+
-Check TODO for a complete list
-of things to fix.
+Check TODO for a complete
+list of things to fix.
-
-
+
+
- Doom
+
Supported. Linedef types and sector types added in v. 1.666
are supported and marked with "[v1.6]".
- Doom II
+
Supported.
- Doom alpha
+
Mostly supported. There are three Doom alpha versions that I
know of : 0.2,
+href="ftp://3darchives.in-span.net/pub/idgames/historic/doom0_2.zip">0.2,
0.4
+href="ftp://3darchives.in-span.net/pub/idgames/historic/doom0_4.zip">0.4
and 0.5.
+href="ftp://3darchives.in-span.net/pub/idgames/historic/doom0_5.zip">0.5.
They're supported to varying degrees of completeness. All
graphics resources (flats, patches, PLAYPAL,
sprites and textures) are supported for all versions with the
@@ -1722,7 +2374,7 @@
of it. If you want to do it, I won't discourage you and I will
gladly accept patches.
- Doom press release pre-beta
+
Supported. The different picture format is handled. Things
type 2016 (evil sceptre) and 2017 (unholy bible) are defined in
@@ -1735,34 +2387,47 @@
does not support sprites in pwads (yet). To see the sprites for
the evil sceptre and the unholy bible as well as the alternate
versions of the other sprites, you need to use the iwad from doomprbt.zip.
- Final Doom
+
Supported, AFAIK. The iwads have no
F1_START/F1_END labels and some levels contain a
thing of type 0 which made older versions of Yadex crash. This
has been fixed in version 1.1.0.
- Heretic
+
-Supported. Still missing: the sprite names for a couple of
-thing types. If there is a Heretic hacker out there willing to
-help, he/she is welcome. See "heretic.ygd".
+ Supported.
- Hexen
+
Very rudimentary support. You can load Hexen wads and edit
-the maps. But the things types are not all there. And the
-special features of Hexen (BEHAVIOR lump, new thing
-and linedef fields) are stripped off on reading. So don't try to
-save a Hexen level after editing it, you won't be able to use it
-with Hexen. And if you're saving it to the file it comes from,
-you'll lose your file. Don't save when in Hexen
-mode.
+the maps but most of Hexen's special features are stripped off
+on reading. So don't try to save a Hexen level after editing it,
+you won't be able to use it with Hexen. And if you're saving it
+to the file it comes from, you'll lose your file. Don't
+save when in Hexen mode.. Here's the breakdown :
- Strife
+
+ - Most thing types, and some sector and linedef types are
+ missing from
hexen.ygd.
+ - For things,
tid, z,
+ special and arg1 through
+ arg5 are discarded. There is currently no way
+ to examine or manipulate them from Yadex.
+ - For linedefs,
arg1 is put into
+ tag. arg2 through
+ arg5 are discarded and there is currently no way
+ to examine or manipulate them from Yadex.
+ - The Hexen-specific thing and linedef flags are not
+ recognized (but you can manipulate them).
+
BEHAVIOR is ignored.
+ MAPINFO is ignored.
+
+
+
Supported, except that :
@@ -1782,11 +2447,11 @@
format as Doom for textures, Strife 1.1 and later use a
different format.
- Ultimate Doom
+
Supported.
- Boom
+
Kind of supported, only very inconvenient to use <g>.
@@ -1812,43 +2477,31 @@
In progress...
- MBF
+
+
+The default DDF definitions included in EDGE 1.24 have been
+added to doom.ygd and doom2.ygd,
+marked with "[EDGE]". When the pointer moves over a
+sector that has extrafloors, the object info window shows the
+information relevant to those. To see the sprite for the night
+vision goggles (thing #7000), you must load
+edge.wad.
+
+ As of 1.5.0, the support for DDF is static : custom DDF
+files or DDF lumps are ignored. In other words, you are limited
+to the default DDF definitions.
+
+
-Mostly supported, I think. Thing 888 (dog), thing flag 80h
+Mostly supported, I think. Thing 888 (dog), thing flag 80h
(friendly), linedef types 271 and 272 are all in. You can't see
the sprite for the dog because it's embedded in the MBF
executable.
- Other derivatives
-
-Not supported so far.
-
-
-
-
-Yadex is GPL'd libre software. It incorporates code from DEU
-5.21 that was put in the public domain in 1994 by Raphaël Quinet
-and Brendon Wyber. The rest is Copyright © 1997-2000 André
-Majorel.
-
- This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License as
-published by the Free Software Foundation; either version 2 of
-the License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be
-useful, but WITHOUT ANY WARRANTY; without even the implied
-warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public
-License along with this program; if not, write to the Free
-Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
-USA.
+
-All trademarks are the propriety of their owners.
+ Not supported so far.
- AYM $SELF_DATE
+ AYM $SELF_DATE
diff -uaNr yadex-1.5.2/docsrc/yadex.6 yadex-1.6.0/docsrc/yadex.6
--- yadex-1.5.2/docsrc/yadex.6 2000-08-13 20:21:12.000000000 +0200
+++ yadex-1.6.0/docsrc/yadex.6 2003-03-31 19:05:07.000000000 +0200
@@ -227,8 +227,8 @@
("\fB$VERSION\fP"). The third field is the release date, between
parentheses ("\fB($SOURCE_DATE)\fP").
-The second line contains the magic string that this version
-requires at the beginning of configuration files.
+The second line contains a configuration file magic string (not
+used).
The third line contains the magic string that this version
requires at the beginning of game definition files.
@@ -250,49 +250,30 @@
This option is equivalent to and overrides the \fBzoom_default\fP
directive of the configuration file.
.SH FILES
-.TP
-.B Configuration file
-.B ./yadex.cfg
-.br
-.B ~/.yadex/$VERSION/yadex.cfg
-.br
-.B ~/.yadex/yadex.cfg
-.br
-.IB install_dir /yadex.cfg
-.br
-.B /usr/local/etc/yadex/$VERSION/yadex.cfg
-.br
-.B /usr/local/etc/yadex/yadex.cfg
-.br
-.B /etc/yadex/$VERSION/yadex.cfg
-.br
-.B /etc/yadex/yadex.cfg
-.TP
-.B Game definition file
-.BI ./ game .ygd
-.br
-.BI ~/.yadex/$VERSION/ game .ygd
-.br
-.IB install_dir / game .ygd
+.SS Configuration files
+.nf
+$FILES_ETC
+.fi
+.SS Game definition files
+.nf
+$FILES_SHARE
+.fi
+.SS Swap files
+.B $TMPDIR/yadexswp??????
.br
-.BI /usr/local/share/games/yadex/$VERSION/ game .ygd
-.br
-.BI /usr/share/games/yadex/$VERSION/ game .ygd
-.br
-.BI /usr/local/share/games/yadex/ game .ygd
-.br
-.BI /usr/share/games/yadex/ game .ygd
+.B /tmp/yadexswp??????
.SH ENVIRONMENT VARIABLES
.IP \fBDISPLAY\fP
X11 only. The name of the X display that Yadex will try to
connect to.
+.IP \fBHOME\fP
+Used to expand \fB~\fP when locating configuration and game
+definition files.
.IP \fBLINES\fP
If set, Yadex assumes the tty has that many lines instead of 24.
The value must be an unsigned, non-zero decimal integer.
-.IP \fBYADEX_DIR\fP
-Unix only. Where Yadex is installed. Can be used to look for the
-configuration file and friends. For testing purposes only. Not
-needed in normal use.
+.IP \fBTMPDIR\fP
+If set, swap files are created there. Otherwise, in \fB/tmp\fP.
.IP \fBYADEX_GAME\fP
Indicates the game to use. Overrides the \fBgame\fP parameter in
the config file, is overridden by the \fB\-g\fP command line
@@ -316,17 +297,23 @@
And many more. See \fBTODO\fP.
.SH AUTHOR
-André Majorel .
+André Majorel (http://www.teaser.fr/~amajorel/)
+
+.nf
+Contributors:
+Andrew J. Apted (http://www.netspace.net.au/~ajapted/)
+Matthew W. Miller (mwmiller@columbus.rr.com)
+.fi
Yadex is derived from DEU 5.21 that was written by Raphaël Quinet,
Brendon Wyber and others.
See the HTML documentation for detailed credits.
.SH LEGAL
-Yadex incorporates code from DEU 5.21 that was put in the public
-domain in 1994 by Raphaël Quinet and Brendon Wyber.
-
-The rest of Yadex is Copyright © 1997-2000 André Majorel.
+.SS Yadex
+.nf
+$COPYRIGHT_MAN
+.fi
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -342,20 +329,46 @@
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307, USA.
+.SS Atclib
+The Yadex distribution includes a subset of Atclib.
+
+Atclib is copyright André Majorel 1995-1999 and distributed under the terms of
+version 2 of the GNU Library General Public License.
-All trademarks are the propriety of their owners.
+This library is free software; you can redistribute it and/or
+modify it under the terms of version 2 of the GNU Library General Public
+License as published by the Free Software Foundation.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with this library; if not, write to the Free
+Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA
+.SS Boost
+The Yadex distribution includes a subset of Boost 1.25.0.
+
+Boost 1.25.0 is copyright various authors and released under the following
+terms\ : Permission to copy, use, modify, sell and distribute this software is
+granted provided this copyright notice appears in all copies.
+This software is provided "as is" without express or implied warranty, and with
+no claim as to its suitability for any purpose.
.SH SEE ALSO
.BR bsp (6),
.BR idbsp (6),
.BR tkwadcad (6),
.BR warm (6),
-.BR xwadtools (6),
-.BR ybsp (6)
+.BR xwadtools (6)
.IP LDE
-http://www-unix.oit.umass.edu/~tetron/lde/
+http://interreality.org/~tetron/technology/lde/
.IP PFME
http://www.purplefrog.com/~thoth/purplefrog/editor.html
+.IP Why
+http://www.hut.fi/~jpakkane/why/
.IP "Xwad (part of Dumb)"
http://stekt.oulu.fi/~tosi/dumb/dumb.html
.IP Xwadtools
-ftp://ftp.cdrom.com/pub/idgames/source/
+ftp://3darchives.in-span.net/pub/idgames/source/
diff -uaNr yadex-1.5.2/docsrc/ygd.html yadex-1.6.0/docsrc/ygd.html
--- yadex-1.5.2/docsrc/ygd.html 2000-06-03 14:20:19.000000000 +0200
+++ yadex-1.6.0/docsrc/ygd.html 2003-02-21 23:34:55.000000000 +0100
@@ -448,7 +448,7 @@
colour
desc
-- Defines a group of thing types. Takes exactly 4 arguments.
+
- Defines a group of thing types. Takes exactly 3 arguments.
diff -uaNr yadex-1.5.2/patch/README yadex-1.6.0/patch/README
--- yadex-1.5.2/patch/README 2000-08-27 21:08:48.000000000 +0200
+++ yadex-1.6.0/patch/README 1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-Patches for Yadex
------------------
-
-gcc-2.7.diff To compile Yadex 1.5.0 with GCC 2.7. To apply,
-
- cd yadex-1.5.0
- patch -p1 .
- It barfs if you use -> on the right hand of an
- iterator. It's a pain.
-
- I consider GCC 2.7 obsolete, and not a supported
- compiler for Yadex. This patch will rot or go
- away. Please upgrade. More recent versions of
- EGCS and GCC work fine.
-
--- AYM 2000-08-27
diff -uaNr yadex-1.5.2/patch/gcc-2.7.diff yadex-1.6.0/patch/gcc-2.7.diff
--- yadex-1.5.2/patch/gcc-2.7.diff 2000-08-27 20:20:14.000000000 +0200
+++ yadex-1.6.0/patch/gcc-2.7.diff 1970-01-01 01:00:00.000000000 +0100
@@ -1,220 +0,0 @@
-diff -ur yadex-1.5.0/src/bench.cc yadex-1.5.0-gcc27/src/bench.cc
---- yadex-1.5.0/src/bench.cc Sun Aug 13 16:43:11 2000
-+++ yadex-1.5.0-gcc27/src/bench.cc Sun Aug 27 17:41:26 2000
-@@ -33,10 +33,12 @@
- #include
- #include
-
-+#define times FOOBAR
- #include "gfx.h"
- #include "img.h"
- #include "pic2img.h"
- #include "wadres.h"
-+#undef times
-
-
-
-diff -ur yadex-1.5.0/src/drawmap.cc yadex-1.5.0-gcc27/src/drawmap.cc
---- yadex-1.5.0/src/drawmap.cc Thu Aug 24 15:36:36 2000
-+++ yadex-1.5.0-gcc27/src/drawmap.cc Sun Aug 27 18:03:49 2000
-@@ -518,6 +518,7 @@
- class Thing_npixels
- {
- public :
-+ Thing_npixels () : thing_no (0), npixels (0), type (0) { }
- Thing_npixels (i16 thing_no, unsigned long npixels, wad_ttype_t type)
- : thing_no (thing_no), npixels (npixels), type (type) { }
- bool operator< (const Thing_npixels& other) const
-@@ -541,7 +542,7 @@
- const Thing_npixels& operator[] (int n) { return a[n]; }
- void refresh ()
- {
-- a.clear ();
-+ a.erase (a.begin (), a.end ());
- a.reserve (NumThings);
- for (int n = 0; n < NumThings; n++)
- {
-@@ -576,7 +577,20 @@
- unsigned short height;
- };
-
--typedef map dim_map_t;
-+class Dim_map_key
-+{
-+ public :
-+ Dim_map_key () { value = 0; }
-+ Dim_map_key (i16 v) { value = v; }
-+ i16 value;
-+};
-+
-+bool operator< (Dim_map_key a, Dim_map_key b)
-+{
-+ return a.value - b.value;
-+}
-+
-+typedef map > dim_map_t;
- static dim_map_t dim_map; // FIXME there should be one for each game
-
-
-@@ -638,10 +652,10 @@
- }
- else
- {
-- mapx0 = MAPX (0) - dim->second.width / 2;
-- mapx9 = MAPX (ScrMaxX) + dim->second.width / 2;
-- mapy0 = MAPY (ScrMaxY) - dim->second.height / 2;
-- mapy9 = MAPY (0) + dim->second.height / 2;
-+ mapx0 = MAPX (0) - (*dim).second.width / 2;
-+ mapx9 = MAPX (ScrMaxX) + (*dim).second.width / 2;
-+ mapy0 = MAPY (ScrMaxY) - (*dim).second.height / 2;
-+ mapy9 = MAPY (0) + (*dim).second.height / 2;
- }
- }
- int mapx = Things[t.thing_no].xpos;
-diff -ur yadex-1.5.0/src/lumpdir.cc yadex-1.5.0-gcc27/src/lumpdir.cc
---- yadex-1.5.0/src/lumpdir.cc Mon Jun 5 13:46:40 2000
-+++ yadex-1.5.0-gcc27/src/lumpdir.cc Sun Aug 27 17:38:44 2000
-@@ -64,7 +64,7 @@
- if (dependency)
- delete dependency;
- if (! lump_map.empty ())
-- lump_map.clear ();
-+ lump_map.erase (lump_map.begin (), lump_map.end ());
- }
-
-
-@@ -92,7 +92,7 @@
- if (i == lump_map.end ())
- loc.wad = loc_prev.wad = 0;
- else
-- loc = loc_prev = i->second;
-+ loc = loc_prev = (*i).second;
- }
-
-
-@@ -122,7 +122,7 @@
- And usually is ! */
- have_prev = false;
- if (! lump_map.empty ())
-- lump_map.clear ();
-+ lump_map.erase (lump_map.begin (), lump_map.end ());
-
- /* Get list of lumps in the master directory. Everything
- that is between X_START/X_END or XX_START/XX_END and that
-@@ -231,7 +231,8 @@
- {
- array[n] = new char[WAD_NAME + 1];
- *array[n] = '\0';
-- strncat (array[n], i++->first.name, WAD_NAME);
-+ strncat (array[n], (*i).first.name, WAD_NAME);
-+ i++;
- }
- }
-
-diff -ur yadex-1.5.0/src/lumpdir.h yadex-1.5.0-gcc27/src/lumpdir.h
---- yadex-1.5.0/src/lumpdir.h Thu Jun 1 14:25:30 2000
-+++ yadex-1.5.0-gcc27/src/lumpdir.h Sun Aug 27 17:38:44 2000
-@@ -34,10 +34,11 @@
-
- #include |