summaryrefslogtreecommitdiffstats
path: root/MatchBloxEngine/MatchBloxEngine/C_Block.cpp
blob: 46d76219f7a91aebaf0d065cc4d830d80de2343c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <GL\glut.h>
#include "C_Block.h"

#define FADE_DURATION 500

C_Block::C_Block(char* f_strFileName) 
: C_3DObject(f_strFileName), m_CurrState(IDLE), m_uiAnimStart(0)
{
}


void C_Block::Draw(unsigned int f_iElapsedTime)
{
  unsigned int l_uiDeltaTime = f_iElapsedTime - m_uiAnimStart;
  double l_Scale = 0.0;

  if (l_uiDeltaTime > g_BlockAnimDurations[(int)m_CurrState])
  {
    m_CurrState = IDLE;
  }

  glPushMatrix();
  TransRotateScale();

  switch (m_CurrState)
  {
  case FADE_IN:
    l_Scale = (double)l_uiDeltaTime / (double)g_BlockAnimDurations[FADE_IN];
    glScaled(l_Scale, l_Scale, l_Scale);
    C_3DObject::Draw();
    break;

  case FADE_OUT:
    l_Scale = 1.0 - ((double)l_uiDeltaTime / (double)g_BlockAnimDurations[FADE_OUT]);
    glScaled(l_Scale, l_Scale, l_Scale);
    C_3DObject::Draw();
    break;

  case COLLIDE:
    break;

  case IDLE:
  default:
    C_3DObject::Draw();
    break;
  }

  glPopMatrix();
}