/** * Swap the position of 2 items. * @author digitalseraphim * @param string $item1 * @param string $item2 * @return int */ public function swapInvItems($item1, $item2) { $items1 = array_reverse($this->getInvItems($item1)); $items2 = array_reverse($this->getInvItems($item2)); if (count($items1) == 0) { return -1; } if (count($items2) == 0) { return -2; } if ($items1[0]->getName() == $items2[0]->getName()) { return -3; } $this->sr4_inventory = GWF_Array::swapAssoc($this->sr4_inventory, $items1[0]->getID(), $items2[0]->getID()); $temp = $items1[0]->getMicrotime(); # Look ma, without temp! if ($temp == $items2[0]->getMicrotime()) { $temp += 0.001; // 1ms } $items1[0]->saveMicrotime($items2[0]->getMicrotime()); $items2[0]->saveMicrotime($temp); // $beforeFirst = array(); // $firstKey = -1; // $firstVal = null; // $beforeSecond = array(); // $secondKey = -1; // $toMove = array(); // $newinv = array(); // $currentAdd =& $beforeFirst; // foreach($this->sr4_inventory as $key=>$value){ // $vName = $value->getName(); // if($vName == $items1[0]->getName() || $vName == $items2[0]->getName()){ // if($firstKey == -1){ // $firstKey = $key; // $firstVal = $value; // $currentAdd =& $beforeSecond; // }elseif($secondKey == -1 && $vName != $firstVal->getName()){ // $secondKey = $key; // foreach($beforeFirst as $k => $v){ // $newinv[$k] = $v; // } // $newinv[$key] = $value; // foreach($beforeSecond as $k => $v){ // $newinv[$k] = $v; // } // $newinv[$firstKey] = $firstVal; // foreach($beforeSecond as $k => $v){ // $newinv[$k] = $v; // } // foreach($toMove as $k => $v){ // $newinv[$k] = $v; // } // $currentAdd =& $newinv; // $toMove =& $newinv; // }else{ // $toMove[$key] = $value; // } // }else{ // $currentAdd[$key] = $value; // } // } // $this->sr4_inventory = $newinv; // $this->updateInventory(); }
public function swapMembers(SR_Player $a, SR_Player $b) { $this->members = GWF_Array::swapAssoc($this->members, $a->getID(), $b->getID()); $this->recomputeEnums(); return $this->updateMembers(); }