2019-05-30 00:47:33 +02:00
# pragma once
2019-05-15 16:52:37 +02:00
2021-07-12 02:56:07 +02:00
// disables (most) stuff that wasn't in original gta-vc.exe
# ifdef __MWERKS__
# define VANILLA_DEFINES
# endif
2021-01-23 23:13:40 +01:00
2019-05-15 16:52:37 +02:00
enum Config {
2020-03-22 15:23:40 +01:00
NUMPLAYERS = 1 ,
2020-05-06 21:54:43 +02:00
NUMCDIMAGES = 6 , // gta3.img duplicates (not used on PC)
2020-02-25 18:24:45 +01:00
MAX_CDIMAGES = 8 , // additional cdimages
2019-07-24 18:55:43 +02:00
MAX_CDCHANNELS = 5 ,
2019-05-15 16:52:37 +02:00
2021-05-22 07:41:41 +02:00
MODELINFOSIZE = 4900 ,
TXDSTORESIZE = 1200 ,
COLSTORESIZE = 15 ,
2020-05-06 21:54:43 +02:00
EXTRADIRSIZE = 256 ,
2019-09-28 17:16:52 +02:00
CUTSCENEDIRSIZE = 512 ,
2019-05-15 16:52:37 +02:00
2020-05-07 21:55:54 +02:00
SIMPLEMODELSIZE = 3885 ,
2020-05-05 18:31:53 +02:00
TIMEMODELSIZE = 385 ,
2021-01-08 01:41:40 +01:00
CLUMPMODELSIZE = 10 ,
2020-05-05 18:31:53 +02:00
WEAPONMODELSIZE = 37 ,
PEDMODELSIZE = 130 ,
2020-05-07 21:55:54 +02:00
VEHICLEMODELSIZE = 110 ,
TWODFXSIZE = 1210 ,
2019-05-15 16:52:37 +02:00
2020-02-25 18:24:45 +01:00
MAXVEHICLESLOADED = 50 , // 70 on mobile
2019-06-20 14:49:16 +02:00
2020-10-23 07:41:23 +02:00
NUMOBJECTINFO = 210 ,
2019-05-15 16:52:37 +02:00
// Pool sizes
2021-01-08 01:41:40 +01:00
NUMPTRNODES = 50000 , // only 30100
NUMENTRYINFOS = 4000 ,
NUMPEDS = 140 , // only 70
NUMVEHICLES = 110 , // only 70
NUMBUILDINGS = 7000 , // only 6757
NUMTREADABLES = 1300 ,
NUMOBJECTS = 475 ,
NUMDUMMIES = 3000 ,
2020-08-20 12:53:17 +02:00
NUMAUDIOSCRIPTOBJECTS = 192 ,
NUMCOLMODELS = 4400 ,
2020-12-18 13:50:26 +01:00
NUMCUTSCENEOBJECTS = 50 , // not a pool in VC
2019-05-15 16:52:37 +02:00
2021-01-08 01:41:40 +01:00
NUMANIMBLOCKS = 60 ,
2020-05-08 15:59:57 +02:00
NUMANIMATIONS = 450 ,
2020-05-27 22:32:33 +02:00
NUMTEMPOBJECTS = 40 ,
2019-07-08 21:37:47 +02:00
2019-08-09 19:42:18 +02:00
// Path data
2020-05-05 17:04:43 +02:00
NUM_PATHNODES = 9650 ,
NUM_CARPATHLINKS = 3500 ,
NUM_MAPOBJECTS = 1250 ,
NUM_PATHCONNECTIONS = 20400 ,
2019-08-09 19:42:18 +02:00
2019-05-15 16:52:37 +02:00
// Link list lengths
2020-04-16 11:44:04 +02:00
NUMALPHALIST = 20 ,
2020-05-11 22:21:18 +02:00
NUMBOATALPHALIST = 20 ,
NUMALPHAENTITYLIST = 200 ,
NUMALPHAUNTERWATERENTITYLIST = 30 ,
2020-07-27 15:38:34 +02:00
NUMCOLCACHELINKS = 50 ,
2019-05-15 16:52:37 +02:00
NUMREFERENCES = 800 ,
// Zones
2021-01-08 01:41:40 +01:00
NUMAUDIOZONES = 36 ,
2020-05-06 12:23:57 +02:00
NUMINFOZONES = 169 ,
2021-01-08 01:41:40 +01:00
NUMMAPZONES = 110 ,
NUMNAVIGZONES = 70 ,
2019-05-15 16:52:37 +02:00
// Cull zones
2021-01-08 01:41:40 +01:00
NUMATTRIBZONES = 900 ,
2019-05-15 16:52:37 +02:00
2020-05-19 10:23:08 +02:00
NUMOCCLUSIONVOLUMES = 350 ,
2020-07-05 22:45:09 +02:00
NUMACTIVEOCCLUDERS = 48 ,
2020-05-19 10:23:08 +02:00
2019-05-15 16:52:37 +02:00
PATHNODESIZE = 4500 ,
2021-01-08 13:34:49 +01:00
NUMWEATHERS = 8 ,
2019-05-15 16:52:37 +02:00
NUMHOURS = 24 ,
2019-05-30 11:12:49 +02:00
2019-06-01 12:02:31 +02:00
NUMEXTRADIRECTIONALS = 4 ,
2019-05-30 11:12:49 +02:00
NUMANTENNAS = 8 ,
2019-06-01 19:18:19 +02:00
NUMCORONAS = 56 ,
2019-06-12 11:08:56 +02:00
NUMPOINTLIGHTS = 32 ,
2019-10-17 01:22:39 +02:00
NUM3DMARKERS = 32 ,
2020-04-07 16:48:49 +02:00
NUMBRIGHTLIGHTS = 32 ,
2020-04-07 12:33:14 +02:00
NUMSHINYTEXTS = 32 ,
2019-10-03 12:21:00 +02:00
NUMMONEYMESSAGES = 16 ,
2019-10-03 21:28:56 +02:00
NUMPICKUPMESSAGES = 16 ,
2020-03-22 11:20:36 +01:00
NUMBULLETTRACES = 16 ,
2020-04-07 22:26:01 +02:00
NUMMBLURSTREAKS = 4 ,
2020-04-08 16:35:23 +02:00
NUMSKIDMARKS = 32 ,
2019-06-12 11:08:56 +02:00
2020-10-10 13:23:17 +02:00
NUMONSCREENCLOCKS = 1 ,
NUMONSCREENCOUNTERS = 3 ,
2020-06-13 01:02:59 +02:00
NUMRADARBLIPS = 75 ,
2019-10-03 21:28:56 +02:00
NUMGENERALPICKUPS = 320 ,
NUMSCRIPTEDPICKUPS = 16 ,
NUMPICKUPS = NUMGENERALPICKUPS + NUMSCRIPTEDPICKUPS ,
NUMCOLLECTEDPICKUPS = 20 ,
2020-04-12 22:50:34 +02:00
NUMPACMANPICKUPS = 256 ,
2019-07-12 18:01:22 +02:00
NUMEVENTS = 64 ,
2019-07-27 20:28:18 +02:00
2021-05-22 07:41:41 +02:00
NUM_CARGENS = 195 , // 500 on mobile
2019-09-11 20:42:34 +02:00
NUM_PATH_NODES_IN_AUTOPILOT = 8 ,
2019-09-15 01:28:07 +02:00
NUM_ACCIDENTS = 20 ,
2019-10-06 23:39:25 +02:00
NUM_FIRES = 40 ,
2020-01-03 17:48:13 +01:00
NUM_GARAGES = 32 ,
2020-01-12 12:31:04 +01:00
NUM_PROJECTILES = 32 ,
2019-10-06 23:39:25 +02:00
2020-04-01 23:04:56 +02:00
NUM_GLASSPANES = 45 ,
NUM_GLASSENTITIES = 32 ,
2020-02-25 18:24:45 +01:00
NUM_WATERCANNONS = 3 ,
2019-10-06 23:39:25 +02:00
NUMPEDROUTES = 200 ,
2021-01-08 13:51:31 +01:00
NUMPHONES = 60 ,
2020-05-09 17:05:26 +02:00
NUMPEDGROUPS = 67 ,
NUMMODELSPERPEDGROUP = 16 ,
2020-08-20 23:43:13 +02:00
MAXZONEPEDSLOADED = 8 ,
2020-03-29 17:26:23 +02:00
NUMSHOTINFOS = 100 ,
2019-11-03 00:13:29 +01:00
2020-05-05 17:04:43 +02:00
NUMROADBLOCKS = 300 ,
2020-05-30 19:08:31 +02:00
NUM_SCRIPT_ROADBLOCKS = 16 ,
2020-03-25 15:13:06 +01:00
2019-11-03 00:13:29 +01:00
NUMVISIBLEENTITIES = 2000 ,
NUMINVISIBLEENTITIES = 150 ,
2020-03-22 15:23:40 +01:00
2020-03-21 14:51:30 +01:00
NUM_AUDIOENTITY_EVENTS = 4 ,
NUM_PED_COMMENTS_SLOTS = 20 ,
2021-08-25 07:49:58 +02:00
NUM_SOUND_QUEUES = 2 ,
2020-06-08 13:29:55 +02:00
NUM_AUDIOENTITIES = 250 ,
2020-03-21 14:51:30 +01:00
NUM_SCRIPT_MAX_ENTITIES = 40 ,
2020-03-28 13:24:13 +01:00
2020-05-11 20:04:35 +02:00
NUM_GARAGE_STORED_CARS = 4 ,
2020-04-05 11:35:51 +02:00
2021-01-11 22:42:11 +01:00
NUM_CRANES = 11 ,
2020-07-30 05:47:24 +02:00
NUM_ESCALATORS = 22 ,
2020-10-08 03:43:50 +02:00
NUM_WATER_CREATURES = 8 ,
2020-04-08 21:29:02 +02:00
NUM_EXPLOSIONS = 48 ,
2020-05-23 19:06:52 +02:00
2020-05-31 19:59:01 +02:00
NUM_SETPIECES = 96 ,
2021-02-07 21:29:49 +01:00
NUM_SHORTCUT_START_POINTS = 16 ,
NUM_FERRY_PATHS = 1
2019-05-15 16:52:37 +02:00
} ;
2019-05-30 23:49:06 +02:00
2019-06-27 10:58:51 +02: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
2021-07-12 03:13:22 +02:00
# define GTA_TRAIN
# define GTA_BRIDGE
2021-07-12 02:56:07 +02:00
// Version defines
# define GTAVC_PS2 400
# define GTAVC_PC_10 410
# define GTAVC_PC_11 411
# define GTAVC_PC_JAP 412
// TODO? maybe something for xbox or android?
# define GTA_VERSION GTAVC_PC_11
2021-07-13 01:11:42 +02:00
// Enable configuration for handheld console ports
# if defined(__SWITCH__) || defined(PSP2)
# define GTA_HANDHELD
# endif
2021-07-12 02:56:07 +02:00
// TODO(MIAMI): someone ought to find and check out uses of these defines:
//#define GTA3_STEAM_PATCH
//#define GTAVC_JP_PATCH
# if defined GTA_PS2
# define GTA_PS2_STUFF
# define RANDOMSPLASH
//# define USE_CUSTOM_ALLOCATOR
# define VU_COLLISION
# define PS2_MENU
# elif defined GTA_PC
2021-08-12 13:57:16 +02:00
# define EXTERNAL_3D_SOUND
2021-08-19 09:53:14 +02:00
# define AUDIO_REVERB
2021-07-13 01:11:42 +02:00
# ifndef GTA_HANDHELD
# define PC_PLAYER_CONTROLS // mouse player/cam mode
# endif
2021-07-12 03:13:22 +02:00
//# define GTA_REPLAY
2021-07-12 02:56:07 +02:00
# define GTA_SCENE_EDIT
# define PC_MENU
# define PC_WATER
# elif defined GTA_XBOX
2021-08-01 11:54:05 +02:00
# elif defined GTA_MOBILE
# define MISSION_REPLAY
# define SIMPLER_MISSIONS
2021-07-12 02:56:07 +02:00
# endif
2019-07-03 13:13:55 +02:00
// 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
2020-10-31 17:06:25 +01:00
// once and for all:
// pc: FINAL & MASTER
// mobile: FINAL
// MASTER builds must be FINAL
# ifdef MASTER
# define FINAL
# endif
2021-07-12 02:56:07 +02:00
// these are placed here to work with VANILLA_DEFINES for compatibility
# define NO_CDCHECK // skip audio CD check
# define DEFAULT_NATIVE_RESOLUTION // Set default video mode to your native resolution (fixes Windows 10 launch)
2020-12-18 13:50:26 +01:00
2021-07-12 02:56:07 +02:00
# ifdef VANILLA_DEFINES
2021-07-12 04:13:42 +02:00
# if !defined(_WIN32) || defined(__LP64__) || defined(_WIN64)
# error Vanilla can only be built for win-x86
# endif
2021-07-12 02:56:07 +02:00
# define FINAL
# define MASTER
//#define USE_MY_DOCUMENTS
# define THIS_IS_STUPID
# define DONT_FIX_REPLAY_BUGS
# define USE_TXD_CDIMAGE // generate and load textures from txd.img
//#define USE_TEXTURE_POOL // not possible because R* used custom RW33
2021-08-18 14:49:06 +02:00
# define AUDIO_REFLECTIONS
2021-07-12 02:56:07 +02:00
# else
// This enables things from the PS2 version on PC
# define GTA_PS2_STUFF
2020-12-18 13:50:26 +01:00
2020-10-31 17:06:25 +01:00
// quality of life fixes that should also be in FINAL
# define NASTY_GAME // nasty game for all languages
// those infamous texts
# define DRAW_GAME_VERSION_TEXT
2021-02-11 23:49:09 +01:00
# ifdef DRAW_GAME_VERSION_TEXT
2021-02-12 02:04:31 +01:00
// unlike R* development builds, ours has runtime switch on debug menu & .ini, and disabled as default.
2021-06-23 20:50:02 +02:00
// If you disable this then game will fetch version from peds.col, as R* did while in development.
//#define USE_OUR_VERSIONING // enabled from buildfiles by default
2021-02-11 23:49:09 +01:00
# endif
2020-10-31 17:06:25 +01:00
2020-12-18 23:46:51 +01:00
// Memory allocation and compression
// #define USE_CUSTOM_ALLOCATOR // use CMemoryHeap for allocation. use with care, not finished yet
//#define COMPRESSED_COL_VECTORS // use compressed vectors for collision vertices
//#define ANIM_COMPRESSION // only keep most recently used anims uncompressed
2021-07-12 02:56:07 +02:00
# if defined GTA_PC && defined GTA_PS2_STUFF
# define USE_PS2_RAND
# define RANDOMSPLASH // use random splash as on PS2
# define PS2_MATFX
2019-07-03 13:13:55 +02:00
# endif
2021-07-29 19:41:38 +02:00
// Mobile only.
// Looks like they tried to fix fading but it still sucks
// do not use this
//#define VIS_DISTANCE_ALPHA
2020-08-03 12:58:37 +02:00
# ifdef VU_COLLISION
2020-11-29 12:26:34 +01:00
# define COMPRESSED_COL_VECTORS // currently need compressed vectors in this code
2020-08-03 12:58:37 +02:00
# endif
2019-07-03 13:13:55 +02:00
# ifdef MASTER
// only in master builds
2020-10-31 17:06:25 +01:00
# undef DRAW_GAME_VERSION_TEXT
2019-07-03 13:13:55 +02:00
# else
// not in master builds
2019-10-08 22:07:11 +02:00
# define VALIDATE_SAVE_SIZE
2020-10-31 17:06:25 +01:00
# define DEBUGMENU
2019-07-03 13:13:55 +02:00
# endif
# ifdef FINAL
// in all games
# define USE_MY_DOCUMENTS // use my documents directory for user files
# else
// not in any game
# define CHATTYSPLASH // print what the game is loading
2020-05-29 12:03:32 +02:00
# define TIMEBARS // print debug timers
2019-07-03 13:13:55 +02:00
# endif
2021-01-13 01:08:50 +01:00
# define FIX_BUGS // fixes bugs that we've came across during reversing. You can undefine this only on release builds.
2020-05-18 00:28:40 +02:00
//#define MORE_LANGUAGES // Add more translations to the game
2021-07-07 17:34:02 +02:00
# define COMPATIBLE_SAVES // this allows changing structs while keeping saves compatible, and keeps saves compatible between platforms
2021-07-25 20:44:21 +02:00
//#define FIX_INCOMPATIBLE_SAVES // try to fix incompatible saves, requires COMPATIBLE_SAVES
2020-12-06 15:29:48 +01:00
# define LOAD_INI_SETTINGS // as the name suggests. fundamental for CUSTOM_FRONTEND_OPTIONS
2020-06-01 16:52:40 +02:00
2021-02-18 22:55:26 +01:00
# define NO_MOVIES // add option to disable intro videos
2020-06-01 16:52:40 +02:00
2021-07-23 20:07:44 +02:00
# define EXTENDED_OFFSCREEN_DESPAWN_RANGE // Use onscreen despawn range for offscreen peds and vehicles to avoid them despawning in the distance when you look
// away
2021-01-13 01:08:50 +01:00
# if defined(__LP64__) || defined(_WIN64)
# define FIX_BUGS_64 // Must have fixes to be able to run 64 bit build
# endif
2021-02-04 19:47:47 +01:00
# define ASCII_STRCMP // use faster ascii str comparisons
2021-07-12 02:56:07 +02:00
# if !defined _WIN32 || defined __MINGW32__
2021-02-04 19:47:47 +01:00
# undef ASCII_STRCMP
# endif
2020-06-01 16:52:40 +02:00
// Just debug menu entries
2020-05-21 15:47:48 +02:00
# ifdef DEBUGMENU
# define RELOADABLES // some debug menu options to reload TXD files
2020-06-13 22:39:14 +02:00
# define MISSION_SWITCHER // from debug menu
2020-05-21 15:47:48 +02:00
# endif
2020-04-23 10:24:03 +02:00
2020-06-01 16:52:40 +02:00
// Rendering/display
# define ASPECT_RATIO_SCALE // Not just makes everything scale with aspect ratio, also adds support for all aspect ratios
2021-01-08 23:01:41 +01:00
# define PROPER_SCALING // use original DEFAULT_SCREEN_WIDTH/DEFAULT_SCREEN_HEIGHT from PS2 instead of PC(R* changed HEIGHT here to make radar look better, but broke other hud elements aspect ratio).
2020-06-01 16:52:40 +02:00
# 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
2020-07-29 14:31:34 +02:00
# define PS2_ALPHA_TEST // emulate ps2 alpha test
2020-06-01 16:52:40 +02:00
# define IMPROVED_VIDEOMODE // save and load videomode parameters instead of a magic number
2021-01-08 01:41:40 +01:00
//#define DISABLE_LOADING_SCREEN // disable the loading screen which vastly improves the loading time
2020-11-28 15:29:45 +01:00
# define DISABLE_VSYNC_ON_TEXTURE_CONVERSION // make texture conversion work faster by disabling vsync
2021-01-21 22:17:35 +01:00
# define ANISOTROPIC_FILTERING // set all textures to max anisotropic filtering
2020-06-01 16:52:40 +02:00
//#define USE_TEXTURE_POOL
2020-11-05 10:59:02 +01:00
# ifdef LIBRW
2020-12-26 14:48:55 +01:00
# define EXTENDED_COLOURFILTER // more options for colour filter (replaces mblur)
# define EXTENDED_PIPELINES // custom render pipelines (includes Neo)
# define SCREEN_DROPLETS // neo water droplets
# define NEW_RENDERER // leeds-like world rendering, needs librw
2020-11-05 10:59:02 +01:00
# endif
2020-08-16 00:37:09 +02:00
2021-01-08 23:01:41 +01:00
# define FIX_SPRITES // fix sprites aspect ratio(moon, coronas, particle etc)
2020-11-19 19:07:32 +01:00
# ifndef EXTENDED_COLOURFILTER
2020-12-26 14:48:55 +01:00
# undef SCREEN_DROPLETS // we need the backbuffer for this effect
2020-11-19 19:07:32 +01:00
# endif
2020-06-01 16:52:40 +02:00
// Water & Particle
2021-07-12 02:56:07 +02:00
# undef PC_WATER
2020-06-01 16:52:40 +02:00
# define WATER_CHEATS
2021-01-25 22:55:55 +01:00
//#define PSP_WATERCANNON
2019-10-05 15:44:03 +02:00
2021-07-13 00:21:11 +02:00
//#define USE_CUTSCENE_SHADOW_FOR_PED // requires COMPATIBLE_SAVES
2021-07-13 00:00:00 +02:00
//#define DISABLE_CUTSCENE_SHADOWS
2020-08-08 14:06:45 +02:00
2019-10-05 15:44:03 +02:00
// Pad
2020-05-11 04:55:57 +02:00
# if !defined(RW_GL3) && defined(_WIN32)
2020-03-27 19:54:35 +01:00
# define XINPUT
2020-04-26 13:18:34 +02:00
# endif
2021-07-13 01:11:42 +02:00
# if defined XINPUT || (defined RW_GL3 && !defined LIBRW_SDL2 && !defined GTA_HANDHELD)
2021-02-05 15:51:57 +01:00
# define DETECT_JOYSTICK_MENU // Then we'll expect user to enter Controller->Detect joysticks if his joystick isn't detected at the start.
2020-09-30 19:02:47 +02:00
# endif
2020-05-02 18:00:47 +02:00
# define DETECT_PAD_INPUT_SWITCH // Adds automatic switch of pad related stuff between controller and kb/m
2019-07-01 21:46:44 +02:00
# define KANGAROO_CHEAT
2020-09-29 01:29:10 +02:00
# define RESTORE_ALLCARSHELI_CHEAT
2020-10-01 01:20:09 +02:00
# define BETTER_ALLCARSAREDODO_CHEAT
2020-09-11 17:46:16 +02:00
# define WALLCLIMB_CHEAT
2020-04-12 19:22:28 +02:00
# define REGISTER_START_BUTTON
2021-02-11 16:16:01 +01:00
# define BIND_VEHICLE_FIREWEAPON // Adds ability to rebind fire key for 'in vehicle' controls
2020-11-05 16:05:16 +01:00
# define BUTTON_ICONS // use textures to show controller buttons
2019-10-05 15:44:03 +02:00
2020-01-07 15:23:09 +01:00
// Hud, frontend and radar
2020-06-29 09:29:02 +02:00
# define PC_MENU
2021-01-08 23:01:41 +01:00
# define FIX_RADAR // use radar size from early version before R* broke it
2021-01-30 12:52:48 +01:00
# define RADIO_OFF_TEXT // Won't work without FIX_BUGS
2021-01-08 23:01:41 +01:00
2020-06-29 09:29:02 +02:00
# ifndef PC_MENU
# define PS2_MENU
//# define PS2_MENU_USEALLPAGEICONS
2020-08-16 00:37:09 +02:00
# else
2020-11-14 15:46:12 +01:00
# define MAP_ENHANCEMENTS // Adding waypoint and better mouse support
2021-07-13 01:11:42 +02:00
# if defined(XINPUT) || defined(GTA_HANDHELD)
2021-02-10 07:57:51 +01:00
# define GAMEPAD_MENU // Add gamepad menu
# endif
2020-06-29 09:29:02 +02:00
# define TRIANGLE_BACK_BUTTON
//# define CIRCLE_BACK_BUTTON
2020-12-06 15:29:48 +01:00
# define LEGACY_MENU_OPTIONS // i.e. frame sync(vsync)
2020-06-01 16:52:40 +02:00
# define MUCH_SHORTER_OUTRO_SCREEN
2020-11-23 23:25:44 +01:00
// #define XBOX_MESSAGE_SCREEN // Blue background, no "saved successfully press OK" screen etc.
2020-12-06 15:29:48 +01:00
# define CUSTOM_FRONTEND_OPTIONS
# ifdef CUSTOM_FRONTEND_OPTIONS
# define GRAPHICS_MENU_OPTIONS // otherwise Display settings will be scrollable
2021-01-08 01:41:40 +01:00
//# define NO_ISLAND_LOADING // disable loadscreen between islands via loading all island data at once, consumes more memory and CPU
2020-12-06 15:29:48 +01:00
# define CUTSCENE_BORDERS_SWITCH
2021-01-08 19:22:08 +01:00
# define MULTISAMPLING // adds MSAA option
2020-12-06 15:29:48 +01:00
# define INVERT_LOOK_FOR_PAD // enable the hidden option
2021-07-11 23:11:11 +02:00
# define PED_CAR_DENSITY_SLIDERS
2020-12-06 15:29:48 +01:00
# endif
# endif
2019-10-05 15:44:03 +02:00
// Script
2020-05-29 12:03:32 +02: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 21:08:54 +01: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-12-05 00:49:32 +01:00
# define SUPPORT_JAPANESE_SCRIPT
//#define SUPPORT_XBOX_SCRIPT
//#define SUPPORT_MOBILE_SCRIPT
2021-08-14 16:18:34 +02:00
//#define SUPPORT_GINPUT_SCRIPT
2020-12-05 00:49:32 +01:00
# if (defined SUPPORT_XBOX_SCRIPT && defined SUPPORT_MOBILE_SCRIPT)
static_assert ( false , " SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually exclusive " ) ;
# endif
2020-12-06 15:29:48 +01:00
# ifdef PC_MENU
2020-06-03 00:24:08 +02:00
//#define MISSION_REPLAY // mobile feature
2021-08-01 11:54:05 +02:00
//#define SIMPLER_MISSIONS // apply simplifications from mobile
//#define USE_MISSION_REPLAY_OVERRIDE_FOR_NON_MOBILE_SCRIPT
2020-06-29 09:29:02 +02:00
# endif
2020-07-01 14:43:19 +02:00
# define USE_ADVANCED_SCRIPT_DEBUG_OUTPUT
2021-01-22 18:59:57 +01:00
# define SCRIPT_LOG_FILE_LEVEL 1 // 0 == no log, 1 == overwrite every frame, 2 == full log
2019-10-05 15:44:03 +02:00
2021-02-02 11:32:20 +01:00
# if SCRIPT_LOG_FILE_LEVEL == 0
# undef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT
# endif
2020-06-28 10:59:20 +02:00
# ifndef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT
# define USE_BASIC_SCRIPT_DEBUG_OUTPUT
# endif
2019-10-05 15:44:03 +02:00
2021-01-07 14:33:42 +01:00
# ifdef MASTER
# undef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT
# undef USE_BASIC_SCRIPT_DEBUG_OUTPUT
# endif
2021-08-01 11:54:05 +02:00
# ifndef MISSION_REPLAY
# undef USE_MISSION_REPLAY_OVERRIDE_FOR_NON_MOBILE_SCRIPT
# endif
2020-03-15 16:47:21 +01: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 15:44:03 +02:00
// Vehicles
2019-07-31 23:57:18 +02:00
# define EXPLODING_AIRTRAIN // can blow up jumbo jet with rocket launcher
2020-07-21 09:58:53 +02:00
# define CPLANE_ROTORS // make the rotors of the NPC police heli rotate
2021-08-29 18:32:22 +02:00
# define BOMBS_ON_BIKES // allow player to set bombs on bikes
2019-10-05 15:44:03 +02:00
// Pickups
//#define MONEY_MESSAGES
2020-04-20 07:17:08 +02:00
# define CAMERA_PICKUP
2019-10-05 15:44:03 +02:00
// Peds
2019-10-05 16:32:01 +02:00
# define CANCELLABLE_CAR_ENTER
2020-03-26 14:16:06 +01:00
2020-03-29 14:05:21 +02:00
// Camera
2020-03-26 14:16:06 +01:00
# define IMPROVED_CAMERA // Better Debug cam, and maybe more in the future
2020-04-02 12:48:01 +02:00
# define FREE_CAM // Rotating cam
2020-07-17 12:48:25 +02:00
// Audio
2021-08-12 13:57:16 +02:00
# define EXTERNAL_3D_SOUND // use external engine to simulate 3d audio spatialization. OpenAL would not work without it (because it works in a 3d space
// originally and making it work in 2d only requires more resource). Will not work on PS2
2021-08-18 14:49:06 +02:00
# define AUDIO_REFLECTIONS // Enable audio reflections. This is enabled in all vanilla versions
2021-08-19 09:53:14 +02:00
# define AUDIO_REVERB // Enable audio reverb. It was disabled in PS2 and mobile versions
2021-01-30 12:52:48 +01:00
# define RADIO_SCROLL_TO_PREV_STATION // Won't work without FIX_BUGS
2021-05-17 19:40:58 +02:00
//#define AUDIO_CACHE // cache sound lengths to speed up the cold boot
2021-06-24 20:50:09 +02:00
# define PS2_AUDIO_CHANNELS // increases the maximum number of audio channels to PS2 value of 41 (PSP and mobile have 21 originally)
2021-05-17 19:40:58 +02:00
//#define PS2_AUDIO_PATHS // changes audio paths for cutscenes and radio to PS2 paths (needs vbdec on MSS builds)
2021-01-06 14:46:59 +01:00
//#define AUDIO_OAL_USE_SNDFILE // use libsndfile to decode WAVs instead of our internal decoder
2021-01-07 21:01:44 +01:00
# define AUDIO_OAL_USE_MPG123 // use mpg123 to support mp3 files
2021-06-30 20:21:45 +02:00
# define PAUSE_RADIO_IN_FRONTEND // pause radio when game is paused
2021-08-24 12:11:36 +02:00
# define ATTACH_RELEASING_SOUNDS_TO_ENTITIES // sounds would follow ped and vehicles coordinates if not being queued otherwise
2021-08-24 13:58:41 +02:00
# define USE_TIME_SCALE_FOR_AUDIO // slow down/speed up sounds according to the speed of the game
2021-08-23 10:16:53 +02:00
# define MULTITHREADED_AUDIO // for streams. requires C++11 or later
2021-08-29 18:32:22 +02:00
# define CUSTOM_SOUND_TRACK // LCS PSP feature - TODO
2020-08-03 03:00:12 +02:00
2021-01-07 21:01:44 +01:00
# ifdef AUDIO_OPUS
# define AUDIO_OAL_USE_OPUS // enable support of opus files
//#define OPUS_AUDIO_PATHS // (not supported on VC yet) changes audio paths to opus paths (doesn't work if AUDIO_OAL_USE_OPUS isn't enabled)
//#define OPUS_SFX // enable if your sfx.raw is encoded with opus (doesn't work if AUDIO_OAL_USE_OPUS isn't enabled)
# ifndef AUDIO_OAL_USE_OPUS
# undef OPUS_AUDIO_PATHS
# undef OPUS_SFX
# endif
2020-08-03 03:00:12 +02:00
2021-01-07 21:01:44 +01:00
# endif
2020-08-03 03:00:12 +02:00
2021-01-27 16:26:08 +01:00
// Streaming
# if !defined(_WIN32) && !defined(__SWITCH__)
//#define ONE_THREAD_PER_CHANNEL // Don't use if you're not on SSD/Flash - also not utilized too much right now(see commented LoadAllRequestedModels in Streaming.cpp)
# define FLUSHABLE_STREAMING // Make it possible to interrupt reading when processing file isn't needed anymore.
2020-12-06 15:29:48 +01:00
# endif
2021-01-27 16:26:08 +01:00
# define BIG_IMG // Not complete - allows to read larger img files
2020-12-06 15:29:48 +01:00
2020-08-03 03:00:12 +02:00
//#define SQUEEZE_PERFORMANCE
# ifdef SQUEEZE_PERFORMANCE
# undef PS2_ALPHA_TEST
# undef NO_ISLAND_LOADING
2021-05-23 16:14:12 +02:00
# undef PS2_AUDIO_CHANNELS
2021-07-23 20:07:44 +02:00
# undef EXTENDED_OFFSCREEN_DESPAWN_RANGE
2020-10-02 16:36:56 +02:00
# endif
2021-01-23 23:13:40 +01:00
2021-07-13 00:21:11 +02:00
// if these defines are enabled saves are not vanilla compatible without COMPATIBLE_SAVES
# ifndef COMPATIBLE_SAVES
# undef USE_CUTSCENE_SHADOW_FOR_PED
# endif
2021-07-13 01:11:42 +02:00
# ifdef GTA_HANDHELD
# define IGNORE_MOUSE_KEYBOARD // ignore mouse & keyboard input
# endif
# ifdef __SWITCH__
# define USE_UNNAMED_SEM // named semaphores are unsupported on the switch
# endif
2021-07-12 02:56:07 +02:00
# endif // VANILLA_DEFINES
2021-08-12 13:57:16 +02:00
# if defined(AUDIO_OAL) && !defined(EXTERNAL_3D_SOUND)
# error AUDIO_OAL cannot work without EXTERNAL_3D_SOUND
# endif
# if defined(GTA_PS2) && defined(EXTERNAL_3D_SOUND)
# error EXTERNAL_3D_SOUND cannot work on PS2
# endif