Instead of the spacing being completely difficulty dependent (which would cause them not to rubberband to 1st place if they were any difficulty lower than 9), it's based on their difficulty & overall race standings & a little bit of port priority instead. This enables you to see a pesudo "rival" even when every bot is the same difficulty.
Using strcpy is stupid because we don't know how long the argument would be.
There's no need for a buffer anyway.
(cherry picked from commit 4e321012894b2aa87e312597f19be26b30545a8b)
- Cleans up multiple FixedMul instances, ensuring only fixed_t numbers are ever passed in.
- Prevents speed values from overflowing by giving it a maximum. This both gives you more control when moving above 200% top speed, and fixes the bug which corrupted your turn inputs (turning wrong direction, turning without pressing anything, etc) when moving too fast.
- Bots can roll & use eggboxes now
- Bots can be "tricked" by eggboxes and treat them like normal items, depending on their difficulty and how many normal items are around them.
- If exploding and in 1st place, they'll slow down to try and find someone to explode next to.
- Item usage is difficulty dependent, and thus far more aggressive for the rivals
Thing type 2004, adds a map-defined point for bots to gravitate towards or away from.
Angle: Changes radius, defaults to a 32 radius (or 64x64 area) without.
Ambush: When off, makes bots steer towards. When on, makes bots steer away.
Parameter: Changes how much the bot steers away/towards this point. If 0, defaults to 2.
(also, made bots ignore strong offroad if they could take a shortcut)
Rather than trying to steer away from walls (and failing), just pull the predicted point back and make the radius stricter.
Not an ideal solution compared to what the other method was trying to go for, but this has a better success rate -- and even in cases where false positives come up (like many instances Ezo pointed out), they will no longer be incapacitated by it.