Skip to content

Conversation

@provigz
Copy link
Member

@provigz provigz commented Dec 17, 2025

After a level from a worldmap is finished, any collected Tux Dolls are added to the total count in the player status in the savegame of the world (if they are more than collected previously).

A contrib world can now have a required amount of Tux Dolls to be collected from Story Mode for it to be accessible.

Screenshot of locked world, requiring Tux Dolls

The worldmap HUD now shows the amount of Tux Dolls collected, instead of coins.

A statistic for collected Tux Dolls in a level is now also shown in the statistics panel on worldmap, if at least 1 Tux Doll was collected from the level.

…ain amount to unlock a world

After a level from a worldmap is finished, any collected Tux Dolls are added to the total count in the player status in the savegame of the world (if they are more than collected previously).

A contrib world can now have a required amount of Tux Dolls to be collected from Story Mode for it to be accessible.
@provigz provigz added this to the 0.7.0 milestone Dec 17, 2025
@provigz provigz self-assigned this Dec 17, 2025
Copy link
Contributor

@MatusGuy MatusGuy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • I managed to get the following assertion to fail (top most recent):

      #  Symbol                                File                Ln  Address
    1  __pthread_kill_implementation                                 0x7ffff709dd3c 
    2  raise                                                         0x7ffff70427b6 
    3  abort                                                         0x7ffff702934b 
    4  __assert_fail_base.cold                                       0x7ffff7029295 
    5  Statistics::draw_worldmap_info        statistics.cpp      243 0x948a08       
    6  worldmap::WorldMapSector::draw_status worldmap_sector.cpp 246 0x9d5081       
    7  worldmap::WorldMapSector::draw        worldmap_sector.cpp 209 0x9d4ce5       
    8  worldmap::WorldMap::draw              worldmap.cpp        160 0x9d0999       
    9  ScreenManager::draw                   screen_manager.cpp  274 0x92aa36       
    10 ScreenManager::loop_iter              screen_manager.cpp  664 0x92be9b       
    11 ScreenManager::run                    screen_manager.cpp  696 0x92bf4d       
    12 Main::launch_game                     main.cpp            680 0x86dba5       
    13 Main::run                             main.cpp            767 0x86e2a7       
    14 main                                  main.cpp            30  0x9e05c7
    

    It happens when clearing "Fork In The Road"'s secret exit, going into the opposite path of the secret exit in the worldmap (which doesn't look like something you should be able to do) and going back into the "Fork In The Road" level dot.
    It also seems to happen when going back to any cleared level dot? Not entirely sure what is the pattern.

  • The info block in "Welcome to Antarctica" will become outdated if this is merged.

break;
case ONEUP:
player->get_status().add_coins(100);
Sector::get().get_level().m_stats.increment_tuxdolls();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replacing add_coins means that the tuxdoll collect sound no longer gets played. It feels awkward.

Comment on lines +121 to +129
if (story_tuxdolls >= worlds[i]->get_tuxdolls_required())
{
add_entry(world_id++, title_str).set_help(worlds[i]->get_description());
}
else
{
add_item(std::make_unique<ItemLockedWorld>(title_str, story_tuxdolls, worlds[i]->get_tuxdolls_required()));
++world_id;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (story_tuxdolls >= worlds[i]->get_tuxdolls_required())
{
add_entry(world_id++, title_str).set_help(worlds[i]->get_description());
}
else
{
add_item(std::make_unique<ItemLockedWorld>(title_str, story_tuxdolls, worlds[i]->get_tuxdolls_required()));
++world_id;
}
if (story_tuxdolls >= worlds[i]->get_tuxdolls_required())
{
add_entry(world_id, title_str).set_help(worlds[i]->get_description());
}
else
{
add_item(std::make_unique<ItemLockedWorld>(title_str, story_tuxdolls, worlds[i]->get_tuxdolls_required()));
}
world_id++;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants