MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / CalculateActiveState

Function CalculateActiveState

TombEngine/Objects/Effects/flame_emitters.cpp:99–131  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

97 }
98
99 static bool CalculateActiveState(ItemInfo* item)
100 {
101 bool active = TriggerActive(item);
102
103 // Modify fade value in case flame emitter is being activated or deactivated.
104 // Additionally return activity status depending on whether fade is finished or not.
105
106 if (active)
107 {
108 // Don't fade in active flames right at the level start.
109 if (SaveGame::Statistics.Level.TimeTaken.GetFrameCount() <= 1)
110 item->ItemFlags[3] = 0;
111
112 if (item->ItemFlags[3] > 0)
113 {
114 item->ItemFlags[3] -= 16;
115 item->ItemFlags[3] = std::max(0, (int)item->ItemFlags[3]);
116 }
117 }
118 else
119 {
120 if (item->ItemFlags[3] < UCHAR_MAX)
121 {
122 item->ItemFlags[3] += 32;
123 item->ItemFlags[3] = std::min(UCHAR_MAX, (int)item->ItemFlags[3]);
124 active = true;
125 }
126 else
127 active = false;
128 }
129
130 return active;
131 }
132
133 static Vector4 GetFlameColor(Vector4 sourceColor)
134 {

Callers 2

FlameEmitterControlFunction · 0.85
FlameEmitter2ControlFunction · 0.85

Calls 2

TriggerActiveFunction · 0.85
GetFrameCountMethod · 0.80

Tested by

no test coverage detected