Advertisement
Guest User

GetLFGQueueStats()

a guest
Feb 10th, 2013
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.94 KB | None | 0 0
  1. signed int __usercall Script_GetLFGQueueStats<eax>(int a1<esi>, int a2)
  2. {
  3.   // a2 = 1 --> Dungeon Finder
  4.   // a2 = 3 --> Raid Finder
  5.   // a2 = 4 --> Scenario Finder
  6.  
  7.   signed int result; // eax@2
  8.   signed int v3; // eax@3
  9.   int v4; // esi@3
  10.   int v5; // eax@4
  11.   int *v6; // ebx@7
  12.   int v7; // eax@8
  13.   int v8; // esi@8
  14.   signed int v9; // ST3C_4@9
  15.   double v10; // st7@9
  16.   int v11; // [sp+Ch] [bp-Ch]@3
  17.   int v12; // [sp+10h] [bp-8h]@0
  18.  
  19.   if ( lua_isnumber(a2, 1) )
  20.   {
  21.     v11 = a1;
  22.     v3 = lua_tointeger(a2);
  23.     v4 = v3 - 1;
  24.     if ( (unsigned int)(v3 - 1) > 3 )
  25.     {
  26.       luaL_error(a2, "Invalid category", v11);
  27.       result = 0;
  28.     }
  29.     else
  30.     {
  31.       v5 = sub_AA0AB0(v3 - 1);
  32.       if ( v5 && *(_BYTE *)(v5 + 40) && *(_BYTE *)(v5 + 42) && (v6 = &dword_116EA40[9 * v4], dword_116EA40[9 * v4]) )
  33.       {
  34.     //return 1: hasData
  35.         lua_pushboolean(a2, 1);
  36.     //return 2: leaderNeeds
  37.         lua_pushnumber(a2, 0.0);
  38.     //return 3: tankNeeds
  39.         lua_pushnumber(a2, (double)*((_BYTE *)v6 + 24));
  40.     //return 4: healerNeeds
  41.         lua_pushnumber(a2, (double)*((_BYTE *)v6 + 25));
  42.     //return 5: dpsNeeds
  43.         lua_pushnumber(a2, (double)*((_BYTE *)v6 + 26));
  44.         v7 = LfgDungeonsDB::GetRow(*v6);
  45.         v8 = v7;
  46.         if ( v7 )
  47.         {
  48.       //return 6: maxTankSlots
  49.           lua_pushnumber(a2, (double)*(signed int *)(v7 + 72));
  50.       //return 7: maxHealSlots
  51.           lua_pushnumber(a2, (double)*(signed int *)(v8 + 76));
  52.       //return 8: maxDpsSlots
  53.           lua_pushnumber(a2, (double)*(signed int *)(v8 + 80));
  54.       //return 9: ?
  55.           lua_pushnumber(a2, (double)*(signed int *)(v8 + 40));
  56.           v9 = sub_A97380();
  57.       //return 10: ?
  58.           lua_pushnumber(a2, (double)v9);
  59.       //return 11: instanceName
  60.           lua_pushstring(a2, *(_DWORD *)(v8 + 4));
  61.       //return 12: averageWait
  62.           lua_pushnumber(a2, (double)v6[2]);
  63.       //return 13: tankWait
  64.           lua_pushnumber(a2, (double)v6[3]);
  65.       //return 14: healWait
  66.           lua_pushnumber(a2, (double)v6[4]);
  67.       //return 15: damageWait
  68.           lua_pushnumber(a2, (double)v6[5]);
  69.       //return 16: myWait
  70.           lua_pushnumber(a2, (double)v6[1]);
  71.           v10 = (double)v6[8];
  72.           if ( v6[8] < 0 )
  73.             v10 = v10 + unk_D282A8;
  74.           //return 17: queuedTime
  75.           lua_pushnumber(a2, v10 * 0.001);
  76.           result = 17;
  77.         }
  78.         else
  79.         {
  80.           lua_pushnil(a2);
  81.           lua_pushnil(a2);
  82.           lua_pushnil(a2);
  83.           lua_pushnil(a2);
  84.           lua_pushnil(a2);
  85.           lua_pushnil(a2);
  86.           lua_pushnil(a2);
  87.           lua_pushnil(a2);
  88.           lua_pushnil(a2);
  89.           lua_pushnil(a2);
  90.           lua_pushnil(a2);
  91.           lua_pushnil(a2);
  92.           result = 17;
  93.         }
  94.       }
  95.       else
  96.       {
  97.         result = 0;
  98.       }
  99.     }
  100.   }
  101.   else
  102.   {
  103.     luaL_error(a2, "Usage: GetLFGQueueStats(LE_LFG_CATEGORY)", v12);
  104.     result = 0;
  105.   }
  106.   return result;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement