Rise
The Vieneo Province
EngineBar.cpp
Go to the documentation of this file.
1 #include "../Instrument.h"
2 #include "../../Bus.h"
3 
4 EngineBar::EngineBar(int prmX, int prmY, float prmXScale, float prmYScale, Bus* prmBus, Logger* prmLogger, DeviceObject* prmDevice, std::vector<Font*> prmFonts, int prmEngineIndex) :
5  Instrument(prmX, prmY, prmXScale, prmYScale, prmBus, prmLogger, prmDevice, prmFonts)
6 {
7  logger->AddToCallStack("EngineBar::ctor");
8  defaultFont = 1;
9 
10  engineIndex = prmEngineIndex;
11  box = new Sprite(logger, pDevice, "Textures/Instruments/engine-barbox.png", prmX, prmY, 0.1f, 0, 0, 9, 43, 0xFFFFFFFF);
12  bar = new Sprite(logger, pDevice, "Textures/Instruments/engine-bargraph.png", prmX + 2, prmY + 1, 0.2f, 0, 0, 5, 41, 0xFF000000);
13 }
14 
16 {
17  box->Draw();
18 
19  // grow from bottom so y goes up and bottom goes down
20  bar->SetLocation(x + 2, yBias);
21  bar->SetRectangle(0, 0, 5, bottomBias);
22  bar->Update();
23  bar->Draw(color);
24 }
25 
27 {
29  logger->Log("EngineBar::FrameMove Engine Index Out-Of-Bounds HIGH", Logger::Level::Fatal);
30 
31  bottomBias = static_cast<int>(39.0f * fabsf(bus->EngineThrustOutput[engineIndex - 1]));
32  yBias = y + 41 - bottomBias;
33 
34  if (engineIndex < 1 ||
35  (engineIndex == 1 && ourcockpit.vdat.leftengine < 64) ||
36  (engineIndex == 2 && ourcockpit.engines == 2 && ourcockpit.vdat.rightengine < 64) ||
37  (engineIndex == 2 && ourcockpit.engines == 3 && ourcockpit.vdat.clengine < 64) ||
38  (engineIndex == 3 && ourcockpit.engines == 3 && ourcockpit.vdat.rightengine < 64) ||
40  {
41  if ((flasher > 0.0f && oldflasher <= 0.0f) || (flasher > 0.2f && oldflasher <= 0.2f))
42  color = 0xFFFF0000;
43  else
44  color = 0xFFC40000;
45  }
46  else
47  color = 0xFF00FF00;
48 }
int engineIndex
Definition: Instrument.h:184
void SetLocation(int absoluteX, int absoluteY)
Definition: Sprite.cpp:90
Scockpit ourcockpit
Definition: globals.cpp:176
#define MAX_ENGINES
Definition: Bus.h:14
float oldflasher
Definition: globals.cpp:66
void SetRectangle(int top, int left, int right, int bottom)
Definition: Sprite.cpp:96
Definition: Logger.h:9
int bottomBias
Definition: Instrument.h:187
void FrameMove(float fElapsed) override
Definition: EngineBar.cpp:26
DeviceObject * pDevice
Definition: Instrument.h:17
void Update()
Definition: Sprite.cpp:41
EngineBar(int prmX, int prmY, float prmXScale, float prmYScale, Bus *prmBus, Logger *prmLogger, DeviceObject *prmDevice, std::vector< Font *> prmFonts, int prmEngineIndex)
Definition: EngineBar.cpp:4
void Draw(D3DXCOLOR prmColor)
Definition: Sprite.cpp:66
Definition: Bus.h:16
Definition: Sprite.h:7
Bus * bus
Definition: Instrument.h:18
UINT defaultFont
Definition: Instrument.h:20
char engines
Definition: globals.h:627
float EngineThrustOutput[MAX_ENGINES]
Definition: Bus.h:43
float flasher
Definition: globals.cpp:65
void Log(const char *msg, Level level=Info, int errorCode=0)
Definition: Logger.cpp:11
Sprite * bar
Definition: Instrument.h:183
Sprite * box
Definition: Instrument.h:182
Logger * logger
Definition: Instrument.h:19
DWORD color
Definition: Instrument.h:185
void AddToCallStack(const char *msg)
Definition: Logger.cpp:86
void Render() override
Definition: EngineBar.cpp:15
SVesselDC vdat
Definition: globals.h:669