From 5ba01bb38dae8502941f293e553229d1bf4c564d Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 18 May 2023 12:05:16 +0200 Subject: [PATCH] - fix crash in RR when dying with an item-less weapon. --- source/games/duke/src/player_r.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/games/duke/src/player_r.cpp b/source/games/duke/src/player_r.cpp index ad6facd24..ef877402c 100644 --- a/source/games/duke/src/player_r.cpp +++ b/source/games/duke/src/player_r.cpp @@ -604,7 +604,8 @@ void checkweapons_r(player_struct* p) { static PClassActor* const* const weapon_sprites[MAX_WEAPONS] = { &DukeMeleeAttackClass, &RedneckRevolverClass, &RedneckShotgunClass, &RedneckRiflegunClass, &RedneckDynamiteClass, &RedneckCrossbowClass, &RedneckRipsawClass, &RedneckBlasterClass, - &RedneckPowderKegClass, &RedneckBowlingBallClass, &RedneckTitgunClass, &RedneckDynamiteClass }; + &RedneckPowderKegClass, &RedneckTitgunClass, &RedneckDynamiteClass, &RedneckRipsawClass, &RedneckBowlingBallClass, + nullptr, nullptr, nullptr, &RedneckCrossbowClass }; if (isRRRA()) { @@ -651,7 +652,10 @@ void checkweapons_r(player_struct* p) if (p->curr_weapon > 0) { if (krand() & 1) - spawn(p->GetActor(), *weapon_sprites[p->curr_weapon]); + { + auto weap = weapon_sprites[p->curr_weapon]; + if (weap && *weap) spawn(p->GetActor(), *weap); + } else switch (p->curr_weapon) { case CHICKEN_WEAPON: