Rise
The Vieneo Province
VMU.cpp
Go to the documentation of this file.
1
#include "
Module.h
"
2
3
void
Vmu::FrameMove
(
float
fElapsed)
4
{
5
if
(!
sound
)
6
return
;
7
8
if
(!
powered
)
9
{
10
if
(
ourcockpit
.
power
> 0.5f)
11
{
12
secondsPowered
+= fElapsed;
13
if
(
secondsPowered
>= 2.0f)
14
{
15
powered
=
true
;
16
holdForSeconds
=
sound
->
Play
(
SOUND_AURALUNITOKAY
);
17
}
18
}
19
}
20
else
21
{
22
if
(
ourcockpit
.
power
<= 0.5f)
23
{
24
powered
=
false
;
25
secondsPowered
= 0.0f;
26
}
27
}
28
29
if
(!
powered
)
30
return
;
31
32
holdForSeconds
-= fElapsed;
33
if
(
holdForSeconds
> 0.0f)
34
return
;
35
36
if
(
testMode
<=
SOUND_AURALUNITOKAY
)
37
{
38
holdForSeconds
=
sound
->
Play
(
testMode
++) + 0.5f;
39
return
;
40
}
41
42
// so we have one-shot aural response like "priority pilot"
43
// we have ongoing aural warnings like "dual input" based on a bus value
44
// we also have ongoing warnings added from GPWS like "pull up" and "stall" from the FCS (these could be bus conditions)
45
// I feel like we need a priority for each command... and that dictates who gets shit-canned and what gets played
46
// more advanced than the real aircraft because GPWS aural priority and TCAS aural priorities are independent and CAN play simultaneously
47
// sort by priority should be done on the bus?
48
for
(UINT i = 0; i <
bus
->
commandStream
.size(); i++)
49
{
50
const
Command
command =
bus
->
commandStream
.at(i);
51
if
(command.
delay
> 0)
continue
;
52
53
bool
erase =
true
;
54
if
(command.
name
==
"VMUTest"
)
55
{
56
if
(
testMode
>
SOUND_AURALUNITOKAY
)
57
testMode
=
SOUND_AURALUNITTESTA
;
58
else
59
testMode
=
SOUND_AURALUNITOKAY
+ 1;
60
}
61
if
(command.
name
==
"CASConfigBrake"
)
62
holdForSeconds
=
sound
->
Play
(
SOUND_CONFIGBRAKE
);
63
else
if
(command.
name
==
"CASConfigAF"
)
64
holdForSeconds
=
sound
->
Play
(
SOUND_CONFIGAF
);
65
else
if
(command.
name
==
"CASConfigFlaps"
)
66
holdForSeconds
=
sound
->
Play
(
SOUND_CONFIGFLAPS
);
67
else
if
(command.
name
==
"CASConfigTrim"
)
68
holdForSeconds
=
sound
->
Play
(
SOUND_CONFIGTRIM
);
69
else
if
(command.
name
==
"CASCabinPressure"
)
70
holdForSeconds
=
sound
->
Play
(
SOUND_CABINPRESSURE
);
71
else
if
(command.
name
==
"GPWSPullUp"
)
72
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSPULLUP
);
73
else
if
(command.
name
==
"GPWSTerrainTerrain"
)
74
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSTERRAINTERRAIN
);
75
else
if
(command.
name
==
"GPWSTooLowTerrain"
)
76
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSTOOLOWTERRAIN
);
77
else
if
(command.
name
==
"GPWSTooLowGear"
)
78
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSTOOLOWGEAR
);
79
else
if
(command.
name
==
"GPWSTooLowFlaps"
)
80
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSTOOLOWFLAPS
);
81
else
if
(command.
name
==
"GPWSSinkRate"
)
82
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSSINKRATE
);
83
else
if
(command.
name
==
"GPWSBankAngle"
)
84
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSBANKANGLE
);
85
else
if
(command.
name
==
"GPWSGlideslope"
)
86
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSGLIDESLOPE
);
87
else
if
(command.
name
==
"GPWSMode6Retard"
)
88
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSRETARD
);
89
else
if
(command.
name
==
"GPWSMode6Ten"
)
90
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSTEN
);
91
else
if
(command.
name
==
"GPWSMode6Twenty"
)
92
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSTWENTY
);
93
else
if
(command.
name
==
"GPWSMode6Thirty"
)
94
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSTHIRTY
);
95
else
if
(command.
name
==
"GPWSMode6Forty"
)
96
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSFORTY
);
97
else
if
(command.
name
==
"GPWSMode6Fifty"
)
98
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSFIFTY
);
99
else
if
(command.
name
==
"GPWSMode6OneHundred"
)
100
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSONEHUNDRED
);
101
else
if
(command.
name
==
"GPWSMode6TwoHundred"
)
102
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSTWOHUNDRED
);
103
else
if
(command.
name
==
"GPWSMode6Minimums"
)
104
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSMINIMUMS
);
105
else
if
(command.
name
==
"GPWSMode6PositiveRate"
)
106
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSPOSITIVERATE
);
107
else
if
(command.
name
==
"GPWSMode6FiveHundred"
)
108
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSFIVEHUNDRED
);
109
else
if
(command.
name
==
"GPWSMode6OneThousand"
)
110
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSONETHOUSAND
);
111
else
if
(command.
name
==
"GPWSMode6Rotate"
)
112
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSROTATE
);
113
else
if
(command.
name
==
"GPWSMode3DontSink"
)
114
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSDONTSINK
);
115
else
if
(command.
name
==
"GPWSMode7WindshearWarning"
)
116
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSWINDSHEARWARNING
);
117
else
if
(command.
name
==
"GPWSMode7WindshearCaution"
)
118
holdForSeconds
=
sound
->
Play
(
SOUND_GPWSWINDSHEARCAUTION
);
119
else
if
(command.
name
==
"AuralScannerSync"
)
120
holdForSeconds
=
sound
->
Play
(
SOUND_SCANNERSYNC
);
121
else
if
(command.
name
==
"AuralSoundBarrier"
)
122
holdForSeconds
=
sound
->
Play
(
SOUND_MONROESOUNDBARRIER
);
123
else
if
(command.
name
==
"AuralHullIonization"
)
124
holdForSeconds
=
sound
->
Play
(
SOUND_MONROEHULLIONIZATION
);
125
else
if
(command.
name
==
"AuralGearUp"
)
126
holdForSeconds
=
sound
->
Play
(
SOUND_MONROEGEARUP
);
127
else
if
(command.
name
==
"AuralGearDown"
)
128
holdForSeconds
=
sound
->
Play
(
SOUND_MONROEGEARDOWN
);
129
else
if
(command.
name
==
"AuralAllMooringsCleared"
)
130
holdForSeconds
=
sound
->
Play
(
SOUND_MONROEALLMOORINGSCLEARED
);
131
else
if
(command.
name
==
"AuralCargoBay"
)
132
holdForSeconds
=
sound
->
Play
(
SOUND_MONROECARGOBAY
);
133
else
if
(command.
name
==
"TCASClear"
)
134
holdForSeconds
=
sound
->
Play
(
SOUND_TCASCLEAR
);
135
else
if
(command.
name
==
"TCASTraffic"
)
136
holdForSeconds
=
sound
->
Play
(
SOUND_TCASTRAFFIC
);
137
else
if
(command.
name
==
"TCASClimb"
)
138
holdForSeconds
=
sound
->
Play
(
SOUND_TCASCLIMB
);
139
else
if
(command.
name
==
"TCASDescend"
)
140
holdForSeconds
=
sound
->
Play
(
SOUND_TCASDESCEND
);
141
else
if
(command.
name
==
"TCASMonitor"
)
142
holdForSeconds
=
sound
->
Play
(
SOUND_TCASMONITOR
);
143
else
if
(command.
name
==
"AuralStall"
)
144
holdForSeconds
=
sound
->
Play
(
SOUND_STALL
);
145
else
if
(command.
name
==
"AuralAOA"
)
146
holdForSeconds
=
sound
->
Play
(
SOUND_AOA
);
147
else
if
(command.
name
==
"AuralLightOn"
)
148
holdForSeconds
=
sound
->
Play
(
SOUND_COCKPITLIGHTON
);
149
else
if
(command.
name
==
"AuralLightOff"
)
150
holdForSeconds
=
sound
->
Play
(
SOUND_COCKPITLIGHTOFF
);
151
else
if
(command.
name
==
"AuralLowFuel"
)
152
holdForSeconds
=
sound
->
Play
(
SOUND_COCKPITLOWFUEL
);
153
else
if
(command.
name
==
"AuralOverspeed"
)
154
holdForSeconds
=
sound
->
Play
(
SOUND_OVERSPEED
);
155
else
156
erase =
false
;
157
if
(erase)
158
{
159
bus
->
commandStream
.erase(
bus
->
commandStream
.begin() + i);
160
break
;
161
}
162
}
163
}
164
165
Vmu::Vmu
(
Bus
* prmBus,
Logger
* prmLogger,
Sound
* prmSound) :
Module
(prmBus)
166
{
167
logger
= prmLogger;
168
sound
= prmSound;
169
}
SOUND_TCASCLIMB
Definition:
Sound.h:67
ourcockpit
Scockpit ourcockpit
Definition:
globals.cpp:176
SOUND_TCASTRAFFIC
Definition:
Sound.h:66
SOUND_CONFIGTRIM
Definition:
Sound.h:77
Scockpit::power
float power
Definition:
globals.h:608
SOUND_MONROEGEARDOWN
Definition:
Sound.h:72
Sound
Definition:
Sound.h:276
SOUND_GPWSFORTY
Definition:
Sound.h:53
Bus::commandStream
std::vector< Command > commandStream
Definition:
Bus.h:342
Vmu::sound
Sound * sound
Definition:
Module.h:69
SOUND_MONROEGEARUP
Definition:
Sound.h:73
Logger
Definition:
Logger.h:9
SOUND_COCKPITLIGHTON
Definition:
Sound.h:38
SOUND_CONFIGFLAPS
Definition:
Sound.h:76
Module.h
SOUND_MONROEHULLIONIZATION
Definition:
Sound.h:78
Vmu::powered
bool powered
Definition:
Module.h:72
SOUND_GPWSTERRAINTERRAIN
Definition:
Sound.h:43
Vmu::FrameMove
void FrameMove(float fElapsedTime) override
Definition:
VMU.cpp:3
SOUND_GPWSTHIRTY
Definition:
Sound.h:52
SOUND_CONFIGBRAKE
Definition:
Sound.h:74
SOUND_GPWSPOSITIVERATE
Definition:
Sound.h:62
SOUND_MONROECARGOBAY
Definition:
Sound.h:70
SOUND_GPWSWINDSHEARWARNING
Definition:
Sound.h:63
SOUND_GPWSWINDSHEARCAUTION
Definition:
Sound.h:64
SOUND_TCASMONITOR
Definition:
Sound.h:69
SOUND_GPWSTWOHUNDRED
Definition:
Sound.h:56
Vmu::logger
Logger * logger
Definition:
Module.h:68
Bus
Definition:
Bus.h:16
Command::name
std::string name
Definition:
Command.h:11
SOUND_TCASDESCEND
Definition:
Sound.h:68
SOUND_GPWSBANKANGLE
Definition:
Sound.h:47
SOUND_STALL
Definition:
Sound.h:39
SOUND_MONROEALLMOORINGSCLEARED
Definition:
Sound.h:71
SOUND_GPWSGLIDESLOPE
Definition:
Sound.h:48
SOUND_GPWSONETHOUSAND
Definition:
Sound.h:59
SOUND_AURALUNITOKAY
Definition:
Sound.h:84
Vmu::holdForSeconds
float holdForSeconds
Definition:
Module.h:71
Module
Definition:
Module.h:12
SOUND_AURALUNITTESTA
Definition:
Sound.h:34
SOUND_GPWSTOOLOWTERRAIN
Definition:
Sound.h:44
Command
Definition:
Command.h:5
SOUND_CABINPRESSURE
Definition:
Sound.h:83
SOUND_GPWSPULLUP
Definition:
Sound.h:42
SOUND_GPWSROTATE
Definition:
Sound.h:60
SOUND_COCKPITLOWFUEL
Definition:
Sound.h:36
SOUND_GPWSTEN
Definition:
Sound.h:50
SOUND_AOA
Definition:
Sound.h:132
Vmu::Vmu
Vmu(Bus *prmBus, Logger *prmLogger, Sound *prmSound)
Definition:
VMU.cpp:165
Module::bus
Bus * bus
Definition:
Module.h:17
SOUND_GPWSTWENTY
Definition:
Sound.h:51
SOUND_GPWSTOOLOWFLAPS
Definition:
Sound.h:46
SOUND_GPWSONEHUNDRED
Definition:
Sound.h:55
Vmu::secondsPowered
float secondsPowered
Definition:
Module.h:73
SOUND_GPWSTOOLOWGEAR
Definition:
Sound.h:45
SOUND_MONROESOUNDBARRIER
Definition:
Sound.h:79
SOUND_OVERSPEED
Definition:
Sound.h:40
SOUND_GPWSMINIMUMS
Definition:
Sound.h:57
Sound::Play
float Play(int soundEnum)
Definition:
Sound.cpp:577
Vmu::testMode
int testMode
Definition:
Module.h:74
SOUND_TCASCLEAR
Definition:
Sound.h:65
SOUND_GPWSFIVEHUNDRED
Definition:
Sound.h:58
SOUND_GPWSDONTSINK
Definition:
Sound.h:61
SOUND_SCANNERSYNC
Definition:
Sound.h:80
SOUND_GPWSFIFTY
Definition:
Sound.h:54
SOUND_GPWSSINKRATE
Definition:
Sound.h:41
Command::delay
float delay
Definition:
Command.h:8
SOUND_COCKPITLIGHTOFF
Definition:
Sound.h:37
SOUND_GPWSRETARD
Definition:
Sound.h:49
SOUND_CONFIGAF
Definition:
Sound.h:75
Modules
VMU.cpp
Generated on Tue May 4 2021 15:18:22 for Rise by
1.8.14