Posted by s0beit.
Think of this topic as a pastebin for unfinished code or code u gave up on for any reason, i had to make the topic for this thing here:
PHP Code:
typedef struct {
cg_t* CG; //0000
float VelocityModifier; //0004
float Float002; //0008
float ViewHeightModifier; //000C
DWORD Tick; //0010
DWORD Unknown002; //0014
float Float004; //0018
float Float005; //001C
DWORD Unknown003; //0020
float Float006; //0024
float Float007; //0028
float SpreadMod001; //002C
float Float009; //0030
float SpreadMod002; //0034
float SpreadMod003; //0038
float Float012; //003C
float Float013; //0040
float Float014; //0044
float SpreadVariable; //0048
float Float016; //004C
float Float017; //0050
float SpreadMod004; //0054
float SpreadMod005; //0058
float Float020; //005C
float Float021; //0060
float SpreadYawMod; //0064
float SpreadPitchMod; //0068
float Pitch; //006C
float Yaw; //0070
float Roll; //0074
DWORD Unknown004; //007C
DWORD Unknown005; //0080
DWORD Unknown006; //0084
DWORD Unknown007; //0088
DWORD Unknown008; //008C
} RecoilInformation_t;
void GetRecoilInformation( RecoilInformation_t* Recoil, cg_t *CG )
{
_asm mov edi, Recoil;
_asm mov esi, CG;
_asm mov eax, 0x005A2490;
_asm call eax;
}
void SetRecoilInformation( RecoilInformation_t* Recoil, cg_t *CG )
{
_asm mov eax, CG;
_asm mov ecx, Recoil;
_asm mov edx, 0x005A2600;
_asm call edx;
}
.... lol, it did effect some things, but, all around pretty useless (i think), it assembles a buffer from cg_t information, modifies it, then resets it again with the info in the buffer (modified).
PHP Code:
int __cdecl AdjustSpreadByMultipliers(int CG, int pSpreadInfoPtr, int sx, int sy)
{
int pCG; // ecx@1
double v5; // st7@2
double v6; // st7@3
int result; // eax@6
int v8; // ecx@9
float v9; // [sp+4h] [bp+4h]@4
float v10; // [sp+4h] [bp+4h]@5
pCG = CG;
if ( *(_DWORD *)(CG + 0x2D0) == 2 )
{
*(float *)sx = (double)*(signed int *)(CG + 0x2CC);
v5 = (double)*(signed int *)(CG + 0x2CC);
}
else
{
v6 = *(float *)(CG + 0x11C);
if ( *(float *)(CG + 0x11C) <= 40.0 )
{
v10 = (v6 - 11.0) / 29.0;
*(float *)sx = (*(float *)(pSpreadInfoPtr + 0x33C) - *(float *)(pSpreadInfoPtr + 0x340)) * v10
+ *(float *)(pSpreadInfoPtr + 0x340);
v5 = v10 * (*(float *)(pSpreadInfoPtr + 0x348) - *(float *)(pSpreadInfoPtr + 0x34C))
+ *(float *)(pSpreadInfoPtr + 0x34C);
}
else
{
v9 = (v6 - 40.0) / 20.0;
*(float *)sx = (*(float *)(pSpreadInfoPtr + 0x338) - *(float *)(pSpreadInfoPtr + 0x33C)) * v9
+ *(float *)(pSpreadInfoPtr + 0x33C);
v5 = v9 * (*(float *)(pSpreadInfoPtr + 0x344) - *(float *)(pSpreadInfoPtr + 0x348))
+ *(float *)(pSpreadInfoPtr + 0x348);
}
}
result = sy;
*(float *)sy = v5;
if ( *(_DWORD *)(pCG + 0x2D0) == 1 )
*(float *)sy = (double)*(signed int *)(pCG + 0x2CC);
if ( *(_BYTE *)(pCG + 0x428) & 2 )
{
v8 = perk_weapSpreadMultiplier + 0x10;
*(float *)sx = *(float *)sx * *(float *)(perk_weapSpreadMultiplier + 0x10);
*(float *)sy = *(float *)sy * *(float *)v8;
}
return result;
}