/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program 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; either version 2 of the License, or (at your
* option) any later version.
*
* This program 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 this program. If not, see .
*/
#ifndef CUFProfile_h__
#define CUFProfile_h__
#include "Define.h"
#include
#include
/// Maximum number of CompactUnitFrames profiles
#define MAX_CUF_PROFILES 5
/// Bit index used in the many bool options of CompactUnitFrames
enum CUFBoolOptions
{
CUF_KEEP_GROUPS_TOGETHER,
CUF_DISPLAY_PETS,
CUF_DISPLAY_MAIN_TANK_AND_ASSIST,
CUF_DISPLAY_HEAL_PREDICTION,
CUF_DISPLAY_AGGRO_HIGHLIGHT,
CUF_DISPLAY_ONLY_DISPELLABLE_DEBUFFS,
CUF_DISPLAY_POWER_BAR,
CUF_DISPLAY_BORDER,
CUF_USE_CLASS_COLORS,
CUF_DISPLAY_HORIZONTAL_GROUPS,
CUF_DISPLAY_NON_BOSS_DEBUFFS,
CUF_DYNAMIC_POSITION,
CUF_LOCKED,
CUF_SHOWN,
CUF_AUTO_ACTIVATE_2_PLAYERS,
CUF_AUTO_ACTIVATE_3_PLAYERS,
CUF_AUTO_ACTIVATE_5_PLAYERS,
CUF_AUTO_ACTIVATE_10_PLAYERS,
CUF_AUTO_ACTIVATE_15_PLAYERS,
CUF_AUTO_ACTIVATE_25_PLAYERS,
CUF_AUTO_ACTIVATE_40_PLAYERS,
CUF_AUTO_ACTIVATE_SPEC_1,
CUF_AUTO_ACTIVATE_SPEC_2,
CUF_AUTO_ACTIVATE_SPEC_3,
CUF_AUTO_ACTIVATE_SPEC_4,
CUF_AUTO_ACTIVATE_PVP,
CUF_AUTO_ACTIVATE_PVE,
CUF_BOOL_OPTIONS_COUNT,
};
/// Represents a CompactUnitFrame profile
struct CUFProfile
{
CUFProfile() : ProfileName(), BoolOptions() // might want to change default value for options
{
FrameHeight = 0;
FrameWidth = 0;
SortBy = 0;
HealthText = 0;
TopPoint = 0;
BottomPoint = 0;
LeftPoint = 0;
TopOffset = 0;
BottomOffset = 0;
LeftOffset = 0;
}
CUFProfile(std::string const& name, uint16 frameHeight, uint16 frameWidth, uint8 sortBy, uint8 healthText, uint32 boolOptions,
uint8 topPoint, uint8 bottomPoint, uint8 leftPoint, uint16 topOffset, uint16 bottomOffset, uint16 leftOffset)
: ProfileName(name), BoolOptions(int(boolOptions))
{
FrameHeight = frameHeight;
FrameWidth = frameWidth;
SortBy = sortBy;
HealthText = healthText;
TopPoint = topPoint;
BottomPoint = bottomPoint;
LeftPoint = leftPoint;
TopOffset = topOffset;
BottomOffset = bottomOffset;
LeftOffset = leftOffset;
}
std::string ProfileName;
uint16 FrameHeight;
uint16 FrameWidth;
uint8 SortBy;
uint8 HealthText;
// LeftAlign, TopAlight, BottomAlign
uint8 TopPoint;
uint8 BottomPoint;
uint8 LeftPoint;
// LeftOffset, TopOffset and BottomOffset
uint16 TopOffset;
uint16 BottomOffset;
uint16 LeftOffset;
std::bitset BoolOptions;
// More fields can be added to BoolOptions without changing DB schema (up to 32, currently 27)
};
#endif // CUFProfile_h__