Go to file
2018-09-23 17:51:25 +05:00
coldet First running version for Windows 10 2018-09-14 20:42:44 +05:00
doc 2007-06-14 2015-12-03 01:38:22 +01:00
licenses 2006-12-10 2015-12-03 01:37:02 +01:00
lua_addon 2007-06-14 2015-12-03 01:38:22 +01:00
math Fixing sprites 2018-09-23 11:35:20 +05:00
OpenGTA-win Final adjustments 2018-09-23 17:51:25 +05:00
opensteer 2007-04-16 2015-12-03 01:37:37 +01:00
replaceLoki Get rid of Loki 2018-09-23 10:57:34 +05:00
scripts 2007-06-14 2015-12-03 01:38:22 +01:00
tests 2007-06-14 2015-12-03 01:38:22 +01:00
tools 2007-06-14 2015-12-03 01:38:22 +01:00
util Get rid of Loki 2018-09-23 10:57:34 +05:00
.gitignore Some minor adjustment 2018-09-23 10:22:55 +05:00
ai.cpp Fixing anim bugs, fixing car movement 2018-09-23 16:53:57 +05:00
ai.h 2007-06-14 2015-12-03 01:38:22 +01:00
blockanim.cpp 2007-04-16 2015-12-03 01:37:37 +01:00
blockanim.h 2007-04-16 2015-12-03 01:37:37 +01:00
blockdata.cpp 2007-04-16 2015-12-03 01:37:37 +01:00
blockdata.h Get rid of Loki 2018-09-23 10:57:34 +05:00
bugs.rec 2007-06-14 2015-12-03 01:38:22 +01:00
common_sdl_gl.cpp Now it starts 2018-09-14 21:13:23 +05:00
common_sdl_gl.h 2006-12-10 2015-12-03 01:37:02 +01:00
cvs_changelog.txt 2007-06-14 2015-12-03 01:38:22 +01:00
datahelper.cpp 2007-04-16 2015-12-03 01:37:37 +01:00
datahelper.h 2007-04-16 2015-12-03 01:37:37 +01:00
dataholder.cpp Get rid of Loki 2018-09-23 10:57:34 +05:00
dataholder.h Get rid of Loki 2018-09-23 10:57:34 +05:00
Doxyfile 2006-12-10 2015-12-03 01:37:02 +01:00
entity_controller.cpp 2007-06-14 2015-12-03 01:38:22 +01:00
entity_controller.h 2007-06-14 2015-12-03 01:38:22 +01:00
font_cache.cpp First running version for Windows 10 2018-09-14 20:42:44 +05:00
font_cache.h Get rid of Loki 2018-09-23 10:57:34 +05:00
fx_sdt.h First running version for Windows 10 2018-09-14 20:42:44 +05:00
game_objects.cpp Final adjustments 2018-09-23 17:51:25 +05:00
game_objects.h Fixing anim bugs, fixing car movement 2018-09-23 16:53:57 +05:00
gfx_extract.cpp 2007-04-16 2015-12-03 01:37:37 +01:00
gl_base.cpp Prepare to set up shaders 2018-09-22 23:56:31 +05:00
gl_base.h 2007-04-16 2015-12-03 01:37:37 +01:00
gl_camera.cpp Some minor adjustment 2018-09-23 10:22:55 +05:00
gl_camera.h Get rid of Loki 2018-09-23 10:57:34 +05:00
gl_cityview.cpp Prepare to set up shaders 2018-09-22 23:56:31 +05:00
gl_cityview.h 2007-06-14 2015-12-03 01:38:22 +01:00
gl_font.cpp 2007-06-14 2015-12-03 01:38:22 +01:00
gl_font.h 2007-06-14 2015-12-03 01:38:22 +01:00
gl_frustum.cpp 2006-12-10 2015-12-03 01:37:02 +01:00
gl_frustum.h 2006-12-10 2015-12-03 01:37:02 +01:00
gl_pagedtexture.h 2007-04-16 2015-12-03 01:37:37 +01:00
gl_screen.cpp Some minor adjustment 2018-09-23 10:22:55 +05:00
gl_screen.h Get rid of Loki 2018-09-23 10:57:34 +05:00
gl_spritecache.cpp First running version for Windows 10 2018-09-14 20:42:44 +05:00
gl_spritecache.h Get rid of Loki 2018-09-23 10:57:34 +05:00
gl_texturecache.cpp Other parts work just fine 2018-09-14 22:27:04 +05:00
gl_texturecache.h 2007-04-16 2015-12-03 01:37:37 +01:00
id_sys.cpp 2007-04-16 2015-12-03 01:37:37 +01:00
id_sys.h 2007-04-16 2015-12-03 01:37:37 +01:00
license.txt 2007-06-14 2015-12-03 01:38:22 +01:00
lid_normal_data.h 2006-12-10 2015-12-03 01:37:02 +01:00
localplayer.cpp Cars available! 2018-09-23 16:14:17 +05:00
localplayer.h Cars available! 2018-09-23 16:14:17 +05:00
loki.make 2006-12-10 2015-12-03 01:37:02 +01:00
loki.make.w32_cross 2006-12-10 2015-12-03 01:37:02 +01:00
main2.cpp Now it starts 2018-09-14 21:13:23 +05:00
main.cpp Now it starts 2018-09-14 21:13:23 +05:00
makefile 2007-06-14 2015-12-03 01:38:22 +01:00
navdata.cpp 2007-06-14 2015-12-03 01:38:22 +01:00
navdata.h 2007-06-14 2015-12-03 01:38:22 +01:00
ogta_version 2007-06-14 2015-12-03 01:38:22 +01:00
opengta.h Fixing sprites 2018-09-23 11:35:20 +05:00
prepare_build.sh 2007-06-14 2015-12-03 01:38:22 +01:00
read_cmp.cpp First running version for Windows 10 2018-09-14 20:42:44 +05:00
read_fnt.cpp First running version for Windows 10 2018-09-14 20:42:44 +05:00
read_fxt.cpp First running version for Windows 10 2018-09-14 20:42:44 +05:00
read_g24.cpp First running version for Windows 10 2018-09-14 20:42:44 +05:00
read_gry.cpp Get rid of Loki 2018-09-23 10:57:34 +05:00
read_ini.cpp 2007-04-16 2015-12-03 01:37:37 +01:00
read_ini.h 2007-04-16 2015-12-03 01:37:37 +01:00
read_sdt.cpp First running version for Windows 10 2018-09-14 20:42:44 +05:00
readme.txt 2007-06-14 2015-12-03 01:38:22 +01:00
release_files_sorted 2007-06-14 2015-12-03 01:38:22 +01:00
slope1_data.h 2006-12-10 2015-12-03 01:37:02 +01:00
slope1_tcoords.h 2007-06-14 2015-12-03 01:38:22 +01:00
slope_height_func.cpp 2006-12-10 2015-12-03 01:37:02 +01:00
sprite_anim_player.cpp First running version for Windows 10 2018-09-14 20:42:44 +05:00
spritemanager.cpp Cars available! 2018-09-23 16:14:17 +05:00
spritemanager.h Cars available! 2018-09-23 16:14:17 +05:00
train_system.cpp 2007-04-16 2015-12-03 01:37:37 +01:00
train_system.h 2007-04-16 2015-12-03 01:37:37 +01:00
viewer.cpp Final adjustments 2018-09-23 17:51:25 +05:00

~-~-~ OGTA is OpenGTA ~-~-~

= Required software =
* OpenGL
  [ http://www.opengl.org/ ]
* SDL ( & SDL_image )
  [ http://www.libsdl.org/ ]
* PhysicsFS
  [ http://www.icculus.org/physfs/ ]
* Loki
  [ http://sourceforge.net/projects/loki-lib/ ]

* g++ ( GNU C++ )
  [ http://gcc.gnu.org/ ]
* GNU Make
  [ http://www.gnu.org/software/make/ ]

= Optional software =
* Lua
  [ http://www.lua.org/ ]
* SDL_mixer
  [ http://www.libsdl.org/projects/SDL_mixer/ ]
* SDL_sound
  [ http://icculus.org/SDL_sound/ ]

= Compiling =

Only tested on GNU Linux using gcc & make; I assume that GL, SDL and 
PhysicsFS are installed, Loki is downloaded and compiled automatically.

Just run 'make' or specifically 'make viewer'.

The other programs are/were used for development or debugging.

The distributed win32 binaries are created with a cross-compiler.

The file doc/compiling.txt in the source code release contains
more information about the build process.

= Installing the data-files =

You can download the game from http://www.rockstargames.com/classics/ .

These programs expect to find the data in the current directory, either
directly in the file-system or in a ZIP file (named 'gtadata.zip').
You want the content of the original game directory GTADATA, but not
the directory itself.
See doc/using_mods.txt for a slightly longer description.

Needed:
*.FXT, *.FON, *.CMP

STYLE*.GRY (for 8-bit graphics)
STYLE*.G24 (for 24-bit graphics)

Will be needed (in the future):
MISSION.INI
*.RAT ( 8 bit menu graphics)
*.RAW (24 bit menu graphics)
AUDIO/*.RAW AUDIO/*.SDT (sound effects)
AUDIO/*.WAV (cutscene text; in legacy format)

You may also want to keep the music (even though it isn't used yet).
It is safe to assume that Ogg Vorbis [ http://vorbis.com/ ] will
be supported, so you can encode the music files.

= Running =

Note: Binary releases only contain the 'viewer' application; the other
programs should only be intersting for developers (read: compile 
them yourself).

== gfxextract ==

Export/Display textures and sprites;
run ./gfxextract -h (or without any parameters) for usage info.

== spriteplayer ==

Sprite graphics browser; shows internal indices, can display
animations (ped walking, car delta anims).

run ./spriteplayer -h for usage information.

== viewer ==

Brain-dead immediate-mode renderer of the city (now with objects); with
plenty of bugs...

start as:
./viewer [flags] [0-2]

The optional param loads the respective city; default is 0:
0 - NYC.CMP
1 - SANB.CMP
2 - MIAMI.CMP

There are several flags; see the compiled-in usage information.

-V  show version and compile time switches
-h  show usage

Using "-l 1" will make it easier to see actual error messages;
sometimes there is a lot of noise on 'info' level (0).

keys:

ESC, cursor-keys, + and - do what you might except them to do;
furthermore:
  x       : pseudo-3d view
  z       : top-down view
  .       : decrease visible range
  ,       : increase visible range
  t       : display entire city (at a crawl)
  f       : toggle fullscreen/windowed [only works on Linux]
  PRINT   : save 'screenshot.bmp' in current directory
  p       : dump coords (in lua syntax) to stdout
  F2      : toggle drawing of sprite bounding-boxes
  F3      : toggle marking of sprite tex-border-boxes
  F4      : toggle free-move vs. follow-player
  F5      : toggle drawing of road heading arrows (& normals)
  F6      : city map mode (ESC to exit, +, -, cursor keys)
  F9      : toggle city blocks drawn textured
  F10     : toggle blocks wireframe lines
  F12     : show/hide screen-gamma scrollbar

in 3d view:
  w       : forward
  s       : backward
  space   : stop
  r       : toggle rotate cam (when not moving)
  g       : toggle ~gravity~ affect on 3d-cam

You can move the view with the mouse; when you switch
to 3d and the screen is black: move the mouse down.

in follow-player mode:
  i,j,k,l : move player-char
  l-shift : toggle walking/running
  l-ctrl  : shoot
  0       : unselect weapon / unarmed
  1,2,3,4 : select weapon (only switches graphic)
  F7      : draw explosion at player pos (graphical effect)
  F8      : create random-walker ped at player-pos

You can still use + and - to zoom; but the view will try
to return to the old position quickly.

== luaviewer: viewer + Lua (optional target) ==

Also needs Lua (only 5.1 tried) in path; run: 'make luaviewer' 
then start it like with:
  ./luaviewer -s scripts/demo1.lua [0-2]

See the scripts for a little documentation.

= License & Credits =

This is _not_ free software, as it must not be used for commercial
applications. [ http://www.opensource.org/docs/definition.php ]
Please read license.txt for the details.

Author: tok@openlinux.org.uk

Special thanks to:

Jernej 'Delfi' L. (jernejcoder@gmail.com) for providing the vertex-data
and invaluable help concerning several of the file formats.