Mercurial > hg > openttd
changeset 17979:5302cd55d676 draft
(svn r22788) -Codechange: move modal progress related functions and variables to progress.cpp/h
author | rubidium <rubidium@openttd.org> |
---|---|
date | Sun, 21 Aug 2011 12:48:46 +0000 |
parents | 6bba1c18478c |
children | 6c4dd98f3490 |
files | projects/openttd_vs100.vcxproj projects/openttd_vs100.vcxproj.filters projects/openttd_vs80.vcproj projects/openttd_vs90.vcproj source.list src/genworld.cpp src/genworld.h src/genworld_gui.cpp src/gfx.cpp src/main_gui.cpp src/openttd.cpp src/progress.cpp src/progress.h src/video/sdl_v.cpp src/window.cpp |
diffstat | 15 files changed, 102 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/projects/openttd_vs100.vcxproj +++ b/projects/openttd_vs100.vcxproj @@ -343,6 +343,7 @@ <ClCompile Include="..\src\order_backup.cpp" /> <ClCompile Include="..\src\os_timer.cpp" /> <ClCompile Include="..\src\pbs.cpp" /> + <ClCompile Include="..\src\progress.cpp" /> <ClCompile Include="..\src\rail.cpp" /> <ClCompile Include="..\src\rev.cpp" /> <ClCompile Include="..\src\road.cpp" /> @@ -514,6 +515,7 @@ <ClInclude Include="..\src\order_func.h" /> <ClInclude Include="..\src\order_type.h" /> <ClInclude Include="..\src\pbs.h" /> + <ClInclude Include="..\src\progress.h" /> <ClInclude Include="..\src\querystring_gui.h" /> <ClInclude Include="..\src\rail.h" /> <ClInclude Include="..\src\rail_gui.h" />
--- a/projects/openttd_vs100.vcxproj.filters +++ b/projects/openttd_vs100.vcxproj.filters @@ -249,6 +249,9 @@ <ClCompile Include="..\src\pbs.cpp"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="..\src\progress.cpp"> + <Filter>Source Files</Filter> + </ClCompile> <ClCompile Include="..\src\rail.cpp"> <Filter>Source Files</Filter> </ClCompile> @@ -762,6 +765,9 @@ <ClInclude Include="..\src\pbs.h"> <Filter>Header Files</Filter> </ClInclude> + <ClInclude Include="..\src\progress.h"> + <Filter>Header Files</Filter> + </ClInclude> <ClInclude Include="..\src\querystring_gui.h"> <Filter>Header Files</Filter> </ClInclude>
--- a/projects/openttd_vs80.vcproj +++ b/projects/openttd_vs80.vcproj @@ -643,6 +643,10 @@ > </File> <File + RelativePath=".\..\src\progress.cpp" + > + </File> + <File RelativePath=".\..\src\rail.cpp" > </File> @@ -1331,6 +1335,10 @@ > </File> <File + RelativePath=".\..\src\progress.h" + > + </File> + <File RelativePath=".\..\src\querystring_gui.h" > </File>
--- a/projects/openttd_vs90.vcproj +++ b/projects/openttd_vs90.vcproj @@ -640,6 +640,10 @@ > </File> <File + RelativePath=".\..\src\progress.cpp" + > + </File> + <File RelativePath=".\..\src\rail.cpp" > </File> @@ -1328,6 +1332,10 @@ > </File> <File + RelativePath=".\..\src\progress.h" + > + </File> + <File RelativePath=".\..\src\querystring_gui.h" > </File>
--- a/source.list +++ b/source.list @@ -51,6 +51,7 @@ order_backup.cpp os_timer.cpp pbs.cpp +progress.cpp rail.cpp rev.cpp road.cpp @@ -247,6 +248,7 @@ order_func.h order_type.h pbs.h +progress.h querystring_gui.h rail.h rail_gui.h
--- a/src/genworld.cpp +++ b/src/genworld.cpp @@ -32,6 +32,7 @@ #include "newgrf.h" #include "core/random_func.hpp" #include "core/backup_type.hpp" +#include "progress.h" #include "table/sprites.h" @@ -54,11 +55,6 @@ */ GenWorldInfo _gw; -/** Rights for the performing work. */ -ThreadMutex *_modal_progress_work_mutex = ThreadMutex::New(); -/** Rights for the painting. */ -ThreadMutex *_modal_progress_paint_mutex = ThreadMutex::New(); - /** Whether we are generating the map or not. */ bool _generating_world; @@ -82,7 +78,7 @@ if (_cursor.sprite == SPR_CURSOR_ZZZ) SetMouseCursor(SPR_CURSOR_MOUSE, PAL_NONE); /* Show all vital windows again, because we have hidden them */ if (_gw.threaded && _game_mode != GM_MENU) ShowVitalWindows(); - _gw.active = false; + SetModalProgress(false); _gw.proc = NULL; _gw.abortp = NULL; _gw.threaded = false; @@ -280,11 +276,11 @@ */ void GenerateWorld(GenWorldMode mode, uint size_x, uint size_y, bool reset_settings) { - if (_gw.active) return; + if (HasModalProgress()) return; _gw.mode = mode; _gw.size_x = size_x; _gw.size_y = size_y; - _gw.active = true; + SetModalProgress(true); _gw.abort = false; _gw.abortp = NULL; _gw.lc = _local_company;
--- a/src/genworld.h +++ b/src/genworld.h @@ -23,7 +23,6 @@ }; static const uint GENERATE_NEW_SEED = UINT_MAX; ///< Create a new random seed -static const uint MODAL_PROGRESS_REDRAW_TIMEOUT = 200; ///< Timeout between redraws /** Modes for GenerateWorld */ enum GenWorldMode { @@ -42,7 +41,6 @@ /** Properties of current genworld process */ struct GenWorldInfo { - bool active; ///< Is generating world active bool abort; ///< Whether to abort the thread ASAP bool quit_thread; ///< Do we want to quit the active thread bool threaded; ///< Whether we run _GenerateWorld threaded @@ -71,16 +69,6 @@ GWP_CLASS_COUNT }; -/** - * Check if we are currently in the process of generating a world. - * @return are we generating world? - */ -static inline bool HasModalProgress() -{ - extern GenWorldInfo _gw; - return _gw.active; -} - /* genworld.cpp */ bool IsGenerateWorldThreaded(); void GenerateWorldSetCallback(GWDoneProc *proc); @@ -101,8 +89,6 @@ void ShowCreateScenario(); void StartScenarioEditor(); -extern class ThreadMutex *_modal_progress_work_mutex; -extern class ThreadMutex *_modal_progress_paint_mutex; extern bool _generating_world; #endif /* GENWORLD_H */
--- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -29,6 +29,7 @@ #include "settings_func.h" #include "core/geometry_func.hpp" #include "core/random_func.hpp" +#include "progress.h" #include "table/strings.h" #include "table/sprites.h"
--- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -12,7 +12,7 @@ #include "stdafx.h" #include "gfx_func.h" #include "fontcache.h" -#include "genworld.h" +#include "progress.h" #include "zoom_func.h" #include "blitter/factory.hpp" #include "video/video_driver.hpp"
--- a/src/main_gui.cpp +++ b/src/main_gui.cpp @@ -18,7 +18,7 @@ #include "viewport_func.h" #include "command_func.h" #include "console_gui.h" -#include "genworld.h" +#include "progress.h" #include "transparency_gui.h" #include "map_func.h" #include "sound_func.h"
--- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -40,6 +40,7 @@ #include "ai/ai_config.hpp" #include "settings_func.h" #include "genworld.h" +#include "progress.h" #include "group.h" #include "strings_func.h" #include "date_func.h"
new file mode 100644 --- /dev/null +++ b/src/progress.cpp @@ -0,0 +1,30 @@ +/* $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 progress.cpp Functions for modal progress windows. */ + +#include "stdafx.h" +#include "progress.h" +#include "thread/thread.h" + +/** Are we in a modal progress or not? */ +bool _in_modal_progress = false; +/** Rights for the performing work. */ +ThreadMutex *_modal_progress_work_mutex = ThreadMutex::New(); +/** Rights for the painting. */ +ThreadMutex *_modal_progress_paint_mutex = ThreadMutex::New(); + +/** + * Set the modal progress state. + * @param state The new state; are we modal or not? + */ +void SetModalProgress(bool state) +{ + _in_modal_progress = state; +}
new file mode 100644 --- /dev/null +++ b/src/progress.h @@ -0,0 +1,36 @@ +/* $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 progress.h Functions related to modal progress. */ + +#ifndef PROGRESS_H +#define PROGRESS_H + +static const uint MODAL_PROGRESS_REDRAW_TIMEOUT = 200; ///< Timeout between redraws + +/** + * Check if we are currently in a modal progress state. + * @return Are we in the modal state? + */ +static inline bool HasModalProgress() +{ + extern bool _in_modal_progress; + return _in_modal_progress; +} + +/** + * Set the modal progress state. + * @param state The new state; are we modal or not? + */ +void SetModalProgress(bool state); + +extern class ThreadMutex *_modal_progress_work_mutex; +extern class ThreadMutex *_modal_progress_paint_mutex; + +#endif /* PROGRESS_H */
--- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -19,7 +19,7 @@ #include "../blitter/factory.hpp" #include "../network/network.h" #include "../thread/thread.h" -#include "../genworld.h" +#include "../progress.h" #include "../core/random_func.hpp" #include "../core/math_func.hpp" #include "sdl_v.h"