lot of changes in floors

This commit is contained in:
h4570
2020-12-07 20:47:41 +01:00
parent cad2623649
commit dd49fc165e
13 changed files with 190 additions and 59 deletions
+60 -2
View File
@@ -27,6 +27,10 @@ FloorManager::FloorManager(int t_floorAmount)
int floorSpiralMaxOffset = (int)Math::sqrt(t_floorAmount);
calcSpiral(floorSpiralMaxOffset, floorSpiralMaxOffset);
initFloors();
trick = 0.0F;
trickMode = 0;
isTimeForChangeTriggerColor = true;
isTimeForChangeDefaultColor = true;
audioOffset = audioMode = audioTick = 0;
}
@@ -92,17 +96,67 @@ void FloorManager::initFloors()
*/
void FloorManager::update(Player &t_player)
{
if (isTimeForChangeTriggerColor)
{
isTimeForChangeTriggerColor = false;
trigColor.r = rand() % (128 - 64 + 1) + 64;
trigColor.g = rand() % (128 - 64 + 1) + 64;
trigColor.b = rand() % (128 - 64 + 1) + 64;
}
if (isTimeForChangeDefaultColor)
{
isTimeForChangeDefaultColor = false;
defaultColor.r = rand() % (64 + 1);
defaultColor.g = rand() % (64 + 1);
defaultColor.b = rand() % (64 + 1);
}
doTheTrick();
for (u16 i = 0; i < floorAmount; i++)
{
floors[i].animate(t_player);
if (floors[i].isByAudioTriggered)
floors[i].mesh.color.a = 0x20;
{
floors[i].mesh.color.r = trigColor.r;
floors[i].mesh.color.g = trigColor.g;
floors[i].mesh.color.b = trigColor.b;
}
else
floors[i].mesh.color.a = 0x80;
{
floors[i].mesh.color.r = defaultColor.r;
floors[i].mesh.color.g = defaultColor.g;
floors[i].mesh.color.b = defaultColor.b;
}
}
}
void FloorManager::doTheTrick()
{
if (trickMode == 0)
{
if (trick > 3.0F)
{
isTimeForChangeTriggerColor = true;
trickMode = 1;
}
trick += 0.01F;
}
else if (trickMode == 1)
{
if (trick <= 0.1F)
{
isTimeForChangeTriggerColor = true;
trickMode = 0;
}
trick -= 0.01F;
}
floors[0].mesh.getFrames()[0].getST(1).set(trick, trick);
floors[0].mesh.getFrames()[0].getST(4).set(trick, trick);
floors[0].mesh.getFrames()[0].getST(7).set(trick, trick);
floors[0].mesh.getFrames()[0].getST(10).set(trick, trick);
floors[0].mesh.getFrames()[0].getST(13).set(trick, trick);
}
/** Called by audio thread */
void FloorManager::onAudioTick()
{
@@ -120,6 +174,7 @@ void FloorManager::onAudioTick()
if (++audioOffset > 3)
{
audioOffset = 0;
isTimeForChangeDefaultColor = true;
audioMode = 1;
}
}
@@ -135,6 +190,7 @@ void FloorManager::onAudioTick()
if (++audioOffset > 3)
{
audioOffset = 0;
isTimeForChangeDefaultColor = true;
audioMode = 2;
}
}
@@ -150,6 +206,7 @@ void FloorManager::onAudioTick()
if (++audioOffset > 3)
{
audioOffset = 0;
isTimeForChangeDefaultColor = true;
audioMode = 3;
}
}
@@ -165,6 +222,7 @@ void FloorManager::onAudioTick()
if (++audioOffset > 3)
{
audioOffset = 0;
isTimeForChangeDefaultColor = true;
audioMode = 0;
}
}
@@ -34,8 +34,13 @@ public:
private:
u8 audioOffset, audioMode;
u32 audioTick;
float trick;
u8 isTimeForChangeTriggerColor, isTimeForChangeDefaultColor;
color_t trigColor, defaultColor;
u8 trickMode;
Point *spirals;
void calcSpiral(int X, int Y);
void doTheTrick();
void initFloors();
};
@@ -142,7 +142,7 @@ void LightManager::onAudioTick()
}
else
{
bulbs[0].intensity += 6;
bulbs[1].intensity += 6;
bulbs[0].intensity += 9;
bulbs[1].intensity += 9;
}
}