mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2026-01-30 09:54:10 +03:00
Give MotU trophy in normal mode
This makes it so that it is possible to obtain the Master of the Universe trophy/achievement, usually unlocked by beating No Death Mode, outside of NDM. There are several conditions that need to be met: 1. The game needs to be started from a new game and cannot be from loading a save. 2. Accessibility modes (invincibility and slowdown) must never be enabled. If either condition is violated, then the boolean that keeps track of NDM eligibility will be set to false.
This commit is contained in:
@@ -225,6 +225,7 @@ void Game::init(void)
|
||||
ndmresulthardestroom_x = hardestroom_x;
|
||||
ndmresulthardestroom_y = hardestroom_y;
|
||||
ndmresulthardestroom_specialname = false;
|
||||
nodeatheligible = false;
|
||||
|
||||
customcol=0;
|
||||
|
||||
@@ -3312,11 +3313,14 @@ void Game::updatestate(void)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (nodeathmode)
|
||||
if (nodeathmode || nodeatheligible)
|
||||
{
|
||||
unlockAchievement("vvvvvvmaster"); //bloody hell
|
||||
unlocknum(UnlockTrophy_NODEATHMODE_COMPLETE);
|
||||
}
|
||||
|
||||
if (nodeathmode)
|
||||
{
|
||||
setstate(3520);
|
||||
setstatedelay(0);
|
||||
}
|
||||
@@ -7768,6 +7772,11 @@ void Game::returntoingame(void)
|
||||
}
|
||||
}
|
||||
DEFER_CALLBACK(nextbgcolor);
|
||||
|
||||
if (nocompetitive())
|
||||
{
|
||||
invalidate_ndm_trophy();
|
||||
}
|
||||
}
|
||||
|
||||
void Game::unlockAchievement(const char* name)
|
||||
@@ -7820,6 +7829,15 @@ void Game::copyndmresults(void)
|
||||
SDL_memcpy(ndmresultcrewstats, crewstats, sizeof(ndmresultcrewstats));
|
||||
}
|
||||
|
||||
void Game::invalidate_ndm_trophy(void)
|
||||
{
|
||||
if (nodeatheligible)
|
||||
{
|
||||
vlog_debug("NDM trophy is invalidated!");
|
||||
}
|
||||
nodeatheligible = false;
|
||||
}
|
||||
|
||||
static inline int get_framerate(const int slowdown)
|
||||
{
|
||||
switch (slowdown)
|
||||
|
||||
Reference in New Issue
Block a user