Browse Source

make Floating Numbers an enum for random, vertical or off

pull/5740/head
Trihedraf 3 years ago committed by Anders Jenbo
parent
commit
624d5be3d2
  1. 7
      Source/options.cpp
  2. 11
      Source/options.h
  3. 13
      Source/qol/floatingnumbers.cpp

7
Source/options.cpp

@ -1025,7 +1025,12 @@ GameplayOptions::GameplayOptions()
, numFullManaPotionPickup("Full Mana Potion Pickup", OptionEntryFlags::None, N_("Full Mana Potion Pickup"), N_("Number of Full Mana potions to pick up automatically."), 0, { 0, 1, 2, 4, 8, 16 })
, numRejuPotionPickup("Rejuvenation Potion Pickup", OptionEntryFlags::None, N_("Rejuvenation Potion Pickup"), N_("Number of Rejuvenation potions to pick up automatically."), 0, { 0, 1, 2, 4, 8, 16 })
, numFullRejuPotionPickup("Full Rejuvenation Potion Pickup", OptionEntryFlags::None, N_("Full Rejuvenation Potion Pickup"), N_("Number of Full Rejuvenation potions to pick up automatically."), 0, { 0, 1, 2, 4, 8, 16 })
, enableFloatingNumbers("Enable floating numbers", OptionEntryFlags::None, "Enable floating numbers", N_("Enables floating numbers on gaining XP / dealing damage etc."), false)
, enableFloatingNumbers("Enable floating numbers", OptionEntryFlags::None, N_("Enable floating numbers"), N_("Enables floating numbers on gaining XP / dealing damage etc."), FloatingNumbers::Off,
{
{ FloatingNumbers::Off, N_("Off") },
{ FloatingNumbers::Random, N_("Random Angles") },
{ FloatingNumbers::Vertical, N_("Vertical Only") },
})
{
grabInput.SetValueChangedCallback(OptionGrabInputChanged);
experienceBar.SetValueChangedCallback(OptionExperienceBarChanged);

11
Source/options.h

@ -61,6 +61,15 @@ enum class Resampler : uint8_t {
string_view ResamplerToString(Resampler resampler);
std::optional<Resampler> ResamplerFromString(string_view resampler);
enum class FloatingNumbers : uint8_t {
/** @brief Show no floating numbers. */
Off = 0,
/** @brief Show floating numbers at random angles. */
Random = 1,
/** @brief Show floating numbers vertically only. */
Vertical = 2,
};
enum class OptionEntryType : uint8_t {
Boolean,
List,
@ -584,7 +593,7 @@ struct GameplayOptions : OptionCategoryBase {
/** @brief Number of Full Rejuvenating potions to pick up automatically */
OptionEntryInt<int> numFullRejuPotionPickup;
/** @brief Enable floating numbers. */
OptionEntryBoolean enableFloatingNumbers;
OptionEntryEnum<FloatingNumbers> enableFloatingNumbers;
};
struct ControllerOptions : OptionCategoryBase {

13
Source/qol/floatingnumbers.cpp

@ -97,7 +97,12 @@ void AddFloatingNumber(Point pos, Displacement offset, DamageType type, int valu
{ -100, -100 },
};
Displacement endOffset = goodAngles[rand() % 3];
Displacement endOffset;
if (*sgOptions.Gameplay.enableFloatingNumbers == FloatingNumbers::Random) {
endOffset = goodAngles[rand() % 3];
} else if (*sgOptions.Gameplay.enableFloatingNumbers == FloatingNumbers::Vertical) {
endOffset = goodAngles[0];
}
if (damageToPlayer)
endOffset = -endOffset;
@ -121,7 +126,7 @@ void AddFloatingNumber(Point pos, Displacement offset, DamageType type, int valu
void AddFloatingNumber(DamageType damageType, const Monster &monster, int damage)
{
if (!*sgOptions.Gameplay.enableFloatingNumbers)
if (*sgOptions.Gameplay.enableFloatingNumbers == FloatingNumbers::Off)
return;
Displacement offset = {};
@ -144,7 +149,7 @@ void AddFloatingNumber(DamageType damageType, const Monster &monster, int damage
void AddFloatingNumber(DamageType damageType, const Player &player, int damage)
{
if (!*sgOptions.Gameplay.enableFloatingNumbers)
if (*sgOptions.Gameplay.enableFloatingNumbers == FloatingNumbers::Off)
return;
Displacement offset = {};
@ -163,7 +168,7 @@ void AddFloatingNumber(DamageType damageType, const Player &player, int damage)
void DrawFloatingNumbers(const Surface &out, Point viewPosition, Displacement offset)
{
if (!*sgOptions.Gameplay.enableFloatingNumbers)
if (*sgOptions.Gameplay.enableFloatingNumbers == FloatingNumbers::Off)
return;
for (auto &floatingNum : FloatingQueue) {

Loading…
Cancel
Save