summaryrefslogtreecommitdiff
path: root/src/game/GameController.h
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-11-17 19:44:09 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-11-17 19:44:09 (GMT)
commit058a2edd75debbd0297f92572316daa704bd379f (patch)
treead303f091f9a08b209b91eb34a9fcad996a3de69 /src/game/GameController.h
parente3594aba9e05c6865d396418c028049cda92c2f3 (diff)
parent7a21ae192fe19868539956f3fe28e62b2c7c4429 (diff)
downloadpowder-058a2edd75debbd0297f92572316daa704bd379f.zip
powder-058a2edd75debbd0297f92572316daa704bd379f.tar.gz
Merge branch 'master' of github.com:FacialTurd/PowderToypp
Diffstat (limited to 'src/game/GameController.h')
-rw-r--r--src/game/GameController.h147
1 files changed, 147 insertions, 0 deletions
diff --git a/src/game/GameController.h b/src/game/GameController.h
new file mode 100644
index 0000000..4c7a8c9
--- /dev/null
+++ b/src/game/GameController.h
@@ -0,0 +1,147 @@
+ #ifndef GAMECONTROLLER_H
+#define GAMECONTROLLER_H
+
+#include <queue>
+#include "GameView.h"
+#include "GameModel.h"
+#include "interface/Point.h"
+#include "simulation/Simulation.h"
+#include "search/SearchController.h"
+#include "render/RenderController.h"
+#include "preview/PreviewController.h"
+#include "login/LoginController.h"
+#include "tags/TagsController.h"
+#include "console/ConsoleController.h"
+#include "localbrowser/LocalBrowserController.h"
+//#include "cat/TPTScriptInterface.h"
+#include "cat/LuaScriptInterface.h"
+#include "options/OptionsController.h"
+#include "client/ClientListener.h"
+#include "RenderPreset.h"
+#include "Menu.h"
+
+using namespace std;
+
+class Notification;
+class GameModel;
+class GameView;
+class CommandInterface;
+class ConsoleController;
+class GameController: public ClientListener
+{
+private:
+ //Simulation * sim;
+ bool firstTick;
+ int screenshotIndex;
+ PreviewController * activePreview;
+ GameView * gameView;
+ GameModel * gameModel;
+ SearchController * search;
+ RenderController * renderOptions;
+ LoginController * loginWindow;
+ ConsoleController * console;
+ TagsController * tagsWindow;
+ LocalBrowserController * localBrowser;
+ OptionsController * options;
+ CommandInterface * commandInterface;
+public:
+ bool HasDone;
+ class LoginCallback;
+ class SearchCallback;
+ class RenderCallback;
+ class SSaveCallback;
+ class TagsCallback;
+ class StampsCallback;
+ class OptionsCallback;
+ class SaveOpenCallback;
+ friend class SaveOpenCallback;
+ GameController();
+ ~GameController();
+ GameView * GetView();
+
+ bool BrushChanged(int brushType, int rx, int ry);
+ bool MouseMove(int x, int y, int dx, int dy);
+ bool MouseDown(int x, int y, unsigned button);
+ bool MouseUp(int x, int y, unsigned button);
+ bool MouseWheel(int x, int y, int d);
+ bool KeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt);
+ bool KeyRelease(int key, Uint16 character, bool shift, bool ctrl, bool alt);
+ void Tick();
+ void Exit();
+
+ void Install();
+
+ void HistoryRestore();
+ void HistorySnapshot();
+
+ void AdjustGridSize(int direction);
+ void InvertAirSim();
+ void LoadRenderPreset(int presetNum);
+ void SetZoomEnabled(bool zoomEnable);
+ void SetZoomPosition(ui::Point position);
+ void AdjustBrushSize(int direction, bool logarithmic = false, bool xAxis = false, bool yAxis = false);
+ void AdjustZoomSize(int direction, bool logarithmic = false);
+ void ToolClick(int toolSelection, ui::Point point);
+ void DrawPoints(int toolSelection, queue<ui::Point> & pointQueue);
+ void DrawRect(int toolSelection, ui::Point point1, ui::Point point2);
+ void DrawLine(int toolSelection, ui::Point point1, ui::Point point2);
+ void DrawFill(int toolSelection, ui::Point point);
+ void StampRegion(ui::Point point1, ui::Point point2);
+ void CopyRegion(ui::Point point1, ui::Point point2);
+ void CutRegion(ui::Point point1, ui::Point point2);
+ void Update();
+ void SetPaused(bool pauseState);
+ void SetPaused();
+ void SetDecoration(bool decorationState);
+ void SetDecoration();
+ void ShowGravityGrid();
+ void SetActiveMenu(Menu * menu);
+ void SetActiveTool(int toolSelection, Tool * tool);
+ void SetActiveColourPreset(int preset);
+ void SetColour(ui::Colour colour);
+ void SetToolStrength(float value);
+ void LoadSaveFile(SaveFile * file);
+ void LoadSave(SaveInfo * save);
+ void OpenSearch();
+ void OpenLogin();
+ void OpenTags();
+ void OpenSavePreview(int saveID, int saveDate);
+ void OpenLocalSaveWindow(bool asCurrent);
+ void OpenLocalBrowse();
+ void OpenOptions();
+ void OpenRenderOptions();
+ void OpenSaveWindow();
+ void SaveAsCurrent();
+ void OpenStamps();
+ void OpenElementSearch();
+ void OpenColourPicker();
+ void PlaceSave(ui::Point position);
+ void ClearSim();
+ void ReloadSim();
+ void Vote(int direction);
+ void ChangeBrush();
+ void ShowConsole();
+ void FrameStep();
+ void TranslateSave(ui::Point point);
+ void TransformSave(matrix2d transform);
+ ui::Point PointTranslate(ui::Point point);
+ ui::Point NormaliseBlockCoord(ui::Point point);
+ std::string ElementResolve(int type);
+ std::string WallName(int type);
+
+ void ResetAir();
+ void ResetSpark();
+ void SwitchGravity();
+ void SwitchAir();
+ void ToggleAHeat();
+
+ void LoadClipboard();
+ void LoadStamp();
+
+ void RemoveNotification(Notification * notification);
+
+ virtual void NotifyUpdateAvailable(Client * sender);
+ void RunUpdater();
+};
+
+#endif // GAMECONTROLLER_H