So i guess the solution is to disable tripmines compleletely? I just did some more digging (gdb is still active on crashed process). It seems that in grenade_ tripmine, (and evwhere else) VPhysicsInitNormal is called with 3 arguments. But in baseentity_shared.cpp (only place coded) VPhysicsInitNormal has 4 arguments? I am more confused. I guess somewhere VPhysicsInitNormal is overided, but it is hard to debug?
(gdb) print GetSolidFlags() $5 = 8 (gdb) print m_pPhysicsObject $6 = (IPhysicsObject *) 0x0 (gdb) print VPhysicsInitNormal( SOLID_BBOX, GetSolidFlags() | FSOLID_TRIGGER, true ) too few arguments in function call src\game\shared\baseentity_shared.cpp == stock valve code (4 arguments) IPhysicsObject *CBaseEntity::VPhysicsInitNormal( SolidType_t solidType, int nSolidFlags, bool createAsleep, solid_t *pSolid ) { src\game\server\hl2mp\grenade_tripmine.cpp:: line 77 ( 3 arguments ) IPhysicsObject *pObject = VPhysicsInitNormal( SOLID_BBOX, GetSolidFlags() | FSOLID_TRIGGER, true ); On Mon, Oct 11, 2010 at 8:17 PM, Tony Paloma <drunkenf...@hotmail.com> wrote: > VPhysicsInitNormal is not guaranteed to return non-null. It can fail for a > variety of reasons. Take a look at CBaseEntity::VPhysicsInitNormal in > baseentity_shared.cpp to see. > > -----Original Message----- > From: hlcoders-boun...@list.valvesoftware.com > [mailto:hlcoders-boun...@list.valvesoftware.com] On Behalf Of Nick > Sent: Monday, October 11, 2010 6:00 PM > To: Discussion of Half-Life Programming > Subject: [hlcoders] void CTripmineGrenade::Spawn( void ) linux crash > orangebox stock code....... > > gcc (GCC) 4.2.4 > > Linux dual-core 2.6.28-19-generic #65-Ubuntu SMP Thu Sep 16 14:14:28 UTC > 2010 i686 GNU/Linux > > n...@dual-core:~/srcds/orangebox/orangebox$ ./srcds_i486 --version > Warning: falling back to auto detection of vproject directory. > Unable to find gameinfo.txt. Solutions: > > 1. Read http://www.valve-erc.com/srcsdk/faq.html#NoGameDir > > > > > > ldd server_i486.so > linux-gate.so.1 => (0xb7784000) > libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb6457000) > libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb6453000) > tier0_i486.so => not found > vstdlib_i486.so => not found > steam_api_i486.so => not found > libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb62ef000) > /lib/ld-linux.so.2 (0xb7785000) > > > > > 69 void CTripmineGrenade::Spawn( void ) > 70 { > 71 Precache( ); > 72 // motor > (gdb) l > 73 SetMoveType( MOVETYPE_FLY ); > 74 SetSolid( SOLID_BBOX ); > 75 SetModel( "models/Weapons/w_slam.mdl" ); > 76 > 77 IPhysicsObject *pObject = VPhysicsInitNormal( SOLID_BBOX, > GetSolidFlags() | FSOLID_TRIGGER, true ); > 78 pObject->EnableMotion( false ); > 79 SetCollisionGroup( COLLISION_GROUP_WEAPON ); > 80 > 81 SetCycle( 0.0f ); > 82 m_nBody = 3; > > > > (gdb) bt > #0 0xb520b112 in CTripmineGrenade::Spawn (this=0xbdf5bf0) at > ../game/server/hl2mp/grenade_tripmine.cpp:78 > #1 0xb4ef5d39 in DispatchSpawn (pEntity=0xbdf5bf0) at > ../game/server/util.cpp:1880 > #2 0xb4d0d348 in CBaseEntity::Create (szName=0xb53ba629 "npc_tripmine", > vecorig...@0xbfbedfac, vecangl...@0xbfbedf54, > pOwner=0x0) > at ../game/server/baseentity.cpp:2976 > #3 0xb5064b4e in CWeapon_SLAM::TripmineAttach (this=0xbdf28d8) at > ../game/server/../shared/hl2mp/weapon_slam.cpp:381 > #4 0xb5064d70 in CWeapon_SLAM::WeaponIdle (this=0xbdf28d8) at > ../game/server/../shared/hl2mp/weapon_slam.cpp:875 > #5 0xb5063c16 in CWeapon_SLAM::ItemPostFrame (this=0xbdf28d8) at > ../game/server/../shared/hl2mp/weapon_slam.cpp:789 > #6 0xb4fa108d in CBasePlayer::ItemPostFrame (this=0xbdd0810) at > ../game/server/../shared/baseplayer_shared.cpp:229 > #7 0xb50af8f1 in CHL2_Player::ItemPostFrame (this=0xbdd0810) at > ../game/server/hl2/hl2_player.cpp:3588 > #8 0xb4e5b3a9 in CBasePlayer::PostThink (this=0xbdd0810) at > ../game/server/player.cpp:4436 > #9 0xb50b4643 in CHL2_Player::PostThink (this=0xbdd0810) at > ../game/server/hl2/hl2_player.cpp:891 > #10 0xb5205732 in CHL2MP_Player::PostThink (this=0xbdd0810) at > ../game/server/hl2mp/hl2mp_player.cpp:998 > #11 0xb4e68a5e in CPlayerMove::RunPostThink (this=0xb56a56b8, > player=0xbdd0810) at ../game/server/player_command.cpp:302 > #12 0xb4e69a6c in CPlayerMove::RunCommand (this=0xb56a56b8, > player=0xbdd0810, ucmd=0xbdeddac, moveHelper=0xb566cae8) > at ../game/server/player_command.cpp:424 > > > > > (gdb) print pObject > $3 = (IPhysicsObject *) 0x0 > (gdb) print this > $4 = (CTripmineGrenade * const) 0xbdf5bf0 > (gdb) > > > how on earth is pObject null when it was just created? > > 77 IPhysicsObject *pObject = VPhysicsInitNormal( SOLID_BBOX, > GetSolidFlags() | FSOLID_TRIGGER, true ); > 78 pObject->EnableMotion( false ); > > src\game\server\hl2mp\grenade_tripmine.cpp > > > I am really really lost here. > > _______________________________________________ > To unsubscribe, edit your list preferences, or view the list archives, > please visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > > _______________________________________________ > To unsubscribe, edit your list preferences, or view the list archives, please > visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders