Improve inventory debug output
This commit is contained in:
parent
9ff8067426
commit
5f39885975
|
@ -27,6 +27,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include <IGUIButton.h>
|
#include <IGUIButton.h>
|
||||||
#include <IGUIStaticText.h>
|
#include <IGUIStaticText.h>
|
||||||
#include <IGUIFont.h>
|
#include <IGUIFont.h>
|
||||||
|
#include "log.h"
|
||||||
|
|
||||||
void drawInventoryItem(video::IVideoDriver *driver,
|
void drawInventoryItem(video::IVideoDriver *driver,
|
||||||
gui::IGUIFont *font,
|
gui::IGUIFont *font,
|
||||||
|
@ -326,11 +327,11 @@ bool GUIInventoryMenu::OnEvent(const SEvent& event)
|
||||||
if(amount >= 0)
|
if(amount >= 0)
|
||||||
{
|
{
|
||||||
v2s32 p(event.MouseInput.X, event.MouseInput.Y);
|
v2s32 p(event.MouseInput.X, event.MouseInput.Y);
|
||||||
//dstream<<"Mouse down at p=("<<p.X<<","<<p.Y<<")"<<std::endl;
|
//infostream<<"Mouse down at p=("<<p.X<<","<<p.Y<<")"<<std::endl;
|
||||||
ItemSpec s = getItemAtPos(p);
|
ItemSpec s = getItemAtPos(p);
|
||||||
if(s.isValid())
|
if(s.isValid())
|
||||||
{
|
{
|
||||||
dstream<<"Mouse down on "<<s.inventoryname
|
infostream<<"Mouse down on "<<s.inventoryname
|
||||||
<<"/"<<s.listname<<" "<<s.i<<std::endl;
|
<<"/"<<s.listname<<" "<<s.i<<std::endl;
|
||||||
if(m_selected_item)
|
if(m_selected_item)
|
||||||
{
|
{
|
||||||
|
@ -345,15 +346,15 @@ bool GUIInventoryMenu::OnEvent(const SEvent& event)
|
||||||
InventoryList *list_to =
|
InventoryList *list_to =
|
||||||
inv_to->getList(s.listname);
|
inv_to->getList(s.listname);
|
||||||
if(list_from == NULL)
|
if(list_from == NULL)
|
||||||
dstream<<"from list doesn't exist"<<std::endl;
|
infostream<<"from list doesn't exist"<<std::endl;
|
||||||
if(list_to == NULL)
|
if(list_to == NULL)
|
||||||
dstream<<"to list doesn't exist"<<std::endl;
|
infostream<<"to list doesn't exist"<<std::endl;
|
||||||
// Indicates whether source slot completely empties
|
// Indicates whether source slot completely empties
|
||||||
bool source_empties = false;
|
bool source_empties = false;
|
||||||
if(list_from && list_to
|
if(list_from && list_to
|
||||||
&& list_from->getItem(m_selected_item->i) != NULL)
|
&& list_from->getItem(m_selected_item->i) != NULL)
|
||||||
{
|
{
|
||||||
dstream<<"Handing IACTION_MOVE to manager"<<std::endl;
|
infostream<<"Handing IACTION_MOVE to manager"<<std::endl;
|
||||||
IMoveAction *a = new IMoveAction();
|
IMoveAction *a = new IMoveAction();
|
||||||
a->count = amount;
|
a->count = amount;
|
||||||
a->from_inv = m_selected_item->inventoryname;
|
a->from_inv = m_selected_item->inventoryname;
|
||||||
|
@ -408,7 +409,7 @@ bool GUIInventoryMenu::OnEvent(const SEvent& event)
|
||||||
{
|
{
|
||||||
if(!canTakeFocus(event.GUIEvent.Element))
|
if(!canTakeFocus(event.GUIEvent.Element))
|
||||||
{
|
{
|
||||||
dstream<<"GUIInventoryMenu: Not allowing focus change."
|
infostream<<"GUIInventoryMenu: Not allowing focus change."
|
||||||
<<std::endl;
|
<<std::endl;
|
||||||
// Returning true disables focus change
|
// Returning true disables focus change
|
||||||
return true;
|
return true;
|
||||||
|
@ -474,7 +475,7 @@ v2s16 GUIInventoryMenu::makeDrawSpecArrayFromString(
|
||||||
while(f.atend() == false)
|
while(f.atend() == false)
|
||||||
{
|
{
|
||||||
std::string type = trim(f.next("["));
|
std::string type = trim(f.next("["));
|
||||||
//dstream<<"type="<<type<<std::endl;
|
//infostream<<"type="<<type<<std::endl;
|
||||||
if(type == "list")
|
if(type == "list")
|
||||||
{
|
{
|
||||||
std::string name = f.next(";");
|
std::string name = f.next(";");
|
||||||
|
@ -485,7 +486,7 @@ v2s16 GUIInventoryMenu::makeDrawSpecArrayFromString(
|
||||||
s32 pos_y = stoi(f.next(";"));
|
s32 pos_y = stoi(f.next(";"));
|
||||||
s32 geom_x = stoi(f.next(","));
|
s32 geom_x = stoi(f.next(","));
|
||||||
s32 geom_y = stoi(f.next(";"));
|
s32 geom_y = stoi(f.next(";"));
|
||||||
dstream<<"list name="<<name<<", subname="<<subname
|
infostream<<"list name="<<name<<", subname="<<subname
|
||||||
<<", pos=("<<pos_x<<","<<pos_y<<")"
|
<<", pos=("<<pos_x<<","<<pos_y<<")"
|
||||||
<<", geom=("<<geom_x<<","<<geom_y<<")"
|
<<", geom=("<<geom_x<<","<<geom_y<<")"
|
||||||
<<std::endl;
|
<<std::endl;
|
||||||
|
@ -498,14 +499,14 @@ v2s16 GUIInventoryMenu::makeDrawSpecArrayFromString(
|
||||||
{
|
{
|
||||||
invsize.X = stoi(f.next(","));
|
invsize.X = stoi(f.next(","));
|
||||||
invsize.Y = stoi(f.next(";"));
|
invsize.Y = stoi(f.next(";"));
|
||||||
dstream<<"invsize ("<<invsize.X<<","<<invsize.Y<<")"<<std::endl;
|
infostream<<"invsize ("<<invsize.X<<","<<invsize.Y<<")"<<std::endl;
|
||||||
f.next("]");
|
f.next("]");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Ignore others
|
// Ignore others
|
||||||
std::string ts = f.next("]");
|
std::string ts = f.next("]");
|
||||||
dstream<<"Unknown DrawSpec: type="<<type<<", data=\""<<ts<<"\""
|
infostream<<"Unknown DrawSpec: type="<<type<<", data=\""<<ts<<"\""
|
||||||
<<std::endl;
|
<<std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include "content_inventory.h"
|
#include "content_inventory.h"
|
||||||
#include "content_sao.h"
|
#include "content_sao.h"
|
||||||
#include "player.h"
|
#include "player.h"
|
||||||
|
#include "log.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
InventoryItem
|
InventoryItem
|
||||||
|
@ -117,7 +118,7 @@ InventoryItem* InventoryItem::deSerialize(std::istream &is)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dstream<<"Unknown InventoryItem name=\""<<name<<"\""<<std::endl;
|
infostream<<"Unknown InventoryItem name=\""<<name<<"\""<<std::endl;
|
||||||
throw SerializationError("Unknown InventoryItem name");
|
throw SerializationError("Unknown InventoryItem name");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -738,51 +739,56 @@ InventoryAction * InventoryAction::deSerialize(std::istream &is)
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static std::string describeC(const struct InventoryContext *c)
|
||||||
|
{
|
||||||
|
if(c->current_player == NULL)
|
||||||
|
return "current_player=NULL";
|
||||||
|
else
|
||||||
|
return std::string("current_player=") + c->current_player->getName();
|
||||||
|
}
|
||||||
|
|
||||||
void IMoveAction::apply(InventoryContext *c, InventoryManager *mgr)
|
void IMoveAction::apply(InventoryContext *c, InventoryManager *mgr)
|
||||||
{
|
{
|
||||||
#if 1
|
|
||||||
|
|
||||||
/*dstream<<"from_inv="<<from_inv<<" to_inv="<<to_inv<<std::endl;
|
|
||||||
dstream<<"from_list="<<from_list<<" to_list="<<to_list<<std::endl;
|
|
||||||
dstream<<"from_i="<<from_i<<" to_i="<<to_i<<std::endl;*/
|
|
||||||
|
|
||||||
Inventory *inv_from = mgr->getInventory(c, from_inv);
|
Inventory *inv_from = mgr->getInventory(c, from_inv);
|
||||||
Inventory *inv_to = mgr->getInventory(c, to_inv);
|
Inventory *inv_to = mgr->getInventory(c, to_inv);
|
||||||
|
|
||||||
if(!inv_from || !inv_to)
|
if(!inv_from){
|
||||||
{
|
infostream<<"IMoveAction::apply(): FAIL: source inventory not found: "
|
||||||
dstream<<__FUNCTION_NAME<<": Operation not allowed "
|
<<"context=["<<describeC(c)<<"], from_inv=\""<<from_inv<<"\""
|
||||||
<<"(inventories not found)"<<std::endl;
|
<<", to_inv=\""<<to_inv<<"\""<<std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(!inv_to){
|
||||||
|
infostream<<"IMoveAction::apply(): FAIL: destination inventory not found: "
|
||||||
|
"context=["<<describeC(c)<<"], from_inv=\""<<from_inv<<"\""
|
||||||
|
<<", to_inv=\""<<to_inv<<"\""<<std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
InventoryList *list_from = inv_from->getList(from_list);
|
InventoryList *list_from = inv_from->getList(from_list);
|
||||||
InventoryList *list_to = inv_to->getList(to_list);
|
InventoryList *list_to = inv_to->getList(to_list);
|
||||||
|
|
||||||
/*dstream<<"list_from="<<list_from<<" list_to="<<list_to
|
|
||||||
<<std::endl;*/
|
|
||||||
/*if(list_from)
|
|
||||||
dstream<<" list_from->getItem(from_i)="<<list_from->getItem(from_i)
|
|
||||||
<<std::endl;
|
|
||||||
if(list_to)
|
|
||||||
dstream<<" list_to->getItem(to_i)="<<list_to->getItem(to_i)
|
|
||||||
<<std::endl;*/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
If a list doesn't exist or the source item doesn't exist
|
If a list doesn't exist or the source item doesn't exist
|
||||||
*/
|
*/
|
||||||
if(!list_from || !list_to)
|
if(!list_from){
|
||||||
{
|
infostream<<"IMoveAction::apply(): FAIL: source list not found: "
|
||||||
dstream<<__FUNCTION_NAME<<": Operation not allowed "
|
<<"context=["<<describeC(c)<<"], from_inv=\""<<from_inv<<"\""
|
||||||
<<"(a list doesn't exist)"
|
<<", from_list=\""<<from_list<<"\""<<std::endl;
|
||||||
<<std::endl;
|
return;
|
||||||
|
}
|
||||||
|
if(!list_to){
|
||||||
|
infostream<<"IMoveAction::apply(): FAIL: destination list not found: "
|
||||||
|
<<"context=["<<describeC(c)<<"], to_inv=\""<<to_inv<<"\""
|
||||||
|
<<", to_list=\""<<to_list<<"\""<<std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(list_from->getItem(from_i) == NULL)
|
if(list_from->getItem(from_i) == NULL)
|
||||||
{
|
{
|
||||||
dstream<<__FUNCTION_NAME<<": Operation not allowed "
|
infostream<<"IMoveAction::apply(): FAIL: source item not found: "
|
||||||
<<"(the source item doesn't exist)"
|
<<"context=["<<describeC(c)<<"], from_inv=\""<<from_inv<<"\""
|
||||||
<<std::endl;
|
<<", from_list=\""<<from_list<<"\""
|
||||||
|
<<" from_i="<<from_i<<std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
@ -790,8 +796,9 @@ void IMoveAction::apply(InventoryContext *c, InventoryManager *mgr)
|
||||||
*/
|
*/
|
||||||
if(inv_from == inv_to && list_from == list_to && from_i == to_i)
|
if(inv_from == inv_to && list_from == list_to && from_i == to_i)
|
||||||
{
|
{
|
||||||
dstream<<__FUNCTION_NAME<<": Operation not allowed "
|
infostream<<"IMoveAction::apply(): FAIL: source and destination slots "
|
||||||
<<"(source and the destination slots are the same)"<<std::endl;
|
<<"are the same: inv=\""<<from_inv<<"\" list=\""<<from_list
|
||||||
|
<<"\" i="<<from_i<<std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -832,7 +839,16 @@ void IMoveAction::apply(InventoryContext *c, InventoryManager *mgr)
|
||||||
mgr->inventoryModified(c, from_inv);
|
mgr->inventoryModified(c, from_inv);
|
||||||
if(from_inv != to_inv)
|
if(from_inv != to_inv)
|
||||||
mgr->inventoryModified(c, to_inv);
|
mgr->inventoryModified(c, to_inv);
|
||||||
#endif
|
|
||||||
|
infostream<<"IMoveAction::apply(): moved at "
|
||||||
|
<<"["<<describeC(c)<<"]"
|
||||||
|
<<" from inv=\""<<from_inv<<"\""
|
||||||
|
<<" list=\""<<from_list<<"\""
|
||||||
|
<<" i="<<from_i
|
||||||
|
<<" to inv=\""<<to_inv<<"\""
|
||||||
|
<<" list=\""<<to_list<<"\""
|
||||||
|
<<" i="<<to_i
|
||||||
|
<<std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue