summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Block.cpp37
-rw-r--r--Block.h4
-rw-r--r--BlockFactory.cpp43
-rw-r--r--BlockFactory.h2
-rw-r--r--CMakeLists.txt105
-rw-r--r--ContentLoader.cpp28
-rw-r--r--ContentLoader.h5
-rw-r--r--Creatures.cpp14
-rw-r--r--GUI.cpp150
-rw-r--r--GUI.h1
-rw-r--r--MapLoading.cpp151
-rw-r--r--Occlusion_Test.cpp12
-rw-r--r--SpriteObjects.cpp12
-rw-r--r--UserInput.cpp31
-rw-r--r--common.h1
-rw-r--r--commonTypes.h1
-rw-r--r--main.cpp14
-rw-r--r--resources/Fluids/Fluids.xml66
-rw-r--r--resources/SSJobIcons.pngbin0 -> 7355 bytes
-rw-r--r--resources/SSProfIcons.pngbin8217 -> 25359 bytes
-rw-r--r--resources/buildings/AnimalTrap.xml5
-rw-r--r--resources/buildings/Cabinet.xml12
-rw-r--r--resources/buildings/Cage.xml23
-rw-r--r--resources/buildings/CageTrap.xml4
-rw-r--r--resources/buildings/Chair.xml12
-rw-r--r--resources/buildings/Chest.xml30
-rw-r--r--resources/buildings/Craftsdwarfs.xml (renamed from resources/buildings/Craftdwarfs.xml)4
-rw-r--r--resources/buildings/DoorsAndFloodgates.pngbin15358 -> 17470 bytes
-rw-r--r--resources/buildings/Hatch.xml56
-rw-r--r--resources/buildings/Kennels.xml4
-rw-r--r--resources/buildings/Spikes.xml14
-rw-r--r--resources/buildings/StonefallTrap.xml4
-rw-r--r--resources/buildings/Table.xml26
-rw-r--r--resources/buildings/Target.xml46
-rw-r--r--resources/buildings/VerticalBars.pngbin1714 -> 2437 bytes
-rw-r--r--resources/buildings/VerticalBars.xml30
-rw-r--r--resources/buildings/WallGrate.xml6
-rw-r--r--resources/buildings/WeaponTrap.xml14
-rw-r--r--resources/buildings/index.txt3
-rw-r--r--resources/creatures.pngbin26451 -> 18989 bytes
-rw-r--r--resources/creatures/Wildlife.xml59
-rw-r--r--resources/creatures/caravan_animals.xml2
-rw-r--r--resources/creatures/humans.pngbin0 -> 11497 bytes
-rw-r--r--resources/creatures/humans.xml175
-rw-r--r--resources/creatures/humies.pngbin1489 -> 0 bytes
-rw-r--r--resources/creatures/humies.xml13
-rw-r--r--resources/creatures/index.txt4
-rw-r--r--resources/creatures/large_128/crundle.pngbin0 -> 11784 bytes
-rw-r--r--resources/creatures/large_128/crundle.xml23
-rw-r--r--resources/creatures/large_128/domestic.pngbin0 -> 58026 bytes
-rw-r--r--resources/creatures/large_128/domestic.xml114
-rw-r--r--resources/creatures/large_128/dwarf.xml786
-rw-r--r--resources/creatures/large_128/dwarff.pngbin0 -> 124081 bytes
-rw-r--r--resources/creatures/large_128/dwarfm.pngbin0 -> 136301 bytes
-rw-r--r--resources/creatures/large_128/index.txt7
-rw-r--r--resources/creatures/large_128/jabber.pngbin0 -> 21623 bytes
-rw-r--r--resources/creatures/large_128/jabber.xml23
-rw-r--r--resources/creatures/large_128/wild.pngbin0 -> 11973 bytes
-rw-r--r--resources/creatures/large_128/wild.xml22
-rw-r--r--resources/creatures/large_256/Thumbs.dbbin156160 -> 0 bytes
-rw-r--r--resources/creatures/large_256/crundle.pngbin16026 -> 0 bytes
-rw-r--r--resources/creatures/large_256/crundle.xml23
-rw-r--r--resources/creatures/large_256/dwarf.xml224
-rw-r--r--resources/creatures/large_256/dwarff.pngbin245784 -> 0 bytes
-rw-r--r--resources/creatures/large_256/dwarfm.pngbin121063 -> 0 bytes
-rw-r--r--resources/creatures/large_256/goat.pngbin31803 -> 0 bytes
-rw-r--r--resources/creatures/large_256/goat.xml37
-rw-r--r--resources/creatures/large_256/index.txt8
-rw-r--r--resources/creatures/large_256/jabber.pngbin29431 -> 0 bytes
-rw-r--r--resources/creatures/large_256/jabber.xml23
-rw-r--r--resources/creatures/large_256/sheep.pngbin23925 -> 0 bytes
-rw-r--r--resources/creatures/large_256/sheep.xml26
-rw-r--r--resources/creatures/large_256/waterbuf.pngbin21295 -> 0 bytes
-rw-r--r--resources/creatures/large_256/waterbuf.xml25
-rw-r--r--resources/objects.pngbin43552 -> 47404 bytes
-rw-r--r--resources/terrain/Floors.xml13
-rw-r--r--resources/terrain/Walls.xml13
77 files changed, 1911 insertions, 679 deletions
diff --git a/Block.cpp b/Block.cpp
index 76a5822..3a5bb7d 100644
--- a/Block.cpp
+++ b/Block.cpp
@@ -37,7 +37,8 @@ Worn_Item::Worn_Item()
{
matt.index = -1;
matt.type = -1;
- dyed = 0;
+ dyematt.index = -1;
+ dyematt.type = -1;
}
Block::Block(WorldSegment* ownerSegment)
@@ -66,9 +67,10 @@ Block::Block(WorldSegment* ownerSegment)
visible = true;
Item.item.type =-1;
- Item.dyed = 0;
Item.matt.type=-1;
Item.matt.index=-1;
+ Item.dyematt.type=-1;
+ Item.dyematt.index=-1;
}
@@ -144,6 +146,7 @@ void Block::Draw()
pointToScreen((int*)&drawx, (int*)&drawy, drawz);
drawx -= (TILEWIDTH>>1)*config.scale;
+ //TODO the following check should get incorporated into segment beautification
if(((drawx + TILEWIDTH*config.scale) < 0) || (drawx > al_get_bitmap_width(al_get_target_bitmap())) || ((drawy + (TILEHEIGHT + FLOORHEIGHT)*config.scale) < 0) || (drawy - WALLHEIGHT*config.scale > al_get_bitmap_height(al_get_target_bitmap())))
return;
@@ -230,7 +233,7 @@ void Block::Draw()
//fixme: needs to be scaled
if(Eff_SeaFoam.density > 0)
{
- ALLEGRO_COLOR tint = lookupMaterialColor(Eff_SeaFoam.matt.type, Eff_SeaFoam.matt.index);
+ ALLEGRO_COLOR tint = lookupMaterialColor(Eff_SeaFoam.matt);
tint.a*=Eff_SeaFoam.density/100.0f;
al_draw_tinted_bitmap(sprite_oceanwave,tint, drawx, drawy - (WALLHEIGHT), 0);
}
@@ -304,7 +307,7 @@ void Block::Draw()
contentLoader->itemConfigs[Item.item.type]->default_sprite.draw_world(x, y, z, this);
}
else
- DrawSpriteFromSheet( 350, IMGObjectSheet, lookupMaterialColor(Item.matt.type, Item.matt.index, Item.dyed), drawx, (tileShapeBasic==tiletype_shape_basic::Ramp)?(drawy - ((WALLHEIGHT/2)*config.scale)):drawy , this);
+ DrawSpriteFromSheet( 350, IMGObjectSheet, lookupMaterialColor(Item.matt, Item.dyematt), drawx, (tileShapeBasic==tiletype_shape_basic::Ramp)?(drawy - ((WALLHEIGHT/2)*config.scale)):drawy , this);
}
@@ -455,44 +458,44 @@ void Block::Draw()
if(Eff_Web.density > 0)
{
- ALLEGRO_COLOR tint = lookupMaterialColor(Eff_Web.matt.type, Eff_Web.matt.index);
+ ALLEGRO_COLOR tint = lookupMaterialColor(Eff_Web.matt);
tint.a*=Eff_Web.density/100.0f;
DrawSpriteFromSheet(rando%5, sprite_webing, tint, drawx, drawy, this, 4.0f);
//al_draw_tinted_bitmap(sprite_webing,tint, drawx, drawy - (WALLHEIGHT), 0);
}
if(Eff_Miasma.density > 0)
{
- ALLEGRO_COLOR tint = lookupMaterialColor(Eff_Miasma.matt.type, Eff_Miasma.matt.index);
+ ALLEGRO_COLOR tint = lookupMaterialColor(Eff_Miasma.matt);
draw_particle_cloud(Eff_Miasma.density, drawx, drawy - (SPRITEHEIGHT/2), SPRITEWIDTH, SPRITEHEIGHT, sprite_miasma, tint);
}
if(Eff_Steam.density > 0)
{
- ALLEGRO_COLOR tint = lookupMaterialColor(Eff_Steam.matt.type, Eff_Steam.matt.index);
+ ALLEGRO_COLOR tint = lookupMaterialColor(Eff_Steam.matt);
draw_particle_cloud(Eff_Steam.density, drawx, drawy - (SPRITEHEIGHT/2), SPRITEWIDTH, SPRITEHEIGHT, sprite_water, tint);
}
if(Eff_Mist.density > 0)
{
- ALLEGRO_COLOR tint = lookupMaterialColor(Eff_Mist.matt.type, Eff_Mist.matt.index);
+ ALLEGRO_COLOR tint = lookupMaterialColor(Eff_Mist.matt);
draw_particle_cloud(Eff_Mist.density, drawx, drawy - (SPRITEHEIGHT/2), SPRITEWIDTH, SPRITEHEIGHT, sprite_water2, tint);
}
if(Eff_MaterialDust.density > 0)
{
- ALLEGRO_COLOR tint = lookupMaterialColor(Eff_MaterialDust.matt.type, Eff_MaterialDust.matt.index);
+ ALLEGRO_COLOR tint = lookupMaterialColor(Eff_MaterialDust.matt);
draw_particle_cloud(Eff_MaterialDust.density, drawx, drawy - (SPRITEHEIGHT/2), SPRITEWIDTH, SPRITEHEIGHT, sprite_dust, tint);
}
if(Eff_MagmaMist.density > 0)
{
- ALLEGRO_COLOR tint = lookupMaterialColor(Eff_MagmaMist.matt.type, Eff_MagmaMist.matt.index);
+ ALLEGRO_COLOR tint = lookupMaterialColor(Eff_MagmaMist.matt);
draw_particle_cloud(Eff_MagmaMist.density, drawx, drawy - (SPRITEHEIGHT/2), SPRITEWIDTH, SPRITEHEIGHT, sprite_magma, tint);
}
if(Eff_Smoke.density > 0)
{
- ALLEGRO_COLOR tint = lookupMaterialColor(Eff_Smoke.matt.type, Eff_Smoke.matt.index);
+ ALLEGRO_COLOR tint = lookupMaterialColor(Eff_Smoke.matt);
draw_particle_cloud(Eff_Smoke.density, drawx, drawy - (SPRITEHEIGHT/2), SPRITEWIDTH, SPRITEHEIGHT, sprite_smoke, tint);
}
if(Eff_Dragonfire.density > 0)
{
- ALLEGRO_COLOR tint = lookupMaterialColor(Eff_Dragonfire.matt.type, Eff_Dragonfire.matt.index);
+ ALLEGRO_COLOR tint = lookupMaterialColor(Eff_Dragonfire.matt);
tint.a*=Eff_Dragonfire.density/100.0f;
tint.g*=Eff_Dragonfire.density/100.0f;
tint.b*=Eff_Dragonfire.density/100.0f;
@@ -503,7 +506,7 @@ void Block::Draw()
}
if(Eff_Fire.density > 0)
{
- ALLEGRO_COLOR tint = lookupMaterialColor(Eff_Fire.matt.type, Eff_Fire.matt.index);
+ ALLEGRO_COLOR tint = lookupMaterialColor(Eff_Fire.matt);
tint.a*=Eff_Fire.density/100.0f;
tint.g*=Eff_Fire.density/100.0f;
tint.b*=Eff_Fire.density/100.0f;
@@ -514,17 +517,17 @@ void Block::Draw()
}
if(Eff_MaterialGas.density > 0)
{
- ALLEGRO_COLOR tint = lookupMaterialColor(Eff_MaterialGas.matt.type, Eff_MaterialGas.matt.index);
+ ALLEGRO_COLOR tint = lookupMaterialColor(Eff_MaterialGas.matt);
draw_particle_cloud(Eff_MaterialGas.density, drawx, drawy - (SPRITEHEIGHT/2), SPRITEWIDTH, SPRITEHEIGHT, sprite_boiling, tint);
}
if(Eff_MaterialVapor.density > 0)
{
- ALLEGRO_COLOR tint = lookupMaterialColor(Eff_MaterialVapor.matt.type, Eff_MaterialVapor.matt.index);
+ ALLEGRO_COLOR tint = lookupMaterialColor(Eff_MaterialVapor.matt);
draw_particle_cloud(Eff_MaterialVapor.density, drawx, drawy - (SPRITEHEIGHT/2), SPRITEWIDTH, SPRITEHEIGHT, sprite_boiling, tint);
}
if(Eff_OceanWave.density > 0)
{
- ALLEGRO_COLOR tint = lookupMaterialColor(Eff_OceanWave.matt.type, Eff_OceanWave.matt.index);
+ ALLEGRO_COLOR tint = lookupMaterialColor(Eff_OceanWave.matt);
draw_particle_cloud(Eff_OceanWave.density, drawx, drawy - (SPRITEHEIGHT/2), SPRITEWIDTH, SPRITEHEIGHT, sprite_water, tint);
}
}
@@ -598,7 +601,7 @@ void Block::DrawPixel(int drawx, int drawy)
tileShapeBasic==tiletype_shape_basic::Stair
)
{
- al_put_pixel(drawx, drawy, lookupMaterialColor(this->material.type, this->material.index));
+ al_put_pixel(drawx, drawy, lookupMaterialColor(this->material));
}
if(this->water.index)
{
diff --git a/Block.h b/Block.h
index a3d8f58..0126796 100644
--- a/Block.h
+++ b/Block.h
@@ -16,7 +16,7 @@ struct Effect
struct Worn_Item
{
DFHack::t_matglossPair matt;
- bool dyed;
+ DFHack::t_matglossPair dyematt;
int8_t rating;
Worn_Item();
};
@@ -148,7 +148,7 @@ public:
{
DFHack::t_matglossPair item;
DFHack::t_matglossPair matt;
- bool dyed;
+ DFHack::t_matglossPair dyematt;
} Item;
//These are actually applied to the creature standing here, but there's only one creature shown, so it's okay.
diff --git a/BlockFactory.cpp b/BlockFactory.cpp
index 03c6e8a..5d9d63b 100644
--- a/BlockFactory.cpp
+++ b/BlockFactory.cpp
@@ -6,32 +6,43 @@ BlockFactory blockFactory;
BlockFactory::BlockFactory(void)
{
- poolSize = 0;
+ poolSize = 0;
+ blocksCreated = 0;
}
BlockFactory::~BlockFactory(void)
{
- for(uint32_t i=0; i<poolSize; i++){
- free( pool[i] );
- }
+ for(uint32_t i=0; i<poolSize; i++){
+ free( pool[i] );
+ blocksCreated--;
+ }
+ poolSize = 0;
+ pool.clear();
}
Block* BlockFactory::allocateBlock(){
- if( poolSize > 0 ){
- poolSize--;
- Block* b = pool[poolSize];
- pool.pop_back();
- return b;
- }
-
- //pool is empty(full), just New up a new block
- Block* b = (Block*) malloc( sizeof(Block) );
- return b;
+ if( poolSize > 0 ){
+ poolSize--;
+ Block* b = pool[poolSize];
+ pool.pop_back();
+ return b;
+ }
+
+ //pool is empty(full), just New up a new block
+ blocksCreated++;
+ Block* b = (Block*) malloc( sizeof(Block) );
+ return b;
}
void BlockFactory::deleteBlock(Block *b){
- poolSize++;
- pool.push_back( b );
+ if(2*poolSize < blocksCreated){
+ poolSize++;
+ pool.push_back( b );
+ }
+ else{
+ blocksCreated--;
+ free( b );
+ }
}
diff --git a/BlockFactory.h b/BlockFactory.h
index a122dd6..a8d2046 100644
--- a/BlockFactory.h
+++ b/BlockFactory.h
@@ -5,6 +5,7 @@
class BlockFactory
{
uint32_t poolSize;
+ uint32_t blocksCreated;
vector<Block*> pool;
public:
@@ -13,6 +14,7 @@ public:
Block* allocateBlock( );
void deleteBlock( Block* );
uint32_t getPoolSize(){ return poolSize; }
+ uint32_t getBlocksCreated(){ return blocksCreated; }
};
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 562c75d..1a6dc00 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,41 +34,78 @@ SET(PROJECT_SRCS
main.cpp
)
-#linux
IF(UNIX)
- OPTION(STONESENSE_INTERNAL_SO "Link with prebuilt internal allegro libs and headers." ON)
- IF(STONESENSE_INTERNAL_SO)
- FILE(DOWNLOAD http://cloud.github.com/downloads/peterix/stonesense/allegro.tar.bz2
- ${stonesense_SOURCE_DIR}/allegro.tar.bz2
- EXPECTED_MD5 11ce22e71db4a0886eac3af220eef032)
- execute_process(COMMAND tar xf ${stonesense_SOURCE_DIR}/allegro.tar.bz2
- WORKING_DIRECTORY ${stonesense_SOURCE_DIR})
- SET(PROJECT_LIBS
- ${stonesense_SOURCE_DIR}/allegro/lib/liballegro.so.5.0
- ${stonesense_SOURCE_DIR}/allegro/lib/liballegro_primitives.so.5.0
- ${stonesense_SOURCE_DIR}/allegro/lib/liballegro_font.so.5.0
- ${stonesense_SOURCE_DIR}/allegro/lib/liballegro_image.so.5.0
- ${stonesense_SOURCE_DIR}/allegro/lib/liballegro_ttf.so.5.0
- ${PROJECT_LIBS}
- )
- include_directories (
- ${include_directories}
- ${stonesense_SOURCE_DIR}/allegro/include
- )
- install(DIRECTORY allegro/lib/
- DESTINATION "stonesense/deplibs"
- PATTERN "CVS" EXCLUDE
- PATTERN ".svn" EXCLUDE)
- ELSE()
- SET(PROJECT_LIBS
- allegro
- allegro_primitives
- allegro_font
- allegro_image
- allegro_ttf
- ${PROJECT_LIBS}
- )
- ENDIF()
+ IF(APPLE)
+ # Mac OS X
+ OPTION(STONESENSE_INTERNAL_DYLIB "Link with prebuilt internal allegro libs and headers." ON)
+ IF(STONESENSE_INTERNAL_DYLIB)
+ FILE(DOWNLOAD http://cloud.github.com/downloads/danaris/dfhack/allegro-507-osx.tar.bz2
+ ${stonesense_SOURCE_DIR}/allegro-507-osx.tar.bz2
+ EXPECTED_MD5 10e8d3dacb01f3d58a9b7f6e5b428470)
+ execute_process(COMMAND tar xf ${stonesense_SOURCE_DIR}/allegro-507-osx.tar.bz2
+ WORKING_DIRECTORY ${stonesense_SOURCE_DIR})
+ SET(PROJECT_LIBS
+ ${stonesense_SOURCE_DIR}/allegro-osx/lib/liballegro.5.0.7.dylib
+ ${stonesense_SOURCE_DIR}/allegro-osx/lib/liballegro_primitives.5.0.7.dylib
+ ${stonesense_SOURCE_DIR}/allegro-osx/lib/liballegro_font.5.0.7.dylib
+ ${stonesense_SOURCE_DIR}/allegro-osx/lib/liballegro_image.5.0.7.dylib
+ ${stonesense_SOURCE_DIR}/allegro-osx/lib/liballegro_ttf.5.0.7.dylib
+ ${PROJECT_LIBS}
+ )
+ include_directories (
+ ${include_directories}
+ ${stonesense_SOURCE_DIR}/allegro-osx/include
+ )
+ install(DIRECTORY allegro-osx/lib/
+ DESTINATION "stonesense/deplibs"
+ PATTERN "CVS" EXCLUDE
+ PATTERN ".svn" EXCLUDE)
+ ELSE()
+ SET(PROJECT_LIBS
+ allegro
+ allegro_primitives
+ allegro_font
+ allegro_image
+ allegro_ttf
+ ${PROJECT_LIBS}
+ )
+ ENDIF()
+ ELSE(APPLE)
+ #linux
+ OPTION(STONESENSE_INTERNAL_SO "Link with prebuilt internal allegro libs and headers." ON)
+ IF(STONESENSE_INTERNAL_SO)
+ FILE(DOWNLOAD http://cloud.github.com/downloads/peterix/stonesense/allegro.tar.bz2
+ ${stonesense_SOURCE_DIR}/allegro.tar.bz2
+ EXPECTED_MD5 11ce22e71db4a0886eac3af220eef032)
+ execute_process(COMMAND tar xf ${stonesense_SOURCE_DIR}/allegro.tar.bz2
+ WORKING_DIRECTORY ${stonesense_SOURCE_DIR})
+ SET(PROJECT_LIBS
+ ${stonesense_SOURCE_DIR}/allegro/lib/liballegro.so.5.0
+ ${stonesense_SOURCE_DIR}/allegro/lib/liballegro_primitives.so.5.0
+ ${stonesense_SOURCE_DIR}/allegro/lib/liballegro_font.so.5.0
+ ${stonesense_SOURCE_DIR}/allegro/lib/liballegro_image.so.5.0
+ ${stonesense_SOURCE_DIR}/allegro/lib/liballegro_ttf.so.5.0
+ ${PROJECT_LIBS}
+ )
+ include_directories (
+ ${include_directories}
+ ${stonesense_SOURCE_DIR}/allegro/include
+ )
+ install(DIRECTORY allegro/lib/
+ DESTINATION "stonesense/deplibs"
+ PATTERN "CVS" EXCLUDE
+ PATTERN ".svn" EXCLUDE)
+ ELSE()
+ SET(PROJECT_LIBS
+ allegro
+ allegro_primitives
+ allegro_font
+ allegro_image
+ allegro_ttf
+ ${PROJECT_LIBS}
+ )
+ ENDIF()
+ ENDIF()
# windows
ELSE(UNIX)
FILE(DOWNLOAD http://cloud.github.com/downloads/peterix/stonesense/allegrow.tar.gz
diff --git a/ContentLoader.cpp b/ContentLoader.cpp
index 77cad67..1014d1e 100644
--- a/ContentLoader.cpp
+++ b/ContentLoader.cpp
@@ -749,7 +749,23 @@ void ContentLoader::flushCreatureConfig()
// make big enough to hold all creatures
creatureConfigs.clear();
}
-ALLEGRO_COLOR lookupMaterialColor(int matType,int matIndex, bool dye)
+
+ALLEGRO_COLOR lookupMaterialColor(DFHack::t_matglossPair matt)
+{
+ return lookupMaterialColor((int) matt.type, (int) matt.index, -1, -1);
+}
+
+ALLEGRO_COLOR lookupMaterialColor(DFHack::t_matglossPair matt, DFHack::t_matglossPair dyematt)
+{
+ return lookupMaterialColor((int) matt.type, (int) matt.index, (int) dyematt.type, (int) dyematt.index);
+}
+
+ALLEGRO_COLOR lookupMaterialColor(int matType, int matIndex)
+{
+ return lookupMaterialColor( matType, matIndex, -1, -1);
+}
+
+ALLEGRO_COLOR lookupMaterialColor(int matType, int matIndex, int dyeType, int dyeIndex)
{
if (matType < 0)
{
@@ -774,14 +790,14 @@ ALLEGRO_COLOR lookupMaterialColor(int matType,int matIndex, bool dye)
return contentLoader->colorConfigs.at(matType).colorMaterials.at(matIndex).color;
}
DFColor:
- MaterialInfo mat;
+ MaterialInfo mat, dye;
if(mat.decode(matType, matIndex))
{
- if(dye)
+ if(dyeType>=0 && dyeIndex>=0 && dye.decode(dyeType, dyeIndex))
return al_map_rgb_f(
- contentLoader->Mats->color[mat.material->powder_dye].red,
- contentLoader->Mats->color[mat.material->powder_dye].green,
- contentLoader->Mats->color[mat.material->powder_dye].blue);
+ contentLoader->Mats->color[dye.material->powder_dye].red * contentLoader->Mats->color[mat.material->state_color[0]].red,
+ contentLoader->Mats->color[dye.material->powder_dye].green * contentLoader->Mats->color[mat.material->state_color[0]].green,
+ contentLoader->Mats->color[dye.material->powder_dye].blue * contentLoader->Mats->color[mat.material->state_color[0]].blue);
else
return al_map_rgb_f(
contentLoader->Mats->color[mat.material->state_color[0]].red,
diff --git a/ContentLoader.h b/ContentLoader.h
index 2a23bed..2adc080 100644
--- a/ContentLoader.h
+++ b/ContentLoader.h
@@ -109,6 +109,9 @@ uint8_t lookupMaterialFore(int matType,int matIndex);
uint8_t lookupMaterialBack(int matType,int matIndex);
uint8_t lookupMaterialBright(int matType,int matIndex);
const char *lookupTreeName(int matIndex);
-ALLEGRO_COLOR lookupMaterialColor(int matType,int matIndex, bool dye = 0);
+ALLEGRO_COLOR lookupMaterialColor(DFHack::t_matglossPair matt, DFHack::t_matglossPair dyematt);
+ALLEGRO_COLOR lookupMaterialColor(DFHack::t_matglossPair matt);
+ALLEGRO_COLOR lookupMaterialColor(int matType, int matIndex, int dyeType, int dyeIndex);
+ALLEGRO_COLOR lookupMaterialColor(int matType, int matIndex);
const char * lookupFormName(int formType);
ShadeBy getShadeType(const char* Input);
diff --git a/Creatures.cpp b/Creatures.cpp
index 0f5226a..38cef17 100644
--- a/Creatures.cpp
+++ b/Creatures.cpp
@@ -300,6 +300,15 @@ void DrawCreature(int drawx, int drawy, t_unit* creature, Block * b){
unsigned int sheety = 16 * (creature->profession / 7);
al_draw_bitmap_region(IMGProfSheet, sheetx, sheety, 16, 16, drawx -8 + (SPRITEWIDTH*config.scale/2), drawy - (16 + WALLHEIGHT*config.scale + offsety), 0);
}
+
+ offsety += config.show_creature_professions ? 16 : 0;
+
+ if(config.show_creature_jobs && creature->current_job.active)
+ {
+ unsigned int sheetx = 16 * (creature->current_job.jobType % 7);
+ unsigned int sheety = 16 * (creature->current_job.jobType / 7);
+ al_draw_bitmap_region(IMGJobSheet, sheetx, sheety, 16, 16, drawx -8 + (SPRITEWIDTH*config.scale/2), drawy - (16 + WALLHEIGHT*config.scale + offsety), 0);
+ }
}
void DrawCreatureText(int drawx, int drawy, t_unit* creature ){
@@ -443,9 +452,8 @@ void ReadCreaturesToSegment( DFHack::Core& DF, WorldSegment* segment)
auto Improvement_Thread = virtual_cast<df::itemimprovement_threadst>(Constructed_Item->improvements[idex]);
if(!Improvement_Thread)
continue;
- equipment.matt.type = Improvement_Thread->dye.mat_type;
- equipment.matt.index = Improvement_Thread->dye.mat_index;
- equipment.dyed = 1;
+ equipment.dyematt.type = Improvement_Thread->dye.mat_type;
+ equipment.dyematt.index = Improvement_Thread->dye.mat_index;
}
}
}
diff --git a/GUI.cpp b/GUI.cpp
index 39da953..1109866 100644
--- a/GUI.cpp
+++ b/GUI.cpp
@@ -57,6 +57,7 @@ ALLEGRO_BITMAP* IMGCreatureSheet;
ALLEGRO_BITMAP* IMGRampSheet;
ALLEGRO_BITMAP* IMGStatusSheet;
ALLEGRO_BITMAP* IMGProfSheet;
+ALLEGRO_BITMAP* IMGJobSheet;
ALLEGRO_BITMAP* IMGBloodSheet;
ALLEGRO_BITMAP* IMGEngFloorSheet;
ALLEGRO_BITMAP* IMGEngLeftSheet;
@@ -325,22 +326,20 @@ void draw_ustr_border(const ALLEGRO_FONT *font, ALLEGRO_COLOR color, float x, fl
}
void pointToScreen(int *inx, int *iny, int inz){
- int offx = al_get_bitmap_width(al_get_target_bitmap()) / 2;
- int offy = (-20)-(BLOCKHEIGHT * config.lift_segment_offscreen);
- int z=inz-1;
+ int z = inz-1;
+
int x = *inx-*iny;
- int y = *inx+*iny;
x = x * TILEWIDTH / 2;
- y = y * TILEHEIGHT / 2;
- y-=z * BLOCKHEIGHT;
- x+=offx;
- y+=offy;
- x-=al_get_bitmap_width(al_get_target_bitmap()) / 2;
- y-=al_get_bitmap_height(al_get_target_bitmap()) / 2;
- x*=config.scale;
- y*=config.scale;
+ x *= config.scale;
x+=al_get_bitmap_width(al_get_target_bitmap()) / 2;
- y+=al_get_bitmap_height(al_get_target_bitmap()) / 2;
+
+ int y = *inx+*iny;
+ y = y*TILEHEIGHT / 2;
+ y -= z*BLOCKHEIGHT;
+ y -= TILEHEIGHT*5/4;
+ y -= BLOCKHEIGHT*config.lift_segment_offscreen;
+ y *= config.scale;
+
*inx=x;*iny=y;
}
@@ -374,10 +373,10 @@ void DrawCurrentLevelOutline(bool backPart){
Crd2D p2 = WorldBlockToScreen(x, y + sizey , z);
Crd2D p3 = WorldBlockToScreen(x + sizex , y, z);
Crd2D p4 = WorldBlockToScreen(x + sizex , y + sizey , z);
- p1.y += FLOORHEIGHT;
- p2.y += FLOORHEIGHT;
- p3.y += FLOORHEIGHT;
- p4.y += FLOORHEIGHT;
+ p1.y += FLOORHEIGHT*config.scale;
+ p2.y += FLOORHEIGHT*config.scale;
+ p3.y += FLOORHEIGHT*config.scale;
+ p4.y += FLOORHEIGHT*config.scale;
if(backPart){
al_draw_line(p1.x, p1.y, p1.x, p1.y-BLOCKHEIGHT*config.scale, color_segmentoutline, 0);
al_draw_line(p1.x, p1.y, p1.x, p1.y-BLOCKHEIGHT*config.scale, color_segmentoutline, 0);
@@ -859,7 +858,18 @@ void DrawSpriteFromSheet( int spriteNum, ALLEGRO_BITMAP* spriteSheet, ALLEGRO_CO
color.g *= 0.25f;
color.b *= 0.25f;
}
- al_draw_tinted_scaled_bitmap(spriteSheet, premultiply(color), sheetx * SPRITEWIDTH * in_scale, sheety * SPRITEHEIGHT * in_scale, SPRITEWIDTH * in_scale, SPRITEHEIGHT * in_scale, x, y - (WALLHEIGHT)*config.scale, SPRITEWIDTH*config.scale, SPRITEHEIGHT*config.scale, 0);
+ al_draw_tinted_scaled_bitmap(
+ spriteSheet,
+ premultiply(color),
+ sheetx * SPRITEWIDTH * in_scale,
+ sheety * SPRITEHEIGHT * in_scale,
+ SPRITEWIDTH * in_scale,
+ SPRITEHEIGHT * in_scale,
+ x,
+ y - (WALLHEIGHT)*config.scale,
+ SPRITEWIDTH*config.scale,
+ SPRITEHEIGHT*config.scale,
+ 0);
}
ALLEGRO_BITMAP * CreateSpriteFromSheet( int spriteNum, ALLEGRO_BITMAP* spriteSheet)
@@ -1048,6 +1058,7 @@ void loadGraphicsFromDisk()
if(!load_from_path(p, "ramps.png", IMGRampSheet)) return;
if(!load_from_path(p, "SSStatusIcons.png", IMGStatusSheet)) return;
if(!load_from_path(p, "SSProfIcons.png", IMGProfSheet)) return;
+ if(!load_from_path(p, "SSJobIcons.png", IMGJobSheet)) return;
if(!load_from_path(p, "gibs.png", IMGBloodSheet)) return;
if(!load_from_path(p, "engravings_floor.png", IMGEngFloorSheet)) return;
if(!load_from_path(p, "engravings_left.png", IMGEngLeftSheet)) return;
@@ -1087,6 +1098,11 @@ void flushImgFiles()
al_destroy_bitmap(IMGProfSheet);
IMGProfSheet = 0;
}
+ if(IMGJobSheet)
+ {
+ al_destroy_bitmap(IMGJobSheet);
+ IMGJobSheet = 0;
+ }
if(IMGEngFloorSheet)
{
al_destroy_bitmap(IMGEngFloorSheet);
@@ -1282,6 +1298,7 @@ void saveScreenshot(){
//al_set_new_bitmap_format(ALLEGRO_PIXEL_FORMAT_ANY_NO_ALPHA);
ALLEGRO_BITMAP* temp = al_create_bitmap(al_get_bitmap_width(al_get_target_bitmap()), al_get_bitmap_height(al_get_target_bitmap()));
al_set_target_bitmap(temp);
+ PrintMessage("saving screenshot to %s\n", filename);
if(!config.transparentScreenshots)
al_clear_to_color(al_map_rgb(config.backr,config.backg,config.backb));
paintboard();
@@ -1389,14 +1406,12 @@ void dumpSegment()
*/
}
-// FIXME: even more black magic.
void saveMegashot(bool tall)
{
- return;
- /*
config.showRenderStatus = true;
al_lock_mutex(config.readMutex);
- draw_textf_border(font, al_map_rgb(255,255,255), al_get_bitmap_width(al_get_target_bitmap())/2, al_get_bitmap_height(al_get_target_bitmap())/2, ALLEGRO_ALIGN_CENTRE, "Saving large screenshot...");
+
+ draw_textf_border(font, al_map_rgb(255,255,255), al_get_bitmap_width(al_get_target_bitmap())/2, al_get_bitmap_height(al_get_target_bitmap())/2, ALLEGRO_ALIGN_CENTRE, "saving large screenshot...");
al_flip_display();
char filename[20] ={0};
FILE* fp;
@@ -1419,45 +1434,93 @@ void saveMegashot(bool tall)
int tempViewy = DisplayedSegmentY;
int tempViewz = DisplayedSegmentZ;
bool tempFollow = config.follow_DFscreen;
+ bool tempfog = config.fogenable;
int tempLift = config.lift_segment_offscreen;
//now make them real big.
config.follow_DFscreen = false;
+ config.fogenable = false;
config.lift_segment_offscreen = 0;
- config.segmentSize.x = config.cellDimX + 2;
- config.segmentSize.y = config.cellDimY + 2;
- if(tall)
- config.segmentSize.z = DisplayedSegmentZ + 1;
- int bigImageWidth = (config.cellDimX * TILEWIDTH);
- int bigImageHeight = ((config.cellDimX + config.cellDimY) * TILEHEIGHT / 2) + ((config.segmentSize.z - 1) * BLOCKHEIGHT);
- parms.sizex = config.segmentSize.x;
- parms.sizey = config.segmentSize.y;
+
+ if(tall) config.segmentSize.z = DisplayedSegmentZ + 1;
parms.sizez = config.segmentSize.z;
- DisplayedSegmentX = -1;
- DisplayedSegmentY = -1;
- parms.x = DisplayedSegmentX;
- parms.y = DisplayedSegmentY;
parms.z = DisplayedSegmentZ;
- //Rebuild stuff
- read_segment(NULL);
- //Draw the image and save it
+
+ //make the image
+ int bigImageWidth = (config.cellDimX * TILEWIDTH)*config.scale;
+ int bigImageHeight = ( ((config.cellDimX + config.cellDimY) * TILEHEIGHT / 2) + ((config.segmentSize.z - 1) * BLOCKHEIGHT) )*config.scale;
bigFile = al_create_bitmap(bigImageWidth, bigImageHeight);
+
+ //draw and save the image
if(bigFile)
{
- DFConsole->print("\nSaving large screenshot to %s\n", filename);
+ PrintMessage("saving large screenshot to %s\n", filename);
al_set_target_bitmap(bigFile);
if(!config.transparentScreenshots)
al_clear_to_color(al_map_rgb(config.backr,config.backg,config.backb));
- viewedSegment->drawAllBlocks();
+
+ //here we deal with the rotations
+ int startx, incrx, numx;
+ int starty, incry, numy;
+
+ startx = -1;
+ starty = -1;
+ incrx = parms.sizex-2;
+ incry = parms.sizey-2;
+ numx = (int)(config.cellDimX+3);
+ numx = numx/incrx + (numx%incrx==0 ? 0 : 1);
+ numy = (int)(config.cellDimY+3);
+ numy = numy/incry + (numx%incry==0 ? 0 : 1);
+
+ if(DisplayedRotation == 1 || DisplayedRotation == 2)
+ {
+ starty = (int)config.cellDimY + 2 - incry;
+ DisplayedSegmentY = (int)config.cellDimY - incry - 1;
+ incry = -incry;
+ }
+ else{
+ DisplayedSegmentY = -1;
+ }
+
+ if(DisplayedRotation == 3 || DisplayedRotation == 2)
+ {
+ startx = (int)config.cellDimX + 2 - incrx;
+ DisplayedSegmentX = (int)config.cellDimX - incrx - 1;
+ incrx = -incrx;
+ }
+ else{
+ DisplayedSegmentX = -1;
+ }
+
+ parms.x = startx;
+ parms.y = starty;
+
+ //now actually loop through and draw the subsegments
+ for(int i=0; i<numy; i++)
+ {
+ for(int j=0; j<numx; j++)
+ {
+ //read and draw each individual segment
+ read_segment(NULL);
+ WorldSegment * segment = map_segment->get();
+ segment->drawAllBlocks();
+
+ parms.x += incrx;
+ }
+ parms.x = startx;
+ parms.y += incry;
+ }
+
+
al_save_bitmap(filename, bigFile);
al_set_target_bitmap(al_get_backbuffer(al_get_current_display()));
- al_destroy_bitmap(bigFile);
timer = clock() - timer;
- DFConsole->print("Took %ims\n", timer);
+ PrintMessage("\ttime for screenshot %ims\n", timer);
}
else
{
- DFConsole->printerr("Failed to take large screenshot. try using software mode\n");
+ LogError("failed to take large screenshot; try zooming out or using software mode\n");
}
+ al_destroy_bitmap(bigFile);
//restore everything that we changed.
config.segmentSize = backupsize;
parms.sizex = config.segmentSize.x;
@@ -1469,11 +1532,12 @@ void saveMegashot(bool tall)
parms.x = DisplayedSegmentX;
parms.y = DisplayedSegmentY;
parms.z = DisplayedSegmentZ;
+ config.fogenable = tempfog;
config.follow_DFscreen = tempFollow;
config.lift_segment_offscreen = tempLift;
config.showRenderStatus = false;
+
al_unlock_mutex(config.readMutex);
- */
}
void draw_particle_cloud(int count, float centerX, float centerY, float rangeX, float rangeY, ALLEGRO_BITMAP *sprite, ALLEGRO_COLOR tint)
diff --git a/GUI.h b/GUI.h
index 0769dd7..2706b85 100644
--- a/GUI.h
+++ b/GUI.h
@@ -50,6 +50,7 @@ extern ALLEGRO_BITMAP* IMGCreatureSheet;
extern ALLEGRO_BITMAP* IMGRampSheet;
extern ALLEGRO_BITMAP* IMGStatusSheet;
extern ALLEGRO_BITMAP* IMGProfSheet;
+extern ALLEGRO_BITMAP* IMGJobSheet;
extern ALLEGRO_BITMAP* IMGBloodSheet;
extern ALLEGRO_BITMAP* IMGEngFloorSheet;
extern ALLEGRO_BITMAP* IMGEngLeftSheet;
diff --git a/MapLoading.cpp b/MapLoading.cpp
index 569beac..6957aa3 100644
--- a/MapLoading.cpp
+++ b/MapLoading.cpp
@@ -9,7 +9,8 @@
#include "ContentLoader.h"
#include "Occlusion_Test.h"
#include <df/flow_info.h>
-#include <df/plant.h>
+#include <df/plant.h>
+#include <df/flow_info.h>
#include "df/item_constructed.h"
#include "df/itemimprovement.h"
#include "df/itemimprovement_threadst.h"
@@ -34,6 +35,11 @@ inline bool IDisFloor(int in){
return isFloorTerrain( (tiletype::tiletype) in );;
}
+inline bool IDhasNoFloor(int in){
+ //if not a custom type, do a lookup in dfHack's interface
+ return LowPassable( (tiletype::tiletype) in );;
+}
+
//big look up table
char rampblut[] =
// generated by blutmaker.py
@@ -132,9 +138,6 @@ bool isBlockOnVisibleEdgeOfSegment(WorldSegment* segment, Block* b)
if(b->z == segment->z + segment->sizez - 2)
return true;
- if(!(segment->getBlock(b->x, b->y, b->z+1)))
- return true;
-
if (DisplayedRotation == 0 &&
(
b->x == segment->x + segment->sizex - 2
@@ -179,8 +182,35 @@ bool isBlockOnVisibleEdgeOfSegment(WorldSegment* segment, Block* b)
return false;
}
-bool areNeighborsVisible(t_designation designations[16][16],int x,int y)
+bool areNeighborsVisible(WorldSegment* segment, Block* b)
{
+ Block* temp;
+
+ temp = segment->getBlock(b->x, b->y, b->z+1);
+ if(!temp || !(temp->designation.bits.hidden))
+ return true;
+
+ temp = segment->getBlock(b->x+1, b->y, b->z);
+ if(temp && !(temp->designation.bits.hidden))
+ return true;
+ temp = segment->getBlock(b->x-1, b->y, b->z);
+ if(temp && !(temp->designation.bits.hidden))
+ return true;
+ temp = segment->getBlock(b->x, b->y+1, b->z);
+ if(temp && !(temp->designation.bits.hidden))
+ return true;
+ temp = segment->getBlock(b->x, b->y-1, b->z);
+ if(temp && !(temp->designation.bits.hidden))
+ return true;
+return false;
+}
+
+bool areCellNeighborsVisible(t_designation designations[16][16],int x,int y)
+{
+ //don't do anything if this is the edge of the cell
+ if(x==0 || y==0 || x==15 || y==15)
+ return true;
+ //otherwise look at the neighbors and try to remove what we can
if(designations[x-1][y-1].bits.hidden == false)
return true;
if(designations[x-1][y].bits.hidden == false)
@@ -200,6 +230,35 @@ bool areNeighborsVisible(t_designation designations[16][16],int x,int y)
return false;
}
+/**
+ * returns true iff the block is enclosed by other solid blocks, and is itself solid
+ */
+bool enclosed(WorldSegment* segment, Block* b)
+{
+ if(!IDisWall(b->tileType))
+ return false;
+
+ Block* temp;
+ temp = segment->getBlock(b->x, b->y, b->z+1);
+ if(!temp || IDhasNoFloor(temp->tileType))
+ return false;
+
+ temp = segment->getBlock(b->x+1, b->y, b->z);
+ if(temp && !IDisWall(temp->tileType))
+ return false;
+ temp = segment->getBlock(b->x-1, b->y, b->z);
+ if(temp && !IDisWall(temp->tileType))
+ return false;
+ temp = segment->getBlock(b->x, b->y+1, b->z);
+ if(temp && !IDisWall(temp->tileType))
+ return false;
+ temp = segment->getBlock(b->x, b->y-1, b->z);
+ if(temp && !IDisWall(temp->tileType))
+ return false;
+
+ return true;
+}
+
void ReadCellToSegment(DFHack::Core& DF, WorldSegment& segment, int CellX, int CellY, int CellZ,
uint32_t BoundrySX, uint32_t BoundrySY,
uint32_t BoundryEX, uint32_t BoundryEY,
@@ -366,12 +425,14 @@ void ReadCellToSegment(DFHack::Core& DF, WorldSegment& segment, int CellX, int C
isHidden &= !config.show_hidden_blocks;
bool shouldBeIncluded = (!isOpenTerrain(b->tileType) || b->water.index || !trueBlock->designation[lx][ly].bits.outside) && !isHidden;
- //include hidden blocks as shaded black
- if(config.shade_hidden_blocks && isHidden && (isBlockOnVisibleEdgeOfSegment(&segment, b) || areNeighborsVisible(trueBlock->designation, lx, ly)))
- {
- b->building.info.type = (building_type::building_type) BUILDINGTYPE_BLACKBOX;
- shouldBeIncluded= true;
- }
+ //add back in blocks that are candidates for being shaded black (secondary check in beautify_Segment)
+ if( (!shouldBeIncluded)
+ && config.shade_hidden_blocks
+ && isHidden
+ && ( isBlockOnVisibleEdgeOfSegment(&segment, b)
+ || areCellNeighborsVisible(trueBlock->designation, lx, ly)
+ || (!segment.getBlock(b->x, b->y, b->z+1) )))
+ shouldBeIncluded = true;
if( shouldBeIncluded )
{
@@ -520,9 +581,8 @@ void ReadCellToSegment(DFHack::Core& DF, WorldSegment& segment, int CellX, int C
if(!Improvement_Thread)
continue;
if (Improvement_Thread->dye.mat_type < 0) break;
- b->Item.matt.type = Improvement_Thread->dye.mat_type;
- b->Item.matt.index = Improvement_Thread->dye.mat_index;
- b->Item.dyed = 1;
+ b->Item.dyematt.type = Improvement_Thread->dye.mat_type;
+ b->Item.dyematt.index = Improvement_Thread->dye.mat_index;
}
}
else if (found_item->getType() == item_type::THREAD)
@@ -530,17 +590,16 @@ void ReadCellToSegment(DFHack::Core& DF, WorldSegment& segment, int CellX, int C
auto Thread_Item = virtual_cast<df::item_threadst>(found_item);
if(!Thread_Item) break;
if (Thread_Item->dye_mat_type < 0) break;
- b->Item.matt.type = Thread_Item->dye_mat_type;
- b->Item.matt.index = Thread_Item->dye_mat_index;
- b->Item.dyed = 1;
+ b->Item.dyematt.type = Thread_Item->dye_mat_type;
+ b->Item.dyematt.index = Thread_Item->dye_mat_index;
}
}
}
//add effects
for(auto iter = trueBlock->flows.begin(); iter != trueBlock->flows.end(); iter++)
- {
- df::flow_info * eff = *iter;
+ {
+ df::flow_info * eff = *iter;
assert(eff != NULL);
Block* b = segment.getBlock( eff->x, eff->y, eff->z);
if(!b)
@@ -714,22 +773,17 @@ WorldSegment* ReadMapSegment(int x, int y, int z, int sizex, int sizey, int size
int cellDimX, cellDimY, cellDimZ;
Maps::getSize((unsigned int &)cellDimX, (unsigned int &)cellDimY, (unsigned int &)cellDimZ);
//Store these
- cellDimX = cellDimX * 16;
- cellDimY = cellDimY * 16;
+ cellDimX = cellDimX * CELLEDGESIZE;
+ cellDimY = cellDimY * CELLEDGESIZE;
cellDimZ = cellDimZ;
config.cellDimX = cellDimX;
config.cellDimY = cellDimY;
config.cellDimZ = cellDimZ;
- //bound view to world
- if(x > cellDimX * CELLEDGESIZE -sizex/2) DisplayedSegmentX = x = cellDimX * CELLEDGESIZE -sizex/2;
- if(y > cellDimY * CELLEDGESIZE -sizey/2) DisplayedSegmentY = y = cellDimY * CELLEDGESIZE -sizey/2;
- if(x < -sizex/2) DisplayedSegmentX = x = -sizex/2;
- if(y < -sizey/2) DisplayedSegmentY = y = -sizey/2;
//setup new world segment
WorldSegment* segment = new WorldSegment(x,y,z,sizex,sizey,sizez);
- segment->regionSize.x = cellDimX * CELLEDGESIZE;
- segment->regionSize.y = cellDimY * CELLEDGESIZE;
+ segment->regionSize.x = cellDimX;
+ segment->regionSize.y = cellDimY;
segment->regionSize.z = cellDimZ;
segment->rotation = DisplayedRotation;
@@ -839,17 +893,58 @@ WorldSegment* ReadMapSegment(int x, int y, int z, int sizex, int sizey, int size
return segment;
}
+/**
+ * checks to see if the block is a potentially viewable hidden block
+ * if so, put the black mask block overtop
+ * if not, makes block not visible
+ */
+void mask_block(WorldSegment * segment, Block* b)
+{
+ //include hidden blocks as shaded black, make remaining invisible
+ if( b->designation.bits.hidden )
+ {
+ if( isBlockOnVisibleEdgeOfSegment(segment, b)
+ || areNeighborsVisible(segment, b) )
+ b->building.info.type = (building_type::building_type) BUILDINGTYPE_BLACKBOX;
+ else b->visible = false;
+ }
+}
+
+/**
+ * checks to see if the block is a potentially viewable hidden block
+ * if not, makes block not visible
+ */
+void unhidden_block(WorldSegment * segment, Block* b)
+{
+ //make blocks that are impossible to see invisible
+ if( b->designation.bits.hidden
+ && (!isBlockOnVisibleEdgeOfSegment(segment, b))
+ && (enclosed(segment, b)) )
+ b->visible = false;
+}
+
void beautify_Segment(WorldSegment * segment)
{
if(!segment)
return;
clock_t start_time = clock();
//do misc beautification
+
uint32_t numblocks = segment->getNumBlocks();
for(uint32_t i=0; i < numblocks; i++){
Block* b = segment->getBlock(i);
+ //first check to see if this block is possible to be seen
+ if(config.shade_hidden_blocks && (!config.show_hidden_blocks))
+ mask_block(segment, b);
+ else
+ unhidden_block(segment, b);
+
+ if(!b->visible)
+ continue;
+
+ //next see if the block is behind something
if(config.occlusion)
occlude_block(b);
diff --git a/Occlusion_Test.cpp b/Occlusion_Test.cpp
index 7c8061e..08e26ee 100644
--- a/Occlusion_Test.cpp
+++ b/Occlusion_Test.cpp
@@ -21,7 +21,7 @@ bitset<2*S_SPRITE_HEIGHT> floor_mask_right;
bool is_block_solid(Block * b)
{
- if(b->tileMaterial == tiletype_shape::RAMP_TOP)
+ if(b->tileShape == tiletype_shape::RAMP_TOP)
return false;
if(!config.shade_hidden_blocks && !config.show_hidden_blocks && b->designation.bits.hidden)
return false;
@@ -32,7 +32,7 @@ bool is_block_solid(Block * b)
b->material.type == 5 ||
b->material.type == 6)
return false;
- if(b->tileMaterial == tiletype_shape::BROOK_TOP)
+ if(b->tileShape == tiletype_shape::BROOK_TOP)
return false;
return true;
}
@@ -81,7 +81,7 @@ void mask_left(Block * b, int offset)
return;
if(!is_block_solid(b))
return;
- if(b->tileShapeBasic==tiletype_shape_basic::Wall && b->tileMaterial != tiletype_shape::BROOK_BED)
+ if(b->tileShapeBasic==tiletype_shape_basic::Wall && b->tileShape != tiletype_shape::BROOK_BED)
{
if(offset >= 0)
{
@@ -92,7 +92,7 @@ void mask_left(Block * b, int offset)
base_mask_left &= ~(wall_mask_right >> -offset*2);
}
}
- else if(b->tileShapeBasic==tiletype_shape_basic::Floor || b->tileShapeBasic==tiletype_shape_basic::Ramp || b->tileMaterial != tiletype_shape::BROOK_BED)
+ else if(b->tileShapeBasic==tiletype_shape_basic::Floor || b->tileShapeBasic==tiletype_shape_basic::Ramp || b->tileShape != tiletype_shape::BROOK_BED)
{
if(offset >= 0)
{
@@ -111,7 +111,7 @@ void mask_right(Block * b, int offset)
return;
if(!is_block_solid(b))
return;
- if(b->tileShapeBasic==tiletype_shape_basic::Wall && b->tileMaterial != tiletype_shape::BROOK_BED)
+ if(b->tileShapeBasic==tiletype_shape_basic::Wall && b->tileShape != tiletype_shape::BROOK_BED)
{
if(offset >= 0)
{
@@ -122,7 +122,7 @@ void mask_right(Block * b, int offset)
base_mask_right &= ~(wall_mask_left >> -offset*2);
}
}
- else if(b->tileShapeBasic==tiletype_shape_basic::Floor || b->tileShapeBasic==tiletype_shape_basic::Ramp || b->tileMaterial != tiletype_shape::BROOK_BED)
+ else if(b->tileShapeBasic==tiletype_shape_basic::Floor || b->tileShapeBasic==tiletype_shape_basic::Ramp || b->tileShape != tiletype_shape::BROOK_BED)
{
if(offset >= 0)
{
diff --git a/SpriteObjects.cpp b/SpriteObjects.cpp
index 794ab1b..5b5ff5f 100644
--- a/SpriteObjects.cpp
+++ b/SpriteObjects.cpp
@@ -942,15 +942,15 @@ ALLEGRO_COLOR c_sprite::get_color(void* block)
case ShadeXml:
return shadecolor;
case ShadeMat:
- return lookupMaterialColor(b->material.type, b->material.index);
+ return lookupMaterialColor(b->material);
case ShadeGrass:
return lookupMaterialColor(WOOD, b->grassmat);
case ShadeBuilding:
- return lookupMaterialColor(b->building.info.material.type, b->building.info.material.index);
+ return lookupMaterialColor(b->building.info.material);
case ShadeLayer:
- return lookupMaterialColor(b->layerMaterial.type, b->layerMaterial.index);
+ return lookupMaterialColor(b->layerMaterial);
case ShadeVein:
- return lookupMaterialColor(b->veinMaterial.type, b->veinMaterial.index);
+ return lookupMaterialColor(b->veinMaterial);
case ShadeMatFore:
return config.colors.getDfColor(lookupMaterialFore(b->material.type, b->material.index), lookupMaterialBright(b->material.type, b->material.index));
case ShadeMatBack:
@@ -1027,11 +1027,11 @@ ALLEGRO_COLOR c_sprite::get_color(void* block)
return al_map_rgb(255, 255, 0);
if(b->inv->item[itemtype][itemsubtype].empty())
return al_map_rgb(0, 0, 255);
- return lookupMaterialColor(b->inv->item[itemtype][itemsubtype][0].matt.type, b->inv->item[itemtype][itemsubtype][0].matt.index, b->inv->item[itemtype][itemsubtype][0].dyed);
+ return lookupMaterialColor(b->inv->item[itemtype][itemsubtype][0].matt, b->inv->item[itemtype][itemsubtype][0].dyematt);
}
else return al_map_rgb(255,255,255);
case ShadeItem:
- return lookupMaterialColor(b->Item.matt.type, b->Item.matt.index, b->Item.dyed);
+ return lookupMaterialColor(b->Item.matt, b->Item.dyematt);
default:
return al_map_rgb(255, 255, 255);
} ;
diff --git a/UserInput.cpp b/UserInput.cpp
index 96c31fb..7ba60d8 100644
--- a/UserInput.cpp
+++ b/UserInput.cpp
@@ -67,10 +67,22 @@ void changeRelativeToRotation( int &inputx, int &inputy, int stepx, int stepy ){
void moveViewRelativeToRotation( int stepx, int stepy )
{
+
if (config.follow_DFscreen)
changeRelativeToRotation(config.viewXoffset, config.viewYoffset, stepx, stepy );
- else
+ //if we're following the DF screen, we DO NOT bound the view, since we have a simple way to get back
+ else{
changeRelativeToRotation(DisplayedSegmentX, DisplayedSegmentY, stepx, stepy );
+ //bound view to world
+ if((int)DisplayedSegmentX > (int)config.cellDimX -(int)config.segmentSize.x/2)
+ DisplayedSegmentX = config.cellDimX -config.segmentSize.x/2;
+ if((int)DisplayedSegmentY > (int)config.cellDimY -(int)config.segmentSize.y/2)
+ DisplayedSegmentY = config.cellDimY -config.segmentSize.y/2;
+ if((int)DisplayedSegmentX < -(int)config.segmentSize.x/2)
+ DisplayedSegmentX = -config.segmentSize.x/2;
+ if((int)DisplayedSegmentY < -(int)config.segmentSize.y/2)
+ DisplayedSegmentY = -config.segmentSize.y/2;
+ }
}
@@ -236,6 +248,10 @@ void doKeys(int Key)
config.show_creature_professions = !config.show_creature_professions;
timeToReloadSegment = true;
}
+ if(Key == ALLEGRO_KEY_J){
+ config.show_creature_jobs = !config.show_creature_jobs;
+ timeToReloadSegment = true;
+ }
if(Key == ALLEGRO_KEY_C){
config.truncate_walls++;
if (config.truncate_walls > 4) config.truncate_walls = 0;
@@ -248,6 +264,19 @@ void doKeys(int Key)
config.follow_DFscreen = !config.follow_DFscreen;
timeToReloadSegment = true;
}
+ if(Key == ALLEGRO_KEY_Z){
+ if (config.follow_DFscreen)
+ {
+ config.viewXoffset = 0;
+ config.viewYoffset = 0;
+ config.viewZoffset = 0;
+ }
+ else
+ {
+ DisplayedSegmentX = (config.cellDimX -config.segmentSize.x)/2;
+ DisplayedSegmentY = (config.cellDimY -config.segmentSize.y)/2;
+ }
+ }
if(Key == ALLEGRO_KEY_1){
config.segmentSize.z--;
if(config.segmentSize.z <= 0) config.segmentSize.z = 1;
diff --git a/common.h b/common.h
index 0ee8145..118ed47 100644
--- a/common.h
+++ b/common.h
@@ -165,6 +165,7 @@ class SegmentWrap;
void correctBlockForSegmetOffset(int32_t& x, int32_t& y, int32_t& z);
void LogError(const char* msg, ...);
+void PrintMessage(const char* msg, ...);
void LogVerbose(const char* msg, ...);
void SetTitle(const char *format, ...);
diff --git a/commonTypes.h b/commonTypes.h
index 40c7c7f..3a13e74 100644
--- a/commonTypes.h
+++ b/commonTypes.h
@@ -191,6 +191,7 @@ typedef struct
bool show_creature_moods;
bool show_creature_professions;
+ bool show_creature_jobs;
bool transparentScreenshots;
diff --git a/main.cpp b/main.cpp
index 8709c02..be421cd 100644
--- a/main.cpp
+++ b/main.cpp
@@ -6,6 +6,7 @@ using namespace std;
#include "common.h"
#include "Block.h"
+#include "BlockFactory.h"
#include "GUI.h"
//#include "SpriteMaps.h"
#include "GameBuildings.h"
@@ -92,6 +93,16 @@ void LogError(const char* msg, ...){
fclose(fp);
}
+
+void PrintMessage(const char* msg, ...){
+ va_list arglist;
+ va_start(arglist, msg);
+ char buf[512] = {0};
+ vsprintf(buf, msg, arglist);
+ Core::print(buf);
+ va_end(arglist);
+}
+
void LogVerbose(const char* msg, ...){
if (!config.verbose_logging)
return;
@@ -512,6 +523,9 @@ static void * stonesense_thread(ALLEGRO_THREAD * main_thread, void * parms)
delete last;
}
+ //need to explicitly tear down the current block factory
+ blockFactory.~BlockFactory();
+
al_destroy_bitmap(IMGIcon);
IMGIcon = 0;
delete contentLoader;
diff --git a/resources/Fluids/Fluids.xml b/resources/Fluids/Fluids.xml
index 0aeee64..c61b8bd 100644
--- a/resources/Fluids/Fluids.xml
+++ b/resources/Fluids/Fluids.xml
@@ -1,35 +1,53 @@
<fluids>
- <fluid type="water" level = "1" sheetIndex = "127" color = "xml" red = "150" green = "237" blue = "224">
- <subsprite sheetIndex = "127" color = "blood"/>
+ <fluid type="water" level = "1" sheetIndex = "127" halftile="both" color = "xml" red = "150" green = "237" blue = "224">
+ <subsprite sheetIndex = "127" color = "blood" halftile="both"/>
</fluid>
- <fluid type="water" level = "2" sheetIndex = "128" color = "xml" red = "150" green = "237" blue = "224">
- <subsprite sheetIndex = "128" color = "blood"/>
+ <fluid type="water" level = "2" sheetIndex = "128" halftile="both" color = "xml" red = "150" green = "237" blue = "224">
+ <subsprite sheetIndex = "128" color = "blood" halftile="both"/>
</fluid>
- <fluid type="water" level = "3" sheetIndex = "129" color = "xml" red = "150" green = "237" blue = "224">
- <subsprite sheetIndex = "129" color = "blood"/>
+ <fluid type="water" level = "3" sheetIndex = "129" halftile="both" color = "xml" red = "150" green = "237" blue = "224">
+ <subsprite sheetIndex = "129" color = "blood" halftile="both"/>
</fluid>
- <fluid type="water" level = "4" sheetIndex = "130" color = "xml" red = "150" green = "237" blue = "224">
- <subsprite sheetIndex = "130" color = "blood"/>
+ <fluid type="water" level = "4" sheetIndex = "130" halftile="both" color = "xml" red = "150" green = "237" blue = "224">
+ <subsprite sheetIndex = "130" color = "blood" halftile="both"/>
</fluid>
- <fluid type="water" level = "5" sheetIndex = "131" color = "xml" red = "150" green = "237" blue = "224">
- <subsprite sheetIndex = "131" color = "blood"/>
+ <fluid type="water" level = "5" sheetIndex = "131" halftile="no" color = "xml" red = "150" green = "237" blue = "224">
+ <subsprite sheetIndex = "131" halftile="no" color = "blood"/>
+ <subsprite sheetIndex = "130" halftile="yes" color = "xml" red = "150" green = "237" blue = "224"/>
+ <subsprite sheetIndex = "130" halftile="yes" color = "blood"/>
</fluid>
- <fluid type="water" level = "6" sheetIndex = "132" color = "xml" red = "150" green = "237" blue = "224">
- <subsprite sheetIndex = "132" color = "blood"/>
+ <fluid type="water" level = "6" sheetIndex = "132" halftile="no" color = "xml" red = "150" green = "237" blue = "224">
+ <subsprite sheetIndex = "132" halftile="no" color = "blood"/>
+ <subsprite sheetIndex = "130" halftile="yes" color = "xml" red = "150" green = "237" blue = "224"/>
+ <subsprite sheetIndex = "130" halftile="yes" color = "blood"/>
</fluid>
- <fluid type="water" level = "7" sheetIndex = "133" color = "xml" red = "150" green = "237" blue = "224">
- <subsprite sheetIndex = "133" color = "blood"/>
+ <fluid type="water" level = "7" sheetIndex = "133" halftile="no" color = "xml" red = "150" green = "237" blue = "224">
+ <subsprite sheetIndex = "133" halftile="no" color = "blood"/>
+ <subsprite sheetIndex = "130" halftile="yes" color = "xml" red = "150" green = "237" blue = "224"/>
+ <subsprite sheetIndex = "130" halftile="yes" color = "blood"/>
</fluid>
- <fluid type="water" level = "8" sheetIndex = "134" color = "xml" red = "150" green = "237" blue = "224">
- <subsprite sheetIndex = "134" color = "blood"/>
+ <fluid type="water" level = "8" sheetIndex = "134" halftile="no" color = "xml" red = "150" green = "237" blue = "224">
+ <subsprite sheetIndex = "134" halftile="no" color = "blood"/>
+ <subsprite sheetIndex = "130" halftile="yes" color = "xml" red = "150" green = "237" blue = "224"/>
+ <subsprite sheetIndex = "130" halftile="yes" color = "blood"/>
</fluid>
- <fluid type="lava" level = "1" sheetIndex = "120"/>
- <fluid type="lava" level = "2" sheetIndex = "121"/>
- <fluid type="lava" level = "3" sheetIndex = "122"/>
- <fluid type="lava" level = "4" sheetIndex = "123"/>
- <fluid type="lava" level = "5" sheetIndex = "124"/>
- <fluid type="lava" level = "6" sheetIndex = "125"/>
- <fluid type="lava" level = "7" sheetIndex = "126"/>
-
+ <fluid type="lava" level = "1" sheetIndex = "120" halftile="both">
+ </fluid>
+ <fluid type="lava" level = "2" sheetIndex = "121" halftile="both">
+ </fluid>
+ <fluid type="lava" level = "3" sheetIndex = "122" halftile="both">
+ </fluid>
+ <fluid type="lava" level = "4" sheetIndex = "123" halftile="no">
+ <subsprite sheetIndex = "122" halftile="yes"/>
+ </fluid>
+ <fluid type="lava" level = "5" sheetIndex = "124" halftile="no">
+ <subsprite sheetIndex = "122" halftile="yes"/>
+ </fluid>
+ <fluid type="lava" level = "6" sheetIndex = "125" halftile="no">
+ <subsprite sheetIndex = "122" halftile="yes"/>
+ </fluid>
+ <fluid type="lava" level = "7" sheetIndex = "126" halftile="no">
+ <subsprite sheetIndex = "122" halftile="yes"/>
+ </fluid>
</fluids> \ No newline at end of file
diff --git a/resources/SSJobIcons.png b/resources/SSJobIcons.png
new file mode 100644
index 0000000..0bd2914
--- /dev/null
+++ b/resources/SSJobIcons.png
Binary files differ
diff --git a/resources/SSProfIcons.png b/resources/SSProfIcons.png
index 6cc5a64..800e8e5 100644
--- a/resources/SSProfIcons.png
+++ b/resources/SSProfIcons.png
Binary files differ
diff --git a/resources/buildings/AnimalTrap.xml b/resources/buildings/AnimalTrap.xml
new file mode 100644
index 0000000..b93d765
--- /dev/null
+++ b/resources/buildings/AnimalTrap.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" ?>
+
+<building name="Animal trap" game_type="AnimalTrap" >
+ <sprite index="354" color="building" />
+</building>
diff --git a/resources/buildings/Cabinet.xml b/resources/buildings/Cabinet.xml
index b0c637f..cc90a69 100644
--- a/resources/buildings/Cabinet.xml
+++ b/resources/buildings/Cabinet.xml
@@ -1,9 +1,21 @@
<?xml version="1.0"?>
+
<building name="Cabinet" game_type="Cabinet" >
<if>
<MaterialType value="Wood" />
<sprite index="88" color="building" />
</if>
+ <else><!-- GreenGlass -->
+ <MaterialType value="GreenGlass" />
+ <sprite index="67" />
+ </else>
+ <else><!-- ClearGlass or CrystalGlass -->
+ <or>
+ <MaterialType value="ClearGlass" />
+ <MaterialType value="CrystalGlass" />
+ </or>
+ <sprite index="68" />
+ </else>
<else>
<sprite index="87" color="building" />
</else>
diff --git a/resources/buildings/Cage.xml b/resources/buildings/Cage.xml
index 5b99131..200c50a 100644
--- a/resources/buildings/Cage.xml
+++ b/resources/buildings/Cage.xml
@@ -1,26 +1,23 @@
<?xml version="1.0" ?>
-
-
-<building name="Cage" game_type="Cage" >
+<building name="Cage" game_type="Cage">
<if>
<MaterialType value="Wood" />
- <sprite index = 313 />
+ <sprite index="313" />
</if>
<else>
<MaterialType value="GreenGlass"/>
- <sprite index = 314 />
+ <sprite index="314" />
</else>
<else>
- <MaterialType value="ClearGlass"/>
- <sprite index = 294 />
+ <or>
+ <MaterialType value="ClearGlass"/>
+ <MaterialType value="CrystalGlass"/>
+ </or>
+ <sprite index="294" />
</else>
<else>
- <MaterialType value="CrystalGlass"/>
- <sprite index = 294 />
+ <sprite index="312" color="building" />
</else>
- <else>
- <sprite index = 312 />
- </else>
-
+
</building>
diff --git a/resources/buildings/CageTrap.xml b/resources/buildings/CageTrap.xml
index bd6e06a..123b0c9 100644
--- a/resources/buildings/CageTrap.xml
+++ b/resources/buildings/CageTrap.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" ?>
-
-
<building name="Trap" game_type="Trap" game_subtype="CageTrap">
- <sprite index = 355 />
+ <sprite index="357" />
</building>
diff --git a/resources/buildings/Chair.xml b/resources/buildings/Chair.xml
index 223bba1..4f44f45 100644
--- a/resources/buildings/Chair.xml
+++ b/resources/buildings/Chair.xml
@@ -1,9 +1,21 @@
<?xml version="1.0"?>
+
<building name="Chair" game_type="Chair" >
<if>
<MaterialType value="Wood" />
<sprite index="84" color="building" />
</if>
+ <else><!-- GreenGlass -->
+ <MaterialType value="GreenGlass" />
+ <sprite index="64" />
+ </else>
+ <else><!-- ClearGlass or CrystalGlass -->
+ <or>
+ <MaterialType value="ClearGlass" />
+ <MaterialType value="CrystalGlass" />
+ </or>
+ <sprite index="65" />
+ </else>
<else>
<sprite index="85" color="building" />
</else>
diff --git a/resources/buildings/Chest.xml b/resources/buildings/Chest.xml
index 159b734..9eee60b 100644
--- a/resources/buildings/Chest.xml
+++ b/resources/buildings/Chest.xml
@@ -1,26 +1,30 @@
<?xml version="1.0"?>
+
<building name="Chest" game_type="Box" >
<if>
<MaterialType value="GreenGlass" />
- <sprite index="92" />
+ <sprite index="69" />
</if>
- <else>
- <MaterialType value="Leather" />
- <sprite index="91" />
- </else>
- <else>
- <MaterialType value="Silk" />
- <sprite index="91" />
+ <else><!-- ClearGlass or CrystalGlass -->
+ <or>
+ <MaterialType value="ClearGlass" />
+ <MaterialType value="CrystalGlass" />
+ </or>
+ <sprite index="70" />
</else>
<else>
- <MaterialType value="PlantCloth" />
- <sprite index="91" />
+ <or>
+ <MaterialType value="Leather" />
+ <MaterialType value="Silk" />
+ <MaterialType value="PlantCloth" />
+ </or>
+ <sprite index="91" />
</else>
<else>
- <MaterialType value="Wood" />
- <sprite index="89" color="building" />
+ <MaterialType value="Wood" />
+ <sprite index="89" color="building" />
</else>
<else>
- <sprite index="90" color="building" />
+ <sprite index="90" color="building" />
</else>
</building>
diff --git a/resources/buildings/Craftdwarfs.xml b/resources/buildings/Craftsdwarfs.xml
index bdc4a97..f893e83 100644
--- a/resources/buildings/Craftdwarfs.xml
+++ b/resources/buildings/Craftsdwarfs.xml
@@ -1,5 +1,5 @@
-<?xml version="1.0" ?>
-<building name="Craftdwarfs Workshop" game_type="Workshop" game_subtype="Craftsdwarfs" file="workshop.png">
+<?xml version="1.0" ?>
+<building name="Craftsdwarfs Workshop" game_type="Workshop" game_subtype="Craftsdwarfs" file="workshop.png">
<!-- benches block -->
<if>
<!-- replace this with position index if required -->
diff --git a/resources/buildings/DoorsAndFloodgates.png b/resources/buildings/DoorsAndFloodgates.png
index 2d90c3c..dfd15c9 100644
--- a/resources/buildings/DoorsAndFloodgates.png
+++ b/resources/buildings/DoorsAndFloodgates.png
Binary files differ
diff --git a/resources/buildings/Hatch.xml b/resources/buildings/Hatch.xml
index b984582..04d6662 100644
--- a/resources/buildings/Hatch.xml
+++ b/resources/buildings/Hatch.xml
@@ -1,7 +1,55 @@
<?xml version="1.0" ?>
-
-
-<building name="Floor Hatch" game_type="Hatch" >
- <sprite index = 276 />
+<building name="Floor Hatch" game_type="Hatch" file="DoorsAndFloodgates.png">
+ <if><!-- wooden -->
+ <MaterialType value="Wood" />
+ <sprite index="62" color="building" />
+ <sprite index="63" />
+ </if>
+ <else><!-- some kind of metall -->
+ <or>
+ <MaterialType value="Inorganic" subtype="IRON" />
+ <MaterialType value="Inorganic" subtype="GOLD" />
+ <MaterialType value="Inorganic" subtype="SILVER" />
+ <MaterialType value="Inorganic" subtype="COPPER" />
+ <MaterialType value="Inorganic" subtype="NICKEL" />
+ <MaterialType value="Inorganic" subtype="ZINC" />
+ <MaterialType value="Inorganic" subtype="BRONZE" />
+ <MaterialType value="Inorganic" subtype="BRASS" />
+ <MaterialType value="Inorganic" subtype="STEEL" />
+ <MaterialType value="Inorganic" subtype="PIG_IRON" />
+ <MaterialType value="Inorganic" subtype="PLATINUM" />
+ <MaterialType value="Inorganic" subtype="ELECTRUM" />
+ <MaterialType value="Inorganic" subtype="TIN" />
+ <MaterialType value="Inorganic" subtype="PEWTER_FINE" />
+ <MaterialType value="Inorganic" subtype="PEWTER_TRIFLE" />
+ <MaterialType value="Inorganic" subtype="PEWTER_LAY" />
+ <MaterialType value="Inorganic" subtype="LEAD" />
+ <MaterialType value="Inorganic" subtype="ALUMINUM" />
+ <MaterialType value="Inorganic" subtype="NICKEL_SILVER" />
+ <MaterialType value="Inorganic" subtype="BILLON" />
+ <MaterialType value="Inorganic" subtype="STERLING_SILVER" />
+ <MaterialType value="Inorganic" subtype="BLACK_BRONZE" />
+ <MaterialType value="Inorganic" subtype="ROSE_GOLD" />
+ <MaterialType value="Inorganic" subtype="BISMUTH" />
+ <MaterialType value="Inorganic" subtype="BISMUTH_BRONZE" />
+ <MaterialType value="Inorganic" subtype="ADAMANTINE" />
+ </or>
+ <sprite index="64" color="building" />
+ </else>
+ <else><!-- ClearGlass -->
+ <MaterialType value="ClearGlass" />
+ <sprite index="66" />
+ </else>
+ <else><!-- GreenGlass -->
+ <MaterialType value="GreenGlass" />
+ <sprite index="68" />
+ </else>
+ <else><!-- CrystalGlass -->
+ <MaterialType value="CrystalGlass" />
+ <sprite index="70" />
+ </else>
+ <else><!-- any other material (e.g. stone) -->
+ <sprite index="60" color="building" />
+ </else>
</building>
diff --git a/resources/buildings/Kennels.xml b/resources/buildings/Kennels.xml
index 7c3563b..41b4624 100644
--- a/resources/buildings/Kennels.xml
+++ b/resources/buildings/Kennels.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" ?>
-
-
<building name="Kennels" game_type="Workshop" game_subtype="Kennels" >
<include file="wsUpperBorder.xml"/>
@@ -24,7 +22,7 @@
<PositionIndex value= "16" />
<BuildingOccupancy value="2" />
</and>
- <sprite index = "312" />
+ <sprite index = "312" color="building" />
</else>
<else>
diff --git a/resources/buildings/Spikes.xml b/resources/buildings/Spikes.xml
index d8b30a4..6df2b29 100644
--- a/resources/buildings/Spikes.xml
+++ b/resources/buildings/Spikes.xml
@@ -1,7 +1,13 @@
<?xml version="1.0" ?>
-
-
<building name="Trap" game_type="Trap" game_subtype="WeaponTrap">
- <sprite index = 356 />
-</building>
+ <sprite index="356" />
+ <!--if>
+ <NeighbourWall dir="West" />
+ <sprite index ="376" />
+ </if>
+ <if>
+ <NeighbourWall dir="North" />
+ <sprite index ="377" />
+ </if-->
+</building> \ No newline at end of file
diff --git a/resources/buildings/StonefallTrap.xml b/resources/buildings/StonefallTrap.xml
index 0f9eecc..b2558d7 100644
--- a/resources/buildings/StonefallTrap.xml
+++ b/resources/buildings/StonefallTrap.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" ?>
-
-
<building name="Trap" game_type="Trap" game_subtype="StoneFallTrap">
- <sprite index = 355 />
+ <sprite index="359" />
</building>
diff --git a/resources/buildings/Table.xml b/resources/buildings/Table.xml
index a9a127f..ec1d1ab 100644
--- a/resources/buildings/Table.xml
+++ b/resources/buildings/Table.xml
@@ -1,8 +1,11 @@
<?xml version="1.0"?>
+
<building name="Table" game_type="Table">
<if>
<MaterialType value="Wood" />
- <sprite index="82" color="building" />
+ <sprite index="82" color="building" >
+ <subsprite sheetIndex = "102" bloodmin = "1" color = "blood" />
+ </sprite>
</if>
<else>
<or>
@@ -33,11 +36,28 @@
<MaterialType value="Metal" subtype="BISMUTH_BRONZE" />
<MaterialType value="Metal" subtype="ADAMANTINE" />
</or>
- <sprite index="63" color="building" />
+ <sprite index="103" color="building" >
+ <subsprite sheetIndex = "102" bloodmin = "1" color = "blood" />
+ </sprite>
+ </else>
+ <else><!-- GreenGlass -->
+ <MaterialType value="GreenGlass" />
+ <sprite index="62" >
+ <subsprite sheetIndex = "102" bloodmin = "1" color = "blood" />
+ </sprite>
+ </else>
+ <else><!-- ClearGlass or CrystalGlass -->
+ <or>
+ <MaterialType value="ClearGlass" />
+ <MaterialType value="CrystalGlass" />
+ </or>
+ <sprite index="63" >
+ <subsprite sheetIndex = "102" bloodmin = "1" color = "blood" />
+ </sprite>
</else>
<else>
<sprite index="83" color="building" >
- <subsprite sheetIndex = "62" bloodmin = "1" color = "blood" />
+ <subsprite sheetIndex = "102" bloodmin = "1" color = "blood" />
</sprite>
</else>
</building>
diff --git a/resources/buildings/Target.xml b/resources/buildings/Target.xml
index 36bf791..27a79dc 100644
--- a/resources/buildings/Target.xml
+++ b/resources/buildings/Target.xml
@@ -1,7 +1,43 @@
-<?xml version="1.0" ?>
-
-
+<?xml version="1.0"?>
<building name="Target" game_type="ArcheryTarget" >
- <sprite index = 288 />
-</building>
+ <if>
+ <MaterialType value="Wood" />
+ <sprite index="289" color="building" />
+ </if>
+ <else>
+ <or>
+ <MaterialType value="Metal" subtype="IRON" />
+ <MaterialType value="Metal" subtype="GOLD" />
+ <MaterialType value="Metal" subtype="SILVER" />
+ <MaterialType value="Metal" subtype="COPPER" />
+ <MaterialType value="Metal" subtype="NICKEL" />
+ <MaterialType value="Metal" subtype="ZINC" />
+ <MaterialType value="Metal" subtype="BRONZE" />
+ <MaterialType value="Metal" subtype="BRASS" />
+ <MaterialType value="Metal" subtype="STEEL" />
+ <MaterialType value="Metal" subtype="PIG_IRON" />
+ <MaterialType value="Metal" subtype="PLATINUM" />
+ <MaterialType value="Metal" subtype="ELECTRUM" />
+ <MaterialType value="Metal" subtype="TIN" />
+ <MaterialType value="Metal" subtype="PEWTER_FINE" />
+ <MaterialType value="Metal" subtype="PEWTER_TRIFLE" />
+ <MaterialType value="Metal" subtype="PEWTER_LAY" />
+ <MaterialType value="Metal" subtype="LEAD" />
+ <MaterialType value="Metal" subtype="ALUMINUM" />
+ <MaterialType value="Metal" subtype="NICKEL_SILVER" />
+ <MaterialType value="Metal" subtype="BILLON" />
+ <MaterialType value="Metal" subtype="STERLING_SILVER" />
+ <MaterialType value="Metal" subtype="BLACK_BRONZE" />
+ <MaterialType value="Metal" subtype="ROSE_GOLD" />
+ <MaterialType value="Metal" subtype="BISMUTH" />
+ <MaterialType value="Metal" subtype="BISMUTH_BRONZE" />
+ <MaterialType value="Metal" subtype="ADAMANTINE" />
+ </or>
+ <sprite index="290" color="building" />
+ </else>
+ <else>
+ <sprite index="288" color="building" />
+ </else>
+ <sprite index="287" />
+</building>
diff --git a/resources/buildings/VerticalBars.png b/resources/buildings/VerticalBars.png
index 5e7f536..b508a33 100644
--- a/resources/buildings/VerticalBars.png
+++ b/resources/buildings/VerticalBars.png
Binary files differ
diff --git a/resources/buildings/VerticalBars.xml b/resources/buildings/VerticalBars.xml
index fc58eed..380820b 100644
--- a/resources/buildings/VerticalBars.xml
+++ b/resources/buildings/VerticalBars.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" ?>
-
-
<building name="Vertical Bars" game_type="BarsVertical" file="VerticalBars.png">
<!-- straight or end pieces -->
@@ -22,7 +20,7 @@
</or>
</not>
</and>
- <sprite index=0 />
+ <sprite index="0" color="building" />
</if>
<else>
<and>
@@ -41,7 +39,7 @@
</or>
</not>
</and>
- <sprite index=1 />
+ <sprite index="1" color="building" />
</else>
<!-- Center piece -->
@@ -64,7 +62,7 @@
<NeighbourWall dir="South" />
</or>
</and>
- <sprite index=2 />
+ <sprite index="2" color="building" />
</else>
<!-- Corners piece -->
@@ -85,7 +83,7 @@
</or>
</not>
</and>
- <sprite index=3 />
+ <sprite index="3" color="building" />
</else>
<else>
<and>
@@ -104,7 +102,7 @@
</or>
</not>
</and>
- <sprite index=4 />
+ <sprite index="4" color="building" />
</else>
<else>
<and>
@@ -123,7 +121,7 @@
</or>
</not>
</and>
- <sprite index=5 />
+ <sprite index="5" color="building" />
</else>
<else>
<and>
@@ -142,9 +140,9 @@
</or>
</not>
</and>
- <sprite index=6 />
+ <sprite index="6" color="building" />
</else>
- //T-Sections
+ <!-- T-Sections -->
<else>
<and>
<or>
@@ -162,7 +160,7 @@
</or>
</not>
</and>
- <sprite index=7 />
+ <sprite index="7" color="building" />
</else>
<else>
<and>
@@ -181,7 +179,7 @@
</or>
</not>
</and>
- <sprite index=8 />
+ <sprite index="8" color="building" />
</else>
<else>
<and>
@@ -200,7 +198,7 @@
</or>
</not>
</and>
- <sprite index=9 />
+ <sprite index="9" color="building" />
</else>
<else>
<and>
@@ -219,10 +217,10 @@
</or>
</not>
</and>
- <sprite index=10 />
+ <sprite index="10" color="building" />
</else>
<!-- default -->
<else>
- <sprite index=0 />
+ <sprite index="0" color="building" />
</else>
-</building>
+</building> \ No newline at end of file
diff --git a/resources/buildings/WallGrate.xml b/resources/buildings/WallGrate.xml
index 3cf878f..c7d046c 100644
--- a/resources/buildings/WallGrate.xml
+++ b/resources/buildings/WallGrate.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" ?>
-
-
<building name="Grate" game_type="GrateWall" >
<if>
<or>
@@ -10,9 +8,9 @@
<NeighbourSameType dir="North" />
<NeighbourSameType dir="South" />
</or>
- <sprite index=352 />
+ <sprite index="352" color="building" />
</if>
<else>
- <sprite index = 351 />
+ <sprite index="351" color="building" />
</else>
</building>
diff --git a/resources/buildings/WeaponTrap.xml b/resources/buildings/WeaponTrap.xml
index 4ac466a..bcd51cb 100644
--- a/resources/buildings/WeaponTrap.xml
+++ b/resources/buildings/WeaponTrap.xml
@@ -1,7 +1,13 @@
<?xml version="1.0" ?>
-
-
<building name="Trap" game_type="Trap" game_subtype="WeaponTrap">
- <sprite index = 355 />
-</building>
+ <sprite index="358" />
+ <!--if>
+ <NeighbourWall dir="West" />
+ <sprite index ="378" />
+ </if>
+ <if>
+ <NeighbourWall dir="North" />
+ <sprite index ="379" />
+ </if-->
+</building> \ No newline at end of file
diff --git a/resources/buildings/index.txt b/resources/buildings/index.txt
index 8a61ec8..f3799dc 100644
--- a/resources/buildings/index.txt
+++ b/resources/buildings/index.txt
@@ -27,6 +27,7 @@ Well.xml
Stockpile.xml
Zone.xml
+AnimalTrap.xml
WeaponTrap.xml
StonefallTrap.xml
CageTrap.xml
@@ -48,7 +49,7 @@ WoodFurnace.xml
Forge.xml
MagmaForge.xml
Masons.xml
-Craftdwarfs.xml
+Craftsdwarfs.xml
Mechanics.xml
Butchers.xml
Loom.xml
diff --git a/resources/creatures.png b/resources/creatures.png
index 82f1496..ec040e8 100644
--- a/resources/creatures.png
+++ b/resources/creatures.png
Binary files differ
diff --git a/resources/creatures/Wildlife.xml b/resources/creatures/Wildlife.xml
index fa1cd03..a28e1f7 100644
--- a/resources/creatures/Wildlife.xml
+++ b/resources/creatures/Wildlife.xml
@@ -1,50 +1,38 @@
<?xml version="1.0"?>
<creatures>
- <creature gameID="HUMAN" sheetIndex="100">
- <variant prof="WRESTLER" sheetIndex="80" />
- <variant prof="LASHER" sheetIndex="81" />
- <variant prof="AXEMAN" sheetIndex="82" />
- <variant prof="HAMMERMAN" sheetIndex="83" />
- <variant prof="SWORDSMAN" sheetIndex="84" />
- <variant prof="SPEARMAN" sheetIndex="85" />
- <variant prof="MACEMAN" sheetIndex="86" />
- <variant prof="CROSSBOWMAN" sheetIndex="87" />
- <variant prof="BOWMAN" sheetIndex="88" />
- <variant prof="PIKEMAN" sheetIndex="89" />
- <variant prof="TRADER" sex="M" sheetIndex="102" />
- <variant prof="MERCHANT" sex="M" sheetIndex="102" />
- <variant prof="TRADER" sex="F" sheetIndex="103" />
- <variant prof="MERCHANT" sex="F" sheetIndex="103" />
- <Profession name="CHILD" sex="M" sheetIndex="120" />
- <Profession name="CHILD" sex="F" sheetIndex="121" />
- <Profession name="BABY" sheetIndex="122" />
- <variant sex="F" sheetIndex="101" />
- </creature>
+
<creature gameID="CAT" sheetIndex="20" >
<variant prof="CHILD" sheetIndex="21" />
</creature>
+
<creature gameID="DOG" sheetIndex="22" >
<variant prof="CHILD" sheetIndex="23" />
</creature>
+
<creature gameID="MACAQUE_RHESUS" sheetIndex="2" />
<creature gameID="CAMEL_1_HUMP" sheetIndex="4" />
<creature gameID="CAMEL_2_HUMP" sheetIndex="4" />
<creature gameID="COW" sheetIndex="5" />
<creature gameID="HIPPO" sheetIndex="6" />
<creature gameID="GROUNDHOG" sheetIndex="7" />
- <creature gameID="TROLL" sheetIndex="16" />
- <creature gameID="NIGHTWING" sheetIndex="17" />
+
+ <creature gameID="HARPY" sheetIndex="11" />
+ <creature gameID="CYCLOPS" sheetIndex="12" offsety="-2"/>
+ <creature gameID="ETTIN" sheetIndex="13"offsety="-2" />
+ <creature gameID="GIANT" sheetIndex="14"offsety="-2" />
+ <creature gameID="MINOTAUR" sheetIndex="15" offsety="-2" />
+ <creature gameID="TROLL" sheetIndex="16" offsety="-2" />
+ <creature gameID="NIGHTWING" sheetIndex="17" />
<creature gameID="FISH_CONGER_EEL" sheetIndex="18" />
- <creature gameID="OGRE" sheetIndex="19" />
- <creature gameID="MULE" sheetIndex="24" color="bodypart"
- bodypart="hair" />
- <creature gameID="DONKEY" sheetIndex="24" color="bodypart"
- bodypart="hair" />
+ <creature gameID="OGRE" sheetIndex="19" offsety="-2"/>
+
+ <creature gameID="MULE" sheetIndex="24" color="bodypart" bodypart="hair" />
+ <creature gameID="DONKEY" sheetIndex="24" color="bodypart" bodypart="hair" />
<creature gameID="MUSKOX" sheetIndex="25" />
<creature gameID="HORSE" sheetIndex="26" />
<creature gameID="FISH_CARP" sheetIndex="29" />
+
<creature gameID="OLM_GIANT" sheetIndex="30" />
- <creature gameID="RATMAN" sheetIndex="31" />
<creature gameID="BEAK_DOG" sheetIndex="32" />
<creature gameID="KOBOLD" sheetIndex="33" />
<creature gameID="GOBLIN" sheetIndex="34" />
@@ -52,7 +40,20 @@
<creature gameID="SPIDER_CAVE_GIANT" sheetIndex="36" />
<creature gameID="SPIRIT_OF_FIRE" sheetIndex="38" />
<creature gameID="IMP_FIRE" sheetIndex="39" />
- <creature gameID="IMP_FIRE" sheetIndex="39" />
+
+ <creature gameID="RODENT MAN" sheetIndex="40" />
+ <creature gameID="AMPHIBIAN_MAN" sheetIndex="41" />
+ <creature gameID="REPTILE_MAN" sheetIndex="42" />
+
<creature gameID="FOX" sheetIndex="50" />
<creature gameID="TROGLODYTE" sheetIndex="52" />
+
+ <creature gameID="DRAGON">
+ <variant sheetIndex ="54" frames = "0"/>
+ <variant sheetIndex ="55" frames = "1"/>
+ <variant sheetIndex ="56" frames = "2"/>
+ <variant sheetIndex ="57" frames = "3"/>
+ <variant sheetIndex ="58" frames = "4"/>
+ <variant sheetIndex ="59" frames = "5"/>
+ </creature>
</creatures>
diff --git a/resources/creatures/caravan_animals.xml b/resources/creatures/caravan_animals.xml
index 081aaf2..037dd72 100644
--- a/resources/creatures/caravan_animals.xml
+++ b/resources/creatures/caravan_animals.xml
@@ -61,7 +61,7 @@
</variant>
</creature>
- <creature gameID="BIRD_GEESE" file="caravan_animals.png" >
+ <creature gameID="BIRD_GOOSE" file="caravan_animals.png" >
<variant prof="CHILD" sheetIndex ="42" color = "bodypart" bodypart = "feathers" >
<subsprite sheetIndex = "43" />
</variant>
diff --git a/resources/creatures/humans.png b/resources/creatures/humans.png
new file mode 100644
index 0000000..29e0746
--- /dev/null
+++ b/resources/creatures/humans.png
Binary files differ
diff --git a/resources/creatures/humans.xml b/resources/creatures/humans.xml
new file mode 100644
index 0000000..fe5598b
--- /dev/null
+++ b/resources/creatures/humans.xml
@@ -0,0 +1,175 @@
+<?xml version="1.0" ?>
+
+<creatures>
+ <!-- default -->
+ <creature gameID="HUMAN" file="humans.png" sheetIndex="0" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="1" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="2" />
+ <subsprite sheetIndex="3" color="profession" />
+
+
+ <!-- military -->
+ <variant prof="RECRUIT" sheetIndex="0" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="40" />
+ </variant>
+
+ <variant prof="WRESTLER" sheetIndex="41" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="61" />
+ </variant>
+ <variant prof="MASTER_WRESTLER" sheetIndex="41" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="61" />
+ <subsprite sheetIndex="60" offsety="-2" />
+ </variant>
+
+ <variant prof="LASHER" sheetIndex="42" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="62" />
+ </variant>
+ <variant prof="MASTER_LASHER" sheetIndex="42" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="62" />
+ <subsprite sheetIndex="60" offsety="-2" />
+ </variant>
+
+ <variant prof="AXEMAN" sheetIndex="42" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="63" />
+ </variant>
+ <variant prof="MASTER_AXEMAN" sheetIndex="42" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="63" />
+ <subsprite sheetIndex="60" offsety="-2" />
+ </variant>
+
+ <variant prof="HAMMERMAN" sheetIndex="42" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="64" />
+ </variant>
+ <variant prof="MASTER_HAMMERMAN" sheetIndex="42" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="64" />
+ <subsprite sheetIndex="60" offsety="-2" />
+ </variant>
+
+ <variant prof="SWORDSMAN" sheetIndex="42" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="65" />
+ </variant>
+ <variant prof="MASTER_SWORDSMAN" sheetIndex="42" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="65" />
+ <subsprite sheetIndex="60" offsety="-2" />
+ </variant>
+
+ <variant prof="SPEARMAN" sheetIndex="42" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="66" />
+ </variant>
+ <variant prof="MASTER_SPEARMAN" sheetIndex="42" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="66" />
+ <subsprite sheetIndex="60" offsety="-2" />
+ </variant>
+
+ <variant prof="MACEMAN" sheetIndex="42" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="67" />
+ </variant>
+ <variant prof="MASTER_MACEMAN" sheetIndex="42" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="67" />
+ <subsprite sheetIndex="60" offsety="-2" />
+ </variant>
+
+
+ <variant prof="CROSSBOWMAN" sheetIndex="48" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="68" />
+ </variant>
+ <variant prof="MASTER_CROSSBOWMAN" sheetIndex="48" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="68" />
+ <subsprite sheetIndex="60" offsety="-2" />
+ </variant>
+
+ <variant prof="BOWMAN" sheetIndex="48" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="69" />
+ </variant>
+ <variant prof="MASTER_BOWMAN" sheetIndex="48" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="69" />
+ <subsprite sheetIndex="60" offsety="-2" />
+ </variant>
+
+ <variant prof="BLOWGUNMAN" sheetIndex="48" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="70" />
+ </variant>
+ <variant prof="MASTER_BLOWGUNMAN" sheetIndex="48" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="70" />
+ <subsprite sheetIndex="60" offsety="-2" />
+ </variant>
+
+ <variant prof="PIKEMAN" sheetIndex="51" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="71" />
+ </variant>
+ <variant prof="MASTER_PIKEMAN" sheetIndex="51" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="71" />
+ <subsprite sheetIndex="60" offsety="-2" />
+ </variant>
+
+ <!-- purple guys -->
+ <variant prof="CLERK" sex="M" sheetIndex="0" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="1" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="4" />
+ </variant>
+ <variant prof="CLERK" sex="F" sheetIndex="20" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="21" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="24" />
+ </variant>
+
+ <variant prof="ADMINISTRATOR" sex="M" sheetIndex="5" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="6" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="7" /><!-- need colors -->
+ </variant>
+ <variant prof="ADMINISTRATOR" sex="F" sheetIndex="25" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="26" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="27" /><!-- need colors -->
+ </variant>
+
+ <variant prof="TRADER" sex="M" sheetIndex="11" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="6" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="13" /><!-- need colors -->
+ </variant>
+ <variant prof="TRADER" sex="F" sheetIndex="31" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="32" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="33" /><!-- need colors -->
+ </variant>
+
+
+ <!-- non-playable -->
+ <variant prof="MERCHANT" sex="M" sheetIndex="9" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="6" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="10" />
+ </variant>
+ <variant prof="MERCHANT" sex="F" sheetIndex="29" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="26" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="30" />
+ </variant>
+
+ <!--variant prof="SHOPKEEPER" sex="M" sheetIndex="11" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="6" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="14" />
+ </variant>
+ <variant prof="SHOPKEEPER" sex="F" sheetIndex="31" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="32" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="34" />
+ </variant-->
+
+
+ <!-- children -->
+ <variant prof="CHILD" sex="M" sheetIndex="15" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="35" color="bodypart" bodypart="hair" /><!-- variations="2"-->
+ <subsprite sheetIndex="16" />
+ </variant>
+ <variant prof="CHILD" sex="F" sheetIndex="15" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="37" color="bodypart" bodypart="hair" /><!-- sheetIndex="36" variations="2"-->
+ <subsprite sheetIndex="17" />
+ </variant>
+ <variant prof="BABY" sheetIndex="18" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="39" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="19" />
+ </variant>
+
+ <!-- default female -->
+ <variant sex="F" sheetIndex="20" color="bodypart" bodypart="skin">
+ <subsprite sheetIndex="21" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="22" />
+ <subsprite sheetIndex="23" color="profession" />
+ </variant>
+ </creature>
+</creatures> \ No newline at end of file
diff --git a/resources/creatures/humies.png b/resources/creatures/humies.png
deleted file mode 100644
index 6558aed..0000000
--- a/resources/creatures/humies.png
+++ /dev/null
Binary files differ
diff --git a/resources/creatures/humies.xml b/resources/creatures/humies.xml
deleted file mode 100644
index 7f0102e..0000000
--- a/resources/creatures/humies.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<creatures>
- <creature gameID="HUMAN" sheetIndex="0" file="humies.png" color="bodypart" bodypart="skin">
- <subsprite sheetIndex="1" color="bodypart" bodypart="hair" />
- <subsprite sheetIndex="2" />
- <subsprite sheetIndex="3" color="profession" />
- <variant sex="F" sheetIndex="4" color="bodypart" bodypart="skin">
- <subsprite sheetIndex="5" color="bodypart" bodypart="hair" />
- <subsprite sheetIndex="6" />
- <subsprite sheetIndex="7" color="profession" />
- </variant>
- </creature>
-</creatures>
diff --git a/resources/creatures/index.txt b/resources/creatures/index.txt
index ded7e65..649142c 100644
--- a/resources/creatures/index.txt
+++ b/resources/creatures/index.txt
@@ -1,10 +1,10 @@
-large_256/index.txt
+large_128/index.txt
caravan_animals.xml
beefmo_large_ocean.xml
beefmo_subterranean.xml
-humies.xml
+humans.xml
elfs.xml
wild_animals.xml
#goblins.xml
diff --git a/resources/creatures/large_128/crundle.png b/resources/creatures/large_128/crundle.png
new file mode 100644
index 0000000..939b3df
--- /dev/null
+++ b/resources/creatures/large_128/crundle.png
Binary files differ
diff --git a/resources/creatures/large_128/crundle.xml b/resources/creatures/large_128/crundle.xml
new file mode 100644
index 0000000..b0487a9
--- /dev/null
+++ b/resources/creatures/large_128/crundle.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" ?>
+<creatures>
+ <creature gameID="CRUNDLE" file="crundle.png" >
+
+ <variant special="Normal" sex="F" sheetIndex="0" zoom="2" color="bodypart" bodypart="scales" >
+ <subsprite sheetIndex="1" zoom="2" />
+ </variant>
+
+ <variant special="Normal" sex="M" sheetIndex="0" zoom="2" color="bodypart" bodypart="scales" >
+ <subsprite sheetIndex="21" zoom="2" />
+ </variant>
+
+ </creature>
+
+ <creature gameID="IMP_FIRE" file="crundle.png" >
+
+ <variant special="Normal" sheetIndex="40" zoom="2" color="bodypart" bodypart="skin" >
+ <subsprite sheetIndex="41" zoom="2" />
+ </variant>
+
+ </creature>
+
+</creatures> \ No newline at end of file
diff --git a/resources/creatures/large_128/domestic.png b/resources/creatures/large_128/domestic.png
new file mode 100644
index 0000000..b675a1f
--- /dev/null
+++ b/resources/creatures/large_128/domestic.png
Binary files differ
diff --git a/resources/creatures/large_128/domestic.xml b/resources/creatures/large_128/domestic.xml
new file mode 100644
index 0000000..4761313
--- /dev/null
+++ b/resources/creatures/large_128/domestic.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" ?>
+<creatures>
+
+ <creature gameID="WATER_BUFFALO" file="domestic.png" >
+
+ <variant special="Normal" prof="CHILD" sheetIndex="4" zoom="2" color="bodypart" bodypart="skin" >
+ <subsprite sheetIndex="5" zoom="2" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="6" zoom="2" />
+ </variant>
+
+ <variant special="Normal" sex="F" sheetIndex="0" zoom="2" color="bodypart" bodypart="skin" >
+ <subsprite sheetIndex="1" zoom="2" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="2" zoom="2" />
+ </variant>
+
+ <variant special="Normal" sex="M" sheetIndex="0" zoom="2" color="bodypart" bodypart="skin" >
+ <subsprite sheetIndex="1" zoom="2" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="3" zoom="2" />
+ </variant>
+
+ </creature>
+
+
+ <creature gameID="GOAT" file="domestic.png" >
+
+ <variant special="Normal" prof="CHILD" sheetIndex="25" zoom="2" color="bodypart" bodypart="hair" >
+ <subsprite sheetIndex="26" zoom="2" />
+ </variant>
+
+ <variant special="Normal" sex="F" sheetIndex="20" zoom="2" color="bodypart" bodypart="hair" >
+ <subsprite sheetIndex="21" zoom="2" color="bodypart" bodypart="beard" />
+ <subsprite sheetIndex="22" zoom="2" />
+ </variant>
+
+ <variant special="Normal" sex="M" sheetIndex="20" zoom="2" color="bodypart" bodypart="hair" >
+ <subsprite sheetIndex="23" zoom="2" color="bodypart" bodypart="beard" />
+ <subsprite sheetIndex="24" zoom="2" />
+ </variant>
+
+ </creature>
+
+
+ <creature gameID="SHEEP" file="domestic.png" >
+
+ <variant special="Normal" prof="CHILD" sheetIndex="44" zoom="2" color="bodypart" bodypart="skin" >
+ <subsprite sheetIndex="45" zoom="2" color="bodypart" bodypart="wool" />
+ <subsprite sheetIndex="46" zoom="2" />
+ </variant>
+
+ <variant special="Normal" sex="F" sheetIndex="40" zoom="2" color="bodypart" bodypart="skin" >
+ <subsprite sheetIndex="41" zoom="2" color="bodypart" bodypart="wool" />
+ <subsprite sheetIndex="42" zoom="2" />
+ </variant>
+
+ <variant special="Normal" sex="M" sheetIndex="40" zoom="2" color="bodypart" bodypart="skin" >
+ <subsprite sheetIndex="41" zoom="2" color="bodypart" bodypart="wool" />
+ <subsprite sheetIndex="43" zoom="2" />
+ </variant>
+
+ </creature>
+
+
+ <creature gameID="REINDEER" file="domestic.png" >
+
+ <variant special="Normal" prof="CHILD" sheetIndex="62" zoom="2" color="bodypart" bodypart="hair" >
+ <subsprite sheetIndex="63" zoom="2" />
+ </variant>
+
+ <variant special="Normal" sheetIndex="60" zoom="2" color="bodypart" bodypart="hair" >
+ <subsprite sheetIndex="61" zoom="2" />
+ </variant>
+
+ </creature>
+
+
+ <creature gameID="PIG" file="domestic.png" >
+
+ <variant special="Normal" prof="CHILD" sheetIndex="81" zoom="2" color="bodypart" bodypart="skin" />
+
+ <variant special="Normal" sheetIndex="80" zoom="2" color="bodypart" bodypart="skin" />
+
+ </creature>
+
+
+ <creature gameID="BIRD_CHICKEN" file="domestic.png" >
+
+ <variant special="Normal" prof="CHILD" sheetIndex="104" zoom="2" >
+ <subsprite sheetIndex="105" zoom="2" color="bodypart" bodypart="feathers" />
+ </variant>
+
+ <variant special="Normal" sex="F" sheetIndex="100" zoom="2" >
+ <subsprite sheetIndex="101" zoom="2" color="bodypart" bodypart="feathers" />
+ </variant>
+
+ <variant special="Normal" sex="M" sheetIndex="102" zoom="2" >
+ <subsprite sheetIndex="103" zoom="2" color="bodypart" bodypart="feathers" />
+ </variant>
+
+ </creature>
+
+
+ <creature gameID="BIRD_DUCK" file="domestic.png" >
+
+ <variant special="Normal" prof="CHILD" sheetIndex="104" zoom="2" >
+ <subsprite sheetIndex="105" zoom="2" color="bodypart" bodypart="feathers" />
+ </variant>
+
+ <variant special="Normal" sheetIndex="120" zoom="2" >
+ <subsprite sheetIndex="121" zoom="2" color="bodypart" bodypart="feathers" />
+ </variant>
+
+ </creature>
+
+</creatures> \ No newline at end of file
diff --git a/resources/creatures/large_128/dwarf.xml b/resources/creatures/large_128/dwarf.xml
new file mode 100644
index 0000000..44a8589
--- /dev/null
+++ b/resources/creatures/large_128/dwarf.xml
@@ -0,0 +1,786 @@
+<?xml version="1.0" ?>
+<creatures>
+<creature gameID="DWARF" >
+
+ <variant special="Military" sex="M" file="dwarfm.png" >
+
+ <!--rear pieces for shadowing between legs-->
+ <subsprite sheetIndex="148" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="151" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <subsprite sheetIndex="2" zoom="2" color="bodypart" bodypart="skin" />
+
+ <!--all the body clothes-->
+ <subsprite sheetIndex="80" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
+ <subsprite sheetIndex="81" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LEGGINGS" color="equipment"/>
+ <subsprite sheetIndex="20" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SOCKS" color="equipment"/>
+ <subsprite sheetIndex="41" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_CHAUSSE" color="equipment"/>
+ <subsprite sheetIndex="22" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SANDAL" color="equipment"/>
+ <subsprite sheetIndex="23" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SHOES" color="equipment"/>
+ <subsprite sheetIndex="24" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS_LOW" color="equipment"/>
+ <subsprite sheetIndex="45" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS" color="equipment"/>
+ <subsprite sheetIndex="82" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
+ <subsprite sheetIndex="83" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
+ <subsprite sheetIndex="84" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
+ <subsprite sheetIndex="65" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
+ <subsprite sheetIndex="86" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
+ <subsprite sheetIndex="87" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
+ <subsprite sheetIndex="88" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
+ <subsprite sheetIndex="120" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="121" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
+ <subsprite sheetIndex="122" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
+ <subsprite sheetIndex="123" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="160" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
+ <subsprite sheetIndex="161" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
+ <subsprite sheetIndex="124" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
+ <subsprite sheetIndex="125" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
+ <subsprite sheetIndex="126" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
+ <subsprite sheetIndex="127" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
+ <subsprite sheetIndex="128" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="129" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
+ <subsprite sheetIndex="162" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
+ <subsprite sheetIndex="130" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
+ <subsprite sheetIndex="131" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <!--beard goes here - on top of clothes but below hats-->
+ <subsprite sheetIndex="3" zoom="2" color="bodypart" bodypart="hair" />
+
+ <!--subsprite sheetIndex="100" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_HEAD" color="equipment"/-->
+ <!--subsprite sheetIndex="101" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_FACE" color="equipment"/-->
+ <subsprite sheetIndex="182" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
+ <subsprite sheetIndex="183" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
+ <subsprite sheetIndex="184" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
+ <!--subsprite sheetIndex="107" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
+ <subsprite sheetIndex="186" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
+ <subsprite sheetIndex="185" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
+
+ <subsprite sheetIndex="200" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_WHIP" color="equipment"/>
+ <subsprite sheetIndex="201" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_BATTLE" color="equipment"/>
+ <subsprite sheetIndex="202" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HAMMER_WAR" color="equipment"/>
+ <subsprite sheetIndex="203" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR" color="equipment"/>
+ <subsprite sheetIndex="205" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MACE" color="equipment"/>
+ <subsprite sheetIndex="206" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_CROSSBOW" color="equipment"/>
+ <subsprite sheetIndex="207" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PICK" color="equipment"/>
+ <subsprite sheetIndex="208" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BOW" color="equipment"/>
+ <subsprite sheetIndex="209" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BLOWGUN" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="210" offsety="-16" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="211" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HALBERD" color="equipment"/>
+ <subsprite sheetIndex="220" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_2H" color="equipment"/>
+ <subsprite sheetIndex="221" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_LONG" color="equipment"/>
+ <subsprite sheetIndex="222" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MAUL" color="equipment"/>
+ <subsprite sheetIndex="223" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_GREAT" color="equipment"/>
+ <subsprite sheetIndex="224" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_DAGGER_LARGE" color="equipment"/>
+ <subsprite sheetIndex="225" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCOURGE" color="equipment"/>
+ <subsprite sheetIndex="226" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_FLAIL" color="equipment"/>
+ <subsprite sheetIndex="227" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MORNINGSTAR" color="equipment"/>
+ <subsprite sheetIndex="228" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCIMITAR" color="equipment"/>
+ <subsprite sheetIndex="229" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="230" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="231" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR_TRAINING" color="equipment"/>
+
+ <subsprite sheetIndex="163" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_BUCKLER" color="equipment"/>
+ <subsprite sheetIndex="164" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_SHIELD" color="equipment"/>
+
+ <subsprite sheetIndex="4" zoom="2" />
+ </variant>
+
+ <variant special="Military" sex="F" file="dwarff.png" >
+
+ <!--rear pieces for shadowing between legs-->
+ <subsprite sheetIndex="148" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="151" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <subsprite sheetIndex="2" zoom="2" color="bodypart" bodypart="skin" />
+
+ <!--all the body clothes-->
+ <subsprite sheetIndex="80" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
+ <subsprite sheetIndex="81" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LEGGINGS" color="equipment"/>
+ <subsprite sheetIndex="20" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SOCKS" color="equipment"/>
+ <subsprite sheetIndex="41" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_CHAUSSE" color="equipment"/>
+ <subsprite sheetIndex="22" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SANDAL" color="equipment"/>
+ <subsprite sheetIndex="23" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SHOES" color="equipment"/>
+ <subsprite sheetIndex="24" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS_LOW" color="equipment"/>
+ <subsprite sheetIndex="45" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS" color="equipment"/>
+ <subsprite sheetIndex="82" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
+ <subsprite sheetIndex="83" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
+ <subsprite sheetIndex="84" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
+ <subsprite sheetIndex="65" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
+ <subsprite sheetIndex="86" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
+ <subsprite sheetIndex="87" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
+ <subsprite sheetIndex="88" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
+ <subsprite sheetIndex="120" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="121" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
+ <subsprite sheetIndex="122" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
+ <subsprite sheetIndex="123" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="160" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
+ <subsprite sheetIndex="161" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
+ <subsprite sheetIndex="124" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
+ <subsprite sheetIndex="125" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
+ <subsprite sheetIndex="126" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
+ <subsprite sheetIndex="127" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
+ <subsprite sheetIndex="128" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="129" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
+ <subsprite sheetIndex="162" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
+ <subsprite sheetIndex="130" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
+ <subsprite sheetIndex="131" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <!--hair goes here - on top of clothes but below hats-->
+ <subsprite sheetIndex="3" zoom="2" color="bodypart" bodypart="hair" />
+
+ <!--subsprite sheetIndex="100" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_HEAD" color="equipment"/-->
+ <!--subsprite sheetIndex="101" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_FACE" color="equipment"/-->
+ <subsprite sheetIndex="182" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
+ <subsprite sheetIndex="183" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
+ <subsprite sheetIndex="184" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
+ <!--subsprite sheetIndex="107" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
+ <subsprite sheetIndex="186" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
+ <subsprite sheetIndex="185" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
+
+ <subsprite sheetIndex="200" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_WHIP" color="equipment"/>
+ <subsprite sheetIndex="201" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_BATTLE" color="equipment"/>
+ <subsprite sheetIndex="202" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HAMMER_WAR" color="equipment"/>
+ <subsprite sheetIndex="203" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR" color="equipment"/>
+ <subsprite sheetIndex="205" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MACE" color="equipment"/>
+ <subsprite sheetIndex="206" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_CROSSBOW" color="equipment"/>
+ <subsprite sheetIndex="207" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PICK" color="equipment"/>
+ <subsprite sheetIndex="208" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BOW" color="equipment"/>
+ <subsprite sheetIndex="209" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BLOWGUN" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="210" offsety="-16" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="211" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HALBERD" color="equipment"/>
+ <subsprite sheetIndex="220" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_2H" color="equipment"/>
+ <subsprite sheetIndex="221" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_LONG" color="equipment"/>
+ <subsprite sheetIndex="222" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MAUL" color="equipment"/>
+ <subsprite sheetIndex="223" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_GREAT" color="equipment"/>
+ <subsprite sheetIndex="224" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_DAGGER_LARGE" color="equipment"/>
+ <subsprite sheetIndex="225" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCOURGE" color="equipment"/>
+ <subsprite sheetIndex="226" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_FLAIL" color="equipment"/>
+ <subsprite sheetIndex="227" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MORNINGSTAR" color="equipment"/>
+ <subsprite sheetIndex="228" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCIMITAR" color="equipment"/>
+ <subsprite sheetIndex="229" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="230" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="231" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR_TRAINING" color="equipment"/>
+
+ <subsprite sheetIndex="163" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_BUCKLER" color="equipment"/>
+ <subsprite sheetIndex="164" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_SHIELD" color="equipment"/>
+
+ <subsprite sheetIndex="4" zoom="2" />
+ </variant>
+
+ <variant special="Normal" prof="MINER" sex="M" file="dwarfm.png" >
+
+ <!--rear pieces for shadowing between legs-->
+ <subsprite sheetIndex="148" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="151" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <subsprite sheetIndex="2" zoom="2" color="bodypart" bodypart="skin" />
+
+ <!--all the body clothes-->
+ <subsprite sheetIndex="80" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
+ <subsprite sheetIndex="81" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LEGGINGS" color="equipment"/>
+ <subsprite sheetIndex="20" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SOCKS" color="equipment"/>
+ <subsprite sheetIndex="41" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_CHAUSSE" color="equipment"/>
+ <subsprite sheetIndex="22" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SANDAL" color="equipment"/>
+ <subsprite sheetIndex="23" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SHOES" color="equipment"/>
+ <subsprite sheetIndex="24" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS_LOW" color="equipment"/>
+ <subsprite sheetIndex="45" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS" color="equipment"/>
+ <subsprite sheetIndex="82" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
+ <subsprite sheetIndex="83" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
+ <subsprite sheetIndex="84" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
+ <subsprite sheetIndex="65" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
+ <subsprite sheetIndex="86" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
+ <subsprite sheetIndex="87" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
+ <subsprite sheetIndex="88" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
+ <subsprite sheetIndex="120" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="121" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
+ <subsprite sheetIndex="122" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
+ <subsprite sheetIndex="123" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="160" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
+ <subsprite sheetIndex="161" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
+ <subsprite sheetIndex="124" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
+ <subsprite sheetIndex="125" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
+ <subsprite sheetIndex="126" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
+ <subsprite sheetIndex="127" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
+ <subsprite sheetIndex="128" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="129" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
+ <subsprite sheetIndex="162" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
+ <subsprite sheetIndex="130" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
+ <subsprite sheetIndex="131" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <!--beard goes here - on top of clothes but below hats-->
+ <subsprite sheetIndex="3" zoom="2" color="bodypart" bodypart="hair" />
+
+ <!--subsprite sheetIndex="100" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_HEAD" color="equipment"/-->
+ <!--subsprite sheetIndex="101" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_FACE" color="equipment"/-->
+ <subsprite sheetIndex="182" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
+ <subsprite sheetIndex="183" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
+ <subsprite sheetIndex="184" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
+ <!--subsprite sheetIndex="107" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
+ <subsprite sheetIndex="186" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
+ <subsprite sheetIndex="185" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
+
+ <subsprite sheetIndex="200" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_WHIP" color="equipment"/>
+ <subsprite sheetIndex="201" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_BATTLE" color="equipment"/>
+ <subsprite sheetIndex="202" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HAMMER_WAR" color="equipment"/>
+ <subsprite sheetIndex="203" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR" color="equipment"/>
+ <subsprite sheetIndex="205" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MACE" color="equipment"/>
+ <subsprite sheetIndex="206" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_CROSSBOW" color="equipment"/>
+ <subsprite sheetIndex="207" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PICK" color="equipment"/>
+ <subsprite sheetIndex="208" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BOW" color="equipment"/>
+ <subsprite sheetIndex="209" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BLOWGUN" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="210" offsety="-16" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="211" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HALBERD" color="equipment"/>
+ <subsprite sheetIndex="220" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_2H" color="equipment"/>
+ <subsprite sheetIndex="221" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_LONG" color="equipment"/>
+ <subsprite sheetIndex="222" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MAUL" color="equipment"/>
+ <subsprite sheetIndex="223" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_GREAT" color="equipment"/>
+ <subsprite sheetIndex="224" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_DAGGER_LARGE" color="equipment"/>
+ <subsprite sheetIndex="225" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCOURGE" color="equipment"/>
+ <subsprite sheetIndex="226" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_FLAIL" color="equipment"/>
+ <subsprite sheetIndex="227" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MORNINGSTAR" color="equipment"/>
+ <subsprite sheetIndex="228" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCIMITAR" color="equipment"/>
+ <subsprite sheetIndex="229" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="230" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="231" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR_TRAINING" color="equipment"/>
+
+ <subsprite sheetIndex="163" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_BUCKLER" color="equipment"/>
+ <subsprite sheetIndex="164" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_SHIELD" color="equipment"/>
+
+ <subsprite sheetIndex="4" zoom="2" />
+ </variant>
+
+ <variant special="Normal" prof="MINER" sex="F" file="dwarff.png" >
+
+ <!--rear pieces for shadowing between legs-->
+ <subsprite sheetIndex="148" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="151" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <subsprite sheetIndex="2" zoom="2" color="bodypart" bodypart="skin" />
+
+ <!--all the body clothes-->
+ <subsprite sheetIndex="80" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
+ <subsprite sheetIndex="81" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LEGGINGS" color="equipment"/>
+ <subsprite sheetIndex="20" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SOCKS" color="equipment"/>
+ <subsprite sheetIndex="41" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_CHAUSSE" color="equipment"/>
+ <subsprite sheetIndex="22" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SANDAL" color="equipment"/>
+ <subsprite sheetIndex="23" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SHOES" color="equipment"/>
+ <subsprite sheetIndex="24" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS_LOW" color="equipment"/>
+ <subsprite sheetIndex="45" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS" color="equipment"/>
+ <subsprite sheetIndex="82" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
+ <subsprite sheetIndex="83" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
+ <subsprite sheetIndex="84" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
+ <subsprite sheetIndex="65" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
+ <subsprite sheetIndex="86" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
+ <subsprite sheetIndex="87" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
+ <subsprite sheetIndex="88" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
+ <subsprite sheetIndex="120" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="121" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
+ <subsprite sheetIndex="122" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
+ <subsprite sheetIndex="123" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="160" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
+ <subsprite sheetIndex="161" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
+ <subsprite sheetIndex="124" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
+ <subsprite sheetIndex="125" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
+ <subsprite sheetIndex="126" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
+ <subsprite sheetIndex="127" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
+ <subsprite sheetIndex="128" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="129" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
+ <subsprite sheetIndex="162" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
+ <subsprite sheetIndex="130" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
+ <subsprite sheetIndex="131" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <!--hair goes here - on top of clothes but below hats-->
+ <subsprite sheetIndex="3" zoom="2" color="bodypart" bodypart="hair" />
+
+ <!--subsprite sheetIndex="100" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_HEAD" color="equipment"/-->
+ <!--subsprite sheetIndex="101" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_FACE" color="equipment"/-->
+ <subsprite sheetIndex="182" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
+ <subsprite sheetIndex="183" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
+ <subsprite sheetIndex="184" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
+ <!--subsprite sheetIndex="107" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
+ <subsprite sheetIndex="186" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
+ <subsprite sheetIndex="185" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
+
+ <subsprite sheetIndex="200" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_WHIP" color="equipment"/>
+ <subsprite sheetIndex="201" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_BATTLE" color="equipment"/>
+ <subsprite sheetIndex="202" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HAMMER_WAR" color="equipment"/>
+ <subsprite sheetIndex="203" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR" color="equipment"/>
+ <subsprite sheetIndex="205" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MACE" color="equipment"/>
+ <subsprite sheetIndex="206" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_CROSSBOW" color="equipment"/>
+ <subsprite sheetIndex="207" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PICK" color="equipment"/>
+ <subsprite sheetIndex="208" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BOW" color="equipment"/>
+ <subsprite sheetIndex="209" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BLOWGUN" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="210" offsety="-16" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="211" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HALBERD" color="equipment"/>
+ <subsprite sheetIndex="220" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_2H" color="equipment"/>
+ <subsprite sheetIndex="221" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_LONG" color="equipment"/>
+ <subsprite sheetIndex="222" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MAUL" color="equipment"/>
+ <subsprite sheetIndex="223" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_GREAT" color="equipment"/>
+ <subsprite sheetIndex="224" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_DAGGER_LARGE" color="equipment"/>
+ <subsprite sheetIndex="225" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCOURGE" color="equipment"/>
+ <subsprite sheetIndex="226" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_FLAIL" color="equipment"/>
+ <subsprite sheetIndex="227" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MORNINGSTAR" color="equipment"/>
+ <subsprite sheetIndex="228" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCIMITAR" color="equipment"/>
+ <subsprite sheetIndex="229" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="230" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="231" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR_TRAINING" color="equipment"/>
+
+ <subsprite sheetIndex="163" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_BUCKLER" color="equipment"/>
+ <subsprite sheetIndex="164" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_SHIELD" color="equipment"/>
+
+ <subsprite sheetIndex="4" zoom="2" />
+ </variant>
+
+ <variant special="Normal" prof="WOODCUTTER" sex="M" file="dwarfm.png" >
+
+ <!--rear pieces for shadowing between legs-->
+ <subsprite sheetIndex="148" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="151" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <subsprite sheetIndex="2" zoom="2" color="bodypart" bodypart="skin" />
+
+ <!--all the body clothes-->
+ <subsprite sheetIndex="80" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
+ <subsprite sheetIndex="81" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LEGGINGS" color="equipment"/>
+ <subsprite sheetIndex="20" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SOCKS" color="equipment"/>
+ <subsprite sheetIndex="41" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_CHAUSSE" color="equipment"/>
+ <subsprite sheetIndex="22" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SANDAL" color="equipment"/>
+ <subsprite sheetIndex="23" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SHOES" color="equipment"/>
+ <subsprite sheetIndex="24" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS_LOW" color="equipment"/>
+ <subsprite sheetIndex="45" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS" color="equipment"/>
+ <subsprite sheetIndex="82" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
+ <subsprite sheetIndex="83" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
+ <subsprite sheetIndex="84" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
+ <subsprite sheetIndex="65" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
+ <subsprite sheetIndex="86" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
+ <subsprite sheetIndex="87" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
+ <subsprite sheetIndex="88" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
+ <subsprite sheetIndex="120" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="121" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
+ <subsprite sheetIndex="122" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
+ <subsprite sheetIndex="123" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="160" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
+ <subsprite sheetIndex="161" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
+ <subsprite sheetIndex="124" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
+ <subsprite sheetIndex="125" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
+ <subsprite sheetIndex="126" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
+ <subsprite sheetIndex="127" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
+ <subsprite sheetIndex="128" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="129" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
+ <subsprite sheetIndex="162" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
+ <subsprite sheetIndex="130" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
+ <subsprite sheetIndex="131" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <!--beard goes here - on top of clothes but below hats-->
+ <subsprite sheetIndex="3" zoom="2" color="bodypart" bodypart="hair" />
+
+ <!--subsprite sheetIndex="100" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_HEAD" color="equipment"/-->
+ <!--subsprite sheetIndex="101" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_FACE" color="equipment"/-->
+ <subsprite sheetIndex="182" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
+ <subsprite sheetIndex="183" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
+ <subsprite sheetIndex="184" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
+ <!--subsprite sheetIndex="107" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
+ <subsprite sheetIndex="186" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
+ <subsprite sheetIndex="185" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
+
+ <subsprite sheetIndex="200" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_WHIP" color="equipment"/>
+ <subsprite sheetIndex="201" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_BATTLE" color="equipment"/>
+ <subsprite sheetIndex="202" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HAMMER_WAR" color="equipment"/>
+ <subsprite sheetIndex="203" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR" color="equipment"/>
+ <subsprite sheetIndex="205" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MACE" color="equipment"/>
+ <subsprite sheetIndex="206" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_CROSSBOW" color="equipment"/>
+ <subsprite sheetIndex="207" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PICK" color="equipment"/>
+ <subsprite sheetIndex="208" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BOW" color="equipment"/>
+ <subsprite sheetIndex="209" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BLOWGUN" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="210" offsety="-16" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="211" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HALBERD" color="equipment"/>
+ <subsprite sheetIndex="220" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_2H" color="equipment"/>
+ <subsprite sheetIndex="221" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_LONG" color="equipment"/>
+ <subsprite sheetIndex="222" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MAUL" color="equipment"/>
+ <subsprite sheetIndex="223" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_GREAT" color="equipment"/>
+ <subsprite sheetIndex="224" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_DAGGER_LARGE" color="equipment"/>
+ <subsprite sheetIndex="225" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCOURGE" color="equipment"/>
+ <subsprite sheetIndex="226" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_FLAIL" color="equipment"/>
+ <subsprite sheetIndex="227" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MORNINGSTAR" color="equipment"/>
+ <subsprite sheetIndex="228" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCIMITAR" color="equipment"/>
+ <subsprite sheetIndex="229" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="230" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="231" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR_TRAINING" color="equipment"/>
+
+ <subsprite sheetIndex="163" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_BUCKLER" color="equipment"/>
+ <subsprite sheetIndex="164" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_SHIELD" color="equipment"/>
+
+ <subsprite sheetIndex="4" zoom="2" />
+ </variant>
+
+ <variant special="Normal" prof="WOODCUTTER" sex="F" file="dwarff.png" >
+
+ <!--rear pieces for shadowing between legs-->
+ <subsprite sheetIndex="148" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="151" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <subsprite sheetIndex="2" zoom="2" color="bodypart" bodypart="skin" />
+
+ <!--all the body clothes-->
+ <subsprite sheetIndex="80" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
+ <subsprite sheetIndex="81" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LEGGINGS" color="equipment"/>
+ <subsprite sheetIndex="20" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SOCKS" color="equipment"/>
+ <subsprite sheetIndex="41" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_CHAUSSE" color="equipment"/>
+ <subsprite sheetIndex="22" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SANDAL" color="equipment"/>
+ <subsprite sheetIndex="23" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SHOES" color="equipment"/>
+ <subsprite sheetIndex="24" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS_LOW" color="equipment"/>
+ <subsprite sheetIndex="45" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS" color="equipment"/>
+ <subsprite sheetIndex="82" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
+ <subsprite sheetIndex="83" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
+ <subsprite sheetIndex="84" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
+ <subsprite sheetIndex="65" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
+ <subsprite sheetIndex="86" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
+ <subsprite sheetIndex="87" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
+ <subsprite sheetIndex="88" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
+ <subsprite sheetIndex="120" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="121" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
+ <subsprite sheetIndex="122" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
+ <subsprite sheetIndex="123" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="160" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
+ <subsprite sheetIndex="161" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
+ <subsprite sheetIndex="124" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
+ <subsprite sheetIndex="125" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
+ <subsprite sheetIndex="126" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
+ <subsprite sheetIndex="127" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
+ <subsprite sheetIndex="128" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="129" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
+ <subsprite sheetIndex="162" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
+ <subsprite sheetIndex="130" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
+ <subsprite sheetIndex="131" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <!--hair goes here - on top of clothes but below hats-->
+ <subsprite sheetIndex="3" zoom="2" color="bodypart" bodypart="hair" />
+
+ <!--subsprite sheetIndex="100" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_HEAD" color="equipment"/-->
+ <!--subsprite sheetIndex="101" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_FACE" color="equipment"/-->
+ <subsprite sheetIndex="182" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
+ <subsprite sheetIndex="183" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
+ <subsprite sheetIndex="184" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
+ <!--subsprite sheetIndex="107" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
+ <subsprite sheetIndex="186" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
+ <subsprite sheetIndex="185" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
+
+ <subsprite sheetIndex="200" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_WHIP" color="equipment"/>
+ <subsprite sheetIndex="201" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_BATTLE" color="equipment"/>
+ <subsprite sheetIndex="202" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HAMMER_WAR" color="equipment"/>
+ <subsprite sheetIndex="203" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR" color="equipment"/>
+ <subsprite sheetIndex="205" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MACE" color="equipment"/>
+ <subsprite sheetIndex="206" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_CROSSBOW" color="equipment"/>
+ <subsprite sheetIndex="207" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PICK" color="equipment"/>
+ <subsprite sheetIndex="208" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BOW" color="equipment"/>
+ <subsprite sheetIndex="209" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BLOWGUN" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="210" offsety="-16" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="211" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HALBERD" color="equipment"/>
+ <subsprite sheetIndex="220" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_2H" color="equipment"/>
+ <subsprite sheetIndex="221" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_LONG" color="equipment"/>
+ <subsprite sheetIndex="222" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MAUL" color="equipment"/>
+ <subsprite sheetIndex="223" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_GREAT" color="equipment"/>
+ <subsprite sheetIndex="224" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_DAGGER_LARGE" color="equipment"/>
+ <subsprite sheetIndex="225" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCOURGE" color="equipment"/>
+ <subsprite sheetIndex="226" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_FLAIL" color="equipment"/>
+ <subsprite sheetIndex="227" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MORNINGSTAR" color="equipment"/>
+ <subsprite sheetIndex="228" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCIMITAR" color="equipment"/>
+ <subsprite sheetIndex="229" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="230" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="231" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR_TRAINING" color="equipment"/>
+
+ <subsprite sheetIndex="163" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_BUCKLER" color="equipment"/>
+ <subsprite sheetIndex="164" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_SHIELD" color="equipment"/>
+
+ <subsprite sheetIndex="4" zoom="2" />
+ </variant>
+
+ <variant special="Normal" prof="HUNTER" sex="M" file="dwarfm.png" >
+
+ <!--rear pieces for shadowing between legs-->
+ <subsprite sheetIndex="148" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="151" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <subsprite sheetIndex="2" zoom="2" color="bodypart" bodypart="skin" />
+
+ <!--all the body clothes-->
+ <subsprite sheetIndex="80" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
+ <subsprite sheetIndex="81" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LEGGINGS" color="equipment"/>
+ <subsprite sheetIndex="20" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SOCKS" color="equipment"/>
+ <subsprite sheetIndex="41" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_CHAUSSE" color="equipment"/>
+ <subsprite sheetIndex="22" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SANDAL" color="equipment"/>
+ <subsprite sheetIndex="23" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SHOES" color="equipment"/>
+ <subsprite sheetIndex="24" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS_LOW" color="equipment"/>
+ <subsprite sheetIndex="45" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS" color="equipment"/>
+ <subsprite sheetIndex="82" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
+ <subsprite sheetIndex="83" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
+ <subsprite sheetIndex="84" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
+ <subsprite sheetIndex="65" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
+ <subsprite sheetIndex="86" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
+ <subsprite sheetIndex="87" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
+ <subsprite sheetIndex="88" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
+ <subsprite sheetIndex="120" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="121" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
+ <subsprite sheetIndex="122" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
+ <subsprite sheetIndex="123" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="160" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
+ <subsprite sheetIndex="161" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
+ <subsprite sheetIndex="124" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
+ <subsprite sheetIndex="125" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
+ <subsprite sheetIndex="126" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
+ <subsprite sheetIndex="127" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
+ <subsprite sheetIndex="128" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="129" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
+ <subsprite sheetIndex="162" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
+ <subsprite sheetIndex="130" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
+ <subsprite sheetIndex="131" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <!--beard goes here - on top of clothes but below hats-->
+ <subsprite sheetIndex="3" zoom="2" color="bodypart" bodypart="hair" />
+
+ <!--subsprite sheetIndex="100" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_HEAD" color="equipment"/-->
+ <!--subsprite sheetIndex="101" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_FACE" color="equipment"/-->
+ <subsprite sheetIndex="182" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
+ <subsprite sheetIndex="183" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
+ <subsprite sheetIndex="184" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
+ <!--subsprite sheetIndex="107" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
+ <subsprite sheetIndex="186" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
+ <subsprite sheetIndex="185" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
+
+ <subsprite sheetIndex="200" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_WHIP" color="equipment"/>
+ <subsprite sheetIndex="201" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_BATTLE" color="equipment"/>
+ <subsprite sheetIndex="202" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HAMMER_WAR" color="equipment"/>
+ <subsprite sheetIndex="203" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR" color="equipment"/>
+ <subsprite sheetIndex="205" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MACE" color="equipment"/>
+ <subsprite sheetIndex="206" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_CROSSBOW" color="equipment"/>
+ <subsprite sheetIndex="207" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PICK" color="equipment"/>
+ <subsprite sheetIndex="208" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BOW" color="equipment"/>
+ <subsprite sheetIndex="209" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BLOWGUN" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="210" offsety="-16" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="211" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HALBERD" color="equipment"/>
+ <subsprite sheetIndex="220" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_2H" color="equipment"/>
+ <subsprite sheetIndex="221" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_LONG" color="equipment"/>
+ <subsprite sheetIndex="222" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MAUL" color="equipment"/>
+ <subsprite sheetIndex="223" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_GREAT" color="equipment"/>
+ <subsprite sheetIndex="224" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_DAGGER_LARGE" color="equipment"/>
+ <subsprite sheetIndex="225" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCOURGE" color="equipment"/>
+ <subsprite sheetIndex="226" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_FLAIL" color="equipment"/>
+ <subsprite sheetIndex="227" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MORNINGSTAR" color="equipment"/>
+ <subsprite sheetIndex="228" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCIMITAR" color="equipment"/>
+ <subsprite sheetIndex="229" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="230" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="231" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR_TRAINING" color="equipment"/>
+
+ <subsprite sheetIndex="163" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_BUCKLER" color="equipment"/>
+ <subsprite sheetIndex="164" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_SHIELD" color="equipment"/>
+
+ <subsprite sheetIndex="4" zoom="2" />
+ </variant>
+
+ <variant special="Normal" prof="HUNTER" sex="F" file="dwarff.png" >
+
+ <!--rear pieces for shadowing between legs-->
+ <subsprite sheetIndex="148" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="151" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <subsprite sheetIndex="2" zoom="2" color="bodypart" bodypart="skin" />
+
+ <!--all the body clothes-->
+ <subsprite sheetIndex="80" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
+ <subsprite sheetIndex="81" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LEGGINGS" color="equipment"/>
+ <subsprite sheetIndex="20" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SOCKS" color="equipment"/>
+ <subsprite sheetIndex="41" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_CHAUSSE" color="equipment"/>
+ <subsprite sheetIndex="22" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SANDAL" color="equipment"/>
+ <subsprite sheetIndex="23" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SHOES" color="equipment"/>
+ <subsprite sheetIndex="24" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS_LOW" color="equipment"/>
+ <subsprite sheetIndex="45" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS" color="equipment"/>
+ <subsprite sheetIndex="82" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
+ <subsprite sheetIndex="83" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
+ <subsprite sheetIndex="84" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
+ <subsprite sheetIndex="65" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
+ <subsprite sheetIndex="86" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
+ <subsprite sheetIndex="87" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
+ <subsprite sheetIndex="88" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
+ <subsprite sheetIndex="120" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="121" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
+ <subsprite sheetIndex="122" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
+ <subsprite sheetIndex="123" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="160" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
+ <subsprite sheetIndex="161" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
+ <subsprite sheetIndex="124" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
+ <subsprite sheetIndex="125" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
+ <subsprite sheetIndex="126" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
+ <subsprite sheetIndex="127" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
+ <subsprite sheetIndex="128" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="129" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
+ <subsprite sheetIndex="162" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
+ <subsprite sheetIndex="130" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
+ <subsprite sheetIndex="131" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <!--hair goes here - on top of clothes but below hats-->
+ <subsprite sheetIndex="3" zoom="2" color="bodypart" bodypart="hair" />
+
+ <!--subsprite sheetIndex="100" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_HEAD" color="equipment"/-->
+ <!--subsprite sheetIndex="101" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_FACE" color="equipment"/-->
+ <subsprite sheetIndex="182" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
+ <subsprite sheetIndex="183" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
+ <subsprite sheetIndex="184" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
+ <!--subsprite sheetIndex="107" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
+ <subsprite sheetIndex="186" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
+ <subsprite sheetIndex="185" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
+
+ <subsprite sheetIndex="200" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_WHIP" color="equipment"/>
+ <subsprite sheetIndex="201" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_BATTLE" color="equipment"/>
+ <subsprite sheetIndex="202" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HAMMER_WAR" color="equipment"/>
+ <subsprite sheetIndex="203" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR" color="equipment"/>
+ <subsprite sheetIndex="205" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MACE" color="equipment"/>
+ <subsprite sheetIndex="206" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_CROSSBOW" color="equipment"/>
+ <subsprite sheetIndex="207" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PICK" color="equipment"/>
+ <subsprite sheetIndex="208" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BOW" color="equipment"/>
+ <subsprite sheetIndex="209" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_BLOWGUN" color="equipment"/>
+ <subsprite sheetIndex="204" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="210" offsety="-16" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_PIKE" color="equipment"/>
+ <subsprite sheetIndex="211" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_HALBERD" color="equipment"/>
+ <subsprite sheetIndex="220" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_2H" color="equipment"/>
+ <subsprite sheetIndex="221" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_LONG" color="equipment"/>
+ <subsprite sheetIndex="222" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MAUL" color="equipment"/>
+ <subsprite sheetIndex="223" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_GREAT" color="equipment"/>
+ <subsprite sheetIndex="224" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_DAGGER_LARGE" color="equipment"/>
+ <subsprite sheetIndex="225" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCOURGE" color="equipment"/>
+ <subsprite sheetIndex="226" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_FLAIL" color="equipment"/>
+ <subsprite sheetIndex="227" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_MORNINGSTAR" color="equipment"/>
+ <subsprite sheetIndex="228" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SCIMITAR" color="equipment"/>
+ <subsprite sheetIndex="229" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_AXE_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="230" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SWORD_SHORT_TRAINING" color="equipment"/>
+ <subsprite sheetIndex="231" zoom="2" equipment_class="WEAPON" equipment_name="ITEM_WEAPON_SPEAR_TRAINING" color="equipment"/>
+
+ <subsprite sheetIndex="163" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_BUCKLER" color="equipment"/>
+ <subsprite sheetIndex="164" zoom="2" equipment_class="SHIELD" equipment_name="ITEM_SHIELD_SHIELD" color="equipment"/>
+
+ <subsprite sheetIndex="4" zoom="2" />
+ </variant>
+
+ <variant special="Normal" sex="M" file="dwarfm.png" >
+ <!--rear pieces for shadowing between legs-->
+ <subsprite sheetIndex="148" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="151" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <subsprite sheetIndex="1" zoom="2" color="bodypart" bodypart="skin" />
+
+ <!--all the body clothes-->
+ <subsprite sheetIndex="60" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
+ <subsprite sheetIndex="61" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LEGGINGS" color="equipment"/>
+ <subsprite sheetIndex="20" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SOCKS" color="equipment"/>
+ <subsprite sheetIndex="21" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_CHAUSSE" color="equipment"/>
+ <subsprite sheetIndex="22" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SANDAL" color="equipment"/>
+ <subsprite sheetIndex="23" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SHOES" color="equipment"/>
+ <subsprite sheetIndex="24" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS_LOW" color="equipment"/>
+ <subsprite sheetIndex="25" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS" color="equipment"/>
+ <subsprite sheetIndex="62" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
+ <subsprite sheetIndex="63" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
+ <subsprite sheetIndex="64" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
+ <subsprite sheetIndex="65" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
+ <subsprite sheetIndex="66" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
+ <subsprite sheetIndex="67" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
+ <subsprite sheetIndex="68" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
+ <subsprite sheetIndex="100" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="101" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
+ <subsprite sheetIndex="102" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
+ <subsprite sheetIndex="103" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="140" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
+ <subsprite sheetIndex="141" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
+ <subsprite sheetIndex="104" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
+ <subsprite sheetIndex="105" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
+ <subsprite sheetIndex="106" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
+ <subsprite sheetIndex="107" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
+ <subsprite sheetIndex="108" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="109" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
+ <subsprite sheetIndex="142" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
+ <subsprite sheetIndex="110" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
+ <subsprite sheetIndex="111" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <!--beard goes here - on top of clothes but below hats-->
+ <subsprite sheetIndex="3" zoom="2" color="bodypart" bodypart="hair" />
+
+ <!--subsprite sheetIndex="100" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_HEAD" color="equipment"/-->
+ <!--subsprite sheetIndex="101" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_FACE" color="equipment"/-->
+ <subsprite sheetIndex="182" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
+ <subsprite sheetIndex="183" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
+ <subsprite sheetIndex="184" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
+ <!--subsprite sheetIndex="107" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
+ <subsprite sheetIndex="186" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
+ <subsprite sheetIndex="185" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
+
+ <subsprite sheetIndex="4" zoom="2" />
+ </variant>
+
+ <variant special="Normal" sex="F" file="dwarff.png" >
+ <!--rear pieces for shadowing between legs-->
+ <subsprite sheetIndex="148" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="151" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <subsprite sheetIndex="1" zoom="2" color="bodypart" bodypart="skin" />
+
+ <!--all the body clothes-->
+ <subsprite sheetIndex="60" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
+ <subsprite sheetIndex="61" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LEGGINGS" color="equipment"/>
+ <subsprite sheetIndex="20" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SOCKS" color="equipment"/>
+ <subsprite sheetIndex="21" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_CHAUSSE" color="equipment"/>
+ <subsprite sheetIndex="22" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SANDAL" color="equipment"/>
+ <subsprite sheetIndex="23" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_SHOES" color="equipment"/>
+ <subsprite sheetIndex="24" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS_LOW" color="equipment"/>
+ <subsprite sheetIndex="25" zoom="2" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS" color="equipment"/>
+ <subsprite sheetIndex="62" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
+ <subsprite sheetIndex="63" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
+ <subsprite sheetIndex="64" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
+ <subsprite sheetIndex="65" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
+ <subsprite sheetIndex="66" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
+ <subsprite sheetIndex="67" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
+ <subsprite sheetIndex="68" zoom="2" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
+ <subsprite sheetIndex="100" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="101" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
+ <subsprite sheetIndex="102" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
+ <subsprite sheetIndex="103" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="140" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
+ <subsprite sheetIndex="141" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
+ <subsprite sheetIndex="104" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
+ <subsprite sheetIndex="105" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
+ <subsprite sheetIndex="106" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
+ <subsprite sheetIndex="107" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
+ <subsprite sheetIndex="108" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="109" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
+ <subsprite sheetIndex="142" zoom="2" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
+ <subsprite sheetIndex="110" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
+ <subsprite sheetIndex="111" zoom="2" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <!--hair goes here - on top of clothes but below hats-->
+ <subsprite sheetIndex="3" zoom="2" color="bodypart" bodypart="hair" />
+
+ <!--subsprite sheetIndex="100" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_HEAD" color="equipment"/-->
+ <!--subsprite sheetIndex="101" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_FACE" color="equipment"/-->
+ <subsprite sheetIndex="182" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
+ <subsprite sheetIndex="183" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
+ <subsprite sheetIndex="184" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
+ <!--subsprite sheetIndex="107" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
+ <subsprite sheetIndex="186" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
+ <subsprite sheetIndex="185" zoom="2" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
+
+ <subsprite sheetIndex="4" zoom="2" />
+ </variant>
+
+</creature>
+</creatures> \ No newline at end of file
diff --git a/resources/creatures/large_128/dwarff.png b/resources/creatures/large_128/dwarff.png
new file mode 100644
index 0000000..e18fad1
--- /dev/null
+++ b/resources/creatures/large_128/dwarff.png
Binary files differ
diff --git a/resources/creatures/large_128/dwarfm.png b/resources/creatures/large_128/dwarfm.png
new file mode 100644
index 0000000..a1553ed
--- /dev/null
+++ b/resources/creatures/large_128/dwarfm.png
Binary files differ
diff --git a/resources/creatures/large_128/index.txt b/resources/creatures/large_128/index.txt
new file mode 100644
index 0000000..d57f3e6
--- /dev/null
+++ b/resources/creatures/large_128/index.txt
@@ -0,0 +1,7 @@
+jabber.xml
+crundle.xml
+
+wild.xml
+domestic.xml
+
+dwarf.xml \ No newline at end of file
diff --git a/resources/creatures/large_128/jabber.png b/resources/creatures/large_128/jabber.png
new file mode 100644
index 0000000..9e1ab9a
--- /dev/null
+++ b/resources/creatures/large_128/jabber.png
Binary files differ
diff --git a/resources/creatures/large_128/jabber.xml b/resources/creatures/large_128/jabber.xml
new file mode 100644
index 0000000..1cc7cc6
--- /dev/null
+++ b/resources/creatures/large_128/jabber.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" ?>
+<creatures>
+ <creature gameID="JABBERER" file="jabber.png" >
+
+ <variant special="Normal" prof="CHILD" sheetIndex="40" zoom="2" color="bodypart" bodypart="skin" >
+ <subsprite sheetIndex="42" zoom="2" color="xml" red="200" green="180" blue="50" />
+ <subsprite sheetIndex="43" zoom="2" color="bodypart" bodypart="feathers" />
+ <subsprite sheetIndex="44" zoom="2" />
+ </variant>
+
+ <variant special="Normal" sheetIndex="20" zoom="2" color="bodypart" bodypart="skin" >
+ <subsprite sheetIndex="0" zoom="2" color="bodypart" bodypart="skin" offsety="-32"/>
+ <subsprite sheetIndex="1" zoom="2" color="xml" red="240" green="120" blue="120" offsety="-32"/>
+ <subsprite sheetIndex="2" zoom="2" color="xml" red="250" green="200" blue="60" offsety="-32"/>
+ <subsprite sheetIndex="23" zoom="2" color="bodypart" bodypart="feathers" />
+ <subsprite sheetIndex="3" zoom="2" color="bodypart" bodypart="feathers" offsety="-32"/>
+ <subsprite sheetIndex="24" zoom="2" />
+ <subsprite sheetIndex="4" zoom="2" offsety="-32"/>
+ </variant>
+
+ </creature>
+
+</creatures> \ No newline at end of file
diff --git a/resources/creatures/large_128/wild.png b/resources/creatures/large_128/wild.png
new file mode 100644
index 0000000..2bc4cc1
--- /dev/null
+++ b/resources/creatures/large_128/wild.png
Binary files differ
diff --git a/resources/creatures/large_128/wild.xml b/resources/creatures/large_128/wild.xml
new file mode 100644
index 0000000..224204b
--- /dev/null
+++ b/resources/creatures/large_128/wild.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" ?>
+<creatures>
+
+ <creature gameID="GOAT_MOUNTAIN" file="wild.png" >
+
+ <variant special="Normal" sheetIndex="0" zoom="2" color="bodypart" bodypart="hair" >
+ <subsprite sheetIndex="1" zoom="2" />
+ </variant>
+
+ </creature>
+
+
+ <creature gameID="GRAY_LANGUR" file="wild.png" >
+
+ <variant special="Normal" sheetIndex="20" zoom="2" color="bodypart" bodypart="skin" >
+ <subsprite sheetIndex="21" zoom="2" color="bodypart" bodypart="hair" />
+ <subsprite sheetIndex="22" zoom="2" />
+ </variant>
+
+ </creature>
+
+</creatures> \ No newline at end of file
diff --git a/resources/creatures/large_256/Thumbs.db b/resources/creatures/large_256/Thumbs.db
deleted file mode 100644
index dce21fc..0000000
--- a/resources/creatures/large_256/Thumbs.db
+++ /dev/null
Binary files differ
diff --git a/resources/creatures/large_256/crundle.png b/resources/creatures/large_256/crundle.png
deleted file mode 100644
index 7c77939..0000000
--- a/resources/creatures/large_256/crundle.png
+++ /dev/null
Binary files differ
diff --git a/resources/creatures/large_256/crundle.xml b/resources/creatures/large_256/crundle.xml
deleted file mode 100644
index 7e67e0d..0000000
--- a/resources/creatures/large_256/crundle.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" ?>
-<creatures>
- <creature gameID="CRUNDLE" file="crundle.png" >
-
- <variant special="Normal" sex="F" sheetIndex="0" zoom="3" color="bodypart" bodypart="scales" >
- <subsprite sheetIndex="1" zoom="3" />
- </variant>
-
- <variant special="Normal" sex="M" sheetIndex="0" zoom="3" color="bodypart" bodypart="scales" >
- <subsprite sheetIndex="21" zoom="3" />
- </variant>
-
- </creature>
-
- <creature gameID="IMP_FIRE" file="crundle.png" >
-
- <variant special="Normal" sheetIndex="40" zoom="3" color="bodypart" bodypart="skin" >
- <subsprite sheetIndex="41" zoom="3" />
- </variant>
-
- </creature>
-
-</creatures> \ No newline at end of file
diff --git a/resources/creatures/large_256/dwarf.xml b/resources/creatures/large_256/dwarf.xml
deleted file mode 100644
index 5a97405..0000000
--- a/resources/creatures/large_256/dwarf.xml
+++ /dev/null
@@ -1,224 +0,0 @@
-<?xml version="1.0" ?>
-<creatures>
-<creature gameID="DWARF" >
-
- <variant special="Military" sex="M" file="dwarfm.png" >
-
- <!--rear pieces for shadowing between legs-->
- <subsprite sheetIndex="148" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
- <subsprite sheetIndex="151" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
-
- <subsprite sheetIndex="1" zoom="3" color="bodypart" bodypart="skin" />
-
- <!--all the body clothes-->
- <subsprite sheetIndex="80" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
- <subsprite sheetIndex="81" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_LEGGINGS" color="equipment"/>
- <subsprite sheetIndex="20" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_SOCKS" color="equipment"/>
- <subsprite sheetIndex="41" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_CHAUSSE" color="equipment"/>
- <subsprite sheetIndex="22" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_SANDAL" color="equipment"/>
- <subsprite sheetIndex="23" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_SHOES" color="equipment"/>
- <subsprite sheetIndex="24" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS_LOW" color="equipment"/>
- <subsprite sheetIndex="45" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS" color="equipment"/>
- <subsprite sheetIndex="82" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
- <subsprite sheetIndex="83" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
- <subsprite sheetIndex="84" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
- <subsprite sheetIndex="65" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
- <subsprite sheetIndex="86" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
- <subsprite sheetIndex="87" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
- <subsprite sheetIndex="88" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
- <subsprite sheetIndex="120" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
- <subsprite sheetIndex="121" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
- <subsprite sheetIndex="122" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
- <subsprite sheetIndex="123" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
- <subsprite sheetIndex="160" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
- <subsprite sheetIndex="161" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
- <subsprite sheetIndex="124" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
- <subsprite sheetIndex="125" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
- <subsprite sheetIndex="126" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
- <subsprite sheetIndex="127" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
- <subsprite sheetIndex="128" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
- <subsprite sheetIndex="129" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
- <subsprite sheetIndex="162" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
- <subsprite sheetIndex="130" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
- <subsprite sheetIndex="131" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
-
- <!--beard goes here - on top of clothes but below hats-->
- <subsprite sheetIndex="2" zoom="3" color="bodypart" bodypart="hair" />
-
- <!--subsprite sheetIndex="100" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_HEAD" color="equipment"/-->
- <!--subsprite sheetIndex="101" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_FACE" color="equipment"/-->
- <subsprite sheetIndex="182" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
- <subsprite sheetIndex="183" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
- <subsprite sheetIndex="184" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
- <!--subsprite sheetIndex="107" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
- <subsprite sheetIndex="186" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
- <subsprite sheetIndex="185" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
-
- <subsprite sheetIndex="3" zoom="3" />
- </variant>
-
- <variant special="Military" sex="F" file="dwarff.png" >
-
- <!--rear pieces for shadowing between legs-->
- <subsprite sheetIndex="148" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
- <subsprite sheetIndex="151" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
-
- <subsprite sheetIndex="1" zoom="3" color="bodypart" bodypart="skin" />
-
- <!--all the body clothes-->
- <subsprite sheetIndex="80" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
- <subsprite sheetIndex="81" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_LEGGINGS" color="equipment"/>
- <subsprite sheetIndex="20" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_SOCKS" color="equipment"/>
- <subsprite sheetIndex="41" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_CHAUSSE" color="equipment"/>
- <subsprite sheetIndex="22" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_SANDAL" color="equipment"/>
- <subsprite sheetIndex="23" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_SHOES" color="equipment"/>
- <subsprite sheetIndex="24" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS_LOW" color="equipment"/>
- <subsprite sheetIndex="45" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS" color="equipment"/>
- <subsprite sheetIndex="82" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
- <subsprite sheetIndex="83" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
- <subsprite sheetIndex="84" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
- <subsprite sheetIndex="65" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
- <subsprite sheetIndex="86" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
- <subsprite sheetIndex="87" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
- <subsprite sheetIndex="88" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
- <subsprite sheetIndex="120" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
- <subsprite sheetIndex="121" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
- <subsprite sheetIndex="122" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
- <subsprite sheetIndex="123" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
- <subsprite sheetIndex="160" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
- <subsprite sheetIndex="161" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
- <subsprite sheetIndex="124" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
- <subsprite sheetIndex="125" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
- <subsprite sheetIndex="126" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
- <subsprite sheetIndex="127" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
- <subsprite sheetIndex="128" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
- <subsprite sheetIndex="129" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
- <subsprite sheetIndex="162" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
- <subsprite sheetIndex="130" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
- <subsprite sheetIndex="131" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
-
- <!--hair goes here - on top of clothes but below hats-->
- <subsprite sheetIndex="2" zoom="3" color="bodypart" bodypart="hair" />
-
- <!--subsprite sheetIndex="100" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_HEAD" color="equipment"/-->
- <!--subsprite sheetIndex="101" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_FACE" color="equipment"/-->
- <subsprite sheetIndex="182" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
- <subsprite sheetIndex="183" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
- <subsprite sheetIndex="184" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
- <!--subsprite sheetIndex="107" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
- <subsprite sheetIndex="186" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
- <subsprite sheetIndex="185" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
-
- <subsprite sheetIndex="3" zoom="3" />
- </variant>
-
- <variant special="Normal" sex="M" file="dwarfm.png" >
- <!--rear pieces for shadowing between legs-->
- <subsprite sheetIndex="148" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
- <subsprite sheetIndex="151" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
-
- <subsprite sheetIndex="0" zoom="3" color="bodypart" bodypart="skin" />
-
- <!--all the body clothes-->
- <subsprite sheetIndex="60" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
- <subsprite sheetIndex="61" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_LEGGINGS" color="equipment"/>
- <subsprite sheetIndex="20" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_SOCKS" color="equipment"/>
- <subsprite sheetIndex="21" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_CHAUSSE" color="equipment"/>
- <subsprite sheetIndex="22" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_SANDAL" color="equipment"/>
- <subsprite sheetIndex="23" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_SHOES" color="equipment"/>
- <subsprite sheetIndex="24" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS_LOW" color="equipment"/>
- <subsprite sheetIndex="25" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS" color="equipment"/>
- <subsprite sheetIndex="62" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
- <subsprite sheetIndex="63" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
- <subsprite sheetIndex="64" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
- <subsprite sheetIndex="65" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
- <subsprite sheetIndex="66" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
- <subsprite sheetIndex="67" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
- <subsprite sheetIndex="68" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
- <subsprite sheetIndex="100" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
- <subsprite sheetIndex="101" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
- <subsprite sheetIndex="102" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
- <subsprite sheetIndex="103" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
- <subsprite sheetIndex="140" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
- <subsprite sheetIndex="141" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
- <subsprite sheetIndex="104" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
- <subsprite sheetIndex="105" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
- <subsprite sheetIndex="106" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
- <subsprite sheetIndex="107" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
- <subsprite sheetIndex="108" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
- <subsprite sheetIndex="109" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
- <subsprite sheetIndex="142" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
- <subsprite sheetIndex="110" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
- <subsprite sheetIndex="111" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
-
- <!--beard goes here - on top of clothes but below hats-->
- <subsprite sheetIndex="2" zoom="3" color="bodypart" bodypart="hair" />
-
- <!--subsprite sheetIndex="100" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_HEAD" color="equipment"/-->
- <!--subsprite sheetIndex="101" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_FACE" color="equipment"/-->
- <subsprite sheetIndex="182" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
- <subsprite sheetIndex="183" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
- <subsprite sheetIndex="184" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
- <!--subsprite sheetIndex="107" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
- <subsprite sheetIndex="186" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
- <subsprite sheetIndex="185" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
-
- <subsprite sheetIndex="3" zoom="3" />
- </variant>
-
- <variant special="Normal" sex="F" file="dwarff.png" >
- <!--rear pieces for shadowing between legs-->
- <subsprite sheetIndex="148" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
- <subsprite sheetIndex="151" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
-
- <subsprite sheetIndex="0" zoom="3" color="bodypart" bodypart="skin" />
-
- <!--all the body clothes-->
- <subsprite sheetIndex="60" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
- <subsprite sheetIndex="61" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_LEGGINGS" color="equipment"/>
- <subsprite sheetIndex="20" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_SOCKS" color="equipment"/>
- <subsprite sheetIndex="21" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_CHAUSSE" color="equipment"/>
- <subsprite sheetIndex="22" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_SANDAL" color="equipment"/>
- <subsprite sheetIndex="23" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_SHOES" color="equipment"/>
- <subsprite sheetIndex="24" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS_LOW" color="equipment"/>
- <subsprite sheetIndex="25" zoom="3" equipment_class="SHOES" equipment_name="ITEM_SHOES_BOOTS" color="equipment"/>
- <subsprite sheetIndex="62" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
- <subsprite sheetIndex="63" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
- <subsprite sheetIndex="64" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
- <subsprite sheetIndex="65" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
- <subsprite sheetIndex="66" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
- <subsprite sheetIndex="67" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
- <subsprite sheetIndex="68" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
- <subsprite sheetIndex="100" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
- <subsprite sheetIndex="101" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
- <subsprite sheetIndex="102" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
- <subsprite sheetIndex="103" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
- <subsprite sheetIndex="140" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
- <subsprite sheetIndex="141" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
- <subsprite sheetIndex="104" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
- <subsprite sheetIndex="105" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
- <subsprite sheetIndex="106" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
- <subsprite sheetIndex="107" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
- <subsprite sheetIndex="108" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
- <subsprite sheetIndex="109" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
- <subsprite sheetIndex="142" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
- <subsprite sheetIndex="110" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
- <subsprite sheetIndex="111" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
-
- <!--hair goes here - on top of clothes but below hats-->
- <subsprite sheetIndex="2" zoom="3" color="bodypart" bodypart="hair" />
-
- <!--subsprite sheetIndex="100" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_HEAD" color="equipment"/-->
- <!--subsprite sheetIndex="101" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_VEIL_FACE" color="equipment"/-->
- <subsprite sheetIndex="182" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
- <subsprite sheetIndex="183" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
- <subsprite sheetIndex="184" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
- <!--subsprite sheetIndex="107" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
- <subsprite sheetIndex="186" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
- <subsprite sheetIndex="185" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
-
- <subsprite sheetIndex="3" zoom="3" />
- </variant>
-
-</creature>
-</creatures> \ No newline at end of file
diff --git a/resources/creatures/large_256/dwarff.png b/resources/creatures/large_256/dwarff.png
deleted file mode 100644
index 1a856d9..0000000
--- a/resources/creatures/large_256/dwarff.png
+++ /dev/null
Binary files differ
diff --git a/resources/creatures/large_256/dwarfm.png b/resources/creatures/large_256/dwarfm.png
deleted file mode 100644
index 7fa586e..0000000
--- a/resources/creatures/large_256/dwarfm.png
+++ /dev/null
Binary files differ
diff --git a/resources/creatures/large_256/goat.png b/resources/creatures/large_256/goat.png
deleted file mode 100644
index 1b5023a..0000000
--- a/resources/creatures/large_256/goat.png
+++ /dev/null
Binary files differ
diff --git a/resources/creatures/large_256/goat.xml b/resources/creatures/large_256/goat.xml
deleted file mode 100644
index 7ab7659..0000000
--- a/resources/creatures/large_256/goat.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" ?>
-<creatures>
-
- <creature gameID="GOAT_MOUNTAIN" file="goat.png" >
-
- <variant special="Normal" prof="CHILD" sheetIndex="40" zoom="3" color="bodypart" bodypart="hair" >
- <subsprite sheetIndex="42" zoom="3" />
- </variant>
-
- <variant special="Normal" sheetIndex="60" zoom="3" color="bodypart" bodypart="hair" >
- <subsprite sheetIndex="62" zoom="3" color="xml" red="160" green="140" blue="130" />
- <subsprite sheetIndex="63" zoom="3" />
- </variant>
-
- </creature>
-
- <creature gameID="GOAT" file="goat.png" >
-
- <variant special="Normal" prof="CHILD" sheetIndex="40" zoom="3" color="bodypart" bodypart="hair" >
- <subsprite sheetIndex="42" zoom="3" />
- </variant>
-
- <variant special="Normal" sex="F" sheetIndex="0" zoom="3" color="bodypart" bodypart="hair" >
- <subsprite sheetIndex="1" zoom="3" color="bodypart" bodypart="beard" />
- <subsprite sheetIndex="2" zoom="3" color="xml" red="160" green="140" blue="130" />
- <subsprite sheetIndex="3" zoom="3" />
- </variant>
-
- <variant special="Normal" sex="M" sheetIndex="20" zoom="3" color="bodypart" bodypart="hair" >
- <subsprite sheetIndex="21" zoom="3" color="bodypart" bodypart="beard" />
- <subsprite sheetIndex="22" zoom="3" color="xml" red="160" green="140" blue="130" />
- <subsprite sheetIndex="3" zoom="3" />
- </variant>
-
- </creature>
-
-</creatures> \ No newline at end of file
diff --git a/resources/creatures/large_256/index.txt b/resources/creatures/large_256/index.txt
deleted file mode 100644
index 02c787d..0000000
--- a/resources/creatures/large_256/index.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-jabber.xml
-crundle.xml
-
-waterbuf.xml
-goat.xml
-sheep.xml
-
-dwarf.xml \ No newline at end of file
diff --git a/resources/creatures/large_256/jabber.png b/resources/creatures/large_256/jabber.png
deleted file mode 100644
index 1a8568f..0000000
--- a/resources/creatures/large_256/jabber.png
+++ /dev/null
Binary files differ
diff --git a/resources/creatures/large_256/jabber.xml b/resources/creatures/large_256/jabber.xml
deleted file mode 100644
index 25bea0d..0000000
--- a/resources/creatures/large_256/jabber.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" ?>
-<creatures>
- <creature gameID="JABBERER" file="jabber.png" >
-
- <variant special="Normal" prof="CHILD" sheetIndex="40" zoom="3" color="bodypart" bodypart="skin" >
- <subsprite sheetIndex="42" zoom="3" color="xml" red="200" green="180" blue="50" />
- <subsprite sheetIndex="43" zoom="3" color="bodypart" bodypart="feathers" />
- <subsprite sheetIndex="44" zoom="3" />
- </variant>
-
- <variant special="Normal" sheetIndex="20" zoom="3" color="bodypart" bodypart="skin" >
- <subsprite sheetIndex="0" zoom="3" color="bodypart" bodypart="skin" offsety="-32"/>
- <subsprite sheetIndex="1" zoom="3" color="xml" red="240" green="120" blue="120" offsety="-32"/>
- <subsprite sheetIndex="2" zoom="3" color="xml" red="250" green="200" blue="60" offsety="-32"/>
- <subsprite sheetIndex="23" zoom="3" color="bodypart" bodypart="feathers" />
- <subsprite sheetIndex="3" zoom="3" color="bodypart" bodypart="feathers" offsety="-32"/>
- <subsprite sheetIndex="24" zoom="3" />
- <subsprite sheetIndex="4" zoom="3" offsety="-32"/>
- </variant>
-
- </creature>
-
-</creatures> \ No newline at end of file
diff --git a/resources/creatures/large_256/sheep.png b/resources/creatures/large_256/sheep.png
deleted file mode 100644
index 37effe7..0000000
--- a/resources/creatures/large_256/sheep.png
+++ /dev/null
Binary files differ
diff --git a/resources/creatures/large_256/sheep.xml b/resources/creatures/large_256/sheep.xml
deleted file mode 100644
index 8eb13f6..0000000
--- a/resources/creatures/large_256/sheep.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" ?>
-<creatures>
-
- <creature gameID="SHEEP" file="sheep.png" >
-
- <variant special="Normal" prof="CHILD" sheetIndex="40" zoom="3" color="bodypart" bodypart="skin" >
- <subsprite sheetIndex="41" zoom="3" color="bodypart" bodypart="wool" />
- <subsprite sheetIndex="42" zoom="3" />
- <subsprite sheetIndex="43" zoom="3" color="xml" red="255" green="126" blue="0" />
- </variant>
-
- <variant special="Normal" sex="F" sheetIndex="0" zoom="3" color="bodypart" bodypart="skin" >
- <subsprite sheetIndex="1" zoom="3" color="bodypart" bodypart="wool" />
- <subsprite sheetIndex="2" zoom="3" />
- <subsprite sheetIndex="3" zoom="3" color="xml" red="255" green="126" blue="0" />
- </variant>
-
- <variant special="Normal" sex="M" sheetIndex="0" zoom="3" color="bodypart" bodypart="skin" >
- <subsprite sheetIndex="1" zoom="3" color="bodypart" bodypart="wool" />
- <subsprite sheetIndex="22" zoom="3" color="xml" red="160" green="140" blue="130" />
- <subsprite sheetIndex="3" zoom="3" color="xml" red="255" green="126" blue="0" />
- </variant>
-
- </creature>
-
-</creatures> \ No newline at end of file
diff --git a/resources/creatures/large_256/waterbuf.png b/resources/creatures/large_256/waterbuf.png
deleted file mode 100644
index bcbdff0..0000000
--- a/resources/creatures/large_256/waterbuf.png
+++ /dev/null
Binary files differ
diff --git a/resources/creatures/large_256/waterbuf.xml b/resources/creatures/large_256/waterbuf.xml
deleted file mode 100644
index ed66d31..0000000
--- a/resources/creatures/large_256/waterbuf.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" ?>
-<creatures>
- <creature gameID="WATER_BUFFALO" file="waterbuf.png" >
-
- <variant special="Normal" prof="CHILD" sheetIndex="40" zoom="3" color="bodypart" bodypart="skin" >
- <subsprite sheetIndex="41" zoom="3" color="bodypart" bodypart="hair" />
- <subsprite sheetIndex="42" zoom="3" />
- <subsprite sheetIndex="43" zoom="3" color="xml" red="180" green="160" blue="150" />
- </variant>
-
- <variant special="Normal" sex="F" sheetIndex="0" zoom="3" color="bodypart" bodypart="skin" >
- <subsprite sheetIndex="1" zoom="3" color="bodypart" bodypart="hair" />
- <subsprite sheetIndex="2" zoom="3" />
- <subsprite sheetIndex="3" zoom="3" color="xml" red="180" green="160" blue="150" />
- </variant>
-
- <variant special="Normal" sex="M" sheetIndex="0" zoom="3" color="bodypart" bodypart="skin" >
- <subsprite sheetIndex="1" zoom="3" color="bodypart" bodypart="hair" />
- <subsprite sheetIndex="2" zoom="3" />
- <subsprite sheetIndex="23" zoom="3" color="xml" red="180" green="160" blue="150" />
- </variant>
-
- </creature>
-
-</creatures> \ No newline at end of file
diff --git a/resources/objects.png b/resources/objects.png
index 3c812bc..7557899 100644
--- a/resources/objects.png
+++ b/resources/objects.png
Binary files differ
diff --git a/resources/terrain/Floors.xml b/resources/terrain/Floors.xml
index 04ae837..ed977a3 100644
--- a/resources/terrain/Floors.xml
+++ b/resources/terrain/Floors.xml
@@ -2,10 +2,10 @@
<floors file="floors.png">
<!-- watery -->
<floor sheetIndex="4" color = "material">
- <!-- add some mud on top-->
- <subsprite sheetIndex="18"/>
<!-- pool -->
<terrain value="2" />
+ <!-- below pool ramp -->
+ <terrain value="3" />
<!-- waterfall -->
<terrain value="89" />
<!-- river src -->
@@ -19,6 +19,15 @@
<terrain value="370" />
<terrain value="371" />
<terrain value="372" />
+ <!-- below river ramp -->
+ <terrain value="469" />
+ <terrain value="470" />
+ <terrain value="471" />
+ <terrain value="472" />
+ <terrain value="473" />
+ <terrain value="474" />
+ <terrain value="475" />
+ <terrain value="476" />
<!-- stream -->
<terrain value="373" />
<terrain value="374" />
diff --git a/resources/terrain/Walls.xml b/resources/terrain/Walls.xml
index f3cac3d..c8a53a2 100644
--- a/resources/terrain/Walls.xml
+++ b/resources/terrain/Walls.xml
@@ -30,9 +30,20 @@
<terrain value="234" />
<subsprite sheetIndex="9" file="ramps.png" />
</block>
- <block sheetIndex="8" file="ramps.png" color = "material">
+ <block sheetIndex="8" file="ramps.png" color = "material">
<!-- soil -->
<terrain value="241" />
+ <!-- murky pool -->
+ <terrain value="3" />
+ <!-- river -->
+ <terrain value="469" />
+ <terrain value="470" />
+ <terrain value="471" />
+ <terrain value="472" />
+ <terrain value="473" />
+ <terrain value="474" />
+ <terrain value="475" />
+ <terrain value="476" />
</block>
<!-- stone -->