Rise
The Vieneo Province
CarRadio.cpp
Go to the documentation of this file.
1 #include "Instrument.h"
2 #include "../Bus.h"
3 
4 CarRadio::CarRadio(int prmX, int prmY, float prmXScale, float prmYScale, Bus* prmBus, Logger* prmLogger, DeviceObject* prmDevice, std::vector<Font*> prmFonts) :
5  Instrument(prmX, prmY, prmXScale, prmYScale, prmBus, prmLogger, prmDevice, prmFonts)
6 {
7  logger->AddToCallStack("CarRadio::ctor");
8  defaultFont = 1;
9 
10  background = new Sprite(logger, pDevice, "Textures/Instruments/CarRadio.png", prmX, prmY, 0.2f, 0, 0, 102, 35, 0xFFFFFFFF);
11 }
12 
14 {
15  background->Draw();
16 
17  if (!ourcockpit.radioPower || ourcockpit.power <= 0.7f)
18  return;
19 
20  DrawText(L"progressive", 28, -1, 0.3f, DT_NOCLIP, D3DCOLOR_ARGB(255, 255, 255, 255));
21  DrawText(L"psytrance", 28, 10, 0.3f, DT_NOCLIP, D3DCOLOR_ARGB(255, 255, 255, 255));
22 
23  DrawText(nowPlaying, 0, 24, 0.3f, DT_NOCLIP, D3DCOLOR_ARGB(255, 255, 255, 255));
24 }
25 
26 void CarRadio::FrameMove(float fElapsed)
27 {
29  {
30  wcscpy_s(nowPlaying, 99, L"NOW PLAYING >>> UNKNOWN");
31  textpos = 0.0f;
32  return;
33  }
34 
35  WCHAR str[99];
36  swprintf_s(str, 99, L"NOW PLAYING >>> %S", ourcockpit.radioplaying);
37 
38  m_fAnimateFrame += fElapsed;
39  if (m_fAnimateFrame > 0.0416667f) // 24 fps
40  {
41  m_fAnimateFrame = 0.0f;
42 
43  textpos += 0.1f;
44  if (textpos >= static_cast<float>(wcslen(str)))
45  textpos = 0.0f;
46 
47  if (textpos >= (static_cast<float>(wcslen(str)) - 20))
48  {
49  short nonstat = static_cast<short>(wcslen(str)) - 20;
50  if (nonstat < 0)
51  nonstat = 0;
52 
53  wcscpy_s(nowPlaying, 99, &str[nonstat]);
54  }
55  else // 664 147
56  {
57  short nonstat = static_cast<short>(textpos);
58  swprintf_s(nowPlaying, 99, L"%.20s", &str[nonstat]);
59  }
60  }
61 }
Scockpit ourcockpit
Definition: globals.cpp:176
float power
Definition: globals.h:608
bool radioPower
Definition: globals.h:606
Definition: Logger.h:9
DeviceObject * pDevice
Definition: Instrument.h:17
Sprite * background
Definition: Instrument.h:350
void Draw(D3DXCOLOR prmColor)
Definition: Sprite.cpp:66
void FrameMove(float fElapsed) override
Definition: CarRadio.cpp:26
Definition: Bus.h:16
Definition: Sprite.h:7
UINT defaultFont
Definition: Instrument.h:20
float textpos
Definition: Instrument.h:352
char radioplaying[99]
Definition: globals.h:625
Logger * logger
Definition: Instrument.h:19
float m_fAnimateFrame
Definition: Instrument.h:351
void AddToCallStack(const char *msg)
Definition: Logger.cpp:86
void Render() override
Definition: CarRadio.cpp:13
void DrawText(const WCHAR *str, int relativeX, int relativeY, float prmZ, int flags, D3DXCOLOR color, int font=-1, std::string elementName="", int width=0, int height=0)
Definition: Instrument.h:41
WCHAR nowPlaying[99]
Definition: Instrument.h:353
CarRadio(int prmX, int prmY, float prmXScale, float prmYScale, Bus *prmBus, Logger *prmLogger, DeviceObject *prmDevice, std::vector< Font *> prmFonts)
Definition: CarRadio.cpp:4