summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Mrázek2012-03-23 22:57:12 +0100
committerPetr Mrázek2012-03-23 22:57:12 +0100
commit7525c003089367823183eaf5093a90271a5eb9b4 (patch)
tree55c8ecaa6732630e3cfe0163844cafaea8425679
parent719dbc048a55ba1def2ce21e9cd29e33dbe833ce (diff)
parent5322279ee165c09a6a514e865a7527079d950199 (diff)
downloadstonesense-7525c003089367823183eaf5093a90271a5eb9b4.tar.gz
stonesense-7525c003089367823183eaf5093a90271a5eb9b4.tar.bz2
stonesense-7525c003089367823183eaf5093a90271a5eb9b4.tar.xz
Merge https://github.com/JapaMala/stonesense
Conflicts: MapLoading.cpp
-rw-r--r--ContentLoader.cpp15
-rw-r--r--Creatures.cpp16
-rw-r--r--GUI.cpp7
-rw-r--r--MapLoading.cpp1
-rw-r--r--UserInput.cpp4
-rw-r--r--commonTypes.h1
-rw-r--r--main.cpp2
-rw-r--r--resources/creatures/index.txt6
-rw-r--r--resources/creatures/large_256/Thumbs.dbbin0 -> 120832 bytes
-rw-r--r--resources/creatures/large_256/crundle.pngbin0 -> 16026 bytes
-rw-r--r--resources/creatures/large_256/crundle.xml23
-rw-r--r--resources/creatures/large_256/dwarf.pngbin0 -> 80496 bytes
-rw-r--r--resources/creatures/large_256/dwarf.xml54
-rw-r--r--resources/creatures/large_256/goat.pngbin0 -> 31803 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.pngbin0 -> 29431 bytes
-rw-r--r--resources/creatures/large_256/jabber.xml23
-rw-r--r--resources/creatures/large_256/sheep.pngbin0 -> 23925 bytes
-rw-r--r--resources/creatures/large_256/sheep.xml26
-rw-r--r--resources/creatures/large_256/waterbuf.pngbin0 -> 21295 bytes
-rw-r--r--resources/creatures/large_256/waterbuf.xml25
22 files changed, 236 insertions, 12 deletions
diff --git a/ContentLoader.cpp b/ContentLoader.cpp
index 8a2f344..8997f75 100644
--- a/ContentLoader.cpp
+++ b/ContentLoader.cpp
@@ -747,11 +747,12 @@ ALLEGRO_COLOR lookupMaterialColor(int matType,int matIndex)
{
//if it's more than the size of our colorconfigs, then just make a guess based off what DF tells us.
MaterialInfo mat;
- mat.decode(matType, matIndex);
- return al_map_rgb_f(
+ if(mat.decode(matType, matIndex))
+ return al_map_rgb_f(
contentLoader->Mats->color[mat.material->state_color[0]].red,
contentLoader->Mats->color[mat.material->state_color[0]].green,
contentLoader->Mats->color[mat.material->state_color[0]].blue);
+ else return al_map_rgb(255,255,255);
}
if (matIndex < 0)
{
@@ -760,22 +761,24 @@ ALLEGRO_COLOR lookupMaterialColor(int matType,int matIndex)
if (matIndex >= contentLoader->colorConfigs.at(matType).colorMaterials.size())
{
MaterialInfo mat;
- mat.decode(matType, matIndex);
- return al_map_rgb_f(
+ if(mat.decode(matType, matIndex))
+ return al_map_rgb_f(
contentLoader->Mats->color[mat.material->state_color[0]].red,
contentLoader->Mats->color[mat.material->state_color[0]].green,
contentLoader->Mats->color[mat.material->state_color[0]].blue);
+ else return al_map_rgb(255,255,255);
}
if (contentLoader->colorConfigs.at(matType).colorMaterials.at(matIndex).colorSet)
{
return contentLoader->colorConfigs.at(matType).colorMaterials.at(matIndex).color;
}
MaterialInfo mat;
- mat.decode(matType, matIndex);
- return al_map_rgb_f(
+ if(mat.decode(matType, matIndex))
+ return al_map_rgb_f(
contentLoader->Mats->color[mat.material->state_color[0]].red,
contentLoader->Mats->color[mat.material->state_color[0]].green,
contentLoader->Mats->color[mat.material->state_color[0]].blue);
+ else return al_map_rgb(255,255,255);
}
ShadeBy getShadeType(const char* Input)
diff --git a/Creatures.cpp b/Creatures.cpp
index 5e1781c..414e615 100644
--- a/Creatures.cpp
+++ b/Creatures.cpp
@@ -271,8 +271,9 @@ void DrawCreature(int drawx, int drawy, t_unit* creature, Block * b){
}
c_sprite * sprite = GetCreatureSpriteMap( creature );
- //if(creature->x == 151 && creature->y == 145)
- // int j = 10;
+
+ unsigned int offsety = config.show_creature_names ? al_get_font_line_height(font) : 0;
+
sprite->draw_world(creature->x,creature->y, creature->z, b);
if(statusIcons.size())
{
@@ -280,9 +281,18 @@ void DrawCreature(int drawx, int drawy, t_unit* creature, Block * b){
{
unsigned int sheetx = 16 * (statusIcons[i] % 7);
unsigned int sheety = 16 * (statusIcons[i] / 7);
- al_draw_bitmap_region(IMGStatusSheet, sheetx, sheety, 16, 16, drawx - (statusIcons.size()*8) + (16*i) + (SPRITEWIDTH/2), drawy - (16 + WALLHEIGHT + al_get_font_line_height(font)), 0);
+ al_draw_bitmap_region(IMGStatusSheet, sheetx, sheety, 16, 16, drawx - (statusIcons.size()*8) + (16*i) + (SPRITEWIDTH*config.scale/2), drawy - (16 + WALLHEIGHT*config.scale + offsety), 0);
}
}
+
+ offsety += config.show_creature_moods ? 16 : 0;
+
+ if(config.show_creature_jobs)
+ {
+ unsigned int sheetx = 16 * (creature->profession % 7);
+ unsigned int sheety = 16 * (creature->profession / 7);
+ al_draw_bitmap_region(IMGStatusSheet, 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 ){
diff --git a/GUI.cpp b/GUI.cpp
index 7ae3c1e..517d010 100644
--- a/GUI.cpp
+++ b/GUI.cpp
@@ -56,6 +56,7 @@ ALLEGRO_BITMAP* IMGObjectSheet;
ALLEGRO_BITMAP* IMGCreatureSheet;
ALLEGRO_BITMAP* IMGRampSheet;
ALLEGRO_BITMAP* IMGStatusSheet;
+ALLEGRO_BITMAP* IMGJobSheet;
ALLEGRO_BITMAP* IMGBloodSheet;
ALLEGRO_BITMAP* IMGEngFloorSheet;
ALLEGRO_BITMAP* IMGEngLeftSheet;
@@ -1035,6 +1036,7 @@ void loadGraphicsFromDisk()
if(!load_from_path(p, "creatures.png", IMGCreatureSheet)) return;
if(!load_from_path(p, "ramps.png", IMGRampSheet)) return;
if(!load_from_path(p, "SSStatusIcons.png", IMGStatusSheet)) 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;
@@ -1069,6 +1071,11 @@ void flushImgFiles()
al_destroy_bitmap(IMGStatusSheet);
IMGStatusSheet = 0;
}
+ if(IMGJobSheet)
+ {
+ al_destroy_bitmap(IMGJobSheet);
+ IMGJobSheet = 0;
+ }
if(IMGEngFloorSheet)
{
al_destroy_bitmap(IMGEngFloorSheet);
diff --git a/MapLoading.cpp b/MapLoading.cpp
index d37ca20..3d9cf9b 100644
--- a/MapLoading.cpp
+++ b/MapLoading.cpp
@@ -355,7 +355,6 @@ void ReadCellToSegment(DFHack::Core& DF, WorldSegment& segment, int CellX, int C
b->tileSpecial = tileSpecial(b->tileType);
b->tileMaterial = tileMaterial(b->tileType);
-
//142,136,15
//if(b->x == 142 && b->y == 136 && b->z == 15)
// int j = 10;
diff --git a/UserInput.cpp b/UserInput.cpp
index 45a83c6..7f5f735 100644
--- a/UserInput.cpp
+++ b/UserInput.cpp
@@ -232,6 +232,10 @@ void doKeys(int Key)
config.show_creature_moods = !config.show_creature_moods;
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;
diff --git a/commonTypes.h b/commonTypes.h
index dde0695..630be63 100644
--- a/commonTypes.h
+++ b/commonTypes.h
@@ -189,6 +189,7 @@ typedef struct
bool dayNightCycle;
bool show_creature_moods;
+ bool show_creature_jobs;
bool transparentScreenshots;
diff --git a/main.cpp b/main.cpp
index f2335cf..fd6d9e8 100644
--- a/main.cpp
+++ b/main.cpp
@@ -86,6 +86,7 @@ void LogError(const char* msg, ...){
FILE* fp = fopen( "Stonesense.log", "a");
if(fp)
vfprintf( fp, msg, arglist );
+// Core::printerr(msg, arglist);
va_end(arglist);
fclose(fp);
}
@@ -100,6 +101,7 @@ void LogVerbose(const char* msg, ...){
FILE* fp = fopen( "Stonesense.log", "a");
if(fp)
vfprintf( fp, msg, arglist );
+// Core::printerr(msg, arglist);
va_end(arglist);
fclose(fp);
}
diff --git a/resources/creatures/index.txt b/resources/creatures/index.txt
index c25a593..ded7e65 100644
--- a/resources/creatures/index.txt
+++ b/resources/creatures/index.txt
@@ -1,3 +1,5 @@
+large_256/index.txt
+
caravan_animals.xml
beefmo_large_ocean.xml
@@ -11,7 +13,7 @@ wild_animals.xml
gobbos.xml
beefmo_domestics.xml
Wildlife.xml
-clothed_Dwarves.xml
-#color_Dwarves.xml
+#clothed_Dwarves.xml
+color_Dwarves.xml
# Dwarves.xml
# Elves.xml \ No newline at end of file
diff --git a/resources/creatures/large_256/Thumbs.db b/resources/creatures/large_256/Thumbs.db
new file mode 100644
index 0000000..055f55e
--- /dev/null
+++ b/resources/creatures/large_256/Thumbs.db
Binary files differ
diff --git a/resources/creatures/large_256/crundle.png b/resources/creatures/large_256/crundle.png
new file mode 100644
index 0000000..7c77939
--- /dev/null
+++ b/resources/creatures/large_256/crundle.png
Binary files differ
diff --git a/resources/creatures/large_256/crundle.xml b/resources/creatures/large_256/crundle.xml
new file mode 100644
index 0000000..7e67e0d
--- /dev/null
+++ b/resources/creatures/large_256/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="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.png b/resources/creatures/large_256/dwarf.png
new file mode 100644
index 0000000..2594822
--- /dev/null
+++ b/resources/creatures/large_256/dwarf.png
Binary files differ
diff --git a/resources/creatures/large_256/dwarf.xml b/resources/creatures/large_256/dwarf.xml
new file mode 100644
index 0000000..b4354f1
--- /dev/null
+++ b/resources/creatures/large_256/dwarf.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" ?>
+<creatures>
+
+ <creature gameID="DWARF" file="dwarf.png" >
+
+ <variant special="Normal" sheetIndex="0" zoom="3" color="bodypart" bodypart="skin" >
+
+ <subsprite sheetIndex="40" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_THONG" color="equipment"/>
+ <subsprite sheetIndex="41" 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="42" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_BRAIES" color="equipment"/>
+ <subsprite sheetIndex="43" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_PANTS" color="equipment"/>
+ <subsprite sheetIndex="44" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_LOINCLOTH" color="equipment"/>
+ <subsprite sheetIndex="45" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_GREAVES" color="equipment"/>
+ <subsprite sheetIndex="46" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_SHORT" color="equipment"/>
+ <subsprite sheetIndex="47" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT" color="equipment"/>
+ <subsprite sheetIndex="48" zoom="3" equipment_class="PANTS" equipment_name="ITEM_PANTS_SKIRT_LONG" color="equipment"/>
+ <subsprite sheetIndex="60" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="61" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_VEST" color="equipment"/>
+ <subsprite sheetIndex="62" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_DRESS" color="equipment"/>
+ <subsprite sheetIndex="63" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_MAIL_SHIRT" color="equipment"/>
+ <subsprite sheetIndex="80" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GLOVES" color="equipment"/>
+ <subsprite sheetIndex="81" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_MITTENS" color="equipment"/>
+ <subsprite sheetIndex="64" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TUNIC" color="equipment"/>
+ <subsprite sheetIndex="65" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_TOGA" color="equipment"/>
+ <subsprite sheetIndex="66" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_LEATHER" color="equipment"/>
+ <subsprite sheetIndex="67" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_BREASTPLATE" color="equipment"/>
+ <subsprite sheetIndex="68" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CAPE" color="equipment"/>
+ <subsprite sheetIndex="69" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_COAT" color="equipment"/>
+ <subsprite sheetIndex="82" zoom="3" equipment_class="GLOVES" equipment_name="ITEM_GLOVES_GAUNTLETS" color="equipment"/>
+ <subsprite sheetIndex="70" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_ROBE" color="equipment"/>
+ <subsprite sheetIndex="71" zoom="3" equipment_class="ARMOR" equipment_name="ITEM_ARMOR_CLOAK" color="equipment"/>
+
+ <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="102" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_SCARF_HEAD" color="equipment"/>
+ <subsprite sheetIndex="103" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_CAP" color="equipment"/>
+ <subsprite sheetIndex="104" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_MASK" color="equipment"/>
+ <subsprite sheetIndex="105" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_HELM" color="equipment"/>
+ <subsprite sheetIndex="106" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_HOOD" color="equipment"/>
+ <!--subsprite sheetIndex="107" zoom="3" equipment_class="HELM" equipment_name="ITEM_HELM_TURBAN" color="equipment"/-->
+
+ <subsprite sheetIndex="3" zoom="3" />
+ </variant>
+
+ </creature>
+</creatures> \ No newline at end of file
diff --git a/resources/creatures/large_256/goat.png b/resources/creatures/large_256/goat.png
new file mode 100644
index 0000000..1b5023a
--- /dev/null
+++ b/resources/creatures/large_256/goat.png
Binary files differ
diff --git a/resources/creatures/large_256/goat.xml b/resources/creatures/large_256/goat.xml
new file mode 100644
index 0000000..7ab7659
--- /dev/null
+++ b/resources/creatures/large_256/goat.xml
@@ -0,0 +1,37 @@
+<?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
new file mode 100644
index 0000000..02c787d
--- /dev/null
+++ b/resources/creatures/large_256/index.txt
@@ -0,0 +1,8 @@
+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
new file mode 100644
index 0000000..1a8568f
--- /dev/null
+++ b/resources/creatures/large_256/jabber.png
Binary files differ
diff --git a/resources/creatures/large_256/jabber.xml b/resources/creatures/large_256/jabber.xml
new file mode 100644
index 0000000..25bea0d
--- /dev/null
+++ b/resources/creatures/large_256/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="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
new file mode 100644
index 0000000..37effe7
--- /dev/null
+++ b/resources/creatures/large_256/sheep.png
Binary files differ
diff --git a/resources/creatures/large_256/sheep.xml b/resources/creatures/large_256/sheep.xml
new file mode 100644
index 0000000..8eb13f6
--- /dev/null
+++ b/resources/creatures/large_256/sheep.xml
@@ -0,0 +1,26 @@
+<?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
new file mode 100644
index 0000000..bcbdff0
--- /dev/null
+++ b/resources/creatures/large_256/waterbuf.png
Binary files differ
diff --git a/resources/creatures/large_256/waterbuf.xml b/resources/creatures/large_256/waterbuf.xml
new file mode 100644
index 0000000..ed66d31
--- /dev/null
+++ b/resources/creatures/large_256/waterbuf.xml
@@ -0,0 +1,25 @@
+<?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