2019-05-29 22:47:33 +00:00
|
|
|
#pragma once
|
2019-05-15 14:52:37 +00:00
|
|
|
|
|
|
|
enum Config {
|
2020-03-22 14:23:40 +00:00
|
|
|
NUMPLAYERS = 1,
|
|
|
|
|
2020-05-06 19:54:43 +00:00
|
|
|
NUMCDIMAGES = 6, // gta3.img duplicates (not used on PC)
|
2020-02-25 17:24:45 +00:00
|
|
|
MAX_CDIMAGES = 8, // additional cdimages
|
2019-07-24 16:55:43 +00:00
|
|
|
MAX_CDCHANNELS = 5,
|
2019-05-15 14:52:37 +00:00
|
|
|
|
2020-05-05 15:04:43 +00:00
|
|
|
MODELINFOSIZE = 6500,
|
|
|
|
TXDSTORESIZE = 1385,
|
|
|
|
COLSTORESIZE = 31,
|
2020-05-06 19:54:43 +00:00
|
|
|
EXTRADIRSIZE = 256,
|
2019-09-28 15:16:52 +00:00
|
|
|
CUTSCENEDIRSIZE = 512,
|
2019-05-15 14:52:37 +00:00
|
|
|
|
2020-05-07 19:55:54 +00:00
|
|
|
SIMPLEMODELSIZE = 3885,
|
2020-05-05 16:31:53 +00:00
|
|
|
TIMEMODELSIZE = 385,
|
2019-05-15 14:52:37 +00:00
|
|
|
CLUMPMODELSIZE = 5,
|
2020-05-05 16:31:53 +00:00
|
|
|
WEAPONMODELSIZE = 37,
|
|
|
|
PEDMODELSIZE = 130,
|
2020-05-07 19:55:54 +00:00
|
|
|
VEHICLEMODELSIZE = 110,
|
|
|
|
TWODFXSIZE = 1210,
|
2019-05-15 14:52:37 +00:00
|
|
|
|
2020-02-25 17:24:45 +00:00
|
|
|
MAXVEHICLESLOADED = 50, // 70 on mobile
|
2019-06-20 12:49:16 +00:00
|
|
|
|
2020-05-05 21:27:43 +00:00
|
|
|
NUMOBJECTINFO = 400, // TODO(MIAMI): fantasy // object.dat
|
2019-05-15 14:52:37 +00:00
|
|
|
|
|
|
|
// Pool sizes
|
2020-05-05 16:31:53 +00:00
|
|
|
NUMPTRNODES = 50000,
|
|
|
|
NUMENTRYINFOS = 5400, // only 3200 in VC???
|
|
|
|
NUMPEDS = 140,
|
|
|
|
NUMVEHICLES = 110,
|
|
|
|
NUMBUILDINGS = 7000,
|
|
|
|
NUMTREADABLES = 1214, // 1 in VC
|
|
|
|
NUMOBJECTS = 460,
|
|
|
|
NUMDUMMIES = 2802, // 2340 in VC
|
|
|
|
NUMAUDIOSCRIPTOBJECTS = 256, // 192 in VC
|
|
|
|
NUMCUTSCENEOBJECTS = 50, // does not exist in VC
|
|
|
|
// TODO(MIAMI): colmodel pool
|
2019-05-15 14:52:37 +00:00
|
|
|
|
2020-05-08 13:59:57 +00:00
|
|
|
NUMANIMBLOCKS = 35,
|
|
|
|
NUMANIMATIONS = 450,
|
|
|
|
|
2020-05-27 20:32:33 +00:00
|
|
|
NUMTEMPOBJECTS = 40,
|
2019-07-08 19:37:47 +00:00
|
|
|
|
2019-08-09 17:42:18 +00:00
|
|
|
// Path data
|
2020-05-05 15:04:43 +00:00
|
|
|
NUM_PATHNODES = 9650,
|
|
|
|
NUM_CARPATHLINKS = 3500,
|
|
|
|
NUM_MAPOBJECTS = 1250,
|
|
|
|
NUM_PATHCONNECTIONS = 20400,
|
2019-08-09 17:42:18 +00:00
|
|
|
|
2019-05-15 14:52:37 +00:00
|
|
|
// Link list lengths
|
2020-04-16 09:44:04 +00:00
|
|
|
NUMALPHALIST = 20,
|
2020-05-11 20:21:18 +00:00
|
|
|
NUMBOATALPHALIST = 20,
|
|
|
|
NUMALPHAENTITYLIST = 200,
|
|
|
|
NUMALPHAUNTERWATERENTITYLIST = 30,
|
2019-05-15 14:52:37 +00:00
|
|
|
NUMCOLCACHELINKS = 200,
|
|
|
|
NUMREFERENCES = 800,
|
|
|
|
|
|
|
|
// Zones
|
2020-05-06 10:23:57 +00:00
|
|
|
NUMAUDIOZONES = 14,
|
|
|
|
NUMINFOZONES = 169,
|
|
|
|
NUMMAPZONES = 39,
|
|
|
|
NUMNAVIGZONES = 20,
|
2019-05-15 14:52:37 +00:00
|
|
|
|
|
|
|
// Cull zones
|
2020-05-06 10:23:57 +00:00
|
|
|
NUMATTRIBZONES = 704,
|
2019-05-15 14:52:37 +00:00
|
|
|
|
2020-05-19 08:23:08 +00:00
|
|
|
NUMOCCLUSIONVOLUMES = 350,
|
|
|
|
|
2019-05-15 14:52:37 +00:00
|
|
|
PATHNODESIZE = 4500,
|
|
|
|
|
2020-05-05 22:53:26 +00:00
|
|
|
NUMWEATHERS = 7,
|
2019-05-15 14:52:37 +00:00
|
|
|
NUMHOURS = 24,
|
2019-05-30 09:12:49 +00:00
|
|
|
|
2019-06-01 10:02:31 +00:00
|
|
|
NUMEXTRADIRECTIONALS = 4,
|
2019-05-30 09:12:49 +00:00
|
|
|
NUMANTENNAS = 8,
|
2019-06-01 17:18:19 +00:00
|
|
|
NUMCORONAS = 56,
|
2019-06-12 09:08:56 +00:00
|
|
|
NUMPOINTLIGHTS = 32,
|
2019-10-16 23:22:39 +00:00
|
|
|
NUM3DMARKERS = 32,
|
2020-04-07 14:48:49 +00:00
|
|
|
NUMBRIGHTLIGHTS = 32,
|
2020-04-07 10:33:14 +00:00
|
|
|
NUMSHINYTEXTS = 32,
|
2019-10-03 10:21:00 +00:00
|
|
|
NUMMONEYMESSAGES = 16,
|
2019-10-03 19:28:56 +00:00
|
|
|
NUMPICKUPMESSAGES = 16,
|
2020-03-22 10:20:36 +00:00
|
|
|
NUMBULLETTRACES = 16,
|
2020-04-07 20:26:01 +00:00
|
|
|
NUMMBLURSTREAKS = 4,
|
2020-04-08 14:35:23 +00:00
|
|
|
NUMSKIDMARKS = 32,
|
2019-06-12 09:08:56 +00:00
|
|
|
|
2019-06-24 22:42:23 +00:00
|
|
|
NUMONSCREENTIMERENTRIES = 1,
|
2020-06-12 23:02:59 +00:00
|
|
|
NUMRADARBLIPS = 75,
|
2019-10-03 19:28:56 +00:00
|
|
|
NUMGENERALPICKUPS = 320,
|
|
|
|
NUMSCRIPTEDPICKUPS = 16,
|
|
|
|
NUMPICKUPS = NUMGENERALPICKUPS + NUMSCRIPTEDPICKUPS,
|
|
|
|
NUMCOLLECTEDPICKUPS = 20,
|
2020-04-12 20:50:34 +00:00
|
|
|
NUMPACMANPICKUPS = 256,
|
2019-07-12 16:01:22 +00:00
|
|
|
NUMEVENTS = 64,
|
2019-07-27 18:28:18 +00:00
|
|
|
|
2020-05-20 17:10:05 +00:00
|
|
|
NUM_CARGENS = 185,
|
2019-09-11 18:42:34 +00:00
|
|
|
|
|
|
|
NUM_PATH_NODES_IN_AUTOPILOT = 8,
|
2019-09-14 23:28:07 +00:00
|
|
|
|
|
|
|
NUM_ACCIDENTS = 20,
|
2019-10-06 21:39:25 +00:00
|
|
|
NUM_FIRES = 40,
|
2020-01-03 16:48:13 +00:00
|
|
|
NUM_GARAGES = 32,
|
2020-01-12 11:31:04 +00:00
|
|
|
NUM_PROJECTILES = 32,
|
2019-10-06 21:39:25 +00:00
|
|
|
|
2020-04-01 21:04:56 +00:00
|
|
|
NUM_GLASSPANES = 45,
|
|
|
|
NUM_GLASSENTITIES = 32,
|
2020-02-25 17:24:45 +00:00
|
|
|
NUM_WATERCANNONS = 3,
|
|
|
|
|
2019-10-06 21:39:25 +00:00
|
|
|
NUMPEDROUTES = 200,
|
2019-11-25 02:25:10 +00:00
|
|
|
NUMPHONES = 50,
|
2020-05-09 15:05:26 +00:00
|
|
|
NUMPEDGROUPS = 67,
|
|
|
|
NUMMODELSPERPEDGROUP = 16,
|
2020-03-29 15:26:23 +00:00
|
|
|
NUMSHOTINFOS = 100,
|
2019-11-02 23:13:29 +00:00
|
|
|
|
2020-05-05 15:04:43 +00:00
|
|
|
NUMROADBLOCKS = 300,
|
2020-05-30 17:08:31 +00:00
|
|
|
NUM_SCRIPT_ROADBLOCKS = 16,
|
2020-03-25 14:13:06 +00:00
|
|
|
|
2019-11-02 23:13:29 +00:00
|
|
|
NUMVISIBLEENTITIES = 2000,
|
|
|
|
NUMINVISIBLEENTITIES = 150,
|
2020-03-22 14:23:40 +00:00
|
|
|
|
2020-03-21 13:51:30 +00:00
|
|
|
NUM_AUDIOENTITY_EVENTS = 4,
|
|
|
|
NUM_PED_COMMENTS_BANKS = 2,
|
|
|
|
NUM_PED_COMMENTS_SLOTS = 20,
|
|
|
|
|
|
|
|
NUM_SOUNDS_SAMPLES_BANKS = 2,
|
|
|
|
NUM_SOUNDS_SAMPLES_SLOTS = 27,
|
2020-06-08 11:29:55 +00:00
|
|
|
NUM_AUDIOENTITIES = 250,
|
2020-03-21 13:51:30 +00:00
|
|
|
|
2020-06-08 11:29:55 +00:00
|
|
|
NUM_AUDIO_REFLECTIONS = 8,
|
2020-03-21 13:51:30 +00:00
|
|
|
NUM_SCRIPT_MAX_ENTITIES = 40,
|
2020-03-28 12:24:13 +00:00
|
|
|
|
2020-05-11 18:04:35 +00:00
|
|
|
NUM_GARAGE_STORED_CARS = 4,
|
2020-04-05 09:35:51 +00:00
|
|
|
|
2020-04-08 19:29:02 +00:00
|
|
|
NUM_CRANES = 8,
|
|
|
|
|
|
|
|
NUM_EXPLOSIONS = 48,
|
2020-05-23 17:06:52 +00:00
|
|
|
|
2020-05-31 17:59:01 +00:00
|
|
|
NUM_SETPIECES = 96,
|
|
|
|
NUM_SHORTCUT_START_POINTS = 16
|
2019-05-15 14:52:37 +00:00
|
|
|
};
|
2019-05-30 21:49:06 +00:00
|
|
|
|
2019-07-06 10:27:21 +00:00
|
|
|
// We'll use this once we're ready to become independent of the game
|
|
|
|
// Use it to mark bugs in the code that will prevent the game from working then
|
|
|
|
//#define STANDALONE
|
2019-07-03 11:13:55 +00:00
|
|
|
|
2019-06-27 08:58:51 +00:00
|
|
|
// We don't expect to compile for PS2 or Xbox
|
|
|
|
// but it might be interesting for documentation purposes
|
|
|
|
#define GTA_PC
|
|
|
|
//#define GTA_PS2
|
|
|
|
//#define GTA_XBOX
|
|
|
|
|
2019-07-03 11:13:55 +00:00
|
|
|
// This enables things from the PS2 version on PC
|
|
|
|
#define GTA_PS2_STUFF
|
|
|
|
|
|
|
|
// This is enabled for all released games.
|
|
|
|
// any debug stuff that isn't left in any game is not in FINAL
|
|
|
|
//#define FINAL
|
|
|
|
|
|
|
|
// This is enabled for all released games except mobile
|
|
|
|
// any debug stuff that is only left in mobile, is not in MASTER
|
|
|
|
//#define MASTER
|
|
|
|
|
|
|
|
#if defined GTA_PS2
|
2020-04-09 03:20:44 +00:00
|
|
|
# define GTA_PS2_STUFF
|
2019-07-03 11:13:55 +00:00
|
|
|
# define RANDOMSPLASH
|
|
|
|
#elif defined GTA_PC
|
|
|
|
# define GTA3_1_1_PATCH
|
2019-08-02 20:20:12 +00:00
|
|
|
//# define GTA3_STEAM_PATCH
|
2020-05-31 17:59:01 +00:00
|
|
|
//# define GTAVC_JP_PATCH
|
2019-07-03 11:13:55 +00:00
|
|
|
# ifdef GTA_PS2_STUFF
|
2020-04-19 04:14:13 +00:00
|
|
|
# define USE_PS2_RAND
|
2019-07-03 11:13:55 +00:00
|
|
|
# define RANDOMSPLASH // use random splash as on PS2
|
|
|
|
# define PS2_MATFX
|
|
|
|
# endif
|
|
|
|
#elif defined GTA_XBOX
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef MASTER
|
|
|
|
// only in master builds
|
|
|
|
#else
|
|
|
|
// not in master builds
|
2019-10-08 20:07:11 +00:00
|
|
|
#define VALIDATE_SAVE_SIZE
|
2019-07-03 11:13:55 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef FINAL
|
|
|
|
// in all games
|
|
|
|
# define USE_MY_DOCUMENTS // use my documents directory for user files
|
|
|
|
#else
|
|
|
|
// not in any game
|
|
|
|
# define NASTY_GAME // nasty game for all languages
|
|
|
|
# define NO_MOVIES // disable intro videos
|
2020-03-31 10:30:13 +00:00
|
|
|
# define NO_CDCHECK
|
2019-07-03 11:13:55 +00:00
|
|
|
# define CHATTYSPLASH // print what the game is loading
|
2020-05-09 13:06:13 +00:00
|
|
|
# define DEBUGMENU
|
2020-05-29 10:03:32 +00:00
|
|
|
# define TIMEBARS // print debug timers
|
2019-07-03 11:13:55 +00:00
|
|
|
#endif
|
|
|
|
|
2019-11-06 22:53:54 +00:00
|
|
|
#define FIX_BUGS // fixes bugs that we've came across during reversing, TODO: use this more
|
2020-05-17 22:28:40 +00:00
|
|
|
//#define MORE_LANGUAGES // Add more translations to the game
|
2020-06-01 14:52:40 +00:00
|
|
|
#define COMPATIBLE_SAVES // this allows changing structs while keeping saves compatible
|
|
|
|
#define FIX_HIGH_FPS_BUGS_ON_FRONTEND
|
|
|
|
|
|
|
|
// Just debug menu entries
|
2020-05-21 13:47:48 +00:00
|
|
|
#ifdef DEBUGMENU
|
2020-06-01 14:52:40 +00:00
|
|
|
#define TOGGLEABLE_BETA_FEATURES // not too many things
|
2020-05-21 13:47:48 +00:00
|
|
|
#define RELOADABLES // some debug menu options to reload TXD files
|
2020-06-13 20:39:14 +00:00
|
|
|
#define MISSION_SWITCHER // from debug menu
|
2020-05-21 13:47:48 +00:00
|
|
|
#endif
|
2020-04-23 08:24:03 +00:00
|
|
|
|
2020-06-01 14:52:40 +00:00
|
|
|
// Rendering/display
|
|
|
|
#define ASPECT_RATIO_SCALE // Not just makes everything scale with aspect ratio, also adds support for all aspect ratios
|
|
|
|
#define DEFAULT_NATIVE_RESOLUTION // Set default video mode to your native resolution (fixes Windows 10 launch)
|
|
|
|
#define USE_TXD_CDIMAGE // generate and load textures from txd.img
|
|
|
|
#define IMPROVED_VIDEOMODE // save and load videomode parameters instead of a magic number
|
|
|
|
//#define USE_TEXTURE_POOL
|
2020-05-27 18:50:01 +00:00
|
|
|
|
2020-06-01 14:52:40 +00:00
|
|
|
// Water & Particle
|
2020-05-26 23:16:31 +00:00
|
|
|
#define PC_PARTICLE
|
2020-04-23 08:24:03 +00:00
|
|
|
//#define PS2_ALTERNATIVE_CARSPLASH // unused on PS2
|
2020-06-01 15:35:04 +00:00
|
|
|
// #define PC_WATER
|
2020-06-01 14:52:40 +00:00
|
|
|
#define WATER_CHEATS
|
2019-10-05 13:44:03 +00:00
|
|
|
|
|
|
|
// Pad
|
2020-05-11 02:55:57 +00:00
|
|
|
#if !defined(RW_GL3) && defined(_WIN32)
|
2020-03-27 18:54:35 +00:00
|
|
|
#define XINPUT
|
2020-04-26 11:18:34 +00:00
|
|
|
#endif
|
2020-05-02 16:00:47 +00:00
|
|
|
#define DETECT_PAD_INPUT_SWITCH // Adds automatic switch of pad related stuff between controller and kb/m
|
2019-07-01 19:46:44 +00:00
|
|
|
#define KANGAROO_CHEAT
|
2020-04-25 18:25:14 +00:00
|
|
|
#define ALLCARSHELI_CHEAT
|
|
|
|
#define ALT_DODO_CHEAT
|
2020-04-12 17:22:28 +00:00
|
|
|
#define REGISTER_START_BUTTON
|
2019-10-05 13:44:03 +00:00
|
|
|
|
2020-01-07 14:23:09 +00:00
|
|
|
// Hud, frontend and radar
|
2019-11-06 22:53:54 +00:00
|
|
|
#define TRIANGULAR_BLIPS // height indicating triangular radar blips, as in VC
|
2020-03-17 18:03:13 +00:00
|
|
|
// #define PS2_LIKE_MENU // An effort to recreate PS2 menu, cycling through tabs, different bg etc.
|
2020-04-06 23:15:55 +00:00
|
|
|
#define MENU_MAP // VC-like menu map. Make sure you have new menu.txd
|
2020-04-12 17:22:28 +00:00
|
|
|
#define SCROLLABLE_STATS_PAGE // only draggable by mouse atm
|
|
|
|
#define TRIANGLE_BACK_BUTTON
|
|
|
|
// #define CIRCLE_BACK_BUTTON
|
2020-05-11 02:55:57 +00:00
|
|
|
#define HUD_ENHANCEMENTS // Adjusts some aspects to make the HUD look/behave a little bit better.
|
2020-04-20 04:45:17 +00:00
|
|
|
#define BETA_SLIDING_TEXT
|
2020-06-02 22:24:08 +00:00
|
|
|
//#define CUSTOM_FRONTEND_OPTIONS
|
2020-06-01 14:52:40 +00:00
|
|
|
#define LEGACY_MENU_OPTIONS
|
|
|
|
#define MUCH_SHORTER_OUTRO_SCREEN
|
2019-10-05 13:44:03 +00:00
|
|
|
|
|
|
|
// Script
|
2020-05-29 10:03:32 +00:00
|
|
|
#define USE_DEBUG_SCRIPT_LOADER // Loads main.scm by default. Hold R for main_freeroam.scm and D for main_d.scm
|
2020-02-16 20:08:54 +00:00
|
|
|
#define USE_MEASUREMENTS_IN_METERS // makes game use meters instead of feet in script
|
|
|
|
#define USE_PRECISE_MEASUREMENT_CONVERTION // makes game convert feet to meeters more precisely
|
2020-06-02 22:24:08 +00:00
|
|
|
//#define MISSION_REPLAY // mobile feature
|
2020-05-26 21:25:12 +00:00
|
|
|
//#define SIMPLIER_MISSIONS // apply simplifications from mobile
|
2019-10-05 13:44:03 +00:00
|
|
|
|
2020-03-15 15:47:21 +00:00
|
|
|
// Replay
|
|
|
|
//#define DONT_FIX_REPLAY_BUGS // keeps various bugs in CReplay, some of which are fairly cool!
|
|
|
|
//#define USE_BETA_REPLAY_MODE // adds another replay mode, a few seconds slomo (caution: buggy!)
|
|
|
|
|
2019-10-05 13:44:03 +00:00
|
|
|
// Vehicles
|
2019-07-31 21:57:18 +00:00
|
|
|
#define EXPLODING_AIRTRAIN // can blow up jumbo jet with rocket launcher
|
2019-09-11 18:42:34 +00:00
|
|
|
//#define REMOVE_TREADABLE_PATHFIND
|
2019-10-05 13:44:03 +00:00
|
|
|
|
|
|
|
// Pickups
|
|
|
|
//#define MONEY_MESSAGES
|
2020-04-20 05:17:08 +00:00
|
|
|
#define CAMERA_PICKUP
|
2019-10-05 13:44:03 +00:00
|
|
|
|
|
|
|
// Peds
|
2020-05-02 20:52:41 +00:00
|
|
|
#define PED_SKIN // support for skinned geometry on peds
|
2019-10-05 13:44:03 +00:00
|
|
|
#define ANIMATE_PED_COL_MODEL
|
2019-11-06 22:53:54 +00:00
|
|
|
#define VC_PED_PORTS // various ports from VC's CPed, mostly subtle
|
2020-03-25 14:13:06 +00:00
|
|
|
// #define NEW_WALK_AROUND_ALGORITHM // to make walking around vehicles/objects less awkward
|
2019-10-05 14:32:01 +00:00
|
|
|
#define CANCELLABLE_CAR_ENTER
|
2020-03-26 13:16:06 +00:00
|
|
|
|
2020-03-29 12:05:21 +00:00
|
|
|
// Camera
|
2020-03-26 13:16:06 +00:00
|
|
|
#define IMPROVED_CAMERA // Better Debug cam, and maybe more in the future
|
2020-04-02 10:48:01 +00:00
|
|
|
#define FREE_CAM // Rotating cam
|