Skip to content

Commit 7755622

Browse files
committed
fix broken default subcircuit
1 parent f05b5e8 commit 7755622

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/com/lushprojects/circuitjs1/client/CompositeElm.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,12 +122,19 @@ public void loadCompositeXml(Vector<Element> elmEntries, int externalNodes[]) {
122122
String className = CirSim.xmlDumpTypeMap.get(tagName);
123123
if (className == null)
124124
continue;
125+
// skip non-essential elements that are only needed for display.
126+
// GroundElm is only skipped if it has coordinates, meaning it came from a
127+
// newer dump where it's purely visual. Old-style dumps have no coordinates
128+
// and need GroundElm for simulation.
125129
if (className.equals("WireElm") || className.equals("LabeledNodeElm") || className.equals("ScopeElm") ||
126-
className.equals("GraphicElm") || className.equals("GroundElm")) {
130+
className.equals("GraphicElm") ||
131+
(className.equals("GroundElm") && childElem.getAttribute("x") != null)) {
127132
sim.console("skipping " + className + " in loadCompositeXml");
128133
continue;
129134
}
130135
CircuitElm newce = CirSim.constructElement(className, 0, 0);
136+
if (newce instanceof GroundElm)
137+
((GroundElm) newce).setOldStyle();
131138
xml.parseChildElement(childElem);
132139
newce.undumpXml(xml);
133140
compElmList.add(newce);

src/com/lushprojects/circuitjs1/client/CustomCompositeElm.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,8 @@ Vector<CircuitElm> buildDisplayElmList() {
258258
continue;
259259
CircuitElm ce;
260260
if (className.equals("WireElm") || className.equals("LabeledNodeElm") || className.equals("ScopeElm") ||
261-
className.equals("GraphicElm") || className.equals("GroundElm")) {
261+
className.equals("GraphicElm") ||
262+
(className.equals("GroundElm") && childElem.getAttribute("x") != null)) {
262263
ce = CirSim.constructElement(className, 0, 0);
263264
xml.parseChildElement(childElem);
264265
ce.undumpXml(xml);

0 commit comments

Comments
 (0)