From 88d94447414a9322fbccb47672f3fc8c98c9c44b Mon Sep 17 00:00:00 2001 From: withmorten Date: Tue, 16 Feb 2021 16:45:05 +0100 Subject: [PATCH] pc/ps2/custom limits --- src/core/config.h | 146 +++------------------------------------ src/core/limits_custom.h | 135 ++++++++++++++++++++++++++++++++++++ src/core/limits_pc.h | 135 ++++++++++++++++++++++++++++++++++++ src/core/limits_ps2.h | 135 ++++++++++++++++++++++++++++++++++++ 4 files changed, 413 insertions(+), 138 deletions(-) create mode 100644 src/core/limits_custom.h create mode 100644 src/core/limits_pc.h create mode 100644 src/core/limits_ps2.h diff --git a/src/core/config.h b/src/core/config.h index 6619be68..b32aa647 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -3,150 +3,20 @@ // disables (most) stuff that wasn't in original gta3.exe - check section at the bottom of this file //#define VANILLA_DEFINES -enum Config { - NUMPLAYERS = 1, // 4 on PS2 - - NUMCDIMAGES = 12, // gta3.img duplicates (not used on PC) - MAX_CDIMAGES = 8, // additional cdimages - MAX_CDCHANNELS = 5, - - MODELINFOSIZE = 5500, // 3150 on PS2 -#if defined __MWERKS__ || defined VANILLA_DEFINES - TXDSTORESIZE = 850, -#else - TXDSTORESIZE = 1024, // for Xbox map -#endif - EXTRADIRSIZE = 128, - CUTSCENEDIRSIZE = 512, - - SIMPLEMODELSIZE = 5000, // 2910 on PS2 - MLOMODELSIZE = 1, - MLOINSTANCESIZE = 1, - TIMEMODELSIZE = 30, - CLUMPMODELSIZE = 5, - PEDMODELSIZE = 90, - VEHICLEMODELSIZE = 120, // 70 on PS2 - XTRACOMPSMODELSIZE = 2, - TWODFXSIZE = 2000, // 1210 on PS2 - - 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, - NUMCUTSCENEOBJECTS = 50, - - NUMANIMBLOCKS = 2, - NUMANIMATIONS = 250, - - NUMTEMPOBJECTS = 30, - - // Path data - NUM_PATHNODES = 4930, - NUM_CARPATHLINKS = 2076, - NUM_MAPOBJECTS = 1250, - NUM_PATHCONNECTIONS = 10260, - - // Link list lengths - NUMALPHALIST = 20, - NUMALPHAENTITYLIST = 150, - NUMCOLCACHELINKS = 200, - NUMREFERENCES = 800, - - // Zones - NUMAUDIOZONES = 36, - NUMZONES = 50, - NUMMAPZONES = 25, - - // Cull zones - NUMCULLZONES = 512, - NUMATTRIBZONES = 288, - NUMZONEINDICES = 55000, - - PATHNODESIZE = 4500, - - NUMWEATHERS = 4, - NUMHOURS = 24, - - NUMEXTRADIRECTIONALS = 4, - NUMANTENNAS = 8, - NUMCORONAS = 56, - NUMPOINTLIGHTS = 32, - NUM3DMARKERS = 32, - NUMBRIGHTLIGHTS = 32, - NUMSHINYTEXTS = 32, - NUMMONEYMESSAGES = 16, - NUMPICKUPMESSAGES = 16, - NUMBULLETTRACES = 16, - NUMMBLURSTREAKS = 4, - NUMSKIDMARKS = 32, - - NUMONSCREENTIMERENTRIES = 1, - NUMRADARBLIPS = 32, - NUMGENERALPICKUPS = 320, - NUMSCRIPTEDPICKUPS = 16, - NUMPICKUPS = NUMGENERALPICKUPS + NUMSCRIPTEDPICKUPS, - NUMCOLLECTEDPICKUPS = 20, - NUMPACMANPICKUPS = 256, - NUMEVENTS = 64, - - NUM_CARGENS = 160, - - NUM_PATH_NODES_IN_AUTOPILOT = 8, - - NUM_ACCIDENTS = 20, - NUM_FIRES = 40, - NUM_GARAGES = 32, - NUM_PROJECTILES = 32, - - NUM_GLASSPANES = 45, - NUM_GLASSENTITIES = 32, - NUM_WATERCANNONS = 3, - - NUMPEDROUTES = 200, - NUMPHONES = 50, - NUMPEDGROUPS = 31, - NUMMODELSPERPEDGROUP = 8, - NUMSHOTINFOS = 100, - - NUMROADBLOCKS = 600, - - NUMVISIBLEENTITIES = 2000, - NUMINVISIBLEENTITIES = 150, - - NUM_AUDIOENTITY_EVENTS = 4, - NUM_PED_COMMENTS_BANKS = 2, - NUM_PED_COMMENTS_SLOTS = 20, - - NUM_SOUNDS_SAMPLES_BANKS = 2, - NUM_SOUNDS_SAMPLES_SLOTS = 27, - NUM_AUDIOENTITIES = 200, - - NUM_AUDIO_REFLECTIONS = 5, - NUM_SCRIPT_MAX_ENTITIES = 40, - - NUM_GARAGE_STORED_CARS = 6, - - NUM_CRANES = 8, - - NUM_EXPLOSIONS = 48, -}; - // 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 +#ifdef GTA_PS2 +#include "limits_p2.h" +#elif defined __MWERKS__ || defined VANILLA_DEFINES +#include "limits_pc.h" +#else +#include "limits_custom.h" // some nice enhanced limits +#endif + // This enables things from the PS2 version on PC #define GTA_PS2_STUFF diff --git a/src/core/limits_custom.h b/src/core/limits_custom.h new file mode 100644 index 00000000..05f19acc --- /dev/null +++ b/src/core/limits_custom.h @@ -0,0 +1,135 @@ +#pragma once + +enum Config { + NUMPLAYERS = 1, // 4 on PS2 + + NUMCDIMAGES = 12, // gta3.img duplicates (not used on PC) + MAX_CDIMAGES = 8, // additional cdimages + MAX_CDCHANNELS = 5, + + MODELINFOSIZE = 5500, // 3150 on PS2 + TXDSTORESIZE = 1024, // 1024 Xbox map + EXTRADIRSIZE = 128, + CUTSCENEDIRSIZE = 512, + + SIMPLEMODELSIZE = 5000, // 2910 on PS2 + MLOMODELSIZE = 1, + MLOINSTANCESIZE = 1, + TIMEMODELSIZE = 30, + CLUMPMODELSIZE = 5, + PEDMODELSIZE = 90, + VEHICLEMODELSIZE = 120, // 70 on PS2 + XTRACOMPSMODELSIZE = 2, + TWODFXSIZE = 2000, // 1210 on PS2 + + 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, + NUMCUTSCENEOBJECTS = 50, + + NUMANIMBLOCKS = 2, + NUMANIMATIONS = 250, + + NUMTEMPOBJECTS = 30, + + // Path data + NUM_PATHNODES = 4930, + NUM_CARPATHLINKS = 2076, + NUM_MAPOBJECTS = 1250, + NUM_PATHCONNECTIONS = 10260, + + // Link list lengths + NUMALPHALIST = 20, + NUMALPHAENTITYLIST = 150, + NUMCOLCACHELINKS = 200, + NUMREFERENCES = 800, + + // Zones + NUMAUDIOZONES = 36, + NUMZONES = 50, + NUMMAPZONES = 25, + + // Cull zones + NUMCULLZONES = 512, + NUMATTRIBZONES = 288, + NUMZONEINDICES = 55000, + + PATHNODESIZE = 4500, + + NUMWEATHERS = 4, + NUMHOURS = 24, + + NUMEXTRADIRECTIONALS = 4, + NUMANTENNAS = 8, + NUMCORONAS = 56, + NUMPOINTLIGHTS = 32, + NUM3DMARKERS = 32, + NUMBRIGHTLIGHTS = 32, + NUMSHINYTEXTS = 32, + NUMMONEYMESSAGES = 16, + NUMPICKUPMESSAGES = 16, + NUMBULLETTRACES = 16, + NUMMBLURSTREAKS = 4, + NUMSKIDMARKS = 32, + + NUMONSCREENTIMERENTRIES = 1, + NUMRADARBLIPS = 32, + NUMGENERALPICKUPS = 320, + NUMSCRIPTEDPICKUPS = 16, + NUMPICKUPS = NUMGENERALPICKUPS + NUMSCRIPTEDPICKUPS, + NUMCOLLECTEDPICKUPS = 20, + NUMPACMANPICKUPS = 256, + NUMEVENTS = 64, + + NUM_CARGENS = 160, + + NUM_PATH_NODES_IN_AUTOPILOT = 8, + + NUM_ACCIDENTS = 20, + NUM_FIRES = 40, + NUM_GARAGES = 32, + NUM_PROJECTILES = 32, + + NUM_GLASSPANES = 45, + NUM_GLASSENTITIES = 32, + NUM_WATERCANNONS = 3, + + NUMPEDROUTES = 200, + NUMPHONES = 50, + NUMPEDGROUPS = 31, + NUMMODELSPERPEDGROUP = 8, + NUMSHOTINFOS = 100, + + NUMROADBLOCKS = 600, + + NUMVISIBLEENTITIES = 2000, + NUMINVISIBLEENTITIES = 150, + + NUM_AUDIOENTITY_EVENTS = 4, + NUM_PED_COMMENTS_BANKS = 2, + NUM_PED_COMMENTS_SLOTS = 20, + + NUM_SOUNDS_SAMPLES_BANKS = 2, + NUM_SOUNDS_SAMPLES_SLOTS = 27, + NUM_AUDIOENTITIES = 200, + + NUM_AUDIO_REFLECTIONS = 5, + NUM_SCRIPT_MAX_ENTITIES = 40, + + NUM_GARAGE_STORED_CARS = 6, + + NUM_CRANES = 8, + + NUM_EXPLOSIONS = 48, +}; diff --git a/src/core/limits_pc.h b/src/core/limits_pc.h new file mode 100644 index 00000000..9fc212d6 --- /dev/null +++ b/src/core/limits_pc.h @@ -0,0 +1,135 @@ +#pragma once + +enum Config { + NUMPLAYERS = 1, // 4 on PS2 + + NUMCDIMAGES = 12, // gta3.img duplicates (not used on PC) + MAX_CDIMAGES = 8, // additional cdimages + MAX_CDCHANNELS = 5, + + MODELINFOSIZE = 5500, // 3150 on PS2 + TXDSTORESIZE = 850, + EXTRADIRSIZE = 128, + CUTSCENEDIRSIZE = 512, + + SIMPLEMODELSIZE = 5000, // 2910 on PS2 + MLOMODELSIZE = 1, + MLOINSTANCESIZE = 1, + TIMEMODELSIZE = 30, + CLUMPMODELSIZE = 5, + PEDMODELSIZE = 90, + VEHICLEMODELSIZE = 120, // 70 on PS2 + XTRACOMPSMODELSIZE = 2, + TWODFXSIZE = 2000, // 1210 on PS2 + + 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, + NUMCUTSCENEOBJECTS = 50, + + NUMANIMBLOCKS = 2, + NUMANIMATIONS = 250, + + NUMTEMPOBJECTS = 30, + + // Path data + NUM_PATHNODES = 4930, + NUM_CARPATHLINKS = 2076, + NUM_MAPOBJECTS = 1250, + NUM_PATHCONNECTIONS = 10260, + + // Link list lengths + NUMALPHALIST = 20, + NUMALPHAENTITYLIST = 150, + NUMCOLCACHELINKS = 200, + NUMREFERENCES = 800, + + // Zones + NUMAUDIOZONES = 36, + NUMZONES = 50, + NUMMAPZONES = 25, + + // Cull zones + NUMCULLZONES = 512, + NUMATTRIBZONES = 288, + NUMZONEINDICES = 55000, + + PATHNODESIZE = 4500, + + NUMWEATHERS = 4, + NUMHOURS = 24, + + NUMEXTRADIRECTIONALS = 4, + NUMANTENNAS = 8, + NUMCORONAS = 56, + NUMPOINTLIGHTS = 32, + NUM3DMARKERS = 32, + NUMBRIGHTLIGHTS = 32, + NUMSHINYTEXTS = 32, + NUMMONEYMESSAGES = 16, + NUMPICKUPMESSAGES = 16, + NUMBULLETTRACES = 16, + NUMMBLURSTREAKS = 4, + NUMSKIDMARKS = 32, + + NUMONSCREENTIMERENTRIES = 1, + NUMRADARBLIPS = 32, + NUMGENERALPICKUPS = 320, + NUMSCRIPTEDPICKUPS = 16, + NUMPICKUPS = NUMGENERALPICKUPS + NUMSCRIPTEDPICKUPS, + NUMCOLLECTEDPICKUPS = 20, + NUMPACMANPICKUPS = 256, + NUMEVENTS = 64, + + NUM_CARGENS = 160, + + NUM_PATH_NODES_IN_AUTOPILOT = 8, + + NUM_ACCIDENTS = 20, + NUM_FIRES = 40, + NUM_GARAGES = 32, + NUM_PROJECTILES = 32, + + NUM_GLASSPANES = 45, + NUM_GLASSENTITIES = 32, + NUM_WATERCANNONS = 3, + + NUMPEDROUTES = 200, + NUMPHONES = 50, + NUMPEDGROUPS = 31, + NUMMODELSPERPEDGROUP = 8, + NUMSHOTINFOS = 100, + + NUMROADBLOCKS = 600, + + NUMVISIBLEENTITIES = 2000, + NUMINVISIBLEENTITIES = 150, + + NUM_AUDIOENTITY_EVENTS = 4, + NUM_PED_COMMENTS_BANKS = 2, + NUM_PED_COMMENTS_SLOTS = 20, + + NUM_SOUNDS_SAMPLES_BANKS = 2, + NUM_SOUNDS_SAMPLES_SLOTS = 27, + NUM_AUDIOENTITIES = 200, + + NUM_AUDIO_REFLECTIONS = 5, + NUM_SCRIPT_MAX_ENTITIES = 40, + + NUM_GARAGE_STORED_CARS = 6, + + NUM_CRANES = 8, + + NUM_EXPLOSIONS = 48, +}; diff --git a/src/core/limits_ps2.h b/src/core/limits_ps2.h new file mode 100644 index 00000000..50c3dfac --- /dev/null +++ b/src/core/limits_ps2.h @@ -0,0 +1,135 @@ +#pragma once + +enum Config { + NUMPLAYERS = 4, + + NUMCDIMAGES = 12, // gta3.img duplicates + MAX_CDIMAGES = 8, // additional cdimages + MAX_CDCHANNELS = 5, + + MODELINFOSIZE = 3150, + TXDSTORESIZE = 850, + EXTRADIRSIZE = 128, + CUTSCENEDIRSIZE = 512, + + SIMPLEMODELSIZE = 2910, + MLOMODELSIZE = 1, + MLOINSTANCESIZE = 1, + TIMEMODELSIZE = 30, + CLUMPMODELSIZE = 5, + PEDMODELSIZE = 90, + VEHICLEMODELSIZE = 70, + XTRACOMPSMODELSIZE = 2, + TWODFXSIZE = 1210, + + MAXVEHICLESLOADED = 50, + + NUMOBJECTINFO = 168, // object.dat + + // Pool sizes + NUMPTRNODES = 26000, + NUMENTRYINFOS = 3200, + NUMPEDS = 90, + NUMVEHICLES = 70, + NUMBUILDINGS = 4915, + NUMTREADABLES = 1214, + NUMOBJECTS = 450, + NUMDUMMIES = 2368, + NUMAUDIOSCRIPTOBJECTS = 256, + NUMCUTSCENEOBJECTS = 50, + + NUMANIMBLOCKS = 2, + NUMANIMATIONS = 250, + + NUMTEMPOBJECTS = 30, + + // Path data + NUM_PATHNODES = 4930, + NUM_CARPATHLINKS = 2076, + NUM_MAPOBJECTS = 1250, + NUM_PATHCONNECTIONS = 10260, + + // Link list lengths + NUMALPHALIST = 20, + NUMALPHAENTITYLIST = 150, + NUMCOLCACHELINKS = 200, + NUMREFERENCES = 800, + + // Zones + NUMAUDIOZONES = 36, + NUMZONES = 50, + NUMMAPZONES = 25, + + // Cull zones + NUMCULLZONES = 512, + NUMATTRIBZONES = 288, + NUMZONEINDICES = 55000, + + PATHNODESIZE = 4500, + + NUMWEATHERS = 4, + NUMHOURS = 24, + + NUMEXTRADIRECTIONALS = 4, + NUMANTENNAS = 8, + NUMCORONAS = 56, + NUMPOINTLIGHTS = 32, + NUM3DMARKERS = 32, + NUMBRIGHTLIGHTS = 32, + NUMSHINYTEXTS = 32, + NUMMONEYMESSAGES = 16, + NUMPICKUPMESSAGES = 16, + NUMBULLETTRACES = 16, + NUMMBLURSTREAKS = 4, + NUMSKIDMARKS = 32, + + NUMONSCREENTIMERENTRIES = 1, + NUMRADARBLIPS = 32, + NUMGENERALPICKUPS = 320, + NUMSCRIPTEDPICKUPS = 16, + NUMPICKUPS = NUMGENERALPICKUPS + NUMSCRIPTEDPICKUPS, + NUMCOLLECTEDPICKUPS = 20, + NUMPACMANPICKUPS = 256, + NUMEVENTS = 64, + + NUM_CARGENS = 160, + + NUM_PATH_NODES_IN_AUTOPILOT = 8, + + NUM_ACCIDENTS = 20, + NUM_FIRES = 40, + NUM_GARAGES = 32, + NUM_PROJECTILES = 32, + + NUM_GLASSPANES = 45, + NUM_GLASSENTITIES = 32, + NUM_WATERCANNONS = 3, + + NUMPEDROUTES = 200, + NUMPHONES = 50, + NUMPEDGROUPS = 31, + NUMMODELSPERPEDGROUP = 8, + NUMSHOTINFOS = 100, + + NUMROADBLOCKS = 600, + + NUMVISIBLEENTITIES = 2000, + NUMINVISIBLEENTITIES = 150, + + NUM_AUDIOENTITY_EVENTS = 4, + NUM_PED_COMMENTS_BANKS = 2, + NUM_PED_COMMENTS_SLOTS = 20, + + NUM_SOUNDS_SAMPLES_BANKS = 2, + NUM_SOUNDS_SAMPLES_SLOTS = 27, + NUM_AUDIOENTITIES = 200, + + NUM_AUDIO_REFLECTIONS = 5, + NUM_SCRIPT_MAX_ENTITIES = 40, + + NUM_GARAGE_STORED_CARS = 6, + + NUM_CRANES = 8, + + NUM_EXPLOSIONS = 48, +};