//@Todo curve flags won't transfer over - it only overwritees void FBlendedCurve::Blend(const FBlendedCurve& A, const FBlendedCurve& B, float Alpha) { check(A.Num()==B.Num()); if(FMath::Abs(Alpha) <= ZERO_ANIMWEIGHT_THRESH) { // if blend is all the way for child1, then just copy its bone atoms Override(A); } else if(FMath::Abs(Alpha - 1.0f) <= ZERO_ANIMWEIGHT_THRESH) { // if blend is all the way for child2, then just copy its bone atoms Override(B); } else { InitFrom(A); for(int32 CurveId=0; CurveId<A.Elements.Num(); ++CurveId) { Elements[CurveId].Value = FMath::Lerp(A.Elements[CurveId].Value, B.Elements[CurveId].Value, Alpha); Elements[CurveId].Flags |= (A.Elements[CurveId].Flags | B.Elements[CurveId].Flags); } } ValidateCurve(this); }
void CommandTableStorage::Load() { QueryResult * result = WorldDatabase.Query("SELECT * FROM command_overrides"); if(!result) return; do { const char * name = result->Fetch()[0].GetString(); const char * level = result->Fetch()[1].GetString(); Override(name, level); } while(result->NextRow()); delete result; }
BQAsn1EncoderManager BQAsn1BerEncoderManager_ObjectInit(BQAsn1EncoderManager self) { BQMemInit(self, 0, ObjectSize()); /* Super constructor */ if (BQAsn1EncoderManager_ObjectInit(self) == BQNULL) return BQNULL; /* Setup class */ Override(self); m_methodsInit = 1; return self; }
BQAsn1IntegerEncoder BQAsn1IntegerEncoder_ObjectInit(BQAsn1IntegerEncoder self, BQUint8 *buffer, BQUint32 bufferSize) { BQMemInit(self, 0, ObjectSize()); /* Super constructor */ if (BQAsn1Encoder_ObjectInit((BQAsn1Encoder)self, buffer, bufferSize) == BQNULL) return BQNULL; /* Setup class */ Override(self); MethodsInit(self); m_methodsInit = 1; return self; }
void CShdrEchoInstance::Init(std::string devicesxmlfilename, std::string shdrfilename, int ipport, double dOverride, std::string devicename) { DevicesXmlFilename()=devicesxmlfilename; ShdrFilename() =shdrfilename; IpAddress() ="127.0.0.1"; // really cant be anything else IpPort()=ipport; DeviceName() = devicename; Override()=dOverride; _bFaultThread=false; if(DevicesXmlFilename().empty()) DevicesXmlFilename()=ExeDirectory() + "devices.xml"; _bRepeat=true; _backend = new CoComMTCShdrBackEnd(); _backend->Init(_bstr_t(IpAddress().c_str()), IpPort(), _bstr_t(DeviceName().c_str())); _backend->MyLogger().AddListener(boost::bind(&CShdrEchoInstance::EchoShdr, this,_1)); _dict = _deviceparser.ReadDeviceDescription(DevicesXmlFilename()); std::string storemap,itemlist, typelist; int i=0; for(DataDictionary::iterator it = _dict.begin(); it!=_dict.end(); it++, i++) { if((*it).first.empty()) { i--; continue; } if(i>0) itemlist+=","; if(i>0) typelist+=","; storemap+=(*it).first+"="+(*it).first+"\n"; // isomorphic: alias = name itemlist+=(*it).first; typelist+=_dict[(*it).first]; } _backend->StoreTagMap(_bstr_t(storemap.c_str())); _backend->StoreTypeMap(_bstr_t(itemlist.c_str()),bstr_t(typelist.c_str())); Open(); _state=Ready; }
void FBlendedCurve::Override(const FBlendedCurve& CurveToOverrideFrom, float Weight) { InitFrom(CurveToOverrideFrom); if ( FMath::IsNearlyEqual(Weight, 1.f) ) { Override(CurveToOverrideFrom); } else { for(int32 CurveId=0; CurveId<CurveToOverrideFrom.Elements.Num(); ++CurveId) { Elements[CurveId].Value = CurveToOverrideFrom.Elements[CurveId].Value * Weight; Elements[CurveId].Flags |= CurveToOverrideFrom.Elements[CurveId].Flags; } } ValidateCurve(this); }
void Resolver::Resolve() { for (int i = 1; i <= g_GlobalVars->maxClients; i++) { auto &record = arr_infos[i]; if (!record.m_bActive) continue; C_BasePlayer *player = C_BasePlayer::GetPlayerByIndex(i); if (!player || !player->IsAlive() || player->IsDormant() || player == g_LocalPlayer) continue; if (record.m_flVelocity == 0.f && player->m_vecVelocity().Length2D() != 0.f) { Math::VectorAngles(player->m_vecVelocity(), record.m_angDirectionFirstMoving); record.m_nCorrectedFakewalkIdx = 0; } auto firedShots = g_LocalPlayer->m_iShotsFired(); if (g_Options.debug_fliponkey) { float_t new_yaw = player->m_flLowerBodyYawTarget(); if (g_InputSystem->IsButtonDown(g_Options.debug_flipkey)) new_yaw += 180.f; new_yaw = Math::ClampYaw(new_yaw); player->m_angEyeAngles().yaw = new_yaw; return; } if (g_Options.hvh_resolver_override && g_InputSystem->IsButtonDown(g_Options.hvh_resolver_override_key)) { Override(); //needs an improvement sometimes f****d up xD Global::resolverModes[player->EntIndex()] = "Overriding"; return; } AnimationLayer curBalanceLayer, prevBalanceLayer; ResolveInfo curtickrecord; curtickrecord.SaveRecord(player); if ((player->m_fFlags() & FL_ONGROUND) && (IsFakewalking(player, curtickrecord) || (player->m_vecVelocity().Length2D() > 0.1f && player->m_vecVelocity().Length2D() < 45.f && !(player->m_fFlags() & FL_DUCKING)))) //Fakewalk, shiftwalk check // We have to rework the fakewalk resolving, it sucks :D { float_t new_yaw = ResolveFakewalk(player, curtickrecord); new_yaw = Math::ClampYaw(new_yaw); player->m_angEyeAngles().yaw = new_yaw; Global::resolverModes[player->EntIndex()] = "Fakewalking"; continue; } if (IsEntityMoving(player)) { float_t new_yaw = player->m_flLowerBodyYawTarget(); new_yaw = Math::ClampYaw(new_yaw); player->m_angEyeAngles().yaw = new_yaw; record.m_flStandingTime = player->m_flSimulationTime(); record.m_flMovingLBY = player->m_flLowerBodyYawTarget(); record.m_bIsMoving = true; Global::resolverModes[player->EntIndex()] = "Moving"; continue; } if (IsAdjustingBalance(player, curtickrecord, &curBalanceLayer)) { if (fabsf(LBYDelta(curtickrecord)) > 35.f) { float_t new_yaw = player->m_flLowerBodyYawTarget() + record.m_flLbyDelta; new_yaw = Math::ClampYaw(new_yaw); player->m_angEyeAngles().yaw = new_yaw; Global::resolverModes[player->EntIndex()] = "Fakehead (delta > 35)"; } if (IsAdjustingBalance(player, record, &prevBalanceLayer)) { if ((prevBalanceLayer.m_flCycle != curBalanceLayer.m_flCycle) || curBalanceLayer.m_flWeight == 1.f) { float flAnimTime = curBalanceLayer.m_flCycle, flSimTime = player->m_flSimulationTime(); if (flAnimTime < 0.01f && prevBalanceLayer.m_flCycle > 0.01f && g_Options.rage_lagcompensation && CMBacktracking::Get().IsTickValid(TIME_TO_TICKS(flSimTime - flAnimTime))) { CMBacktracking::Get().SetOverwriteTick(player, QAngle(player->m_angEyeAngles().pitch, player->m_flLowerBodyYawTarget(), 0), (flSimTime - flAnimTime), 2); } float_t new_yaw = player->m_flLowerBodyYawTarget(); new_yaw = Math::ClampYaw(new_yaw); player->m_angEyeAngles().yaw = new_yaw; Global::resolverModes[player->EntIndex()] = "Breaking LBY"; continue; } else if (curBalanceLayer.m_flWeight == 0.f && (prevBalanceLayer.m_flCycle > 0.92f && curBalanceLayer.m_flCycle > 0.92f)) // breaking lby with delta < 120 { if (player->m_flSimulationTime() >= record.m_flStandingTime + 0.22f && record.m_bIsMoving) { record.m_flLbyDelta = record.m_flLowerBodyYawTarget - player->m_flLowerBodyYawTarget(); float_t new_yaw = player->m_flLowerBodyYawTarget() + record.m_flLbyDelta; new_yaw = Math::ClampYaw(new_yaw); player->m_angEyeAngles().yaw = new_yaw; record.m_bIsMoving = false; Global::resolverModes[player->EntIndex()] = "Breaking LBY (delta < 120)"; continue; } if (player->m_flSimulationTime() >= record.m_flStandingTime + 1.32f && std::fabsf(record.m_flLbyDelta) < 35.f) { record.m_flLbyDelta = record.m_flMovingLBY - player->m_flLowerBodyYawTarget(); float_t new_yaw = player->m_flLowerBodyYawTarget() + record.m_flLbyDelta; new_yaw = Math::ClampYaw(new_yaw); player->m_angEyeAngles().yaw = new_yaw; record.m_bIsMoving = false; Global::resolverModes[player->EntIndex()] = "LBY delta < 35"; continue; } } } else { float_t new_yaw = player->m_flLowerBodyYawTarget(); new_yaw = Math::ClampYaw(new_yaw); player->m_angEyeAngles().yaw = new_yaw; Global::resolverModes[player->EntIndex()] = "Other"; continue; } } if (player->m_flSimulationTime() >= record.m_flStandingTime + 0.22f && record.m_bIsMoving) { record.m_flLbyDelta = record.m_flLowerBodyYawTarget - player->m_flLowerBodyYawTarget(); float_t new_yaw = player->m_flLowerBodyYawTarget() + record.m_flLbyDelta; new_yaw = Math::ClampYaw(new_yaw); player->m_angEyeAngles().yaw = new_yaw; record.m_bIsMoving = false; Global::resolverModes[player->EntIndex()] = "Breaking LBY (delta < 120)"; continue; } if (player->m_flSimulationTime() >= record.m_flStandingTime + 1.32f && std::fabsf(record.m_flLbyDelta) < 35.f) { record.m_flLbyDelta = record.m_flMovingLBY - player->m_flLowerBodyYawTarget(); float_t new_yaw = player->m_flLowerBodyYawTarget() + record.m_flLbyDelta; new_yaw = Math::ClampYaw(new_yaw); player->m_angEyeAngles().yaw = new_yaw; record.m_bIsMoving = false; Global::resolverModes[player->EntIndex()] = "LBY delta < 35"; continue; } float_t new_yaw = player->m_flLowerBodyYawTarget() + record.m_flLbyDelta; new_yaw = Math::ClampYaw(new_yaw); player->m_angEyeAngles().yaw = new_yaw; } }
void TimedPort::Auto() { Override(2); }