From ffa2bfcd22e466f3fc0e1b06d920ff4dac512b30 Mon Sep 17 00:00:00 2001 From: mazmazz Date: Wed, 15 Aug 2018 01:50:19 -0400 Subject: [PATCH] Lua PositionMusic/GetPositionMusic and console TUNES position --- src/d_netcmd.c | 5 +---- src/lua_baselib.c | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index a506c11b0..f72c6bf51 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -3983,7 +3983,7 @@ static void Command_Tunes_f(void) if (argc < 2) //tunes slot ... { - CONS_Printf("tunes [track] [speed] / <-show> / <-default> / <-none>:\n"); + CONS_Printf("tunes [track] [speed] [position] / <-show> / <-default> / <-none>:\n"); CONS_Printf(M_GetText("Play an arbitrary music lump. If a map number is used, 'MAP##M' is played.\n")); CONS_Printf(M_GetText("If the format supports multiple songs, you can specify which one to play.\n\n")); CONS_Printf(M_GetText("* With \"-show\", shows the currently playing tune and track.\n")); @@ -4041,15 +4041,12 @@ static void Command_Tunes_f(void) if (speed > 0.0f) S_SpeedMusic(speed); } -<<<<<<< HEAD -======= if (argc > 4) { UINT32 position = (UINT32)atoi(COM_Argv(4)); S_PositionMusic(position); } ->>>>>>> f453fb65... Change get/set music position to UINT32 parameter, milliseconds } static void Command_RestartAudio_f(void) diff --git a/src/lua_baselib.c b/src/lua_baselib.c index 687a521d6..7ccbb67a7 100644 --- a/src/lua_baselib.c +++ b/src/lua_baselib.c @@ -2255,6 +2255,30 @@ static int lib_sSpeedMusic(lua_State *L) return 1; } +static int lib_sPositionMusic(lua_State *L) +{ + float position = 0; + player_t *player = NULL; + NOHUD + if (!lua_isnone(L, 2) && lua_isuserdata(L, 2)) + { + player = *((player_t **)luaL_checkudata(L, 2, META_PLAYER)); + if (!player) + return LUA_ErrInvalid(L, "player_t"); + } + if (!player || P_IsLocalPlayer(player)) + lua_pushboolean(L, S_PositionMusic(position)); + else + lua_pushboolean(L, false); + return 1; +} + +static int lib_sGetPositionMusic(lua_State *L) +{ + lua_pushinteger(L, (UINT32)S_GetPositionMusic()); + return 1; +} + static int lib_sStopMusic(lua_State *L) { player_t *player = NULL; @@ -2677,6 +2701,8 @@ static luaL_Reg lib[] = { {"S_StopSound",lib_sStopSound}, {"S_ChangeMusic",lib_sChangeMusic}, {"S_SpeedMusic",lib_sSpeedMusic}, + {"S_PositionMusic",lib_sPositionMusic}, + {"S_GetPositionMusic",lib_sGetPositionMusic}, {"S_StopMusic",lib_sStopMusic}, {"S_MidiPlaying",lib_sMidiPlaying}, {"S_MusicPlaying",lib_sMusicPlaying},