Formalize schema for town definition file
This commit is contained in:
206
rsrc/boes/town.xsd
Normal file
206
rsrc/boes/town.xsd
Normal file
@@ -0,0 +1,206 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:simpleType name="bool">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="true"/>
|
||||
<xs:enumeration value="false"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="dir">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="n"/>
|
||||
<xs:enumeration value="s"/>
|
||||
<xs:enumeration value="e"/>
|
||||
<xs:enumeration value="w"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:attributeGroup name="rect">
|
||||
<xs:attribute name="top" use="required" type="xs:integer"/>
|
||||
<xs:attribute name="left" use="required" type="xs:integer"/>
|
||||
<xs:attribute name="bottom" use="required" type="xs:integer"/>
|
||||
<xs:attribute name="right" use="required" type="xs:integer"/>
|
||||
</xs:attributeGroup>
|
||||
<xs:attributeGroup name="point">
|
||||
<xs:attribute name="x" use="required" type="xs:integer"/>
|
||||
<xs:attribute name="y" use="required" type="xs:integer"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:element name="town">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="size">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:integer">
|
||||
<xs:enumeration value="32"/>
|
||||
<xs:enumeration value="48"/>
|
||||
<xs:enumeration value="64"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="name" type="xs:string"/>
|
||||
<xs:element name="bounds">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="rect"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="difficulty" type="xs:integer"/>
|
||||
<xs:element name="lighting" type="xs:integer"/>
|
||||
<xs:element name="enter" minOccurs="4" maxOccurs="4">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="point"/>
|
||||
<xs:attribute name="dir" type="dir" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="onenter" minOccurs="0" maxOccurs="2">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:integer">
|
||||
<xs:attribute name="condition" default="alive">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="alive"/>
|
||||
<xs:enumeration value="dead"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="exit" minOccurs="0" maxOccurs="4">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="point"/>
|
||||
<xs:attribute name="dir" type="dir" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="onexit" minOccurs="0" maxOccurs="4">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:integer">
|
||||
<xs:attribute name="dir" type="dir" use="required"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="onoffend" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="timer" minOccurs="0" maxOccurs="8">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:integer">
|
||||
<xs:attribute name="at" type="xs:integer" use="required"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="flags">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="chop" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="day" type="xs:integer"/>
|
||||
<xs:attribute name="event" type="xs:integer"/>
|
||||
<xs:attribute name="kills" type="xs:integer"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="strong-barriers" minOccurs="0" type="bool"/>
|
||||
<xs:element name="defy-mapping" minOccurs="0" type="bool"/>
|
||||
<xs:element name="defy-scrying" minOccurs="0" type="bool"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="wandering">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="loc" minOccurs="4" maxOccurs="4">
|
||||
<xs:complexType>
|
||||
<xs:attributeGroup ref="point"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="monster" minOccurs="0" maxOccurs="4">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:integer">
|
||||
<xs:attribute name="group" type="xs:integer"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:choice maxOccurs="unbounded">
|
||||
<xs:element name="sign">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute name="id" type="xs:integer"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="fields">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:integer">
|
||||
<xs:attributeGroup ref="point"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="item">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="id" type="xs:integer"/>
|
||||
<xs:element name="charges" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="always" type="bool" minOccurs="0"/>
|
||||
<xs:element name="property" type="bool" minOccurs="0"/>
|
||||
<xs:element name="contained" type="bool" minOccurs="0"/>
|
||||
</xs:all>
|
||||
<xs:attributeGroup ref="point"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="creature">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="id" type="xs:integer"/>
|
||||
<xs:element name="attitude" type="xs:integer"/>
|
||||
<xs:element name="mobility" type="xs:integer"/>
|
||||
<xs:element name="sdf" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:integer">
|
||||
<xs:attributeGroup ref="point"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<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:attribute name="type" type="xs:integer"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="face" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="personality" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="onkill" type="xs:integer" minOccurs="0"/>
|
||||
</xs:all>
|
||||
<xs:attributeGroup ref="point"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="boes" type="xs:string"/>
|
||||
<xs:attribute name="type">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="normal"/>
|
||||
<xs:enumeration value="template"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
@@ -1,241 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<town boes="1.0">
|
||||
<size>
|
||||
<x>48</x>
|
||||
<y>48</y>
|
||||
</size>
|
||||
<size>48</size>
|
||||
<name>Town name</name>
|
||||
<bounds>
|
||||
<bound id="0">
|
||||
<tl>4</tl>
|
||||
<br>44</br>
|
||||
</bound>
|
||||
</bounds>
|
||||
<terrain>
|
||||
<row x="1">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
<bounds top="4" left="4" bottom="44" right="44"/>
|
||||
|
||||
<!-- Town's difficulty rating -->
|
||||
<difficulty>1</difficulty>
|
||||
|
||||
<!-- Town's lighting type -->
|
||||
<lighting>0</lighting>
|
||||
|
||||
<!-- Town entry locations -->
|
||||
<enter dir="n" x="22" y="4"/>
|
||||
<enter dir="s" x="22" y="44"/>
|
||||
<enter dir="w" x="4" y="22"/>
|
||||
<enter dir="e" x="22" y="22"/>
|
||||
|
||||
<!-- Entry specials; omitting condition is equivalent to ="alive" -->
|
||||
<onenter>12</onenter>
|
||||
<onenter condition="dead">13</onenter>
|
||||
|
||||
<!-- Town exit location/special -->
|
||||
<onexit dir="n">5</onexit>
|
||||
|
||||
<!-- Various optional flags; <flags/> is perfectly valid here -->
|
||||
<flags>
|
||||
|
||||
</flags>
|
||||
|
||||
<!-- Wandering locs and monsters -->
|
||||
<wandering>
|
||||
<!-- Need exactly four locs -->
|
||||
<loc x="5" y="12"/>
|
||||
<loc x="5" y="12"/>
|
||||
<loc x="5" y="12"/>
|
||||
<loc x="5" y="12"/>
|
||||
<!-- Monsters are optional -->
|
||||
<monster group="0">21</monster>
|
||||
</wandering>
|
||||
|
||||
<!-- comma-seperated, tile type -->
|
||||
</row>
|
||||
<row x="2">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="3">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="4">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="5">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="6">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="7">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="8">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="9">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="10">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="11">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="12">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="13">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="14">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="15">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="16">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="17">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="18">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="19">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="20">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="21">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="22">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,122,122,122,122,122,122,122,122,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="23">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,122,170,170,170,170,170,170,170,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="24">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,122,170,170,170,170,170,170,170,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="25">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,125,170,170,247:0,170,170,170,170,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
<sign id="0">This is a sample sign!</sign>
|
||||
|
||||
<!-- add a : to specify a special is there. 247:0 is 247 with special 0 -->
|
||||
</row>
|
||||
<row x="26">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,121!0,122,170,170,170,170,170,170,170,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
|
||||
<!-- add a ! to specify a sign is there. 121!0 is 121 with sign 0 -->
|
||||
</row>
|
||||
<row x="27">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,122,170,170,170,170,170,170,170,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="28">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,122,170,170,170,170,170,170,170,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="29">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,122,170,170,170,170,170,170,170,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="30">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,122,122,122,122,122,122,122,122,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="31">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="32">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="33">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="34">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="35">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="36">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="37">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="38">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="39">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="40">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="41">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="42">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="43">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="44">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="45">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="46">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
<row x="47">
|
||||
<tiles>2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2</tiles>
|
||||
</row>
|
||||
</terrain>
|
||||
|
||||
<specials>
|
||||
|
||||
<special id="0">
|
||||
|
||||
<type>181</type> <!-- consts.h. maybe this will allow custom nodes sometime, although that could be...fun -->
|
||||
|
||||
<sdf>
|
||||
|
||||
<x>-1</x>
|
||||
|
||||
<y>-1</y>
|
||||
|
||||
</sdf>
|
||||
|
||||
<messages>
|
||||
|
||||
<m1>0</m1>
|
||||
|
||||
<m2>1</m2>
|
||||
|
||||
</messages>
|
||||
|
||||
<extra1>
|
||||
|
||||
<a>26</a>
|
||||
|
||||
<b>16</b>
|
||||
|
||||
</extra1>
|
||||
|
||||
<extra2>
|
||||
|
||||
<a>1</a>
|
||||
|
||||
<b>1</b>
|
||||
|
||||
</extra2>
|
||||
|
||||
<jump>-1</jump>
|
||||
|
||||
</special>
|
||||
|
||||
</specials>
|
||||
|
||||
<signs>
|
||||
|
||||
<sign id="0">120</sign><!-- refers to text node -->
|
||||
|
||||
</signs>
|
||||
|
||||
<fields>
|
||||
|
||||
<field id="0">
|
||||
|
||||
<x>25</x>
|
||||
|
||||
<y>17</y>
|
||||
|
||||
<type>128</type><!-- fields.h, bitmask thing -->
|
||||
|
||||
</field>
|
||||
|
||||
</fields>
|
||||
|
||||
<sfxs>
|
||||
|
||||
<sfx id="0">
|
||||
|
||||
<x>27</x>
|
||||
|
||||
<y>17</y>
|
||||
|
||||
<type>4</type><!-- fields.h, bitmask thing -->
|
||||
|
||||
</sfx>
|
||||
|
||||
</sfxs>
|
||||
<!-- these code both fields and sfx -->
|
||||
<fields x="25" y="17">128</fields><!-- fields.h, bitmask thing -->
|
||||
|
||||
<!-- preset items -->
|
||||
<item x="12" y="13">
|
||||
<id>17</id>
|
||||
<property>true</property>
|
||||
<charges>3</charges>
|
||||
</item>
|
||||
|
||||
<!-- preset creatures -->
|
||||
<creature x="15" y="32">
|
||||
<id>12</id>
|
||||
<personality>0</personality>
|
||||
<attitude>0</attitude>
|
||||
<mobility>1</mobility>
|
||||
</creature>
|
||||
|
||||
</town>
|
||||
|
54
rsrc/boes/town/t0.map
Normal file
54
rsrc/boes/town/t0.map
Normal file
@@ -0,0 +1,54 @@
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
# comma-seperated, tile type
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,122,122,122,122,122,122,122,122,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,122,170,170,170,170,170,170,170,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,122,170,170,170,170,170,170,170,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,125,170,170,247:0,170,170,170,170,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
# add a : to specify a special is there. 247:0 is 247 with special 0
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,121!0,122,170,170,170,170,170,170,170,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
# add a ! to specify a sign is there. 121!0 is 121 with sign 0
|
||||
# you can do both, in either order; 121!0:0 and 121:0!0 are both 121 with special 0 and sign 0
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,122,170,170,170,170,170,170,170,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,122,170,170,170,170,170,170,170,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,122,170,170,170,170,170,170,170,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,122,122,122,122,122,122,122,122,122,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2~h,2~H,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
# add a ~ to specify a boat or horse; following character is h for horse, b for boat
|
||||
# uppercase indicates it's not the party's property, lowercase indicates it is
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
||||
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
6
rsrc/boes/town/t0.spec
Normal file
6
rsrc/boes/town/t0.spec
Normal file
@@ -0,0 +1,6 @@
|
||||
|
||||
# Possible special node format
|
||||
# SpecialID, SpecialType, SDF, Message, Extra1, Extra2, Jump
|
||||
# Potentially, each SpecialType could have its own format.
|
||||
|
||||
0 TOWN_PLACE_MONST sdf(-1,-1), mess(0,1), extra(26,16), extra(1,1), jump(-1)
|
Reference in New Issue
Block a user