Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gauge.cpp
Go to the documentation of this file.
1 #include "gauge.h"
2 
3 Gauge::Gauge( const char *file, DIRECTION up ) : VSSprite( file )
4 {
5  dir = up;
6  float sx, sy;
7  VSSprite::GetSize( sx, sy );
8  SetSize( -sx, -sy );
9 }
10 
11 void Gauge::SetSize( float x, float y )
12 {
13  if (dir == GAUGE_UP)
14  y = -y;
15  else if (dir == GAUGE_LEFT)
16  x = -x;
17  VSSprite::SetSize( x, y );
18 }
19 
20 void Gauge::GetSize( float &x, float &y )
21 {
22  VSSprite::GetSize( x, y );
23  if (dir == GAUGE_UP)
24  y = -y;
25  else if (dir == GAUGE_LEFT)
26  x = -x;
27 }
28 
29 void Gauge::Draw( float percentage )
30 {
31  if (percentage < 0) percentage = 0;
32 
33  else if (percentage > 1)
34  percentage = 1;
35  float sx, sy, px, py;
36  VSSprite::GetSize( sx, sy );
37  VSSprite::GetPosition( px, py );
38  switch (dir)
39  {
40  case GAUGE_RIGHT:
41  case GAUGE_LEFT:
42  SetST( (1-percentage), 0 );
43  VSSprite::SetSize( sx*percentage, sy );
44  VSSprite::SetPosition( px+sx*(1-percentage)*.5, py );
45  break;
46  case GAUGE_DOWN:
47  case GAUGE_UP:
48  SetST( 0, (1-percentage) );
49  VSSprite::SetSize( sx, sy*percentage );
50  VSSprite::SetPosition( px, py+sy*(1-percentage)*.5 );
51  break;
52  case GAUGE_TIME:
53  VSSprite::SetTime( percentage );
54  break;
55  }
57  VSSprite::SetSize( sx, sy );
58  VSSprite::SetPosition( px, py );
59 }
60