MCPcopy Create free account
hub / github.com/assaultcube/AC / AimToIdeal

Method AimToIdeal

source/src/bot/bot.cpp:140–202  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

138}
139
140void CBot::AimToIdeal()
141{
142 if (m_iAimDelay > lastmillis)
143 return;
144
145 float MaxXSpeed = RandomFloat(m_pBotSkill->flMinAimXSpeed,
146 m_pBotSkill->flMaxAimXSpeed);
147 float MaxYSpeed = RandomFloat(m_pBotSkill->flMinAimYSpeed,
148 m_pBotSkill->flMaxAimYSpeed);
149 float XOffset = RandomFloat(m_pBotSkill->flMinAimXOffset,
150 m_pBotSkill->flMaxAimXOffset);
151 float YOffset = RandomFloat(m_pBotSkill->flMinAimYOffset,
152 m_pBotSkill->flMaxAimYOffset);
153 float RealXOffset, RealYOffset;
154 float AimXSpeed = MaxXSpeed, AimYSpeed = MaxYSpeed;
155 float XDiff = fabs(m_pMyEnt->targetpitch - m_pMyEnt->pitch);
156 float YDiff = fabs(m_pMyEnt->targetyaw - m_pMyEnt->yaw);
157
158 // How higher the diff, how higher the offsets and aim speed
159
160 if (XOffset)
161 {
162 if (RandomLong(0, 1))
163 RealXOffset = XDiff * (XOffset / 100.0f);
164 else
165 RealXOffset = -(XDiff * (XOffset / 100.0f));
166 }
167 else
168 RealXOffset = 0.0f;
169
170 if (YOffset)
171 {
172 if (RandomLong(0, 1))
173 RealYOffset = YDiff * (YOffset / 100.0f);
174 else
175 RealYOffset = -(YDiff * (YOffset / 100.0f));
176 }
177 else
178 RealYOffset = 0.0f;
179
180
181 if (XDiff >= 1.0f)
182 AimXSpeed = (AimXSpeed * (XDiff / 80.0f)) + (AimXSpeed * 0.25f);
183 else
184 AimXSpeed *= 0.01f;
185
186 if (YDiff >= 1.0f)
187 AimYSpeed = (AimYSpeed * (YDiff / 70.0f)) + (AimYSpeed * 0.25f);
188 else
189 AimYSpeed *= 0.015f;
190
191 m_fPitchToTurn = fabs((m_pMyEnt->targetpitch + RealXOffset) - m_pMyEnt->pitch);
192 m_fYawToTurn = fabs((m_pMyEnt->targetyaw + RealYOffset) - m_pMyEnt->yaw);
193
194 float flIdealPitch = ChangeAngle(AimXSpeed, m_pMyEnt->targetpitch + RealXOffset, m_pMyEnt->pitch);
195 float flIdealYaw = ChangeAngle(AimYSpeed, m_pMyEnt->targetyaw + RealYOffset, m_pMyEnt->yaw);
196
197// m_pMyEnt->pitch = WrapXAngle(m_pMyEnt->targetpitch); // Uncomment for instant aiming

Callers

nothing calls this directly

Calls 4

RandomFloatFunction · 0.85
RandomLongFunction · 0.85
WrapXAngleFunction · 0.85
WrapYZAngleFunction · 0.85

Tested by

no test coverage detected