#ifndef __FFTSCEN_H__
#define __FFTSCEN_H__

#include <string>
#include "Python.h"
#include "fftfile.h"
#include "gui.h"
#include "map.h"

using aries::newNode;
using aries::Node;
using aries::DataNode;
using aries::StringNode;
using aries::DataNodeList;
using aries::NodeList;

void LoadMap(Map *map, const std::string& filename, float zoom);

typedef struct{
	int id;
	std::string fpk;
	std::string imagefn;
}__scen_bullet;

class Scenario
{
public:
	Scenario(){};
	~Scenario(){};
	void Init(std::string fn, Map *map);
	void ReadOnly(std::string fn);
	void SetMap(Map *map);
	void Startup();
	bool CheckVictory();
	bool CheckLoss();
	std::string GetMapFn();
	std::string GetName();
	std::string GetDesc();
	std::string GetOpenMessage();
	std::string GetModuleName();
	int GetStartX();
	int GetStartY();
	int GetStartAngle();
	int GetStartSpeed();
	unsigned int GetStartCredits();
	bool ShipIsAllowed(std::string name, std::string fpk);
private:
	std::string file;
	std::string name;
	std::string desc;
	std::string mapfn;
	std::string openmessage;
	std::string modulename;
	Map *scnmap;
	int startx;
	int starty;
	int startang;
	int startspeed;
	unsigned int credits;
	std::string startingshipnames[100];
	std::string startingshipfpks[100];
	int startingshipnext;
	bool disablewarp;
};

bool IsScenario(char *str);
std::string ChooseScenario();
void SCN_Invalid(std::string scn, std::string message);
FPKShip **LoadShipsFromScen(Scenario *Scen);

#endif /* __FFTSCEN_H__ */

