#include "Map.h"
#include "Tile.h"
+#include "TransitionState.h"
#include "Trigger.h"
#include "../app/Application.h"
#include "../app/Input.h"
+#include "../graphics/ColorFade.h"
#include <algorithm>
using app::Application;
using app::Input;
using geometry::Vector;
+using graphics::ColorFade;
namespace map {
MapState::MapState(Map *map)
-: map(map)
+: ctrl(0)
+, map(map)
, controlled(0)
, tempTarget(20, 20)
, camera(100, 100, &tempTarget)
}
-void MapState::EnterState(Application &ctrl, SDL_Surface *screen) {
+void MapState::EnterState(Application &c, SDL_Surface *screen) {
+ ctrl = &c;
camera.Resize(screen->w, screen->h);
LoadMap(map);
}
if (trigger) {
// TODO: run trigger script
if (trigger->map) {
- Transition(trigger->map, trigger->target);
+ ctrl->PushState(new ColorFade(this, 0, 500, true));
+ ctrl->PushState(new TransitionState(this, trigger->map, trigger->target));
+ ctrl->PushState(new ColorFade(this, 0, 500, false));
}
}