SuperTuxKart
Loading...
Searching...
No Matches
property_animator.hpp
1// SuperTuxKart - a fun racing game with go-kart
2// Copyright (C) 2014-2015 SuperTuxKart Team
3//
4// This program is free software; you can redistribute it and/or
5// modify it under the terms of the GNU General Public License
6// as published by the Free Software Foundation; either version 3
7// of the License, or (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program; if not, write to the Free Software
16// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18#ifndef HEADER_PROPERTY_ANIMATOR_HPP
19#define HEADER_PROPERTY_ANIMATOR_HPP
20
21#include "utils/no_copy.hpp"
22#include "utils/ptr_vector.hpp"
23
24enum AnimatablePropery
25{
26 AP_LIGHT_ENERGY,
27 FOG_RANGE,
28 FOG_MAX,
29 FOG_COLOR
30};
31
33{
34 AnimatablePropery m_property;
35 int m_values_count;
36 double* m_values_from;
37 double* m_values_to;
38 double* m_new_values;
39 double m_total_time;
40 double m_remaining_time;
41 void* m_data;
42
43public:
44 AnimatedProperty(AnimatablePropery property, int values_count,
45 double* values_from, double* values_to,
46 double duration, void* data);
47
49 {
50 delete[] m_values_from;
51 delete[] m_values_to;
52 delete[] m_new_values;
53 }
54
55 bool update(double dt);
56};
57
58
60{
61 PtrVector<AnimatedProperty> m_properties;
62 static PropertyAnimator* s_instance;
63public:
64
65 static PropertyAnimator* get();
66
67 void add(AnimatedProperty* prop);
68 void update(double dt);
69 void clear();
70};
71
72
73#endif
Definition: property_animator.hpp:33
Utility class, you can inherit from this class to disallow the assignment operator and copy construct...
Definition: no_copy.hpp:26
Definition: property_animator.hpp:60
Definition: ptr_vector.hpp:44