Files
@ r9583:b6e25a00b908
Branch filter:
Location: cpp/openttd-patchpack/source/src/transparency.h - annotation
r9583:b6e25a00b908
3.2 KiB
text/x-c
(svn r13621) -Fix: building roadbits in the wrong direction on bridges or building roadbits from underneath the bridge to the bridgehead is impossible, so don't silently ignore that error when building over houses and industries is not ignored.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | r7849:cfd99cb69695 r7849:cfd99cb69695 r9111:983de9c5a848 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r8123:dde0a9a84019 r8123:dde0a9a84019 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r8528:2bfd692a054f r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r8528:2bfd692a054f r7849:cfd99cb69695 r8527:747e853197d7 r8806:1fc0d9e1c2bf r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7928:a80e7e05d6c5 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r7849:cfd99cb69695 r7849:cfd99cb69695 r8527:747e853197d7 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7932:6b853bdb39ea r7849:cfd99cb69695 r7849:cfd99cb69695 r8527:747e853197d7 r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8806:1fc0d9e1c2bf r8527:747e853197d7 r8527:747e853197d7 r8527:747e853197d7 r8527:747e853197d7 r8527:747e853197d7 r8527:747e853197d7 r8527:747e853197d7 r8527:747e853197d7 r8527:747e853197d7 r8527:747e853197d7 r7849:cfd99cb69695 r7849:cfd99cb69695 r8527:747e853197d7 r8527:747e853197d7 r8527:747e853197d7 r8658:a4238b2050b2 r7849:cfd99cb69695 r8527:747e853197d7 r8527:747e853197d7 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 r7849:cfd99cb69695 | /* $Id$ */
/** @file transparency.h Functions related to transparency. */
#ifndef TRANSPARENCY_H
#define TRANSPARENCY_H
#include "gfx_func.h"
/**
* Transparency option bits: which position in _transparency_opt stands for which transparency.
* If you change the order, change the order of the ShowTransparencyToolbar() stuff in transparency_gui.cpp too.
* If you add or remove an option don't forget to change the transparency 'hot keys' in main_gui.cpp.
*/
enum TransparencyOption {
TO_SIGNS = 0, ///< signs
TO_TREES, ///< trees
TO_HOUSES, ///< town buildings
TO_INDUSTRIES, ///< industries
TO_BUILDINGS, ///< player buildings - depots, stations, HQ, ...
TO_BRIDGES, ///< bridges
TO_STRUCTURES, ///< unmovable structures
TO_CATENARY, ///< catenary
TO_LOADING, ///< loading indicators
TO_END,
};
typedef uint TransparencyOptionBits; ///< transparency option bits
extern TransparencyOptionBits _transparency_opt;
extern TransparencyOptionBits _transparency_lock;
extern TransparencyOptionBits _invisibility_opt;
/**
* Check if the transparency option bit is set
* and if we aren't in the game menu (there's never transparency)
*
* @param to the structure which transparency option is ask for
*/
static inline bool IsTransparencySet(TransparencyOption to)
{
return (HasBit(_transparency_opt, to) && _game_mode != GM_MENU);
}
/**
* Check if the invisibility option bit is set
* and if we aren't in the game menu (there's never transparency)
*
* @param to the structure which invisibility option is ask for
*/
static inline bool IsInvisibilitySet(TransparencyOption to)
{
return (HasBit(_transparency_opt & _invisibility_opt, to) && _game_mode != GM_MENU);
}
/**
* Toggle the transparency option bit
*
* @param to the transparency option to be toggled
*/
static inline void ToggleTransparency(TransparencyOption to)
{
ToggleBit(_transparency_opt, to);
}
/**
* Toggle the invisibility option bit
*
* @param to the structure which invisibility option is toggle
*/
static inline void ToggleInvisibility(TransparencyOption to)
{
ToggleBit(_invisibility_opt, to);
}
/**
* Toggles between invisible and solid state.
* If object is transparent, then it is made invisible.
* Used by the keyboard shortcuts.
*
* @param to the object type which invisibility option to toggle
*/
static inline void ToggleInvisibilityWithTransparency(TransparencyOption to)
{
if (IsInvisibilitySet(to)) {
ClrBit(_invisibility_opt, to);
ClrBit(_transparency_opt, to);
} else {
SetBit(_invisibility_opt, to);
SetBit(_transparency_opt, to);
}
}
/**
* Toggle the transparency lock bit
*
* @param to the transparency option to be locked or unlocked
*/
static inline void ToggleTransparencyLock(TransparencyOption to)
{
ToggleBit(_transparency_lock, to);
}
/** Set or clear all non-locked transparency options */
static inline void ResetRestoreAllTransparency()
{
/* if none of the non-locked options are set */
if ((_transparency_opt & ~_transparency_lock) == 0) {
/* set all non-locked options */
_transparency_opt |= GB(~_transparency_lock, 0, TO_END);
} else {
/* clear all non-locked options */
_transparency_opt &= _transparency_lock;
}
MarkWholeScreenDirty();
}
#endif /* TRANSPARENCY_H */
|