| author | egladil | 
| Sat, 29 Dec 2007 05:15:13 +0000 | |
| changeset 8652 | e06732646b8a | 
| parent 8619 | c2434269c3eb | 
| child 9023 | 3435736a1a6b | 
| permissions | -rw-r--r-- | 
| 
8345
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
1  | 
/* $Id$ */  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
2  | 
|
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
3  | 
/** @file transparency.h */  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
4  | 
|
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
5  | 
#ifndef TRANSPARENCY_H  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
6  | 
#define TRANSPARENCY_H  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
7  | 
|
| 
8619
 
c2434269c3eb
(svn r11684) -Codechange: split gfx.h in a type and functional header.
 
rubidium 
parents: 
8428 
diff
changeset
 | 
8  | 
#include "gfx_func.h"  | 
| 
 
c2434269c3eb
(svn r11684) -Codechange: split gfx.h in a type and functional header.
 
rubidium 
parents: 
8428 
diff
changeset
 | 
9  | 
|
| 
8345
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
10  | 
/**  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
11  | 
* Transparency option bits: which position in _transparency_opt stands for which transparency.  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
12  | 
* If you change the order, change the order of the ShowTransparencyToolbar() stuff in transparency_gui.cpp too.  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
13  | 
* If you add or remove an option don't forget to change the transparency 'hot keys' in main_gui.cpp.  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
14  | 
* If you add an option and have more then 8, change the typedef TransparencyOptionBits and  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
15  | 
* the save stuff (e.g. SLE_UINT8 to SLE_UINT16) in settings.cpp .  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
16  | 
*/  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
17  | 
enum TransparencyOption {
 | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
18  | 
TO_SIGNS = 0, ///< signs  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
19  | 
TO_TREES, ///< trees  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
20  | 
TO_HOUSES, ///< town buildings  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
21  | 
TO_INDUSTRIES, ///< industries  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
22  | 
TO_BUILDINGS, ///< player buildings - depots, stations, HQ, ...  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
23  | 
TO_BRIDGES, ///< bridges  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
24  | 
TO_STRUCTURES, ///< unmovable structures  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
25  | 
TO_LOADING, ///< loading indicators  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
26  | 
TO_END,  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
27  | 
};  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
28  | 
|
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
29  | 
typedef byte TransparencyOptionBits; ///< transparency option bits  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
30  | 
extern TransparencyOptionBits _transparency_opt;  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
31  | 
|
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
32  | 
/**  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
33  | 
* Check if the transparency option bit is set  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
34  | 
* and if we aren't in the game menu (there's never transparency)  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
35  | 
*  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
36  | 
* @param to the structure which transparency option is ask for  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
37  | 
*/  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
38  | 
static inline bool IsTransparencySet(TransparencyOption to)  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
39  | 
{
 | 
| 
8424
 
4a488a90ccab
(svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
 
skidd13 
parents: 
8345 
diff
changeset
 | 
40  | 
return (HasBit(_transparency_opt, to) && _game_mode != GM_MENU);  | 
| 
8345
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
41  | 
}  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
42  | 
|
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
43  | 
/**  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
44  | 
* Toggle the transparency option bit  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
45  | 
*  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
46  | 
* @param to the structure which transparency option is toggle  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
47  | 
*/  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
48  | 
static inline void ToggleTransparency(TransparencyOption to)  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
49  | 
{
 | 
| 
8428
 
f8300c908bd9
(svn r11485) -Codechange: Remove the doubled function ToggleBitT and rename the remaining to fit with the naming style
 
skidd13 
parents: 
8424 
diff
changeset
 | 
50  | 
ToggleBit(_transparency_opt, to);  | 
| 
8345
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
51  | 
}  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
52  | 
|
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
53  | 
/** Toggle all transparency options (except signs) or restore the stored transparencies */  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
54  | 
static inline void ResetRestoreAllTransparency()  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
55  | 
{
 | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
56  | 
/* backup of the original transparencies or if all transparencies false toggle them to true */  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
57  | 
static TransparencyOptionBits trans_opt = ~0;  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
58  | 
|
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
59  | 
	if (_transparency_opt == 0) {
 | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
60  | 
/* no structure is transparent, so restore the old transparency if present otherwise set all true */  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
61  | 
_transparency_opt = trans_opt;  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
62  | 
	} else {
 | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
63  | 
/* any structure is transparent, so store current transparency settings and reset it */  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
64  | 
trans_opt = _transparency_opt;  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
65  | 
_transparency_opt = 0;  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
66  | 
}  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
67  | 
|
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
68  | 
MarkWholeScreenDirty();  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
69  | 
}  | 
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
70  | 
|
| 
 
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
 
belugas 
parents:  
diff
changeset
 | 
71  | 
#endif /* TRANSPARENCY_H */  |