void Being::setStatusEffectBlock(int offset, Uint16 newEffects) { for (int i = 0; i < STATUS_EFFECTS; i++) { int index = StatusEffect::blockEffectIndexToEffectIndex(offset + i); if (index != -1) setStatusEffect(index, (newEffects & (1 << i)) > 0); } }
void ActorSprite::setStatusEffectBlock(const int offset, const uint16_t newEffects) { for (unsigned i = 0; i < STATUS_EFFECTS; i++) { const bool val = (newEffects & (1 << i)) > 0; const int32_t index = StatusEffectDB::blockIdToId( offset + i); // block-id (offset + i) to id (index) if (index != -1) { setStatusEffect(index, fromBool(val, Enable)); } else if (val && config.getBoolValue("unimplimentedLog")) { const std::string str = strprintf( "Error: unknown effect by block-index. " "Offset: %d, effect int: %d, i: %u", offset, CAST_S32(newEffects), i); logger->log(str); DebugMessageListener::distributeEvent(str); } } }