00001 #ifndef _MM_LOADING_GS_H_
00002 #define _MM_LOADING_GS_H_
00003
00004 #include "gamestate.h"
00005 #include "net/NetClient.h"
00006 #include "net/NetCallback.h"
00007 #include "ActiveGS.h"
00008
00009
00010 #include "menu/widgets.h"
00011
00012 #define TICK_DELTA 10
00013
00014 #define BLOCK_COUNT 7
00015 #define X_SIZE 10
00016 #define Y_SIZE 10
00017
00018 using namespace MMNet;
00019
00020 class LoadingCallback;
00021 class ProgressBoxes;
00022
00023 class LoadingGS : public GameState {
00024 public:
00025 LoadingGS(MMNet::NetClient *client) : GameState(client) { };
00026 void init();
00027 void update();
00028 void exit();
00029 void display();
00030
00031 void startGame();
00032
00033 private:
00034 bool setupComplete;
00035
00036 int tickCount;
00037 ProgressBoxes *boxes;
00038
00039 LoadingCallback *callback;
00040 ActiveGS *activeGS;
00041
00042 };
00043
00044 class LoadingCallback : public GameCallback {
00045 private:
00046 LoadingGS *parent;
00047
00048 public:
00049 LoadingCallback(LoadingGS *parent) { this->parent = parent; }
00050
00051 void SetupGame(TNL::U32 seed) { };
00052
00053 void StartGame() {
00054 parent->startGame();
00055 }
00056
00057 void EndGame() { };
00058
00059 };
00060
00061 class ProgressBoxes : public MMGUI::Frame {
00062
00063 private:
00064
00065 int direction;
00066 int location;
00067 MMGUI::Image *image;
00068
00069 public:
00070
00071 ProgressBoxes(int x, int y, int width, int height);
00072 ProgressBoxes(enum MMGUI::WidgetAlign align, int width, int height);
00073
00074 void init();
00075 void updateImages();
00076
00077 };
00078
00079
00080 #endif
00081