diff --git a/include/config.h b/include/config.h index 840274a9..fd3eda0a 100644 --- a/include/config.h +++ b/include/config.h @@ -56,6 +56,8 @@ #define CAMERA_FIX // Increase the maximum pole length (it will treat bparam1 and bparam2 as a single value) #define LONGER_POLES +// Disable lives and hide the lives counter +#define DISABLE_LIVES // Uncomment this if you want global star IDs (useful for creating an open world hack ala MVC) //#define GLOBAL_STAR_IDS // Uncomment this if you want to skip the title screen (Super Mario 64 logo) diff --git a/src/game/hud.c b/src/game/hud.c index 49ce548e..f11b626d 100644 --- a/src/game/hud.c +++ b/src/game/hud.c @@ -487,11 +487,11 @@ void render_hud(void) { if (gCurrentArea != NULL && gCurrentArea->camera->mode == CAMERA_MODE_INSIDE_CANNON) { render_hud_cannon_reticle(); } - + #ifndef DISABLE_LIVES if (hudDisplayFlags & HUD_DISPLAY_FLAG_LIVES) { render_hud_mario_lives(); } - + #endif if (hudDisplayFlags & HUD_DISPLAY_FLAG_COIN_COUNT) { render_hud_coins(); } diff --git a/src/game/level_update.c b/src/game/level_update.c index 5e029078..da3cc880 100644 --- a/src/game/level_update.c +++ b/src/game/level_update.c @@ -736,9 +736,11 @@ s16 level_trigger_warp(struct MarioState *m, s32 warpOp) { break; case WARP_OP_DEATH: + #ifndef DISABLE_LIVES if (m->numLives == 0) { sDelayedWarpOp = WARP_OP_GAME_OVER; } + #endif sDelayedWarpTimer = 48; sSourceWarpNodeId = WARP_NODE_DEATH; play_transition(WARP_TRANSITION_FADE_INTO_BOWSER, 0x30, 0x00, 0x00, 0x00); @@ -748,12 +750,17 @@ s16 level_trigger_warp(struct MarioState *m, s32 warpOp) { case WARP_OP_WARP_FLOOR: sSourceWarpNodeId = WARP_NODE_WARP_FLOOR; if (area_get_warp_node(sSourceWarpNodeId) == NULL) { + #ifndef DISABLE_LIVES if (m->numLives == 0) { sDelayedWarpOp = WARP_OP_GAME_OVER; } else { sSourceWarpNodeId = WARP_NODE_DEATH; } + #else + sSourceWarpNodeId = WARP_NODE_DEATH; + #endif } + sDelayedWarpTimer = 20; play_transition(WARP_TRANSITION_FADE_INTO_CIRCLE, 0x14, 0x00, 0x00, 0x00); break;