summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-21 21:24:06 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-21 21:24:06 +0000
commit98c82601a4934fae9908b9a437c3f66a70871ba9 (patch)
tree49417680e1a432856a0bbb1f6c85df57d7c7cf58
parent41f78a696154902ae7baa22e116d39b6d321fc62 (diff)
downloadcrawl-ref-98c82601a4934fae9908b9a437c3f66a70871ba9.tar.gz
crawl-ref-98c82601a4934fae9908b9a437c3f66a70871ba9.zip
Fix some warnings for gcc 4.4 as per trentbuck's patch 2824633.
Add flavour messages to opening the gate to Zot. Really, we'd need something like that for winning the game, but what? git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10365 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/misc.cc49
-rw-r--r--crawl-ref/source/rltiles/tool/main.cc1
-rw-r--r--crawl-ref/source/rltiles/tool/tile.cc53
-rw-r--r--crawl-ref/source/rltiles/tool/tile.h11
-rw-r--r--crawl-ref/source/rltiles/tool/tile_page.cc3
-rw-r--r--crawl-ref/source/rltiles/tool/tile_page.h4
6 files changed, 77 insertions, 44 deletions
diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc
index aabdcea2a9..2f56f29fb1 100644
--- a/crawl-ref/source/misc.cc
+++ b/crawl-ref/source/misc.cc
@@ -69,6 +69,7 @@ REVISION("$Rev$");
#include "shopping.h"
#include "skills.h"
#include "skills2.h"
+#include "spells1.h"
#include "spells3.h"
#include "stash.h"
#include "state.h"
@@ -1479,13 +1480,16 @@ static int runes_in_pack(std::vector<int> &runes)
for (int i = 0; i < ENDOFPACK; i++)
{
- if (is_valid_item( you.inv[i] )
+ if (is_valid_item(you.inv[i])
&& you.inv[i].base_type == OBJ_MISCELLANY
&& you.inv[i].sub_type == MISC_RUNE_OF_ZOT)
{
num_runes += you.inv[i].quantity;
- for (int q = 1; runes.size() < 3 && q < you.inv[i].quantity; ++q)
- runes.push_back(you.inv[i].plus);
+ for (int q = 1;
+ runes.size() < 3 && q <= you.inv[i].quantity; ++q)
+ {
+ runes.push_back(i);
+ }
}
}
@@ -2133,17 +2137,46 @@ void down_stairs( int old_level, dungeon_feature_type force_stair,
switch (NUMBER_OF_RUNES_NEEDED)
{
case 1:
- mpr("You need a Rune to enter this place.");
+ mpr("You need a rune to enter this place.");
break;
default:
- mprf( "You need at least %d Runes to enter this place.",
- NUMBER_OF_RUNES_NEEDED );
+ mprf("You need at least %d runes to enter this place.",
+ NUMBER_OF_RUNES_NEEDED);
}
return;
}
- // TODO: This needs a better message!
- mpr("The gate opens wide!");
+
+ ASSERT(runes.size() >= 3);
+
+ mprf("You insert %s into the lock.",
+ you.inv[runes[0]].name(DESC_NOCAP_THE).c_str());
+#ifdef USE_TILE
+ tiles.add_overlay(you.pos(), tileidx_zap(GREEN));
+ update_screen();
+#else
+ you.flash_colour = LIGHTGREEN;
+ viewwindow(true, false);
+#endif
+ mpr("The lock glows an eerie green colour!");
+ more();
+
+ mprf("You insert %s into the lock.",
+ you.inv[runes[1]].name(DESC_NOCAP_THE).c_str());
+ big_cloud(CLOUD_PURP_SMOKE, KC_YOU, you.pos(), 20, 7 + random2(7));
+ viewwindow(true, false);
+ mpr("Heavy smoke blows from the lock!");
+ more();
+
+ mprf("You insert %s into the lock.",
+ you.inv[runes[2]].name(DESC_NOCAP_THE).c_str());
+
+ if (silenced(you.pos()))
+ mpr("The gate opens wide!");
+ else
+ mpr("With a loud hiss the gate opens wide!");
+ more();
+
you.opened_zot = true;
}
diff --git a/crawl-ref/source/rltiles/tool/main.cc b/crawl-ref/source/rltiles/tool/main.cc
index 8b4b60ce43..c94e2d17a2 100644
--- a/crawl-ref/source/rltiles/tool/main.cc
+++ b/crawl-ref/source/rltiles/tool/main.cc
@@ -1,3 +1,4 @@
+#include <stdio.h>
#include "tile_list_processor.h"
int main(int argc, char **argv)
diff --git a/crawl-ref/source/rltiles/tool/tile.cc b/crawl-ref/source/rltiles/tool/tile.cc
index 2b44e6e80a..69bfdeaef6 100644
--- a/crawl-ref/source/rltiles/tool/tile.cc
+++ b/crawl-ref/source/rltiles/tool/tile.cc
@@ -71,7 +71,7 @@ void tile::set_shrink(bool new_shrink)
m_shrink = new_shrink;
}
-void tile::resize(int new_width, int new_height)
+void tile::resize(unsigned int new_width, unsigned int new_height)
{
delete[] m_pixels;
m_width = new_width;
@@ -126,11 +126,12 @@ void tile::corpsify()
int separate_x = 3;
int separate_y = 4;
- // force all corpses into 32x32, even if bigger.
+ // Force all corpses into 32x32, even if bigger.
corpsify(32, 32, separate_x, separate_y, red_blood);
}
-static int corpse_cut_height(int x, int width, int height)
+static unsigned int _corpse_cut_height(unsigned int x, unsigned int width,
+ unsigned int height)
{
unsigned int cy = height / 2 + 2;
@@ -148,10 +149,11 @@ static int corpse_cut_height(int x, int width, int height)
// Adapted from rltiles' cp_monst_32 and then ruthlessly rewritten for clarity.
// rltiles can be found at http://rltiles.sourceforge.net
-void tile::corpsify(int corpse_width, int corpse_height,
- int cut_separate, int cut_height, const tile_colour &wound)
+void tile::corpsify(unsigned int corpse_width, unsigned int corpse_height,
+ unsigned int cut_separate, unsigned int cut_height,
+ const tile_colour &wound)
{
- int wound_height = std::min(2, cut_height);
+ unsigned int wound_height = std::min(2, (int) cut_height);
// Make a temporary backup
tile orig(*this);
@@ -182,11 +184,11 @@ void tile::corpsify(int corpse_width, int corpse_height,
// Amount to scale height by to fake a projection.
float height_proj = 2.0f;
- for (int y = 0; y < corpse_height; y++)
- {
- for (int x = 0; x < corpse_width; x++)
+ for (unsigned int y = 0; y < corpse_height; y++)
+ for (unsigned int x = 0; x < corpse_width; x++)
{
- int cy = corpse_cut_height(x, corpse_width, corpse_height);
+ unsigned int cy = _corpse_cut_height(x, corpse_width,
+ corpse_height);
if (y > cy - cut_height && y <= cy)
continue;
@@ -220,29 +222,26 @@ void tile::corpsify(int corpse_width, int corpse_height,
get_pixel(x,y) = mapped;
flags(x, y) = true;
}
- }
// Add some colour to the cut wound
- for (int x = 0; x < corpse_width; x++)
+ for (unsigned int x = 0; x < corpse_width; x++)
{
- unsigned int cy = corpse_cut_height(x, corpse_width, corpse_height);
- if (flags(x, cy-cut_height))
+ unsigned int cy = _corpse_cut_height(x, corpse_width, corpse_height);
+ if (flags(x, cy - cut_height))
{
unsigned int start = cy - cut_height + 1;
- for (int y = start; y < start + wound_height; y++)
- {
+ for (unsigned int y = start; y < start + wound_height; y++)
get_pixel(x, y) = wound;
- }
}
}
// Add diagonal shadowing...
- for (int y = 1; y < corpse_height; y++)
+ for (unsigned int y = 1; y < corpse_height; y++)
{
for (int x = 1; x < corpse_width; x++)
{
- if (!flags(x, y) && flags(x-1, y-1) &&
- get_pixel(x,y) == tile_colour::transparent)
+ if (!flags(x, y) && flags(x-1, y-1)
+ && get_pixel(x,y) == tile_colour::transparent)
{
get_pixel(x, y) = tile_colour::black;
}
@@ -250,24 +249,22 @@ void tile::corpsify(int corpse_width, int corpse_height,
}
// Extend shadow...
- for (int y = 3; y < corpse_height; y++)
- {
- for (int x = 3; x < corpse_width; x++)
+ for (unsigned int y = 3; y < corpse_height; y++)
+ for (unsigned int x = 3; x < corpse_width; x++)
{
// Extend shadow if there are two real pixels along
// the diagonal. Also, don't extend if the top or
// left pixel is not filled in. This prevents lone
// shadow pixels only connected via diagonals.
- if (get_pixel(x-1,y-1) == tile_colour::black &&
- flags(x-2, y-2) && flags(x-3, y-3) &&
- get_pixel(x-1, y) == tile_colour::black &&
- get_pixel(x, y-1) == tile_colour::black)
+ if (get_pixel(x-1,y-1) == tile_colour::black
+ && flags(x-2, y-2) && flags(x-3, y-3)
+ && get_pixel(x-1, y) == tile_colour::black
+ && get_pixel(x, y-1) == tile_colour::black)
{
get_pixel(x, y) = tile_colour::black;
}
}
- }
delete[] flags;
}
diff --git a/crawl-ref/source/rltiles/tool/tile.h b/crawl-ref/source/rltiles/tool/tile.h
index 782b7118da..26754992e0 100644
--- a/crawl-ref/source/rltiles/tool/tile.h
+++ b/crawl-ref/source/rltiles/tool/tile.h
@@ -17,12 +17,13 @@ public:
void unload();
bool valid() const;
- void resize(int new_width, int new_height);
+ void resize(unsigned int new_width, unsigned int new_height);
void add_rim(const tile_colour &rim);
void corpsify();
- void corpsify(int corpse_width, int corpse_height,
- int cut_separate, int cut_height, const tile_colour &wound);
+ void corpsify(unsigned int corpse_width, unsigned int corpse_height,
+ unsigned int cut_separate, unsigned int cut_height,
+ const tile_colour &wound);
void copy(const tile &img);
bool compose(const tile &img);
@@ -42,8 +43,8 @@ public:
tile_colour &get_pixel(unsigned int x, unsigned int y);
protected:
- int m_width;
- int m_height;
+ unsigned int m_width;
+ unsigned int m_height;
std::string m_filename;
std::string m_enumname;
std::string m_parts_ctg;
diff --git a/crawl-ref/source/rltiles/tool/tile_page.cc b/crawl-ref/source/rltiles/tool/tile_page.cc
index 22e475348e..aac5115f7f 100644
--- a/crawl-ref/source/rltiles/tool/tile_page.cc
+++ b/crawl-ref/source/rltiles/tool/tile_page.cc
@@ -1,5 +1,6 @@
#include "tile_page.h"
#include "tile_colour.h"
+#include <stdio.h>
#include <string.h>
#include "tile.h"
@@ -82,7 +83,7 @@ bool tile_page::place_images()
m_texcoords.push_back(ycur);
m_texcoords.push_back(xcur + tilew);
m_texcoords.push_back(ycur + tileh);
-
+
// Only add downwards, stretching out xmax as we go.
xmax = std::max(xmax, xcur + (int)tilew);
xcur = xmin;
diff --git a/crawl-ref/source/rltiles/tool/tile_page.h b/crawl-ref/source/rltiles/tool/tile_page.h
index 9f13651a1d..1fb6fb0511 100644
--- a/crawl-ref/source/rltiles/tool/tile_page.h
+++ b/crawl-ref/source/rltiles/tool/tile_page.h
@@ -18,8 +18,8 @@ public:
std::vector<int> m_texcoords;
std::vector<int> m_offsets;
protected:
- int m_width;
- int m_height;
+ unsigned int m_width;
+ unsigned int m_height;
};
#endif