Some tweaks to scenario format
This commit is contained in:
@@ -157,7 +157,7 @@
|
||||
<xs:element name="property" type="bool" minOccurs="0"/>
|
||||
<xs:element name="contained" type="bool" minOccurs="0"/>
|
||||
</xs:all>
|
||||
<xs:attribute name="id" type="xs:integer"/>
|
||||
<xs:attribute name="id" type="xs:integer" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="creature" minOccurs="0">
|
||||
@@ -174,9 +174,10 @@
|
||||
<xs:element name="encounter" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="time" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="param" maxOccurs="2" type="xs:integer"/>
|
||||
</xs:sequence>
|
||||
<xs:all>
|
||||
<xs:element name="day" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="event" minOccurs="0" type="xs:integer"/>
|
||||
</xs:all>
|
||||
<xs:attribute name="type" use="required">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
@@ -199,7 +200,7 @@
|
||||
<xs:element name="onkill" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="ontalk" type="xs:integer" minOccurs="0"/>
|
||||
</xs:all>
|
||||
<xs:attribute name="id" type="xs:integer"/>
|
||||
<xs:attribute name="id" type="xs:integer" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="area">
|
||||
|
||||
@@ -748,8 +748,10 @@ static void writeTownToXml(ticpp::Printer&& data, cTown& town) {
|
||||
if(preset.time_flag != eMonstTime::ALWAYS) {
|
||||
data.OpenElement("time");
|
||||
data.PushAttribute("type", preset.time_flag);
|
||||
data.PushElement("param", preset.monster_time);
|
||||
data.PushElement("param", preset.time_code);
|
||||
if(preset.time_flag == eMonstTime::APPEAR_ON_DAY || preset.time_flag == eMonstTime::DISAPPEAR_ON_DAY || preset.time_flag == eMonstTime::APPEAR_WHEN_EVENT || preset.time_flag == eMonstTime::DISAPPEAR_WHEN_EVENT)
|
||||
data.PushElement("day", preset.monster_time);
|
||||
if(preset.time_flag == eMonstTime::APPEAR_WHEN_EVENT || preset.time_flag == eMonstTime::DISAPPEAR_WHEN_EVENT)
|
||||
data.PushElement("event", preset.time_code);
|
||||
data.CloseElement("time");
|
||||
}
|
||||
data.CloseElement("creature");
|
||||
|
||||
@@ -1705,11 +1705,10 @@ static void readTownFromXml(ticpp::Document&& data, cTown*& town, cScenario& sce
|
||||
monst->GetText(&npc.spec_enc_code);
|
||||
} else if(type == "time") {
|
||||
monst->GetAttribute("type", &npc.time_flag);
|
||||
Element* first_param = monst->FirstChildElement("param");
|
||||
first_param->GetText(&npc.monster_time);
|
||||
try {
|
||||
first_param->NextSiblingElement("param")->GetText(&npc.time_code);
|
||||
} catch(ticpp::Exception) {}
|
||||
Element* param = monst->FirstChildElement("day", false);
|
||||
if(param) param->GetText(&npc.monster_time);
|
||||
param = monst->FirstChildElement("event", false);
|
||||
if(param) param->GetText(&npc.time_code);
|
||||
} else if(type == "face") {
|
||||
monst->GetText(&npc.facial_pic);
|
||||
} else if(type == "personality") {
|
||||
|
||||
Reference in New Issue
Block a user