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); assert(inv_s);
InventoryList *list = inv_s->getList(s.listname); InventoryList *list = inv_s->getList(s.listname);
if(list != NULL && (u32) s.i < list->getSize()) if(list == NULL){
s_count = list->getItem(s.i).count; errorstream<<"InventoryMenu: The selected inventory list "
else <<"does not exist"<<std::endl;
s.i = -1; // make it invalid again 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() && bool identical = (m_selected_item != NULL) && s.isValid() &&