L L4D2node

DrawAxes

0x002818f0 · 1406 bytes · __regparm3

_ZL8DrawAxesRK6VectorPS_i5ColorR12CMeshBuilder

Decompiled

undefined (5 params)

/* DrawAxes(Vector const&, Vector*, int, Color, CMeshBuilder&) */

void __regparm3 DrawAxes(float *param_1,int param_2,uint param_3,uint param_4,int param_5)

{
  float *pfVar1;
  uint uVar2;
  float fVar3;
  float fVar4;
  float fVar5;
  float fVar6;
  int iVar7;
  float *pfVar8;
  float fVar9;
  float fVar10;
  float fVar11;
  
  pfVar8 = (float *)(param_2 + param_3 * 0xc);
  fVar11 = *param_1 + *pfVar8;
  fVar10 = param_1[1] + pfVar8[1];
  fVar9 = param_1[2] + pfVar8[2];
  pfVar8 = *(float **)(param_5 + 0x1ac);
  *pfVar8 = fVar11;
  pfVar8[1] = fVar10;
  pfVar8[2] = fVar9;
  uVar2 = param_4 & 0xff00 | (param_4 & 0xff) << 0x10 | param_4 >> 0x10 & 0xff |
          param_4 & 0xff000000;
  **(uint **)(param_5 + 0x1b4) = uVar2;
  iVar7 = *(int *)(param_5 + 0x1a8) + 1;
  *(int *)(param_5 + 0x1a8) = iVar7;
  if (*(int *)(param_5 + 0x1a4) < iVar7) {
    *(int *)(param_5 + 0x1a4) = iVar7;
  }
  *(int *)(param_5 + 0x1b0) = *(int *)(param_5 + 0x1b0) + *(int *)(param_5 + 0x100);
  pfVar8 = (float *)(*(int *)(param_5 + 0x1ac) + *(int *)(param_5 + 0xf4));
  *(int *)(param_5 + 0x1b4) = *(int *)(param_5 + 0x1b4) + *(int *)(param_5 + 0x104);
  *(float **)(param_5 + 0x1ac) = pfVar8;
  *(int *)(param_5 + 0x1b8) = *(int *)(param_5 + 0x1b8) + *(int *)(param_5 + 0x10c);
  *(int *)(param_5 + 0x1bc) = *(int *)(param_5 + 0x1bc) + *(int *)(param_5 + 0x110);
  *(int *)(param_5 + 0x1c0) = *(int *)(param_5 + 0x1c0) + *(int *)(param_5 + 0x114);
  *(int *)(param_5 + 0x1c4) = *(int *)(param_5 + 0x1c4) + *(int *)(param_5 + 0x118);
  *(int *)(param_5 + 0x1c8) = *(int *)(param_5 + 0x1c8) + *(int *)(param_5 + 0x11c);
  *(int *)(param_5 + 0x1cc) = *(int *)(param_5 + 0x1cc) + *(int *)(param_5 + 0x120);
  *(int *)(param_5 + 0x1d0) = *(int *)(param_5 + 0x1d0) + *(int *)(param_5 + 0x124);
  *(int *)(param_5 + 0x1d4) = *(int *)(param_5 + 0x1d4) + *(int *)(param_5 + 0x128);
  iVar7 = param_3 - 1;
  if ((param_3 & 1) == 0) {
    iVar7 = param_3 + 1;
  }
  fVar3 = param_1[1];
  fVar4 = param_1[2];
  pfVar1 = (float *)(param_2 + iVar7 * 0xc);
  fVar5 = pfVar1[1];
  fVar6 = pfVar1[2];
  *pfVar8 = *param_1 + *pfVar1;
  pfVar8[1] = fVar3 + fVar5;
  pfVar8[2] = fVar4 + fVar6;
  **(uint **)(param_5 + 0x1b4) = uVar2;
  iVar7 = *(int *)(param_5 + 0x1a8) + 1;
  *(int *)(param_5 + 0x1a8) = iVar7;
  if (*(int *)(param_5 + 0x1a4) < iVar7) {
    *(int *)(param_5 + 0x1a4) = iVar7;
  }
  *(int *)(param_5 + 0x1b0) = *(int *)(param_5 + 0x1b0) + *(int *)(param_5 + 0x100);
  pfVar8 = (float *)(*(int *)(param_5 + 0x1ac) + *(int *)(param_5 + 0xf4));
  *(int *)(param_5 + 0x1b4) = *(int *)(param_5 + 0x1b4) + *(int *)(param_5 + 0x104);
  *(float **)(param_5 + 0x1ac) = pfVar8;
  *(int *)(param_5 + 0x1b8) = *(int *)(param_5 + 0x1b8) + *(int *)(param_5 + 0x10c);
  *(int *)(param_5 + 0x1bc) = *(int *)(param_5 + 0x1bc) + *(int *)(param_5 + 0x110);
  *(int *)(param_5 + 0x1c0) = *(int *)(param_5 + 0x1c0) + *(int *)(param_5 + 0x114);
  *(int *)(param_5 + 0x1c4) = *(int *)(param_5 + 0x1c4) + *(int *)(param_5 + 0x118);
  *(int *)(param_5 + 0x1c8) = *(int *)(param_5 + 0x1c8) + *(int *)(param_5 + 0x11c);
  *(int *)(param_5 + 0x1cc) = *(int *)(param_5 + 0x1cc) + *(int *)(param_5 + 0x120);
  *(int *)(param_5 + 0x1d0) = *(int *)(param_5 + 0x1d0) + *(int *)(param_5 + 0x124);
  *(int *)(param_5 + 0x1d4) = *(int *)(param_5 + 0x1d4) + *(int *)(param_5 + 0x128);
  *pfVar8 = fVar11;
  pfVar8[1] = fVar10;
  pfVar8[2] = fVar9;
  **(uint **)(param_5 + 0x1b4) = uVar2;
  iVar7 = *(int *)(param_5 + 0x1a8) + 1;
  *(int *)(param_5 + 0x1a8) = iVar7;
  if (*(int *)(param_5 + 0x1a4) < iVar7) {
    *(int *)(param_5 + 0x1a4) = iVar7;
  }
  *(int *)(param_5 + 0x1b0) = *(int *)(param_5 + 0x1b0) + *(int *)(param_5 + 0x100);
  pfVar8 = (float *)(*(int *)(param_5 + 0x1ac) + *(int *)(param_5 + 0xf4));
  *(int *)(param_5 + 0x1b4) = *(int *)(param_5 + 0x1b4) + *(int *)(param_5 + 0x104);
  *(float **)(param_5 + 0x1ac) = pfVar8;
  *(int *)(param_5 + 0x1b8) = *(int *)(param_5 + 0x1b8) + *(int *)(param_5 + 0x10c);
  *(int *)(param_5 + 0x1bc) = *(int *)(param_5 + 0x1bc) + *(int *)(param_5 + 0x110);
  *(int *)(param_5 + 0x1c0) = *(int *)(param_5 + 0x1c0) + *(int *)(param_5 + 0x114);
  *(int *)(param_5 + 0x1c4) = *(int *)(param_5 + 0x1c4) + *(int *)(param_5 + 0x118);
  *(int *)(param_5 + 0x1c8) = *(int *)(param_5 + 0x1c8) + *(int *)(param_5 + 0x11c);
  *(int *)(param_5 + 0x1cc) = *(int *)(param_5 + 0x1cc) + *(int *)(param_5 + 0x120);
  *(int *)(param_5 + 0x1d0) = *(int *)(param_5 + 0x1d0) + *(int *)(param_5 + 0x124);
  *(int *)(param_5 + 0x1d4) = *(int *)(param_5 + 0x1d4) + *(int *)(param_5 + 0x128);
  iVar7 = param_3 - 2;
  if ((param_3 & 2) == 0) {
    iVar7 = param_3 + 2;
  }
  fVar3 = param_1[1];
  fVar4 = param_1[2];
  pfVar1 = (float *)(param_2 + iVar7 * 0xc);
  fVar5 = pfVar1[1];
  fVar6 = pfVar1[2];
  *pfVar8 = *param_1 + *pfVar1;
  pfVar8[1] = fVar3 + fVar5;
  pfVar8[2] = fVar4 + fVar6;
  **(uint **)(param_5 + 0x1b4) = uVar2;
  iVar7 = *(int *)(param_5 + 0x1a8) + 1;
  *(int *)(param_5 + 0x1a8) = iVar7;
  if (*(int *)(param_5 + 0x1a4) < iVar7) {
    *(int *)(param_5 + 0x1a4) = iVar7;
  }
  *(int *)(param_5 + 0x1b0) = *(int *)(param_5 + 0x1b0) + *(int *)(param_5 + 0x100);
  pfVar8 = (float *)(*(int *)(param_5 + 0x1ac) + *(int *)(param_5 + 0xf4));
  *(int *)(param_5 + 0x1b4) = *(int *)(param_5 + 0x1b4) + *(int *)(param_5 + 0x104);
  *(float **)(param_5 + 0x1ac) = pfVar8;
  *(int *)(param_5 + 0x1b8) = *(int *)(param_5 + 0x1b8) + *(int *)(param_5 + 0x10c);
  *(int *)(param_5 + 0x1bc) = *(int *)(param_5 + 0x1bc) + *(int *)(param_5 + 0x110);
  *(int *)(param_5 + 0x1c0) = *(int *)(param_5 + 0x1c0) + *(int *)(param_5 + 0x114);
  *(int *)(param_5 + 0x1c4) = *(int *)(param_5 + 0x1c4) + *(int *)(param_5 + 0x118);
  *(int *)(param_5 + 0x1c8) = *(int *)(param_5 + 0x1c8) + *(int *)(param_5 + 0x11c);
  *(int *)(param_5 + 0x1cc) = *(int *)(param_5 + 0x1cc) + *(int *)(param_5 + 0x120);
  *(int *)(param_5 + 0x1d0) = *(int *)(param_5 + 0x1d0) + *(int *)(param_5 + 0x124);
  *(int *)(param_5 + 0x1d4) = *(int *)(param_5 + 0x1d4) + *(int *)(param_5 + 0x128);
  *pfVar8 = fVar11;
  pfVar8[1] = fVar10;
  pfVar8[2] = fVar9;
  **(uint **)(param_5 + 0x1b4) = uVar2;
  iVar7 = *(int *)(param_5 + 0x1a8) + 1;
  *(int *)(param_5 + 0x1a8) = iVar7;
  if (*(int *)(param_5 + 0x1a4) < iVar7) {
    *(int *)(param_5 + 0x1a4) = iVar7;
  }
  *(int *)(param_5 + 0x1b0) = *(int *)(param_5 + 0x1b0) + *(int *)(param_5 + 0x100);
  pfVar8 = (float *)(*(int *)(param_5 + 0x1ac) + *(int *)(param_5 + 0xf4));
  *(int *)(param_5 + 0x1b4) = *(int *)(param_5 + 0x1b4) + *(int *)(param_5 + 0x104);
  *(float **)(param_5 + 0x1ac) = pfVar8;
  *(int *)(param_5 + 0x1b8) = *(int *)(param_5 + 0x1b8) + *(int *)(param_5 + 0x10c);
  *(int *)(param_5 + 0x1bc) = *(int *)(param_5 + 0x1bc) + *(int *)(param_5 + 0x110);
  *(int *)(param_5 + 0x1c0) = *(int *)(param_5 + 0x1c0) + *(int *)(param_5 + 0x114);
  *(int *)(param_5 + 0x1c4) = *(int *)(param_5 + 0x1c4) + *(int *)(param_5 + 0x118);
  *(int *)(param_5 + 0x1c8) = *(int *)(param_5 + 0x1c8) + *(int *)(param_5 + 0x11c);
  *(int *)(param_5 + 0x1cc) = *(int *)(param_5 + 0x1cc) + *(int *)(param_5 + 0x120);
  *(int *)(param_5 + 0x1d0) = *(int *)(param_5 + 0x1d0) + *(int *)(param_5 + 0x124);
  *(int *)(param_5 + 0x1d4) = *(int *)(param_5 + 0x1d4) + *(int *)(param_5 + 0x128);
  iVar7 = param_3 - 4;
  if ((param_3 & 4) == 0) {
    iVar7 = param_3 + 4;
  }
  fVar9 = param_1[1];
  fVar10 = param_1[2];
  pfVar1 = (float *)(param_2 + iVar7 * 0xc);
  fVar11 = pfVar1[1];
  fVar3 = pfVar1[2];
  *pfVar8 = *param_1 + *pfVar1;
  pfVar8[1] = fVar9 + fVar11;
  pfVar8[2] = fVar10 + fVar3;
  **(uint **)(param_5 + 0x1b4) = uVar2;
  iVar7 = *(int *)(param_5 + 0x1a8) + 1;
  *(int *)(param_5 + 0x1a8) = iVar7;
  if (*(int *)(param_5 + 0x1a4) < iVar7) {
    *(int *)(param_5 + 0x1a4) = iVar7;
  }
  *(int *)(param_5 + 0x1ac) = *(int *)(param_5 + 0x1ac) + *(int *)(param_5 + 0xf4);
  *(int *)(param_5 + 0x1b0) = *(int *)(param_5 + 0x1b0) + *(int *)(param_5 + 0x100);
  *(int *)(param_5 + 0x1b4) = *(int *)(param_5 + 0x1b4) + *(int *)(param_5 + 0x104);
  *(int *)(param_5 + 0x1b8) = *(int *)(param_5 + 0x1b8) + *(int *)(param_5 + 0x10c);
  *(int *)(param_5 + 0x1bc) = *(int *)(param_5 + 0x1bc) + *(int *)(param_5 + 0x110);
  *(int *)(param_5 + 0x1c0) = *(int *)(param_5 + 0x1c0) + *(int *)(param_5 + 0x114);
  *(int *)(param_5 + 0x1c4) = *(int *)(param_5 + 0x1c4) + *(int *)(param_5 + 0x118);
  *(int *)(param_5 + 0x1c8) = *(int *)(param_5 + 0x1c8) + *(int *)(param_5 + 0x11c);
  *(int *)(param_5 + 0x1cc) = *(int *)(param_5 + 0x1cc) + *(int *)(param_5 + 0x120);
  *(int *)(param_5 + 0x1d0) = *(int *)(param_5 + 0x1d0) + *(int *)(param_5 + 0x124);
  *(int *)(param_5 + 0x1d4) = *(int *)(param_5 + 0x1d4) + *(int *)(param_5 + 0x128);
  return;
}

SourceMod gamedata

paste into addons/sourcemod/gamedata/<your_plugin>.txt
used as the SourceMod key — change to fit your plugin's convention
SourceMod library name (server / engine / matchmaking)

Just a Signatures{} block, ready to drop into a gamedata file. Wire it up in your plugin however you like - SDKCall, DHooks, raw memory ops, or anything else.



        

        

          

Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.

Return-type handling cheatsheet (DHookReturn)