Skip to content

Commit fef98c2

Browse files
committed
Rework menu positioning logic to make sure that the menu is on screen and as large as possible AscensionGameDev#2550
1 parent 2def5c5 commit fef98c2

File tree

23 files changed

+145
-109
lines changed

23 files changed

+145
-109
lines changed

Intersect.Client.Core/Interface/Game/Bag/BagItem.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@ public FloatRect RenderBounds()
142142
{
143143
var rect = new FloatRect()
144144
{
145-
X = Pnl.LocalPosToCanvas(new Point(0, 0)).X,
146-
Y = Pnl.LocalPosToCanvas(new Point(0, 0)).Y,
145+
X = Pnl.ToCanvas(new Point(0, 0)).X,
146+
Y = Pnl.ToCanvas(new Point(0, 0)).Y,
147147
Width = Pnl.Width,
148148
Height = Pnl.Height
149149
};
@@ -202,23 +202,23 @@ public void Update()
202202
{
203203
if (mMouseX == -1 || mMouseY == -1)
204204
{
205-
mMouseX = InputHandler.MousePosition.X - Pnl.LocalPosToCanvas(new Point(0, 0)).X;
206-
mMouseY = InputHandler.MousePosition.Y - Pnl.LocalPosToCanvas(new Point(0, 0)).Y;
205+
mMouseX = InputHandler.MousePosition.X - Pnl.ToCanvas(new Point(0, 0)).X;
206+
mMouseY = InputHandler.MousePosition.Y - Pnl.ToCanvas(new Point(0, 0)).Y;
207207
}
208208
else
209209
{
210210
var xdiff = mMouseX -
211-
(InputHandler.MousePosition.X - Pnl.LocalPosToCanvas(new Point(0, 0)).X);
211+
(InputHandler.MousePosition.X - Pnl.ToCanvas(new Point(0, 0)).X);
212212

213213
var ydiff = mMouseY -
214-
(InputHandler.MousePosition.Y - Pnl.LocalPosToCanvas(new Point(0, 0)).Y);
214+
(InputHandler.MousePosition.Y - Pnl.ToCanvas(new Point(0, 0)).Y);
215215

216216
if (Math.Sqrt(Math.Pow(xdiff, 2) + Math.Pow(ydiff, 2)) > 5)
217217
{
218218
IsDragging = true;
219219
mDragIcon = new Draggable(
220-
Pnl.LocalPosToCanvas(new Point(0, 0)).X + mMouseX,
221-
Pnl.LocalPosToCanvas(new Point(0, 0)).X + mMouseY, Pnl.Texture, Pnl.RenderColor
220+
Pnl.ToCanvas(new Point(0, 0)).X + mMouseX,
221+
Pnl.ToCanvas(new Point(0, 0)).X + mMouseY, Pnl.Texture, Pnl.RenderColor
222222
);
223223
}
224224
}

Intersect.Client.Core/Interface/Game/Bag/BagWindow.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,8 @@ public FloatRect RenderBounds()
180180
{
181181
var rect = new FloatRect()
182182
{
183-
X = mBagWindow.LocalPosToCanvas(new Point(0, 0)).X - sItemXPadding / 2,
184-
Y = mBagWindow.LocalPosToCanvas(new Point(0, 0)).Y - sItemYPadding / 2,
183+
X = mBagWindow.ToCanvas(new Point(0, 0)).X - sItemXPadding / 2,
184+
Y = mBagWindow.ToCanvas(new Point(0, 0)).Y - sItemYPadding / 2,
185185
Width = mBagWindow.Width + sItemXPadding,
186186
Height = mBagWindow.Height + sItemYPadding
187187
};

Intersect.Client.Core/Interface/Game/Bank/BankItem.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,8 @@ public FloatRect RenderBounds()
160160
{
161161
var rect = new FloatRect()
162162
{
163-
X = Pnl.LocalPosToCanvas(new Point(0, 0)).X,
164-
Y = Pnl.LocalPosToCanvas(new Point(0, 0)).Y,
163+
X = Pnl.ToCanvas(new Point(0, 0)).X,
164+
Y = Pnl.ToCanvas(new Point(0, 0)).Y,
165165
Width = Pnl.Width,
166166
Height = Pnl.Height
167167
};
@@ -221,23 +221,23 @@ public void Update()
221221
{
222222
if (mMouseX == -1 || mMouseY == -1)
223223
{
224-
mMouseX = InputHandler.MousePosition.X - Pnl.LocalPosToCanvas(new Point(0, 0)).X;
225-
mMouseY = InputHandler.MousePosition.Y - Pnl.LocalPosToCanvas(new Point(0, 0)).Y;
224+
mMouseX = InputHandler.MousePosition.X - Pnl.ToCanvas(new Point(0, 0)).X;
225+
mMouseY = InputHandler.MousePosition.Y - Pnl.ToCanvas(new Point(0, 0)).Y;
226226
}
227227
else
228228
{
229229
var xdiff = mMouseX -
230-
(InputHandler.MousePosition.X - Pnl.LocalPosToCanvas(new Point(0, 0)).X);
230+
(InputHandler.MousePosition.X - Pnl.ToCanvas(new Point(0, 0)).X);
231231

232232
var ydiff = mMouseY -
233-
(InputHandler.MousePosition.Y - Pnl.LocalPosToCanvas(new Point(0, 0)).Y);
233+
(InputHandler.MousePosition.Y - Pnl.ToCanvas(new Point(0, 0)).Y);
234234

235235
if (Math.Sqrt(Math.Pow(xdiff, 2) + Math.Pow(ydiff, 2)) > 5)
236236
{
237237
IsDragging = true;
238238
mDragIcon = new Draggable(
239-
Pnl.LocalPosToCanvas(new Point(0, 0)).X + mMouseX,
240-
Pnl.LocalPosToCanvas(new Point(0, 0)).X + mMouseY, Pnl.Texture, Pnl.RenderColor
239+
Pnl.ToCanvas(new Point(0, 0)).X + mMouseX,
240+
Pnl.ToCanvas(new Point(0, 0)).X + mMouseY, Pnl.Texture, Pnl.RenderColor
241241
);
242242
}
243243
}

Intersect.Client.Core/Interface/Game/Bank/BankWindow.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,8 @@ public FloatRect RenderBounds()
240240
{
241241
var rect = new FloatRect()
242242
{
243-
X = mBankWindow.LocalPosToCanvas(new Point(0, 0)).X - sItemXPadding / 2,
244-
Y = mBankWindow.LocalPosToCanvas(new Point(0, 0)).Y - sItemYPadding / 2,
243+
X = mBankWindow.ToCanvas(new Point(0, 0)).X - sItemXPadding / 2,
244+
Y = mBankWindow.ToCanvas(new Point(0, 0)).Y - sItemYPadding / 2,
245245
Width = mBankWindow.Width + sItemXPadding,
246246
Height = mBankWindow.Height + sItemYPadding
247247
};

Intersect.Client.Core/Interface/Game/Character/EquipmentItem.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ public FloatRect RenderBounds()
115115
{
116116
var rect = new FloatRect()
117117
{
118-
X = Pnl.LocalPosToCanvas(new Point(0, 0)).X,
119-
Y = Pnl.LocalPosToCanvas(new Point(0, 0)).Y,
118+
X = Pnl.ToCanvas(new Point(0, 0)).X,
119+
Y = Pnl.ToCanvas(new Point(0, 0)).Y,
120120
Width = Pnl.Width,
121121
Height = Pnl.Height
122122
};

Intersect.Client.Core/Interface/Game/DescriptionWindows/DescriptionWindowBase.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ public override void SetPosition(int x, int y, ImagePanel? itemDecriptionContain
140140
int HoveredControlX, HoveredControlY;
141141

142142
// Bind description window to the HoveredControl position.
143-
HoveredControlX = InputHandler.HoveredControl.LocalPosToCanvas(new Point(0, 0)).X;
144-
HoveredControlY = InputHandler.HoveredControl.LocalPosToCanvas(new Point(0, 0)).Y;
143+
HoveredControlX = InputHandler.HoveredControl.ToCanvas(new Point(0, 0)).X;
144+
HoveredControlY = InputHandler.HoveredControl.ToCanvas(new Point(0, 0)).Y;
145145
newX = HoveredControlX + InputHandler.HoveredControl.Width;
146146
newY = itemDecriptionContainer != null ? itemDecriptionContainer.Bottom : HoveredControlY + InputHandler.HoveredControl.Height;
147147

@@ -161,8 +161,8 @@ public override void SetPosition(int x, int y, ImagePanel? itemDecriptionContain
161161

162162
public override void SetPosition(Base _icon, SpellDescriptionWindow _descriptionWindow)
163163
{
164-
var X = _icon.LocalPosToCanvas(new Point(0, 0)).X;
165-
var Y = _icon.LocalPosToCanvas(new Point(0, 0)).Y;
164+
var X = _icon.ToCanvas(new Point(0, 0)).X;
165+
var Y = _icon.ToCanvas(new Point(0, 0)).Y;
166166

167167
X = X + _descriptionWindow.Width + _icon.Height;
168168
Y = Y + _icon.Height;

Intersect.Client.Core/Interface/Game/EntityPanel/SpellStatus.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ void pnl_HoverEnter(Base sender, EventArgs arguments)
5858
_descriptionWindow = null;
5959
}
6060

61-
var X = _statusIcon.LocalPosToCanvas(new Point(0, 0)).X;
62-
var Y = _statusIcon.LocalPosToCanvas(new Point(0, 0)).Y;
61+
var X = _statusIcon.ToCanvas(new Point(0, 0)).X;
62+
var Y = _statusIcon.ToCanvas(new Point(0, 0)).Y;
6363

6464
_descriptionWindow = new SpellDescriptionWindow(_status.SpellId, _statusIcon);
6565
}

Intersect.Client.Core/Interface/Game/Hotbar/HotBar.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ public FloatRect RenderBounds()
6565
{
6666
var rect = new FloatRect
6767
{
68-
X = HotbarWindow.LocalPosToCanvas(default).X,
69-
Y = HotbarWindow.LocalPosToCanvas(default).Y,
68+
X = HotbarWindow.ToCanvas(default).X,
69+
Y = HotbarWindow.ToCanvas(default).Y,
7070
Width = HotbarWindow.Width,
7171
Height = HotbarWindow.Height,
7272
};

Intersect.Client.Core/Interface/Game/Hotbar/HotbarItem.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -248,8 +248,8 @@ public FloatRect RenderBounds()
248248
{
249249
var rect = new FloatRect()
250250
{
251-
X = HotbarIcon.LocalPosToCanvas(new Point(0, 0)).X,
252-
Y = HotbarIcon.LocalPosToCanvas(new Point(0, 0)).Y,
251+
X = HotbarIcon.ToCanvas(new Point(0, 0)).X,
252+
Y = HotbarIcon.ToCanvas(new Point(0, 0)).Y,
253253
Width = HotbarIcon.Width,
254254
Height = HotbarIcon.Height
255255
};
@@ -545,25 +545,25 @@ public void Update()
545545
{
546546
if (_mouseX == -1 || _mouseY == -1)
547547
{
548-
_mouseX = InputHandler.MousePosition.X - HotbarIcon.LocalPosToCanvas(new Point(0, 0)).X;
549-
_mouseY = InputHandler.MousePosition.Y - HotbarIcon.LocalPosToCanvas(new Point(0, 0)).Y;
548+
_mouseX = InputHandler.MousePosition.X - HotbarIcon.ToCanvas(new Point(0, 0)).X;
549+
_mouseY = InputHandler.MousePosition.Y - HotbarIcon.ToCanvas(new Point(0, 0)).Y;
550550
}
551551
else
552552
{
553553
var xdiff = _mouseX -
554554
(InputHandler.MousePosition.X -
555-
HotbarIcon.LocalPosToCanvas(new Point(0, 0)).X);
555+
HotbarIcon.ToCanvas(new Point(0, 0)).X);
556556

557557
var ydiff = _mouseY -
558558
(InputHandler.MousePosition.Y -
559-
HotbarIcon.LocalPosToCanvas(new Point(0, 0)).Y);
559+
HotbarIcon.ToCanvas(new Point(0, 0)).Y);
560560

561561
if (Math.Sqrt(Math.Pow(xdiff, 2) + Math.Pow(ydiff, 2)) > 5)
562562
{
563563
_isDragging = true;
564564
_dragIcon = new Draggable(
565-
HotbarIcon.LocalPosToCanvas(new Point(0, 0)).X + _mouseX,
566-
HotbarIcon.LocalPosToCanvas(new Point(0, 0)).X + _mouseY, _contentPanel.Texture, _contentPanel.RenderColor
565+
HotbarIcon.ToCanvas(new Point(0, 0)).X + _mouseX,
566+
HotbarIcon.ToCanvas(new Point(0, 0)).X + _mouseY, _contentPanel.Texture, _contentPanel.RenderColor
567567
);
568568

569569
//SOMETHING SHOULD BE RENDERED HERE, RIGHT?

Intersect.Client.Core/Interface/Game/Inventory/InventoryItem.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -267,8 +267,8 @@ public FloatRect RenderBounds()
267267
{
268268
var rect = new FloatRect()
269269
{
270-
X = Pnl.LocalPosToCanvas(new Point(0, 0)).X,
271-
Y = Pnl.LocalPosToCanvas(new Point(0, 0)).Y,
270+
X = Pnl.ToCanvas(new Point(0, 0)).X,
271+
Y = Pnl.ToCanvas(new Point(0, 0)).Y,
272272
Width = Pnl.Width,
273273
Height = Pnl.Height
274274
};
@@ -374,23 +374,23 @@ public void Update()
374374
{
375375
if (mMouseX == -1 || mMouseY == -1)
376376
{
377-
mMouseX = InputHandler.MousePosition.X - Pnl.LocalPosToCanvas(new Point(0, 0)).X;
378-
mMouseY = InputHandler.MousePosition.Y - Pnl.LocalPosToCanvas(new Point(0, 0)).Y;
377+
mMouseX = InputHandler.MousePosition.X - Pnl.ToCanvas(new Point(0, 0)).X;
378+
mMouseY = InputHandler.MousePosition.Y - Pnl.ToCanvas(new Point(0, 0)).Y;
379379
}
380380
else
381381
{
382382
var xdiff = mMouseX -
383-
(InputHandler.MousePosition.X - Pnl.LocalPosToCanvas(new Point(0, 0)).X);
383+
(InputHandler.MousePosition.X - Pnl.ToCanvas(new Point(0, 0)).X);
384384

385385
var ydiff = mMouseY -
386-
(InputHandler.MousePosition.Y - Pnl.LocalPosToCanvas(new Point(0, 0)).Y);
386+
(InputHandler.MousePosition.Y - Pnl.ToCanvas(new Point(0, 0)).Y);
387387

388388
if (Math.Sqrt(Math.Pow(xdiff, 2) + Math.Pow(ydiff, 2)) > 5)
389389
{
390390
IsDragging = true;
391391
mDragIcon = new Draggable(
392-
Pnl.LocalPosToCanvas(new Point(0, 0)).X + mMouseX,
393-
Pnl.LocalPosToCanvas(new Point(0, 0)).X + mMouseY, Pnl.Texture, Pnl.RenderColor
392+
Pnl.ToCanvas(new Point(0, 0)).X + mMouseX,
393+
Pnl.ToCanvas(new Point(0, 0)).X + mMouseY, Pnl.Texture, Pnl.RenderColor
394394
);
395395
}
396396
}

0 commit comments

Comments
 (0)