summaryrefslogtreecommitdiffstats
path: root/src/core/config.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/config.h')
-rw-r--r--src/core/config.h116
1 files changed, 116 insertions, 0 deletions
diff --git a/src/core/config.h b/src/core/config.h
new file mode 100644
index 00000000..8cb02190
--- /dev/null
+++ b/src/core/config.h
@@ -0,0 +1,116 @@
+#pragma once
+
+enum Config {
+ NUMCDIMAGES = 12, // gta3.img duplicates (not used on PC)
+ MAX_CDIMAGES = 8, // additional cdimages
+
+ MODELINFOSIZE = 5500,
+ TXDSTORESIZE = 850,
+ EXTRADIRSIZE = 128,
+
+ SIMPLEMODELSIZE = 5000,
+ TIMEMODELSIZE = 30,
+ CLUMPMODELSIZE = 5,
+ PEDMODELSIZE = 90,
+ VEHICLEMODELSIZE = 120,
+ TWODFXSIZE = 2000,
+
+ MAXVEHICLESLOADED = 50, // 70 on mobile
+
+ NUMOBJECTINFO = 168, // object.dat
+
+ // Pool sizes
+ NUMPTRNODES = 30000, // 26000 on PS2
+ NUMENTRYINFOS = 5400, // 3200 on PS2
+ NUMPEDS = 140, // 90 on PS2
+ NUMVEHICLES = 110, // 70 on PS2
+ NUMBUILDINGS = 5500, // 4915 on PS2
+ NUMTREADABLES = 1214,
+ NUMOBJECTS = 450,
+ NUMDUMMIES = 2802, // 2368 on PS2
+ NUMAUDIOSCRIPTOBJECTS = 256,
+
+ // Link list lengths
+ // TODO: alpha list
+ NUMCOLCACHELINKS = 200,
+ NUMREFERENCES = 800,
+
+ // Zones
+ NUMAUDIOZONES = 36,
+ NUMZONES = 50,
+ NUMMAPZONES = 25,
+
+ // Cull zones
+ NUMCULLZONES = 512,
+ NUMATTRIBZONES = 288,
+ NUMZONEINDICES = 55000,
+
+ NUMHANDLINGS = 57,
+
+ PATHNODESIZE = 4500,
+
+ NUMWEATHERS = 4,
+ NUMHOURS = 24,
+
+ NUMEXTRADIRECTIONALS = 4,
+ NUMANTENNAS = 8,
+ NUMCORONAS = 56,
+ NUMPOINTLIGHTS = 32,
+
+ NUMONSCREENTIMERENTRIES = 1,
+ NUMRADARBLIPS = 32,
+ NUMPICKUPS = 336,
+};
+
+// 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
+
+// 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
+# define RANDOMSPLASH
+#elif defined GTA_PC
+# define GTA3_1_1_PATCH
+# ifdef GTA_PS2_STUFF
+//# define USE_PS2_RAND // this is unsafe until we have the game reversed
+# 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
+#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
+# define CHATTYSPLASH // print what the game is loading
+#endif
+
+#define FIX_BUGS // fix bugs in the game, TODO: use this more
+#define KANGAROO_CHEAT
+#define ASPECT_RATIO_SCALE