summaryrefslogtreecommitdiff
path: root/src/interface/Engine.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-01-23 22:53:57 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-01-23 22:53:57 (GMT)
commitdf72f2580f68a7d0055fcf20dcd65c0be90c52dd (patch)
treeada3c6d3fdc2009f5236ec2a39d661c0bfaaf3e5 /src/interface/Engine.cpp
parent2bd571e1598e6baffc717bcb086d89d01929604b (diff)
downloadpowder-df72f2580f68a7d0055fcf20dcd65c0be90c52dd.zip
powder-df72f2580f68a7d0055fcf20dcd65c0be90c52dd.tar.gz
Better element buttons, Save preview WIP
Diffstat (limited to 'src/interface/Engine.cpp')
-rw-r--r--src/interface/Engine.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/src/interface/Engine.cpp b/src/interface/Engine.cpp
index 85a6293..7eec6b5 100644
--- a/src/interface/Engine.cpp
+++ b/src/interface/Engine.cpp
@@ -21,7 +21,8 @@ Engine::Engine():
FpsLimit(60.0f),
windows(stack<Window*>()),
lastBuffer(NULL),
- prevBuffers(stack<pixel*>())
+ prevBuffers(stack<pixel*>()),
+ windowTargetPosition(0, 0)
{
}
@@ -53,6 +54,7 @@ void Engine::Exit()
void Engine::ShowWindow(Window * window)
{
+ windowOpenState = 0.0f;
if(window->Position.X==-1)
{
window->Position.X = (width_-window->Size.X)/2;
@@ -61,6 +63,11 @@ void Engine::ShowWindow(Window * window)
{
window->Position.Y = (height_-window->Size.Y)/2;
}
+ /*if(window->Position.Y > 0)
+ {
+ windowTargetPosition = window->Position;
+ window->Position = Point(windowTargetPosition.X, height_);
+ }*/
if(state_)
{
if(lastBuffer)
@@ -68,7 +75,6 @@ void Engine::ShowWindow(Window * window)
prevBuffers.push(lastBuffer);
}
lastBuffer = (pixel*)malloc((width_ * height_) * PIXELSIZE);
- g->fillrect(0, 0, width_, height_, 0, 0, 0, 100);
memcpy(lastBuffer, g->vid, (width_ * height_) * PIXELSIZE);
windows.push(state_);
@@ -123,6 +129,24 @@ void Engine::Tick(float dt)
if(state_ != NULL)
state_->DoTick(dt);
+
+ if(windowOpenState<1.0f)
+ {
+ if(lastBuffer)
+ {
+ pixel * vid = g->vid;
+ g->vid = lastBuffer;
+ g->fillrect(0, 0, width_, height_, 0, 0, 0, 5);
+ g->vid = vid;
+
+ }
+ /*if(windowTargetPosition.Y < state_->Position.Y)
+ {
+ state_->Position.Y += windowTargetPosition.Y/20;
+ }*/
+ windowOpenState += 0.05f*dt;
+ }
+
/*if(statequeued_ != NULL)
{
if(state_ != NULL)