rehlds
rehlds copied to clipboard
Natural Selection Linux crash with RCBot
I'm getting a crash running Natural Selection with RCBot on Linux that is predictable when a round starts on any map.
using GDB, I get this snippet:
FATAL ERROR (shutting down): Mod_Handle: bad modelindex #-1
#0 0xf761543b in Sys_Error(char const*, ...) () from /home/username/Desktop/hlds_l/engine_i486.so #1 0xf7593c78 in GetModelPtr(edict_s*) () from /home/username/Desktop/hlds_l/engine_i486.so #2 0xf2d8edf7 in api_caller_void_args_p(void const*, void const*) () from /home/username/Desktop/hlds_l/./ns/addons/metamod/dlls/metamod.so #3 0xf2d9090e in main_hook_function(class_ret_t, unsigned int, enum_api_t, unsigned int, void const*) () from /home/username/Desktop/hlds_l/./ns/addons/metamod/dlls/metamod.so #4 0xf2d9195f in mm_GetModelPtr(edict_s*) () from /home/username/Desktop/hlds_l/./ns/addons/metamod/dlls/metamod.so #5 0xf2b026cd in CBaseAnimating::LookupSequence(char const*, int) () from /home/username/Desktop/hlds_l/ns/dlls/ns_i386.so #6 0xf2b4881f in CBasePlayer::SetAnimation(PLAYER_ANIM) () from /home/username/Desktop/hlds_l/ns/dlls/ns_i386.so #7 0xf2bd8a52 in AvHPlayer::SetUser3(AvHUser3, bool, bool) () from /home/username/Desktop/hlds_l/ns/dlls/ns_i386.so #8 0xf2bd9bb6 in AvHPlayer::SetPlayMode(AvHPlayMode, bool) () from /home/username/Desktop/hlds_l/ns/dlls/ns_i386.so #9 0xf2b9bfd9 in ?? () from /home/username/Desktop/hlds_l/ns/dlls/ns_i386.so #10 0xf2b9ef3c in AvHGamerules::PostWorldPrecacheReset(bool) () from /home/username/Desktop/hlds_l/ns/dlls/ns_i386.so #11 0xf2b9fd69 in AvHGamerules::Think() () from /home/username/Desktop/hlds_l/ns/dlls/ns_i386.so #12 0xf2b0df64 in StartFrame() () from /home/username/Desktop/hlds_l/ns/dlls/ns_i386.so #13 0xf2d92bf0 in main_hook_function_void(unsigned int, enum_api_t, unsigned int, void const*) () from /home/username/Desktop/hlds_l/./ns/addons/metamod/dlls/metamod.so #14 0xf2d958e1 in mm_StartFrame() () from /home/username/Desktop/hlds_l/./ns/addons/metamod/dlls/metamod.so #15 0xf756315d in SV_Physics() () from /home/username/Desktop/hlds_l/engine_i486.so #16 0xf7defe1c in _DYNAMIC () from /lib/libc.so.6 #17 0xffff92bc in ?? () #18 0xf7599688 in SV_Frame() () from /home/username/Desktop/hlds_l/engine_i486.so #19 0x0001278d in ?? () #20 0x18b6e6c7 in ?? () #21 0xc7000000 in ?? () #22 0x41b8b6e6 in ?? () #23 0xab7a16c7 in ?? () #24 0x4024d44b in ?? () #25 0xf764ce28 in vtable for CEngine () from /home/username/Desktop/hlds_l/engine_i486.so #26 0xf75990c8 in _Host_Frame () from /home/username/Desktop/hlds_l/engine_i486.so --Type <RET> for more, q to quit, c to continue without paging-- #27 0xf7598e35 in Host_Frame () from /home/username/Desktop/hlds_l/engine_i486.so #28 0xf7598d22 in CEngine::Frame () from /home/username/Desktop/hlds_l/engine_i486.so #29 0xffffca44 in ?? ()
Changed Model.cpp - Line 1913:
model_t *Mod_Handle(int modelindex)
{
#ifdef REHLDS_FIXES
if (modelindex < -1 || modelindex >= MAX_MODELS) {
Sys_Error("%s: bad modelindex #%i\n", __func__, modelindex);
}
#endif
return g_psv.models[modelindex];
}
That fixed it, but man was it a monumental PITA to implement. The copypasta took 5 seconds, but getting the code to actually compile took 5 hours. Hopefully this patch gets pushed into the main build so a custom build doesn't have to be compiled to get NS working on ReHLDS. I had to do lots of ugly things to the cmakelists.txt that involved -fPIC, and remove HLTV from the compile solution because it kept failing.
I don't suppose you'd be able to help with another problem with NeoTF crashing on Linux would you? https://github.com/dreamstalker/rehlds/issues/922
Hello I'm currently working on RCBot, it appears that this bot is giving me crashes too. And it also appears to apply to EvoBot...