=====================
 GTA Map Viewer
=====================
 Version 0.5 ALPHA 4
 25.08.2005
=====================

Copyright  2005 by Steve M.

Email: support@steve-m.com
Web: http://www.steve-m.com


DISCLAIMER
~~~~~~~~~~

I take no responsibility of any damage caused by the usage of this software!
This release is a public alpha version which is intended for personal testing
purposes only. DISTRIBUTION OTHER THAN ON STEVE-M.COM IS PROHIBITED!

I am not associated with Rockstar Games, Rockstar North, Take Two, RenderWare
or Criterion in any way.

NOTE: This an early, user-unfriendly, slow alpha version - don't complain!


Getting Started
~~~~~~~~~~~~~~~

Open (or create) games.cfg and enter up to 4 paths to your GTA games.
Only the first four lines are checked, there must be one path per line,
comments are not allowed.
When the program is running, you can access the game maps by pressing F1 to F4.

If you have problems creating the games.cfg, read this:
http://www.gtaforums.com/index.php?showtopic=211177&view=findpost&p=3114086


Navigation
~~~~~~~~~~

To be able to navigate with the mouse, click on the window. Press ESC once to
release the mouse again. Pressing ESC another time will terminate the program.

F1 to F4 - load map (use games.cfg)

Numbers 0 to 9 load a camera position. Hold Ctrl and press a number to store a
camera position in that slot. They are saved in an external file.

F5 - toggle distance culling
F6 - toggle streaming
F7 - toggle LOD rendering (only when distance culling is enabled)
F8 - reset camera and draw distance
F11 - execute LUA script (by default MapViewer.lua), see scripting.txt
F12 - take screenshot (will be saved as .bmp in the viewer directory)
SPACE - toggle simple camera flight mode
V  - toggle verbose mode (for debug messages)
T  - toggle texture rendering mode
M  - cycle through status display modes
I  - toggle interior mode

+/- - increase/decrease draw distance multiplier (min 0.5, default 2)
mult/div (numpad) - increase/decrease field of view (FOV)
Numpad 0 (hold) - increase game time
Numpad Decimal - reset game time to 12:00 am

W/S/A/D, arrow keys   - move camera
R/F, Page up/down     - move on z axis (height)
mouse, numpad 4/6/8/2 - rotate camera

right mouse button    - show information (dff, txd, id) about the focused
                        object in the title bar (not in fullscreen mode)

Default moving speed is 20 m/s. Press the left mouse button to move 5x faster,
press shift to move 10x faster, press both to move 50x faster.


Notes
~~~~~

Supported Games: GTA III PC, GTA VC PC, GTA SA PC
GTA SA PS2 loading is disabled in this version, since an unknown problem lets
the program crash. I might be able to fix this, but it's low priority.
Other games should be detected correctly, but aren't loaded.

LOD replacement is only implemented for San Andreas yet, for the other games
only hi-res objects are rendered.

If interior mode is disabled (default), only interiors 0 and 13 are rendered;
if enabled (I) all others are rendered. Only the lowest byte of the interior
ID is considered (SanAn uses higer values as flags to group the objects,
probably for render priority).

Press M to cycle through the 4 available status display modes. Mode 1 displays
the current number of loaded item definitions, instances and streamed files in
the window title; mode 2 shows the camera position; mode 3 shows the game time
and whether interiors are enabled; mode 4 shows the name of the detected game
version and the directory.

If you press F5, distance culling is switched off and even distant objects are
rendered in highest quality (no LODs). This is likely to have an enormous
impact on the frame rate, but could be useful to take nice screenshots.

Press F6 to disable the streaming engine. Every file that is loaded will be
kept in memory. This needs a lot of memory, but results in higher framerates /
less pop-ups when moving. The streaming engine can be tweaked using
settings.cfg:

MaxFilesPerFrame is the maximum number of stream files that are loaded per
frame. The lower this number, the higher the framerate when moving around
quickly, but the more pop-ups you'll notice.

StreamWaitTime is the time (in seconds) the streaming engine waits before
removing unused stream files from memory. Set this to a few seconds to avoid
pop-ups of invisible objects when you turn away and back quickly. If this is 0,
files will be removed immediately.

Use a debug output viewer (like from sysinternals.com) to check what the
program currently does.

Version 0.5 Alpha 4 and higher support LUA scripting. See scripting.txt for
more information.


History
~~~~~~~

Version 0.5 Alpha 4 (25.08.05)
- improved idle behavior (no rendering after focus loss, and mouse release)
- ability to run the viewer without window frame for better screenshots
- changed screenshot bitmap bpp from 32 to 24, since there's no alpha channel
- ability to disable SA's enex markers
- LUA scripting interface, only 8 commands yet
- 2 sample scripts: radar.lua and flight.lua
- various other fixes

Version 0.5 Alpha 3 (23.08.05)
- take screenshots with F12
- night vertex colors (from 8pm to 6am)
- user definable FOV
- no texture mode (press T)
- unlimited draw distance multiplier
- SA PS2 map loading disabled

Version 0.5 Alpha 2 (31.07.05)
- bugfix for object focusing
- multiple IMG archives supported
- interior rendering (press I)
- enex marker rendering (only visual yet)
- different status display modes
- SA LODs supported
- bounding sphere rendering removed; F7 toggles LODs now
- switching off streaming (F6) will no longer load every single available
  object; instead it will only keep the loaded files in memory (no unloading)
- various other bugfixes and improvements

Version 0.5 Alpha (08.07.05)
- SA PC txd format supported
- multiple UVs in PC dff models supported
- experimental parked car rendering
- info for focused objects
- [first public alpha release]

Version 0.4 Alpha (11.02.05)
- SA PS2 textures
- SA PS2 geometry fixed
- SA PS2 UVs fixed
- "txd parent" support
- changeable startup resolution (see settings.cfg)
- fullscreen mode, vsync

Version 0.3 Alpha 2 (01.02.05)
- loading of default.dat
- again improved alpha rendering
- option to disable quick loading removed
- extended error handling
- several minor changes

Version 0.3 Alpha (30.01.05)
- textures (III and VC)
- nice alpha sorting and blending (looks much better than moomapper :p)
- improved lighting
- fixed SA PS2 meshes (no textures or anims yet)
- game time (for proper tobj processing)
- possibility to store camera positions
- tons of bug fixes

Known issues:

- no LODs for GTA III and VC yet
- minor frustum culling bugs
- still quite slow
- train tracks in GTA III are totally fucked
- several MI objects can't be loaded due to violations of the RW stream format
  (both dff and txd)
- windows of car shop in GTA3 aren't transparent
- SA PS2: a few textures have R and B flipped, or are totally messed up; no
  alpha blending; sometimes a bunch of huge triangles pops up;
  bug that makes the viewer crash when streaming the models
- several overlay textures in SA not transparent, especially rocks
- no doublesided materials supported yet
- no SA mipmaps supported yet

Planned features:

- HUD and menu
- water
- skydome
- optimized streaming and rendering engine (quadtree, loading, ...)
- multithreading
- object and texture animations (SA)
- ...and much more


Thanks to Odie (R.I.P) and all the coders and modders at gtaforums.com!

Special thanks to:
- Mike Lischke for the Delphi OpenGL headers and geometry library
  (http://www.soft-gems.net)
- the authors of LUA (http://www.lua.org/)
- Rolf Meyerhoff for the Delphi LUA headers (http://www.matrix44.de/lua/)
- Dan Strandberg for getting me started with LUA in Delphi, and general help
  (http://www.supcomforums.com/viewtopic.php?t=7)


If there are any problems, questions, mistakes, bugs or something else simply
send an email! (support@steve-m.com)


Enjoy

Steve