#ifndef TESTCLIENTFRAMEWORK_H
#define TESTCLIENTFRAMEWORK_H
#include "../Ganef/client/clientframework.h"
#include <iostream>
#include <cstdlib>
#include <stdlib.h>
#include <SDL/SDL.h>
#include <SDL/SDL_ttf.h>
#include "testclientsnakebite.h"
#include <vector>
class TestClientFramework : public ClientFramework
{
private:
SDL_Surface *screen;
SDL_Surface *snakebite;
SDL_Surface *snakehead;
TTF_Font * font;
bool is_running;
std::vector<TestClientSnakeBite *> snakebites;
static TestClientFramework * theclient;
TestClientSnakeBite * my_own_bite;
std::string server_hostname;
private:
void handleUserEvents();
void draw();
void writeToScreen(const std::string & str, int number, int x, int y);
void writeToScreen(const std::string & str, int x, int y);
void paintTestClientSnakeBite(TestClientSnakeBite * bite);
public:
TestClientFramework();
~TestClientFramework();
public:
void addTestClientSnakeBite(TestClientSnakeBite * bite);
void setServerHost(const char * str) { server_hostname = str; };
void removeSnakeBite(TestClientSnakeBite * bite);
protected:
virtual void writeHandshakeInitMessage(ClientPacket * fp);
virtual void onHandshakingDiscontinue(ClientPacket * fp);
virtual bool onHandshakeDescription(ClientPacket * fp, ClientPacket * reply);
virtual void onDisconnect();
virtual void onConnect();
public:
bool initSDL();
void mainLoop();
static ClientData * constructTestClientSnakeBite(ClientFramework * f, ClientPacket * packet);
};
#endif