src/spriteloader/spriteloader.hpp
author celestar
Tue, 19 Jun 2007 07:21:01 +0000
branchgamebalance
changeset 9913 e79cd19772dd
parent 9912 1ac8aac92385
child 8066 7acd480e05c9
permissions -rw-r--r--
(svn r10213) [gamebalance] -Sync: r10100:10200 from trunk
9912
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
     1
/* $Id$ */
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
     2
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
     3
/** @file spriteloader.hpp */
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
     4
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
     5
#ifndef SPRITELOADER_HPP
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
     6
#define SPRITELOADER_HPP
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
     7
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
     8
class SpriteLoader {
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
     9
public:
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    10
	struct CommonPixel {
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    11
		uint8 r;  ///< Red-channel
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    12
		uint8 g;  ///< Green-channel
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    13
		uint8 b;  ///< Blue-channel
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    14
		uint8 a;  ///< Alpha-channel
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    15
		uint8 m;  ///< Remap-channel
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    16
	};
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    17
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    18
	struct Sprite {
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    19
		uint16 height;                   ///< Height of the sprite
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    20
		uint16 width;                    ///< Width of the sprite
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    21
		int16 x_offs;                    ///< The x-offset of where the sprite will be drawn
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    22
		int16 y_offs;                    ///< The y-offset of where the sprite will be drawn
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    23
		SpriteLoader::CommonPixel *data; ///< The sprite itself
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    24
	};
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    25
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    26
	/**
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    27
	 * Load a sprite from the disk and return a sprite struct which is the same for all loaders.
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    28
	 */
9913
e79cd19772dd (svn r10213) [gamebalance] -Sync: r10100:10200 from trunk
celestar
parents: 9912
diff changeset
    29
	virtual bool LoadSprite(SpriteLoader::Sprite *sprite, const char *filename, uint32 file_pos) = 0;
9912
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    30
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    31
	virtual ~SpriteLoader() { }
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    32
};
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    33
1ac8aac92385 (svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
diff changeset
    34
#endif /* SPRITELOADER_HPP */