Reduced 'Need backup' for unskilled bots.

Fixed some typos.
This commit is contained in:
jeefo 2019-08-24 21:17:11 +03:00
commit d04f44d8fc
5 changed files with 19 additions and 28 deletions

View file

@ -212,5 +212,4 @@ struct Platform : public Singleton <Platform> {
// expose platform singleton
static auto &plat = Platform::get ();
CR_NAMESPACE_END

View file

@ -70,7 +70,7 @@ public:
int32 lookup = m_hashTable[hash32 (&in[cur])];
while (lookup > limit) {
if (in[lookup + bestLength] == in[cur + bestLength] && load32 (&in[lookup]) == load32 (&in[cur])) {
if (in[lookup + bestLength] == in[cur + bestLength] && load <uint32> (&in[lookup]) == load <uint32> (&in[cur])) {
int32 length = MinMatch;
while (length < maxMatch && in[lookup + length] == in[cur + length]) {
@ -107,7 +107,7 @@ public:
int32 lookup = m_hashTable[hash32 (&in[next])];
while (lookup > limit) {
if (in[lookup + bestLength] == in[next + bestLength] && load32 (&in[lookup]) == load32 (&in[next])) {
if (in[lookup + bestLength] == in[next + bestLength] && load <uint32> (&in[lookup]) == load <uint32> (&in[next])) {
int32 length = MinMatch;
while (length < target && in[lookup + length] == in[next + length]) {
@ -224,7 +224,7 @@ public:
if ((opEnd - op) < length) {
return UncompressFailure;
}
const auto dist = ((token & 16) << 12) + load16 (ip);
const auto dist = ((token & 16) << 12) + load <uint16> (ip);
ip += 2;
auto cp = op - dist;
@ -251,16 +251,9 @@ public:
}
private:
uint16 load16 (void *ptr) {
uint16 ret;
memcpy (&ret, ptr, sizeof (uint16));
return ret;
}
uint32 load32 (void *ptr) {
uint32 ret;
memcpy (&ret, ptr, sizeof (uint32));
template <typename U> U load (void *ptr) {
U ret;
memcpy (&ret, ptr, sizeof (U));
return ret;
}
@ -274,7 +267,7 @@ private:
}
uint32 hash32 (void *ptr) {
return (load32 (ptr) * 0x9e3779b9) >> (32 - HashBits);
return (load <uint32> (ptr) * 0x9e3779b9) >> (32 - HashBits);
}
void copy (uint8 *dst, uint8 *src, int32 count) {

View file

@ -268,13 +268,13 @@ CR_DECLARE_SCOPED_ENUM (Weapon,
// buy counts
CR_DECLARE_SCOPED_ENUM (BuyState,
PrimaryWeapon = 0,
ArmorVestHelm,
SecondaryWeapon,
Grenades,
DefusalKit,
Ammo,
NightVision,
Done
ArmorVestHelm,
SecondaryWeapon,
Grenades,
DefusalKit,
Ammo,
NightVision,
Done
)
// economics limits
@ -979,7 +979,7 @@ public:
void showChaterIcon (bool show);
void clearSearchNodes ();
void checkBreakable (edict_t *touch);
void checkBreablesAround ();
void checkBreakablesAround ();
void startTask (Task id, float desire, int data, float time, bool resume);
void clearTask (Task id);
void filterTasks ();

View file

@ -398,7 +398,7 @@ void Bot::checkBreakable (edict_t *touch) {
startTask (Task::ShootBreakable, TaskPri::ShootBreakable, kInvalidNodeIndex, 0.0f, false);
}
void Bot::checkBreablesAround () {
void Bot::checkBreakablesAround () {
if (!yb_destroy_breakables_around.bool_ () || m_currentWeapon == Weapon::Knife || rg.chance (25) || !game.hasBreakables () || m_seeEnemyTime + 4.0f > game.time () || !game.isNullEntity (m_enemy) || !hasPrimaryWeapon ()) {
return;
}
@ -2282,7 +2282,6 @@ void Bot::checkRadioQueue () {
pushRadioMessage (Radio::RogerThat);
m_campButtons = 0;
startTask (Task::Pause, TaskPri::Pause, kInvalidNodeIndex, game.time () + rg.float_ (30.0f, 60.0f), false);
}
}
@ -2875,7 +2874,7 @@ void Bot::frame () {
checkSpawnConditions ();
checkForChat ();
checkBreablesAround ();
checkBreakablesAround ();
if (game.is (GameFlags::HasBotVoice)) {
showChaterIcon (false); // end voice feedback
@ -3753,7 +3752,7 @@ void Bot::bombDefuse_ () {
bool defuseError = false;
// exception: bomb has been defused
if (bombPos.empty () || game.isNullEntity (m_pickupItem)) {
if (bombPos.empty () || !pickupExists) {
defuseError = true;
if (m_numFriendsLeft != 0 && rg.chance (50)) {

View file

@ -922,7 +922,7 @@ void Bot::fireWeapons () {
m_reloadState = Reload::Primary;
m_reloadCheckTime = game.time ();
if (rg.chance (cr::abs (m_difficulty * 25 - 100))) {
if (rg.chance (cr::abs (m_difficulty * 25 - 100)) && rg.chance (5)) {
pushRadioMessage (Radio::NeedBackup);
}
}