diff --git a/docs/rh-log.txt b/docs/rh-log.txt index ab69effb3a..0ef17a33e9 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,5 @@ September 6, 2009 (Changes by Graf Zahl) +- fixed: Trying to pick up an object of the Ammo base class caused a crash. - changed line_t's sidenum into sidedef pointers. - changed side_t's linenum into a linedef pointer. - Added PinkSilver's SetActorVelocity code submission (with optimizations.) diff --git a/src/g_shared/a_pickups.cpp b/src/g_shared/a_pickups.cpp index 523aaca237..2753a750b0 100644 --- a/src/g_shared/a_pickups.cpp +++ b/src/g_shared/a_pickups.cpp @@ -55,7 +55,7 @@ const PClass *AAmmo::GetParentAmmo () const { const PClass *type = GetClass (); - while (type->ParentClass != RUNTIME_CLASS(AAmmo)) + while (type->ParentClass != RUNTIME_CLASS(AAmmo) && type->ParentClass != NULL) { type = type->ParentClass; } @@ -128,7 +128,7 @@ AInventory *AAmmo::CreateCopy (AActor *other) amount = FixedMul(amount, G_SkillProperty(SKILLP_AmmoFactor)); } - if (GetClass()->ParentClass != RUNTIME_CLASS(AAmmo)) + if (GetClass()->ParentClass != RUNTIME_CLASS(AAmmo) && GetClass() != RUNTIME_CLASS(AAmmo)) { const PClass *type = GetParentAmmo(); assert (type->ActorInfo != NULL);