mirror of
https://github.com/TES3MP/TES3MP.git
synced 2025-09-28 07:32:00 -04:00
Add support for scietific notation flag for MessageBox
This commit is contained in:
parent
52d4e25314
commit
579f35511a
@ -557,7 +557,7 @@ namespace Compiler
|
|||||||
mExplicit.clear();
|
mExplicit.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GetArgumentsFromMessageFormat::visitedPlaceholder(Placeholder placeholder, char /*padding*/, int /*width*/, int /*precision*/)
|
void GetArgumentsFromMessageFormat::visitedPlaceholder(Placeholder placeholder, char /*padding*/, int /*width*/, int /*precision*/, Notation /*notation*/)
|
||||||
{
|
{
|
||||||
switch (placeholder)
|
switch (placeholder)
|
||||||
{
|
{
|
||||||
|
@ -83,7 +83,7 @@ namespace Compiler
|
|||||||
std::string mArguments;
|
std::string mArguments;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void visitedPlaceholder(Placeholder placeholder, char padding, int width, int precision);
|
virtual void visitedPlaceholder(Placeholder placeholder, char padding, int width, int precision, Notation notation);
|
||||||
virtual void visitedCharacter(char c) {}
|
virtual void visitedCharacter(char c) {}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -24,7 +24,7 @@ namespace Interpreter
|
|||||||
Runtime& mRuntime;
|
Runtime& mRuntime;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void visitedPlaceholder(Placeholder placeholder, char padding, int width, int precision)
|
virtual void visitedPlaceholder(Placeholder placeholder, char padding, int width, int precision, Notation notation)
|
||||||
{
|
{
|
||||||
std::ostringstream out;
|
std::ostringstream out;
|
||||||
out.fill(padding);
|
out.fill(padding);
|
||||||
@ -58,7 +58,11 @@ namespace Interpreter
|
|||||||
float value = mRuntime[0].mFloat;
|
float value = mRuntime[0].mFloat;
|
||||||
mRuntime.pop();
|
mRuntime.pop();
|
||||||
|
|
||||||
|
if (notation == FixedNotation)
|
||||||
out << std::fixed << value;
|
out << std::fixed << value;
|
||||||
|
else
|
||||||
|
out << std::scientific << value;
|
||||||
|
|
||||||
mFormattedMessage += out.str();
|
mFormattedMessage += out.str();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -49,11 +49,13 @@ namespace Misc
|
|||||||
width = (widthSet) ? width : -1;
|
width = (widthSet) ? width : -1;
|
||||||
|
|
||||||
if (m[i] == 'S' || m[i] == 's')
|
if (m[i] == 'S' || m[i] == 's')
|
||||||
visitedPlaceholder(StringPlaceholder, pad, width, precision);
|
visitedPlaceholder(StringPlaceholder, pad, width, precision, FixedNotation);
|
||||||
else if (m[i] == 'g' || m[i] == 'G')
|
else if (m[i] == 'd' || m[i] == 'i')
|
||||||
visitedPlaceholder(IntegerPlaceholder, pad, width, precision);
|
visitedPlaceholder(IntegerPlaceholder, pad, width, precision, FixedNotation);
|
||||||
else if (m[i] == 'f' || m[i] == 'F')
|
else if (m[i] == 'f' || m[i] == 'F')
|
||||||
visitedPlaceholder(FloatPlaceholder, pad, width, precision);
|
visitedPlaceholder(FloatPlaceholder, pad, width, precision, FixedNotation);
|
||||||
|
else if (m[i] == 'e' || m[i] == 'E')
|
||||||
|
visitedPlaceholder(FloatPlaceholder, pad, width, precision, ScientificNotation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,13 @@ namespace Misc
|
|||||||
FloatPlaceholder
|
FloatPlaceholder
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual void visitedPlaceholder(Placeholder placeholder, char padding, int width, int precision) = 0;
|
enum Notation
|
||||||
|
{
|
||||||
|
FixedNotation,
|
||||||
|
ScientificNotation
|
||||||
|
};
|
||||||
|
|
||||||
|
virtual void visitedPlaceholder(Placeholder placeholder, char padding, int width, int precision, Notation notation) = 0;
|
||||||
virtual void visitedCharacter(char c) = 0;
|
virtual void visitedCharacter(char c) = 0;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user