iw4x-client/src/Components/Modules/Changelog.cpp

69 lines
1.4 KiB
C++
Raw Normal View History

2017-02-04 12:42:12 -05:00
#include "STDInclude.hpp"
namespace Components
{
std::vector<Changelog::changelogLine> Changelog::Line;
void Changelog::LoadChangelog(UIScript::Token)
{
if (!Changelog::Line.empty())
return;
2017-02-04 12:42:12 -05:00
std::vector<std::string> changelog;
Changelog::Line.clear();
{
std::string uncleaned = Utils::Cache::GetFile("/iw4/changelog.txt");
if (uncleaned.empty())
{
uncleaned = "\n\n^1Unable to get changelog.";
}
2017-02-04 12:42:12 -05:00
changelog = Utils::String::Explode(uncleaned, '\n');
}
for (auto line : changelog)
{
Changelog::changelogLine info;
Utils::String::Replace(line, "\r", "");
info.line = Utils::String::Trim(line);
Changelog::Line.push_back(info);
}
// Reverse, latest demo first!
//std::reverse(Changelog::Line.begin(), Changelog::Line.end());
}
unsigned int Changelog::GetChangelogCount()
{
return Changelog::Line.size();
}
// Omit column here
const char* Changelog::GetChangelogText(unsigned int item, int /*column*/)
{
if (item < Changelog::Line.size())
{
std::string info = Changelog::Line[item].line;
return Utils::String::VA("%s", info.data());
}
return "";
}
void Changelog::SelectChangelog(unsigned int index) { index; }
Changelog::Changelog()
{
// UIScripts
UIScript::Add("loadChangelog", Changelog::LoadChangelog);
// Changelog
UIFeeder::Add(39.0f, Changelog::GetChangelogCount, Changelog::GetChangelogText, Changelog::SelectChangelog);
}
}