sobinist

fn_p_stIntelligenceEvalTreeEngine

Jan 1st, 2018
112
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void __cdecl fn_p_stIntelligenceEvalTreeEngine(HIE_tdstSuperObject *superObject, tdstNodeInterpret_ *nodeInterpreter, tdstGetSetParam_ *getSetParam)
  2. {
  3.   char v3; // ST1C_1@1
  4.   tdstNodeInterpret_ *evalutedNode; // esi@1
  5.   char v5; // bl@1
  6.   char v6; // ST1C_1@10
  7.   HIE_tdstSuperObject *superObject_1; // [sp+0h] [bp-20h]@0
  8.   tdstNodeInterpret_ *nodeInterp; // [sp+4h] [bp-1Ch]@0
  9.   tdstGetSetParam_ *ret; // [sp+8h] [bp-18h]@0
  10.   char nodeInterpretera; // [sp+28h] [bp+8h]@1
  11.  
  12.   v3 = nodeInterpreter->param;
  13.   evalutedNode = fn_p_stEvalTree(superObject_1, nodeInterp, ret);
  14.   v5 = determineActionReturn(getSetParam, evalutedNode, v3);
  15.   nodeInterpretera = v5;
  16.   if ( (v5 & 0x10) != 16 )
  17.   {
  18.     while ( (v5 & 8) != 8 )
  19.     {
  20.       if ( (v5 & 4) == 4 )
  21.       {
  22.         fn_vUnuseCurrentActionTableEntry(g_p_stIntelligence);
  23.       }
  24.       if ( (v5 & 1) == 1 )
  25.       {
  26.         fn_vUnuseAllRulesWhichHaveGreaterNumRule(g_p_stIntelligence, g_ucNRule);
  27.         getSetParam->field4_DataType = 20;
  28.         getSetParam->field1 = (unsigned __int8)nodeInterpretera;
  29.         return;
  30.       }
  31.       if ( evalutedNode->functionType == 8 )
  32.       {
  33.         nodeInterpretera = 16;
  34. LABEL_14:
  35.         getSetParam->field4_DataType = 20;
  36.         getSetParam->field1 = (unsigned __int8)nodeInterpretera;
  37.         return;
  38.       }
  39.       if ( (v5 & 2) == 2 )
  40.       {
  41.         goto LABEL_14;
  42.       }
  43.       if ( ucIsInSchedule )
  44.       {
  45.         g_p_stIntelligence->renderInfo = (tdst3dData_ *)evalutedNode;
  46.       }
  47.       v6 = evalutedNode->param;
  48.       evalutedNode = fn_p_stEvalTree(superObject, evalutedNode, getSetParam);
  49.       v5 = determineActionReturn(getSetParam, evalutedNode, v6);
  50.       nodeInterpretera = v5;
  51.       if ( (v5 & 0x10) == 16 )
  52.       {
  53.         break;
  54.       }
  55.     }
  56.   }
  57.   getSetParam->field4_DataType = 20;
  58.   getSetParam->field1 = (unsigned __int8)nodeInterpretera;
  59. }
RAW Paste Data