Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char __usercall sub_6FDA0870<al>(Skill *Skill<eax>, UnitAny *Unit<ecx>)
- {
- Inventory *v2; // edi@3
- char result; // al@4
- DWORD SkillUnitId; // ebp@5
- int v5; // edx@7
- DWORD v6; // ecx@7
- bool v7; // eax@7
- int v8; // eax@7
- int v9; // edx@9
- UnitAny *v10; // eax@10
- ItemData *v11; // eax@13
- Inventory *v12; // eax@14
- if ( Unit && Skill )
- {
- v2 = Unit->pInventory;
- if ( v2 )
- {
- SkillUnitId = Skill->dwUnitId;
- if ( SkillUnitId == -1 )
- {
- result = 1;
- }
- else
- {
- v5 = Skill->pSkillInfo->wSkillId;
- v6 = Skill->dwSkillLevel;
- v7 = (v6 & 0x80000000u) != 0;
- LOBYTE(v7) = (signed int)v6 <= 0;
- v8 = v6 & (v7 - 1);
- if ( v8 >= *(_DWORD *)dword_6FDF0B50_UnkTableContainingExpTable )
- v8 = *(_DWORD *)dword_6FDF0B50_UnkTableContainingExpTable;
- v9 = (v5 << 6) + (v8 & 0x3F);
- if ( v2->dwSignature == 16909060 )
- {
- v10 = v2->pFirstItem;
- if ( v10 )
- {
- while ( v10->dwType == 4 )
- {
- if ( v10->dwUnitId == SkillUnitId )
- return (signed int)(unsigned __int8)Ordinal10973_GetUnitStatSigned(v10, 204, v9) > 0;
- v11 = v10->pPlayerData;
- if ( v11 )
- {
- v12 = (Inventory *)&v11->pOwnerInventory;
- if ( v12 )
- {
- v10 = v12->pOwner;
- if ( v10 )
- continue;
- }
- }
- break;
- }
- }
- }
- result = 1;
- }
- }
- else
- {
- result = 1;
- }
- }
- else
- {
- result = 0;
- }
- return result;
- }
Add Comment
Please, Sign In to add comment