diff --git a/src/gui/AchievementsGui.hx b/src/gui/AchievementsGui.hx index 5b9677c0..31ecefb5 100644 --- a/src/gui/AchievementsGui.hx +++ b/src/gui/AchievementsGui.hx @@ -10,7 +10,6 @@ import src.MissionList; class AchievementsGui extends GuiImage { var innerCtrl:GuiControl; - var btnList:GuiXboxList; public function new(isPause:Bool = false) { var res = ResourceLoader.getImage("data/ui/xbox/BG_fadeOutSoftEdge.png").resource.toTile(); diff --git a/src/gui/GuiConsoleScrollCtrl.hx b/src/gui/GuiConsoleScrollCtrl.hx index 33d2f84c..93a431dc 100644 --- a/src/gui/GuiConsoleScrollCtrl.hx +++ b/src/gui/GuiConsoleScrollCtrl.hx @@ -13,6 +13,7 @@ import src.Util; class GuiConsoleScrollCtrl extends GuiControl { public var scrollY:Float = 0; + public var childrenHandleScroll:Bool = false; var maxScrollY:Float; @@ -48,8 +49,8 @@ class GuiConsoleScrollCtrl extends GuiControl { this.scrollBottomTile = scrollBar.sub(0, 55, 18, 8); this.scrollFillTile = scrollBar.sub(0, 46, 18, 1); this.scrollTopPressedTile = scrollBar.sub(19, 37, 18, 8); - this.scrollBottomPressedTile = scrollBar.sub(19, 46, 18, 8); - this.scrollFillPressedTile = scrollBar.sub(19, 55, 18, 1); + this.scrollBottomPressedTile = scrollBar.sub(19, 55, 18, 8); + this.scrollFillPressedTile = scrollBar.sub(19, 46, 18, 1); this.scrollTrackTile = scrollBar.sub(0, 64, 18, 1); var scrollUpTile = scrollBar.sub(0, 1, 18, 17); var scrollDownTile = scrollBar.sub(0, 19, 18, 17); diff --git a/src/gui/GuiTextListCtrl.hx b/src/gui/GuiTextListCtrl.hx index 255795c9..04c9b379 100644 --- a/src/gui/GuiTextListCtrl.hx +++ b/src/gui/GuiTextListCtrl.hx @@ -186,7 +186,7 @@ class GuiTextListCtrl extends GuiControl { var renderRect = this.getRenderRectangle(); var yStart = renderRect.position.y; var dy = mousePos.y - yStart; - var hoverIndex = Math.floor(dy / (font.size + 4 * Settings.uiScale)); + var hoverIndex = Math.floor((dy + this.scroll) / (font.size + 4 * Settings.uiScale)); if (hoverIndex >= this.texts.length) { hoverIndex = -1; } diff --git a/src/gui/LevelSelectGui.hx b/src/gui/LevelSelectGui.hx index 2be94353..833d5308 100644 --- a/src/gui/LevelSelectGui.hx +++ b/src/gui/LevelSelectGui.hx @@ -139,6 +139,16 @@ class LevelSelectGui extends GuiImage { backButton.pressedAction = (e) -> MarbleGame.canvas.setContent(new DifficultySelectGui()); bottomBar.addChild(backButton); + var recordButton = new GuiXboxButton("Record", 200); + recordButton.position = new Vector(560, 0); + recordButton.vertSizing = Bottom; + recordButton.horizSizing = Right; + recordButton.pressedAction = (e) -> { + MarbleGame.instance.toRecord = true; + MarbleGame.canvas.pushDialog(new MessageBoxOkDlg("The next mission you play will be recorded.")); + } + bottomBar.addChild(recordButton); + var lbButton = new GuiXboxButton("Leaderboard", 220); lbButton.position = new Vector(750, 0); lbButton.vertSizing = Bottom; diff --git a/src/gui/ReplayCenterGui.hx b/src/gui/ReplayCenterGui.hx index 446ce26f..beb6ee04 100644 --- a/src/gui/ReplayCenterGui.hx +++ b/src/gui/ReplayCenterGui.hx @@ -13,37 +13,58 @@ import src.Settings; import src.MissionList; class ReplayCenterGui extends GuiImage { + var innerCtrl:GuiControl; + public function new() { - function chooseBg() { - var rand = Math.random(); - if (rand >= 0 && rand <= 0.244) - return ResourceLoader.getImage('data/ui/backgrounds/gold/${cast (Math.floor(Util.lerp(1, 12, Math.random())), Int)}.jpg'); - if (rand > 0.244 && rand <= 0.816) - return ResourceLoader.getImage('data/ui/backgrounds/platinum/${cast (Math.floor(Util.lerp(1, 28, Math.random())), Int)}.jpg'); - return ResourceLoader.getImage('data/ui/backgrounds/ultra/${cast (Math.floor(Util.lerp(1, 9, Math.random())), Int)}.jpg'); - } - var img = chooseBg(); - super(img.resource.toTile()); + var res = ResourceLoader.getImage("data/ui/xbox/BG_fadeOutSoftEdge.png").resource.toTile(); + super(res); + + var arial14fontdata = ResourceLoader.getFileEntry("data/font/Arial Bold.fnt"); + var arial14b = new BitmapFont(arial14fontdata.entry); + @:privateAccess arial14b.loader = ResourceLoader.loader; + var arial14 = arial14b.toSdfFont(cast 21 * Settings.uiScale, h2d.Font.SDFChannel.MultiChannel); this.horizSizing = Width; this.vertSizing = Height; this.position = new Vector(); this.extent = new Vector(640, 480); - var wnd = new GuiImage(ResourceLoader.getResource("data/ui/replay/window.png", ResourceLoader.getImage, this.imageResources).toTile()); - wnd.position = new Vector(0, 0); - wnd.extent = new Vector(640, 480); - wnd.horizSizing = Center; - wnd.vertSizing = Center; - this.addChild(wnd); + var scene2d = MarbleGame.canvas.scene2d; - function loadButtonImages(path:String, hasDisabled:Bool = false) { - var normal = ResourceLoader.getResource('${path}_n.png', ResourceLoader.getImage, this.imageResources).toTile(); - var hover = ResourceLoader.getResource('${path}_h.png', ResourceLoader.getImage, this.imageResources).toTile(); - var pressed = ResourceLoader.getResource('${path}_d.png', ResourceLoader.getImage, this.imageResources).toTile(); - var disabled = hasDisabled ? ResourceLoader.getResource('${path}_i.png', ResourceLoader.getImage, this.imageResources).toTile() : null; - return [normal, hover, pressed, disabled]; - } + var offsetX = (scene2d.width - 1280) / 2; + var offsetY = (scene2d.height - 720) / 2; + + var subX = 640 - (scene2d.width - offsetX) * 640 / scene2d.width; + var subY = 480 - (scene2d.height - offsetY) * 480 / scene2d.height; + + innerCtrl = new GuiControl(); + innerCtrl.position = new Vector(offsetX, offsetY); + innerCtrl.extent = new Vector(640 - subX, 480 - subY); + innerCtrl.horizSizing = Width; + innerCtrl.vertSizing = Height; + this.addChild(innerCtrl); + + var coliseumfontdata = ResourceLoader.getFileEntry("data/font/ColiseumRR.fnt"); + var coliseumb = new BitmapFont(coliseumfontdata.entry); + @:privateAccess coliseumb.loader = ResourceLoader.loader; + var coliseum = coliseumb.toSdfFont(cast 44 * Settings.uiScale, MultiChannel); + + var rootTitle = new GuiText(coliseum); + + rootTitle.position = new Vector(100, 30); + rootTitle.extent = new Vector(1120, 80); + rootTitle.text.textColor = 0xFFFFFF; + rootTitle.text.text = "REPLAY CENTRE"; + rootTitle.text.alpha = 0.5; + innerCtrl.addChild(rootTitle); + + var achievementsWnd = new GuiImage(ResourceLoader.getResource("data/ui/xbox/achievementWindow.png", ResourceLoader.getImage, this.imageResources) + .toTile()); + achievementsWnd.horizSizing = Center; + achievementsWnd.vertSizing = Center; + achievementsWnd.position = new Vector(25, 58); + achievementsWnd.extent = new Vector(600, 480); + innerCtrl.addChild(achievementsWnd); var selectedIdx = -1; @@ -59,98 +80,168 @@ class ReplayCenterGui extends GuiImage { } } - var playButton = new GuiButton(loadButtonImages('data/ui/replay/play', true)); - playButton.position = new Vector(323, 386); - playButton.extent = new Vector(94, 46); - playButton.disabled = true; - playButton.pressedAction = (e) -> { - var repl = replayList[selectedIdx]; - if (repl.readFull()) { - var repmis = repl.mission; - if (!StringTools.contains(repmis, "data/")) - repmis = "data/" + repmis; - var mi = repl.customId == 0 ? MissionList.missions.get(repmis) : Marbleland.missions.get(repl.customId); - if (mi.isClaMission) { - mi.download(() -> { + var scrollCtrl = new GuiConsoleScrollCtrl(ResourceLoader.getResource("data/ui/common/osxscroll.png", ResourceLoader.getImage, this.imageResources) + .toTile()); + scrollCtrl.position = new Vector(25, 22); + scrollCtrl.extent = new Vector(550, 280); + achievementsWnd.addChild(scrollCtrl); + + var replayListCtrl = new GuiTextListCtrl(arial14, replayList.map(x -> x.name)); + + replayListCtrl.selectedColor = 0xF29515; + replayListCtrl.selectedFillColor = 0xEBEBEB; + replayListCtrl.position = new Vector(0, 0); + replayListCtrl.extent = new Vector(550, 480); + replayListCtrl.scrollable = true; + replayListCtrl.onSelectedFunc = (sel) -> { + selectedIdx = sel; + } + scrollCtrl.addChild(replayListCtrl); + scrollCtrl.setScrollMax(replayListCtrl.calculateFullHeight()); + + var bottomBar = new GuiControl(); + bottomBar.position = new Vector(0, 590); + bottomBar.extent = new Vector(640, 200); + bottomBar.horizSizing = Width; + bottomBar.vertSizing = Bottom; + innerCtrl.addChild(bottomBar); + + var backButton = new GuiXboxButton("Back", 160); + backButton.position = new Vector(400, 0); + backButton.vertSizing = Bottom; + backButton.horizSizing = Right; + backButton.gamepadAccelerator = ["B"]; + backButton.pressedAction = (e) -> MarbleGame.canvas.setContent(new MainMenuGui()); + bottomBar.addChild(backButton); + + var nextButton = new GuiXboxButton("Play", 160); + nextButton.position = new Vector(960, 0); + nextButton.vertSizing = Bottom; + nextButton.horizSizing = Right; + nextButton.pressedAction = (e) -> { + if (selectedIdx != -1) { + var repl = replayList[selectedIdx]; + if (repl.readFull()) { + var repmis = repl.mission; + if (!StringTools.contains(repmis, "data/")) + repmis = "data/" + repmis; + var mi = repl.customId == 0 ? MissionList.missions.get(repmis) : Marbleland.missions.get(repl.customId); + if (mi.isClaMission) { + mi.download(() -> { + MarbleGame.instance.watchMissionReplay(mi, repl); + }); + } else { MarbleGame.instance.watchMissionReplay(mi, repl); - }); - playButton.disabled = true; // Don't let us play anything else - } else { - MarbleGame.instance.watchMissionReplay(mi, repl); + } } } - } - wnd.addChild(playButton); + }; + bottomBar.addChild(nextButton); - var homeButton = new GuiButton(loadButtonImages('data/ui/replay/home')); - homeButton.position = new Vector(224, 386); - homeButton.extent = new Vector(94, 46); - homeButton.pressedAction = (e) -> { - MarbleGame.canvas.setContent(new MainMenuGui()); - } - wnd.addChild(homeButton); + // var playButton = new GuiButton(loadButtonImages('data/ui/replay/play', true)); + // playButton.position = new Vector(323, 386); + // playButton.extent = new Vector(94, 46); + // playButton.disabled = true; + // playButton.pressedAction = (e) -> { + // var repl = replayList[selectedIdx]; + // if (repl.readFull()) { + // var repmis = repl.mission; + // if (!StringTools.contains(repmis, "data/")) + // repmis = "data/" + repmis; + // var mi = repl.customId == 0 ? MissionList.missions.get(repmis) : Marbleland.missions.get(repl.customId); + // if (mi.isClaMission) { + // mi.download(() -> { + // MarbleGame.instance.watchMissionReplay(mi, repl); + // }); + // playButton.disabled = true; // Don't let us play anything else + // } else { + // MarbleGame.instance.watchMissionReplay(mi, repl); + // } + // } + // } + // wnd.addChild(playButton); - var temprev = new BitmapData(1, 1); - temprev.setPixel(0, 0, 0); - var tmpprevtile = h2d.Tile.fromBitmap(temprev); + // var homeButton = new GuiButton(loadButtonImages('data/ui/replay/home')); + // homeButton.position = new Vector(224, 386); + // homeButton.extent = new Vector(94, 46); + // homeButton.pressedAction = (e) -> { + // MarbleGame.canvas.setContent(new MainMenuGui()); + // } + // wnd.addChild(homeButton); - var pmPreview = new GuiImage(tmpprevtile); - pmPreview.position = new Vector(360, 29); - pmPreview.extent = new Vector(216, 150); - wnd.addChild(pmPreview); + // var temprev = new BitmapData(1, 1); + // temprev.setPixel(0, 0, 0); + // var tmpprevtile = h2d.Tile.fromBitmap(temprev); - var scrollCtrl = new GuiScrollCtrl(ResourceLoader.getResource("data/ui/common/philscroll.png", ResourceLoader.getImage, this.imageResources).toTile()); - scrollCtrl.position = new Vector(30, 25); - scrollCtrl.extent = new Vector(283, 346); - scrollCtrl.childrenHandleScroll = true; - wnd.addChild(scrollCtrl); + // var pmPreview = new GuiImage(tmpprevtile); + // pmPreview.position = new Vector(360, 29); + // pmPreview.extent = new Vector(216, 150); + // wnd.addChild(pmPreview); - var arial14fontdata = ResourceLoader.getFileEntry("data/font/arial.fnt"); - var arial14b = new BitmapFont(arial14fontdata.entry); - @:privateAccess arial14b.loader = ResourceLoader.loader; - var arial14 = arial14b.toSdfFont(cast 12 * Settings.uiScale, MultiChannel); - var markerFelt32fontdata = ResourceLoader.getFileEntry("data/font/MarkerFelt.fnt"); - var markerFelt32b = new BitmapFont(markerFelt32fontdata.entry); - @:privateAccess markerFelt32b.loader = ResourceLoader.loader; - var markerFelt32 = markerFelt32b.toSdfFont(cast 26 * Settings.uiScale, MultiChannel); - var markerFelt24 = markerFelt32b.toSdfFont(cast 18 * Settings.uiScale, MultiChannel); - var markerFelt18 = markerFelt32b.toSdfFont(cast 14 * Settings.uiScale, MultiChannel); + // var scrollCtrl = new GuiScrollCtrl(ResourceLoader.getResource("data/ui/common/philscroll.png", ResourceLoader.getImage, this.imageResources).toTile()); + // scrollCtrl.position = new Vector(30, 25); + // scrollCtrl.extent = new Vector(283, 346); + // scrollCtrl.childrenHandleScroll = true; + // wnd.addChild(scrollCtrl); - var missionName = new GuiText(markerFelt24); - missionName.position = new Vector(327, 181); - missionName.extent = new Vector(278, 14); - missionName.text.textColor = 0; - missionName.justify = Center; - wnd.addChild(missionName); + // var arial14fontdata = ResourceLoader.getFileEntry("data/font/arial.fnt"); + // var arial14b = new BitmapFont(arial14fontdata.entry); + // @:privateAccess arial14b.loader = ResourceLoader.loader; + // var arial14 = arial14b.toSdfFont(cast 12 * Settings.uiScale, MultiChannel); + // var markerFelt32fontdata = ResourceLoader.getFileEntry("data/font/MarkerFelt.fnt"); + // var markerFelt32b = new BitmapFont(markerFelt32fontdata.entry); + // @:privateAccess markerFelt32b.loader = ResourceLoader.loader; + // var markerFelt32 = markerFelt32b.toSdfFont(cast 26 * Settings.uiScale, MultiChannel); + // var markerFelt24 = markerFelt32b.toSdfFont(cast 18 * Settings.uiScale, MultiChannel); + // var markerFelt18 = markerFelt32b.toSdfFont(cast 14 * Settings.uiScale, MultiChannel); - var replayListBox = new GuiTextListCtrl(markerFelt24, replayList.map(x -> x.name)); - replayListBox.position = new Vector(0, 0); - replayListBox.extent = new Vector(283, 346); - replayListBox.textYOffset = -6; - replayListBox.scrollable = true; - replayListBox.onSelectedFunc = (idx) -> { - if (idx < 0) - return; - selectedIdx = idx; - playButton.disabled = false; - var thisReplay = replayList[idx]; - var repmis = thisReplay.mission; - if (!StringTools.contains(repmis, "data/")) - repmis = "data/" + repmis; - if (MissionList.missions == null) - MissionList.buildMissionList(); - var m = thisReplay.customId == 0 ? MissionList.missions.get(repmis) : Marbleland.missions.get(thisReplay.customId); - missionName.text.text = m.title; - m.getPreviewImage((t) -> { - pmPreview.bmp.tile = t; - }); - } - scrollCtrl.addChild(replayListBox); - scrollCtrl.setScrollMax(replayListBox.calculateFullHeight()); + // var missionName = new GuiText(markerFelt24); + // missionName.position = new Vector(327, 181); + // missionName.extent = new Vector(278, 14); + // missionName.text.textColor = 0; + // missionName.justify = Center; + // wnd.addChild(missionName); - var replayFrame = new GuiImage(ResourceLoader.getResource("data/ui/replay/replayframe.png", ResourceLoader.getImage, this.imageResources).toTile()); - replayFrame.position = new Vector(351, 21); - replayFrame.extent = new Vector(234, 168); - wnd.addChild(replayFrame); + // var replayListBox = new GuiTextListCtrl(markerFelt24, replayList.map(x -> x.name)); + // replayListBox.position = new Vector(0, 0); + // replayListBox.extent = new Vector(283, 346); + // replayListBox.textYOffset = -6; + // replayListBox.scrollable = true; + // replayListBox.onSelectedFunc = (idx) -> { + // if (idx < 0) + // return; + // selectedIdx = idx; + // playButton.disabled = false; + // var thisReplay = replayList[idx]; + // var repmis = thisReplay.mission; + // if (!StringTools.contains(repmis, "data/")) + // repmis = "data/" + repmis; + // if (MissionList.missions == null) + // MissionList.buildMissionList(); + // var m = thisReplay.customId == 0 ? MissionList.missions.get(repmis) : Marbleland.missions.get(thisReplay.customId); + // missionName.text.text = m.title; + // m.getPreviewImage((t) -> { + // pmPreview.bmp.tile = t; + // }); + // } + // scrollCtrl.addChild(replayListBox); + // scrollCtrl.setScrollMax(replayListBox.calculateFullHeight()); + + // var replayFrame = new GuiImage(ResourceLoader.getResource("data/ui/replay/replayframe.png", ResourceLoader.getImage, this.imageResources).toTile()); + // replayFrame.position = new Vector(351, 21); + // replayFrame.extent = new Vector(234, 168); + // wnd.addChild(replayFrame); + } + + override function onResize(width:Int, height:Int) { + var offsetX = (width - 1280) / 2; + var offsetY = (height - 720) / 2; + + var subX = 640 - (width - offsetX) * 640 / width; + var subY = 480 - (height - offsetY) * 480 / height; + innerCtrl.position = new Vector(offsetX, offsetY); + innerCtrl.extent = new Vector(640 - subX, 480 - subY); + + super.onResize(width, height); } } diff --git a/src/gui/ReplayNameDlg.hx b/src/gui/ReplayNameDlg.hx index 15ef02bb..1ba1b05f 100644 --- a/src/gui/ReplayNameDlg.hx +++ b/src/gui/ReplayNameDlg.hx @@ -6,57 +6,50 @@ import h3d.Vector; import src.ResourceLoader; import src.Settings; -class ReplayNameDlg extends GuiControl { +class ReplayNameDlg extends GuiImage { public function new(callback:Void->Void) { - super(); - var text = "Enter a name for the recording"; + var res = ResourceLoader.getImage("data/ui/xbox/roundedBG.png").resource.toTile(); + super(res); this.horizSizing = Width; this.vertSizing = Height; this.position = new Vector(); this.extent = new Vector(640, 480); - var domcasual24fontdata = ResourceLoader.getFileEntry("data/font/DomCasualD.fnt"); - var domcasual24b = new BitmapFont(domcasual24fontdata.entry); - @:privateAccess domcasual24b.loader = ResourceLoader.loader; - var domcasual24 = domcasual24b.toSdfFont(cast 20 * Settings.uiScale, MultiChannel); + var arial14fontdata = ResourceLoader.getFileEntry("data/font/Arial Bold.fnt"); + var arial14b = new BitmapFont(arial14fontdata.entry); + @:privateAccess arial14b.loader = ResourceLoader.loader; + var arial14 = arial14b.toSdfFont(cast 21 * Settings.uiScale, h2d.Font.SDFChannel.MultiChannel); - function loadButtonImages(path:String) { - var normal = ResourceLoader.getResource('${path}_n.png', ResourceLoader.getImage, this.imageResources).toTile(); - var hover = ResourceLoader.getResource('${path}_h.png', ResourceLoader.getImage, this.imageResources).toTile(); - var pressed = ResourceLoader.getResource('${path}_d.png', ResourceLoader.getImage, this.imageResources).toTile(); - return [normal, hover, pressed]; - } - - var yesNoFrame = new GuiImage(ResourceLoader.getResource("data/ui/common/dialog.png", ResourceLoader.getImage, this.imageResources).toTile()); + var yesNoFrame = new GuiImage(ResourceLoader.getResource("data/ui/xbox/popupGUI.png", ResourceLoader.getImage, this.imageResources).toTile()); yesNoFrame.horizSizing = Center; yesNoFrame.vertSizing = Center; - yesNoFrame.position = new Vector(187, 156); - yesNoFrame.extent = new Vector(300, 191); + yesNoFrame.position = new Vector(70, 30); + yesNoFrame.extent = new Vector(512, 400); this.addChild(yesNoFrame); - var yesNoText = new GuiMLText(domcasual24, null); - yesNoText.position = new Vector(33, 26); - yesNoText.horizSizing = Center; - yesNoText.extent = new Vector(198, 23); + var text = "Enter a name for the recording"; + + var yesNoText = new GuiMLText(arial14, null); + yesNoText.position = new Vector(103, 85); + yesNoText.extent = new Vector(313, 186); yesNoText.text.text = text; - yesNoText.text.textColor = 0; - yesNoText.text.maxWidth = 198; + yesNoText.text.textColor = 0xEBEBEB; yesNoFrame.addChild(yesNoText); - var textFrame = new GuiImage(ResourceLoader.getResource("data/ui/endgame/window.png", ResourceLoader.getImage, this.imageResources).toTile()); - textFrame.position = new Vector(33, 67); + var textFrame = new GuiControl(); + textFrame.position = new Vector(33, 107); textFrame.extent = new Vector(232, 40); textFrame.horizSizing = Center; yesNoFrame.addChild(textFrame); - var textInput = new GuiTextInput(domcasual24); + var textInput = new GuiTextInput(arial14); textInput.position = new Vector(6, 5); textInput.extent = new Vector(216, 40); textInput.horizSizing = Width; textInput.vertSizing = Height; - textInput.text.textColor = 0; - textInput.text.selectionColor.setColor(0xFFFFFFFF); - textInput.text.selectionTile = h2d.Tile.fromColor(0x808080, 0, hxd.Math.ceil(textInput.text.font.lineHeight)); + textInput.text.textColor = 0xEBEBEB; + textInput.text.selectionColor.setColor(0x8DFF8D); + textInput.text.selectionTile = h2d.Tile.fromColor(0x88BCEE, 0, hxd.Math.ceil(textInput.text.font.lineHeight)); textFrame.addChild(textInput); textInput.text.text = MarbleGame.instance.world.mission.title; @@ -66,13 +59,13 @@ class ReplayNameDlg extends GuiControl { textInput.text.text += " " + MarbleGame.instance.world.finishTime.gameplayClock; } - var yesButton = new GuiButton(loadButtonImages("data/ui/common/ok")); - yesButton.position = new Vector(171, 124); - yesButton.extent = new Vector(95, 45); - yesButton.vertSizing = Top; - yesButton.accelerator = hxd.Key.ENTER; - yesButton.gamepadAccelerator = ["A"]; - yesButton.pressedAction = (sender) -> { + var okButton = new GuiXboxButton("Ok", 120); + okButton.position = new Vector(211, 248); + okButton.extent = new Vector(120, 94); + okButton.vertSizing = Top; + okButton.accelerator = hxd.Key.ENTER; + okButton.gamepadAccelerator = ["A"]; + okButton.pressedAction = (sender) -> { if (StringTools.trim(textInput.text.text) != "") { MarbleGame.instance.recordingName = textInput.text.text; MarbleGame.canvas.popDialog(this); @@ -80,25 +73,53 @@ class ReplayNameDlg extends GuiControl { callback(); } } - yesNoFrame.addChild(yesButton); + yesNoFrame.addChild(okButton); - var noButton = new GuiButton(loadButtonImages("data/ui/common/cancel")); - noButton.position = new Vector(44, 124); - noButton.extent = new Vector(88, 41); - noButton.vertSizing = Top; - noButton.accelerator = hxd.Key.ESCAPE; - noButton.gamepadAccelerator = ["B"]; - noButton.pressedAction = (sender) -> { + var cancelButton = new GuiXboxButton("Cancel", 120); + cancelButton.position = new Vector(321, 248); + cancelButton.extent = new Vector(120, 94); + cancelButton.vertSizing = Top; + cancelButton.accelerator = hxd.Key.ENTER; + cancelButton.gamepadAccelerator = ["A"]; + cancelButton.pressedAction = (sender) -> { MarbleGame.canvas.popDialog(this); callback(); } - yesNoFrame.addChild(noButton); + yesNoFrame.addChild(cancelButton); - if (yesNoText.text.getBounds().yMax > yesNoText.extent.y) { - var diff = yesNoText.text.getBounds().yMax - yesNoText.extent.y; - yesNoFrame.extent.y += diff; - yesButton.position.y += diff; - noButton.position.y += diff; - } + // var yesButton = new GuiButton(loadButtonImages("data/ui/common/ok")); + // yesButton.position = new Vector(171, 124); + // yesButton.extent = new Vector(95, 45); + // yesButton.vertSizing = Top; + // yesButton.accelerator = hxd.Key.ENTER; + // yesButton.gamepadAccelerator = ["A"]; + // yesButton.pressedAction = (sender) -> { + // if (StringTools.trim(textInput.text.text) != "") { + // MarbleGame.instance.recordingName = textInput.text.text; + // MarbleGame.canvas.popDialog(this); + // MarbleGame.instance.world.saveReplay(); + // callback(); + // } + // } + // yesNoFrame.addChild(yesButton); + + // var noButton = new GuiButton(loadButtonImages("data/ui/common/cancel")); + // noButton.position = new Vector(44, 124); + // noButton.extent = new Vector(88, 41); + // noButton.vertSizing = Top; + // noButton.accelerator = hxd.Key.ESCAPE; + // noButton.gamepadAccelerator = ["B"]; + // noButton.pressedAction = (sender) -> { + // MarbleGame.canvas.popDialog(this); + // callback(); + // } + // yesNoFrame.addChild(noButton); + + // if (yesNoText.text.getBounds().yMax > yesNoText.extent.y) { + // var diff = yesNoText.text.getBounds().yMax - yesNoText.extent.y; + // yesNoFrame.extent.y += diff; + // yesButton.position.y += diff; + // noButton.position.y += diff; + // } } }