lua logs fade out individually

This commit is contained in:
jacob1 2014-11-06 20:24:42 -05:00
parent a801f0a0b4
commit 46eda12479
2 changed files with 17 additions and 18 deletions

View File

@ -192,7 +192,6 @@ GameView::GameView():
recordingIndex(0), recordingIndex(0),
toolTipPresence(0), toolTipPresence(0),
currentSaveType(0), currentSaveType(0),
lastLogEntry(0.0f),
lastMenu(-1) lastMenu(-1)
{ {
@ -1647,8 +1646,6 @@ void GameView::OnTick(float dt)
toolTipPresence = 0; toolTipPresence = 0;
} }
c->Update(); c->Update();
if(lastLogEntry > -0.1f)
lastLogEntry -= 0.16*dt;
} }
@ -1823,9 +1820,8 @@ void GameView::NotifyZoomChanged(GameModel * sender)
void GameView::NotifyLogChanged(GameModel * sender, string entry) void GameView::NotifyLogChanged(GameModel * sender, string entry)
{ {
logEntries.push_front(entry); logEntries.push_front(std::pair<std::string, int>(entry, 600));
lastLogEntry = 100.0f; if (logEntries.size() > 20)
if(logEntries.size()>20)
logEntries.pop_back(); logEntries.pop_back();
} }
@ -2076,20 +2072,24 @@ void GameView::OnDraw()
Client::Ref().WriteFile(data, filename.str()); Client::Ref().WriteFile(data, filename.str());
} }
if (logEntries.size())
{
int startX = 20; int startX = 20;
int startY = YRES-20; int startY = YRES-20;
int startAlpha; deque<std::pair<std::string, int>>::iterator iter;
if(lastLogEntry>0.1f && logEntries.size()) for(iter = logEntries.begin(); iter != logEntries.end(); iter++)
{ {
startAlpha = 2.55f*lastLogEntry; string message = (*iter).first;
deque<string>::iterator iter; int alpha = std::min((*iter).second, 255);
for(iter = logEntries.begin(); iter != logEntries.end() && startAlpha>0; iter++) if (alpha <= 0) //erase this and everything older
{ {
string message = (*iter); logEntries.erase(iter, logEntries.end());
break;
}
startY -= 14; startY -= 14;
g->fillrect(startX-3, startY-3, Graphics::textwidth((char*)message.c_str())+6, 14, 0, 0, 0, 100); g->fillrect(startX-3, startY-3, Graphics::textwidth((char*)message.c_str())+6, 14, 0, 0, 0, 100);
g->drawtext(startX, startY, message.c_str(), 255, 255, 255, startAlpha); g->drawtext(startX, startY, message.c_str(), 255, 255, 255, alpha);
startAlpha-=14; (*iter).second -= 3;
} }
} }
} }

View File

@ -77,8 +77,7 @@ private:
vector<ui::Button*> menuButtons; vector<ui::Button*> menuButtons;
vector<ToolButton*> toolButtons; vector<ToolButton*> toolButtons;
vector<ui::Component*> notificationComponents; vector<ui::Component*> notificationComponents;
deque<string> logEntries; deque<std::pair<std::string, int>> logEntries;
float lastLogEntry;
ui::Button * scrollBar; ui::Button * scrollBar;
ui::Button * searchButton; ui::Button * searchButton;
ui::Button * reloadButton; ui::Button * reloadButton;