summaryrefslogtreecommitdiff
path: root/src/graphic
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2005-01-02 15:23:31 +0000
committerBjørn Lindeijer <bjorn@lindeijer.nl>2005-01-02 15:23:31 +0000
commit40b4ecacd44bd3040d9600d6304422bdd7e2e4c4 (patch)
tree4df4181bd7f0bab6187f1f173cb94cd962eda912 /src/graphic
parente25b9848449f109487fdbab53f4e99c28b8d3214 (diff)
downloadmana-client-40b4ecacd44bd3040d9600d6304422bdd7e2e4c4.tar.gz
mana-client-40b4ecacd44bd3040d9600d6304422bdd7e2e4c4.tar.bz2
mana-client-40b4ecacd44bd3040d9600d6304422bdd7e2e4c4.tar.xz
mana-client-40b4ecacd44bd3040d9600d6304422bdd7e2e4c4.zip
Got rid of monsterset.dat. Oh and the monsters have a more realistic size now. ;)
Diffstat (limited to 'src/graphic')
-rw-r--r--src/graphic/graphic.cpp5
-rw-r--r--src/graphic/image.cpp21
-rw-r--r--src/graphic/image.h5
3 files changed, 29 insertions, 2 deletions
diff --git a/src/graphic/graphic.cpp b/src/graphic/graphic.cpp
index e05842d6..40a00aa4 100644
--- a/src/graphic/graphic.cpp
+++ b/src/graphic/graphic.cpp
@@ -204,10 +204,13 @@ GraphicEngine::GraphicEngine() {
emotionset = new Spriteset("./data/graphic/emotionset.dat");
hairset = new Spriteset("./data/graphic/hairset.dat");
- monsterset = new Spriteset("./data/graphic/monsterset.dat");
npcset = new Spriteset("./data/graphic/npcset.dat");
playerset = new Spriteset("./data/graphic/playerset.dat");
tileset = new Spriteset("./data/graphic/tileset.dat");
+
+ BITMAP *monsterbitmap = load_bitmap("data/graphic/monsterset.bmp", NULL);
+ if (!monsterbitmap) error("Unable to load monsterset.bmp");
+ monsterset = new Spriteset(monsterbitmap, 60, 60);
}
GraphicEngine::~GraphicEngine() {
diff --git a/src/graphic/image.cpp b/src/graphic/image.cpp
index da9bb1d5..c5e28bfb 100644
--- a/src/graphic/image.cpp
+++ b/src/graphic/image.cpp
@@ -104,9 +104,28 @@ Spriteset::Spriteset(std::string filename)
}
}
+Spriteset::Spriteset(BITMAP *bmp, int width, int height)
+{
+ /*
+ * We're creating sub bitmaps here for plain convenience. With SDL this'll
+ * probably need to be done different.
+ */
+ int x, y;
+
+ for (y = 0; y + height <= bmp->h; y += height)
+ {
+ for (x = 0; x + width <= bmp->w; x += width)
+ {
+ spriteset.push_back(new VideoImage(
+ create_sub_bitmap(bmp, x, y, width, height),
+ 30, 40));
+ }
+ }
+}
+
Spriteset::~Spriteset()
{
- for (int i = 0; i < spriteset.size(); i++) {
+ for (unsigned int i = 0; i < spriteset.size(); i++) {
delete spriteset[i];
}
}
diff --git a/src/graphic/image.h b/src/graphic/image.h
index 2491b5ad..41d94a2d 100644
--- a/src/graphic/image.h
+++ b/src/graphic/image.h
@@ -127,6 +127,11 @@ class Spriteset {
*/
Spriteset(std::string filename);
+ /*
+ * Cuts the passed bitmap in a grid of sub bitmaps.
+ */
+ Spriteset::Spriteset(BITMAP *bmp, int width, int height);
+
/**
* Destructor
*/