/* * @Override * public Object clone() throws CloneNotSupportedException * { * * Videoscene v = (Videoscene) super.clone( ); * v.canSkip = canSkip; * return v; * }*/ public override object Clone() { Videoscene v = (Videoscene)base.Clone(); v.canSkip = canSkip; return(v); }
public object DOMParse(XmlElement element, params object[] parameters) { var chapter = parameters [0] as Chapter; Cutscene cutscene; XmlNodeList endsgame = element.SelectNodes("end-game"), nextsscene = element.SelectNodes("next-scene"); string slidesceneId = element.GetAttribute("id"); bool initialScene = ExString.EqualsDefault(element.GetAttribute("start"), "yes", false); if (element.Name.Equals("slidescene")) { cutscene = new Slidescene(slidesceneId); } else { cutscene = new Videoscene(slidesceneId); } if (initialScene) { chapter.setTargetId(slidesceneId); } //XAPI ELEMENTS cutscene.setXApiClass(element.GetAttribute("class")); cutscene.setXApiType(element.GetAttribute("type")); //END OF XAPI cutscene.setTargetId(element.GetAttribute("idTarget")); cutscene.setPositionX(ExParsers.ParseDefault(element.GetAttribute("destinyX"), int.MinValue)); cutscene.setPositionY(ExParsers.ParseDefault(element.GetAttribute("destinyY"), int.MinValue)); cutscene.setTransitionType((TransitionType)ExParsers.ParseDefault(element.GetAttribute("transitionType"), 0)); cutscene.setTransitionTime(ExParsers.ParseDefault(element.GetAttribute("transitionTime"), 0)); if (element.SelectSingleNode("name") != null) { cutscene.setName(element.SelectSingleNode("name").InnerText); } if (element.SelectSingleNode("documentation") != null) { cutscene.setDocumentation(element.SelectSingleNode("documentation").InnerText); } cutscene.setEffects(DOMParserUtility.DOMParse(element.SelectSingleNode("effect"), parameters) as Effects ?? new Effects()); if (cutscene is Videoscene) { ((Videoscene)cutscene).setCanSkip(ExString.EqualsDefault(element.GetAttribute("canSkip"), "yes", true)); } string next = ExString.Default(element.GetAttribute("next"), "go-back"); if (next.Equals("go-back")) { cutscene.setNext(Cutscene.GOBACK); } else if (next.Equals("new-scene")) { cutscene.setNext(Cutscene.NEWSCENE); } else if (next.Equals("end-chapter")) { cutscene.setNext(Cutscene.ENDCHAPTER); } // RESOURCES foreach (var res in DOMParserUtility.DOMParse <ResourcesUni> (element.SelectNodes("resources"), parameters)) { cutscene.addResources(res); } for (int i = 0; i < endsgame.Count; i++) { cutscene.setNext(Cutscene.ENDCHAPTER); } foreach (XmlElement el in nextsscene) { var currentNextScene = new NextScene(el.GetAttribute("idTarget"), ExParsers.ParseDefault(element.GetAttribute("destinyX"), int.MinValue), ExParsers.ParseDefault(element.GetAttribute("destinyY"), int.MinValue)); currentNextScene.setTransitionType((TransitionType)ExParsers.ParseDefault(element.GetAttribute("transitionType"), 0)); currentNextScene.setTransitionTime(ExParsers.ParseDefault(element.GetAttribute("transitionTime"), 0)); currentNextScene.setConditions(DOMParserUtility.DOMParse(el.SelectSingleNode("condition"), parameters) as Conditions ?? new Conditions()); currentNextScene.setEffects(DOMParserUtility.DOMParse(el.SelectSingleNode("effect"), parameters) as Effects ?? new Effects()); currentNextScene.setPostEffects(DOMParserUtility.DOMParse(el.SelectSingleNode("post-effect"), parameters) as Effects ?? new Effects()); cutscene.addNextScene(currentNextScene); } return(cutscene); }