Talk:Memory Addresses (SA)

From GTAModding
Jump to: navigation, search

Making something more clear

Under the section "Other Dynamic Memory Addresses (non-static)", there is a sub-section called "This pointer" which refers to the contents of the pointer to a pointer as specified above that sub-section. It's in my opinion that this is unclear and may lead to confusion. I suggest re-formatting the section something like this.

General

  • 0xB6F5F0 - Player pointer (CPed)
  • 0xB7CD98 - Player pointer, direct offset to the ped pool start (CPed)
  • 0xB74498 - CPeds maximum number (normally 140)
  • 0xB74490 - Contains a pointer to a pointer
    • +0 = Contains a pointer to the first element in the pool
    • +4 = Contains a pointer to a byte map indicating which elements are in use
    • +8 = [dword] Is the maximum number of elements in the pool
    • +12 = [dword] Is the current number of elements in the pool


Formatting As Lists

By using description lists, each address can be emboldened on one line with the description indented below it. Using CODE tags for the code makes them stand out better.

When an entry has both code and prose descriptions, the prose one should be coded as a separate description.

Something like this:

0xA49960
Start of SCM block.
0xA49960 + (4 * varnumber) is that particular variable.
0xA49D54
Timer for driving/flying missions.
([dword] in ms)
0xA51974
Timer for boat/bike missions
([dword] in ms)
0xA51A3C
Timer for Bloodring race
0xB6F5F0
Player pointer
(player_ptr)
0xB6F3B8
Car pointer
0xB7CE50
Money
[dword]
0xBAA420
Wanted Level

However, since this article is so huge I don't really feel like doing it. Cerbera 00:12, 4 Jan 2007 (CST)


Code Sample

I've made something handy, but I don't know where to put is, as it is a quite large piece of code:

typedef DWORD _CMATRIX_TYPE; 
typedef _CMATRIX_TYPE CMATRIX_TYPE; // This is temporarily

typedef DWORD _CPED_TYPE;
typedef _CPED_TYPE CPED_TYPE; // This is temporarily

typedef struct _CVEHICLE_TYPE {
   BYTE                _pad1[20];	// 0    ... 19
   CMATRIX_TYPE *      pMatrix;	// 20   ... 23
   BYTE                _pad2[10];	// 24   ... 33
   WORD                wVehicleID;	// 34   ... 35
   BYTE                _pad3[30];	// 36   ... 65
   BYTE                bImmunities;	// 66   ... 66
   BYTE                _pad4[1];	// 67   ... 67
   float               fXSpeed;	// 68   ... 71
   float               fYSpeed;	// 72   ... 75
   float               fZSpeed;	// 76   ... 79
   float               fXSpin;		// 80   ... 83
   float               fYSpin;		// 84   ... 87
   float               fZSpin;		// 88   ... 91
   BYTE                _pad5[48];	// 92   ... 139
   float               fMass;		// 140  ... 143
   float               fTurnMass;	// 144  ... 147
   float               fGripDivider;	// 148  ... 151
   float               fMTGMultiplier;	// 152  ... 155
   BYTE                _pad6[4];	// 156  ... 159
   float               fNGripLevel;	// 160  ... 163
   float               fXCoM;		// 164  ... 167
   float               fYCoM;		// 168  ... 171
   float               fZCoM;		// 172  ... 175
   BYTE                _pad7[888];	// 176  ... 1063
   BYTE                bEngineState;	// 1064 ... 1064
   BYTE                _pad8[11];	// 1065 ... 1075
   BYTE                bBodyColor;	// 1076 ... 1076
   BYTE                bStripeColor;	// 1077 ... 1077
   BYTE                bBodyColor2;	// 1078 ... 1078
   BYTE                bStripeColor2;	// 1079 ... 1079
   DWORD               dwModData[8];	// 1080 ... 1111
   float               fWheelSize;	// 1112 ... 1115
   DWORD               dwAlarmTimeLeft;// 1116 ... 1119
   CPED_TYPE *		pDriver;	// 1120 ... 1123
   CPED_TYPE *		pPassenger[7];	// 1124 ... 1151
   BYTE                _pad9[20];	// 1152 ... 1171
   float               fSteerAngles[2];// 1172 ... 1179
   float               fGasPedal;	// 1180 ... 1183
   float               fBreakPedal;	// 1184 ... 1187
   BYTE                _pad10[28];	// 1188 ... 1215
   float               fHealth;	// 1216 ... 1219

} CVEHICLE_TYPE;

-- [email protected] 09:10, 21 Dec 2006 (CST)