L L4D2node

GetInterpolationData

0x0027b480 · 259 bytes · __cdecl

_Z20GetInterpolationDataPKfS0_iifbPfS1_S1_

Decompiled

undefined (9 params)

/* GetInterpolationData(float const*, float const*, int, int, float, bool, float*, float*, float*)
    */

void GetInterpolationData
               (float *param_1,float *param_2,int param_3,int param_4,float param_5,bool param_6,
               float *param_7,float *param_8,float *param_9)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  float fVar5;
  float fVar6;
  
  if ((0 < param_3) && (*param_1 < param_5)) {
    iVar1 = 0;
    do {
      iVar3 = iVar1;
      iVar1 = iVar3 + 1;
      if (iVar1 == param_3) {
        if (param_6) {
          iVar4 = iVar3 * 4;
          iVar2 = 0;
          fVar5 = param_5 - param_1[iVar3];
          fVar6 = ((float)param_4 + *param_1) - param_1[iVar3];
          goto LAB_0027b520;
        }
        fVar5 = param_2[iVar3];
        goto LAB_0027b554;
      }
    } while (param_1[iVar1] <= param_5 && param_5 != param_1[iVar1]);
    if (iVar1 != 0) {
      iVar2 = iVar1 * 4;
      iVar4 = iVar3 * 4;
      fVar5 = param_5 - param_1[iVar3];
      fVar6 = param_1[iVar1] - param_1[iVar3];
      goto LAB_0027b520;
    }
  }
  if (!param_6) {
    fVar5 = *param_2;
LAB_0027b554:
    *param_8 = fVar5;
    *param_7 = fVar5;
    *param_9 = 1.0;
    return;
  }
  iVar4 = (param_3 + -1) * 4;
  iVar2 = 0;
  fVar6 = *param_1 + ((float)param_4 - param_1[param_3 + -1]);
  fVar5 = param_5 + ((float)param_4 - param_1[param_3 + -1]);
LAB_0027b520:
  *param_7 = *(float *)((int)param_2 + iVar4);
  *param_8 = *(float *)((int)param_2 + iVar2);
  *param_9 = fVar5 / fVar6;
  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)