- added guard against NULL commandtype clicking in icon panel (discovered during testing)
This commit is contained in:
parent
b201cebf3b
commit
9b275a5077
|
@ -552,19 +552,20 @@ void Gui::clickCommonCommand(CommandClass commandClass){
|
|||
}
|
||||
}
|
||||
|
||||
void Gui::mouseDownDisplayUnitSkills(int posDisplay){
|
||||
if(!selection.isEmpty()){
|
||||
if(posDisplay != cancelPos){
|
||||
if(posDisplay!=meetingPointPos){
|
||||
void Gui::mouseDownDisplayUnitSkills(int posDisplay) {
|
||||
if(!selection.isEmpty()) {
|
||||
if(posDisplay != cancelPos) {
|
||||
if(posDisplay!=meetingPointPos) {
|
||||
const Unit *unit= selection.getFrontUnit();
|
||||
|
||||
//uniform selection
|
||||
if(selection.isUniform()){
|
||||
if(unit->getFaction()->reqsOk(display.getCommandType(posDisplay))){
|
||||
if(selection.isUniform()) {
|
||||
const CommandType *ct = display.getCommandType(posDisplay);
|
||||
if(ct != NULL && unit->getFaction()->reqsOk(ct)) {
|
||||
activeCommandType= display.getCommandType(posDisplay);
|
||||
activeCommandClass= activeCommandType->getClass();
|
||||
}
|
||||
else{
|
||||
else {
|
||||
posDisplay= invalidPos;
|
||||
activeCommandType= NULL;
|
||||
activeCommandClass= ccStop;
|
||||
|
@ -573,7 +574,7 @@ void Gui::mouseDownDisplayUnitSkills(int posDisplay){
|
|||
}
|
||||
|
||||
//non uniform selection
|
||||
else{
|
||||
else {
|
||||
activeCommandType= NULL;
|
||||
activeCommandClass= display.getCommandClass(posDisplay);
|
||||
}
|
||||
|
|
|
@ -213,6 +213,10 @@ int Faction::getCountForMaxUnitCount(const UnitType *unitType) const{
|
|||
|
||||
bool Faction::reqsOk(const CommandType *ct) const {
|
||||
assert(ct != NULL);
|
||||
if(ct == NULL) {
|
||||
throw runtime_error("In [Faction::reqsOk] ct == NULL");
|
||||
}
|
||||
|
||||
if(ct->getProduced() != NULL && reqsOk(ct->getProduced()) == false) {
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user