From: <chr...@us...> - 2006-07-02 12:48:20
|
Revision: 228 Author: christianhujer Date: 2006-07-02 05:48:06 -0700 (Sun, 02 Jul 2006) ViewCVS: http://svn.sourceforge.net/gridarta/?rev=228&view=rev Log Message: ----------- Minor improvements and unifications to ArchObject and ArchObjectStack. Modified Paths: -------------- trunk/crossfire/src/cfeditor/arch/ArchObject.java trunk/crossfire/src/cfeditor/arch/ArchObjectStack.java trunk/daimonin/src/daieditor/arch/ArchObject.java trunk/daimonin/src/daieditor/arch/ArchObjectStack.java Modified: trunk/crossfire/src/cfeditor/arch/ArchObject.java =================================================================== --- trunk/crossfire/src/cfeditor/arch/ArchObject.java 2006-07-02 12:47:15 UTC (rev 227) +++ trunk/crossfire/src/cfeditor/arch/ArchObject.java 2006-07-02 12:48:06 UTC (rev 228) @@ -632,35 +632,19 @@ // ---- GET/SET methods for multi arches public int getRefMaxX() { - if (multi != null) { - return multi.getRefMaxx(); - } - - return 0; + return multi != null ? multi.getRefMaxx() : 0; } public int getRefMaxY() { - if (multi != null) { - return multi.getRefMaxy(); - } - - return 0; + return multi != null ? multi.getRefMaxy() : 0; } public int getRefMaxMX() { - if (multi != null) { - return multi.getRefMaxxm(); - } - - return 0; + return multi != null ? multi.getRefMaxxm() : 0; } public int getRefMaxMY() { - if (multi != null) { - return multi.getRefMaxym(); - } - - return 0; + return multi != null ? multi.getRefMaxym() : 0; } public void setRefMaxMX(final int x) { @@ -714,11 +698,8 @@ } public boolean isReferenced() { - if (multi != null) { - return multi.isReferenced(); - } + return multi != null ? multi.isReferenced() : false; - return false; } // this chained multi tiles on map for fast access. better then number and search trash @@ -739,27 +720,15 @@ } @Nullable public ArchObject getMapMultiHead() { - if (multi != null) { - return multi.getHead(); // this points to head. Heads points to itsself - } - - return null; + return multi != null ? multi.getHead() : null; } @Nullable public ArchObject getMapMultiNext() { - if (multi != null) { - return multi.getNext(); // if this is null and head != null = last tile - } - - return null; + return multi != null ? multi.getNext() : null; } public int getMultiShapeID() { - if (multi != null) { - return multi.getMultiShapeID(); - } - - return 0; + return multi != null ? multi.getMultiShapeID() : 0; } public void setMultiShapeID(final int value) { @@ -771,11 +740,7 @@ } public int getMultiPartNr() { - if (multi != null) { - return multi.getMultiPartNr(); - } - - return 0; + return multi != null ? multi.getMultiPartNr() : 0; } public void setMultiPartNr(final int value) { @@ -787,11 +752,7 @@ } public boolean isLowestPart() { - if (multi != null) { - return multi.isLowestPart(); - } - - return false; + return multi != null && multi.isLowestPart(); } public void setLowestPart(final boolean state) { @@ -822,11 +783,8 @@ // RefNr == NodeNr : head (first) tile of a multi tile arch // RefNr != NodeNr : part of multi tile arch public int getRefNr() { - if (multi != null) { - return multi.getRefNr(); - } + return multi != null ? multi.getRefNr() : -1; - return -1; // single tile } // refx/refy: Offset of this multi tile from head tile Modified: trunk/crossfire/src/cfeditor/arch/ArchObjectStack.java =================================================================== --- trunk/crossfire/src/cfeditor/arch/ArchObjectStack.java 2006-07-02 12:47:15 UTC (rev 227) +++ trunk/crossfire/src/cfeditor/arch/ArchObjectStack.java 2006-07-02 12:48:06 UTC (rev 228) @@ -82,7 +82,7 @@ * true when arches were loaded from the big collected archive files, * false when arches were loaded from individual archfiles */ - private static boolean loadFromArchive = false; + private static boolean loadedFromArchive = false; // this is the static part.. i want fast access later private final ArchObjectNode[] archNodeList = new ArchObjectNode[10000]; @@ -122,6 +122,10 @@ archObjCount++; } + /** + * Gets the number of loaded arch objects (only default arches). + * @return number of loaded arch objects (default arches) + */ public int getArchObjCount() { return archObjCount; } @@ -131,7 +135,7 @@ } public static boolean isLoadedFromArchive() { - return loadFromArchive; + return loadedFromArchive; } /** Returns the index of a face in the face map or -1. @@ -286,7 +290,7 @@ * "archtypes" and "crossfire.0" */ private void loadArchFromCollected() { - loadFromArchive = true; // load from the collected files + loadedFromArchive = true; // load from the collected files try { // open the resource file @@ -314,7 +318,7 @@ private void loadArchFromFiles(final File f, int index) { final String name = f.getName(); - loadFromArchive = false; // don't load from the collected files + loadedFromArchive = false; // don't load from the collected files if (f.isDirectory()) { // now, setup the arch panels if (!"cvs".equalsIgnoreCase(name) && !"dev".equalsIgnoreCase(name) && !name.startsWith(".")) { Modified: trunk/daimonin/src/daieditor/arch/ArchObject.java =================================================================== --- trunk/daimonin/src/daieditor/arch/ArchObject.java 2006-07-02 12:47:15 UTC (rev 227) +++ trunk/daimonin/src/daieditor/arch/ArchObject.java 2006-07-02 12:48:06 UTC (rev 228) @@ -63,9 +63,6 @@ /** Special constant that's used if an arch has no arch type set. */ public static final int TYPE_UNSET = -666; - /** Static reference to the archstack (default arches). */ - private static ArchObjectStack archstack; - /** Static reference to the typeList (find syntax errors). */ private static CFArchTypeList typeList; @@ -181,15 +178,6 @@ // TODO } - // set static references: arch stack and typeList - public static void setArchStack(final ArchObjectStack stack) { - archstack = stack; - } - - public static ArchObjectStack getArchStack() { - return archstack; - } - public static void setTypeList(final CFArchTypeList tlist) { typeList = tlist; } @@ -720,11 +708,11 @@ return isReferenced() && getMapMultiHead() != null ? getMapMultiHead() : this; } - public ArchObject getMapMultiHead() { + @Nullable public ArchObject getMapMultiHead() { return multi != null ? multi.getHead() : null; } - public ArchObject getMapMultiNext() { + @Nullable public ArchObject getMapMultiNext() { return multi != null ? multi.getNext(this) : null; } @@ -1237,7 +1225,7 @@ * Get the complete message text. * @return message text */ - public String getMsgText() { + @Nullable public String getMsgText() { return msgText != null ? msgText.toString() : null; } @@ -1279,7 +1267,7 @@ return clone; } catch (final CloneNotSupportedException e) { assert false; - throw new AssertionError(); + throw new AssertionError(e); } } @@ -1463,7 +1451,7 @@ return defaultArch.createArch(); } final ArchObject arch = new ArchObject(); - arch.setArchName(this.archName); + arch.setArchName(archName); arch.setDefaultArch(this); arch.setObjectFace(); return arch; Modified: trunk/daimonin/src/daieditor/arch/ArchObjectStack.java =================================================================== --- trunk/daimonin/src/daieditor/arch/ArchObjectStack.java 2006-07-02 12:47:15 UTC (rev 227) +++ trunk/daimonin/src/daieditor/arch/ArchObjectStack.java 2006-07-02 12:48:06 UTC (rev 228) @@ -3,6 +3,7 @@ * Copyright (C) 2000 Michael Toennies * Copyright (C) 2001 Andreas Vogl * Copyright (C) 2005 Christian Hujer + * Copyright (C) 2006 The Gridarta Developers * * (code based on: Gridder. 2D grid based level editor. (C) 2000 Pasi Keränen) * @@ -86,15 +87,13 @@ // true when arches were loaded from the big collected archive files, // false when arches were loaded from individual archfiles - private static boolean isLoadedFromArchive; + private static boolean loadedFromArchive; private final List<ArchObject> archObjects = new ArrayList<ArchObject>(); /** The defined default arches. */ private final Map<String, ArchObject> arches = new TreeMap<String, ArchObject>(); - private int archNodeListCount; // ALL default arches loaded - private int archObjCount; // all objects, multi tile arches = 1 object private final CMainControl mainControl; @@ -113,19 +112,26 @@ */ public ArchObjectStack(final CMainControl mainControl) { this.mainControl = mainControl; - ArchObject.setArchStack(this); // XXX Bad Thing: add static reference to ArchObject } public void incArchObjCount() { archObjCount++; } + /** + * Gets the number of loaded arch objects (only default arches). + * @return number of loaded arch objects (default arches) + */ + public int getArchObjCount() { + return archObjCount; + } + public static int getLoadStatus() { return loadStatus; } public static boolean isLoadedFromArchive() { - return isLoadedFromArchive; + return loadedFromArchive; } /** @@ -201,7 +207,7 @@ loadArchFromCollected(); // collect arches & images from collection } else { FaceFacade.setNormal(new ArchFaceProvider()); - isLoadedFromArchive = false; // don't load from the collected files + loadedFromArchive = false; // don't load from the collected files animFiles = new ArrayList<File>(); loadArchFromFiles(new File(mainControl.getArchDefaultFolder()), 0, false); // collect arches & images from individual files loadAnimsFromFiles(); @@ -347,7 +353,7 @@ /** Load all arches and pngs from the collected files "archtypes" and "daimonin.0" */ private void loadArchFromCollected() { - isLoadedFromArchive = true; // load from the collected files + loadedFromArchive = true; // load from the collected files CFileReader stream = null; try { @@ -514,7 +520,7 @@ } public void connectFaces() { - for (ArchObject arch : archObjects) { + for (final ArchObject arch : archObjects) { arch.setObjectFace(); } } @@ -550,175 +556,172 @@ */ private void collectDaimoninArchesArches(final Progress pbar) { // WARNING: do not use out.println() because the server will crash if it's not "\n" but e.g. "\r"! - BufferedWriter out = null; try { final File dfile = new File(mainControl.getArchDefaultFolder(), IGUIConstants.ARCH_FILE); // now open the output-stream - out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dfile), CMainControl.MAP_ENCODING)); - int artifactCount = 0; + final BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dfile), CMainControl.MAP_ENCODING)); + try { + int artifactCount = 0; - int count = 0; // count how much arches we've collected + int count = 0; // count how much arches we've collected - for (final ArchObject arch : archObjects) { + for (final ArchObject arch : archObjects) { - // exclude arches generated from artifacts file from collection - if (arch.isArtifact()) { - artifactCount++; - continue; - } - if (arch.getArchName().compareTo(ArchObjectParser.STARTARCH_NAME) == 0) { - // process map arch + // exclude arches generated from artifacts file from collection + if (arch.isArtifact()) { + artifactCount++; + continue; + } + if (arch.getArchName().compareTo(ArchObjectParser.STARTARCH_NAME) == 0) { + // process map arch - out.append("Object ").append(arch.getArchName()).append('\n'); + out.append("Object ").append(arch.getArchName()).append('\n'); - // map object hack: x/y is normally a reference for multi - // part arches - i include this hack until we rework the - // arch objects with more useful script names - if (arch.getArchName().equals(ArchObjectParser.STARTARCH_NAME)) { - out.append("x ").append(Integer.toString(arch.getMultiRefX())).append('\n'); - out.append("y ").append(Integer.toString(arch.getMultiRefY())).append('\n'); - } + // map object hack: x/y is normally a reference for multi + // part arches - i include this hack until we rework the + // arch objects with more useful script names + if (arch.getArchName().equals(ArchObjectParser.STARTARCH_NAME)) { + out.append("x ").append(Integer.toString(arch.getMultiRefX())).append('\n'); + out.append("y ").append(Integer.toString(arch.getMultiRefY())).append('\n'); + } - if (arch.getObjName() != null) { - out.append("name ").append(arch.getObjName()).append('\n'); - } - //if(arch.getFaceName() != null) { - // out.append("face ").append(arch.getFaceNAme()).append('\n'); - //} - if (arch.getArchTypNr() > 0) { - out.append("type ").append(Integer.toString(arch.getArchTypNr())).append('\n'); - } + if (arch.getObjName() != null) { + out.append("name ").append(arch.getObjName()).append('\n'); + } + //if(arch.getFaceName() != null) { + // out.append("face ").append(arch.getFaceNAme()).append('\n'); + //} + if (arch.getArchTypNr() > 0) { + out.append("type ").append(Integer.toString(arch.getArchTypNr())).append('\n'); + } - out.append(arch.getArchText()); - if (arch.getArchText().lastIndexOf(0x0a) != arch.getArchText().length() - 1) { - out.append('\n'); - } - out.append("end\n"); - } else { + out.append(arch.getArchText()); + if (arch.getArchText().lastIndexOf(0x0a) != arch.getArchText().length() - 1) { + out.append('\n'); + } + out.append("end\n"); + } else { - if (arch.isReferenced()) { - continue; - //ACTION_FACTORY.showMessageDialog(pbar.getParentComponent(), WARNING_MESSAGE, "archCollectWarningMultipartTailInPanel"); - } - out.append("Object ").append(arch.getArchName()).append('\n'); + if (arch.isReferenced()) { + continue; + //ACTION_FACTORY.showMessageDialog(pbar.getParentComponent(), WARNING_MESSAGE, "archCollectWarningMultipartTailInPanel"); + } + out.append("Object ").append(arch.getArchName()).append('\n'); - if (arch.getObjName() != null) { - out.append("name ").append(arch.getObjName()).append('\n'); - } - //if(arch.getFaceName() != null) { - // out.append("face ").append(arch.getFaceName()).append('\n'); - //} - if (arch.getArchTypNr() > 0) { - out.append("type ").append(Integer.toString(arch.getArchTypNr())).append('\n'); - } - if (arch.getMultiShapeID() > 0) { - out.append("mpart_id ").append(Integer.toString(arch.getMultiShapeID())).append('\n'); - } - if (arch.getMultiPartNr() > 0) { - out.append("mpart_nr ").append(Integer.toString(arch.getMultiPartNr())).append('\n'); - } + if (arch.getObjName() != null) { + out.append("name ").append(arch.getObjName()).append('\n'); + } + //if(arch.getFaceName() != null) { + // out.append("face ").append(arch.getFaceName()).append('\n'); + //} + if (arch.getArchTypNr() > 0) { + out.append("type ").append(Integer.toString(arch.getArchTypNr())).append('\n'); + } + if (arch.getMultiShapeID() > 0) { + out.append("mpart_id ").append(Integer.toString(arch.getMultiShapeID())).append('\n'); + } + if (arch.getMultiPartNr() > 0) { + out.append("mpart_nr ").append(Integer.toString(arch.getMultiPartNr())).append('\n'); + } - if (arch.getMsgText() != null) { - out.append("msg").append('\n'); - if (arch.getMsgText().length() > 1) { - out.append(arch.getMsgText()); - if (arch.getMsgText().lastIndexOf('\n') != arch.getMsgText().length() - 1) { - out.append('\n'); + if (arch.getMsgText() != null) { + out.append("msg").append('\n'); + if (arch.getMsgText().length() > 1) { + out.append(arch.getMsgText()); + if (arch.getMsgText().lastIndexOf('\n') != arch.getMsgText().length() - 1) { + out.append('\n'); + } } + out.append("endmsg\n"); } - out.append("endmsg\n"); - } - // special: add a string-attribute with the display-cathegory - out.append("editor_folder ").append(arch.getEditorFolder()).append('\n'); + // special: add a string-attribute with the display-cathegory + out.append("editor_folder ").append(arch.getEditorFolder()).append('\n'); - out.append(arch.getArchText()); - if (arch.getArchText().lastIndexOf('\n') != arch.getArchText().length() - 1) { - out.append('\n'); - } - out.append("end\n"); + out.append(arch.getArchText()); + if (arch.getArchText().lastIndexOf('\n') != arch.getArchText().length() - 1) { + out.append('\n'); + } + out.append("end\n"); - // if multi-head, we must attach the tail - if (arch.isMulti()) { - // process the multipart tail: - for (final ArchObject tail : arch.getTailList()) { + // if multi-head, we must attach the tail + if (arch.isMulti()) { + // process the multipart tail: + for (final ArchObject tail : arch.getTailList()) { - if (!tail.isReferenced()) { - ACTION_FACTORY.showMessageDialog(pbar.getParentComponent(), "archCollectWarningMultipartTooShort"); - } + if (!tail.isReferenced()) { + ACTION_FACTORY.showMessageDialog(pbar.getParentComponent(), "archCollectWarningMultipartTooShort"); + } - out.append("More\n"); + out.append("More\n"); - out.append("Object ").append(tail.getArchName()).append('\n'); + out.append("Object ").append(tail.getArchName()).append('\n'); - if (tail.getObjName() != null) { - out.append("name ").append(tail.getObjName()).append('\n'); - } - //if(arch.getFaceName() != null) { - // out.append("face ").append(arch.getFaceName()).append('\n'); - //} - if (tail.getArchTypNr() > 0) { - out.append("type ").append(Integer.toString(tail.getArchTypNr())).append('\n'); - } - if (tail.getMultiShapeID() > 0) { - out.append("mpart_id ").append(Integer.toString(tail.getMultiShapeID())).append('\n'); - } - if (tail.getMultiPartNr() > 0) { - out.append("mpart_nr ").append(Integer.toString(tail.getMultiPartNr())).append('\n'); - } + if (tail.getObjName() != null) { + out.append("name ").append(tail.getObjName()).append('\n'); + } + //if(arch.getFaceName() != null) { + // out.append("face ").append(arch.getFaceName()).append('\n'); + //} + if (tail.getArchTypNr() > 0) { + out.append("type ").append(Integer.toString(tail.getArchTypNr())).append('\n'); + } + if (tail.getMultiShapeID() > 0) { + out.append("mpart_id ").append(Integer.toString(tail.getMultiShapeID())).append('\n'); + } + if (tail.getMultiPartNr() > 0) { + out.append("mpart_nr ").append(Integer.toString(tail.getMultiPartNr())).append('\n'); + } - if (tail.getMsgText() != null) { - out.append("msg\n"); - if (tail.getMsgText().length() > 1) { - out.append(tail.getMsgText()); - if (tail.getMsgText().lastIndexOf('\n') != tail.getMsgText().length() - 1) { - out.append('\n'); + if (tail.getMsgText() != null) { + out.append("msg\n"); + if (tail.getMsgText().length() > 1) { + out.append(tail.getMsgText()); + if (tail.getMsgText().lastIndexOf('\n') != tail.getMsgText().length() - 1) { + out.append('\n'); + } } + out.append("endmsg\n"); } - out.append("endmsg\n"); - } - out.append(tail.getArchText()); - if (tail.getArchText().lastIndexOf(0x0a) != tail.getArchText().length() - 1) { - out.append('\n'); - } + out.append(tail.getArchText()); + if (tail.getArchText().lastIndexOf(0x0a) != tail.getArchText().length() - 1) { + out.append('\n'); + } - // position of multi relative to head - if (tail.isReferenced()) { - if (tail.getMultiRefX() != 0) { - out.append("x ").append(Integer.toString(tail.getMultiRefX())).append('\n'); + // position of multi relative to head + if (tail.isReferenced()) { + if (tail.getMultiRefX() != 0) { + out.append("x ").append(Integer.toString(tail.getMultiRefX())).append('\n'); + } + if (tail.getMultiRefY() != 0) { + out.append("y ").append(Integer.toString(tail.getMultiRefY())).append('\n'); + } } - if (tail.getMultiRefY() != 0) { - out.append("y ").append(Integer.toString(tail.getMultiRefY())).append('\n'); + out.append("end\n"); + count++; + if (count % 100 == 0) { + pbar.setValue(count); } } - out.append("end\n"); - count++; - if (count % 100 == 0) { - pbar.setValue(count); - } } } + count++; + if (count % 100 == 0) { + pbar.setValue(count); + } } - count++; - if (count % 100 == 0) { - pbar.setValue(count); + + // check if we still missed any arches + if ((count + artifactCount) - mainControl.getArchCount() != 0) { + ACTION_FACTORY.showMessageDialog(pbar.getParentComponent(), "archCollectWarningMissed", mainControl.getArchCount() - count); } + pbar.setValue(count); + } finally { + out.close(); } - - // check if we still missed any arches - if ((count + artifactCount) - mainControl.getArchCount() != 0) { - ACTION_FACTORY.showMessageDialog(pbar.getParentComponent(), "archCollectWarningMissed", mainControl.getArchCount() - count); - } - pbar.setValue(count); } catch (final IOException e) { ACTION_FACTORY.showMessageDialog(pbar.getParentComponent(), "archCollectErrorIOException", "arches", e); - } finally { - try { - out.close(); - } catch (final Exception e) { /* ignore */ } finally { - out = null; - } } } @@ -727,33 +730,28 @@ * @param pbar progress bar to update */ private void collectDaimoninArchesAnimations(final Progress pbar) { - BufferedWriter out = null; try { - out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(mainControl.getArchDefaultFolder(), "animations")), CMainControl.MAP_ENCODING)); - - final AnimationObjects animationObjects = mainControl.getAnimationObjects(); - - pbar.setLabel(ACTION_FACTORY.getString("archCollectAnimations"), animationObjects.size()); - int counter = 0; // counter for progress bar - for (final AnimationObject anim : animationObjects) { - out - .append("anim ") - .append(anim.getAnimName()) - .append('\n') - .append(anim.getAnimList()) - .append("mina\n"); - if (++counter % 100 == 0) { - pbar.setValue(counter); + final BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(mainControl.getArchDefaultFolder(), "animations")), CMainControl.MAP_ENCODING)); + try { + final AnimationObjects animationObjects = mainControl.getAnimationObjects(); + pbar.setLabel(ACTION_FACTORY.getString("archCollectAnimations"), animationObjects.size()); + int counter = 0; // counter for progress bar + for (final AnimationObject anim : animationObjects) { + out + .append("anim ") + .append(anim.getAnimName()) + .append('\n') + .append(anim.getAnimList()) + .append("mina\n"); + if (++counter % 100 == 0) { + pbar.setValue(counter); + } } + } finally { + out.close(); } } catch (final IOException e) { ACTION_FACTORY.showMessageDialog(pbar.getParentComponent(), "archCollectErrorIOException", "animations", e); - } finally { - try { - out.close(); - } catch (final Exception e) { /* ignore */ } finally { - out = null; - } } } @@ -762,31 +760,26 @@ * @param pbar progress bar to update */ private void collectDaimoninArchesAnimationTree(final Progress pbar) { - BufferedWriter out = null; try { - out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(new File(mainControl.getArchDefaultFolder(), IGUIConstants.CONFIG_DIR), IGUIConstants.ANIMTREE_FILE)), CMainControl.MAP_ENCODING)); - - final AnimationObjects animationObjects = mainControl.getAnimationObjects(); - final Map<String, String> tree = animationObjects.getAnimPathTree(); - - pbar.setLabel(ACTION_FACTORY.getString("archCollectAnimationTree"), animationObjects.size()); - int counter = 0; // counter for progress bar - for (String path : tree.values()) { - out - .append(path) - .append('\n'); - if (++counter % 100 == 0) { - pbar.setValue(counter); + final BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(new File(mainControl.getArchDefaultFolder(), IGUIConstants.CONFIG_DIR), IGUIConstants.ANIMTREE_FILE)), CMainControl.MAP_ENCODING)); + try { + final AnimationObjects animationObjects = mainControl.getAnimationObjects(); + final Map<String, String> tree = animationObjects.getAnimPathTree(); + pbar.setLabel(ACTION_FACTORY.getString("archCollectAnimationTree"), animationObjects.size()); + int counter = 0; // counter for progress bar + for (String path : tree.values()) { + out + .append(path) + .append('\n'); + if (++counter % 100 == 0) { + pbar.setValue(counter); + } } + } finally { + out.close(); } } catch (final IOException e) { ACTION_FACTORY.showMessageDialog(pbar.getParentComponent(), "archCollectErrorIOException", IGUIConstants.ANIMTREE_FILE, e); - } finally { - try { - out.close(); - } catch (final Exception e) { /* ignore */ } finally { - out = null; - } } } @@ -920,12 +913,4 @@ } } - /** - * Gets the number of loaded arch objects (only default arches). - * @return number of loaded arch objects (default arches) - */ - public int getArchObjCount() { - return archObjCount; - } - } // class ArchObjectStack This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |