Added 'non-stop' mode option for speedrunners

This commit is contained in:
MysterD 2022-03-12 02:41:07 -08:00
parent b87421dd9d
commit 7787d7b673
5 changed files with 11 additions and 8 deletions

View File

@ -945,7 +945,9 @@ u32 interact_star_or_key(struct MarioState *m, UNUSED u32 interactType, struct O
return set_mario_action(m, ACT_JUMBO_STAR_CUTSCENE, 0);
}
return set_mario_action(m, starGrabAction, noExit + 2 * grandStar);
if (!noExit || gServerSettings.stayInLevelAfterStar != 2) {
return set_mario_action(m, starGrabAction, noExit + 2 * grandStar);
}
}
return FALSE;

View File

@ -126,7 +126,7 @@ unsigned int configHostPort = DEFAULT_PORT;
unsigned int configHostSaveSlot = 1;
unsigned int configPlayerInteraction = 1;
unsigned int configPlayerKnockbackStrength = 25;
bool configStayInLevelAfterStar = 0;
unsigned int configStayInLevelAfterStar = 0;
unsigned int configNetworkSystem = 0;
char configPlayerName[MAX_PLAYER_STRING] = "";
unsigned int configPlayerModel = 0;
@ -208,7 +208,7 @@ static const struct ConfigOption options[] = {
{.name = "coop_player_model", .type = CONFIG_TYPE_UINT , .uintValue = &configPlayerModel},
{.name = "coop_player_name", .type = CONFIG_TYPE_STRING, .stringValue = (char*)&configPlayerName, .maxStringLength = MAX_PLAYER_STRING},
{.name = "coop_player_palette", .type = CONFIG_TYPE_UINT , .uintValue = &configPlayerPalette},
{.name = "coop_stay_in_level_after_star", .type = CONFIG_TYPE_UINT , .boolValue = &configStayInLevelAfterStar},
{.name = "coop_stay_in_level_after_star", .type = CONFIG_TYPE_UINT , .uintValue = &configStayInLevelAfterStar},
{.name = "share_lives", .type = CONFIG_TYPE_BOOL , .boolValue = &configShareLives},
};

View File

@ -82,7 +82,7 @@ extern unsigned int configHostPort;
extern unsigned int configHostSaveSlot;
extern unsigned int configPlayerInteraction;
extern unsigned int configPlayerKnockbackStrength;
extern bool configStayInLevelAfterStar;
extern unsigned int configStayInLevelAfterStar;
extern unsigned int configNetworkSystem;
extern char configPlayerName[];
extern unsigned int configPlayerModel;

View File

@ -45,7 +45,7 @@ static void debug_warp_level1() {
}
static void debug_warp_level2() {
dynos_warp_to_level(LEVEL_WF, 1, 1);
dynos_warp_to_level(LEVEL_BOWSER_1, 1, 1);
}
static void debug_grand_star(void) {

View File

@ -63,9 +63,10 @@ void djui_panel_host_settings_create(struct DjuiBase* caller) {
djui_base_set_size(&selectionbox2->base, 1.0f, 32);
djui_interactable_hook_value_change(&selectionbox2->base, djui_panel_host_settings_knockback_change);
struct DjuiCheckbox* checkbox1 = djui_checkbox_create(&body->base, "Stay in level after star", &configStayInLevelAfterStar);
djui_base_set_size_type(&checkbox1->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
djui_base_set_size(&checkbox1->base, 1.0f, 32);
char* lChoices[3] = { "Leave level", "Stay in level", "Non-stop" };
struct DjuiSelectionbox* selectionbox3 = djui_selectionbox_create(&body->base, "On star collection", lChoices, 3, &configStayInLevelAfterStar);
djui_base_set_size_type(&selectionbox3->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
djui_base_set_size(&selectionbox3->base, 1.0f, 32);
struct DjuiCheckbox* checkbox2 = djui_checkbox_create(&body->base, "Skip intro cutscene", &configSkipIntro);
djui_base_set_size_type(&checkbox2->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);