diff --git a/scripts/components/textscrambler.lua b/scripts/components/textscrambler.lua index 3ae7c13..0d687f9 100644 --- a/scripts/components/textscrambler.lua +++ b/scripts/components/textscrambler.lua @@ -19,7 +19,7 @@ function textmaker(text, fontsize, maxWidth, x, y, w, h, lenght, scissorY, id) - if (x2-x1) < maxWidth then gfx.Text(text,x,y) else - gfx.Text(text,x-ScrollScales[id],y) + gfx.Text(text,x,y) ---ScrollScales[id] gfx.FillColor(255,255,0) end diff --git a/scripts/downloadscreen.lua b/scripts/downloadscreen.lua index 8accd7b..dda8242 100644 --- a/scripts/downloadscreen.lua +++ b/scripts/downloadscreen.lua @@ -2,6 +2,9 @@ json = require "json" local header = {} header["user-agent"] = "unnamed_sdvx_clone" +local Dim = require("common.dimensions") +local Wallpaper = require("components.wallpaper") + local jacketFallback = gfx.CreateSkinImage("song_select/loading.png", 0) local diffColors = {{50,50,127}, {50,127,50}, {127,50,50}, {127, 50, 127}} local entryW = 770 @@ -45,7 +48,7 @@ function addsong(song) table.insert(songs, song) end local yOffset = 0 -local backgroundImage = gfx.CreateSkinImage("bg.png", 1); +local backgroundImage = require("components.background") dlcache = io.open(cachepath, "r") if dlcache then @@ -219,8 +222,12 @@ function render_info() end function render(deltaTime) - gfx.BeginPath() - gfx.ImageRect(0, 0, resX, resY, backgroundImage, 1, 0); + Dim.updateResolution() + Wallpaper.render() + + Dim.transformToDesignSpace() + backgroundImage.draw(deltaTime) + gfx.LoadSkinFont("NotoSans-Regular.ttf"); displayCursorPosX = displayCursorPosX - (displayCursorPosX - cursorPosX) * deltaTime * 10 displayCursorPosY = displayCursorPosY - (displayCursorPosY - cursorPosY) * deltaTime * 10 diff --git a/scripts/multiplayerscreen.lua b/scripts/multiplayerscreen.lua index cc1886f..e421c9a 100644 --- a/scripts/multiplayerscreen.lua +++ b/scripts/multiplayerscreen.lua @@ -24,7 +24,9 @@ local temppanels = gfx.CreateSkinImage("song_select/textboard.png", 1); local headerMatchingImage = gfx.CreateSkinImage("titlescreen/entry.png", 1); -local m_4pb_panels = gfx.CreateSkinImage("multi/lobby/user_panel_2.png", 1); +local m_4pb_panels_test = gfx.CreateSkinImage("multi/lobby/user_panel_2.png", 1); +local m_4pb_panels_bottom = gfx.CreateSkinImage("multi/lobby/opponent_bottom_panel.png", 1); +local m_4pb_panels_top = gfx.CreateSkinImage("multi/lobby/opponent_top_panel.png", 1); local ready_bt = gfx.CreateSkinImage("multi/lobby/READY.png", 1); @@ -83,6 +85,7 @@ game.LoadSkinSample("menu_click") local loading = true; local rooms = {}; local lobby_users = {}; +local rank_users = {1,2,3,4}; local selected_room = nil; local user_id = nil; local jacket = 0; @@ -193,9 +196,20 @@ m_own_info = function() -- bottom left -- done gfx.FontSize(40) gfx.ImageRect(ownPanelX, ownPanelY, 343/1.18, 361/1.18,m_host_panel,1,0) gfx.Text(normname, ownPanelX+20, ownPanelY+78) + gfx.FontSize(22) + gfx.Text(msg,ownPanelX+20, ownPanelY+37) + gfx.Text(irText, ownPanelX+20, ownPanelY+288); - gfx.FontSize(22) - gfx.Text(irText, ownPanelX+5, ownPanelY+288); + +if showthing == true then + local jw , jh = gfx.ImageSize(ready_bt); + gfx.BeginPath(); + gfx.ImageRect(ownPanelX+150, ownPanelY+232, jw/1.18, jh/1.18, ready_bt,1,0); + elseif showthing == false then + local jw , jh = gfx.ImageSize(ready_bt); + gfx.BeginPath(); + gfx.ImageRect(x+ownPanelX, y+ownPanelY, jw/1.18, jh/1.18, ready_bt,0,0); + end end @@ -249,7 +263,9 @@ m_s_part = function () -- song info panel -- done gfx.FontSize(24) gfx.Text("MISSING EFFECTOR!!!!", rightPanelX+463, rightPanelY+191) gfx.Text("MISSING ILLUSTRATOR!!!!", rightPanelX+463, rightPanelY+219) - else + end + --[[ + else gfx.Text("HOST IS SELECTING SONG", rightPanelX+245, rightPanelY+50) gfx.Text(" ", rightPanelX+245, rightPanelY+88) gfx.FontSize(24) @@ -257,8 +273,7 @@ m_s_part = function () -- song info panel -- done gfx.Text(" ", rightPanelX+463, rightPanelY+219) gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_TOP) gfx.FontSize(22) - gfx.Text("BPM ?",rightPanelX+497, rightPanelY+118) - end + gfx.Text("BPM ?",rightPanelX+497, rightPanelY+118)]] end else if selected_song.min_bpm ~= selected_song.max_bpm then @@ -350,24 +365,28 @@ m_info_part = function () -- the info panel local jw , jh = gfx.ImageSize(m_info_panel); gfx.BeginPath(); gfx.ImageRect(infPanelX, infPanelY, jw/1.18, jh/1.18, m_info_panel,1,0); + gfx.FontSize(24) - draw_checkbox("Excessive",infPanelX+160, infPanelY+49.25, toggle_hard, hard_mode, not start_game_soon) - draw_checkbox("Mirror",infPanelX+201.2, infPanelY+87.5, toggle_mirror, mirror_mode, not start_game_soon) - draw_checkbox("Rotate",infPanelX+379.1, infPanelY+87.5, toggle_rotate, do_rotate, + draw_checkbox("EXCESSIVE",infPanelX+160, infPanelY+50, toggle_hard, hard_mode, not start_game_soon) + draw_checkbox("MIRROR",infPanelX+187, infPanelY+87.5, toggle_mirror, mirror_mode, not start_game_soon) + draw_checkbox("ROTATE",infPanelX+390, infPanelY+87.5, toggle_rotate, do_rotate, (owner == user_id or host == user_id) and not start_game_soon) gfx.FillColor(255,255,255,100) - gfx.Text("Leave",infPanelX+417.5, infPanelY+50) + gfx.Text("LEAVE",infPanelX+417.5, infPanelY+49) + gfx.Text("START",infPanelX*1.61, infPanelY+35) gfx.FillColor(255,255,255) gfx.FontSize(24) --- gfx.Text("FX-L/FX-R TO READY UP",infPanelX+290.5,infPanelY+269) - gfx.Text("FX-L/FX-R TO EXCEED SEX",infPanelX+290.5,infPanelY+269) + gfx.Text("FX-L/FX-R TO SETTINGS",infPanelX+290.5,infPanelY+269) +-- gfx.Text("START TO EXCEED SEX",infPanelX+290.5,infPanelY+269) end user_setup = function () -- (semi new) user layering local distance = 350 for i, user in ipairs(lobby_users) do + gfx.Text("user "..i,100*i,100) + buttonY = 1142-360/1.2 if owner == user_id and user.id ~= user_id then @@ -375,49 +394,23 @@ user_setup = function () -- (semi new) user layering kick_user(user); end) end - + if (owner == user_id or host == user_id) and user.id ~= host then + draw_button("H",16, buttonY+250, 50, function() + change_host(user);end) + end if i == 1 then - draw_user(user, -distance, 1142-360/1.2, 420/1.2, 330/1.2, i,215,245.5) - - if (owner == user_id or host == user_id) and user.id ~= host then - draw_button("H",-distance, buttonY, 50, function() - change_host(user);end) - end - + draw_user(user, -distance, 1142-360/1.2, 420/1.2, 330/1.2,215,245.5) elseif i == 2 then - draw_user(user, 16, 1142-360/1.2, 420/1.2, 330/1.2, i,215,245.5) - - if (owner == user_id or host == user_id) and user.id ~= host then - draw_button("H",16, buttonY+250, 50, function() - change_host(user);end) - end - + draw_user(user, 16, 1142-360/1.2, 420/1.2, 330/1.2,215,245.5) elseif i == 3 then - draw_user(user, 16+distance, 1142-360/1.2, 420/1.2, 330/1.2, i,215,245.5) - - if (owner == user_id or host == user_id) and user.id ~= host then - draw_button("H",16+distance, buttonY, 50, function() - change_host(user);end) - end - + draw_user(user, 16+distance, 1142-360/1.2, 420/1.2, 330/1.2,215,245.5) elseif i == 4 then - draw_user(user, 16+distance+distance, 1142-360/1.2, 42030//1.2, 31.2, i,215,245.5) - - if (owner == user_id or host == user_id) and user.id ~= host then - draw_button("H",16+distance+distance, buttonY, 50, function() - change_host(user);end) - end + draw_user(user, 16+distance+distance, 1142-360/1.2, 42030//1.2, 31.2,215,245.5) elseif i > 4 then draw_user(user, 16+distance+distance+distance+distance, 1142-360/1.2, 420/1.2, 330/1.2, i,215,245.5) - - if (owner == user_id or host == user_id) and user.id ~= host then - draw_button("H",16+distance+distance+distance, buttonY, 25, function() - change_host(user);end) - end - end end end @@ -472,18 +465,13 @@ draw_button = function(name, x, y, buttonWidth, hoverindex) end draw_button_color = function(name, x, y, buttonWidth, hoverindex,img) - local rx = x - (buttonWidth / 2); - local ty = y - (buttonHeight / 2); + local rx = x/buttonWidth; + local ty = y-20; gfx.BeginPath(); - gfx.ImageRect(rx,ty,buttonWidth,buttonHeight,img,1,0) - if mouse_clipped(rx,ty, buttonWidth, buttonHeight) then + gfx.ImageRect(rx,ty,buttonWidth/1.5,buttonHeight*2,img,1,0) + if mouse_clipped(rx,ty, buttonWidth/1.5, buttonHeight*2) then hovered = hoverindex; end - gfx.Rect(rx - buttonBorder, - ty - buttonBorder, - buttonWidth + (buttonBorder * 2), - buttonHeight + (buttonBorder * 2)); - gfx.BeginPath(); gfx.BeginPath(); gfx.FillColor(255,255,255); gfx.TextAlign(gfx.TEXT_ALIGN_CENTER + gfx.TEXT_ALIGN_MIDDLE); @@ -500,7 +488,6 @@ draw_checkbox = function(text, x, y, hoverindex, current, can_click) gfx.FillColor(100,100,100,100); end gfx.TextAlign(gfx.TEXT_ALIGN_CENTER + gfx.TEXT_ALIGN_MIDDLE); - gfx.FontSize(30); gfx.Text(text, x, y) local xmin,ymin,xmax,ymax = gfx.TextBounds(x, y, text); @@ -520,30 +507,39 @@ draw_checkbox = function(text, x, y, hoverindex, current, can_click) end end; -draw_user = function(user, x, y , w, h, rank, breadx,bready) +draw_user = function(user, x, y , w, h, breadx,bready) local name = user.name local showthing = false if user.id == user_id then name = name end - if user.id == host then - name = name - elseif user.ready then - showthing = true - elseif not user.ready then - showthing = false - end + +if user.id == host then + name = name..' (host)' +elseif user.missing_map then + name = name..' (NO CHART)' +elseif user.ready then + name = name..' (ready)' + showthing = true + D = 1 +elseif not user.ready then + showthing = false + D = 0 +end gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE); gfx.FillColor(255,255,255) - gfx.FontSize(42) gfx.FontSize(30) - gfx.BeginPath(); - gfx.ImageRect(x, y ,w, h,m_4pb_panels,1,0) - gfx.Text(name, x+135, y+51) - + gfx.BeginPath() + gfx.ImageRect(x,y,w,h,m_4pb_panels_bottom,1,0) + gfx.BeginPath() + gfx.ImageRect(x,y,w,h,m_4pb_panels_top,1,0) + gfx.Text(name, x+136, y+51.5) + gfx.Text(msg, x+136, y+25.5) + gfx.FontSize(22) + gfx.Text(irText,x+32, y+225) if showthing == true then local jw , jh = gfx.ImageSize(ready_bt); @@ -722,7 +718,6 @@ local IR_Handle = function() end function render_lobby(deltaTime) - local jw , jh = gfx.ImageSize(bg); gfx.BeginPath(); gfx.ImageRect(0, 0, desw, desh, bg,1,0); @@ -747,6 +742,8 @@ end function render_room_list(deltaTime) Background.draw(deltaTime) + + draw_rooms(175, resy - 290); -- Draw cover for rooms out of view @@ -771,6 +768,8 @@ function render_room_list(deltaTime) if not loading then draw_button("Create new room", resx/2, resy-40-buttonHeight, resx*(3/4), new_room); end + + end @@ -853,7 +852,7 @@ function render_set_username(deltaTime) end render = function(deltaTime) - + IR_Handle() Dim.updateResolution() Wallpaper.render() @@ -882,12 +881,16 @@ render = function(deltaTime) elseif screenState == "roomList" then render_room_list(deltaTime); elseif screenState == "passwordScreen" then + Background.draw(deltaTime) render_password_screen(deltaTime); elseif screenState == "newRoomName" then + Background.draw(deltaTime) render_new_room_name() elseif screenState == "newRoomPassword" then + Background.draw(deltaTime) render_new_room_password() elseif screenState == "setUsername" then + Background.draw(deltaTime) loading = false; render_set_username() end @@ -959,7 +962,7 @@ end -- Handle button presses to advance the UI button_pressed = function(button) - if button == game.BUTTON_FXL and game.BUTTON_FXR then + if button == game.BUTTON_STA then if start_game_soon then return end diff --git a/textures/multi/lobby/button_panel.png b/textures/multi/lobby/button_panel.png index c769659..db19996 100644 Binary files a/textures/multi/lobby/button_panel.png and b/textures/multi/lobby/button_panel.png differ diff --git a/textures/multi/lobby/opponent_bottom_panel.png b/textures/multi/lobby/opponent_bottom_panel.png new file mode 100644 index 0000000..cc25e98 Binary files /dev/null and b/textures/multi/lobby/opponent_bottom_panel.png differ diff --git a/textures/multi/lobby/opponent_top_panel.png b/textures/multi/lobby/opponent_top_panel.png new file mode 100644 index 0000000..174f884 Binary files /dev/null and b/textures/multi/lobby/opponent_top_panel.png differ diff --git a/textures/multi/lobby/opponent_top_panel_guide.png b/textures/multi/lobby/opponent_top_panel_guide.png new file mode 100644 index 0000000..8670459 Binary files /dev/null and b/textures/multi/lobby/opponent_top_panel_guide.png differ diff --git a/textures/multi/lobby/user_panel_2.png b/textures/multi/lobby/user_panel_2.png deleted file mode 100644 index 3b841ff..0000000 Binary files a/textures/multi/lobby/user_panel_2.png and /dev/null differ