diff --git a/RoleplayersToolbox/RoleplayersToolbox.csproj b/RoleplayersToolbox/RoleplayersToolbox.csproj
index 4a4ff6c..6de6deb 100755
--- a/RoleplayersToolbox/RoleplayersToolbox.csproj
+++ b/RoleplayersToolbox/RoleplayersToolbox.csproj
@@ -55,6 +55,6 @@
-
+
diff --git a/RoleplayersToolbox/Tools/Housing/BookmarksUi.cs b/RoleplayersToolbox/Tools/Housing/BookmarksUi.cs
index b36b0ce..2b9821d 100755
--- a/RoleplayersToolbox/Tools/Housing/BookmarksUi.cs
+++ b/RoleplayersToolbox/Tools/Housing/BookmarksUi.cs
@@ -9,7 +9,7 @@ namespace RoleplayersToolbox.Tools.Housing {
private Plugin Plugin { get; }
private HousingTool Tool { get; }
private HousingConfig Config { get; }
- private (Bookmark editing, int index)? _editing;
+ internal (Bookmark editing, int index)? Editing;
internal bool ShouldDraw;
@@ -32,7 +32,7 @@ namespace RoleplayersToolbox.Tools.Housing {
}
if (Util.IconButton(FontAwesomeIcon.Plus)) {
- this._editing = (new Bookmark(string.Empty), -1);
+ this.Editing = (new Bookmark(string.Empty), -1);
}
var toDelete = -1;
@@ -69,7 +69,7 @@ namespace RoleplayersToolbox.Tools.Housing {
ImGui.SameLine();
if (Util.IconButton(FontAwesomeIcon.PencilAlt, hash)) {
- this._editing = (bookmark.Clone(), i);
+ this.Editing = (bookmark.Clone(), i);
}
Util.Tooltip("Edit");
@@ -100,7 +100,7 @@ namespace RoleplayersToolbox.Tools.Housing {
}
private void AddEditWindow() {
- if (this._editing == null) {
+ if (this.Editing == null) {
return;
}
@@ -109,7 +109,7 @@ namespace RoleplayersToolbox.Tools.Housing {
return;
}
- var (bookmark, index) = this._editing.Value;
+ var (bookmark, index) = this.Editing.Value;
ImGui.InputText("Name", ref bookmark.Name, 255);
@@ -165,13 +165,13 @@ namespace RoleplayersToolbox.Tools.Housing {
}
this.Plugin.SaveConfig();
- this._editing = null;
+ this.Editing = null;
}
ImGui.SameLine();
if (ImGui.Button("Cancel")) {
- this._editing = null;
+ this.Editing = null;
}
ImGui.End();
diff --git a/RoleplayersToolbox/Tools/Housing/HousingTool.cs b/RoleplayersToolbox/Tools/Housing/HousingTool.cs
index 57daf3d..2ca953a 100755
--- a/RoleplayersToolbox/Tools/Housing/HousingTool.cs
+++ b/RoleplayersToolbox/Tools/Housing/HousingTool.cs
@@ -224,7 +224,10 @@ namespace RoleplayersToolbox.Tools.Housing {
return;
}
- args.Items.Add(new NormalContextMenuItem("Select as Destination", this.SelectDestination));
+ args.Items.Add(new NormalContextSubMenuItem("Roleplayer's Toolbox", args => {
+ args.Items.Add(new NormalContextMenuItem("Select as Destination", this.SelectDestination));
+ args.Items.Add(new NormalContextMenuItem("Add Bookmark", this.AddBookmark));
+ }));
}
private void SelectDestination(ContextMenuItemSelectedArgs args) {
@@ -237,6 +240,22 @@ namespace RoleplayersToolbox.Tools.Housing {
this.Destination = InfoExtractor.Extract(listing.Description.TextValue, listing.World.Value.DataCenter.Row, this.Plugin.Interface.Data, this.Info);
}
+ private void AddBookmark(ContextMenuItemSelectedArgs args) {
+ var listing = this.Plugin.Common.Functions.PartyFinder.CurrentListings.Values.FirstOrDefault(listing => listing.ContentIdLower == args.ContentIdLower);
+ if (listing == null) {
+ return;
+ }
+
+ var dest = InfoExtractor.Extract(listing.Description.TextValue, listing.World.Value.DataCenter.Row, this.Plugin.Interface.Data, this.Info);
+ this.BookmarksUi.Editing = (new Bookmark(string.Empty) {
+ WorldId = dest.World?.RowId ?? 0,
+ Area = dest.Area ?? 0,
+ Ward = dest.Ward ?? 0,
+ Plot = dest.Plot ?? 0,
+ }, -1);
+ this.BookmarksUi.ShouldDraw = true;
+ }
+
private void OnFramework(Framework framework) {
this.ClearIfNear();
this.HighlightSelectString();