Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __stdcall D2Common_STATES_ToggleState_6FDB8900(D2UnitStrc* pUnit, int nState, BOOL bSet)
- {
- if (pUnit && pUnit->pStatListEx && STATLIST_IsExtended(pUnit->pStatListEx))
- {
- const uint32_t dwStateBitMask = gdwBitMasks[nState % 31];
- const bool bStateBitChanged = BITMANIP_SetBitsValueForMask(pUnit->pStatListEx->StatFlags[nState / 32], dwStateBitMask, bSet);
- if (!bStateBitChanged)
- {
- return;
- }
- pUnit->pStatListEx->StatFlags[nState / 32 + (sgptDataTables->dwStatesTxtRecs + 31) / 32] |= gdwBitMasks[nState & 31];
- if (D2StatesTxt* pStatesTxtRecord = DATATBLS_GetStatesTxtRecord(nState))
- {
- bool bStateMaskNoSend= pStatesTxtRecord->dwStateFlags & gdwBitMasks[STATEMASK_NOSEND];
- if (bSet && bStateMaskNoSend)
- {
- pUnit->dwFlagEx |= UNITFLAGEX_ISSHAPESHIFTED;
- }
- else if (bStateMaskNoSend&& !STATES_CheckStateMaskOnUnit(pUnit, STATEMASK_DISGUISE))
- {
- pUnit->dwFlagEx &= ~UNITFLAGEX_ISSHAPESHIFTED;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement