From 7fde758e26270dd40ac363595204abacccd93740 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 1 Jan 2009 16:46:05 +0000 Subject: [PATCH] - Fixed: SBARINFO used GetSpecies instead of GetClass to check weapon types. - Added a few missing NULL pointer checks to SBARINFO code. SVN r1344 (trunk) --- docs/rh-log.txt | 2 ++ src/g_shared/sbarinfo_display.cpp | 14 +++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/rh-log.txt b/docs/rh-log.txt index 3c1f7e400..f3b831793 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,6 @@ January 1, 2009 (Changes by Graf Zahl) +- Fixed: SBARINFO used GetSpecies instead of GetClass to check weapon types. +- Added a few missing NULL pointer checks to SBARINFO code. - Changed pickup sounds of local player to unpaused to resolve problems with the time freezer and make them behave better. - Fixed: When sounds are paused not all newly started sounds should actually diff --git a/src/g_shared/sbarinfo_display.cpp b/src/g_shared/sbarinfo_display.cpp index 980472ef8..255b1c5bf 100644 --- a/src/g_shared/sbarinfo_display.cpp +++ b/src/g_shared/sbarinfo_display.cpp @@ -1256,30 +1256,30 @@ void DSBarInfo::doCommands(SBarInfoBlock &block, int xOffset, int yOffset, int a const PClass *weapon2 = PClass::FindClass(cmd.string[1]); if(weapon2 != NULL) { - if((cmd.flags & SBARINFOEVENT_NOT) && (weapon1 != CPlayer->ReadyWeapon->GetSpecies() && weapon2 != CPlayer->ReadyWeapon->GetSpecies())) + if((cmd.flags & SBARINFOEVENT_NOT) && (weapon1 != CPlayer->ReadyWeapon->GetClass() && weapon2 != CPlayer->ReadyWeapon->GetClass())) doCommands(cmd.subBlock, xOffset, yOffset, alpha); - else if(!(cmd.flags & SBARINFOEVENT_NOT) && (weapon1 == CPlayer->ReadyWeapon->GetSpecies() || weapon2 == CPlayer->ReadyWeapon->GetSpecies())) + else if(!(cmd.flags & SBARINFOEVENT_NOT) && (weapon1 == CPlayer->ReadyWeapon->GetClass() || weapon2 == CPlayer->ReadyWeapon->GetClass())) doCommands(cmd.subBlock, xOffset, yOffset, alpha); } else { - if(!(cmd.flags & SBARINFOEVENT_NOT) && weapon1 == CPlayer->ReadyWeapon->GetSpecies()) + if(!(cmd.flags & SBARINFOEVENT_NOT) && weapon1 == CPlayer->ReadyWeapon->GetClass()) doCommands(cmd.subBlock, xOffset, yOffset, alpha); - else if((cmd.flags & SBARINFOEVENT_NOT) && weapon1 != CPlayer->ReadyWeapon->GetSpecies()) + else if((cmd.flags & SBARINFOEVENT_NOT) && weapon1 != CPlayer->ReadyWeapon->GetClass()) doCommands(cmd.subBlock, xOffset, yOffset, alpha); } } break; case SBARINFO_USESAMMO: - if ((CPlayer->ReadyWeapon->AmmoType1 != NULL || CPlayer->ReadyWeapon->AmmoType2 != NULL) ^ + if ((CPlayer->ReadyWeapon != NULL && (CPlayer->ReadyWeapon->AmmoType1 != NULL || CPlayer->ReadyWeapon->AmmoType2 != NULL)) ^ !!(cmd.flags & SBARINFOEVENT_NOT)) { doCommands(cmd.subBlock, xOffset, yOffset, alpha); } break; case SBARINFO_USESSECONDARYAMMO: - if((CPlayer->ReadyWeapon->AmmoType2 != NULL && CPlayer->ReadyWeapon->AmmoType2 != CPlayer->ReadyWeapon->AmmoType1 && !(cmd.flags & SBARINFOEVENT_NOT)) || - (CPlayer->ReadyWeapon->AmmoType2 == NULL && cmd.flags & SBARINFOEVENT_NOT)) + if((CPlayer->ReadyWeapon != NULL && CPlayer->ReadyWeapon->AmmoType2 != NULL && CPlayer->ReadyWeapon->AmmoType2 != CPlayer->ReadyWeapon->AmmoType1 && !(cmd.flags & SBARINFOEVENT_NOT)) || + ((CPlayer->ReadyWeapon == NULL || CPlayer->ReadyWeapon->AmmoType2 == NULL) && cmd.flags & SBARINFOEVENT_NOT)) { doCommands(cmd.subBlock, xOffset, yOffset, alpha); }