re3-wiiu/src/core/config.h

313 lines
8.4 KiB
C
Raw Normal View History

2019-05-30 00:47:33 +02:00
#pragma once
2019-05-15 16:52:37 +02:00
enum Config {
2020-03-22 15:23:40 +01:00
NUMPLAYERS = 1,
NUMCDIMAGES = 6, // gta3.img duplicates (not used on PC)
MAX_CDIMAGES = 8, // additional cdimages
2019-07-24 18:55:43 +02:00
MAX_CDCHANNELS = 5,
2019-05-15 16:52:37 +02:00
MODELINFOSIZE = 6500,
TXDSTORESIZE = 1385,
COLSTORESIZE = 31,
EXTRADIRSIZE = 256,
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,
2019-05-15 16:52:37 +02:00
CLUMPMODELSIZE = 5,
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
MAXVEHICLESLOADED = 50, // 70 on mobile
2019-06-20 14:49:16 +02:00
2020-05-05 23:27:43 +02:00
NUMOBJECTINFO = 400, // TODO(MIAMI): fantasy // object.dat
2019-05-15 16:52:37 +02:00
// Pool sizes
2020-05-05 18:31:53 +02: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 16:52:37 +02:00
NUMANIMBLOCKS = 35,
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
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
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
2020-05-06 12:23:57 +02:00
NUMAUDIOZONES = 14,
NUMINFOZONES = 169,
NUMMAPZONES = 39,
NUMNAVIGZONES = 20,
2019-05-15 16:52:37 +02:00
// Cull zones
2020-05-06 12:23:57 +02:00
NUMATTRIBZONES = 704,
2019-05-15 16:52:37 +02:00
NUMOCCLUSIONVOLUMES = 350,
2020-07-05 22:45:09 +02:00
NUMACTIVEOCCLUDERS = 48,
2019-05-15 16:52:37 +02:00
PATHNODESIZE = 4500,
NUMWEATHERS = 7,
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,
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,
NUMMBLURSTREAKS = 4,
2020-04-08 16:35:23 +02:00
NUMSKIDMARKS = 32,
2019-06-25 00:42:23 +02:00
NUMONSCREENTIMERENTRIES = 1,
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
2020-05-20 19:10:05 +02:00
NUM_CARGENS = 185,
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,
NUM_WATERCANNONS = 3,
2019-10-06 23:39:25 +02:00
NUMPEDROUTES = 200,
NUMPHONES = 50,
2020-05-09 17:05:26 +02:00
NUMPEDGROUPS = 67,
NUMMODELSPERPEDGROUP = 16,
2020-03-29 17:26:23 +02:00
NUMSHOTINFOS = 100,
2019-11-03 00:13:29 +01: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_BANKS = 2,
NUM_PED_COMMENTS_SLOTS = 20,
NUM_SOUNDS_SAMPLES_BANKS = 2,
NUM_SOUNDS_SAMPLES_SLOTS = 27,
2020-06-08 13:29:55 +02:00
NUM_AUDIOENTITIES = 250,
2020-03-21 14:51:30 +01:00
2020-06-08 13:29:55 +02:00
NUM_AUDIO_REFLECTIONS = 8,
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
2020-04-08 21:29:02 +02:00
NUM_CRANES = 8,
2020-07-30 05:47:24 +02:00
NUM_ESCALATORS = 22,
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,
NUM_SHORTCUT_START_POINTS = 16
2019-05-15 16:52:37 +02:00
};
2019-07-06 12:27:21 +02: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-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
// 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 05:20:44 +02:00
# define GTA_PS2_STUFF
# define RANDOMSPLASH
2020-08-03 12:58:37 +02:00
# define VU_COLLISION
#elif defined GTA_PC
# define GTA3_1_1_PATCH
2019-08-02 22:20:12 +02:00
//# define GTA3_STEAM_PATCH
2020-05-31 19:59:01 +02:00
//# define GTAVC_JP_PATCH
# ifdef GTA_PS2_STUFF
# define USE_PS2_RAND
# define RANDOMSPLASH // use random splash as on PS2
# define PS2_MATFX
# endif
#elif defined GTA_XBOX
#endif
2020-08-03 12:58:37 +02:00
#ifdef VU_COLLISION
#define COMPRESSED_COL_VECTORS // current need compressed vectors in this code
#endif
#ifdef MASTER
// only in master builds
#else
// not in master builds
#define VALIDATE_SAVE_SIZE
#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 12:30:13 +02:00
# define NO_CDCHECK
# define CHATTYSPLASH // print what the game is loading
2020-05-09 15:06:13 +02:00
# define DEBUGMENU
2020-05-29 12:03:32 +02:00
# define TIMEBARS // print debug timers
#endif
2019-11-06 23:53:54 +01:00
#define FIX_BUGS // fixes bugs that we've came across during reversing, TODO: use this more
2020-05-18 00:28:40 +02:00
//#define MORE_LANGUAGES // Add more translations to the game
#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 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
// 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
2020-07-29 14:31:34 +02:00
#define PS2_ALPHA_TEST // emulate ps2 alpha test
#define IMPROVED_VIDEOMODE // save and load videomode parameters instead of a magic number
//#define DISABLE_LOADING_SCREEN // disable the loading screen which vastly improves the loading time
2020-07-10 11:28:00 +02:00
//#define NO_ISLAND_LOADING // disable loadscreen between islands via loading all island data at once, consumes more memory and CPU
//#define USE_TEXTURE_POOL
#define CUTSCENE_BORDERS_SWITCH
2020-05-27 20:50:01 +02:00
// Water & Particle
2020-05-27 01:16:31 +02:00
#define PC_PARTICLE
2020-04-23 10:24:03 +02:00
//#define PS2_ALTERNATIVE_CARSPLASH // unused on PS2
// #define PC_WATER
#define WATER_CHEATS
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
#define DETECT_PAD_INPUT_SWITCH // Adds automatic switch of pad related stuff between controller and kb/m
#define KANGAROO_CHEAT
2020-04-25 20:25:14 +02:00
#define ALLCARSHELI_CHEAT
#define ALT_DODO_CHEAT
#define REGISTER_START_BUTTON
2019-10-05 15:44:03 +02:00
// Hud, frontend and radar
2020-05-11 04:55:57 +02:00
#define HUD_ENHANCEMENTS // Adjusts some aspects to make the HUD look/behave a little bit better.
#define BETA_SLIDING_TEXT
2020-06-29 09:29:02 +02:00
#define TRIANGULAR_BLIPS // height indicating triangular radar blips, as in VC
#define PC_MENU
#ifndef PC_MENU
# define PS2_MENU
//# define PS2_MENU_USEALLPAGEICONS
#else
//# define PS2_LIKE_MENU // An effort to recreate PS2 menu, cycling through tabs, different bg etc.
2020-07-04 22:50:43 +02:00
# define MAP_ENHANCEMENTS // Adding waypoint etc.
2020-06-29 09:29:02 +02:00
# define TRIANGLE_BACK_BUTTON
//# define CIRCLE_BACK_BUTTON
//#define CUSTOM_FRONTEND_OPTIONS
#define LEGACY_MENU_OPTIONS
#define MUCH_SHORTER_OUTRO_SCREEN
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
//#define MISSION_REPLAY // mobile feature
2020-06-29 09:29:02 +02:00
#endif
2020-05-26 23:25:12 +02:00
//#define SIMPLIER_MISSIONS // apply simplifications from mobile
2020-07-01 14:43:19 +02:00
#define USE_ADVANCED_SCRIPT_DEBUG_OUTPUT
2020-06-21 12:46:23 +02: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
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
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
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
#define PED_SKIN // support for skinned geometry on peds
2019-10-05 15:44:03 +02:00
#define ANIMATE_PED_COL_MODEL
2019-11-06 23:53:54 +01:00
#define VC_PED_PORTS // various ports from VC's CPed, mostly subtle
2020-03-25 15:13:06 +01:00
// #define NEW_WALK_AROUND_ALGORITHM // to make walking around vehicles/objects less awkward
2019-10-05 16:32:01 +02:00
#define CANCELLABLE_CAR_ENTER
2020-03-26 14:16:06 +01: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
// Audio
2020-07-25 20:25:34 +02:00
#ifndef AUDIO_OAL // is not working yet for openal
#define AUDIO_CACHE // cache sound lengths to speed up the cold boot
2020-07-25 20:25:34 +02:00
#endif
//#define PS2_AUDIO // changes audio paths for cutscenes and radio to PS2 paths, needs vbdec to support VB with MSS
//#define SQUEEZE_PERFORMANCE
#ifdef SQUEEZE_PERFORMANCE
#undef PS2_ALPHA_TEST
#undef NO_ISLAND_LOADING
#define PC_PARTICLE
#define VC_PED_PORTS // To not process collisions always. But should be tested if that's really beneficial
#endif