Improve inventory debug output
authorPerttu Ahola <celeron55@gmail.com>
Sun, 16 Oct 2011 22:03:45 +0000 (01:03 +0300)
committerPerttu Ahola <celeron55@gmail.com>
Sun, 16 Oct 2011 22:03:45 +0000 (01:03 +0300)
src/guiInventoryMenu.cpp
src/inventory.cpp

index 165d4d862283bae8875b16d083989a8ed4765817..7d49acaa2d1beb735b2eb818e590ffb53c6b121b 100644 (file)
@@ -27,6 +27,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include <IGUIButton.h>
 #include <IGUIStaticText.h>
 #include <IGUIFont.h>
+#include "log.h"
 
 void drawInventoryItem(video::IVideoDriver *driver,
                gui::IGUIFont *font,
@@ -326,11 +327,11 @@ bool GUIInventoryMenu::OnEvent(const SEvent& event)
                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)
                                {
@@ -345,15 +346,15 @@ bool GUIInventoryMenu::OnEvent(const SEvent& event)
                                        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;
@@ -408,7 +409,7 @@ bool GUIInventoryMenu::OnEvent(const SEvent& event)
                {
                        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;
@@ -474,7 +475,7 @@ v2s16 GUIInventoryMenu::makeDrawSpecArrayFromString(
        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(";");
@@ -485,7 +486,7 @@ v2s16 GUIInventoryMenu::makeDrawSpecArrayFromString(
                        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;
@@ -498,14 +499,14 @@ v2s16 GUIInventoryMenu::makeDrawSpecArrayFromString(
                {
                        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;
                }
        }
index b8afbc81f32b3f60b8d897f5cded51014af43cf7..92ef3b011f708c5fbb744d90355b3172093c9919 100644 (file)
@@ -32,6 +32,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "content_inventory.h"
 #include "content_sao.h"
 #include "player.h"
+#include "log.h"
 
 /*
        InventoryItem
@@ -117,7 +118,7 @@ InventoryItem* InventoryItem::deSerialize(std::istream &is)
        }
        else
        {
-               dstream<<"Unknown InventoryItem name=\""<<name<<"\""<<std::endl;
+               infostream<<"Unknown InventoryItem name=\""<<name<<"\""<<std::endl;
                throw SerializationError("Unknown InventoryItem name");
        }
 }
@@ -738,51 +739,56 @@ InventoryAction * InventoryAction::deSerialize(std::istream &is)
        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;
        }
        /*
@@ -790,8 +796,9 @@ void IMoveAction::apply(InventoryContext *c, InventoryManager *mgr)
        */
        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;
        }
        
@@ -832,7 +839,16 @@ void IMoveAction::apply(InventoryContext *c, InventoryManager *mgr)
        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;
 }
 
 /*