]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/tileanimation.h
Show unknown node in debug screen (#12230)
[dragonfireclient.git] / src / tileanimation.h
index d5172ed50f292ae9b83053bcf5921a87c9a50852..7e3285ed7825ef59d6ea9384a323f10270cf058f 100644 (file)
@@ -17,33 +17,43 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
-#ifndef TILEANIMATION_HEADER
-#define TILEANIMATION_HEADER
+#pragma once
 
-#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
+                       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 serialize(std::ostream &os, u8 tiledef_version) const;
+       void deSerialize(std::istream &is, u8 tiledef_version);
+       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