Difference between revisions of "Memory Addresses (VC)"

From GTAMods Wiki
Jump to navigation Jump to search
(MENU Texture Names)
(References)
 
(127 intermediate revisions by 12 users not shown)
Line 1: Line 1:
 
==Cheats==
 
==Cheats==
 +
* 0xA10B87 - [1 byte] - TIMEPASSINGMEBY faster time
 
* 0x4ABF4C - [1 byte] - YOUWONTTAKEMEALIVE set wanted level
 
* 0x4ABF4C - [1 byte] - YOUWONTTAKEMEALIVE set wanted level
 
* 0x4ABFC4 - [1 byte] - LEAVEMEALONE set wanted level
 
* 0x4ABFC4 - [1 byte] - LEAVEMEALONE set wanted level
Line 87: Line 88:
 
* 0x6885C8 - [string] - FIGHTFIGHTFIGHT cheat input
 
* 0x6885C8 - [string] - FIGHTFIGHTFIGHT cheat input
 
* 0x6885D8 - [string] - NOBODYLIKESME cheat input
 
* 0x6885D8 - [string] - NOBODYLIKESME cheat input
 +
* 0x68F160 - [string] - CERTAINDEATH cheat input
 +
* 0x68F170 - [string] - DEEPFRIEDMRSBARS cheat input
 +
* 0X68F184 - [string] - PROGRAMMER cheat input
 
* 0x695128 - [string] - OURGODGIVENRIGHTTOBEARARMS cheat input
 
* 0x695128 - [string] - OURGODGIVENRIGHTTOBEARARMS cheat input
 
* 0x695144 - [string] - ONSPEED cheat input
 
* 0x695144 - [string] - ONSPEED cheat input
Line 94: Line 98:
 
* 0x69517C - [string] - GRIPISEVERYTHING cheat input
 
* 0x69517C - [string] - GRIPISEVERYTHING cheat input
 
* 0x695070 - [string] - CHASESTAT cheat input
 
* 0x695070 - [string] - CHASESTAT cheat input
 +
* 0x6DC408 - [string] - WELOVEOURDICK cheat input
 +
* 0x6DC418 - [string] - SEAWAYS cheat input
  
 
==Taxi==
 
==Taxi==
Line 109: Line 115:
 
* 0x42B24E - [4 bytes] - TAXI text duration
 
* 0x42B24E - [4 bytes] - TAXI text duration
 
* 0x687574 - [string] - TAXI text
 
* 0x687574 - [string] - TAXI text
* 0x78BCD8 - [float] - Angle taxi start
 
:+0x4 for each additional taxi start, up to 0x78BCF4 total by default
 
* 0x812138 - [float] - X-coord taxi start
 
:+0xC for each additional taxi start, up to 0x81218C
 
* 0x81213C - [float] - Y-coord taxi start
 
:+0xC for each additional taxi start, up to 0x812190
 
* 0x812140 - [float] - Z-coord taxi start
 
:+0xC for each additional taxi start, up to 0x812194
 
 
* 0x94DD94 - [float] - X-coord taxi destination (updated by opcode [[058E]])
 
* 0x94DD94 - [float] - X-coord taxi destination (updated by opcode [[058E]])
 
:+0x4 - [float] - Y-coord taxi destination
 
:+0x4 - [float] - Y-coord taxi destination
Line 172: Line 170:
 
; 0x68E708: Distance from bottom [float].
 
; 0x68E708: Distance from bottom [float].
 
; 0x68E704: Distance from left [float].
 
; 0x68E704: Distance from left [float].
 +
; 0x4A6C33: Moving Loading Bar Color (red) [Byte]
 +
; 0x4A6C2E: Moving Loading Bar Color (Green) [Byte]
 +
; 0x4A6C29: Moving Loading Bar Color (Blue) [Byte]
 +
; 0x4A6C24: Moving Loading Bar transparency (A) [Byte]
 +
; 0x4A6B80: Bar Color (red) [Byte]
 +
; 0x4A6B7E: Bar Color (Green) [Byte]
 +
; 0x4A6B7C: Bar Color (Blue) [Byte]
 +
; 0x4A6B77: transparency (A) [Byte]
 +
 +
==Mouse==
 +
* 0x936910 - [float] - Mouse X movement
 +
* 0x936914 - [float] - Mouse Y movement
 +
* 0x936908 - [Byte] - Left Mouse Button (LMB)
 +
* 0x936909 - [Byte] - Right Mouse Button (RMB)
 +
* 0x93690A - [Byte] - Middle Mouse Button (MMB)
 +
* 0x93690B - [Byte] - Mouse Wheel Up
 +
* 0x93690C - [Byte] - Mouse Wheel Down
  
 
==Menu==
 
==Menu==
; 0x703997: Selected menu index [byte].
+
; 0x703997: Selected menu index [byte]. [http://gtaforums.com/topic/117195-documenting-gta3vc-memory-adresses/page-24#entry2851295 GTAForums post]
 +
*00 - Stats
 +
*01 - Start Game
 +
*03 - Audio Setup
 +
*04 - Display
 +
*05 - Language
 +
*06 - Map
 +
*07 - InGame/ Starts New Game
 +
*08 - Load Game
 +
*09 - Delete Game
 +
*10 - "All unsaved progress..." Load Game
 +
*11 - "Proceed wit deleting..." Delete Game
 +
*12 - Goes to 01 - Start Game
 +
*13 - "Deleting Saved game. Please Wait..." then goes to 14
 +
*14 - "Delete Successful. Select OK to continue" "Ok" Delete Game
 +
*15 - Save Game List
 +
*16 - "Are you sure you want to save this game?"
 +
*17 - "Saving current game. Please wait...." Then goes to 18
 +
*18 - "Save Successful. Select OK to continue." "OK"
 +
*19 - "Ok" Saved Game, this is just a blank screen with no text
 +
*20 - "Warning! One or more cheats..." Cheat warning
 +
*21 - Player Skin Setup
 +
*26 - Controller Setup
 +
*27 - Options
 +
*29 - Main Menu
 +
*30 - RedeFine Controls
 +
*31 - Mouse Settings
 +
*32 - Resume
 +
*33 - "Greetings From Vice City" Then ends game
 +
*34 - "Greetings From Vice City" Then ends game
 +
*35+ - Blank Screen
 
; 0x704851: Arrow in map "you are here" [byte].
 
; 0x704851: Arrow in map "you are here" [byte].
 
; 0x783F12: Save game directory [String].
 
; 0x783F12: Save game directory [String].
Line 187: Line 232:
 
; 0x68BF68: menu logo Texture name[string]
 
; 0x68BF68: menu logo Texture name[string]
 
; 0x68BF7C: Mouse Texture name[string]
 
; 0x68BF7C: Mouse Texture name[string]
 +
; 0x869694: Mouse X Position [float].
 +
; 0x869698: Mouse Y Position [float].
 +
; 0x86965A: Music Volume [Byte].
 +
; 0x86968A: MP3 boost [Byte].
 +
; 0x869659: SFX Volume [Byte].
  
 
==Stats==
 
==Stats==
The list is in order of appearance in the stats menu.
+
:''Main page: [[List of statistics (VC)]]''
* 0xA1023C - [4 bytes] - Mission attempts (incremented by [[0317]])
+
* 0x4CC102 - [4 bytes] - Total number of stores to knock off (default is 15)
* 0x97F1F4 - [4 bytes] - Days passed in game
+
* 0x4CC1CD - [4 bytes] - Total number of assassination contracts to complete (default 5)
* 0xA0D228 - [4 bytes] - Safehouse visits
+
 
* 0x974C0C - [4 bytes] - Rampages passed (total number set by [[0408]])
+
==Controller==
* 0x974C08 - [4 bytes] - Rampages passed (number of)
+
* 00869630 - FrontEndMenuManager ( CMenuManager )
* 0x978794 - [4 bytes] - People you've wasted
+
** +0x0A - [Byte] - m_bHudMode                       
* 0x9753AC - [4 bytes] - People wasted by others
+
** +0x18 - [4 bytes] - m_PrefsBrightness               
* 0xA0D388 - [4 bytes] - Road Vehicles destroyed
+
** +0x20 - [Byte] - m_bSubtitles                     
* 0x974B04 - [4 bytes] - Boats destroyed
+
** +0x22 - [Byte] - m_bWidescreen                     
* 0x9751F0 - [4 bytes] - Planes & Helicopters destroyed
+
** +0x25 - [Byte] - m_bFrameLimiter                   
* 0x94DB58 - [4 bytes] - Tires popped with gunfire
+
** +0x38 - [Byte] - m_bMenuVisible                   
* 0x9B5EB8 - [4 bytes] - Total number of wanted stars attained
+
** +0x39 - [Byte] - m_bDemoQuit                       
* 0x9B5F30 - [4 bytes] - Total number of wanted stars evaded
+
** +0x3C - [Byte] - m_bExtraSplash                   
* 0x975330 - [4 bytes] - Times busted
+
** +0x4C - [4 bytes] - m_nGameLanguage                 
* 0x975320 - [4 bytes] - Hospital visits
+
** +0x5B - [Byte] - Controller state ( Standrad = 0, Classic = 1)                
* 0x9B6E38 - [4 bytes] - Number of headshots
+
** +0x6C - [Byte] - m_bGameStarted                   
* 0x94DB80 - [4 bytes] - Gang members wasted (Cubans)
+
** +0x84 m_apMenuSprites[26] (CSprite2d)
:+0x4 for additional gangs (Haitians, etc.)
+
** +0xF8 - [4 bytes] - m_nCurrentPage
* 0x94DBAC - [4 bytes] - Criminals wasted
 
* 0x9787A8 - [4 bytes] - Kgs of explosives used
 
* 0x97532C - [4 bytes] - Bullets fired
 
* 0x9B6CD4 - [4 bytes] - Bullets that hit
 
* 0xA0D9B4 - [float] - Dist. traveled on foot (m)
 
* 0xA0FCFC - [float] - Dist. traveled by car (m)
 
* 0xA0D2D8 - [float] - Dist. traveled by bike (m)
 
* 0xA0D384 - [float] - Dist. traveled by boat (m)
 
* 0x974C04 - [float] - Dist. traveled by golf cart (m)
 
* 0x9B6A48 - [float] - Dist. traveled by helicopter (m)
 
* 0x97F210 - [float] - Max. INSANE Jump dist. (m) (set by [[030E]])
 
* 0xA0CFD8 - [float] - Max. INSANE Jump height (m) (set by [[030F]])
 
* 0x9787DC - [4 bytes] - Max. INSANE Jump flips (set by [[0310]])
 
* 0x978530 - [4 bytes] - Unique Jumps completed (total number set by [[0314]])
 
* 0x974B48 - [4 bytes] - Unique Jumps completed (number incremented by [[0313]])
 
* 0x978D14 - [4 bytes] - Max. INSANE Jump rotation (set by [[0311]])
 
* 0x974B30 - [4 bytes] - Best INSANE stunt so far (set by [[0312]])
 
:0 = No INSANE stunts completed
 
:1 = Insane stunt
 
:2 = Perfect insane stunt
 
:3 = Double insane stunt
 
:4 = Perfect double insane stunt
 
:5 = Triple insane stunt
 
:6 = Perfect triple insane stunt
 
:7 = Quadruple insane stunt (unused)
 
:8 = Perfect quadruple insane stunt (unused)
 
* 0x97530C - [4 bytes] - Longest Wheelie time (secs)
 
* 0x9786C0 - [float] - Longest Wheelie distance (m)
 
* 0x974B3C - [4 bytes] - Longest Stoppie time (secs)
 
* 0x9B5F44 - [float] - Longest Stoppie distance (m)
 
* 0xA0FCF8 - [4 bytes] - Longest 2 wheels time (secs)
 
* 0x9B48D0 - [float] - Longest 2 wheels distance (m)
 
* 0x974C28 - [float] - Visits From Loan Sharks (unused)
 
* 0x9787B4 - [4 bytes] - Criminals killed on Vigilante Mission (incremented by [[0402]])
 
* 0x94DD60 - [4 bytes] - Highest Vigilante Mission level (set by [[0578]])
 
* 0xA0D1DC - [4 bytes] - Passengers dropped off (incremented by [[0315]])
 
* 0xA0D9C8 - [4 bytes] - Cash made in taxi (added by [[0316]])
 
* 0x9B5EA8 - [4 bytes] - People saved in an Ambulance (incremented by [[0401]])
 
* 0x978DB8 - [4 bytes] - Highest Paramedic Mission level (set by [[0403]])
 
* 0x9B6A84 - [4 bytes] - Total fires extinguished (incremented by [[0404]])
 
* 0x975310 - [4 bytes] - Fire Truck Mission level (set by [[0599]])
 
* 0x97F898 - [float] - Stores Knocked Off (added by [[0531]])
 
* 0x4CC102 - [4 bytes] - Stores Knocked Off (total number, set to 15 by default)
 
* 0xA0FC8C - [float] - Movie Stunts (unused)
 
* 0xA10918 - [4 bytes] - Assassination Contracts Completed (incremented by [[0533]])
 
* 0x4CC1CD - [4 bytes] - Assassination Contracts Completed (total number, set to 5 by default)
 
* 0x97F21C - [4 bytes] - Photographs Taken
 
* 0x978780 - [float] - Pizza's Delivered (added by [[0534]])
 
* 0x974C00 - [float] - Garbage Pickups Made (unused)
 
* 0x975390 - [float] - 'Ice Cream' Sold (added by [[0536]])
 
* 0x974B80 - [4 bytes] - Fastest time on 'Alloy Wheels Of Steel' (set by [[042E]])
 
:+0x4 for each additional stat related to 042E up to 0x974BD8
 
* 0x9B6E20 - [4 bytes] - Highest score for Shooter (set by [[042F]])
 
:+0x4 for each additional stat related to 042F, except the last one, up to 0x9B6E2C
 
* 0xA0FD80 - [4 bytes] - Hotring Best Result (set by [[0582]])
 
* 0x974B08 - [float] - Shooting Range Rank
 
* 0x97854C - [4 bytes] - Flight hours (ms, converted to min in menu)
 
* 0x9B6E54 - [4 bytes] - Number of bloodring kills (added by [[0543]])
 
* 0xA0D2E0 - [4 bytes] - Longest time in bloodring (secs) (set by [[0544]])
 
* 0x9B48B4 - [4 bytes] - Fishes Fed
 
* 0x97869C - [4 bytes] - Seagulls Sniped
 
* 0xA0FC94 - [4 bytes] - Sprayings
 
* 0xA0FDCC - [float] - Weapon Budget (added by [[0528]])
 
* 0xA0D068 - [float] - Fashion Budget (added by [[04CF]])
 
* 0x9B48B0 - [float] - Property Budget (added by [[0529]])
 
* 0xA10298 - [float] - Auto Repair and Painting Budget
 
* 0x975404 - [4 bytes] - Property Destroyed
 
* 0x978E08 - [4 bytes] - Property Owned
 
* 0xA10AFD - [1 byte] - The Malibu owned (set by [[0542]], Property Owned needs a value for this to show)
 
:+0x1 for each additional property related to 0542 up to 0xA10B0B
 
* 0x978E0C - [float] - Highest media attention
 
  
 
==Garages==
 
==Garages==
Line 340: Line 319:
 
** +0x25 - [1 byte] - bomb type (3=remote,2=engine ignition,1=timed,0=none)
 
** +0x25 - [1 byte] - bomb type (3=remote,2=engine ignition,1=timed,0=none)
  
==CObject==
+
==CBrightLight==
struct CObjectVC {
+
RwV3D cornerAA;
  CPhysical phys; // 0-288
+
RwV3D cornerAB;
  //physical structure of this object
+
RwV3D cornerBA;
  CMatrix matDummyInitial; // 288-360
+
RwV3D cornerBB;
  //initial matrix, when converted from a dummy object
+
float fDistanceToCamera;
  float fAttachForce; // 360-34
+
RwRGBA color;
  //how strongly the object is attached to the ground
+
 
  uint8_t byteObjectType; // 364-365
+
== CEntity ==
  //0 - default, not used, 1 - map object, 2 - projectiles, pickups, script objects, 3 - dead car parts and roadblocks, 4 - cutscene object, 5 - spiketraps + ?
+
The CEntity class is 0x064 bytes in size.
  uint8_t bIsPickupObject:1; // 365.0-365.1
+
{|class="wikitable" style="max-width: 48em;"
  //is a pickup object
+
!Offset ||Type ||style="width: 100%;" |Description
  uint8_t bDoCircleEffect:1; // 365.1-365.2
+
|-
  //do the circle blinking effect for pickups
+
|0x000 ||pointer ||pointer to [[wikipedia:Virtual method table|virtual method table]]
  uint8_t bRenderPickupQuantity:1; // 365.2-365.3
+
|-
  //render pickup quantity as dollars
+
|0x004 ||[[#CMatrix|CMatrix]] ||matrix
  uint8_t bRenderPickupAvailability:1; // 365.3-365.4
+
|-
  //render pickup ammunation quantity
+
|0x044 ||pointer ||RwObject
  uint8_t bWindowMinorCollisionDamage:1; // 365.4-365.5
+
|-
  //window has received minor collision damage
+
|0x048 ||pointer ||RpAtomic
  uint8_t bHasWindowBeenBrokenByMelee:1; // 365.5-365.6
+
|-
  //window has been broken by melee
+
|0x04C ||pointer ||RpClump
  uint8_t bHasObjectExplosionTriggered:1; // 365.6-365.7
+
|-
  //has object explosion been triggered (barrels, water hydrants)
+
|0x050 ||byte ||
  uint8_t bIsVehicleComponent:1; // 365.7-366.0
+
* (& 7) 1 = building
  //is this a separated vehicle component
+
* (& 7) 2 = vehicle
  uint8_t bSpecialLighting:1; // 366.0-366.1
+
* (& 7) 3 = ped
  //used for weapon models
+
* (& 7) 4 = object
  uint8_t bNoVehicleCollisionWhenDetached:1; // 366.1-366.2
+
* (& 7) 5 = dummy
  //used for traffic light objects
+
* (>> 3) 0 = [[SCM_language_III/VC_definitions#STATUS|STATUS_PLAYER]]
  uint8_t bPadFlags:6; // 366.2-367.0
+
* (>> 3) 1 = STATUS_PLAYER_PLAYBACKFROMBUFFER
  uint8_t bytePickupObjectBonusType; // 367-368
+
* (>> 3) 2 = STATUS_SIMPLE
  //used for bonus and clothes pickups
+
* (>> 3) 3 = STATUS_PHYSICS
  uint16_t wPickupObjectQuantity; // 368-370
+
* (>> 3) 4 = STATUS_ABANDONED
  //used for money pickups
+
* (>> 3) 5 = STATUS_WRECKED
  _pad(__fxpad00, 2); // 370-372
+
* (>> 3) 6 = STATUS_TRAIN_MOVING
  float fDamageMultiplier; // 372-376
+
* (>> 3) 7 = STATUS_TRAIN_NOT_MOVING
  //object damage multiplier - how easily it breaks
+
* (>> 3) 8 = STATUS_HELI
  uint8_t byteCollisionDamageType; // 376-377
+
* (>> 3) 9 = STATUS_PLANE
  //what happens when the object receives damage
+
* (>> 3) 10 = STATUS_PLAYER_REMOTE
  uint8_t byteSpecialCollisionType; // 377-378
+
* (>> 3) 11 = STATUS_PLAYER_DISABLED
  //special collision type for some objects
+
|-
  uint8_t byteCameraAvoids; // 378-379
+
|0x051 ||byte ||
  //whether the camera avoids this object
+
* bit 0 = is solid
  uint8_t byteBounceScore; // 379-380
+
|-
  //how many times the player has hit this with his head (beachball)
+
|0x052 ||byte ||
  _pad(__fxpad01, 4); // 380-384
+
* bit 1 = [[02AB|explosion proof]]
  uint32_t dwObjectTimer; // 384-388
+
* bit 2 = visibility
  //for some objects this shows when it will disappear (car parts)
+
|-
  uint16_t wRefModelId; // 388-390
+
|0x053 ||byte ||
  //the ID of the model this object is a part of (car parts)
+
* bit 1 = [[02AB|bullet proof]]
  _pad(__fxpad02, 2); // 390-392
+
* bit 2 = fire proof
  CEntity* pInitialSurface; // 392-396
+
* bit 3 = collision proof
  //the surface the object is on when created
+
* bit 4 = melee proof
  CPhysical* pContactPhysical; // 396-400
+
* bit 5 = only damaged by player
  //a physical that is currently in contact with this object
+
<!--
  uint8_t byteVehicleMainColor; // 400-401
+
0x054
  //main color for vehicle parts
+
0x055
  uint8_t byteVehicleExtraColor; // 401-402
+
-->
  //extra color for vehicle parts
+
|-
  _pad(__fxpad03, 2); // 402-404
+
|0x058 ||word ||scan code
};
+
|-
 +
|0x05A ||word ||random number
 +
|-
 +
|0x05C ||word ||[[IDE|model index]]
 +
|-
 +
|0x05E ||byte ||building's level/island number
 +
|-
 +
|0x05F ||byte ||[[0566|object interior number]]
 +
<!--
 +
0x060
 +
-->
 +
|}
 +
 
 +
== CPhysical ==
 +
Offsets continue from [[#CEntity|CEntity]], which is the parent class. The CPhysical class is 0x120 bytes in size including CEntity.
 +
{|class="wikitable" style="max-width: 48em;"
 +
!Offset ||Type ||style="width: 100%;" |Description
 +
|-
 +
|0x064 ||dword ||audio entity (allows sounds to play)
 +
<!--
 +
0x068
 +
-->
 +
|-
 +
|0x06C ||dword ||last collision time
 +
|-
 +
|0x070 ||[[#CVector|CVector]] ||movement speed
 +
|-
 +
|0x07C ||[[#CVector|CVector]] ||turn speed
 +
|-
 +
|0x088 ||[[#CVector|CVector]] ||movement force
 +
|-
 +
|0x094 ||[[#CVector|CVector]] ||turn force
 +
<!--
 +
0x0A0
 +
0x0A4
 +
0x0A8
 +
0x0AC
 +
0x0B0
 +
0x0B4
 +
-->
 +
|-
 +
|0x0B8 ||float ||mass
 +
|-
 +
|0x0BC ||float ||turn resistance
 +
|-
 +
|0x0C0 ||float ||acceleration resistance, initialised to 1.0
 +
<!--
 +
0x0D0
 +
0x0D4
 +
0x0D8
 +
0x0DC
 +
0x0E0
 +
0x0E4
 +
0x0E5
 +
-->
 +
|-
 +
|0x0E6 ||byte ||number of objects it is colliding
 +
<!--
 +
0x0E8
 +
0x0EC
 +
0x0F0
 +
0x0F4
 +
0x0F8
 +
0x0FC
 +
-->
 +
|-
 +
|0x100 ||float ||speed
 +
|-
 +
|0x104 ||float ||collision power (also damages vehicles)
 +
<!--
 +
0x108
 +
0x10C
 +
0x110
 +
0x114
 +
0x118
 +
-->
 +
|-
 +
|0x11A ||byte ||
 +
* bit 4 = [[04AD|in water]]
 +
<!--
 +
0x11B
 +
-->
 +
|-
 +
|0x11C ||byte ||current [[Collision File|collision]] value
 +
|-
 +
|0x11D ||byte ||origin level
 +
|}
  
==CPickup==
+
== CPed ==
struct CPickupVC {
+
Offsets continue from [[#CPhysical|CPhysical]], which is the parent class. The CPed class is 0x6D8 bytes in size including CPhysical and CEntity.
  CVector vecPos; // 0-12
 
  //position of the pickup
 
  float fStandProximity; // 12-16
 
  //how close the player is standing to the pickup?
 
  CObjectVC* pObject; // 16-20
 
  //entity associated with the pickup
 
  CObjectVC* pExtraObject; // 20-24
 
  //extra entity (for minigun for example)
 
  uint32_t dwPickupQuantity; // 24-28
 
  //used for weapons and money
 
  uint32_t dwTimer; // 28-32
 
  //either the time it was created or when it should disappear
 
  uint16_t wMoneyGenerationRate; // 32-34
 
  //how quickly this pickup generates money
 
  uint16_t wModelId; // 34-36
 
  //model ID of the pickup
 
  uint16_t wUniqueId; // 36-38
 
  //unique identifier of this pickup
 
  char szPickupTextKey[8]; // 38-46
 
  //key of the text that is shown when on this pickup
 
  uint8_t bytePickupType; // 46-47
 
  //shows if pickup slot is in use and its type
 
  uint8_t byteRemoved; // 47-48
 
  //pickup has been removed
 
  uint8_t byteEffects; // 48-49
 
  //which kind of visual effects this pickup has (values 0/1)
 
  _pad(__fxpad02, 3); // 49-52
 
}
 
  
==Ped block==
 
 
0x94AD28 - [pointer] - Player pointer (Note that Player is an instance of CPed Class)
 
0x94AD28 - [pointer] - Player pointer (Note that Player is an instance of CPed Class)
* +0x04 - [float] - X roll
+
{|class="wikitable" style="max-width: 48em;"
* +0x08 - [float] - Y roll
+
!Offset ||Type ||style="width: 100%;" |Description
* +0x0C - [float] - Z roll
+
|-
* +0x14 - [float] - X direction
+
|0x141 ||byte ||fast shoot
* +0x18 - [float] - Y direction
+
|-
* +0x1C - [float] - Z direction
+
|0x14C ||byte ||shooting anim
* +0x24 - [float] - Last X position
+
|-
* +0x28 - [float] - Last Y position
+
|0x14D ||byte ||
* +0x2C - [float] - Last Z position
+
* bit 3 = is airbourne
* +0x34 - [float] - X coordinate
+
* bit 4 = landing a jump
* +0x38 - [float] - Y coordinate
+
* bit 5 = [[0319|run walk style]]
* +0x3C - [float] - Z coordinate
+
|-
* +0x46 - [byte] - camera thing [http://www.gtaforums.com/index.php?showtopic=117195&st=180&#entry1764245]
+
|0x14F ||byte ||
* +0xB8 - [float] - weight
+
* bit 7 = [[Objective|objective state]]
* +0x52 - [1 byte] - immunity (2=explosion)
+
|-
* +0x53 - [1 byte] - immunity (2=bullet, 4=fire, 6=both)
+
|0x14E ||byte ||
* +0x5C - [1 byte] - model ID
+
* bit 2 = [[0291|heed threats]]
* +0x6C - [2 bytes] - last collision time
+
* bit 6 = firing gun/throwing projectiles
* +0x70 - [float] - X move speed
+
|-
* +0x74 - [float] - Y move speed
+
|0x150 ||byte ||
* +0x78 - [float] - Z move speed
+
* bit 4 = is crouching
* +0x7C - [float] - X turn speed
+
|-
* +0x80 - [float] - Y turn speed
+
|0x151 ||byte ||
* +0x84 - [float] - Z turn speed
+
* bit 2 = can't be dragged out
* +0xE6 - [1 byte] - is player on ground
+
|-
* +0x141 - [1 byte] - fast shoot
+
|0x156 ||byte ||
* +0x14C - [1 byte] - shooting anim
+
* bit 0 = [[0521|is drowning in water]]
* +0x14D - [1 byte] - jumping anim
+
|-
* +0x150 - [1 byte] - crouching
+
|0x1F4 ||byte ||sub animation
* +0x1F4 - [1 byte] - sub animation
+
|-
* +0x244 - [byte] - player current status [http://www.gtaforums.com/index.php?showtopic=117195&view=findpost&p=2761980] [http://www.gtaforums.com/index.php?showtopic=117195&view=findpost&p=2762762], values include:
+
|0x18C ||dword ||[[011A|threat search]]
** 0x01 - normal on foot
+
|-
** 0x0C - aiming weapon
+
|0x244 ||dword ||player current status [http://www.gtaforums.com/index.php?showtopic=117195&view=findpost&p=2761980] [http://www.gtaforums.com/index.php?showtopic=117195&view=findpost&p=2762762], values include:
** 0x10 - attacking
+
* 0x01 = normal on foot
** 0x11 - being melee'd
+
* 0x07 = walking
** 0x18 - walking to enter vehicle
+
* 0x0C = first person aiming
** 0x1F - weak dodge
+
* 0x10 = running punching/attack with any weapons
** 0x24 - holding cellphone ([[052B]])
+
* 0x11 = standing punching/standing getting punched
** 0x29 - jumping
+
* 0x13 = [[0447|lifting phone]]
** 0x2A - fallen down
+
* 0x16 = autoaim
** 0x2B - standing back up
+
* 0x18 = running to enter vehicle
** 0x2D - dive sideways
+
* 0x1F = weak dodge
** 0x32 - sitting in vehicle
+
* 0x24 = [[052B|answering mobile]]
** 0x36, 0x37 - wasted
+
* 0x29 = jumping
** 0x38 - jacking vehicle
+
* 0x2A = lying onto ground/being knocked to lying on ground
** 0x3A - entering vehicle
+
* 0x2B = getting back up from lying on ground
** 0x3C - exiting vehicle
+
* 0x2D = dodge car
** 0x3E - busted
+
* 0x32 = sitting in vehicle
* +0x24C - [1 byte] - walking
+
* 0x36 = death before wasted screen
* +0x354 - [float] - health
+
* 0x37 = wasted screen
* +0x358 - [float] - armor
+
* 0x38 = jacking car by pulling someone out/hitting someone out
* +0x378 - [float] - rotation (related to north)
+
* 0x39 = getting jacked by being pulled out
* +0x3A8 - [pointer] - last controlled vehicle
+
* 0x3A = entering vehicle
* +0x3A4 - [1 byte] - target objective
+
* 0x3C = exiting vehicle
* +0x3AC - [1 byte] - is in vehicle (0=on foot,1=in car)
+
* 0x3E = busted
* +0x408 - [24 bytes] - current [[#Weapon block|weapon blocks]], blocks ordered by weapon slot
+
|-
* +0x504 - [1 byte] - current weapon slot
+
|0x24C ||byte ||
* +0x598 - [1 byte] - last damage ([[031D]])
+
* 0 = exiting car
* +0x518 - [1 byte] - melee anim 1
+
* 1 = standing still
* +0x520 - [1 byte] - melee anim 2
+
* 2 = entering/in car/initial running
* +0x52C - [float] - upper torso rotation
+
* 4 = running
* +0x5F4 - [pointer] - wanted level pointer
+
* 5 = sprinting
** +0x0 - [4 bytes] - wanted counter
+
|-
*** above 50 - 1 star
+
|0x354 ||float ||health
*** above 180 - 2 stars
+
|-
*** above 550 - 3 stars
+
|0x358 ||float ||armor
*** above 1200 - 4 stars
+
|-
*** above 2400 - 5 stars
+
|0x378 ||float ||rotation (related to north)
*** above 4600 - 6 stars
+
|-
** +0x1E - ignore status (0=normal, 1=cops, 2=everyone)
+
|0x3A8 ||[[#CVehicle|CVehicle]] pointer ||last controlled vehicle/vehicle about to be entered
** +0x20 - [1 byte] - HUD active wanted level
+
|-
* +0x600 - [float] - stamina {{ref|1}}
+
|0x3A4 ||byte ||target objective
* +0x60C - [1 byte] - current weapon slot again?
+
|-
* +0x608 - [float] - sprint distance {{ref|1}}
+
|0x3AC ||byte ||is in any vehicle
* +0x638 - [1 byte] - drunk visuals ([[052C]])
+
|-
 +
|0x3D4 ||dword ||[[ped type]]
 +
|-
 +
|0x408 ||[[#CWeapon|CWeapon]][10] ||current weapon blocks, blocks ordered by weapon slot
 +
|-
 +
|0x4F8 ||dword ||previous weapon number to remember, e.g. when using cellphone, entered a car
 +
* 45 = no need to remember
 +
|-
 +
|0x504 ||byte ||active weapon slot
 +
|-
 +
|0x506 ||byte ||weapon accuracy
 +
|-
 +
|0x508 ||[[#CPed|CPed]] pointer ||targeted ped
 +
|-
 +
|0x518 ||byte ||melee anim 1
 +
|-
 +
|0x520 ||byte ||melee anim 2
 +
|-
 +
|0x52C ||float ||upper torso rotation
 +
|-
 +
|0x56C ||pointer[10] ||Nearest peds
 +
|-
 +
|0x598 ||byte ||[[031D|last damaged weapon]]
 +
|-
 +
|0x59C ||pointer ||character last damaged by
 +
|-
 +
|0x5F4 ||[[#CWanted|CWanted]] pointer ||wanted level pointer
 +
|-
 +
|0x59C ||pointer ||damaged by character
 +
|-
 +
|0x600 ||float ||stamina {{ref|1}}
 +
|-
 +
|0x604 ||float ||max stamina, initialised 150.0, +0x608 controls its increase
 +
|-
 +
|0x608 ||float ||stamina duration; when reaches 500.0, resets to 0.0 and increases max stamina by 10.0
 +
|-
 +
|0x60C ||byte ||current weapon slot again?
 +
|-
 +
|0x638 ||byte ||[[052C|drunkenness]]
 +
|-
 +
|0x639 ||byte ||drunkenness countdown toggle
 +
|-
 +
|0x63D ||byte ||can be damaged
 +
|}
  
===Weapon block===
+
== CVehicle ==
* +0x0 - [4 bytes] - weapon number
+
{|class="wikitable" style="max-width: 48em;"
* +0x4 - [4 bytes] - status (0=normal, 1=firing in 1st person/using flamethrower, 2=reloading, 3=no more ammo)
+
!Address ||Name ||Type ||Description
* +0x8 - [4 bytes] - current clip
+
|-
* +0xC - [4 bytes] - current ammo
+
|00A10B3A ||bAllTaxisHaveNitro ||byte ||[[0572|taxi boost jump]]
 +
|}
 +
 
 +
Offsets continue from [[#CPhysical|CPhysical]], which is the parent class. The CVehicle class is 0x2A0 bytes in size including CPhysical and CEntity.
  
==Vehicle block==
 
 
0x7E49C0 - [pointer] - Player's car pointer (player pointer when not in car)
 
0x7E49C0 - [pointer] - Player's car pointer (player pointer when not in car)
* +0x04 - [float] - X roll
+
{|class="wikitable" style="max-width: 48em;"
* +0x08 - [float] - Y roll
+
!Offset ||Type ||style="width: 100%;" |Description
* +0x0C - [float] - Z roll
+
|-
* +0x14 - [float] - X direction
+
|0x50 ||byte ||Engine State (whether the engine is running or stalled):
* +0x18 - [float] - Y direction
+
* 90 = ?
* +0x1C - [float] - Z direction
+
* 34 = stalled
* +0x24 - [float] - Last X position
+
* 26 = ?
* +0x28 - [float] - Last Y position
+
* 2 = running
* +0x2C - [float] - Last Z position
+
|-
* +0x34 - [float] - x coordinate
+
|0x156 ||byte ||driver behavior
* +0x38 - [float] - y coordinate
+
* 0x0F = ram
* +0x3C - [float] - z coordinate
+
* 0x11 = block
* +0x5C - [4 bytes] - IDE model
+
|-
* +0x6C - [4 bytes] - last collision time
+
|0x160 ||byte ||[[00AD|cruise speed]]
* +0x70 - [float] - x push
+
|-
* +0x74 - [float] - y push
+
|0x19C ||pointer ||target pointer to ram or block
* +0x78 - [float] - z push
+
|-
* +0x7C - [float] - X turn speed
+
|0x1A0 ||byte ||primary color ([[carcols.dat]])
* +0x80 - [float] - Y turn speed
+
|-
* +0x84 - [float] - Z turn speed
+
|0x1A1 ||byte ||secondary color
* +0xB8 - [float] - weight
+
|-
* +0xE4 - [4 bytes] - object on ground (?)
+
|0x1A2 ||byte ||car [http://www.gtaforums.com/index.php?showtopic=107998&view=findpost&p=1059651247 variation] slot 1
* +0x156 - [1 byte] - driver behavior
+
|-
* +0x160 - [1 byte] - speed
+
|0x1A3 ||byte ||car [http://www.gtaforums.com/index.php?showtopic=107998&view=findpost&p=1059651247 variation] slot 2 (note: read backwards in default.ide)
* +0x1A0 - [1 byte] - primary color ([[carcols.dat]])
+
|-
* +0x1A1 - [1 byte] - secondary color
+
|0x1A4 ||dword ||alarm duration, time in milliseconds
* +0x1A2 - [1 byte] - car [http://www.gtaforums.com/index.php?showtopic=107998&view=findpost&p=1059651247 variation]
+
|-
* +0x1A4 - [4 bytes] - alarm duration, time in milliseconds
+
|0x1A8 ||pointer ||driver pointer
* +0x1A8 - [pointer] - driver pointer
+
|-
* +0x1AC - [pointer] - passenger 0 pointer
+
|0x1AC ||pointer[8] ||passenger pointers
* +0x1B0 - [pointer] - passenger 1 pointer
+
|-
* +0x1B4 - [pointer] - passenger 2 pointer
+
|0x1CC ||byte ||[[01E9|current number of passengers]]
* +0x1CC - [1 byte] - current number of passengers ([[01E9]])
+
|-
* +0x1CD - [1 byte] - num getting in
+
|0x1CD ||byte ||num getting in
* +0x1CE - [1 byte] - getting in flags
+
|-
* +0x1CF - [1 byte] - getting out flags
+
|0x1CE ||byte ||getting in flags
* +0x1D0 - [1 byte] - maximum number of passengers ([[01EA]])
+
|-
* +0x1E8 - [float] - steer angle 1
+
|0x1CF ||byte ||getting out flags
* +0x1EC - [float] - steer angle 2 (negative = wheels right; positive = wheels left)
+
|-
* +0x1F0 - [float] - accelerator pedal
+
|0x1D0 ||byte ||[[01EA|maximum number of passengers]]
* +0x1F4 - [float] - brake pedal
+
|-
* +0x204 - [float] - health
+
|0x1E8 ||float ||steer angle 1
* +0x230 - [1 byte] - lock status ([[020A]])
+
|-
* +0x23C - [1 byte] - current [[List of radio stations (VC)|radio station]]
+
|0x1EC ||float ||steer angle 2 (negative = wheels right; positive = wheels left)
* +0x240 - [1 byte] - horn status
+
|-
* +0x245 - [1 byte] - siren status (0=off,1=on)
+
|0x1F0 ||float ||accelerator pedal
* +0x29C - [1 byte] - vehicle type (0=car,1=boat,5=bike)
+
|-
* +0x2A5 - [1 byte] - left front tire status (0=normal, 1=popped, 2=none)
+
|0x1F4 ||float ||brake pedal
* +0x2A6 - [1 byte] - left rear & middle tire
+
|-
* +0x2A7 - [1 byte] - right front tire
+
|0x1FB ||byte ||
* +0x2A8 - [1 byte] - right rear & middle tire
+
* bit 1 = [[03C9#For Vice City|is car visibly damaged]]
* +0x2A9 - [1 byte] - Bonnet [http://www.gtaforums.com/index.php?showtopic=502919 Values]
+
|-
* +0x2AA - [1 byte] - Trunk (diggi)
+
|0x1FD ||byte ||
* +0x2AB - [1 byte] - left front door status (0=freeze door, 2=unfreeze door)
+
* bit 0 = is submerged in water
* +0x2AC - [1 byte] - right front door
+
|-
* +0x2AD - [1 byte] - left rear door
+
|0x1FE ||byte ||(& 7) [[0228#Bomb types|car bomb state]]
* +0x2AE - [1 byte] - right rear door
+
|-
* +0x32C - [1 byte] - bike front tire status
+
|0x201 ||byte ||[[02C8|power pills carried]] (unused)
* +0x32D - [1 byte] - bike rear tire status
+
|-
* +0x474 - [float] - bike pitch lean
+
|0x204 ||float ||health
* +0x484 - [float] - left front suspension height
+
|-
* +0x488 - [float] - left rear suspension height
+
|0x210 ||pointer ||player pointer after car is armed with car bomb
* +0x48C - [float] - right front suspension height
+
|-
* +0x490 - [float] - right rear suspension height
+
|0x230 ||dword ||[[020A|lock status]]
* +0x4E8 - [1 byte] - bike burnout
+
|-
* +0x501 - [1 byte] - special vehicle properties
+
|0x23C ||byte ||current [[List of radio stations (VC)|radio station]]
** 0b0000000'''1''' - taxi light ([[0216]])
+
|-
** 0b000000'''1'''0 - not sprayable ([[0294]])
+
|0x240 ||byte ||horn status
** 0b00000'''1'''00 - ?
+
|-
** 0b0000'''1'''000 - [[039C]]
+
|0x245 ||byte ||is car siren on
** 0b000'''1'''0000 - flip not burn ([[03ED]])
+
|-
** 0b00'''1'''00000 - tank contact explosion ([[0493]])
+
|0x29C ||dword ||vehicle type
** 0b0'''1'''000000 - ?
+
*0 = general
** 0b'''1'''0000000 - ?
+
*1 = boat
* +0x5B0 - [DWORD] - Rhino & Fire truck Cannon angle
+
*2 = train (unused)
* +0x5BB - [DWORD] - BF-Inject Rotation angle
+
*3 = NPC police helicopter
* +0x5CC - [1 byte] - car burnout
+
*4 = NPC plane
 +
*5 = bike
 +
|}
 +
 
 +
== CAutomobile ==
 +
{|class="wikitable" style="max-width: 48em;"
 +
!Address ||Name ||Type ||Description
 +
|-
 +
|00A10ABB ||m_sAllTaxiLights ||byte ||[[021F|all taxi lights]] (unused)
 +
|}
 +
 
 +
Offsets continue from [[#CVehicle|CVehicle]], which is the parent class. The CAutomobile class is 0x5DC bytes in size including CPhysical, CEntity, and CVehicle.
 +
 
 +
{|class="wikitable" style="max-width: 48em;"
 +
!Offset ||Type ||style="width: 100%;" |Description
 +
|-
 +
|0x2A4 ||byte ||engine state
 +
*0 = normal
 +
*100/200 = unique to BF Injection
 +
*225 = burning ready to explode
 +
|-
 +
|0x2A5 ||byte ||left front wheel state
 +
*0 = normal
 +
*1 = popped
 +
*2 = none
 +
|-
 +
|0x2A6 ||byte ||left rear & middle wheel state
 +
|-
 +
|0x2A7 ||byte ||right front wheel state
 +
|-
 +
|0x2A8 ||byte ||right rear & middle wheel state
 +
|-
 +
|0x2A9 ||byte ||bonnet damage/physical state
 +
*0 = normal/closed
 +
*1 = damaged
 +
*2 = damaged swinging/just swinging
 +
*3 = detached/[[Handling.cfg#Flag Data|no doors]]
 +
|-
 +
|0x2AA ||byte ||boot damage/physical state
 +
|-
 +
|0x2AB ||byte ||left front door damage/physical state
 +
|-
 +
|0x2AC ||byte ||right front door damage/physical state
 +
|-
 +
|0x2AD ||byte ||left rear door damage/physical state
 +
|-
 +
|0x2AE ||byte ||right rear door damage/physical state
 +
|-
 +
|0x2B0 ||byte ||light status
 +
*bit 0/1 = front left lights
 +
*bit 2/3 = front right lights
 +
*bit 4/5 = rear left lights
 +
*bit 6/7 = rear right lights
 +
|-
 +
|0x2B4 ||byte ||front side panels damage state
 +
|-
 +
|0x2B5 ||byte ||rear side panels damage state
 +
|-
 +
|0x2B6 ||byte ||front panels damage state
 +
|-
 +
|0x2B7 ||byte ||rear panels damage state
 +
|-
 +
|0x32C ||byte ||bike front tire status
 +
|-
 +
|0x32D ||byte ||bike rear tire status
 +
|-
 +
|0x474 ||float ||bike pitch lean
 +
|-
 +
|0x484 ||float ||left front suspension height
 +
|-
 +
|0x488 ||float ||left rear suspension height
 +
|-
 +
|0x48C ||float ||right front suspension height
 +
|-
 +
|0x490 ||float ||right rear suspension height
 +
|-
 +
|0x4E8 ||byte ||bike burnout
 +
|-
 +
|0x501 ||byte ||special vehicle properties
 +
* bit 0 = [[0216|taxi light]]
 +
* bit 1 = [[0294|not sprayable]]
 +
* bit 3 = [[039C|watertight]]
 +
* bit 4 = [[03ED|upside down car not damaged]]
 +
* bit 5 = [[044F|bit more resistant to physical damage]]
 +
* bit 6 = [[0493|tank detonate cars]]
 +
|-
 +
|0x5B0 ||dword ||Rhino & Fire truck Cannon angle
 +
|-
 +
|0x5BB ||dword ||BF-Inject Rotation angle
 +
|-
 +
|0x5C5 ||byte ||[[015E#For Vice City|number of wheels on ground]]
 +
|-
 +
|0x5CC ||byte ||car burnout
 +
|}
 +
 
 +
== CPlane ==
 +
Offsets continue from [[#CVehicle|CVehicle]], which is the parent class. The CPlane class is 0x2B4 bytes in size including CPhysical, CEntity, and CVehicle.
 +
 
 +
{|class="wikitable" style="max-width: 48em;"
 +
!Offset ||Type ||style="width: 100%;" |Description
 +
|-
 +
|0x2A0 ||word ||i-th plane (e.g. 0-2 for three Aeroplanes)
 +
|-
 +
|0x2B1 ||byte ||is drug run Dodo (unused)
 +
|-
 +
|0x2B2 ||byte ||is drop off Dodo (unused)
 +
|}
 +
 
 +
== CMatrix ==
 +
The CMatrix class is 0x040 bytes in size.
 +
 
 +
{|class="wikitable" style="max-width: 48em;"
 +
!Offset ||Type ||style="width: 100%;" |Description
 +
|-
 +
|0x000 ||[[#CVector|CVector]] ||right
 +
|-
 +
|0x010 ||[[#CVector|CVector]] ||up
 +
|-
 +
|0x020 ||[[#CVector|CVector]] ||at
 +
|-
 +
|0x030 ||[[#CVector|CVector]] ||position
 +
|}
 +
 
 +
== CVector ==
 +
The CVector class is 0x00C bytes in size.
 +
 
 +
{|class="wikitable" style="max-width: 48em;"
 +
!Offset ||Type ||style="width: 100%;" |Description
 +
|-
 +
|0x000 ||float ||x-direction
 +
|-
 +
|0x004 ||float ||y-direction
 +
|-
 +
|0x008 ||float ||z-direction
 +
|}
  
==Entity Block==
+
== CWeapon ==
* +0x04 - [float] - X roll
+
The CWeapon class is 0x018 bytes in size.
* +0x08 - [float] - Y roll
+
 
* +0x0C - [float] - Z roll
+
{|class="wikitable" style="max-width: 48em;"
* +0x14 - [float] - X direction
+
!Offset ||Type ||style="width: 100%;" |Description
* +0x18 - [float] - Y direction
+
|-
* +0x1C - [float] - Z direction
+
|0x000 ||dword ||[[weapon]] type
* +0x24 - [float] - Last X position
+
|-
* +0x28 - [float] - Last Y position
+
|0x004 ||dword ||status
* +0x2C - [float] - Last Z position
+
*0 = normal
* +0x34 - [float] - X position
+
*1 = firing in 1st person/using flamethrower
* +0x38 - [float] - Y position
+
*2 = reloading
* +0x3C - [float] - Z position
+
*3 = no more ammo
* +0x5C - [1 byte?] - model id
+
|-
* +0x6C - ? - last collision time
+
|0x008 ||dword ||current clip
* +0x70 - [float?] - X move speed
+
|-
* +0x74 - [float?] - Y move speed
+
|0x00C ||dword ||current ammo
* +0x78 - [float?] - Z move speed
+
|}
* +0x7C - [float?] - X turn speed
+
 
* +0x80 - [float?] - Y turn speed
+
== CWanted ==
* +0x84 - [float?] - Z turn speed
+
{|class="wikitable" style="max-width: 48em;"
* +0x88 - [float?] - X movement acceleration change
+
!Offset ||Type ||style="width: 100%;" |Description
* +0x8C - [float?] - Y movement acceleration change
+
|-
* +0x90 - [float?] - Z movement acceleration change
+
|0x000 ||dword ||[[Wanted level|chaos level]]
* +0x94 - [float?] - X turning acceleration change
+
|-
* +0x98 - [float?] - Y turning acceleration change
+
|0x01E ||byte ||activity
* +0x9C - [float?] - Z turning acceleration change
+
*bit 0 = [[01F7|cops ignore player]]
* +0xA0 - [float?] - X movement acceleration
+
*bit 1 = everyone ignore player
* +0xA4 - [float?] - Y movement acceleration
+
*bit 2 = [[02BC|swat required]]
* +0xA8 - [float?] - Z movement acceleration
+
*bit 3 = fbi required
* +0xAC - [float?] - X turning acceleration
+
*bit 4 = army required
* +0xB0 - [float?] - Y turning acceleration
+
|-
* +0xB4 - [float?] - Z turning acceleration
+
|0x020 ||dword ||HUD active wanted level
* +0xB8 - ? - mass
+
|}
* +0xE6 - ? - object on ground
+
 
* +0x23C - ? - type
+
== CClock ==
 +
{|class="wikitable sortable" style="max-width: 48em;"
 +
!Address ||Name ||Type ||Description
 +
|-
 +
|00A10A3C ||ms_nGameClockSeconds ||word ||game clock seconds
 +
|-
 +
|00A10A5E ||ms_Stored_nGameClockSeconds ||word ||stored game clock seconds
 +
|-
 +
|00A10B33 ||ms_Stored_nGameClockHours ||byte ||[[0253|stored game clock hours]]
 +
|-
 +
|00A10B3C ||bClockHasBeenStored ||byte ||[[0253|clock has been stored]]
 +
|-
 +
|00A10B5D ||ms_Stored_nGameClockMinutes ||byte ||[[0253|stored game clock minutes]]
 +
|-
 +
|00A10B6B ||ms_nGameClockHours ||byte ||[[00C0|game clock hours]]
 +
|-
 +
|00A10B92 ||ms_nGameClockMinutes ||byte ||[[00C0|game clock minutes]]
 +
|}
 +
 
 +
== CGame ==
 +
{|class="wikitable sortable" style="max-width: 48em;"
 +
!Address ||Name ||Type ||Description
 +
|-
 +
|0068DD68 ||nastyGame ||byte ||[[0351|is nasty game]]
 +
|-
 +
|00978810 ||currArea ||dword ||[[04BB|current area (interior)]]
 +
|-
 +
|00A0D9AC ||currLevel ||dword ||[[ZONE#Vice City|current level (island)]]
 +
|}
 +
 
 +
== CPopulation ==
 +
{|class="wikitable" style="max-width: 48em;"
 +
!Address ||Name ||Type ||Description
 +
|-
 +
|00A10AB3 ||ms_bGivePedsWeapons ||byte ||weapons for all cheat switch
 +
|}
 +
 
 +
== CMenuManager ==
 +
{|class="wikitable" style="max-width: 48em;"
 +
!Address ||Name ||Type ||Description
 +
|-
 +
|00869680 ||m_PrefsLanguage ||dword ||current language preference
 +
|}
 +
 
 +
== CTrafficLights ==
 +
{|class="wikitable" style="max-width: 48em;"
 +
!Address ||Name ||Type ||Description
 +
|-
 +
|00A10ADC ||bGreenLightsCheat ||byte ||traffic lights cheat switch
 +
|}
 +
 
 +
== CShinyTexts ==
 +
{|class="wikitable" style="max-width: 48em;"
 +
!Address ||Name ||Type ||Description
 +
|-
 +
|00978618 ||NumShinyTexts ||dword ||number of shiny texts (unused)
 +
|}
 +
 
 +
The CShinyTexts class is 0x58 bytes in size.
 +
 
 +
{|class="wikitable" style="max-width: 48em;"
 +
!Offset ||Type ||style="width: 100%;" |Description
 +
<!--
 +
0x00
 +
0x0C
 +
0x18
 +
0x24
 +
0x30
 +
0x34
 +
0x38
 +
0x3C
 +
0x40
 +
0x44
 +
0x48
 +
0x4C
 +
-->
 +
|-
 +
|0x50 ||float ||distance
 +
|-
 +
|0x54 ||byte ||type
 +
|-
 +
|0x55 ||byte ||red
 +
|-
 +
|0x56 ||byte ||green
 +
|-
 +
|0x57 ||byte ||blue
 +
|}
 +
 
 +
== CRecordDataForChase ==
 +
{|class="wikitable" style="max-width: 48em;"
 +
!Address ||Name ||Type ||Description
 +
|-
 +
|00A10B98 ||Status ||byte ||status of [[Chase.dat|chase scene]] (unused)
 +
|}
 +
 
 +
== CMBlur ==
 +
{|class="wikitable" style="max-width: 48em;"
 +
!Address ||Name ||Type ||Description
 +
|-
 +
|00697D54 ||BlurOn ||byte ||[[Trails in Vice City|trails preference]]
 +
|}
 +
 
 +
==CPickup==
 +
0x945D30 - [struct] '''CPickupVC''' [http://www.gtaforums.com/index.php?showtopic=117195&view=findpost&p=1060452931 GTAForums post]
 +
*0x00 - [CVector] - ''vecPos''
 +
<pre style="color: green">position of the pickup</pre>
 +
*0x0C - [FLOAT] - ''fStandProximity''
 +
<pre style="color: green">how close the player is standing to the pickup?</pre>
 +
*0x10 - [POINTER] - '''CObjectVC* [[Memory_Addresses_(VC)#Entity_Block|pObject]]<nowiki/>'''
 +
<pre style="color: green">entity associated with the pickup</pre>
 +
*0x14 - [POINTER] - '''CObjectVC* pExtraObject'''
 +
<pre style="color: green">extra entity (for minigun for example)</pre>
 +
*0x18 - [DWORD] - ''dwPickupQuantity''
 +
<pre style="color: green">used for weapons and money</pre>
 +
*0x1C - [DWORD] - ''dwTimer''
 +
<pre style="color: green">either the time it was created or when it should disappear</pre>
 +
*0x20 - [WORD] - ''wMoneyGenerationRate''
 +
<pre style="color: green">how quickly this pickup generates money</pre>
 +
*0x22 - [WORD] - ''wModelId''
 +
<pre style="color: green">model ID of the pickup</pre>
 +
*0x24 - [WORD] - ''wUniqueId''
 +
<pre style="color: green">unique identifier of this pickup</pre>
 +
*0x26 - [char] - ''szPickupTextKey[8]''
 +
<pre style="color: green">key of the text that is shown when on this pickup</pre>
 +
*0x2E - [BYTE] - ''bytePickupType''
 +
<pre style="color: green">shows if pickup slot is in use and its type</pre>
 +
*0x2F - [BYTE] - ''byteRemoved''
 +
<pre style="color: green">pickup has been removed</pre>
 +
*0x30 - [BYTE] - ''byteEffects''
 +
<pre style="color: green">which kind of visual effects this pickup has (values 0/1)</pre>
 +
*0x31 - '''padding - 3 B''' ''alignment''
 +
 
 +
 
 +
== CObject ==
 +
a Parent Class sized 0x1A0 (416 Bytes) and includes CEntity and CPhysical classes.
 +
0x945D40 - [POINTER] - '''CObject[] - 416 B''' ''object'' [http://www.gtaforums.com/index.php?showtopic=117195&view=findpost&p=1060452931 GTAForums post]
 +
*[[#CEntity|CEntity]]
 +
*[[#CPhysical|CPhysical]]
 +
* +0x120 - '''CMatrix - 72 B''' ''matDummyInitial''<pre style="color: green">initial matrix, when converted from a dummy object</pre>
 +
* +0x168 - [FLOAT] - ''fAttachForce''<pre style="color: green">how strongly the object is attached to the ground</pre>
 +
* +0x16C - [BYTE] - ''byteObjectType''
 +
** 0 - ''default (unused)''
 +
** 1 - ''map object''
 +
** 2 - ''projectiles, pickups, script objects''
 +
** 3 - ''dead car parts and roadblocks''
 +
** 4 - ''cutscene object''
 +
** 5 - ''spiketraps''
 +
* 0x16D - [BYTE] - ''flags''
 +
** 0b0000000'''1''' - ''bIsPickupObject''
 +
** 0b000000'''1'''0 - ''bDoCircleEffect''
 +
** 0b00000'''1'''00 - ''bRenderPickupQuantity''
 +
** 0b0000'''1'''000 - ''bRenderPickupAvailability''
 +
** 0b000'''1'''0000 - ''bWindowMinorCollisionDamage''
 +
** 0b00'''1'''00000 - ''bHasWindowBeenBrokenByMelee''
 +
** 0b0'''1'''000000 - ''bHasObjectExplosionTriggered''
 +
** 0b'''1'''0000000 - ''bIsVehicleComponent''
 +
* 0x16E - [BYTE] - ''flags''
 +
** 0b0000000'''1''' - ''bSpecialLighting''
 +
** 0b000000'''1'''0 - ''bNoVehicleCollisionWhenDetached''
 +
** +0x16F - [BYTE] - ''bytePickupObjectBonusType''<pre style="color: green">used for bonus and clothes pickups</pre>
 +
** +0x170 - [WORD] - ''wPickupObjectQuantity''<pre style="color: green">used for money pickups</pre>
 +
*0x172 - '''padding - 2 B''' ''alignment''
 +
* 0x174 - [FLOAT] - ''fDamageMultiplier''<pre style="color: green">object damage multiplier - how easily it breaks</pre>
 +
* 0x178 - [BYTE] - ''byteCollisionDamageType''<pre style="color: green">what happens when the object receives damage</pre>
 +
* 0x179 - [BYTE] - ''byteSpecialCollisionType''<pre style="color: green">special collision type for some objects</pre>
 +
* 0x17A - [BYTE] - ''byteCameraAvoids''<pre style="color: green">whether the camera avoids this object</pre>
 +
* 0x17B - [BYTE] - ''byteBounceScore''<pre style="color: green">how many times the player has hit this with his head (beachball)</pre>
 +
* 0x17C - '''padding - 4 B''' ''alignment''
 +
* 0x180 - [DWORD] - ''dwObjectTimer''<pre style="color: green">for some objects this shows when it will disappear (car parts)</pre>
 +
* 0x184 - [WORD] - ''wRefModelId''<pre style="color: green">the ID of the model this object is a part of (car parts)</pre>
 +
*0x186 - '''padding - 2 B''' ''alignment''
 +
*0x188 - [POINTER] - '''CEntity* pInitialSurface'''<pre style="color: green">the surface the object is on when created</pre>
 +
*0x18C - [POINTER] - '''CPhysical* pContactPhysical'''<pre style="color: green">a physical that is currently in contact with this object</pre>
 +
* 0x190 - [BYTE] - ''byteVehicleMainColor''<pre style="color: green">main color for vehicle parts</pre>
 +
* 0x191 - [BYTE] - ''byteVehicleExtraColor''<pre style="color: green">extra color for vehicle parts</pre>
 +
*0x192 - '''padding - 2 B''' ''alignment''
  
 
==Police==
 
==Police==
Line 691: Line 1,081:
 
* 0x5A0316 - [byte] - police boat weapon
 
* 0x5A0316 - [byte] - police boat weapon
 
* 0x5B9675 - [byte] - shooting this vehicle gives a wanted star
 
* 0x5B9675 - [byte] - shooting this vehicle gives a wanted star
 +
* 0x69A608 - [float] - Reaction Force of Rhino Cannon
 
* 0x69A60C - [float] - Cuban flame exhaust scale
 
* 0x69A60C - [float] - Cuban flame exhaust scale
 +
* 0x69A610 - [float] - Rhino Cannon Fire Range
 +
* 0x69A618 - [float] - Radius of FireTrail Rhino cannon Fire, (like smoketrail for Bullets)
 +
* 0x69A61C - [float] - Radius of Smoke near Rhino Cannon
 +
* 0x69A630 - [float] - Radius of Spark on the Mouth of Rhino Cannon
 
* 0x69A710 - [4 bytes] - Cuban flame exhaust Z offset
 
* 0x69A710 - [4 bytes] - Cuban flame exhaust Z offset
 
* 0x69A714 - [4 bytes] - Cuban flame exhaust X offset
 
* 0x69A714 - [4 bytes] - Cuban flame exhaust X offset
Line 697: Line 1,092:
  
 
==Miscellaneous==
 
==Miscellaneous==
* 0x68723B - [byte] - chance of traffic accidents by peds cars
+
* 0x5FA178 - [byte] - Radio station name font style
* 0x68F5F0 - [float] - gravity
+
* 0x68723B - [byte] - Chance of traffic accidents by peds cars
 +
* 0x68F5F0 - [float] - Gravity
 
* 0x68F590 - [float] - Keep force's law valid. Value is always 1 second
 
* 0x68F590 - [float] - Keep force's law valid. Value is always 1 second
* 0x68F62A - [2 bytes] - car behaviour when another car crashes into
+
* 0x68F62A - [2 bytes] - Car behaviour when another car crashes into
* 0x69102E - [byte] - tick rate (like gamespeed, but doesn't affect on SCM script speed execution)
+
* 0x69102E - [byte] - Tick rate (like gamespeed, but doesn't affect on SCM script speed execution)
* 0x69154E - [byte] - vehicle and peds size (bugged size sometimes + not proper collision)
+
* 0x69154E - [byte] - Vehicle and peds size (bugged size sometimes + not proper collision)
* 0x69A61A - [byte] - car friction/surface
+
* 0x695680 - [4 bytes] - Moon size
* 0x69A6A8 - [float] - wheel camber (negative values)
+
* 0x69A61A - [byte] - Car friction/surface
* 0x69B34A - [float] - car door open/close speed
+
* 0x69A6A8 - [float] - Wheel camber (negative values)
* 0x69C780 - [float] - max helicopter height
+
* 0x69B34A - [float] - Car door open/close speed
* 0x7838D1 - [byte] - car gear
+
* 0x69C780 - [float] - Max helicopter height
* 0x7E48BC - [float] - player's up/down angle
+
* 0x7838D1 - [byte] - Car gear
* 0x7E48CC - [float] - player's left/right angle
+
* 0x7D4044 - [float] - Game window height
* 0x869728 - [byte] - active menu {{ref|3}}
+
* 0x7E48BC - [float] - Player's up/down angle
* 0x978810 - [4 bytes] - current interior
+
* 0x7E48CC - [float] - Player's left/right angle
* 0xA0DAC0 - [4 bytes] - current [[CULL|cullzone]]
+
* 0x869728 - [byte] - Active menu {{ref|3}}
* 0xA10B3A - [byte] - Taxi boost
+
* 0x94ADC8 - [4 byte] - Player's money
* 0xA10B6B - [byte] - game hour
+
* 0x94AE68 - [byte] - Infinite sprint
* 0xA10B92 - [byte] - game minute
+
* 0x974C34 - [dword] - Number of activated [[crane]]s
* 0xA10942 - [char(30)] - Buffer of 30 last typed chars, previously typed chars are on next bytes.
+
* 0x978810 - [4 bytes] - Current interior
* 0xA10A44 - [2 bytes] - flash hud ([[03E7]])
+
* 0x97F264 - [float] - [[015D|time scale]]
* 0xA10AB5 - [1 byte] - free respray ([[0335]])
+
* 0x97F850- [float] - Game window width
* 0xA10AB6 - [1 byte] - disable radar (unused)
+
* 0x9B6CE4 - [dword] - [[03EC|number of vehicles collected by military crane]]
* 0xA10ABB - [1 byte] - spawned taxi light status (unused)
+
* 0xA0D1CC - [dword] - Camera current [[CULL|cullzone]]
* 0x78D658 - [float] - the 1st Water Level on the Z-coordinate denoted in Steve-m's water editor as Black Color
+
* 0xA0DAC0 - [dword] - Player current [[CULL|cullzone]]
* 0x78D65C - [float] - the 2nd Water Level on the Z-coordinate denoted in Steve-m's water editor as Red Color
+
* 0xA10942 - char[30] - Buffer of 30 last typed characters, previously typed chars are on next bytes.
 +
* 0xA10A44 - [word] - [[03E7|hud item to flash]]
 +
* 0xA10AB5 - [byte] - [[0335|resprays are free]]
 +
* 0xA10AB6 - [1 byte] - Disable radar (unused)
 +
* 0xA10B32 - [byte] - [[021D|bombs are free]] (unused)
 +
* 0x78D658 - [float] - The 1st Water Level on the Z-coordinate denoted in Steve-m's water editor as Black Color
 +
* 0x78D65C - [float] - The 2nd Water Level on the Z-coordinate denoted in Steve-m's water editor as Red Color
 
* 0x6912DC - [float] - Z coordinate on how deep the player should fall before re-spawning
 
* 0x6912DC - [float] - Z coordinate on how deep the player should fall before re-spawning
 +
 +
== Arrays ==
 +
=== [[0190|Upside down car check]] ===
 +
* Start of array: 0x7D96D8
 +
* Size of each element: 0x8
 +
* Number of elements: 0x6
 +
{|class="wikitable"
 +
!Offset ||Type ||Initialisation ||Description
 +
|-
 +
|0x00 ||dword ||-1 ||vehicle handle
 +
|-
 +
|0x04 ||dword ||0 ||duration upside down
 +
|}
 +
 +
== Constructed arrays ==
 +
These are arrays constructed by the function <code>__construct_array</code> (0x6402D0).
 +
 +
=== Vehicle model info ===
 +
* Start of array: 0x752A8C
 +
* Size of each element: 0x174
 +
* Number of elements: 0x6E
 +
{|class="wikitable"
 +
!Offset ||Type ||Initialisation ||Description
 +
|-
 +
|0x000 ||pointer ||||virtual table
 +
|-
 +
|0x032 ||char[8] ||||[[GXT]] key
 +
|-
 +
|0x03C ||dword ||||type
 +
* 0 = cars
 +
* 1 = boat
 +
* 2 = train
 +
* 3 = heli
 +
* 4 = plane
 +
* 5 = bike
 +
|-
 +
|0x040 ||float ||||wheel scale
 +
|-
 +
|0x044 ||word ||||wheel model index
 +
|-
 +
|0x046 ||byte ||||handling index
 +
|-
 +
|0x049 ||byte ||||class
 +
* 0 = normal
 +
* 1 = poorfamily
 +
* 2 = richfamily
 +
* 3 = executive
 +
* 4 = worker
 +
* 5 = big
 +
* 6 = taxi
 +
* 7 = moped
 +
* 8 = motorbike
 +
* 9 = leisureboat
 +
* 10 = workerboat
 +
* -1 = ignore
 +
|-
 +
|0x04A ||byte ||||level
 +
|-
 +
|0x04C ||word ||||frequency
 +
|-
 +
|0x08C ||dword ||||component rules
 +
|-
 +
|0x144 ||byte[8] ||||primary [[Carcols.dat|colors]]
 +
|-
 +
|0x14C ||byte[8] ||||secondary [[Carcols.dat|colors]]
 +
|-
 +
|0x154 ||byte ||||number of [[Carcols.dat|colors]]
 +
|-
 +
|0x170 ||dword ||||anim file index
 +
|}
 +
 +
#pragma pack(push, 4)
 +
struct CVehicleModelInfo : public CClumpModelInfo
 +
{
 +
    BYTE        m_bLastCarColorId[2];
 +
    char        m_cGameName[10];
 +
    DWORD      m_dwVehicleType;
 +
    float      m_fWheelScale;
 +
    WORD        m_wWheelModelIndex;
 +
    WORD        m_wHandlingId;
 +
    BYTE        m_bNumDoors;
 +
    BYTE        m_bVehicleClass;
 +
    BYTE        m_bLvl;
 +
    BYTE        m_bNumExtras;
 +
    WORD        m_wFrq;
 +
    CVector    m_vDummyPos[5];
 +
    DWORD      m_dwComprules;
 +
    float      m_fBikeSteerAngle;
 +
    RpMaterial *m_pMaterialPrimary[24];
 +
    RpMaterial *m_pMaterialSecondary[20];
 +
    BYTE        m_bPrimaryColorId[8];
 +
    BYTE        m_bSecondaryColorId[8];
 +
    BYTE        m_bNumColorVariations;
 +
    BYTE        m_bLastColorVariation;
 +
    BYTE        m_bCurrentColorId[2];
 +
    RpAtomic  *m_pExtra[6];
 +
    char      *m_pAnimName;
 +
};
 +
#pragma pack(pop)
 +
 +
=== Explosion ===
 +
* Start of array: 0x780C88
 +
* Size of each element: 0x38
 +
* Number of elements: 0x30
 +
{|class="wikitable"
 +
!Offset ||Type ||Initialisation ||Description
 +
|-
 +
|0x00 ||dword ||0 ||type
 +
|-
 +
|0x04 ||float[3] ||0.0, 0.0, 0.0 ||x,y,z position
 +
|-
 +
|0x10 ||float ||1.0 ||radius
 +
|-
 +
|0x14 ||float ||0.0 ||expansion rate
 +
|-
 +
|0x18 ||pointer ||0 ||owner
 +
|-
 +
|0x1C ||pointer ||0 ||victim
 +
|-
 +
|0x20 ||dword ||0 ||time to expire
 +
|-
 +
|0x24 ||byte ||0 ||counter
 +
|-
 +
|0x25 ||byte ||0 ||is counter initialised
 +
|-
 +
|0x26 ||byte ||0 ||no jet effect for vehicle explosion (applicable to types 3, 4, 5)
 +
|-
 +
|0x27 ||byte ||1 ||has sound
 +
|-
 +
|0x28 ||dword ||0 ||game time of vehicle explosion (applicable to types 3, 4, 5, 6, 7)
 +
|-
 +
|0x2C ||dword ||0 ||game time to extend effect of explosion
 +
|-
 +
|0x30 ||float ||0.0 ||force
 +
|-
 +
|0x34 ||float ||0.0 ||ground z for Molotov explosion (applicable to type 1)
 +
|}
 +
 +
=== Projectile info ===
 +
* Start of array: 0x7DB888
 +
* Size of each element: 0x1C
 +
* Number of elements: 0x20
 +
{|class="wikitable"
 +
!Offset ||Type ||Initialisation ||Description
 +
|-
 +
|0x00 ||dword ||12 ||[[Weapon#Vice City|weapon type]]
 +
|-
 +
|0x04 ||dword ||0 ||thrower pointer
 +
|-
 +
|0x08 ||dword ||0 ||game timer to expire projectile
 +
|-
 +
|0x0C ||byte ||0 ||does projectile exist
 +
|-
 +
|0x0D ||byte[3] ||0 ||''align''
 +
|-
 +
|0x10 ||float[3] ||0.0, 0.0, 0.0 ||x,y,z coordinates
 +
|}
 +
 +
=== [[Text#Intro text|Intro text]] ===
 +
* Start of array: 0x7F0EA0
 +
* Size of each element: 0xF4
 +
* Number of elements: 0x30
 +
{|class="wikitable"
 +
!Offset ||Type ||Initialisation ||Description
 +
|-
 +
|0x00 ||float[2] ||0.48, 1.12 ||[[033F|x,y scale]]
 +
|-
 +
|0x08 ||byte[4] ||225, 225, 225, 255 ||[[0340|RGBA color]]
 +
|-
 +
|0x0C ||byte ||0 ||[[0341|justify]]
 +
|-
 +
|0x0D ||byte ||0 ||[[0342|center]]
 +
|-
 +
|0x0E ||byte ||0 ||[[0345|background]]
 +
|-
 +
|0x0F ||byte ||0 ||[[0347|background only text]]
 +
|-
 +
|0x10 ||float ||182.0 ||[[0343|wrap x]]
 +
|-
 +
|0x14 ||float ||640.0 ||[[0344|center size]]
 +
|-
 +
|0x18 ||byte[4] ||128, 128, 128, 128 ||[[0346|RGBA background color]]
 +
|-
 +
|0x1C ||byte ||1 ||[[0348|proportional]]
 +
|-
 +
|0x1D ||byte ||0 ||[[03E0|draw before fade]]
 +
|-
 +
|0x1E ||byte ||0 ||[[03E4|right justify]]
 +
|-
 +
|0x1F ||byte ||0 ||''align''
 +
|-
 +
|0x20 ||word ||1 ||[[0349|font]]
 +
|-
 +
|0x22 ||word ||0 ||''align''
 +
|-
 +
|0x24 ||float ||0.0, 0.0 ||[[033E|x,y position]]
 +
|-
 +
|0x2C ||wchar_t[100] ||null ||text
 +
|}
 +
 +
=== [[03BC|Script sphere]] ===
 +
* Start of array: 0x811528
 +
* Size of each element: 0x18
 +
* Number of elements: 0x18
 +
{|class="wikitable"
 +
!Offset ||Type ||Initialisation ||Description
 +
|-
 +
|0x00 ||byte ||0 ||visibility
 +
|-
 +
|0x01 ||byte ||0 ||''align''
 +
|-
 +
|0x02 ||word ||256 ||
 +
|-
 +
|0x04 ||dword ||0 ||
 +
|-
 +
|0x08 ||float[3] ||0 ||x,y,z position
 +
|-
 +
|0x14 ||float ||0 ||scale
 +
|}
 +
 +
=== [[058D|Taxi shortcut pick-up point]] ===
 +
* Start of array: 0x812138
 +
* Size of each element: 0xC
 +
* Number of elements: 0x10
 +
{|class="wikitable"
 +
!Offset ||Type ||Initialisation ||Description
 +
|-
 +
|0x00 ||float[3] ||0.0, 0.0, 0.0 ||x,y,z coordinates (its heading is at 0x78BCD8 + n * 4 where n is the index starting from 0)
 +
|}
 +
 +
=== [[016D|Police restart point]] ===
 +
* Start of array: 0x933B00
 +
* Size of each element: 0xC
 +
* Number of elements: 0x8
 +
{|class="wikitable"
 +
!Offset ||Type ||Initialisation ||Description
 +
|-
 +
|0x00 ||float[3] ||0.0, 0.0, 0.0 ||x,y,z coordinates (its heading is at 0x7DD720 + n * 4 where n is the index starting from 0)
 +
|}
 +
 +
=== [[03CC|Stuck car check]] ===
 +
* Start of array: 0x94AFA0
 +
* Size of each element: 0x20
 +
* Number of elements: 0x10
 +
{|class="wikitable"
 +
!Offset ||Type ||Initialisation ||Description
 +
|-
 +
|0x00 ||dword ||-1 ||vehicle handle
 +
|-
 +
|0x04 ||float[3] ||-5000.0, -5000.0, -5000.0 ||x,y,z position update
 +
|-
 +
|0x10 ||dword ||-1 ||game timer update
 +
|-
 +
|0x14 ||float ||0.0 ||distance check
 +
|-
 +
|0x18 ||dword ||0 ||time check
 +
|-
 +
|0x1C ||byte ||0 ||is car stuck
 +
|-
 +
|0x1D ||byte[3] ||0 ||''align''
 +
|}
 +
 +
=== [[016C|Hospital restart point]] ===
 +
* Start of array: 0x94B930
 +
* Size of each element: 0xC
 +
* Number of elements: 0x8
 +
{|class="wikitable"
 +
!Offset ||Type ||Initialisation ||Description
 +
|-
 +
|0x00 ||float[3] ||0.0, 0.0, 0.0 ||x,y,z coordinates (its heading is at 0x7DD740 + n * 4 where n is the index starting from 0)
 +
|}
  
 
==See also==
 
==See also==
Line 735: Line 1,408:
 
:5. {{note|5}} {{GTAF|post|117195|1827223}}
 
:5. {{note|5}} {{GTAF|post|117195|1827223}}
 
:6. {{note|6}} {{GTAF|post|117195|1835819}}
 
:6. {{note|6}} {{GTAF|post|117195|1835819}}
 +
:6. {{note|7}} [https://github.com/ThirteenAG/WidescreenFixesPack/issues/248#issuecomment-319157398  "Radio station name font style" reference]
  
 
==External links==
 
==External links==

Latest revision as of 14:51, 15 February 2023

Cheats

  • 0xA10B87 - [1 byte] - TIMEPASSINGMEBY faster time
  • 0x4ABF4C - [1 byte] - YOUWONTTAKEMEALIVE set wanted level
  • 0x4ABFC4 - [1 byte] - LEAVEMEALONE set wanted level
  • 0x4AC009 - [1 byte] - APLEASANTDAY set weather
  • 0x4AC04E - [1 byte] - ALOVELYDAY set weather
  • 0x4AC099 - [1 byte] - ABITDRIEG set weather
  • 0x4AC0DE - [1 byte] - CATSANDDOGS set weather
  • 0x4AC129 - [1 byte] - CANTSEEATHING set weather
  • 0x4AC14B - [4 bytes] - PANZER Rhino model
  • 0x4AC946 - [4 bytes] - TRAVELINSTYLE Bloodring A model
  • 0x4AC976 - [4 bytes] - THELASTRIDE Romero's Hearse model
  • 0x4AC9A6 - [4 bytes] - ROCKANDROLLCAR Love Fist model
  • 0x4AC9D6 - [4 bytes] - RUBBISHCAR Trashmaster model
  • 0x4ACA06 - [4 bytes] - GETTHEREFAST Sabre Turbo model
  • 0x4ACA36 - [4 bytes] - BETTERTHANWALKING Caddy model
  • 0x4ACDD6 - [4 bytes] - GETTHEREQUICKLY Bloodring B model
  • 0x4ACE06 - [4 bytes] - GETTHEREVERYFASTINDEED Hotring A model
  • 0x4ACE36 - [4 bytes] - GETTHEREAMAZINGLYFAST Hotring B model
  • 0x4AEAEF - [4 bytes] - NUTTERTOOLS Chainsaw model
+0xE for each additional weapon (.357, S.P.A.S. Shotgun, MP, M4, .308 Sniper, Minigun, Minigun component)
  • 0x4AEB77 - [1 byte] - NUTTERTOOLS Chainsaw weapon number (NOTE: Model needs to be loaded first)
+0x12 for each additional weapon (.357, S.P.A.S. Shotgun, MP)
  • 0x4AEBD4 - [1 byte] - NUTTERTOOLS M4 weapon number (NOTE: Model needs to be loaded first)
  • 0x4AEBE6 - [1 byte] - NUTTERTOOLS .308 Sniper weapon number (NOTE: Model needs to be loaded first)
  • 0x4AEBFB - [1 byte] - NUTTERTOOLS Minigun weapon number (NOTE: Model needs to be loaded first)
  • 0x4AEC8F - [4 bytes] - PROFESSIONALTOOLS Katana model
+0xE for each additional weapon (Grenade, Detonator Grenade, .357, Stubby Shotgun, Mac, M4, .308 Sniper, Rocket Launcher)
  • 0x4AED17 - [1 byte] - PROFESSIONALTOOLS Katana weapon number (NOTE: Model needs to be loaded first)
+0x12 for each additional weapon (Detonator Grenade, .357, Stubby Shotgun, Mac)
  • 0x4AED74 - [1 byte] - PROFESSIONALTOOLS M4 weapon number (NOTE: Model needs to be loaded first)
  • 0x4AED86 - [1 byte] - PROFESSIONALTOOLS .308 Sniper weapon number (NOTE: Model needs to be loaded first)
  • 0x4AED98 - [1 byte] - PROFESSIONALTOOLS Rocket Launcher weapon number (NOTE: Model needs to be loaded first)
  • 0x4AEE1F - [4 bytes] - THUGSTOOLS Brass Knuckles model
+0xE for each additional weapon (Bat, Molotov Cocktail, Pistol, Chrome Shotgun, Tec 9, Kruger, Sniper Rifle, Flame Thrower)
  • 0x4AEEA7 - [1 byte] - THUGSTOOLS Brass Knuckles weapon number (NOTE: Model needs to be loaded first)
+0x12 for each additional weapon (Bat, Molotov Cocktail, Pistol, Chrome Shotgun)
  • 0x4AEF04 - [1 byte] - THUGSTOOLS Tec 9 weapon number (NOTE: Model needs to be loaded first)
  • 0x4AEF16 - [1 byte] - THUGSTOOLS Kruger weapon number (NOTE: Model needs to be loaded first)
  • 0x4AEF28 - [1 byte] - THUGSTOOLS Sniper Rifle weapon number (NOTE: Model needs to be loaded first)
  • 0x4AEF38 - [1 byte] - THUGSTOOLS Flame Thrower weapon number (NOTE: Model needs to be loaded first)
  • 0x68E058 - [float] - DEEPFRIEDMARSBARS/PROGRAMMER Tommy's body width
  • 0x68F1F0 - [float] - ONSPEED set game speed
  • 0x68F1F4 - [float] - ONSPEED game speed multiplier
  • 0x68F1F8 - [float] - BOOOOOORING set game speed
  • 0x68F1FC - [float] - BOOOOOORING game speed multiplier
  • 0x68F204 - [string] - LOOKLIKELANCE Lance model
  • 0x68F20C - [string] - IWANTBIGTITS Candy model
  • 0x68F214 - [string] - MYSONISALAWYER Ken model
  • 0x68F21C - [string] - ILOOKLIKEHILARY Hilary model
  • 0x68F224 - [string] - ROCKANDROLLMAN Jezz model
  • 0x68F22C - [string] - ONEARMEDBANDIT Phil model
  • 0x68F234 - [string] - IDONTHAVETHEMONEYSONNY Sonny model
  • 0x68F240 - [string] - FOXYLITTLETHING Mercedes model
  • 0x68F248 - [string] - WELOVEOURDICK Dick model
  • 0x68F250 - [string] - CHEATSHAVEBEENCRACKED Diaz model
  • 0x97F2C4 - [1 byte] - CHASESTAT cheat switch
  • 0xA10AB3 - [1 byte] - OURGODGIVENRIGHTTOBEARARMS cheat switch
  • 0xA10ADC - [1 byte] - GREENLIGHT cheat switch
  • 0xA10B0F - [1 byte] - GRIPISEVERYTHING cheat switch
  • 0xA10B11 - [1 byte] - AIRSHIP cheat switch
  • 0xA10B23 - [1 byte] - CERTAINDEATH cheat switch
  • 0xA10B26 - [1 byte] - AHAIRDRESSERSCAR cheat switch
  • 0xA10B28 - [1 byte] - COMEFLYWITHME cheat switch
  • 0xA10B2E - [1 byte] - Cheat is used flag
  • 0xA10B30 - [1 byte] - WHEELSAREALLINEED cheat switch
  • 0xA10B47 - [1 byte] - MIAMITRAFFIC cheat switch
  • 0xA10B5F - [1 byte] - FANNYMAGNET cheat switch
  • 0xA10B81 - [1 byte] - SEAWAYS cheat switch
  • 0xA10B82 - [1 byte] - IWANTITPAINTEDBLACK cheat switch
  • 0xA10B87 - [1 byte] - LIFEISPASSINGMEBY cheat
  • 0x6D85E4 - [string] - THUGSTOOLS cheat input
  • 0x6D85F0 - [string] - PROFESSIONALTOOLS cheat input
  • 0x6D8604 - [string] - NUTTERTOOLS cheat input
  • 0x6D8610 - [string] - PRECIOUSPROTECTION cheat input
  • 0x6D8624 - [string] - ASPIRINE cheat input
  • 0x686FD0 - [string] - YOUWONTTAKEMEALIVE cheat input
  • 0x686FE4 - [string] - LEAVEMEALONE cheat input
  • 0x686FF4 - [string] - APLEASANTDAY cheat input
  • 0x687004 - [string] - ALOVELYDAY cheat input
  • 0x687010 - [string] - ABITDRIEG cheat input
  • 0x68701C - [string] - CATSANDDOGS cheat input
  • 0x688580 - [string] - CANTSEEATHING cheat input
  • 0x688590 - [string] - PANZER cheat input
  • 0x688598 - [string] - LIFEISPASSINGMEBY cheat input
  • 0x6885AC - [string] - BIGBANG cheat input
  • 0x6885B4 - [string] - STILLLIKEDRESSINGUP cheat input
  • 0x6885C8 - [string] - FIGHTFIGHTFIGHT cheat input
  • 0x6885D8 - [string] - NOBODYLIKESME cheat input
  • 0x68F160 - [string] - CERTAINDEATH cheat input
  • 0x68F170 - [string] - DEEPFRIEDMRSBARS cheat input
  • 0X68F184 - [string] - PROGRAMMER cheat input
  • 0x695128 - [string] - OURGODGIVENRIGHTTOBEARARMS cheat input
  • 0x695144 - [string] - ONSPEED cheat input
  • 0x69514C - [string] - BOOOOOORING cheat input
  • 0x695158 - [string] - WHEELSAREALLINEED cheat input
  • 0x69516C - [string] - COMEFLYWITHME cheat input
  • 0x69517C - [string] - GRIPISEVERYTHING cheat input
  • 0x695070 - [string] - CHASESTAT cheat input
  • 0x6DC408 - [string] - WELOVEOURDICK cheat input
  • 0x6DC418 - [string] - SEAWAYS cheat input

Taxi

  • 0x456046 - [4 bytes] - Opcode 02DE check if player is in a Taxi
+0x8 for each additional taxis (Cabbie, Zebra Cab, Kaufman Cabs)
  • 0x5B8AB6 - [1 byte] - Cash when entering a taxi (set to 12 by default)
  • 0xA10B7F - [1 byte] - Kaufman Cabs' radio flag

Restart mission taxi:

  • 0x42AEAC - [4 bytes] - Kaufman Cabs spawn (NOTE: Model needs to be loaded through 0x42AFB3 and set to spawn through 0x94EEB8)
  • 0x42AFB3 - [4 bytes] - Kaufman Cabs model load
  • 0x42AFD6 - [6 bytes] - NOP to have Tommy be able to carjack the taxi instead of entering it as passenger
  • 0x42B219 - [1 byte] - Blue fade in color
+0x2 - [1 byte] - Green fade in color
+0x2 - [1 byte] - Red fade in color
  • 0x42B24E - [4 bytes] - TAXI text duration
  • 0x687574 - [string] - TAXI text
  • 0x94DD94 - [float] - X-coord taxi destination (updated by opcode 058E)
+0x4 - [float] - Y-coord taxi destination
+0x4 - [float] - Z-coord taxi destination
  • 0x94EEB8 - [1 byte] - Set taxi to spawn
  • 0xA0D378 - [float] - Angle taxi destination
  • 0xA10B6D - [1 byte] - Activate mission restart taxi

Display

  • 0x46B389 - [byte] - camera move when entering/exiting car
    • 0x46B58F - [byte] - same [5]
  • 0x68AE2E - [2 bytes] - camera distance from player (set only lower, higher bugs the camera)
  • 0x68AEE0 - [float] - cinema top border height
  • 0x68AEE4 - [float] - cinema bottom border height
  • 0x68FD02 - [byte] - controls radar map [6]
  • 0x68FD16 - [byte] - radar width
  • 0x68FD17 - [byte] - only radar ring visible [6]
  • 0x68FD28 - [float] - Radar Size (XY)
  • 0x68FD2C - [Float] - Radar X Position
  • 0x68FD34 - [Float] - Radar Y Position
  • 0x68FD38 - [Float] - Radar Shape
  • 0x68FD3C - [Float] - Radar Shape
  • 0x698A8C - [float] - ambient lighting
  • 0x7E46B8 - [float] - camera X position
  • 0x7E46BC - [float] - camera Y position
  • 0x7E46C0 - [float] - camera Z position
  • 0x7E46F5 - [byte] - wide screen borders
  • 0x7E4764 - [byte] - car camera
  • 0x7E47EC - [byte] - player camera
  • 0x869655 - [byte] - frame limiter
  • 0x869650 - [byte] - subtitles
  • 0x869652 - [byte] - widescreen
  • 0x86963A - [byte] - hud display
  • 0xA10AF6 - [byte] - replay display on/off
  • 0xA10B68 - [byte] - white scanlines
  • 0xA10B69 - [byte] - green scanlines
  • 0xA0FD04 - [DWORD] - resolution Width
  • 0xA0FD08 - [DWORD] - resolution height
  • 0xA0FD00 - [DWORD] - Color bit.

Mp3 player

0xA108B0
Number of mp3s found [dword].
0xA10B50
Mp3 station playing [byte].
0x9753E0
Pointer to first mp3 file block [dword].
0x97881C
Index of mp3 playing [dword].
0x978550
Pointer to HDIG Driver (mss) [dword].
0x978668
Current stream (mss) [dword].
0x94C104
Total length of all mp3s (in milliseconds) [dword].

Loading screen

0xA0CE94
Progress [float].
0x68E6FC
Progress step [float].
0x68E70C
Bar width [float].
0x68E710
Bar height [float].
0x68E708
Distance from bottom [float].
0x68E704
Distance from left [float].
0x4A6C33
Moving Loading Bar Color (red) [Byte]
0x4A6C2E
Moving Loading Bar Color (Green) [Byte]
0x4A6C29
Moving Loading Bar Color (Blue) [Byte]
0x4A6C24
Moving Loading Bar transparency (A) [Byte]
0x4A6B80
Bar Color (red) [Byte]
0x4A6B7E
Bar Color (Green) [Byte]
0x4A6B7C
Bar Color (Blue) [Byte]
0x4A6B77
transparency (A) [Byte]

Mouse

  • 0x936910 - [float] - Mouse X movement
  • 0x936914 - [float] - Mouse Y movement
  • 0x936908 - [Byte] - Left Mouse Button (LMB)
  • 0x936909 - [Byte] - Right Mouse Button (RMB)
  • 0x93690A - [Byte] - Middle Mouse Button (MMB)
  • 0x93690B - [Byte] - Mouse Wheel Up
  • 0x93690C - [Byte] - Mouse Wheel Down

Menu

0x703997
Selected menu index [byte]. GTAForums post
  • 00 - Stats
  • 01 - Start Game
  • 03 - Audio Setup
  • 04 - Display
  • 05 - Language
  • 06 - Map
  • 07 - InGame/ Starts New Game
  • 08 - Load Game
  • 09 - Delete Game
  • 10 - "All unsaved progress..." Load Game
  • 11 - "Proceed wit deleting..." Delete Game
  • 12 - Goes to 01 - Start Game
  • 13 - "Deleting Saved game. Please Wait..." then goes to 14
  • 14 - "Delete Successful. Select OK to continue" "Ok" Delete Game
  • 15 - Save Game List
  • 16 - "Are you sure you want to save this game?"
  • 17 - "Saving current game. Please wait...." Then goes to 18
  • 18 - "Save Successful. Select OK to continue." "OK"
  • 19 - "Ok" Saved Game, this is just a blank screen with no text
  • 20 - "Warning! One or more cheats..." Cheat warning
  • 21 - Player Skin Setup
  • 26 - Controller Setup
  • 27 - Options
  • 29 - Main Menu
  • 30 - RedeFine Controls
  • 31 - Mouse Settings
  • 32 - Resume
  • 33 - "Greetings From Vice City" Then ends game
  • 34 - "Greetings From Vice City" Then ends game
  • 35+ - Blank Screen
0x704851
Arrow in map "you are here" [byte].
0x783F12
Save game directory [String].
0x97509C
Save Game DIR [String].
0x936908
Mouse button pressed [byte].
0x869660
Selected menu item id [byte].
0x869728
Current menu id [byte].
0x869730
Last saving slot used (0 to 7) [byte].
0x68D5D4
Stats menu scroll speed [float].
0x68D12C
Stats menu line spacing [float].
0x68BF58
Menu backgroung Texture name[string]
0x68BF68
menu logo Texture name[string]
0x68BF7C
Mouse Texture name[string]
0x869694
Mouse X Position [float].
0x869698
Mouse Y Position [float].
0x86965A
Music Volume [Byte].
0x86968A
MP3 boost [Byte].
0x869659
SFX Volume [Byte].

Stats

Main page: List of statistics (VC)
  • 0x4CC102 - [4 bytes] - Total number of stores to knock off (default is 15)
  • 0x4CC1CD - [4 bytes] - Total number of assassination contracts to complete (default 5)

Controller

  • 00869630 - FrontEndMenuManager ( CMenuManager )
    • +0x0A - [Byte] - m_bHudMode
    • +0x18 - [4 bytes] - m_PrefsBrightness
    • +0x20 - [Byte] - m_bSubtitles
    • +0x22 - [Byte] - m_bWidescreen
    • +0x25 - [Byte] - m_bFrameLimiter
    • +0x38 - [Byte] - m_bMenuVisible
    • +0x39 - [Byte] - m_bDemoQuit
    • +0x3C - [Byte] - m_bExtraSplash
    • +0x4C - [4 bytes] - m_nGameLanguage
    • +0x5B - [Byte] - Controller state ( Standrad = 0, Classic = 1)
    • +0x6C - [Byte] - m_bGameStarted
    • +0x84 m_apMenuSprites[26] (CSprite2d)
    • +0xF8 - [4 bytes] - m_nCurrentPage

Garages

  • 0x7D74B8 - el swanko casa (1 car garage)
  • 0x7D74E0 - el swanko casa
  • 0x7D7508 - el swanko casa
  • 0x7D7530 - el swanko casa
  • 0x7D7558 - hyman condo left (4 car garage)
  • 0x7D7580 - hyman condo left
  • 0x7D75A8 - hyman condo left
  • 0x7D75D0 - hyman condo left
  • 0x7D75F8 - hyman condo middle (2 car garage)
  • 0x7D7620 - hyman condo middle
  • 0x7D7648 - hyman condo middle
  • 0x7D7670 - hyman condo middle
  • 0x7D7698 - hyman condo right (2 car garage)
  • 0x7D76C0 - hyman condo right
  • 0x7D76E8 - hyman condo right
  • 0x7D7710 - hyman condo right
  • 0x7D7738 - ocean heights (1 car garage)
  • 0x7D7760 - ocean heights
  • 0x7D7788 - ocean heights
  • 0x7D77B0 - ocean heights
  • 0x7D77D8 - links view apartment (1 car garage)
  • 0x7D7800 - links view apartment
  • 0x7D7828 - links view apartment
  • 0x7D7850 - links view apartment
  • 0x7D7878 - sunshine autos far right (2 car garage)
  • 0x7D78A0 - sunshine autos far right
  • 0x7D78C8 - sunshine autos far right
  • 0x7D78F0 - sunshine autos far right
  • 0x7D7918 - sunshine autos mid right (2 car garage)
  • 0x7D7940 - sunshine autos mid right
  • 0x7D7968 - sunshine autos mid right
  • 0x7D7990 - sunshine autos mid right
  • 0x7D79B8 - sunshine autos mid left (2 car garage)
  • 0x7D79E0 - sunshine autos mid left
  • 0x7D7A08 - sunshine autos mid left
  • 0x7D7A30 - sunshine autos mid left
  • 0x7D7A58 - sunshine autos far left (2 car garage)
  • 0x7D7A80 - sunshine autos far left
  • 0x7D7AA8 - sunshine autos far left
  • 0x7D7AD0 - sunshine autos far left
  • 0x7D7AF8 - vercetti estate (2 car garage)
  • 0x7D7B20 - vercetti estate
  • 0x7D7B48 - vercetti estate
  • 0x7D7B70 - vercetti estate
    • +0x0 - [4 bytes] - car IDE model
    • +0x4 - [float] - x position
    • +0x8 - [float] - y position
    • +0xC - [float] - z position
    • +0x10 - [float] - vector angle x
    • +0x14 - [float] - vector angle y
    • +0x18 - [float] - vector angle z
    • +0x1C - [4 bytes] - immunities
    • +0x20 - [1 byte] - primary color
    • +0x21 - [1 byte] - secondary color
    • +0x22 - [1 byte] - radio station
    • +0x23 - [1 byte] - variation 1
    • +0x24 - [1 byte] - variation 2
    • +0x25 - [1 byte] - bomb type (3=remote,2=engine ignition,1=timed,0=none)

CBrightLight

RwV3D cornerAA;
RwV3D cornerAB;
RwV3D cornerBA;
RwV3D cornerBB;
float fDistanceToCamera;
RwRGBA color;

CEntity

The CEntity class is 0x064 bytes in size.

Offset Type Description
0x000 pointer pointer to virtual method table
0x004 CMatrix matrix
0x044 pointer RwObject
0x048 pointer RpAtomic
0x04C pointer RpClump
0x050 byte
  • (& 7) 1 = building
  • (& 7) 2 = vehicle
  • (& 7) 3 = ped
  • (& 7) 4 = object
  • (& 7) 5 = dummy
  • (>> 3) 0 = STATUS_PLAYER
  • (>> 3) 1 = STATUS_PLAYER_PLAYBACKFROMBUFFER
  • (>> 3) 2 = STATUS_SIMPLE
  • (>> 3) 3 = STATUS_PHYSICS
  • (>> 3) 4 = STATUS_ABANDONED
  • (>> 3) 5 = STATUS_WRECKED
  • (>> 3) 6 = STATUS_TRAIN_MOVING
  • (>> 3) 7 = STATUS_TRAIN_NOT_MOVING
  • (>> 3) 8 = STATUS_HELI
  • (>> 3) 9 = STATUS_PLANE
  • (>> 3) 10 = STATUS_PLAYER_REMOTE
  • (>> 3) 11 = STATUS_PLAYER_DISABLED
0x051 byte
  • bit 0 = is solid
0x052 byte
0x053 byte
  • bit 1 = bullet proof
  • bit 2 = fire proof
  • bit 3 = collision proof
  • bit 4 = melee proof
  • bit 5 = only damaged by player
0x058 word scan code
0x05A word random number
0x05C word model index
0x05E byte building's level/island number
0x05F byte object interior number

CPhysical

Offsets continue from CEntity, which is the parent class. The CPhysical class is 0x120 bytes in size including CEntity.

Offset Type Description
0x064 dword audio entity (allows sounds to play)
0x06C dword last collision time
0x070 CVector movement speed
0x07C CVector turn speed
0x088 CVector movement force
0x094 CVector turn force
0x0B8 float mass
0x0BC float turn resistance
0x0C0 float acceleration resistance, initialised to 1.0
0x0E6 byte number of objects it is colliding
0x100 float speed
0x104 float collision power (also damages vehicles)
0x11A byte
0x11C byte current collision value
0x11D byte origin level

CPed

Offsets continue from CPhysical, which is the parent class. The CPed class is 0x6D8 bytes in size including CPhysical and CEntity.

0x94AD28 - [pointer] - Player pointer (Note that Player is an instance of CPed Class)

Offset Type Description
0x141 byte fast shoot
0x14C byte shooting anim
0x14D byte
0x14F byte
0x14E byte
  • bit 2 = heed threats
  • bit 6 = firing gun/throwing projectiles
0x150 byte
  • bit 4 = is crouching
0x151 byte
  • bit 2 = can't be dragged out
0x156 byte
0x1F4 byte sub animation
0x18C dword threat search
0x244 dword player current status [1] [2], values include:
  • 0x01 = normal on foot
  • 0x07 = walking
  • 0x0C = first person aiming
  • 0x10 = running punching/attack with any weapons
  • 0x11 = standing punching/standing getting punched
  • 0x13 = lifting phone
  • 0x16 = autoaim
  • 0x18 = running to enter vehicle
  • 0x1F = weak dodge
  • 0x24 = answering mobile
  • 0x29 = jumping
  • 0x2A = lying onto ground/being knocked to lying on ground
  • 0x2B = getting back up from lying on ground
  • 0x2D = dodge car
  • 0x32 = sitting in vehicle
  • 0x36 = death before wasted screen
  • 0x37 = wasted screen
  • 0x38 = jacking car by pulling someone out/hitting someone out
  • 0x39 = getting jacked by being pulled out
  • 0x3A = entering vehicle
  • 0x3C = exiting vehicle
  • 0x3E = busted
0x24C byte
  • 0 = exiting car
  • 1 = standing still
  • 2 = entering/in car/initial running
  • 4 = running
  • 5 = sprinting
0x354 float health
0x358 float armor
0x378 float rotation (related to north)
0x3A8 CVehicle pointer last controlled vehicle/vehicle about to be entered
0x3A4 byte target objective
0x3AC byte is in any vehicle
0x3D4 dword ped type
0x408 CWeapon[10] current weapon blocks, blocks ordered by weapon slot
0x4F8 dword previous weapon number to remember, e.g. when using cellphone, entered a car
  • 45 = no need to remember
0x504 byte active weapon slot
0x506 byte weapon accuracy
0x508 CPed pointer targeted ped
0x518 byte melee anim 1
0x520 byte melee anim 2
0x52C float upper torso rotation
0x56C pointer[10] Nearest peds
0x598 byte last damaged weapon
0x59C pointer character last damaged by
0x5F4 CWanted pointer wanted level pointer
0x59C pointer damaged by character
0x600 float stamina [1]
0x604 float max stamina, initialised 150.0, +0x608 controls its increase
0x608 float stamina duration; when reaches 500.0, resets to 0.0 and increases max stamina by 10.0
0x60C byte current weapon slot again?
0x638 byte drunkenness
0x639 byte drunkenness countdown toggle
0x63D byte can be damaged

CVehicle

Address Name Type Description
00A10B3A bAllTaxisHaveNitro byte taxi boost jump

Offsets continue from CPhysical, which is the parent class. The CVehicle class is 0x2A0 bytes in size including CPhysical and CEntity.

0x7E49C0 - [pointer] - Player's car pointer (player pointer when not in car)

Offset Type Description
0x50 byte Engine State (whether the engine is running or stalled):
  • 90 = ?
  • 34 = stalled
  • 26 = ?
  • 2 = running
0x156 byte driver behavior
  • 0x0F = ram
  • 0x11 = block
0x160 byte cruise speed
0x19C pointer target pointer to ram or block
0x1A0 byte primary color (carcols.dat)
0x1A1 byte secondary color
0x1A2 byte car variation slot 1
0x1A3 byte car variation slot 2 (note: read backwards in default.ide)
0x1A4 dword alarm duration, time in milliseconds
0x1A8 pointer driver pointer
0x1AC pointer[8] passenger pointers
0x1CC byte current number of passengers
0x1CD byte num getting in
0x1CE byte getting in flags
0x1CF byte getting out flags
0x1D0 byte maximum number of passengers
0x1E8 float steer angle 1
0x1EC float steer angle 2 (negative = wheels right; positive = wheels left)
0x1F0 float accelerator pedal
0x1F4 float brake pedal
0x1FB byte
0x1FD byte
  • bit 0 = is submerged in water
0x1FE byte (& 7) car bomb state
0x201 byte power pills carried (unused)
0x204 float health
0x210 pointer player pointer after car is armed with car bomb
0x230 dword lock status
0x23C byte current radio station
0x240 byte horn status
0x245 byte is car siren on
0x29C dword vehicle type
  • 0 = general
  • 1 = boat
  • 2 = train (unused)
  • 3 = NPC police helicopter
  • 4 = NPC plane
  • 5 = bike

CAutomobile

Address Name Type Description
00A10ABB m_sAllTaxiLights byte all taxi lights (unused)

Offsets continue from CVehicle, which is the parent class. The CAutomobile class is 0x5DC bytes in size including CPhysical, CEntity, and CVehicle.

Offset Type Description
0x2A4 byte engine state
  • 0 = normal
  • 100/200 = unique to BF Injection
  • 225 = burning ready to explode
0x2A5 byte left front wheel state
  • 0 = normal
  • 1 = popped
  • 2 = none
0x2A6 byte left rear & middle wheel state
0x2A7 byte right front wheel state
0x2A8 byte right rear & middle wheel state
0x2A9 byte bonnet damage/physical state
  • 0 = normal/closed
  • 1 = damaged
  • 2 = damaged swinging/just swinging
  • 3 = detached/no doors
0x2AA byte boot damage/physical state
0x2AB byte left front door damage/physical state
0x2AC byte right front door damage/physical state
0x2AD byte left rear door damage/physical state
0x2AE byte right rear door damage/physical state
0x2B0 byte light status
  • bit 0/1 = front left lights
  • bit 2/3 = front right lights
  • bit 4/5 = rear left lights
  • bit 6/7 = rear right lights
0x2B4 byte front side panels damage state
0x2B5 byte rear side panels damage state
0x2B6 byte front panels damage state
0x2B7 byte rear panels damage state
0x32C byte bike front tire status
0x32D byte bike rear tire status
0x474 float bike pitch lean
0x484 float left front suspension height
0x488 float left rear suspension height
0x48C float right front suspension height
0x490 float right rear suspension height
0x4E8 byte bike burnout
0x501 byte special vehicle properties
0x5B0 dword Rhino & Fire truck Cannon angle
0x5BB dword BF-Inject Rotation angle
0x5C5 byte number of wheels on ground
0x5CC byte car burnout

CPlane

Offsets continue from CVehicle, which is the parent class. The CPlane class is 0x2B4 bytes in size including CPhysical, CEntity, and CVehicle.

Offset Type Description
0x2A0 word i-th plane (e.g. 0-2 for three Aeroplanes)
0x2B1 byte is drug run Dodo (unused)
0x2B2 byte is drop off Dodo (unused)

CMatrix

The CMatrix class is 0x040 bytes in size.

Offset Type Description
0x000 CVector right
0x010 CVector up
0x020 CVector at
0x030 CVector position

CVector

The CVector class is 0x00C bytes in size.

Offset Type Description
0x000 float x-direction
0x004 float y-direction
0x008 float z-direction

CWeapon

The CWeapon class is 0x018 bytes in size.

Offset Type Description
0x000 dword weapon type
0x004 dword status
  • 0 = normal
  • 1 = firing in 1st person/using flamethrower
  • 2 = reloading
  • 3 = no more ammo
0x008 dword current clip
0x00C dword current ammo

CWanted

Offset Type Description
0x000 dword chaos level
0x01E byte activity
0x020 dword HUD active wanted level

CClock

Address Name Type Description
00A10A3C ms_nGameClockSeconds word game clock seconds
00A10A5E ms_Stored_nGameClockSeconds word stored game clock seconds
00A10B33 ms_Stored_nGameClockHours byte stored game clock hours
00A10B3C bClockHasBeenStored byte clock has been stored
00A10B5D ms_Stored_nGameClockMinutes byte stored game clock minutes
00A10B6B ms_nGameClockHours byte game clock hours
00A10B92 ms_nGameClockMinutes byte game clock minutes

CGame

Address Name Type Description
0068DD68 nastyGame byte is nasty game
00978810 currArea dword current area (interior)
00A0D9AC currLevel dword current level (island)

CPopulation

Address Name Type Description
00A10AB3 ms_bGivePedsWeapons byte weapons for all cheat switch

CMenuManager

Address Name Type Description
00869680 m_PrefsLanguage dword current language preference

CTrafficLights

Address Name Type Description
00A10ADC bGreenLightsCheat byte traffic lights cheat switch

CShinyTexts

Address Name Type Description
00978618 NumShinyTexts dword number of shiny texts (unused)

The CShinyTexts class is 0x58 bytes in size.

Offset Type Description
0x50 float distance
0x54 byte type
0x55 byte red
0x56 byte green
0x57 byte blue

CRecordDataForChase

Address Name Type Description
00A10B98 Status byte status of chase scene (unused)

CMBlur

Address Name Type Description
00697D54 BlurOn byte trails preference

CPickup

0x945D30 - [struct] CPickupVC GTAForums post

  • 0x00 - [CVector] - vecPos
position of the pickup
  • 0x0C - [FLOAT] - fStandProximity
how close the player is standing to the pickup?
  • 0x10 - [POINTER] - CObjectVC* pObject
entity associated with the pickup
  • 0x14 - [POINTER] - CObjectVC* pExtraObject
extra entity (for minigun for example)
  • 0x18 - [DWORD] - dwPickupQuantity
used for weapons and money
  • 0x1C - [DWORD] - dwTimer
either the time it was created or when it should disappear
  • 0x20 - [WORD] - wMoneyGenerationRate
how quickly this pickup generates money
  • 0x22 - [WORD] - wModelId
model ID of the pickup
  • 0x24 - [WORD] - wUniqueId
unique identifier of this pickup
  • 0x26 - [char] - szPickupTextKey[8]
key of the text that is shown when on this pickup
  • 0x2E - [BYTE] - bytePickupType
shows if pickup slot is in use and its type
  • 0x2F - [BYTE] - byteRemoved
pickup has been removed
  • 0x30 - [BYTE] - byteEffects
which kind of visual effects this pickup has (values 0/1)
  • 0x31 - padding - 3 B alignment


CObject

a Parent Class sized 0x1A0 (416 Bytes) and includes CEntity and CPhysical classes. 0x945D40 - [POINTER] - CObject[] - 416 B object GTAForums post

  • CEntity
  • CPhysical
  • +0x120 - CMatrix - 72 B matDummyInitial
    initial matrix, when converted from a dummy object
  • +0x168 - [FLOAT] - fAttachForce
    how strongly the object is attached to the ground
  • +0x16C - [BYTE] - byteObjectType
    • 0 - default (unused)
    • 1 - map object
    • 2 - projectiles, pickups, script objects
    • 3 - dead car parts and roadblocks
    • 4 - cutscene object
    • 5 - spiketraps
  • 0x16D - [BYTE] - flags
    • 0b00000001 - bIsPickupObject
    • 0b00000010 - bDoCircleEffect
    • 0b00000100 - bRenderPickupQuantity
    • 0b00001000 - bRenderPickupAvailability
    • 0b00010000 - bWindowMinorCollisionDamage
    • 0b00100000 - bHasWindowBeenBrokenByMelee
    • 0b01000000 - bHasObjectExplosionTriggered
    • 0b10000000 - bIsVehicleComponent
  • 0x16E - [BYTE] - flags
    • 0b00000001 - bSpecialLighting
    • 0b00000010 - bNoVehicleCollisionWhenDetached
    • +0x16F - [BYTE] - bytePickupObjectBonusType
      used for bonus and clothes pickups
    • +0x170 - [WORD] - wPickupObjectQuantity
      used for money pickups
  • 0x172 - padding - 2 B alignment
  • 0x174 - [FLOAT] - fDamageMultiplier
    object damage multiplier - how easily it breaks
  • 0x178 - [BYTE] - byteCollisionDamageType
    what happens when the object receives damage
  • 0x179 - [BYTE] - byteSpecialCollisionType
    special collision type for some objects
  • 0x17A - [BYTE] - byteCameraAvoids
    whether the camera avoids this object
  • 0x17B - [BYTE] - byteBounceScore
    how many times the player has hit this with his head (beachball)
  • 0x17C - padding - 4 B alignment
  • 0x180 - [DWORD] - dwObjectTimer
    for some objects this shows when it will disappear (car parts)
  • 0x184 - [WORD] - wRefModelId
    the ID of the model this object is a part of (car parts)
  • 0x186 - padding - 2 B alignment
  • 0x188 - [POINTER] - CEntity* pInitialSurface
    the surface the object is on when created
  • 0x18C - [POINTER] - CPhysical* pContactPhysical
    a physical that is currently in contact with this object
  • 0x190 - [BYTE] - byteVehicleMainColor
    main color for vehicle parts
  • 0x191 - [BYTE] - byteVehicleExtraColor
    extra color for vehicle parts
  • 0x192 - padding - 2 B alignment

Police

  • 0xA10ADB - [byte] - Police helicopter state
  • 0x69A633 - [byte] - size of Police EM lights

Police cars, that are chasing the player (models must be loaded first [2]):

  • 0x426A21 - [byte] - first police car
  • 0x426987 - [byte] - second police car
  • 0x42697E - [byte] - Enforcer
  • 0x4268B8 - [byte] - Vicechee 1
  • 0x4268D3 - [byte] - Vicechee 2
  • 0x4268EE - [byte] - Vicechee 3
  • 0x426909 - [byte] - Vicechee 4
  • 0x4269BA - [byte] - FBI Rancher
  • 0x426A0A - [byte] - Barracks Ol
  • 0x426A14 - [byte] - Rhino

Police weapons:

  • 0x4ED772 - [byte] - first weapon (Nitestick)
    • 0x4EC21D - [byte]
    • 0x4EC228 - [byte]

Skins (models must be loaded):

  • 0x4ED762 - [byte] - policeman skin
  • 0x4ED76B - [byte] - policeman skin (wanted level)
  • 0x4ED7C3 - [byte] - swat skin
  • 0x4ED812 - [byte] - FBI skin
  • 0x4ED834 - [byte] - army skin

Wanted level needed, to see police cars & peds:

  • 0x4D1E23 - [byte] - Army
  • 0x4D1E43 - [byte] - FBI
  • 0x4D1E63 - [byte] - Swat
  • 0x4E1E83 - [byte] - Vicechee

Cars used for roadblocks (models must be loaded):

  • 0x4436F1 - [byte] - Police
  • 0x4436E5 - [byte] - Swat
  • 0x4436C5 - [byte] - FBI
  • 0x4436A4 - [byte] - Barracks Ol

Car Attributes

  • 0x426640 - [byte] - controls removing cars that are far away [4]
  • 0x427AAC - [4 bytes] - spawns with jingle/siren/horn on
  • 0x591572 - [byte] - Phoenix engine animation (no use on other cars)
  • 0x57157A - [byte] - BF-Inject Rotation
  • 0x597F4A - [byte] - Hunter weapon
  • 0x598302 - [byte] - Seasparrow weapon
  • 0x58BCA8 - [byte] - Cuban exhaust
    • 0x58B958 - [byte] - Cuban exhaust
  • 0x58BCB5 - [byte] - Cuban exhaust on/off
  • 0x5945F1 - [byte] - Rhino cannon
  • 0x5945D5 - [byte] - Fire truck water cannon
  • 0x594611 - [byte] - Voodoo hydraulics
  • 0x59C7E5 - [byte] - Stinger jump in animation
  • 0x5A0316 - [byte] - police boat weapon
  • 0x5B9675 - [byte] - shooting this vehicle gives a wanted star
  • 0x69A608 - [float] - Reaction Force of Rhino Cannon
  • 0x69A60C - [float] - Cuban flame exhaust scale
  • 0x69A610 - [float] - Rhino Cannon Fire Range
  • 0x69A618 - [float] - Radius of FireTrail Rhino cannon Fire, (like smoketrail for Bullets)
  • 0x69A61C - [float] - Radius of Smoke near Rhino Cannon
  • 0x69A630 - [float] - Radius of Spark on the Mouth of Rhino Cannon
  • 0x69A710 - [4 bytes] - Cuban flame exhaust Z offset
  • 0x69A714 - [4 bytes] - Cuban flame exhaust X offset
  • 0x69A71C - [4 bytes] - Cuban flame exhaust Y offset

Miscellaneous

  • 0x5FA178 - [byte] - Radio station name font style
  • 0x68723B - [byte] - Chance of traffic accidents by peds cars
  • 0x68F5F0 - [float] - Gravity
  • 0x68F590 - [float] - Keep force's law valid. Value is always 1 second
  • 0x68F62A - [2 bytes] - Car behaviour when another car crashes into
  • 0x69102E - [byte] - Tick rate (like gamespeed, but doesn't affect on SCM script speed execution)
  • 0x69154E - [byte] - Vehicle and peds size (bugged size sometimes + not proper collision)
  • 0x695680 - [4 bytes] - Moon size
  • 0x69A61A - [byte] - Car friction/surface
  • 0x69A6A8 - [float] - Wheel camber (negative values)
  • 0x69B34A - [float] - Car door open/close speed
  • 0x69C780 - [float] - Max helicopter height
  • 0x7838D1 - [byte] - Car gear
  • 0x7D4044 - [float] - Game window height
  • 0x7E48BC - [float] - Player's up/down angle
  • 0x7E48CC - [float] - Player's left/right angle
  • 0x869728 - [byte] - Active menu [3]
  • 0x94ADC8 - [4 byte] - Player's money
  • 0x94AE68 - [byte] - Infinite sprint
  • 0x974C34 - [dword] - Number of activated cranes
  • 0x978810 - [4 bytes] - Current interior
  • 0x97F264 - [float] - time scale
  • 0x97F850- [float] - Game window width
  • 0x9B6CE4 - [dword] - number of vehicles collected by military crane
  • 0xA0D1CC - [dword] - Camera current cullzone
  • 0xA0DAC0 - [dword] - Player current cullzone
  • 0xA10942 - char[30] - Buffer of 30 last typed characters, previously typed chars are on next bytes.
  • 0xA10A44 - [word] - hud item to flash
  • 0xA10AB5 - [byte] - resprays are free
  • 0xA10AB6 - [1 byte] - Disable radar (unused)
  • 0xA10B32 - [byte] - bombs are free (unused)
  • 0x78D658 - [float] - The 1st Water Level on the Z-coordinate denoted in Steve-m's water editor as Black Color
  • 0x78D65C - [float] - The 2nd Water Level on the Z-coordinate denoted in Steve-m's water editor as Red Color
  • 0x6912DC - [float] - Z coordinate on how deep the player should fall before re-spawning

Arrays

Upside down car check

  • Start of array: 0x7D96D8
  • Size of each element: 0x8
  • Number of elements: 0x6
Offset Type Initialisation Description
0x00 dword -1 vehicle handle
0x04 dword 0 duration upside down

Constructed arrays

These are arrays constructed by the function __construct_array (0x6402D0).

Vehicle model info

  • Start of array: 0x752A8C
  • Size of each element: 0x174
  • Number of elements: 0x6E
Offset Type Initialisation Description
0x000 pointer virtual table
0x032 char[8] GXT key
0x03C dword type
  • 0 = cars
  • 1 = boat
  • 2 = train
  • 3 = heli
  • 4 = plane
  • 5 = bike
0x040 float wheel scale
0x044 word wheel model index
0x046 byte handling index
0x049 byte class
  • 0 = normal
  • 1 = poorfamily
  • 2 = richfamily
  • 3 = executive
  • 4 = worker
  • 5 = big
  • 6 = taxi
  • 7 = moped
  • 8 = motorbike
  • 9 = leisureboat
  • 10 = workerboat
  • -1 = ignore
0x04A byte level
0x04C word frequency
0x08C dword component rules
0x144 byte[8] primary colors
0x14C byte[8] secondary colors
0x154 byte number of colors
0x170 dword anim file index
#pragma pack(push, 4)
struct CVehicleModelInfo : public CClumpModelInfo
{
    BYTE        m_bLastCarColorId[2];
    char        m_cGameName[10];
    DWORD       m_dwVehicleType;
    float       m_fWheelScale;
    WORD        m_wWheelModelIndex;
    WORD        m_wHandlingId;
    BYTE        m_bNumDoors;
    BYTE        m_bVehicleClass;
    BYTE        m_bLvl;
    BYTE        m_bNumExtras;
    WORD        m_wFrq;
    CVector     m_vDummyPos[5];
    DWORD       m_dwComprules;
    float       m_fBikeSteerAngle;
    RpMaterial *m_pMaterialPrimary[24];
    RpMaterial *m_pMaterialSecondary[20];
    BYTE        m_bPrimaryColorId[8];
    BYTE        m_bSecondaryColorId[8];
    BYTE        m_bNumColorVariations;
    BYTE        m_bLastColorVariation;
    BYTE        m_bCurrentColorId[2];
    RpAtomic   *m_pExtra[6];
    char       *m_pAnimName;
};
#pragma pack(pop)

Explosion

  • Start of array: 0x780C88
  • Size of each element: 0x38
  • Number of elements: 0x30
Offset Type Initialisation Description
0x00 dword 0 type
0x04 float[3] 0.0, 0.0, 0.0 x,y,z position
0x10 float 1.0 radius
0x14 float 0.0 expansion rate
0x18 pointer 0 owner
0x1C pointer 0 victim
0x20 dword 0 time to expire
0x24 byte 0 counter
0x25 byte 0 is counter initialised
0x26 byte 0 no jet effect for vehicle explosion (applicable to types 3, 4, 5)
0x27 byte 1 has sound
0x28 dword 0 game time of vehicle explosion (applicable to types 3, 4, 5, 6, 7)
0x2C dword 0 game time to extend effect of explosion
0x30 float 0.0 force
0x34 float 0.0 ground z for Molotov explosion (applicable to type 1)

Projectile info

  • Start of array: 0x7DB888
  • Size of each element: 0x1C
  • Number of elements: 0x20
Offset Type Initialisation Description
0x00 dword 12 weapon type
0x04 dword 0 thrower pointer
0x08 dword 0 game timer to expire projectile
0x0C byte 0 does projectile exist
0x0D byte[3] 0 align
0x10 float[3] 0.0, 0.0, 0.0 x,y,z coordinates

Intro text

  • Start of array: 0x7F0EA0
  • Size of each element: 0xF4
  • Number of elements: 0x30
Offset Type Initialisation Description
0x00 float[2] 0.48, 1.12 x,y scale
0x08 byte[4] 225, 225, 225, 255 RGBA color
0x0C byte 0 justify
0x0D byte 0 center
0x0E byte 0 background
0x0F byte 0 background only text
0x10 float 182.0 wrap x
0x14 float 640.0 center size
0x18 byte[4] 128, 128, 128, 128 RGBA background color
0x1C byte 1 proportional
0x1D byte 0 draw before fade
0x1E byte 0 right justify
0x1F byte 0 align
0x20 word 1 font
0x22 word 0 align
0x24 float 0.0, 0.0 x,y position
0x2C wchar_t[100] null text

Script sphere

  • Start of array: 0x811528
  • Size of each element: 0x18
  • Number of elements: 0x18
Offset Type Initialisation Description
0x00 byte 0 visibility
0x01 byte 0 align
0x02 word 256
0x04 dword 0
0x08 float[3] 0 x,y,z position
0x14 float 0 scale

Taxi shortcut pick-up point

  • Start of array: 0x812138
  • Size of each element: 0xC
  • Number of elements: 0x10
Offset Type Initialisation Description
0x00 float[3] 0.0, 0.0, 0.0 x,y,z coordinates (its heading is at 0x78BCD8 + n * 4 where n is the index starting from 0)

Police restart point

  • Start of array: 0x933B00
  • Size of each element: 0xC
  • Number of elements: 0x8
Offset Type Initialisation Description
0x00 float[3] 0.0, 0.0, 0.0 x,y,z coordinates (its heading is at 0x7DD720 + n * 4 where n is the index starting from 0)

Stuck car check

  • Start of array: 0x94AFA0
  • Size of each element: 0x20
  • Number of elements: 0x10
Offset Type Initialisation Description
0x00 dword -1 vehicle handle
0x04 float[3] -5000.0, -5000.0, -5000.0 x,y,z position update
0x10 dword -1 game timer update
0x14 float 0.0 distance check
0x18 dword 0 time check
0x1C byte 0 is car stuck
0x1D byte[3] 0 align

Hospital restart point

  • Start of array: 0x94B930
  • Size of each element: 0xC
  • Number of elements: 0x8
Offset Type Initialisation Description
0x00 float[3] 0.0, 0.0, 0.0 x,y,z coordinates (its heading is at 0x7DD740 + n * 4 where n is the index starting from 0)

See also

References

1. ^ Post.png Post on GTAForums
2. ^ Post.png Post on GTAForums
3. ^ Post.png Post on GTAForums
4. ^ Post.png Post on GTAForums
5. ^ Post.png Post on GTAForums
6. ^ Post.png Post on GTAForums
6. ^ "Radio station name font style" reference

External links