diff options
| author | Kris Parker | 2009-12-13 06:58:53 +0000 |
|---|---|---|
| committer | Kris Parker | 2009-12-13 06:58:53 +0000 |
| commit | 6fe5091fdfdf5a9a0c35b0c0f97c133b128ac5b2 (patch) | |
| tree | dcbe7b5f82c9b008ccc9f8ddb312ce5930ffc061 /CreatureConfiguration.cpp | |
| parent | 80ec44c9f1d062de569621874d396602b67095fe (diff) | |
| download | stonesense-6fe5091fdfdf5a9a0c35b0c0f97c133b128ac5b2.tar.gz stonesense-6fe5091fdfdf5a9a0c35b0c0f97c133b128ac5b2.tar.bz2 stonesense-6fe5091fdfdf5a9a0c35b0c0f97c133b128ac5b2.tar.xz | |
Configurable shadow sizes
Diffstat (limited to 'CreatureConfiguration.cpp')
| -rw-r--r-- | CreatureConfiguration.cpp | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/CreatureConfiguration.cpp b/CreatureConfiguration.cpp index a711791..213474d 100644 --- a/CreatureConfiguration.cpp +++ b/CreatureConfiguration.cpp @@ -8,13 +8,14 @@ #include "dfhack/library/tinyxml/tinyxml.h"
-CreatureConfiguration::CreatureConfiguration(int gameID, int professionID, const char* professionStr, enumCreatureSex sex, enumCreatureSpecialCases special, t_SpriteWithOffset &sprite)
+CreatureConfiguration::CreatureConfiguration(int gameID, int professionID, const char* professionStr, enumCreatureSex sex, enumCreatureSpecialCases special, t_SpriteWithOffset &sprite, int shadow)
{
memset(this, 0, sizeof(CreatureConfiguration) );
this->sprite = sprite;
this->gameID = gameID;
this->professionID = professionID;
this->sex = sex;
+ this->shadow = shadow;
if(professionStr){
int len = (int) strlen(professionStr);
@@ -75,6 +76,14 @@ bool addSingleCreatureConfig( TiXmlElement* elemCreature, vector<CreatureConfigu sprite.x=0;
sprite.y=0;
sprite.animFrames=ALL_FRAMES;
+ int baseShadow = DEFAULT_SHADOW;
+ const char* shadowStr = elemCreature->Attribute("shadow");
+ if (shadowStr != NULL && shadowStr[0] != 0)
+ {
+ baseShadow = atoi( shadowStr );
+ }
+ if (baseShadow < 0 || baseShadow > MAX_SHADOW)
+ baseShadow = DEFAULT_SHADOW;
const char* filename = elemCreature->Attribute("file");
if (filename != NULL && filename[0] != 0)
{
@@ -119,10 +128,19 @@ bool addSingleCreatureConfig( TiXmlElement* elemCreature, vector<CreatureConfigu sprite.animFrames = getAnimFrames(elemVariant->Attribute("frames"));
if (sprite.animFrames == 0)
sprite.animFrames = ALL_FRAMES;
-
+
+ int shadow = baseShadow;
+ const char* shadowStr = elemVariant->Attribute("shadow");
+ if (shadowStr != NULL && shadowStr[0] != 0)
+ {
+ shadow = atoi( shadowStr );
+ }
+ if (shadow < 0 || shadow > MAX_SHADOW)
+ shadow = baseShadow;
+
//create profession config
sprite.sheetIndex=atoi(sheetIndexStr);
- CreatureConfiguration cre( gameID, professionID, customStr , cresex, crespec, sprite );
+ CreatureConfiguration cre( gameID, professionID, customStr , cresex, crespec, sprite, shadow);
//add a copy to known creatures
knownCreatures->push_back( cre );
@@ -130,12 +148,13 @@ bool addSingleCreatureConfig( TiXmlElement* elemCreature, vector<CreatureConfigu }
//create default config
+ baseShadow;
sheetIndexStr = elemCreature->Attribute("sheetIndex");
sprite.animFrames = ALL_FRAMES;
if (sheetIndexStr)
{
sprite.sheetIndex = atoi( sheetIndexStr );
- CreatureConfiguration cre( gameID, INVALID_INDEX, NULL, eCreatureSex_NA, eCSC_Any, sprite );
+ CreatureConfiguration cre( gameID, INVALID_INDEX, NULL, eCreatureSex_NA, eCSC_Any, sprite, baseShadow);
//add a copy to known creatures
knownCreatures->push_back( cre );
}
|
