1
Tools / Re: LOFTEMPS Viewer 3D
« on: April 14, 2024, 06:53:27 am »
looks like an excellent tool to check lofts and parts placement
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
although I can't get the Top view to show symbols from my LoFTs
And ... ... it also crashes when I use the mouse wheel.Code: [Select]Unhandled Exception:
System.EntryPointNotFoundException: WindowFromPoint assembly:<unknown assembly> type:<unknown type> member:(null)
at (wrapper managed-to-native) MapView.MainViewF.WindowFromPoint(System.Drawing.Point)
at MapView.MainViewF.PreFilterMessage (System.Windows.Forms.Message& m) [0x00020] in <0a0656103b894489b35d71dc5339306a>:0
at System.Windows.Forms.Application.FilterMessage (System.Windows.Forms.Message& message) [0x0001f] in <b2f5ba339bd244a2a072fe9fd5539e2f>:0
at System.Windows.Forms.Application.RunLoop (System.Boolean Modal, System.Windows.Forms.ApplicationContext context) [0x000e9] in <b2f5ba339bd244a2a072fe9fd5539e2f>:0
at System.Windows.Forms.Application.Run (System.Windows.Forms.ApplicationContext context) [0x00011] in <b2f5ba339bd244a2a072fe9fd5539e2f>:0
at System.Windows.Forms.Application.Run (System.Windows.Forms.Form mainForm) [0x00006] in <b2f5ba339bd244a2a072fe9fd5539e2f>:0
at MapView.Start.Start_init () [0x00021] in <0a0656103b894489b35d71dc5339306a>:0
at MapView.Program.Main (System.String[] args) [0x00033] in <0a0656103b894489b35d71dc5339306a>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.EntryPointNotFoundException: WindowFromPoint assembly:<unknown assembly> type:<unknown type> member:(null)
at (wrapper managed-to-native) MapView.MainViewF.WindowFromPoint(System.Drawing.Point)
at MapView.MainViewF.PreFilterMessage (System.Windows.Forms.Message& m) [0x00020] in <0a0656103b894489b35d71dc5339306a>:0
at System.Windows.Forms.Application.FilterMessage (System.Windows.Forms.Message& message) [0x0001f] in <b2f5ba339bd244a2a072fe9fd5539e2f>:0
at System.Windows.Forms.Application.RunLoop (System.Boolean Modal, System.Windows.Forms.ApplicationContext context) [0x000e9] in <b2f5ba339bd244a2a072fe9fd5539e2f>:0
at System.Windows.Forms.Application.Run (System.Windows.Forms.ApplicationContext context) [0x00011] in <b2f5ba339bd244a2a072fe9fd5539e2f>:0
at System.Windows.Forms.Application.Run (System.Windows.Forms.Form mainForm) [0x00006] in <b2f5ba339bd244a2a072fe9fd5539e2f>:0
at MapView.Start.Start_init () [0x00021] in <0a0656103b894489b35d71dc5339306a>:0
at MapView.Program.Main (System.String[] args) [0x00033] in <0a0656103b894489b35d71dc5339306a>:0
#if !__MonoCS__
#region P/Invoke declarations
[DllImport("user32.dll")]
static extern IntPtr WindowFromPoint(Point pt);
[DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
#endregion P/Invoke declarations
#region IMessageFilter
/// <summary>
/// Sends mousewheel messages to the control that the mouse-cursor is
/// hovering over.
/// </summary>
/// <param name="m">the message</param>
/// <returns>true if a mousewheel message was handled successfully</returns>
/// <remarks>https://stackoverflow.com/questions/4769854/windows-forms-capturing-mousewheel#4769961</remarks>
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == 0x20a)
{
// WM_MOUSEWHEEL - find the control at screen position m.LParam
var pos = new Point(m.LParam.ToInt32());
IntPtr hWnd = WindowFromPoint(pos);
if (hWnd != IntPtr.Zero && hWnd != m.HWnd && Control.FromHandle(hWnd) != null)
{
SendMessage(hWnd, m.Msg, m.WParam, m.LParam);
return true;
}
}
return false;
}
#endregion IMessageFilter
#endif
I request an option for directly reading a OXC(E) terrain .rul file in MapView.
Instead of having to use the RulesetConverter initally and re-convert whenever something in the .rul file changes.
Thank you for updating MapView2 your program is great.
const int Node::nodeRank[8][7] =
// ..
{ NR_SOLDIER, NR_ENGINEER, NR_NAVIGATOR, NR_LEADER, NR_MISC1, NR_MISC2, NR_SCOUT }, //terrorist
{ NR_SOLDIER, NR_ENGINEER, NR_NAVIGATOR, NR_LEADER, NR_MISC1, NR_MISC2, NR_SCOUT } //also terrorist
const int Node::nodeRank[8u][8u]
{
{ NR_LEADER, NR_NAVIGATOR, NR_ENGINEER, NR_SOLDIER, NR_MEDIC, NR_MISC2, NR_MISC1, NR_SCOUT }, // commander
{ NR_LEADER, NR_NAVIGATOR, NR_ENGINEER, NR_SOLDIER, NR_MEDIC, NR_MISC2, NR_MISC1, NR_SCOUT }, // leader
{ NR_ENGINEER, NR_LEADER, NR_NAVIGATOR, NR_SOLDIER, NR_MEDIC, NR_MISC2, NR_MISC1, NR_SCOUT }, // engineer
{ NR_MEDIC, NR_NAVIGATOR, NR_ENGINEER, NR_LEADER, NR_SOLDIER, NR_MISC2, NR_MISC1, NR_SCOUT }, // medic
{ NR_NAVIGATOR, NR_LEADER, NR_ENGINEER, NR_SOLDIER, NR_MEDIC, NR_MISC2, NR_MISC1, NR_SCOUT }, // navigator
{ NR_SOLDIER, NR_ENGINEER, NR_NAVIGATOR, NR_MEDIC, NR_LEADER, NR_MISC2, NR_MISC1, NR_SCOUT }, // soldier
{ NR_MISC1, NR_MISC2, NR_SOLDIER, NR_ENGINEER, NR_NAVIGATOR, NR_LEADER, NR_MEDIC, NR_SCOUT }, // terrorist1
{ NR_MISC2, NR_MISC1, NR_SOLDIER, NR_ENGINEER, NR_NAVIGATOR, NR_LEADER, NR_MEDIC, NR_SCOUT } // terrorist2
};