diff --git a/src/s_sound.cpp b/src/s_sound.cpp index ee40d6241..61a038c17 100644 --- a/src/s_sound.cpp +++ b/src/s_sound.cpp @@ -143,6 +143,11 @@ static FString LastSong; // last music that was played static FPlayList *PlayList; static int RestartEvictionsAt; // do not restart evicted channels before this time +DEFINE_GLOBAL(mus_playing); +DEFINE_FIELD_X(MusPlayingInfo, MusPlayingInfo, name); +DEFINE_FIELD_X(MusPlayingInfo, MusPlayingInfo, baseorder); +DEFINE_FIELD_X(MusPlayingInfo, MusPlayingInfo, loop); + // PUBLIC DATA DEFINITIONS ------------------------------------------------- int sfx_empty; diff --git a/wadsrc/static/zscript/base.zs b/wadsrc/static/zscript/base.zs index 6841ce6bd..45936cb0a 100644 --- a/wadsrc/static/zscript/base.zs +++ b/wadsrc/static/zscript/base.zs @@ -42,6 +42,7 @@ struct _ native // These are the global variables, the struct is only here to av native readonly Weapon WP_NOCHANGE; deprecated("3.8") native readonly bool globalfreeze; native int LocalViewPitch; + native readonly @MusPlayingInfo mus_playing; // sandbox state in multi-level setups: @@ -52,6 +53,13 @@ struct _ native // These are the global variables, the struct is only here to av } +struct MusPlayingInfo native +{ + native String name; + native int baseorder; + native bool loop; +}; + struct TexMan { enum EUseTypes