public bool AddEntry(int numItems, PropLineTool.ItemPlacementInfo[] placementInfoArray, PropLineTool.ObjectMode objectMode, bool fenceMode, SegmentState segmentState) { bool _result = AddEntry(numItems, placementInfoArray, objectMode); undoList[latestEntryIndex].fenceMode = fenceMode; undoList[latestEntryIndex].segmentInfo = segmentState.segmentInfo; return(_result); }
public bool AddEntry(int numItems, PropLineTool.ItemPlacementInfo[] placementInfoArray, PropLineTool.ObjectMode objectMode) { if (objectMode == PropLineTool.ObjectMode.Undefined) { return(false); } if (numItems <= 0) { return(false); } if (placementInfoArray.Length <= 0) { return(false); } if (numItems > placementInfoArray.Length) { numItems = placementInfoArray.Length; } int _indexNewUndoEntry = actualEntryCount == 0 ? 0 : (latestEntryIndex + 1); if (_indexNewUndoEntry >= MAX_UNDO_COUNT) { _indexNewUndoEntry = _indexNewUndoEntry % MAX_UNDO_COUNT; } //only if class-based //setup if null //if (undoList[_indexNewUndoEntry] == null) //{ // undoList[_indexNewUndoEntry] = new UndoEntry(); //} switch (objectMode) { case PropLineTool.ObjectMode.Props: { undoList[_indexNewUndoEntry].props = new PropSubEntry[numItems]; for (int i = 0; i < numItems; i++) { undoList[_indexNewUndoEntry].props[i].propPlacementInfo = SetPropPlacementInfo(placementInfoArray[i]); undoList[_indexNewUndoEntry].props[i].stillExists = true; } undoList[_indexNewUndoEntry].objectModeSegment = PropLineTool.ObjectMode.Props; break; } case PropLineTool.ObjectMode.Trees: { undoList[_indexNewUndoEntry].trees = new TreeSubEntry[numItems]; for (int i = 0; i < numItems; i++) { undoList[_indexNewUndoEntry].trees[i].treePlacementInfo = SetTreePlacementInfo(placementInfoArray[i]); undoList[_indexNewUndoEntry].trees[i].stillExists = true; } undoList[_indexNewUndoEntry].objectModeSegment = PropLineTool.ObjectMode.Trees; break; } default: { return(false); } } undoList[_indexNewUndoEntry].itemCount = numItems; latestEntryIndex = _indexNewUndoEntry; actualEntryCount++; CheckItemsStillExist(); return(true); }