View Single Post
  #2  
Old 09-15-2005, 02:59 PM
fathernitwit
Developer
 
Join Date: Jul 2004
Posts: 773
Default

hey Windcatcher,

thanks for the detailed report... good to see your still lurking around somewhere.

The code which calls FinishTrade() allready takes care of calling Reset right after both finishes, so that code is fine, the only thing which needed adjusting was the code to trade with NPCs, which needed a Reset after the finish. Then you can kill the Reset in Finish Trade:

Code:
Index: trading.cpp
==================================================================
--- trading.cpp (revision 483)
+++ trading.cpp (working copy)
@@ -428,8 +428,7 @@
        // Money @merth: look into how NPC's receive cash
        this->AddMoneyToPP(other->trade->cp, other->trade->sp, other->trade->gp,
 other->trade->pp, true);

-       // Clear trade inventory
-       trade->Reset();
+       //Do not reset the trade here, done by the caller.
 }

 bool Client::CheckTradeLoreConflict(Client* other)
Index: client_packet.cpp
===================================================================
--- client_packet.cpp   (revision 483)
+++ client_packet.cpp   (working copy)
@@ -2966,10 +2967,12 @@
                }
        }
        else if(with){
+               //trading with an NPC
                EQZonePacket* outapp = new EQZonePacket(OP_FinishTrade,0);
                QueuePacket(outapp);
                safe_delete(outapp);
                FinishTrade(with->CastToNPC());
+               trade->Reset();
        }

        return;
Reply With Quote