summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ0an Josep <juanjo.ng.83@gmail.com>2018-07-23 14:39:13 +0200
committerMichael Lutz <michi@icosahedron.de>2018-07-23 20:32:18 +0200
commit8975318286cd4d7c3da768331987bbf8375394e5 (patch)
tree550499805f0ef6df4c750eec21b0f5691a725952
parent0bca1c53c96a5ba69f81906b3d459a0682bd8111 (diff)
downloadopenttd-8975318286cd4d7c3da768331987bbf8375394e5.tar.xz
Fix 2a868b9f3b8e3b5f8b9e5f728f628ec88fd5e3ad: Expose widgets and windows to scripts and fix documentation.
-rw-r--r--projects/openttd_vs100.vcxproj1
-rw-r--r--projects/openttd_vs100.vcxproj.filters3
-rw-r--r--projects/openttd_vs140.vcxproj1
-rw-r--r--projects/openttd_vs140.vcxproj.filters3
-rw-r--r--projects/openttd_vs141.vcxproj1
-rw-r--r--projects/openttd_vs141.vcxproj.filters3
-rw-r--r--projects/openttd_vs80.vcproj4
-rw-r--r--projects/openttd_vs90.vcproj4
-rw-r--r--source.list1
-rw-r--r--src/framerate_gui.cpp18
-rw-r--r--src/script/api/game/game_window.hpp.sq12
-rw-r--r--src/script/api/script_window.hpp32
-rw-r--r--src/script/api/template/template_window.hpp.sq4
-rw-r--r--src/widgets/framerate_widget.h33
-rw-r--r--src/window_type.h2
15 files changed, 105 insertions, 17 deletions
diff --git a/projects/openttd_vs100.vcxproj b/projects/openttd_vs100.vcxproj
index 6fbd5e3f0..e400081df 100644
--- a/projects/openttd_vs100.vcxproj
+++ b/projects/openttd_vs100.vcxproj
@@ -794,6 +794,7 @@
<ClInclude Include="..\src\widgets\engine_widget.h" />
<ClInclude Include="..\src\widgets\error_widget.h" />
<ClInclude Include="..\src\widgets\fios_widget.h" />
+ <ClInclude Include="..\src\widgets\framerate_widget.h" />
<ClInclude Include="..\src\widgets\genworld_widget.h" />
<ClInclude Include="..\src\widgets\goal_widget.h" />
<ClInclude Include="..\src\widgets\graph_widget.h" />
diff --git a/projects/openttd_vs100.vcxproj.filters b/projects/openttd_vs100.vcxproj.filters
index 7eee89731..47f431e55 100644
--- a/projects/openttd_vs100.vcxproj.filters
+++ b/projects/openttd_vs100.vcxproj.filters
@@ -1539,6 +1539,9 @@
<ClInclude Include="..\src\widgets\fios_widget.h">
<Filter>Widgets</Filter>
</ClInclude>
+ <ClInclude Include="..\src\widgets\framerate_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
<ClInclude Include="..\src\widgets\genworld_widget.h">
<Filter>Widgets</Filter>
</ClInclude>
diff --git a/projects/openttd_vs140.vcxproj b/projects/openttd_vs140.vcxproj
index fdc1fd411..9fac7685a 100644
--- a/projects/openttd_vs140.vcxproj
+++ b/projects/openttd_vs140.vcxproj
@@ -815,6 +815,7 @@
<ClInclude Include="..\src\widgets\engine_widget.h" />
<ClInclude Include="..\src\widgets\error_widget.h" />
<ClInclude Include="..\src\widgets\fios_widget.h" />
+ <ClInclude Include="..\src\widgets\framerate_widget.h" />
<ClInclude Include="..\src\widgets\genworld_widget.h" />
<ClInclude Include="..\src\widgets\goal_widget.h" />
<ClInclude Include="..\src\widgets\graph_widget.h" />
diff --git a/projects/openttd_vs140.vcxproj.filters b/projects/openttd_vs140.vcxproj.filters
index 7eee89731..47f431e55 100644
--- a/projects/openttd_vs140.vcxproj.filters
+++ b/projects/openttd_vs140.vcxproj.filters
@@ -1539,6 +1539,9 @@
<ClInclude Include="..\src\widgets\fios_widget.h">
<Filter>Widgets</Filter>
</ClInclude>
+ <ClInclude Include="..\src\widgets\framerate_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
<ClInclude Include="..\src\widgets\genworld_widget.h">
<Filter>Widgets</Filter>
</ClInclude>
diff --git a/projects/openttd_vs141.vcxproj b/projects/openttd_vs141.vcxproj
index 0b450cbfd..ae3d7be78 100644
--- a/projects/openttd_vs141.vcxproj
+++ b/projects/openttd_vs141.vcxproj
@@ -815,6 +815,7 @@
<ClInclude Include="..\src\widgets\engine_widget.h" />
<ClInclude Include="..\src\widgets\error_widget.h" />
<ClInclude Include="..\src\widgets\fios_widget.h" />
+ <ClInclude Include="..\src\widgets\framerate_widget.h" />
<ClInclude Include="..\src\widgets\genworld_widget.h" />
<ClInclude Include="..\src\widgets\goal_widget.h" />
<ClInclude Include="..\src\widgets\graph_widget.h" />
diff --git a/projects/openttd_vs141.vcxproj.filters b/projects/openttd_vs141.vcxproj.filters
index 7eee89731..47f431e55 100644
--- a/projects/openttd_vs141.vcxproj.filters
+++ b/projects/openttd_vs141.vcxproj.filters
@@ -1539,6 +1539,9 @@
<ClInclude Include="..\src\widgets\fios_widget.h">
<Filter>Widgets</Filter>
</ClInclude>
+ <ClInclude Include="..\src\widgets\framerate_widget.h">
+ <Filter>Widgets</Filter>
+ </ClInclude>
<ClInclude Include="..\src\widgets\genworld_widget.h">
<Filter>Widgets</Filter>
</ClInclude>
diff --git a/projects/openttd_vs80.vcproj b/projects/openttd_vs80.vcproj
index 2ea6fdcd6..c5e41e925 100644
--- a/projects/openttd_vs80.vcproj
+++ b/projects/openttd_vs80.vcproj
@@ -2375,6 +2375,10 @@
>
</File>
<File
+ RelativePath=".\..\src\widgets\framerate_widget.h"
+ >
+ </File>
+ <File
RelativePath=".\..\src\widgets\genworld_widget.h"
>
</File>
diff --git a/projects/openttd_vs90.vcproj b/projects/openttd_vs90.vcproj
index 174677586..d2e5744a2 100644
--- a/projects/openttd_vs90.vcproj
+++ b/projects/openttd_vs90.vcproj
@@ -2372,6 +2372,10 @@
>
</File>
<File
+ RelativePath=".\..\src\widgets\framerate_widget.h"
+ >
+ </File>
+ <File
RelativePath=".\..\src\widgets\genworld_widget.h"
>
</File>
diff --git a/source.list b/source.list
index ee8e69ef5..5dec0e861 100644
--- a/source.list
+++ b/source.list
@@ -527,6 +527,7 @@ widgets/dropdown_widget.h
widgets/engine_widget.h
widgets/error_widget.h
widgets/fios_widget.h
+widgets/framerate_widget.h
widgets/genworld_widget.h
widgets/goal_widget.h
widgets/graph_widget.h
diff --git a/src/framerate_gui.cpp b/src/framerate_gui.cpp
index 0d6cc55c5..021958d32 100644
--- a/src/framerate_gui.cpp
+++ b/src/framerate_gui.cpp
@@ -19,6 +19,8 @@
#include "console_func.h"
#include "console_type.h"
+#include "widgets/framerate_widget.h"
+
namespace {
@@ -233,17 +235,6 @@ void PerformanceAccumulator::Reset(PerformanceElement elem)
void ShowFrametimeGraphWindow(PerformanceElement elem);
-enum FramerateWindowWidgets {
- WID_FRW_CAPTION,
- WID_FRW_RATE_GAMELOOP,
- WID_FRW_RATE_DRAWING,
- WID_FRW_RATE_FACTOR,
- WID_FRW_INFO_DATA_POINTS,
- WID_FRW_TIMES_NAMES,
- WID_FRW_TIMES_CURRENT,
- WID_FRW_TIMES_AVERAGE,
-};
-
static const NWidgetPart _framerate_window_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
@@ -487,11 +478,6 @@ static WindowDesc _framerate_display_desc(
);
-enum FrametimeGraphWindowWidgets {
- WID_FGW_CAPTION,
- WID_FGW_GRAPH,
-};
-
static const NWidgetPart _frametime_graph_window_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
diff --git a/src/script/api/game/game_window.hpp.sq b/src/script/api/game/game_window.hpp.sq
index aa0b34b1e..7ce2c7029 100644
--- a/src/script/api/game/game_window.hpp.sq
+++ b/src/script/api/game/game_window.hpp.sq
@@ -138,6 +138,8 @@ void SQGSWindow_Register(Squirrel *engine)
SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SPRITE_ALIGNER, "WC_SPRITE_ALIGNER");
SQGSWindow.DefSQConst(engine, ScriptWindow::WC_LINKGRAPH_LEGEND, "WC_LINKGRAPH_LEGEND");
SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SAVE_PRESET, "WC_SAVE_PRESET");
+ SQGSWindow.DefSQConst(engine, ScriptWindow::WC_FRAMERATE_DISPLAY, "WC_FRAMERATE_DISPLAY");
+ SQGSWindow.DefSQConst(engine, ScriptWindow::WC_FRAMETIME_GRAPH, "WC_FRAMETIME_GRAPH");
SQGSWindow.DefSQConst(engine, ScriptWindow::WC_INVALID, "WC_INVALID");
SQGSWindow.DefSQConst(engine, ScriptWindow::TC_BLUE, "TC_BLUE");
SQGSWindow.DefSQConst(engine, ScriptWindow::TC_SILVER, "TC_SILVER");
@@ -450,6 +452,16 @@ void SQGSWindow_Register(Squirrel *engine)
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_NEWGRF_INFO, "WID_SL_NEWGRF_INFO");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_LOAD_BUTTON, "WID_SL_LOAD_BUTTON");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SL_MISSING_NEWGRFS, "WID_SL_MISSING_NEWGRFS");
+ SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_CAPTION, "WID_FRW_CAPTION");
+ SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_RATE_GAMELOOP, "WID_FRW_RATE_GAMELOOP");
+ SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_RATE_DRAWING, "WID_FRW_RATE_DRAWING");
+ SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_RATE_FACTOR, "WID_FRW_RATE_FACTOR");
+ SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_INFO_DATA_POINTS, "WID_FRW_INFO_DATA_POINTS");
+ SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_TIMES_NAMES, "WID_FRW_TIMES_NAMES");
+ SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_TIMES_CURRENT, "WID_FRW_TIMES_CURRENT");
+ SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_TIMES_AVERAGE, "WID_FRW_TIMES_AVERAGE");
+ SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FGW_CAPTION, "WID_FGW_CAPTION");
+ SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FGW_GRAPH, "WID_FGW_GRAPH");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_TEMPERATE, "WID_GL_TEMPERATE");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_ARCTIC, "WID_GL_ARCTIC");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_TROPICAL, "WID_GL_TROPICAL");
diff --git a/src/script/api/script_window.hpp b/src/script/api/script_window.hpp
index c2b6662fb..9dcf58e05 100644
--- a/src/script/api/script_window.hpp
+++ b/src/script/api/script_window.hpp
@@ -32,6 +32,7 @@
#include "../../widgets/engine_widget.h"
#include "../../widgets/error_widget.h"
#include "../../widgets/fios_widget.h"
+#include "../../widgets/framerate_widget.h"
#include "../../widgets/genworld_widget.h"
#include "../../widgets/goal_widget.h"
#include "../../widgets/graph_widget.h"
@@ -764,6 +765,18 @@ public:
*/
WC_SAVE_PRESET = ::WC_SAVE_PRESET,
+ /**
+ * Framerate display; %Window numbers:
+ * - 0 = #FramerateDisplayWidgets
+ */
+ WC_FRAMERATE_DISPLAY = ::WC_FRAMERATE_DISPLAY,
+
+ /**
+ * Frame time graph; %Window numbers:
+ * - 0 = #FrametimeGraphWindowWidgets
+ */
+ WC_FRAMETIME_GRAPH = ::WC_FRAMETIME_GRAPH,
+
WC_INVALID = ::WC_INVALID, ///< Invalid window.
};
@@ -1275,6 +1288,25 @@ public:
WID_SL_MISSING_NEWGRFS = ::WID_SL_MISSING_NEWGRFS, ///< Button to find missing NewGRFs online.
};
+ /* automatically generated from ../../widgets/framerate_widget.h */
+ /** Widgets of the #FramerateWindow class. */
+ enum FramerateWindowWidgets {
+ WID_FRW_CAPTION = ::WID_FRW_CAPTION,
+ WID_FRW_RATE_GAMELOOP = ::WID_FRW_RATE_GAMELOOP,
+ WID_FRW_RATE_DRAWING = ::WID_FRW_RATE_DRAWING,
+ WID_FRW_RATE_FACTOR = ::WID_FRW_RATE_FACTOR,
+ WID_FRW_INFO_DATA_POINTS = ::WID_FRW_INFO_DATA_POINTS,
+ WID_FRW_TIMES_NAMES = ::WID_FRW_TIMES_NAMES,
+ WID_FRW_TIMES_CURRENT = ::WID_FRW_TIMES_CURRENT,
+ WID_FRW_TIMES_AVERAGE = ::WID_FRW_TIMES_AVERAGE,
+ };
+
+ /** Widgets of the #FrametimeGraphWindow class. */
+ enum FrametimeGraphWindowWidgets {
+ WID_FGW_CAPTION = ::WID_FGW_CAPTION,
+ WID_FGW_GRAPH = ::WID_FGW_GRAPH,
+ };
+
/* automatically generated from ../../widgets/genworld_widget.h */
/** Widgets of the #GenerateLandscapeWindow class. */
enum GenerateLandscapeWidgets {
diff --git a/src/script/api/template/template_window.hpp.sq b/src/script/api/template/template_window.hpp.sq
index a21a75ab8..3077215ec 100644
--- a/src/script/api/template/template_window.hpp.sq
+++ b/src/script/api/template/template_window.hpp.sq
@@ -77,6 +77,10 @@ namespace SQConvert {
template <> inline int Return<ScriptWindow::ErrorMessageWidgets>(HSQUIRRELVM vm, ScriptWindow::ErrorMessageWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
template <> inline ScriptWindow::SaveLoadWidgets GetParam(ForceType<ScriptWindow::SaveLoadWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::SaveLoadWidgets)tmp; }
template <> inline int Return<ScriptWindow::SaveLoadWidgets>(HSQUIRRELVM vm, ScriptWindow::SaveLoadWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+ template <> inline ScriptWindow::FramerateWindowWidgets GetParam(ForceType<ScriptWindow::FramerateWindowWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::FramerateWindowWidgets)tmp; }
+ template <> inline int Return<ScriptWindow::FramerateWindowWidgets>(HSQUIRRELVM vm, ScriptWindow::FramerateWindowWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
+ template <> inline ScriptWindow::FrametimeGraphWindowWidgets GetParam(ForceType<ScriptWindow::FrametimeGraphWindowWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::FrametimeGraphWindowWidgets)tmp; }
+ template <> inline int Return<ScriptWindow::FrametimeGraphWindowWidgets>(HSQUIRRELVM vm, ScriptWindow::FrametimeGraphWindowWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
template <> inline ScriptWindow::GenerateLandscapeWidgets GetParam(ForceType<ScriptWindow::GenerateLandscapeWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::GenerateLandscapeWidgets)tmp; }
template <> inline int Return<ScriptWindow::GenerateLandscapeWidgets>(HSQUIRRELVM vm, ScriptWindow::GenerateLandscapeWidgets res) { sq_pushinteger(vm, (int32)res); return 1; }
template <> inline ScriptWindow::CreateScenarioWidgets GetParam(ForceType<ScriptWindow::CreateScenarioWidgets>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::CreateScenarioWidgets)tmp; }
diff --git a/src/widgets/framerate_widget.h b/src/widgets/framerate_widget.h
new file mode 100644
index 000000000..388599537
--- /dev/null
+++ b/src/widgets/framerate_widget.h
@@ -0,0 +1,33 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file framerate_widget.h Types related to the framerate windows widgets. */
+
+#ifndef WIDGETS_FRAMERATE_WIDGET_H
+#define WIDGETS_FRAMERATE_WIDGET_H
+
+/** Widgets of the #FramerateWindow class. */
+enum FramerateWindowWidgets {
+ WID_FRW_CAPTION,
+ WID_FRW_RATE_GAMELOOP,
+ WID_FRW_RATE_DRAWING,
+ WID_FRW_RATE_FACTOR,
+ WID_FRW_INFO_DATA_POINTS,
+ WID_FRW_TIMES_NAMES,
+ WID_FRW_TIMES_CURRENT,
+ WID_FRW_TIMES_AVERAGE,
+};
+
+/** Widgets of the #FrametimeGraphWindow class. */
+enum FrametimeGraphWindowWidgets {
+ WID_FGW_CAPTION,
+ WID_FGW_GRAPH,
+};
+
+#endif /* WIDGETS_FRAMERATE_WIDGET_H */
diff --git a/src/window_type.h b/src/window_type.h
index c90ef51b6..7185bfcb4 100644
--- a/src/window_type.h
+++ b/src/window_type.h
@@ -689,7 +689,7 @@ enum WindowClass {
/**
* Frame time graph; %Window numbers:
- * - 0 = #FramerateDisplayWidgets
+ * - 0 = #FrametimeGraphWindowWidgets
*/
WC_FRAMETIME_GRAPH,