diff options
Diffstat (limited to 'src/graphic')
-rw-r--r-- | src/graphic/image.cpp | 46 | ||||
-rw-r--r-- | src/graphic/image.h | 73 |
2 files changed, 9 insertions, 110 deletions
diff --git a/src/graphic/image.cpp b/src/graphic/image.cpp index 9d0d3cac..008c4017 100644 --- a/src/graphic/image.cpp +++ b/src/graphic/image.cpp @@ -24,37 +24,13 @@ #include "image.h" -// Image - -Image::Image(int offset_x, int offset_y) { - this->offset_x = offset_x; - this->offset_y = offset_y; -} - - -// RleImage - -RleImage::RleImage(RLE_SPRITE *src, int offset_x, int offset_y): - Image(offset_x, offset_y) -{ - this->src = src; -} - -RleImage::~RleImage() { - destroy_rle_sprite(src); -} - -void RleImage::draw(BITMAP *dest, int x, int y) { - draw_rle_sprite(dest, src, x + offset_x, y + offset_y); -} - - // VideoImage VideoImage::VideoImage(BITMAP *src, int offset_x, int offset_y): - Image(offset_x, offset_y) + src(src), + offset_x(offset_x), + offset_y(offset_y) { - this->src = src; } VideoImage::~VideoImage() { @@ -73,22 +49,6 @@ void VideoImage::draw(BITMAP *dst, int x, int y) { // Spriteset -Spriteset::Spriteset(std::string filename) -{ - DATAFILE *datafile = load_datafile(filename.c_str()); - if (!datafile)error("Unable to load graphic file: " + filename); - int i = 0; - while (datafile[i].type != DAT_END) { - Image *temp_image; - temp_image = new RleImage( - (RLE_SPRITE*)datafile[i].dat, - getProperty(&datafile[i], DAT_ID('X','C','R','P')), - getProperty(&datafile[i], DAT_ID('Y','C','R','P'))); - spriteset.push_back(temp_image); - i++; - } -} - Spriteset::Spriteset(BITMAP *bmp, int width, int height, int offx, int offy) { /* diff --git a/src/graphic/image.h b/src/graphic/image.h index 60e04eac..1bc43ef4 100644 --- a/src/graphic/image.h +++ b/src/graphic/image.h @@ -31,72 +31,17 @@ #include "../log.h" /** - * A class storing a single sprite in video memory if available, - * else as a refernece to a RLE_SPRITE in a datafile. - * The class stores the offsets needed to compensate the cropping - * operated by the grabber utility. + * A video image stored in memory. */ -class Image { - public: - /** - * Creates an Image - * @param offset_x is the x offset from where to start drawing - * @param offset_y is the y offset from where to start drawing - */ - Image(int offset_x, int offset_y); - - /** - * Virtual function to draw a sprite - * @param dest is the destination bitmap on which to draw the sprite - * @param x is the horizontal position - * @param y is the vertical position - */ - virtual void draw(BITMAP *dest, int x, int y) = 0; - - protected: - // From where to start drawing - int offset_x, offset_y; -}; - -/** - * A RLE sprite - */ -class RleImage : public Image { - public: - /** - * Creates a RleSprite - * @param src is a reference to a RLE_SPRITE in a datafile - * @param offset_x is the x offset from where to start drawing - * @param offset_y is the y offset from where to start drawing - */ - RleImage(RLE_SPRITE *src, int offset_x, int offset_y); - - /** - * Destructor - */ - virtual ~RleImage(); - - /** - * Draws a sprite - */ - void draw(BITMAP *dest, int x, int y); - +class VideoImage { private: - // Reference to RLE_SPRITE - RLE_SPRITE *src; -}; - -/** - * An image stored in video memory - */ -class VideoImage : public Image { - private: - // Reference to bitmap stored in video memory BITMAP *src; + int offset_x, offset_y; + public: /** * Creates a VideoImage - * @param src is a reference to a BITMAP in video memory + * @param src is a reference to a BITMAP * @param offset_x is the x offset from where to start drawing * @param offset_y is the y offset from where to start drawing */ @@ -119,13 +64,7 @@ class VideoImage : public Image { class Spriteset { public: // Vector storing the whole spriteset. - std::vector<Image*> spriteset; - - /** - * Load a datafile containing the spriteset - * @param filename is the path of the datafile - */ - Spriteset(std::string filename); + std::vector<VideoImage*> spriteset; /* * Cuts the passed bitmap in a grid of sub bitmaps. |