From 21274d5a1cff63626153920d3e535352c14756b1 Mon Sep 17 00:00:00 2001 From: Dust765 Date: Thu, 4 Nov 2021 16:36:01 +0100 Subject: [PATCH] POC - Guarlines (disabled because its slow af) --- src/Dust765/Dust765/CombatCollection.cs | 223 ++++++++++++++++++++++++ src/Game/Map/Chunk.cs | 35 ++++ 2 files changed, 258 insertions(+) diff --git a/src/Dust765/Dust765/CombatCollection.cs b/src/Dust765/Dust765/CombatCollection.cs index e0a1230be..2e5606ed1 100644 --- a/src/Dust765/Dust765/CombatCollection.cs +++ b/src/Dust765/Dust765/CombatCollection.cs @@ -38,8 +38,231 @@ using System.IO; using System.Runtime.CompilerServices; +// ## BEGIN - END ## // POC - GUARDLINE +//using System.Collections; +// ## BEGIN - END ## // POC - GUARDLINE + namespace ClassicUO.Dust765.Dust765 { + // ## BEGIN - END ## // POC - GUARDLINE + /* + class GuardRegion + { + private int m_Height; + private int m_Width; + private int m_X; + private int m_Y; + + public GuardRegion(string line) + { + string[] textArray1 = line.Split(new char[] { ' ' }); + this.m_X = int.Parse(textArray1[0]); + this.m_Y = int.Parse(textArray1[1]); + this.m_Width = int.Parse(textArray1[2]); + this.m_Height = int.Parse(textArray1[3]); + } + + public static ArrayList guardLines = new ArrayList(); + + /* + + Taken from razorce guardline.def + + # Papua + 5639 3095 192 223 -128 127 + 5831 3237 20 30 -128 127 + + # Delucia + 5123 3942 192 122 -128 127 + 5147 4064 125 20 -128 127 + 5235 3930 80 12 -128 127 + + # Yew + 92 656 349 225 -30 39 + 441 746 216 135 0 39 + 258 881 399 380 0 39 + 657 922 42 307 0 39 + 657 806 17 28 0 39 + 718 874 38 22 0 39 + 761 741 19 21 0 39 + + # Wind + 5132 3 70 55 -128 127 + 5132 58 81 68 -128 127 + 5213 98 39 28 -128 127 + 5197 126 55 78 -128 127 + 5252 112 42 58 -128 127 + 5252 170 32 8 -128 127 + 5252 178 20 5 -128 127 + 5252 183 10 10 -128 127 + 5294 19 72 120 -128 127 + 5279 57 15 55 -128 127 + 5286 25 8 32 -128 127 + + # Jhelom + 1303 3670 189 225 -20 127 + 1338 3895 74 28 -20 127 + 1383 3951 109 94 -20 127 + 1494 3767 12 11 -20 127 + + # Vesper + 2893 598 121 50 -10 127 + 2816 648 249 365 -10 127 + 2734 944 82 4 -10 127 + 2728 948 88 53 -10 127 + + # Minoc + 2411 366 135 241 -10 127 + 2548 495 72 55 -10 127 + 2564 585 3 42 -10 127 + 2567 585 61 61 -10 127 + 2499 627 68 63 -10 127 + 2694 685 15 16 -10 127 + + # Serpent's Hold. Get + 2868 3324 205 195 0 127 + + # Magincia + 3653 2046 27 48 0 127 + 3752 2046 52 48 0 127 + 3680 2045 72 49 0 127 + 3652 2094 160 180 -128 127 + 3649 2256 54 47 -128 127 + 3554 2132 18 18 -128 127 + + # Nujel'm + 3475 1000 360 435 0 127 + + # Cove + 2200 1110 50 50 -10 127 + 2200 1160 86 86 -10 127 + + # Ocllo + 3587 2456 119 99 -128 127 F + 3706 2460 2 95 -128 127 F + 3587 2555 106 73 -128 127 F + 3590 2628 103 58 -128 127 F + 3693 2555 61 144 -128 127 F + 3754 2558 7 141 -128 127 F + 3761 2555 7 144 -128 50 F + 3695 2699 66 13 -128 127 F + + # Haven + 3590 2460 118 226 -10 127 T + 3568 2552 22 79 -10 127 T + 3708 2558 53 154 -10 127 T + 3695 2686 13 26 -10 127 T + 3759 2767 10 10 -10 127 T + + # Britain + 1416 1498 324 279 -10 127 + 1500 1408 46 90 0 127 + 1385 1538 31 239 -10 127 + 1416 1777 324 60 0 127 + 1385 1777 31 130 0 127 + 1093 1538 292 369 0 127 + 1330 1991 13 13 -10 127 + + # Skara Brae + 638 2062 12 11 0 127 + 538 2107 150 190 -10 127 + + # Trinsic + 1856 2636 75 28 -10 127 + 1816 2664 283 231 -10 127 + 2099 2782 18 25 -10 127 + 1970 2895 47 32 -10 127 + 1796 2696 20 67 0 127 + 1800 2796 16 52 0 127 + 1823 2943 11 11 -128 127 + + # Moonglow + 4535 844 20 3 0 127 + 4530 847 31 61 0 127 + 4521 914 56 49 0 127 + 4278 915 54 19 0 127 + 4283 944 53 73 0 127 + 4377 1015 59 37 -10 127 + 4367 1050 142 145 0 127 + 4539 1036 27 18 0 127 + 4517 1053 23 22 0 127 + 4389 1198 47 39 0 127 + 4466 1211 32 25 0 127 + 4700 1108 17 18 0 127 + 4656 1127 26 13 0 127 + 4678 1162 25 25 0 127 + 4613 1196 23 22 0 127 + 4646 1212 14 17 0 127 + 4677 1214 26 22 0 127 + 4459 1276 16 16 0 127 + 4622 1316 22 24 0 127 + 4487 1353 59 21 0 127 + 4477 1374 69 35 0 127 + 4659 1387 40 40 0 127 + 4549 1482 29 27 0 127 + 4405 1451 23 23 0 127 + 4483 1468 21 13 0 127 + + #duel + 5307 3681 33 26 -127 127 + 5158 3436 33 28 -127 127 + 5848 3500 27 30 -127 127 + 6055 2324 39 24 -127 127 + 5757 3658 27 26 -127 127 + */ + + //ONLY POPULATING TRINSIC ATM FOR TESTING + /* + 1856 2636 75 28 -10 127 + 1816 2664 283 231 -10 127 + 2099 2782 18 25 -10 127 + 1970 2895 47 32 -10 127 + 1796 2696 20 67 0 127 + 1800 2796 16 52 0 127 + 1823 2943 11 11 -128 127 + */ + /* + public static GuardRegion[] guardLinesRead() + { + guardLines.Add(new GuardRegion("1856 2636 75 28 -10 127")); + guardLines.Add(new GuardRegion("1816 2664 283 231 -10 127")); + guardLines.Add(new GuardRegion("2099 2782 18 25 -10 127")); + guardLines.Add(new GuardRegion("1970 2895 47 32 -10 127")); + guardLines.Add(new GuardRegion("1796 2696 20 67 0 127")); + guardLines.Add(new GuardRegion("1800 2796 16 52 0 127")); + guardLines.Add(new GuardRegion("1823 2943 11 11 -128 127")); + + return (GuardRegion[]) guardLines.ToArray(typeof(GuardRegion)); + } + + public int X + { + get { return m_X; } + set { m_X = value; } + } + + public int Y + { + get { return m_Y; } + set { m_Y = value; } + } + + public int Length + { + get { return m_Height; } + set { m_Height = value; } + } + + public int Width + { + get { return m_Width; } + set { m_Width = value; } + } + + + } + */ + // ## BEGIN - END ## // POC - GUARDLINE internal static class CombatCollection { //USED CONSTANTS diff --git a/src/Game/Map/Chunk.cs b/src/Game/Map/Chunk.cs index f8182924f..93717f35b 100644 --- a/src/Game/Map/Chunk.cs +++ b/src/Game/Map/Chunk.cs @@ -32,6 +32,10 @@ using System.Collections.Generic; using System.Runtime.CompilerServices; +// ## BEGIN - END ## // POC - GUARDLINE +//using ClassicUO.Dust765.Dust765; +//using Microsoft.Xna.Framework; +// ## BEGIN - END ## // POC - GUARDLINE // ## BEGIN - END ## // OUTLANDS //using ClassicUO.Dust765.Dust765; // ## BEGIN - END ## // OUTLANDS @@ -63,6 +67,9 @@ internal sealed class Chunk public int X; public int Y; + // ## BEGIN - END ## // POC - GUARDLINE + //private GuardRegion[] guard_Regions = GuardRegion.guardLinesRead(); + // ## BEGIN - END ## // POC - GUARDLINE public static Chunk Create(int x, int y) { @@ -108,6 +115,10 @@ public unsafe void Load(int index) land.X = tileX; land.Y = tileY; land.Z = z; + // ## BEGIN - END ## // POC - GUARDLINE + //if (PointInRect(land.X, land.Y)) + // land.Hue = 0x33; + // ## BEGIN - END ## // POC - GUARDLINE land.UpdateScreenPosition(); AddGameObject(land, x, y); @@ -478,5 +489,29 @@ public bool HasNoExternalData() return true; } + + // ## BEGIN - END ## // POC - GUARDLINE + /* + public bool PointInRect(ushort x, ushort y) + { + int count = guard_Regions.Length; + for (int i = 0; i < count; i++) + { + GuardRegion gr = this.guard_Regions[i]; + + Rectangle rect = new Rectangle(gr.X, gr.Y, gr.Width, gr.Length); + + Point tile = new Point(x, y); + + if (rect.Contains(tile)) + { + return true; + } + } + + return false; + } + */ + // ## BEGIN - END ## // POC - GUARDLINE } } \ No newline at end of file