| 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 | { |
no test coverage detected