Пример #1
0
bool ConditionDamage::unserializeProp(ConditionAttr_t attr, PropStream& propStream)
{
	if(attr == CONDITIONATTR_DELAYED){
		uint8_t value = 0;
		if(!propStream.GET_UINT8(value)){
			return false;
		}

		delayed = value != 0;
		return true;
	}
	else if(attr == CONDITIONATTR_PERIODDAMAGE){
		int32_t value = 0;
		if(!propStream.GET_INT32(value)){
			return false;
		}

		periodDamage = value;
		return true;
	}
	else if(attr == CONDITIONATTR_OWNER){
		uint32_t value = 0;
		if(!propStream.GET_UINT32(value)){
			return false;
		}

		owner = value;
		return true;
	}
	else if(attr == CONDITIONATTR_INTERVALDATA){
		IntervalInfo damageInfo;
		if(		!propStream.GET_INT32(damageInfo.timeLeft) ||
				!propStream.GET_INT32(damageInfo.value) ||
				!propStream.GET_INT32(damageInfo.interval))
		{
			return false;
		}

		damageList.push_back(damageInfo);
		if(getTicks() != -1){
			setTicks(getTicks() + damageInfo.interval);
		}
		return true;
	}

	return Condition::unserializeProp(attr, propStream);
}
Пример #2
0
bool ConditionAttributes::unserializeProp(const ConditionAttr_t& attr, PropStream& propStream)
{
	if (attr == CONDITIONATTR_SKILLS)
	{
		int32_t value = 0;

		if (!propStream.GET_INT32(value))
		{
			return false;
		}

		skills[currentSkill] = value;
		++currentSkill;
		return true;
	}
	else if (attr == CONDITIONATTR_SKILLSPERCENT)
	{
		int32_t value = 0;

		if (!propStream.GET_INT32(value))
		{
			return false;
		}

		skills[currentSkill] = value;
		++currentSkill;
		return true;
	}
	else if (attr == CONDITIONATTR_STATS)
	{
		int32_t value = 0;

		if (!propStream.GET_INT32(value))
		{
			return false;
		}

		stats[currentStat] = value;
		++currentStat;
		return true;
	}

	return Condition::unserializeProp(attr, propStream);
}
Пример #3
0
bool ConditionSpeed::unserializeProp(ConditionAttr_t attr, PropStream& propStream)
{
	if(attr == CONDITIONATTR_SPEEDDELTA){
		int32_t value = 0;
		if(!propStream.GET_INT32(value)){
			return false;
		}

		speedDelta = value;
		return true;
	}
	else if(attr == CONDITIONATTR_FORMULA_MINA){
		float value = 0;
		if(!propStream.GET_FLOAT(value)){
			return false;
		}

		mina = value;
		return true;
	}
	else if(attr == CONDITIONATTR_FORMULA_MINB){
		float value = 0;
		if(!propStream.GET_FLOAT(value)){
			return false;
		}

		minb = value;
		return true;
	}
	else if(attr == CONDITIONATTR_FORMULA_MAXA){
		float value = 0;
		if(!propStream.GET_FLOAT(value)){
			return false;
		}

		maxa = value;
		return true;
	}
	else if(attr == CONDITIONATTR_FORMULA_MAXB){
		float value = 0;
		if(!propStream.GET_FLOAT(value)){
			return false;
		}

		maxb = value;
		return true;
	}

	return Condition::unserializeProp(attr, propStream);
}
Пример #4
0
bool Condition::unserializeProp(ConditionAttr_t attr, PropStream& propStream)
{
	switch(attr){
		case CONDITIONATTR_TYPE:
		{
			int32_t value = 0;
			if(!propStream.GET_INT32(value)){
				return false;
			}

			conditionType = (ConditionType_t)value;
			return true;
			break;
		}

		case CONDITIONATTR_ID:
		{
			int32_t value = 0;
			if(!propStream.GET_INT32(value)){
				return false;
			}

			id = (ConditionId_t)value;
			return true;
			break;
		}

		case CONDITIONATTR_TICKS:
		{
			int32_t value = 0;
			if(!propStream.GET_INT32(value)){
				return false;
			}

			ticks = value;
			return true;
			break;
		}


		case CONDITIONATTR_ISBUFF:
		{
			int8_t value = 0;
			if(!propStream.GET_INT8(value)){
				return false;
			}

			isBuff = value != 0;
			return true;
			break;
		}

		case CONDITIONATTR_SUBID:
		{
			int32_t value = 0;
			if(!propStream.GET_INT32(value)){
				return false;
			}

			subId = value;
			return true;
			break;
		}

		case CONDITIONATTR_END:
		{
			return true;
			break;
		}

		default:
			return false;
	}
}