1 #pragma once
2 // -- NOT to be included in headers  --
3 
4 #include <iomanip>
5 #include <OgreLogManager.h>
6 #include <OgreStringConverter.h>
7 #include <MyGUI_LanguageManager.h>
8 
9 //  Log in ogre.log
10 #define LogO(s)  Ogre::LogManager::getSingleton().logMessage(s)
11 
12 //  to string
13 #define toStr(v)   Ogre::StringConverter::toString(v)
14 #define toStrC(v)  Ogre::StringConverter::toString(v).c_str()
15 
16 //  translation
17 #define TR(s)  MyGUI::LanguageManager::getInstance().replaceTags(s)
18 
19 
20 //  format int,float to string
21 static Ogre::String iToStr(const int v, const char width=0)
22 {
23 	std::ostringstream s;
24 	if (width != 0)  s.width(width);  //s.fill(fill);
25 	s << std::fixed << v;
26 	return s.str();
27 }
28 static Ogre::String fToStr(const float v, const char precision=2, const char width=4, const char fill=' ')
29 {
30 	std::ostringstream s;
31 	if (width != 0)  s.width(width);  s.fill(fill);
32 	s << std::fixed << std::setprecision(precision) << v;
33 	return s.str();
34 }
35 
36 //  string to var
37 #define s2r(s)  Ogre::StringConverter::parseReal(s)
38 #define s2i(s)  Ogre::StringConverter::parseInt(s)
39 #define s2c(s)  Ogre::StringConverter::parseColourValue(s)
40 
41 #define s2v2(s) Ogre::StringConverter::parseVector2(s)
42 #define s2v(s)  Ogre::StringConverter::parseVector3(s)
43 #define s2v4(s) Ogre::StringConverter::parseVector4(s)
44 
45 #define b2s(b)  (b) ? "true" : "false"
46 
47 
48 const int ciShadowSizesNum = 5;
49 const int ciShadowSizesA[ciShadowSizesNum] = {256,512,1024,2048,4096};
50 
StrTime(float time)51 static Ogre::String StrTime(float time)  // format time string
52 {
53 	int min = (int) time / 60;
54 	float secs = time - min*60;
55 	if (time != 0.f)
56 	{	Ogre::String ss = toStr(min)+":"+fToStr(secs,2,5,'0');
57 		return ss;
58 	}else
59 		return "-:--.--";
60 }
StrTime2(float time)61 static Ogre::String StrTime2(float time)  // short
62 {
63 	int min = (int) time / 60;
64 	float secs = time - min*60;
65 	if (time != 0.0)
66 	{	Ogre::String ss = toStr(min)+":"+fToStr(secs,0,2,'0');
67 		return ss;
68 	}else
69 		return "-:--";
70 }
71