Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __fastcall User::ValidateParameters(User *this, __int16 vb, bool bEnterWorld)
- {
- __int16 v4; // di
- __int16 v6; // si
- v4 = vb;
- if ( (vb & 0x2000) != 0 )
- {
- CCreature::ValidateBaseData(this);
- CCreature::ValidateBaseAttributeData(this);
- this->ValidateLevel(this);
- this->ValidateOrgSpeed(this);
- this->ValidateAllOnWeaponArmors(this);
- this->ValidateItemSkills(this);
- this->ValidateSkillList(this);
- CCreature::ValidateSkillMod(this);
- CCreature::ValidateHPMPCP(this, bEnterWorld);
- this->ValidateAllOnSIM(this);
- LABEL_29:
- this->ValidateOrgSpeed(this);
- goto LABEL_30;
- }
- if ( (vb & 1) != 0 )
- CCreature::ValidateBaseData(this);
- if ( (v4 & 0x102) != 0 )
- CCreature::ValidateBaseAttributeData(this);
- if ( (v4 & 4) != 0 )
- {
- if ( this->ValidateLevel(this) )
- v4 |= 0x620u;
- else
- v4 |= 0x200u;
- }
- if ( (v4 & 8) != 0 )
- this->ValidateOrgSpeed(this);
- v6 = v4 | 0xA00;
- if ( (v4 & 0x10) == 0 )
- v6 = v4;
- if ( (v6 & 0x20) != 0 )
- this->ValidateAllOnWeaponArmors(this);
- v4 = v6;
- if ( (v6 & 0x40) != 0 && this->ValidateItemSkills(this) )
- v4 = v6 | 0x580;
- if ( (v4 & 0x80u) != 0 )
- this->ValidateSkillList(this);
- if ( (v4 & 0x100) != 0 )
- CCreature::ValidateSkillMod(this);
- if ( (v4 & 0x200) != 0 )
- CCreature::ValidateHPMPCP(this, bEnterWorld);
- if ( (v4 & 0x400) != 0 )
- this->ValidateAllOnSIM(this);
- if ( (v4 & 0x800) != 0 )
- goto LABEL_29;
- LABEL_30:
- if ( (v4 & 0x1000) != 0 )
- this->ValidateLevelUP(this);
- this->ParamChanged(this, 16i64);
- }
- char __fastcall User::ValidateSpeed(User *this)
- {
- double v2; // xmm6_8
- CUserRidingInfo *m_pStriderInfo; // rbx
- const PetDataSheet::Record *v5; // rax
- CSharedCreatureData *m_data; // rcx
- double v7; // xmm2_8
- double *v8; // rdx
- double v9; // xmm2_8
- v2 = ((double)this->m_data->m_nOrgParam[11]
- * this->m_dGMSpeed
- * this->m_SkillMod.m_Mods[7].m_Per
- * this->m_AreaMod.m_dSpeedModByArea
- + this->m_SkillMod.m_Mods[7].m_Diff)
- * this->m_dSpeedModByWeight;
- if ( ((unsigned __int8 (*)(void))this->IsCameraMode)() )
- {
- CVariableBitSet::SetDoubleValue_IfModifed(
- &this->m_data->m_NeedUpdatePacketBitSet,
- &this->m_data->m_dParam[11],
- 400.0,
- 0x3Bu);
- return 0;
- }
- if ( this->IsRidingOnGround(this) )
- {
- m_pStriderInfo = this->m_pStriderInfo;
- v5 = CCommonRidingInfo::Record(&m_pStriderInfo->m_commonInfo);
- if ( m_pStriderInfo->m_pRidingInfo->IsHungry(m_pStriderInfo->m_pRidingInfo, v5->m_nHungryLimit) )
- v2 = v2 * 0.5;
- if ( this->m_pStriderInfo->m_commonInfo.m_striderLevel >= this->m_data->m_nLevel + 10 )
- v2 = v2 * 0.5;
- }
- CVariableBitSet::SetDoubleValue_IfModifed(
- &this->m_data->m_NeedUpdatePacketBitSet,
- &this->m_data->m_dParam[11],
- v2,
- 0x3Bu);
- this->ValidateGradePenalty(this, SPEED);
- m_data = this->m_data;
- v7 = DOUBLE_1_0;
- v8 = &m_data->m_dParam[11];
- if ( m_data->m_moveType == CMT_FLY )
- {
- if ( *v8 >= 1.0 )
- {
- v9 = DOUBLE_350_0;
- LABEL_13:
- v7 = fmin(v9, *v8);
- }
- }
- else if ( *v8 >= 1.0 )
- {
- v9 = DOUBLE_300_0;
- goto LABEL_13;
- }
- CVariableBitSet::SetDoubleValue_IfModifed(&m_data->m_NeedUpdatePacketBitSet, v8, v7, 0x3Bu);
- return 1;
- }
- char __fastcall User::ValidateOrgSpeed(User *this)
- {
- const PetDataSheet::Record *v2; // rax
- int *m_data; // r8
- int v4; // eax
- CNPC *m_pPolymorphNPC; // r9
- int v6; // ebx
- if ( this->IsRiding(this) )
- {
- v2 = CCommonRidingInfo::Record(&this->m_pStriderInfo->m_commonInfo);
- this->m_data->m_nOrgParam[11] = v2->mSpeedOnRide[this->m_data->m_MoveMode][this->m_data->m_Environment];
- m_data = (int *)this->m_data;
- v4 = v2->mSpeedOnRide[m_data[148]][m_data[150]];
- LABEL_5:
- m_data[3276] = v4;
- goto LABEL_10;
- }
- if ( User::IsTransformedExcept(this, DamageText) )
- {
- this->m_data->m_nOrgParam[11] = (int)this->m_transform->m_commonData->orgSpeed[this->m_data->m_MoveMode][this->m_data->m_Environment];
- m_data = (int *)this->m_data;
- v4 = (int)this->m_transform->m_commonData->orgSpeed[m_data[148]][m_data[150]];
- goto LABEL_5;
- }
- m_pPolymorphNPC = this->m_pPolymorphNPC;
- if ( m_pPolymorphNPC )
- {
- this->m_data->m_nOrgParam[11] = m_pPolymorphNPC->m_pClassConst->m_SpeedByME[this->m_data->m_MoveMode][this->m_data->m_Environment];
- this->m_data->m_nMoveTypeSpeed = m_pPolymorphNPC->m_pClassConst->m_SpeedByME[this->m_data->m_MoveMode][this->m_data->m_Environment];
- }
- else
- {
- this->m_data->m_nOrgParam[11] = (int)CPCParamDB::GetOrgSpeed(
- &g_PCParamDB,
- this->m_data->m_Sex,
- this->m_data->m_nClass,
- this->m_data->m_MoveMode,
- this->m_data->m_Environment,
- this->m_data->m_Race);
- this->m_data->m_nMoveTypeSpeed = (int)CPCParamDB::GetOrgSpeed(
- &g_PCParamDB,
- this->m_data->m_Sex,
- this->m_data->m_nClass,
- this->m_data->m_MoveMode,
- this->m_data->m_Environment,
- this->m_data->m_Race);
- }
- v6 = (int)this->EquipedArmorsValidate(this, SPEED);
- this->m_data->m_nOrgParam[11] += v6 + (int)this->EquipedWeaponValidate(this, SPEED);
- LABEL_10:
- this->ValidateSpeed(this);
- return 1;
- }
- long double __fastcall CCreature::GetMoveModifier(CCreature *this)
- {
- CSharedCreatureData *m_data; // rax
- m_data = this->m_data;
- if ( m_data->m_nMoveTypeSpeed <= 0 )
- m_data->m_nMoveTypeSpeed = 1;
- return this->m_data->m_dParam[11] / (double)this->m_data->m_nMoveTypeSpeed;
- }
- char __fastcall User::ValidateSpeed(User *this)
- {
- double v2; // xmm6_8
- CUserRidingInfo *m_pStriderInfo; // rbx
- const PetDataSheet::Record *v5; // rax
- CSharedCreatureData *m_data; // rcx
- double v7; // xmm2_8
- double *v8; // rdx
- double v9; // xmm2_8
- v2 = ((double)this->m_data->m_nOrgParam[11]
- * this->m_dGMSpeed
- * this->m_SkillMod.m_Mods[7].m_Per
- * this->m_AreaMod.m_dSpeedModByArea
- + this->m_SkillMod.m_Mods[7].m_Diff)
- * this->m_dSpeedModByWeight;
- if ( ((unsigned __int8 (*)(void))this->IsCameraMode)() )
- {
- CVariableBitSet::SetDoubleValue_IfModifed(
- &this->m_data->m_NeedUpdatePacketBitSet,
- &this->m_data->m_dParam[11],
- 400.0,
- 0x3Bu);
- return 0;
- }
- if ( this->IsRidingOnGround(this) )
- {
- m_pStriderInfo = this->m_pStriderInfo;
- v5 = CCommonRidingInfo::Record(&m_pStriderInfo->m_commonInfo);
- if ( m_pStriderInfo->m_pRidingInfo->IsHungry(m_pStriderInfo->m_pRidingInfo, v5->m_nHungryLimit) )
- v2 = v2 * 0.5;
- if ( this->m_pStriderInfo->m_commonInfo.m_striderLevel >= this->m_data->m_nLevel + 10 )
- v2 = v2 * 0.5;
- }
- CVariableBitSet::SetDoubleValue_IfModifed(
- &this->m_data->m_NeedUpdatePacketBitSet,
- &this->m_data->m_dParam[11],
- v2,
- 0x3Bu);
- this->ValidateGradePenalty(this, SPEED);
- m_data = this->m_data;
- v7 = DOUBLE_1_0;
- v8 = &m_data->m_dParam[11];
- if ( m_data->m_moveType == CMT_FLY )
- {
- if ( *v8 >= 1.0 )
- {
- v9 = DOUBLE_350_0;
- LABEL_13:
- v7 = fmin(v9, *v8);
- }
- }
- else if ( *v8 >= 1.0 )
- {
- v9 = DOUBLE_300_0;
- goto LABEL_13;
- }
- CVariableBitSet::SetDoubleValue_IfModifed(&m_data->m_NeedUpdatePacketBitSet, v8, v7, 0x3Bu);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement