1 // Copyright 2008 Brian Caine
3 // This file is part of Potpourri.
5 // Potpourri is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
10 // Potpourri is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTIBILITY of FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with Potpourri. If not, see <http://www.gnu.org/licenses/>.
22 #ifndef __SDLANIMATION_H
23 #define __SDLANIMATION_H
27 #include "../../include/plugins/graphics/Graphics.h"
28 #include "../../include/plugins/input/InputManager.h"
29 #include "../../include/core/Game.h"
30 #include "../SDLPlugin/SDLSurface.h"
34 const std::string ANIMATION_LOOP_EVENT
= "SDLAnimation_Loop";
36 struct SDLAnimationFrame
42 struct SDLAnimationData
44 std::vector
<SDLAnimationFrame
> images
;
45 std::vector
<Pair
<int> > frames
; // Pair.x = frame; .y = duration
47 std::vector
<SDL_Surface
*> root_surfaces
;
48 InputManager
* input_manager
;
52 class SDLAnimation
: public Drawable
, public ScriptedClass
55 SDLAnimation(SDLAnimationData ndata
);
58 void draw(Target
* target
, GraphicsRect
* destrect
,
59 GraphicsPair
* srcrect
, float angle
);
60 ScriptedClass
* getScriptObject();
65 func
getConstructor();
67 std::string
getClassName();
68 std::vector
<std::string
> getClassFunctions();
70 Variant
* callFunction(std::string funcname
,
71 std::vector
<Variant
*> params
, ScriptVM
* script_vm
);
74 SDLAnimationData data
;