Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- signed int __usercall Script_GetLFGQueueStats<eax>(int a1<esi>, int a2)
- {
- // a2 = 1 --> Dungeon Finder
- // a2 = 3 --> Raid Finder
- // a2 = 4 --> Scenario Finder
- signed int result; // eax@2
- signed int v3; // eax@3
- int v4; // esi@3
- int v5; // eax@4
- int *v6; // ebx@7
- int v7; // eax@8
- int v8; // esi@8
- signed int v9; // ST3C_4@9
- double v10; // st7@9
- int v11; // [sp+Ch] [bp-Ch]@3
- int v12; // [sp+10h] [bp-8h]@0
- if ( lua_isnumber(a2, 1) )
- {
- v11 = a1;
- v3 = lua_tointeger(a2);
- v4 = v3 - 1;
- if ( (unsigned int)(v3 - 1) > 3 )
- {
- luaL_error(a2, "Invalid category", v11);
- result = 0;
- }
- else
- {
- v5 = sub_AA0AB0(v3 - 1);
- if ( v5 && *(_BYTE *)(v5 + 40) && *(_BYTE *)(v5 + 42) && (v6 = &dword_116EA40[9 * v4], dword_116EA40[9 * v4]) )
- {
- //return 1: hasData
- lua_pushboolean(a2, 1);
- //return 2: leaderNeeds
- lua_pushnumber(a2, 0.0);
- //return 3: tankNeeds
- lua_pushnumber(a2, (double)*((_BYTE *)v6 + 24));
- //return 4: healerNeeds
- lua_pushnumber(a2, (double)*((_BYTE *)v6 + 25));
- //return 5: dpsNeeds
- lua_pushnumber(a2, (double)*((_BYTE *)v6 + 26));
- v7 = LfgDungeonsDB::GetRow(*v6);
- v8 = v7;
- if ( v7 )
- {
- //return 6: maxTankSlots
- lua_pushnumber(a2, (double)*(signed int *)(v7 + 72));
- //return 7: maxHealSlots
- lua_pushnumber(a2, (double)*(signed int *)(v8 + 76));
- //return 8: maxDpsSlots
- lua_pushnumber(a2, (double)*(signed int *)(v8 + 80));
- //return 9: ?
- lua_pushnumber(a2, (double)*(signed int *)(v8 + 40));
- v9 = sub_A97380();
- //return 10: ?
- lua_pushnumber(a2, (double)v9);
- //return 11: instanceName
- lua_pushstring(a2, *(_DWORD *)(v8 + 4));
- //return 12: averageWait
- lua_pushnumber(a2, (double)v6[2]);
- //return 13: tankWait
- lua_pushnumber(a2, (double)v6[3]);
- //return 14: healWait
- lua_pushnumber(a2, (double)v6[4]);
- //return 15: damageWait
- lua_pushnumber(a2, (double)v6[5]);
- //return 16: myWait
- lua_pushnumber(a2, (double)v6[1]);
- v10 = (double)v6[8];
- if ( v6[8] < 0 )
- v10 = v10 + unk_D282A8;
- //return 17: queuedTime
- lua_pushnumber(a2, v10 * 0.001);
- result = 17;
- }
- else
- {
- lua_pushnil(a2);
- lua_pushnil(a2);
- lua_pushnil(a2);
- lua_pushnil(a2);
- lua_pushnil(a2);
- lua_pushnil(a2);
- lua_pushnil(a2);
- lua_pushnil(a2);
- lua_pushnil(a2);
- lua_pushnil(a2);
- lua_pushnil(a2);
- lua_pushnil(a2);
- result = 17;
- }
- }
- else
- {
- result = 0;
- }
- }
- }
- else
- {
- luaL_error(a2, "Usage: GetLFGQueueStats(LE_LFG_CATEGORY)", v12);
- result = 0;
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement