Add proper error messages to GUIInventoryMenu when inventory lists are invalid

This commit is contained in:
Perttu Ahola 2012-06-01 19:33:20 +03:00
parent f3ec1452cd
commit 7d6e80a423
1 changed files with 11 additions and 3 deletions

View File

@ -531,10 +531,18 @@ bool GUIInventoryMenu::OnEvent(const SEvent& event)
assert(inv_s);
InventoryList *list = inv_s->getList(s.listname);
if(list != NULL && (u32) s.i < list->getSize())
s_count = list->getItem(s.i).count;
else
if(list == NULL){
errorstream<<"InventoryMenu: The selected inventory list "
<<"does not exist"<<std::endl;
s.i = -1; // make it invalid again
} else if((u32)s.i >= list->getSize()){
errorstream<<"InventoryMenu: The selected inventory list "
<<"is too small (i="<<s.i<<", size="
<<list->getSize()<<")"<<std::endl;
s.i = -1; // make it invalid again
} else{
s_count = list->getItem(s.i).count;
}
}
bool identical = (m_selected_item != NULL) && s.isValid() &&