diff options
author | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2021-10-14 21:01:40 +0100 |
---|---|---|
committer | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2021-10-14 21:01:40 +0100 |
commit | 9a2778eabc7ba968968e41dda9f03525d6c5383d (patch) | |
tree | 6d1c5dc64754d542d68a7f47742a701a4eec9308 /Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp.nut | |
parent | c0a0c7e502f2bc99185d79a485b965f63de7a203 (diff) | |
download | NorthstarMods-9a2778eabc7ba968968e41dda9f03525d6c5383d.tar.gz NorthstarMods-9a2778eabc7ba968968e41dda9f03525d6c5383d.zip |
oh fuck i forgot to commit for a while
Diffstat (limited to 'Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp.nut')
-rw-r--r-- | Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp.nut | 98 |
1 files changed, 76 insertions, 22 deletions
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp.nut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp.nut index ac8a397f7..66bb3d6a4 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp.nut +++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_classic_mp.nut @@ -1,53 +1,80 @@ untyped global function ClassicMp_Init -global function ClassicMP_TryDefaultIntroSetup // called in mp_sh_init +global function ClassicMP_TryDefaultIntroSetup + +// intro setups +global function ClassicMP_SetLevelIntro global function ClassicMP_SetCustomIntro +global function ClassicMP_SetupIntro + +// intro funcs global function ClassicMP_OnIntroStarted global function ClassicMP_OnIntroFinished global function ClassicMP_GetIntroLength + +// epilogue setups +global function ClassicMP_ForceDisableEpilogue +global function ClassicMP_SetEpilogue +global function ClassicMP_SetupEpilogue +global function ClassicMP_ShouldRunEpilogue + global function GetClassicMPMode struct { - void functionref() introSetupFunc - float introLength + // level intros have a lower priority than custom intros + // level intros are used only if a custom intro was not specified + void functionref() levelIntroSetupFunc + float levelIntroLength + + void functionref() customIntroSetupFunc + float customIntroLength + + bool epilogueForceDisabled = false + void functionref() epilogueSetupFunc } file void function ClassicMp_Init() { - // literally nothing to do here atm lol + // default level intros + if ( IsFFAGame() ) + ClassicMP_SetLevelIntro( ClassicMP_DefaultNoIntro_Setup, ClassicMP_DefaultNoIntro_GetLength() ) + else + ClassicMP_SetLevelIntro( ClassicMP_DefaultDropshipIntro_Setup, DROPSHIP_INTRO_LENGTH ) } +// stub func, called in mp_sh_init void function ClassicMP_TryDefaultIntroSetup() { - if ( file.introSetupFunc == null ) - { - if ( IsFFAGame() ) - ClassicMP_SetCustomIntro( ClassicMP_DefaultNoIntro_Setup, ClassicMP_DefaultNoIntro_GetLength() ) - else - ClassicMP_SetCustomIntro( ClassicMP_DefaultDropshipIntro_Setup, DROPSHIP_INTRO_LENGTH ) - } - - thread DelayedDoDefaultIntroSetup() + } -void function DelayedDoDefaultIntroSetup() +void function ClassicMP_SetLevelIntro( void functionref() setupFunc, float introLength ) { - // wait a frame for CodeCallback_MapInit to run which generally sets custom intros - WaitFrame() - file.introSetupFunc() + file.levelIntroSetupFunc = setupFunc + file.levelIntroLength = introLength } void function ClassicMP_SetCustomIntro( void functionref() setupFunc, float introLength ) { - file.introSetupFunc = setupFunc - file.introLength = introLength + file.customIntroSetupFunc = setupFunc + file.customIntroLength = introLength +} + +void function ClassicMP_SetupIntro() +{ + if ( file.customIntroSetupFunc != null ) + file.customIntroSetupFunc() + else + file.levelIntroSetupFunc() } void function ClassicMP_OnIntroStarted() { print( "started intro!" ) - SetServerVar( "gameStartTime", Time() + file.introLength ) - SetServerVar( "roundStartTime", Time() + file.introLength ) + + float introLength = ClassicMP_GetIntroLength() + SetServerVar( "gameStartTime", Time() + introLength ) + SetServerVar( "roundStartTime", Time() + introLength ) } void function ClassicMP_OnIntroFinished() @@ -58,10 +85,37 @@ void function ClassicMP_OnIntroFinished() float function ClassicMP_GetIntroLength() { - return file.introLength + if ( file.customIntroSetupFunc != null ) + return file.customIntroLength + + return file.levelIntroLength +} + +void function ClassicMP_ForceDisableEpilogue( bool disabled ) +{ + file.epilogueForceDisabled = disabled +} + +void function ClassicMP_SetEpilogue( void functionref() setupFunc ) +{ + file.epilogueSetupFunc = setupFunc +} + +void function ClassicMP_SetupEpilogue() +{ + if ( file.epilogueSetupFunc == null ) // default is evac + ClassicMP_SetEpilogue( EvacEpilogueSetup ) + + file.epilogueSetupFunc() } bool function GetClassicMPMode() { return GetCurrentPlaylistVarInt( "classic_mp", 1 ) == 1 +} + +bool function ClassicMP_ShouldRunEpilogue() +{ + // note: there is a run_evac playlist var, but it's unused, and default 0, so use a new one + return !file.epilogueForceDisabled && GetClassicMPMode() && !IsRoundBased() && GetCurrentPlaylistVarInt( "run_epilogue", 1 ) == 1 }
\ No newline at end of file |