mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-20 20:23:03 +02:00
4af288aee4
We need to make sure it's not stay active during gameplay. Proper fix would require actually removing menu interface from GH, but then GH needs refactoring too.
59 lines
1.6 KiB
C++
59 lines
1.6 KiB
C++
/*
|
|
* CreditsScreen.cpp, part of VCMI engine
|
|
*
|
|
* Authors: listed in file AUTHORS in main folder
|
|
*
|
|
* License: GNU General Public License v2.0 or later
|
|
* Full text of license available in license.txt file, in main folder
|
|
*
|
|
*/
|
|
|
|
#include "StdInc.h"
|
|
|
|
#include "CreditsScreen.h"
|
|
#include "../mainmenu/CMainMenu.h"
|
|
#include "../gui/CGuiHandler.h"
|
|
#include "../widgets/TextControls.h"
|
|
#include "../widgets/ObjectLists.h"
|
|
|
|
#include "../../lib/filesystem/Filesystem.h"
|
|
|
|
CreditsScreen::CreditsScreen(Rect rect)
|
|
: CIntObject(LCLICK | RCLICK), positionCounter(0)
|
|
{
|
|
pos.w = rect.w;
|
|
pos.h = rect.h;
|
|
type |= REDRAW_PARENT;
|
|
OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE;
|
|
auto textFile = CResourceHandler::get()->load(ResourceID("DATA/CREDITS.TXT"))->readAll();
|
|
std::string text((char *)textFile.first.get(), textFile.second);
|
|
size_t firstQuote = text.find('\"') + 1;
|
|
text = text.substr(firstQuote, text.find('\"', firstQuote) - firstQuote);
|
|
credits = std::make_shared<CMultiLineLabel>(Rect(pos.w - 350, 0, 350, 600), FONT_CREDITS, CENTER, Colors::WHITE, text);
|
|
credits->scrollTextTo(-600); // move all text below the screen
|
|
}
|
|
|
|
void CreditsScreen::show(SDL_Surface * to)
|
|
{
|
|
CIntObject::show(to);
|
|
positionCounter++;
|
|
if(positionCounter % 2 == 0)
|
|
credits->scrollTextBy(1);
|
|
|
|
//end of credits, close this screen
|
|
if(credits->textSize.y + 600 < positionCounter / 2)
|
|
clickRight(false, false);
|
|
}
|
|
|
|
void CreditsScreen::clickLeft(tribool down, bool previousState)
|
|
{
|
|
clickRight(down, previousState);
|
|
}
|
|
|
|
void CreditsScreen::clickRight(tribool down, bool previousState)
|
|
{
|
|
CTabbedInt * menu = dynamic_cast<CTabbedInt *>(parent);
|
|
assert(menu);
|
|
menu->setActive(0);
|
|
}
|