Files
wagic/projects/mtg/src/GameStateTransitions.cpp
T

57 lines
1.4 KiB
C++

#include "../include/config.h"
#include <JRenderer.h>
#include <JGui.h>
#include "../include/GameApp.h"
#include "../include/GameStateTransitions.h"
#include "../include/MTGDeck.h"
#include "../include/Translate.h"
#include "../include/OptionItem.h"
#include "../include/GameOptions.h"
TransitionBase::TransitionBase(GameApp* parent, GameState* _from, GameState* _to, float duration): GameState(parent){
from = _from;
to = _to;
mDuration = duration;
bAnimationOnly = false;
}
TransitionBase::~TransitionBase(){
if(!bAnimationOnly){
if(from)
from->End();
}
}
void TransitionBase::Update(float dt){
if(from && !Finished())
from->Update(dt);
mElapsed += dt;
}
void TransitionBase::ButtonPressed(int controllerId, int controlId){
if(!from) return;
JGuiListener * jgl = dynamic_cast<JGuiListener*>(from);
if(jgl)
jgl->ButtonPressed(controllerId,controlId);
}
void TransitionBase::Start() {
mElapsed = 0;
};
void TransitionBase::End() {
mElapsed = 0;
};
void TransitionFade::Render(){
if(from)
from->Render();
float fade = 255*mElapsed/mDuration;
if(mReversed)
fade = 255 - fade;
JRenderer::GetInstance()->FillRect(0,0,SCREEN_WIDTH,SCREEN_HEIGHT,ARGB((int)fade,0,0,0));
}
TransitionFade::TransitionFade(GameApp* p, GameState* f, GameState* t, float dur, bool reversed):
TransitionBase(p, f,t,dur) {
mReversed = reversed;
};