The bot controller seems to be a valid pointer. As far as I can see the call stack is also valid, as it is initiating on my bot add command it is simplty working through from there. In game frame it also seems to be valid coming from engine.dll
I commented out the run player move command and the bot's think command, and the game still crashed. All it was doing was adding a bot and setting up data structures (but not using them).
Code:
0E44901C call eax
(--> end of game frame function)
0E44901E add esi,1
0E449021 cmp esi,dword ptr [edi+10h]
0E449024 jl 0E448FF0
0E449026 pop ebx
0E449027 mov ecx,dword ptr ds:[0E68DFFCh]
0E44902D mov edx,dword ptr [ecx]
0E44902F mov eax,dword ptr [edx+10h]
0E449032 push ebp
0E449033 call eax <-- crashes in this call somewhere (lonnnng function...)
I also don't know how to get the correct origin from an arbitrary entity in the Orange box code ? My old commands using the Networkable and PVS info won't work any more. I just need to use PlayerInfo to get the origin but that only works for players, and n TF2 the origin seems to be at the feet of the player model, no in the middle
And the problem with using weapon select cmd is that we don't know if the bot actually has the weapon (or we don't know if we have enough ammo left in the weapon to actually use it)