mirror of
https://github.com/kevinbentley/Descent3.git
synced 2025-01-22 11:28:56 +00:00
c3a6b1258c
It is possible to cause the death of the CollectorNomad2 object (rush to it before it possibly leaves again into the sidepackets the ship won't fit through). The transition happens here: ``` f0 KillObject (objp=0x3d4d3e0 <Objects+384000>, killer=0x3cef7e0 <Objects>, damage=3) at /home/jengelh/D3/Descent3/damage.cpp:1036 f1 ApplyDamageToGeneric (hit_obj=0x3d4d3e0 <Objects+384000>, killer=0x3cef7e0 <Objects>, damage_type=6, damage=3, server_says=0, weapon_id=255) at /home/jengelh/D3/Descent3/damage.cpp:1401 f2 collide_generic_and_player (robotobj=0x3d4d3e0 <Objects+384000>, playerobj=0x3cef7e0 <Objects>, collision_point=0x7f877f40a830, collision_normal=0x7f877f40a858, f_reverse_normal=true, hit_info=0x7f877f40a810) at /home/jengelh/D3/physics/collide.cpp:2127 f3 collide_two_objects (A=0x3cef7e0 <Objects>, B=0x3d4d3e0 <Objects+384000>, collision_point=0x7f877f40a830, collision_normal=0x7f877f40a858, hit_info=0x7f877f40a810) at /home/jengelh/D3/physics/collide.cpp:2505 f4 do_physics_sim (obj=0x3cef7e0 <Objects>) at /home/jengelh/D3/physics/physics.cpp:1515 f5 ObjDoFrame (obj=0x3cef7e0 <Objects>) at /home/jengelh/D3/Descent3/object.cpp:2824 f6 ObjDoFrameAll () at /home/jengelh/D3/Descent3/object.cpp:2988 f7 GameFrame () at /home/jengelh/D3/Descent3/GameLoop.cpp:2980 f8 GameSequencer () at /home/jengelh/D3/Descent3/gamesequence.cpp:1221 f9 PlayGame () at /home/jengelh/D3/Descent3/game.cpp:834 f10 MainLoop () at /home/jengelh/D3/Descent3/descent.cpp:550 f11 Descent3 () at /home/jengelh/D3/Descent3/descent.cpp:508 f12 oeD3LnxApp::run (this=0x7f877f00db50) at /home/jengelh/D3/Descent3/sdlmain.cpp:151 <frame 2> (gdb) p robotobj $1 = { type = 2 '\002' (OBJ_ROBOT), dummy_type = 255 '\377', id = 276, flags = 2135072, name = 0x5020000aff30 "CollectorNomad2", handle = 2432, next = 178, prev = -1, control_type = 1 '\001' (CT_AI), movement_type = 2 '\002' (MC_ROLLING), render_type = 1 '\001' (LRT_GOURAUD), lighting_render_type = 1 '\001', roomnum = 58, pos = {x = 2350.21484, y = -263.523956, z = 1868.59888}, orient = { rvec = {x = 0.882905424, y = 1.63964216e-14, z = -0.469550878}, uvec = {x = -1.25793295e-14, y = 1, z = 1.12662192e-14}, fvec = {x = 0.469550878, y = -4.04037088e-15, z = 0.882905424} },...} ``` Thus, KillObject sets obj->control_type=CT_DYING. In the same game tick, Level6.cpp then calls aAIGoalFollowPathSimple which triggers the assertion. ``` Int3 in $GIT/Descent3/osiris_predefs.cpp at line 571.(Descent 3 Debug Break) f0 osipf_AIGoalFollowPathSimple (objhandle=2432, path_id=21, guid=7, flags=1052928, slot=3) at $GIT/Descent3/osiris_predefs.cpp:571 f1 AI_GoalFollowPathSimple (objhandle=2432, path_id=21, guid=7, flags=1052928, slot=3) at $GIT/scripts/osiris_import.h:170 f2 aAIGoalFollowPathSimple (objhandle=2432, pathid=21, flags=1052928, goalid=7, priority=3) at $GIT/scripts/DallasFuncs.cpp:3649 f3 LevelScript_0000::CallEvent (this=0x5020000ba430, event=256, data=0x7f963e71d930) at $GIT/scripts/Level6.cpp:2465 f4 CallInstanceEvent (id=0, ptr=0x5020000ba430, event=256, data=0x7f963e71d930) at $GIT/scripts/Level6.cpp:2209 f5 Osiris_CallLevelEvent (event=256, data=0x7f963e71d930) at $GIT/Descent3/OsirisLoadandBind.cpp:2000 f6 GameFrame () at $GIT/Descent3/GameLoop.cpp:3020 f7 GameSequencer () at $GIT/Descent3/gamesequence.cpp:1221 f8 PlayGame () at $GIT/Descent3/game.cpp:834 f9 MainLoop () at $GIT/Descent3/descent.cpp:550 f10 Descent3 () at $GIT/Descent3/descent.cpp:508 f11 oeD3LnxApp::run (this=0x7f963e80db50) at $GIT/Descent3/sdlmain.cpp:151 ``` |
||
---|---|---|
.. | ||
data | ||
lnx | ||
aigame2.cpp | ||
aigame4.cpp | ||
AIGame3_External.h | ||
AIGame3.cpp | ||
AIGame.cpp | ||
barney.cpp | ||
BatteriesIncluded.cpp | ||
BatteriesIncluded.msg | ||
BossCamera.cpp | ||
CanyonsCTF.cpp | ||
CellTestLevel.cpp | ||
CellTestLevel.msg | ||
ChrisTest.cpp | ||
ChrisTest.msg | ||
clutter.cpp | ||
CMakeLists.txt | ||
DallasFuncs.cpp | ||
Gamegauge_FRN.msg | ||
Gamegauge_GER.msg | ||
Gamegauge_ITN.msg | ||
gamegauge_SPN.msg | ||
gcc-game.def | ||
gcc-lvl.def | ||
generic.cpp | ||
Geodomes.cpp | ||
Geodomes.msg | ||
HalfPipe_Ger.msg | ||
HalfPipe.cpp | ||
HalfPipe.msg | ||
InfernalBolt_Ger.msg | ||
InfernalBolt.cpp | ||
InfernalBolt.msg | ||
Inversion.cpp | ||
Inversion.msg | ||
level1_Ger.msg | ||
level1_SPN.msg | ||
level1.cpp | ||
level1.msg | ||
level2_Ger.msg | ||
level2_SPN.msg | ||
level2.cpp | ||
level2.msg | ||
level3_Ger.msg | ||
level3_SPN.msg | ||
level3.cpp | ||
level3.msg | ||
level4_Ger.msg | ||
level4_SPN.msg | ||
level4.cpp | ||
level4.msg | ||
level5_Ger.msg | ||
level5_SPN.msg | ||
level5.cpp | ||
level5.msg | ||
level6_SPN.msg | ||
level7_Ger.msg | ||
level7_SPN.msg | ||
level7.cpp | ||
level7.msg | ||
level8_Ger.msg | ||
level8_SPN.msg | ||
level8.cpp | ||
level8.msg | ||
level9_SPN.msg | ||
level10_Ger.msg | ||
level10_SPN.msg | ||
level10.cpp | ||
level10.msg | ||
level11_Ger.msg | ||
level11_SPN.msg | ||
level11.cpp | ||
level11.msg | ||
level12_SPN.msg | ||
level13_Ger.msg | ||
level13_SPN.msg | ||
level13.cpp | ||
level13.msg | ||
level14_Ger.msg | ||
level14_SPN.msg | ||
level14.cpp | ||
level14.msg | ||
level15_SPN.msg | ||
level17.cpp | ||
level17.msg | ||
Level1_FRN.msg | ||
Level1_ITN.msg | ||
Level2_FRN.msg | ||
Level2_ITN.msg | ||
Level3_FRN.msg | ||
Level3_ITN.msg | ||
Level4_FRN.msg | ||
Level4_ITN.msg | ||
Level5_FRN.msg | ||
Level5_ITN.msg | ||
Level6_FRN.msg | ||
Level6_Ger.msg | ||
Level6_ITN.msg | ||
Level6.cpp | ||
Level6.msg | ||
Level7_FRN.msg | ||
Level7_ITN.msg | ||
Level8_FRN.msg | ||
Level8_ITN.msg | ||
Level9_FRN.msg | ||
Level9_Ger.msg | ||
Level9_ITN.msg | ||
Level9.cpp | ||
Level9.msg | ||
Level10_FRN.msg | ||
Level10_ITN.msg | ||
Level11_FRN.msg | ||
Level11_ITN.msg | ||
Level12_FRN.msg | ||
Level12_Ger.msg | ||
Level12_ITN.msg | ||
Level12.cpp | ||
Level12.msg | ||
Level13_FRN.msg | ||
Level13_ITN.msg | ||
Level14_FRN.msg | ||
Level14_ITN.msg | ||
Level15_FRN.msg | ||
Level15_ITN.msg | ||
Level16.cpp | ||
Level16.msg | ||
LEVEL0.cpp | ||
LEVEL15_Ger.msg | ||
LEVEL15.cpp | ||
LEVEL15.msg | ||
levels1_SPN.msg | ||
levels2_SPN.msg | ||
levelS2_Ger.msg | ||
levelS2.cpp | ||
levelS2.msg | ||
LevelS1_Ger.msg | ||
LevelS1_ITN.msg | ||
LevelS1.cpp | ||
LevelS1.msg | ||
LevelS2_ITN.msg | ||
LEVELS1_FRN.msg | ||
LEVELS2_FRN.msg | ||
linux_lib.cpp | ||
linux_lib.h | ||
merc5.cpp | ||
merc5.msg | ||
Merc1.cpp | ||
Merc1.msg | ||
Merc3.cpp | ||
Merc3.msg | ||
Merc4.cpp | ||
Merc4.msg | ||
Merc6.cpp | ||
Merc6.msg | ||
Merc7.cpp | ||
Merc7.msg | ||
Merc02.cpp | ||
Merc02.msg | ||
MS-GAME.DEF | ||
MS-LVL.DEF | ||
myPowerHouse.cpp | ||
Mysterious_Isle.cpp | ||
Mysterious_Isle.msg | ||
orbital.cpp | ||
osiris_common.h | ||
osiris_import.h | ||
osiris_vector.h | ||
Paranoia.cpp | ||
paranoia.msg | ||
PiccuStation.cpp | ||
PINBALL.MSG | ||
Polaris_FRN.msg | ||
Polaris_Ger.msg | ||
Polaris_ITN.msg | ||
Polaris_SPN.msg | ||
Polaris.cpp | ||
Polaris.msg | ||
Quadsomniac_Ger.msg | ||
Quadsomniac.cpp | ||
Quadsomniac.msg | ||
RudeAwakening.cpp | ||
RudeAwakening.msg | ||
SewerRat.cpp | ||
SewerRat.msg | ||
testscript.cpp | ||
TrainingMission_FRN.msg | ||
TrainingMission_Ger.msg | ||
TrainingMission_ITN.msg | ||
TrainingMission_SPN.msg | ||
TrainingMission.cpp | ||
TrainingMission.msg | ||
Y2K.cpp | ||
Y2K.msg |