Hello there. 
^^^^^^^^^^^^
Thanks for downloading this very, very, very beta of my small editskin
program.

                               - ethernal@pcuf.fi

WHAT IS THIS THINGAMAGIC?
^^^^^^^^^^^^^^^^^^^^^^^^^
It's a simple skinfile editor for QuakeWorld.
QuakeWorld uses "skin" files for players, it's the texture that is mapped on
your player model in the game. So simply put: it's what you look like.
Even though the skin files are in pcx format, editing them with conventional
drawing programs is kinda hard because
1) The palette may not change (many programs rewrite the palette in a
   different order, can't imagine why though)
2) You must keep within the lines of the original model: anything you put
   outside the boundaries is just ignored, which will annoy you sooner or
   later.
3) Colors with special meaning (i.e. pant colors etc.).

 (more about this in the skins.txt file)

.. While this program writes the palette as it's read, it's impossible to
draw outside boundaries (except with the new option 0.01d> invert_mask, you
can draw ONLY outside texture boundaries), and it has an info line which
shows you if the color you're using is special in any way for quake.

 -- NOTE: weird bug in the original skin: there is a brown ring around
          then neck and the boots have shirt colored soles... or then
          my little proggie just bugs like hell...

INSTALLATION:
^^^^^^^^^^^^^
Extract the packet (which you probably did already).
Go in the directory.
Run make.
Wish for good things in life.

If everything went okay, thats it. Otherwise, please try to tweak it and/or
mail me about it.

RUNNING:
^^^^^^^^
Type in: editskin pcxfile <maskfile>
     or: xeditskin pcxfile <maskfile>

 (maskfile is for the future when editing other skins than the players
  skin is added, default=base.pcx)

In the program itself there are only a few buttons, but there are many
keyboard commands. (btw. I strongly recommend that you use the keypad and
keep the numlock on). These commands are now changeable via the rc file.
 (Some keys might not work in X, some might not work in svgalib, some in
  neither. Please notify me if you find some)
 
+ Selects next color.
- Selects previous color.

* "Inverts" the cursor. It doesn't actually invert the cursor, but it makes
  the cursor black on bright surfaces and white on dark surfaces.
  
  Or if you have marked an area to be copied, it changes the cursor to the
  copy data.
  -- NOTE: If the cursor is "texturized" all normal drawing functions will
           function like they function with the normal cursor.

9 Enlarges the cursor.
8 Shrinks the cursor.

6 Brightens the cursor color.
5 Darkens the cursor color.

3 Brightens the area beneath the cursor.
2 Darkens the area beneath the cursor.

7 Switches between a round and a box brush.

4 Switches which mask you can draw in (the texture or the outside)

0 Starts/ends/clears copy parameters.
  First press: Mark the first corner of the area.
  Second press: Mark the second corner of the area. (, will now function)
  Third press: Clear all copy data from memory (* will work normally)
  Fourth press: as first... etc.

, Pastes copy data.

q Quits.

** NOTE: Don't delete or change the base.pcx, editskin relies on that file to
         know where are the areas, which aren't shown when the texture
         is rendered.

UNIVERSAL ES LIBRARY (0.02b -> .. )
^^^^^^^^^^^^^^^^^^^^
It's the graphics "lib" that editskin now uses. It's not a lib, it's only a
style to implement multiple displaying methods which I created to add X
support. If you can figure out another interface which needs support, go for
it. If you can't make it yourself, mail to me about it. I love enlarging
this distribution package.

X VERSION (0.02b -> .. )
^^^^^^^^^
What do I have to say. I don't know crap about X programing, the interface
is as flaky as a hermits scalp and the rewrite routine is absolute rubbish.
 - But hey, it runs in a window.

CONFIGURATION FILE ~/.editskinrc  ( 0.02a -> .. )
^^^^^^^^^^^^^^^^^^
From 0.02a onwards editskin has a configuration file. The file is used
mostly to describe colors in the program.
The format is very simple. '#' commenting is allowed, spaces and tabs
can be used any way you like, empty lines are allowed.

For color values:
<value name> <red> <green> <blue>

Single values:
<value name> <value>

Text strings:
<string name> <text>

Boolean values:
<value name> <bool>

 <bool>: true, yes or 1 = TRUE
         false, no or 0 = FALSE

No errors are fatal. Lines with errors will be ignored and reported.
Neither the value names or boolean statements are case sensitive.

Color values:                                    (bg=background, fg=foreground)
-------------
pinfo_fg, _bg			Info string colors
shirtlabel_fg, _bg		Shirtwidget colors
pantlabel_fg, _bg		Pantwidget colors
arrow_fg, _bg			Widget arrow colors
savebox_fg, _bg			Savebox colors
mouse_color			Mouse cursor color
background			Background color

Single values:
--------------
pant_color, shirt_color		Player color values
logo_color_red, _green, _blue	Percentage values of color in logo (0-100)

String values:
--------------
mask_file			Sets default mask file 
                                (overrided by command line parameters) 
Boolean values:
---------------
cursor_rounded			Sets circle brush
show_realcolors			Sets if to show real colors at startup

Key values:						(default)
-----------
key_brush_enlarge		Enlarges brush		(9)
key_brush_shrink		Shrinks brush		(8)
key_brush_brighten		Brightens brush		(6)
key_brush_darken		Darkens brush		(5)
key_brush_round			Rounds/Boxes brush	(7)
key_brush_c_next		Next color		(+)
key_brush_c_prev		Previous color		(-)
key_cursor_invert		Invert mode		(*)
key_mask_invert			Inverts mask		(4)
key_draw_brighter		Brightens area below	(3)
key_draw_darker			Darkens area below	(2)
key_show_realcolor		Sets realcolor mode	(1)
key_copy_set			Sets copy mode		(0)
key_copy_draw			Pastes			(,)
key_save			Saves			(s)
key_quit			Quits			(q)



-- NOTE: The string interpreter is probably very buggy, so it's very important
         that you mail any incorrectly interpreted string to me with the
         version number of the program.
         

BUGS/UNDOCUMENTED FEATURES/OTHER UNSUPPORTED STUFF:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* I just realized that this program could be easily converted to support
  other skins than just player skins, and it can even be done by copying
  the other base skin on base.pcx. But I will probably soon add it to the
  main program.

* You can't view the skins on models. If someone would mail me how the mdl's
  are built, I might !MIGHT! add 3D viewing of the model with the edited
  skin.
  -- NOTE: !MIGHT! means that I'd love it, but I really haven't got any
           experience in building 3d engines, not to mention texture mapping.

* The ninja.pcx is a very incomplete skin. This editor can be used to make
  a lot more complicated skins.

PLEASE.	Send me mail about this: If you hate it, send me mail, if you love
	it, send me mail, if you couldn't care less, send me mail.

Thanks to:
^^^^^^^^^^
Tuomo Valkonen's game (probably Xinsane) for the pcx reading routine.
  P.S. Sorry about adding you here so late..

Gimp team for making great software (the logo is made with Gimp).

Linus Torvalds (who wouldn't thank him..) for making a great OS.

Id Software for creating a great game and especially for porting it, and
 for releasing the linuxxdoom source code from where I stole the nullcursor
 stuff for the X drivers.

About 5 people for 'beta' testing. (one of them forced me to code the
 copy & paste feature in 15 minutes, so flame him if the copying is a bit
 `dirty')

**************************************************************************
You can copy this, modify this, do anything with it, but if you distribute
it, please give me credits.

Your's truly. ethernal@pcuf.fi
Check out: http://www.pcuf.fi/~ethernal (caution, no info about editskin).

******************************************************************************
skins.txt and base.pcx are copyrighted by id Software 1997.
Quake (tm) (c) id Software, Inc. All trademarks are the property of their
respective companies.
