File diff r8805:52da6ef5942c → r8806:1fc0d9e1c2bf
src/transparency.h
Show inline comments
 
@@ -28,6 +28,7 @@ enum TransparencyOption {
 
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
 
@@ -41,6 +42,17 @@ static inline bool IsTransparencySet(Tra
 
}
 

	
 
/**
 
 * 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
 
@@ -51,6 +63,34 @@ static inline void ToggleTransparency(Tr
 
}
 

	
 
/**
 
 * 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