#ifndef TILEANIMATION_HEADER
#define TILEANIMATION_HEADER
-#include "irrlichttypes_bloated.h"
#include <iostream>
+#include "irrlichttypes_bloated.h"
-enum TileAnimationType {
+enum TileAnimationType
+{
TAT_NONE = 0,
TAT_VERTICAL_FRAMES = 1,
TAT_SHEET_2D = 2,
};
-struct TileAnimationParams {
+struct TileAnimationParams
+{
enum TileAnimationType type;
- union {
+ union
+ {
// struct {
// } none;
- struct {
+ struct
+ {
int aspect_w; // width for aspect ratio
int aspect_h; // height for aspect ratio
float length; // seconds
} vertical_frames;
- struct {
- int frames_w; // number of frames left-to-right
- int frames_h; // number of frames top-to-bottom
+ struct
+ {
+ int frames_w; // number of frames left-to-right
+ int frames_h; // number of frames top-to-bottom
float frame_length; // seconds
} sheet_2d;
};
void serialize(std::ostream &os, u16 protocol_version) const;
void deSerialize(std::istream &is, u16 protocol_version);
- void determineParams(v2u32 texture_size, int *frame_count, int *frame_length_ms) const;
+ void determineParams(v2u32 texture_size, int *frame_count, int *frame_length_ms,
+ v2u32 *frame_size) const;
void getTextureModifer(std::ostream &os, v2u32 texture_size, int frame) const;
+ v2f getTextureCoords(v2u32 texture_size, int frame) const;
};
#endif