#include <IGUIButton.h>
#include <IGUIStaticText.h>
#include <IGUIFont.h>
+#include "log.h"
void drawInventoryItem(video::IVideoDriver *driver,
gui::IGUIFont *font,
if(amount >= 0)
{
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);
if(s.isValid())
{
- dstream<<"Mouse down on "<<s.inventoryname
+ infostream<<"Mouse down on "<<s.inventoryname
<<"/"<<s.listname<<" "<<s.i<<std::endl;
if(m_selected_item)
{
InventoryList *list_to =
inv_to->getList(s.listname);
if(list_from == NULL)
- dstream<<"from list doesn't exist"<<std::endl;
+ infostream<<"from list doesn't exist"<<std::endl;
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
bool source_empties = false;
if(list_from && list_to
&& 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();
a->count = amount;
a->from_inv = m_selected_item->inventoryname;
{
if(!canTakeFocus(event.GUIEvent.Element))
{
- dstream<<"GUIInventoryMenu: Not allowing focus change."
+ infostream<<"GUIInventoryMenu: Not allowing focus change."
<<std::endl;
// Returning true disables focus change
return true;
while(f.atend() == false)
{
std::string type = trim(f.next("["));
- //dstream<<"type="<<type<<std::endl;
+ //infostream<<"type="<<type<<std::endl;
if(type == "list")
{
std::string name = f.next(";");
s32 pos_y = stoi(f.next(";"));
s32 geom_x = 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<<")"
<<", geom=("<<geom_x<<","<<geom_y<<")"
<<std::endl;
{
invsize.X = 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("]");
}
else
{
// Ignore others
std::string ts = f.next("]");
- dstream<<"Unknown DrawSpec: type="<<type<<", data=\""<<ts<<"\""
+ infostream<<"Unknown DrawSpec: type="<<type<<", data=\""<<ts<<"\""
<<std::endl;
}
}
#include "content_inventory.h"
#include "content_sao.h"
#include "player.h"
+#include "log.h"
/*
InventoryItem
}
else
{
- dstream<<"Unknown InventoryItem name=\""<<name<<"\""<<std::endl;
+ infostream<<"Unknown InventoryItem name=\""<<name<<"\""<<std::endl;
throw SerializationError("Unknown InventoryItem name");
}
}
return a;
}
-void IMoveAction::apply(InventoryContext *c, InventoryManager *mgr)
+static std::string describeC(const struct InventoryContext *c)
{
-#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;*/
+ 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)
+{
Inventory *inv_from = mgr->getInventory(c, from_inv);
Inventory *inv_to = mgr->getInventory(c, to_inv);
-
- if(!inv_from || !inv_to)
- {
- dstream<<__FUNCTION_NAME<<": Operation not allowed "
- <<"(inventories not found)"<<std::endl;
+
+ if(!inv_from){
+ infostream<<"IMoveAction::apply(): FAIL: source inventory not found: "
+ <<"context=["<<describeC(c)<<"], from_inv=\""<<from_inv<<"\""
+ <<", 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;
}
InventoryList *list_from = inv_from->getList(from_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(!list_from || !list_to)
- {
- dstream<<__FUNCTION_NAME<<": Operation not allowed "
- <<"(a list doesn't exist)"
- <<std::endl;
+ if(!list_from){
+ infostream<<"IMoveAction::apply(): FAIL: source list not found: "
+ <<"context=["<<describeC(c)<<"], from_inv=\""<<from_inv<<"\""
+ <<", from_list=\""<<from_list<<"\""<<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;
}
if(list_from->getItem(from_i) == NULL)
{
- dstream<<__FUNCTION_NAME<<": Operation not allowed "
- <<"(the source item doesn't exist)"
- <<std::endl;
+ infostream<<"IMoveAction::apply(): FAIL: source item not found: "
+ <<"context=["<<describeC(c)<<"], from_inv=\""<<from_inv<<"\""
+ <<", from_list=\""<<from_list<<"\""
+ <<" from_i="<<from_i<<std::endl;
return;
}
/*
*/
if(inv_from == inv_to && list_from == list_to && from_i == to_i)
{
- dstream<<__FUNCTION_NAME<<": Operation not allowed "
- <<"(source and the destination slots are the same)"<<std::endl;
+ infostream<<"IMoveAction::apply(): FAIL: source and destination slots "
+ <<"are the same: inv=\""<<from_inv<<"\" list=\""<<from_list
+ <<"\" i="<<from_i<<std::endl;
return;
}
mgr->inventoryModified(c, from_inv);
if(from_inv != 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;
}
/*