bool AttributeMap::Change( uint32 attributeID, EvilNumber& old_val, EvilNumber& new_val ) { Notify_OnModuleAttributeChange modChange; modChange.ownerID = mItem.ownerID(); modChange.itemKey = mItem.itemID(); modChange.attributeID = attributeID; modChange.time = Win32TimeNow(); modChange.newValue = new_val.GetPyObject(); modChange.oldValue = old_val.GetPyObject(); return SendAttributeChanges(modChange.Encode()); }
bool AttributeMap::Change( uint32 attributeID, EvilNumber& old_val, EvilNumber& new_val ) { mChanged = true; PyTuple* AttrChange = new PyTuple(7); AttrChange->SetItem(0, new PyString("OnModuleAttributeChange")); AttrChange->SetItem(1, new PyInt(mItem.ownerID())); AttrChange->SetItem(2, new PyInt(mItem.itemID())); AttrChange->SetItem(3, new PyInt(attributeID)); AttrChange->SetItem(4, new PyLong(Win32TimeNow())); AttrChange->SetItem(5, old_val.GetPyObject()); AttrChange->SetItem(6, new_val.GetPyObject()); return SendAttributeChanges(AttrChange); }
/* * InventoryEx */ void InventoryEx::ValidateAddItem(EVEItemFlags flag, InventoryItemRef item) const { //double volume = item->quantity() * item->volume(); EvilNumber volume = item->GetAttribute(AttrQuantity) * item->GetAttribute(AttrVolume); double capacity = GetRemainingCapacity( flag ); if( volume > capacity ) { std::map<std::string, PyRep *> args; args["available"] = new PyFloat( capacity ); args["volume"] = volume.GetPyObject(); throw PyException( MakeUserError( "NotEnoughCargoSpace", args ) ); } }