1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-03-27 21:49:10 +02:00

Merge pull request #3114 from Laserlicht/fix-highscore

fix high scores screen
This commit is contained in:
Ivan Savenko 2023-11-03 15:51:37 +02:00 committed by GitHub
commit 4a24da3804
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 6 deletions

View File

@ -252,7 +252,7 @@ int CHighScoreInputScreen::addEntry(std::string text) {
auto sortFunctor = [](const JsonNode & left, const JsonNode & right)
{
if(left["points"].Integer() == right["points"].Integer())
return left["posFlag"].Integer() > right["posFlag"].Integer();
return left["posFlag"].Bool() > right["posFlag"].Bool();
return left["points"].Integer() > right["points"].Integer();
};
@ -325,7 +325,6 @@ void CHighScoreInputScreen::deactivate()
{
CCS->videoh->close();
CCS->soundh->stopSound(videoSoundHandle);
CIntObject::deactivate();
}
void CHighScoreInputScreen::clickPressed(const Point & cursorPosition)
@ -361,7 +360,7 @@ void CHighScoreInputScreen::keyPressed(EShortcut key)
}
CHighScoreInput::CHighScoreInput(std::string playerName, std::function<void(std::string text)> readyCB)
: CWindowObject(0, ImagePath::builtin("HIGHNAME")), ready(readyCB)
: CWindowObject(NEEDS_ANIMATED_BACKGROUND, ImagePath::builtin("HIGHNAME")), ready(readyCB)
{
OBJ_CONSTRUCTION_CAPTURING_ALL_NO_DISPOSE;

View File

@ -39,7 +39,8 @@ CWindowObject::CWindowObject(int options_, const ImagePath & imageName, Point ce
options(options_),
background(createBg(imageName, options & PLAYER_COLORED))
{
assert(parent == nullptr); //Safe to remove, but windows should not have parent
if(!(options & NEEDS_ANIMATED_BACKGROUND)) //currently workaround for highscores (currently uses window as normal control, because otherwise videos are not played in background yet)
assert(parent == nullptr); //Safe to remove, but windows should not have parent
defActions = 255-DISPOSE;
@ -60,7 +61,8 @@ CWindowObject::CWindowObject(int options_, const ImagePath & imageName):
options(options_),
background(createBg(imageName, options_ & PLAYER_COLORED))
{
assert(parent == nullptr); //Safe to remove, but windows should not have parent
if(!(options & NEEDS_ANIMATED_BACKGROUND)) //currently workaround for highscores (currently uses window as normal control, because otherwise videos are not played in background yet)
assert(parent == nullptr); //Safe to remove, but windows should not have parent
defActions = 255-DISPOSE;

View File

@ -38,7 +38,8 @@ public:
PLAYER_COLORED=1, //background will be player-colored
RCLICK_POPUP=2, // window will behave as right-click popup
BORDERED=4, // window will have border if current resolution is bigger than size of window
SHADOW_DISABLED=8 //this window won't display any shadow
SHADOW_DISABLED=8, //this window won't display any shadow
NEEDS_ANIMATED_BACKGROUND=16 //there are videos in the background that have to be played
};
/*