summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaldfir2012-04-16 19:13:02 -0700
committerCaldfir2012-04-16 19:13:02 -0700
commit4592f26db756cb26ec7cdda8a0597a7787afa58c (patch)
tree5efa51000ece4234f817e65195dfa1fcb732840f
parent39b9dab4247f3e089754ebda0c4d00de68f3bc80 (diff)
downloadstonesense-4592f26db756cb26ec7cdda8a0597a7787afa58c.tar.gz
stonesense-4592f26db756cb26ec7cdda8a0597a7787afa58c.tar.bz2
stonesense-4592f26db756cb26ec7cdda8a0597a7787afa58c.tar.xz
Fixed the glorious hot pink grass bug I created.
-rw-r--r--Block.cpp3
-rw-r--r--ContentLoader.cpp19
-rw-r--r--ContentLoader.h2
-rw-r--r--SpriteObjects.cpp3
4 files changed, 16 insertions, 11 deletions
diff --git a/Block.cpp b/Block.cpp
index 5b102c3..1abf4bc 100644
--- a/Block.cpp
+++ b/Block.cpp
@@ -616,8 +616,7 @@ void Block::DrawPixel(int drawx, int drawy)
(tileMaterial == tiletype_material::GRASS_DRY) ||
(tileMaterial == tiletype_material::GRASS_DEAD)))
{
- DFHack::t_matglossPair woodymat; woodymat.index = WOOD, woodymat.type = grassmat;
- temp = lookupMaterialColor(woodymat);
+ temp = lookupMaterialColor(WOOD, grassmat);
al_draw_pixel(drawx, drawy, al_map_rgba_f(temp.r,temp.g, temp.b, (float)grasslevel/100.0f));
}
}
diff --git a/ContentLoader.cpp b/ContentLoader.cpp
index a3f7c26..c597f0b 100644
--- a/ContentLoader.cpp
+++ b/ContentLoader.cpp
@@ -749,16 +749,21 @@ void ContentLoader::flushCreatureConfig()
ALLEGRO_COLOR lookupMaterialColor(DFHack::t_matglossPair matt)
{
- DFHack::t_matglossPair dyematt;
- dyematt.index = -1, dyematt.type = -1;
- return lookupMaterialColor(matt, dyematt);
+ return lookupMaterialColor((int) matt.type, (int) matt.index, -1, -1);
}
ALLEGRO_COLOR lookupMaterialColor(DFHack::t_matglossPair matt, DFHack::t_matglossPair dyematt)
-{
- int matType = (int) matt.type;
- int matIndex = (int) matt.index;
+{
+ 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)
{
//This should not normally happen, but if it does, we don't want crashes, so we'll return magic pink so show something's wrong.
@@ -785,7 +790,7 @@ ALLEGRO_COLOR lookupMaterialColor(DFHack::t_matglossPair matt, DFHack::t_matglos
MaterialInfo mat, dye;
if(mat.decode(matType, matIndex))
{
- if(dyematt.type>=0 && dyematt.index>=0 && dye.decode(dyematt.type, dyematt.index))
+ if(dyeType>=0 && dyeIndex>=0 && dye.decode(dyeType, dyeIndex))
return al_map_rgb_f(
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,
diff --git a/ContentLoader.h b/ContentLoader.h
index a1d0d9e..4bedeed 100644
--- a/ContentLoader.h
+++ b/ContentLoader.h
@@ -110,5 +110,7 @@ uint8_t lookupMaterialBright(int matType,int matIndex);
const char *lookupTreeName(int matIndex);
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/SpriteObjects.cpp b/SpriteObjects.cpp
index 3a30122..5b5ff5f 100644
--- a/SpriteObjects.cpp
+++ b/SpriteObjects.cpp
@@ -944,8 +944,7 @@ ALLEGRO_COLOR c_sprite::get_color(void* block)
case ShadeMat:
return lookupMaterialColor(b->material);
case ShadeGrass:
- DFHack::t_matglossPair woodymat; woodymat.index = WOOD, woodymat.type = b->grassmat;
- return lookupMaterialColor(woodymat);
+ return lookupMaterialColor(WOOD, b->grassmat);
case ShadeBuilding:
return lookupMaterialColor(b->building.info.material);
case ShadeLayer: