Initial commit

This commit is contained in:
2026-02-02 04:50:13 +01:00
commit 5b11698731
22592 changed files with 7677434 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
<!-- $Id: armors.dtd 1904 2004-05-23 05:25:40Z andrewtaylor $ -->
<!ELEMENT armors ( armor+ ) >
<!ELEMENT armor ( constraint* ) >
<!ATTLIST armor name CDATA #REQUIRED
defense NMTOKEN #REQUIRED>

View File

@@ -0,0 +1,6 @@
<!-- $Id: color.dtd 1941 2004-05-26 05:47:34Z andrewtaylor $ -->
<!ELEMENT color EMPTY >
<!ATTLIST color red NMTOKEN #REQUIRED
green NMTOKEN #REQUIRED
blue NMTOKEN #REQUIRED>

View File

@@ -0,0 +1,4 @@
<!-- $Id: common.dtd 2544 2005-09-20 05:10:07Z andrewtaylor $ -->
<!ENTITY % bool '( true | false )'>
<!ENTITY % class '( mage | bard | fighter | druid | tinker | paladin | ranger | shepherd | all )'>
<!ENTITY % effect '( fire | sleep | poison | poisonField | electricity | lava )'>

View File

@@ -0,0 +1,9 @@
<!ELEMENT config ( armors, creatures, maps, tileRules, tilesets, egaPalette, graphics, music, sound, weapons ) >
<!ATTLIST config name CDATA #REQUIRED>
<!ELEMENT sound ( track+ ) >
<!ELEMENT music ( track+ ) >
<!ELEMENT track EMPTY >
<!ATTLIST track file CDATA #REQUIRED>

View File

@@ -0,0 +1,5 @@
<!-- $Id: constraint.dtd 1906 2004-05-23 05:27:19Z andrewtaylor $ -->
<!ELEMENT constraint EMPTY >
<!ATTLIST constraint canuse %bool; #REQUIRED
class %class; #REQUIRED>

View File

@@ -0,0 +1,41 @@
<!-- $Id: creatures.dtd 2764 2011-01-03 09:13:22Z darren_janeczek $ -->
<!ELEMENT creatures ( creature+ ) >
<!ELEMENT creature EMPTY >
<!ATTLIST creature id NMTOKEN #REQUIRED
encounterSize NMTOKEN #IMPLIED
name CDATA #REQUIRED
tile NMTOKEN #REQUIRED
basehp NMTOKEN #IMPLIED
exp NMTOKEN #REQUIRED
leader NMTOKEN #IMPLIED
ambushes %bool; #IMPLIED
camouflage %bool; #IMPLIED
camouflageTile NMTOKEN #IMPLIED
canMoveOntoAvatar NMTOKEN #IMPLIED
canMoveOntoCreatures %bool; #IMPLIED
cantattack %bool; #IMPLIED
casts ( sleep | negate ) #IMPLIED
divides %bool; #IMPLIED
spawnsOnDeath NMTOKEN #IMPLIED
flies %bool; #IMPLIED
good %bool; #IMPLIED
incorporeal %bool; #IMPLIED
leavestile %bool; #IMPLIED
movement ( none | wanders ) #IMPLIED
nochest %bool; #IMPLIED
poisons %bool; #IMPLIED
ranged %bool; #IMPLIED
rangedhittile NMTOKEN #IMPLIED
rangedmisstile NMTOKEN #IMPLIED
resists %effect; #IMPLIED
sails %bool; #IMPLIED
spawntile NMTOKEN #IMPLIED
steals ( food | gold ) #IMPLIED
swims %bool; #IMPLIED
teleports %bool; #IMPLIED
undead %bool; #IMPLIED
wontattack %bool; #IMPLIED
worldrangedtile NMTOKEN #IMPLIED
forceOfNature %bool; #IMPLIED>

View File

@@ -0,0 +1,3 @@
<!-- $Id: egaPalette.dtd 1942 2004-05-26 05:48:22Z andrewtaylor $ -->
<!ELEMENT egaPalette ( color+ ) >

View File

@@ -0,0 +1,69 @@
<!-- $Id: graphics.dtd 2926 2011-06-24 21:48:05Z darren_janeczek $ -->
<!ENTITY % bool '( true | false )'>
<!ENTITY % fixup '( none | intro | abyss | abacus | dungns | blackTransparencyHack | fmtownsscreen )'>
<!ENTITY % layouttype '( standard | gem | dungeon_gem )'>
<!ENTITY % transformtype '( invert | pixel | scroll | frame | pixel_color )'>
<!ENTITY % context '( frame | dir )'>
<!ELEMENT graphics ( imageset | layout | tileanimset )+ >
<!ELEMENT imageset ( image+ ) >
<!ATTLIST imageset name NMTOKEN #REQUIRED
extends NMTOKEN #IMPLIED>
<!ELEMENT image ( subimage* ) >
<!ATTLIST image name NMTOKEN #REQUIRED
filename CDATA #REQUIRED
width NMTOKEN #IMPLIED
height NMTOKEN #IMPLIED
depth NMTOKEN #IMPLIED
prescale NMTOKEN #IMPLIED
filetype CDATA #IMPLIED
tiles NMTOKEN #IMPLIED
introOnly %bool; #IMPLIED
transparentIndex NMTOKEN #IMPLIED
xu4Graphic %bool; #IMPLIED
fixup %fixup; #IMPLIED>
<!ELEMENT subimage EMPTY >
<!ATTLIST subimage name NMTOKEN #REQUIRED
x NMTOKEN #IMPLIED
y NMTOKEN #IMPLIED
width NMTOKEN #REQUIRED
height NMTOKEN #REQUIRED>
<!ELEMENT layout ( tileshape, viewport ) >
<!ATTLIST layout name CDATA #REQUIRED
type %layouttype; #REQUIRED>
<!ELEMENT tileshape EMPTY >
<!ATTLIST tileshape width NMTOKEN #REQUIRED
height NMTOKEN #REQUIRED>
<!ELEMENT viewport EMPTY >
<!ATTLIST viewport x NMTOKEN #REQUIRED
y NMTOKEN #REQUIRED
width NMTOKEN #REQUIRED
height NMTOKEN #REQUIRED>
<!ELEMENT tileanimset ( tileanim+ ) >
<!ATTLIST tileanimset name NMTOKEN #REQUIRED>
<!ELEMENT tileanim ( transform+ | context+ ) >
<!ATTLIST tileanim name NMTOKEN #REQUIRED
random NMTOKEN #IMPLIED>
<!ELEMENT context ( transform+ ) >
<!ATTLIST context type %context; #REQUIRED
frame NMTOKEN #IMPLIED
dir NMTOKEN #IMPLIED>
<!ELEMENT transform ( color* ) >
<!ATTLIST transform type %transformtype; #REQUIRED
x NMTOKEN #IMPLIED
y NMTOKEN #IMPLIED
width NMTOKEN #IMPLIED
height NMTOKEN #IMPLIED
random NMTOKEN #IMPLIED
increment NMTOKEN #IMPLIED> <!-- If not provided, equals scale -->

View File

@@ -0,0 +1,88 @@
<!-- $Id: maps.dtd 2572 2005-10-03 06:17:52Z andrewtaylor $ -->
<!ENTITY % bool '( true | false )'>
<!ENTITY % role '( armorvendor | companion | foodvendor | guildvendor | hawkwind | healer |
horsevendor | innkeeper | lordbritish | reagentsvendor | tavernkeeper |
weaponsvendor )'>
<!ELEMENT maps ( map+ ) >
<!ELEMENT map ( city | compressedchunk | dungeon | moongate | portal | shrine | xml | label )* >
<!ATTLIST map id NMTOKEN #REQUIRED
type ( city | combat | dungeon | shrine | world | u3world ) #REQUIRED
fname NMTOKEN #REQUIRED
width NMTOKEN #REQUIRED
height NMTOKEN #REQUIRED
levels NMTOKEN #REQUIRED
chunkwidth NMTOKEN #IMPLIED
chunkheight NMTOKEN #IMPLIED
offset NMTOKEN #IMPLIED
borderbehavior ( exit | fixed | wrap ) #REQUIRED
showavatar %bool; #IMPLIED
nolineofsight %bool; #IMPLIED
firstperson %bool; #IMPLIED
contextual %bool; #IMPLIED
music NMTOKEN #REQUIRED
tileset NMTOKEN #REQUIRED
tilemap NMTOKEN #REQUIRED>
<!-- city-map specific information -->
<!ELEMENT city ( personrole* ) >
<!ATTLIST city name CDATA #REQUIRED
type ( castle | towne | village | ruins ) #REQUIRED
tlk_fname NMTOKEN #REQUIRED>
<!-- special roles for persons in a city: e.g. vendors -->
<!ELEMENT personrole EMPTY >
<!ATTLIST personrole role %role; #REQUIRED
id NMTOKEN #REQUIRED>
<!-- the U5 map implicitly leaves out certain chunks that are all of value 0x01 -->
<!ELEMENT compressedchunk EMPTY >
<!ATTLIST compressedchunk index NMTOKEN #REQUIRED>
<!-- dungeon-map specific information -->
<!ELEMENT dungeon EMPTY >
<!ATTLIST dungeon name CDATA #REQUIRED
rooms NMTOKEN #REQUIRED>
<!-- shrine-map specific information -->
<!ELEMENT shrine EMPTY >
<!ATTLIST shrine mantra NMTOKEN #REQUIRED
virtue NMTOKEN #REQUIRED>
<!-- moongate definitions -->
<!ELEMENT moongate EMPTY >
<!ATTLIST moongate phase NMTOKEN #REQUIRED
x NMTOKEN #REQUIRED
y NMTOKEN #REQUIRED>
<!-- portals to other maps -->
<!ELEMENT portal ( retroActiveDest? ) >
<!ATTLIST portal x NMTOKEN #REQUIRED
y NMTOKEN #REQUIRED
z NMTOKEN #IMPLIED
destmapid NMTOKEN #REQUIRED
startx NMTOKEN #REQUIRED
starty NMTOKEN #REQUIRED
startlevel NMTOKEN #IMPLIED
action ( descend | enter | klimb | exit_north | exit_east | exit_south | exit_west ) #REQUIRED
condition ( shrine | abyss ) #IMPLIED
savelocation %bool; #REQUIRED
message CDATA #IMPLIED
transport ( foot | footorhorse ) #REQUIRED
exits NMTOKEN #IMPLIED>
<!-- support for portals that don't exit where they are entered -->
<!ELEMENT retroActiveDest EMPTY >
<!ATTLIST retroActiveDest x NMTOKEN #REQUIRED
y NMTOKEN #REQUIRED
z NMTOKEN #IMPLIED
mapid NMTOKEN #REQUIRED>
<!-- labeled points of interest -->
<!ELEMENT label EMPTY >
<!ATTLIST label name NMTOKEN #REQUIRED
x NMTOKEN #REQUIRED
y NMTOKEN #REQUIRED
z NMTOKEN #IMPLIED>

View File

@@ -0,0 +1,32 @@
<!-- $Id: tileRules.dtd 2785 2011-01-24 07:24:12Z darren_janeczek $ -->
<!ENTITY % bool '( true | false )'>
<!ENTITY % dir '( west | north | east | south | advance | retreat | all )'>
<!ENTITY % effect '( fire | sleep | poison | poisonField | electricity | lava )'>
<!ENTITY % speed '( slow | vslow | vvslow )'>
<!ELEMENT tileRules ( rule+ ) >
<!ELEMENT rule EMPTY >
<!ATTLIST rule name CDATA #REQUIRED
balloon %bool; #IMPLIED
canattackover %bool; #IMPLIED
canlandballoon %bool; #IMPLIED
cantwalkoff %dir; #IMPLIED
cantwalkon %dir; #IMPLIED
chest %bool; #IMPLIED
dispel %bool; #IMPLIED
door %bool; #IMPLIED
effect %effect; #IMPLIED
horse %bool; #IMPLIED
lockeddoor %bool; #IMPLIED
creatureunwalkable %bool; #IMPLIED
replacement %bool; #IMPLIED
onWaterOnlyReplacement %bool; #IMPLIED
sailable %bool; #IMPLIED
ship %bool; #IMPLIED
speed %speed; #IMPLIED
swimable %bool; #IMPLIED
talkover %bool; #IMPLIED
unflyable %bool; #IMPLIED
livingthing %bool; #IMPLIED>

View File

@@ -0,0 +1,10 @@
<!-- $Id: tilemap.dtd 2553 2005-09-26 07:44:29Z andrewtaylor $ -->
<!ELEMENT tilemap ( mapping+ ) >
<!ATTLIST tilemap name CDATA #REQUIRED
tileset CDATA #REQUIRED>
<!ELEMENT mapping EMPTY >
<!ATTLIST mapping tile CDATA #REQUIRED
index NMTOKEN #IMPLIED
frames NMTOKEN #IMPLIED>

View File

@@ -0,0 +1,26 @@
<!-- $Id: tileset.dtd 2785 2011-01-24 07:24:12Z darren_janeczek $ -->
<!ENTITY % bool '( true | false )'>
<!ENTITY % comp '( none | rle | lzw )'>
<!ENTITY % anim '( scroll | frame | slow_frame | cityflag | castleflag | lcbflag | shipflag | pirateflag | campfire | none )'>
<!ELEMENT tileset ( tile+ ) >
<!ATTLIST tileset name CDATA #REQUIRED
imageName CDATA #IMPLIED
extends CDATA #IMPLIED>
<!ELEMENT tile EMPTY >
<!ATTLIST tile name CDATA #REQUIRED
image CDATA #IMPLIED
rule CDATA #IMPLIED
index NMTOKEN #IMPLIED
frames NMTOKEN #IMPLIED
directions CDATA #IMPLIED
animation %anim; #IMPLIED
rowtoswap NMTOKEN #IMPLIED
opaque %bool; #IMPLIED
frame NMTOKEN #IMPLIED
tiledInDungeon %bool; #IMPLIED
usesReplacementTileAsBackground %bool; #IMPLIED
usesWaterReplacementTileAsBackground %bool; #IMPLIED
>

View File

@@ -0,0 +1,3 @@
<!-- $Id: tilesets.dtd 2543 2005-09-20 05:07:50Z andrewtaylor $ -->
<!ELEMENT tilesets (tilemap*, tileset*) >

View File

@@ -0,0 +1,20 @@
<!-- $Id: weapons.dtd 1953 2004-05-29 02:14:16Z dougday $ -->
<!ELEMENT weapons ( weapon+ ) >
<!ELEMENT weapon ( constraint* ) >
<!ATTLIST weapon name CDATA #REQUIRED
abbr CDATA #REQUIRED
range NMTOKEN #IMPLIED
absolute_range NMTOKEN #IMPLIED
damage NMTOKEN #REQUIRED
attackthroughobjects %bool; #IMPLIED
choosedistance %bool; #IMPLIED
dontshowtravel %bool; #IMPLIED
hittile NMTOKEN #IMPLIED
leavetile NMTOKEN #IMPLIED
lose %bool; #IMPLIED
losewhenranged %bool; #IMPLIED
magic %bool; #IMPLIED
misstile NMTOKEN #IMPLIED
returns %bool; #IMPLIED>