From 45302c9d4789f58d3ddf7f5b8894fb5367d42cc9 Mon Sep 17 00:00:00 2001 From: Jbleezy Date: Sat, 22 Apr 2023 21:42:02 -0700 Subject: [PATCH] Encounter: fix players not spawning during pregame --- scripts/zm/replaced/_zm.gsc | 2 ++ scripts/zm/replaced/_zm_gametype.gsc | 2 +- scripts/zm/replaced/zgrief.gsc | 2 +- scripts/zm/zgrief/zgrief_reimagined.gsc | 21 +++++++++++++-------- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/scripts/zm/replaced/_zm.gsc b/scripts/zm/replaced/_zm.gsc index b661c774..dd448c69 100644 --- a/scripts/zm/replaced/_zm.gsc +++ b/scripts/zm/replaced/_zm.gsc @@ -610,6 +610,8 @@ fade_out_intro_screen_zm( hold_black_time, fade_out_time, destroyed_afterwards ) if ( destroyed_afterwards == 1 ) level.introscreen destroy(); + level.match_started = 1; + flag_set( "initial_blackscreen_passed" ); } diff --git a/scripts/zm/replaced/_zm_gametype.gsc b/scripts/zm/replaced/_zm_gametype.gsc index 35f331b2..9ba3d2db 100644 --- a/scripts/zm/replaced/_zm_gametype.gsc +++ b/scripts/zm/replaced/_zm_gametype.gsc @@ -174,7 +174,7 @@ onplayerspawned() hide_gump_loading_for_hotjoiners() { - if(isDefined(level.is_respawn_gamemode_func) && [[level.is_respawn_gamemode_func]]()) + if(isDefined(level.should_respawn_func) && [[level.should_respawn_func]]()) { return; } diff --git a/scripts/zm/replaced/zgrief.gsc b/scripts/zm/replaced/zgrief.gsc index ac11adf0..2c5d96af 100644 --- a/scripts/zm/replaced/zgrief.gsc +++ b/scripts/zm/replaced/zgrief.gsc @@ -4,7 +4,7 @@ game_mode_spawn_player_logic() { - if(isDefined(level.is_respawn_gamemode_func) && [[level.is_respawn_gamemode_func]]()) + if(isDefined(level.should_respawn_func) && [[level.should_respawn_func]]()) { return 0; } diff --git a/scripts/zm/zgrief/zgrief_reimagined.gsc b/scripts/zm/zgrief/zgrief_reimagined.gsc index 1810d824..baf9476f 100644 --- a/scripts/zm/zgrief/zgrief_reimagined.gsc +++ b/scripts/zm/zgrief/zgrief_reimagined.gsc @@ -86,7 +86,7 @@ init() level.autoassign = scripts\zm\replaced\_globallogic_ui::menuautoassign; level.custom_spectate_permissions = undefined; - level.is_respawn_gamemode_func = ::is_respawn_gamemode; + level.should_respawn_func = ::should_respawn; level.round_start_wait_func = ::round_start_wait; level.increment_score_func = ::increment_score; level.show_grief_hud_msg_func = ::show_grief_hud_msg; @@ -1576,24 +1576,29 @@ get_gamemode_winning_score() } } -is_respawn_gamemode() +should_respawn() { if (is_true(level.intermission)) { return 0; } + if (!is_true(level.match_started)) + { + return 1; + } + + return is_respawn_gamemode(); +} + +is_respawn_gamemode() +{ if(!isDefined(level.scr_zm_ui_gametype_obj)) { return 0; } - if(level.scr_zm_ui_gametype_obj == "zgrief" || level.scr_zm_ui_gametype_obj == "zrace" || level.scr_zm_ui_gametype_obj == "zcontainment" || level.scr_zm_ui_gametype_obj == "zmeat") - { - return 1; - } - - return 0; + return level.scr_zm_ui_gametype_obj == "zgrief" || level.scr_zm_ui_gametype_obj == "zrace" || level.scr_zm_ui_gametype_obj == "zcontainment" || level.scr_zm_ui_gametype_obj == "zmeat"; } show_grief_hud_msg( msg, msg_parm, offset, delay )