From 37a9bae2f8f2866ae2cf1a62ef1f66fc81f3fd43 Mon Sep 17 00:00:00 2001 From: Chris Taylor Date: Sun, 9 Jul 2006 03:25:10 +0000 Subject: [PATCH] fix crash when a robot's guided missile explodes --- ChangeLog | 5 +++++ main/laser.c | 7 ++++--- main/object.c | 5 +++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6e697d80..d0c14894 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-07-09 Chris Taylor + + * main/laser.c, main/object.c: fix crash when a robot's guided + missile explodes + 2006-06-05 Chris Taylor * main/slew.h: fix error when building editor with RELEASE diff --git a/main/laser.c b/main/laser.c index b2878b17..f222e6de 100644 --- a/main/laser.c +++ b/main/laser.c @@ -1,4 +1,4 @@ -/* $Id: laser.c,v 1.13 2004-12-19 09:52:59 btb Exp $ */ +/* $Id: laser.c,v 1.14 2006-07-09 03:25:10 chris Exp $ */ /* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO @@ -23,7 +23,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #endif #ifdef RCS -char laser_rcsid[] = "$Id: laser.c,v 1.13 2004-12-19 09:52:59 btb Exp $"; +char laser_rcsid[] = "$Id: laser.c,v 1.14 2006-07-09 03:25:10 chris Exp $"; #endif #include @@ -1536,7 +1536,8 @@ void Laser_do_weapon_sequence(object *obj) // For homing missiles, turn towards target. (unless it's the guided missile) - if (Weapon_info[obj->id].homing_flag && !(obj->id==GUIDEDMISS_ID && obj==Guided_missile[Objects[obj->ctype.laser_info.parent_num].id] && obj->signature==Guided_missile[Objects[obj->ctype.laser_info.parent_num].id]->signature)) { + if (Weapon_info[obj->id].homing_flag && !(obj->id==GUIDEDMISS_ID && obj->ctype.laser_info.parent_type==OBJ_PLAYER && obj==Guided_missile[Objects[obj->ctype.laser_info.parent_num].id] && obj->signature==Guided_missile[Objects[obj->ctype.laser_info.parent_num].id]->signature)) + { vms_vector vector_to_object, temp_vec; fix dot=F1_0; fix speed, max_speed; diff --git a/main/object.c b/main/object.c index e4f60049..57324d6a 100644 --- a/main/object.c +++ b/main/object.c @@ -1,4 +1,4 @@ -/* $Id: object.c,v 1.20 2006-03-05 12:19:42 chris Exp $ */ +/* $Id: object.c,v 1.21 2006-07-09 03:25:10 chris Exp $ */ /* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO @@ -1416,7 +1416,8 @@ void obj_delete(int objnum) Assert(obj->type != OBJ_NONE); Assert(obj != ConsoleObject); - if (obj->type==OBJ_WEAPON && obj->id==GUIDEDMISS_ID) { + if (obj->type==OBJ_WEAPON && obj->id==GUIDEDMISS_ID && obj->ctype.laser_info.parent_type==OBJ_PLAYER) + { pnum=Objects[obj->ctype.laser_info.parent_num].id; mprintf ((0,"Deleting a guided missile! Player %d\n\n",pnum)); -- 2.39.2