Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
2.6 kB · 115 lines
C++
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116#include "stdafx.h"#include "NumberFormaters.h"#include "StatFormatter.h"#include "Stats.h"#include "Stat.h"
Stat::DefaultFormat *Stat::defaultFormatter = new DefaultFormat();Stat::TimeFormatter *Stat::timeFormatter = new TimeFormatter();Stat::DistanceFormatter *Stat::distanceFormatter = new DistanceFormatter();
// 4J Stu - Changed this to take in a printf format string insteadDecimalFormat *Stat::decimalFormat = new DecimalFormat(L"%0(3).2f");
void Stat::_init(){ awardLocallyOnly = false;}
Stat::Stat(int id, const wstring& name, StatFormatter *formatter) : id(id), name(name), formatter(formatter){ _init();}
Stat::Stat(int id, const wstring& name) : id(id), name(name), formatter(defaultFormatter){ _init();}
Stat *Stat::setAwardLocallyOnly(){ awardLocallyOnly = true; return this;}
Stat *Stat::postConstruct(){ //if (Stats::statsById->containsKey(id)) //{ //throw new RuntimeException("Duplicate stat id: \"" + Stats::statsById->get(id)->name + "\" and \"" + name + "\" at id " + id); 4J - TODO //} Stats::all->push_back(this);
pair<int, Stat *> id1(id,this);#ifdef __PS3__ Stats::statsById->emplace(id1 );// assert(0); // MGH - TODO - FIX - find out where this move function comes from#else Stats::statsById->emplace( move(id1) );#endif // __PS3__
return this;}
bool Stat::isAchievement(){ return false;}
wstring Stat::format(int value){ return ((StatFormatter *)formatter)->format(value);}
wstring Stat::toString(){ return name;}
wstring Stat::TimeFormatter::format(int value){ double seconds = value / 20.0; double minutes = seconds / 60.0; double hours = minutes / 60.0; double days = hours / 24.0; double years = days / 365.0;
if (years > 0.5) { return decimalFormat->format(years) + L" y"; } else if (days > 0.5) { return decimalFormat->format(days) + L" d"; } else if (hours > 0.5) { return decimalFormat->format(hours) + L" h"; } else if (minutes > 0.5) { return decimalFormat->format(minutes) + L" m"; }
return _toString<double>(seconds) + L" s";}
wstring Stat::DefaultFormat::format(int value){ return NumberFormat::format( value ); //numberFormat->format(value);}
wstring Stat::DistanceFormatter::format(int cm){ double meters = cm / 100.0; double kilometers = meters / 1000.0;
if (kilometers > 0.5) { return decimalFormat->format(kilometers) + L" km";
} else if (meters > 0.5) { return decimalFormat->format(meters) + L" m"; } return _toString<int>(cm) + L" cm";}