servuo/Scripts/Misc/ShrinkTable.cs
TrueUO b73897e554
Cleanup (#4848)
- Cleanup of various double calls and simplified code where possible.

Co-authored-by: TrueUO <knight.daniel.r@gmail.com>
2020-09-16 07:43:44 -07:00

85 lines
2.2 KiB
C#

using System;
using System.IO;
namespace Server
{
public class ShrinkTable
{
public const int DefaultItemID = 0x1870;// Yellow virtue stone
private static int[] m_Table;
public static int Lookup(Mobile m)
{
return Lookup(m.Body.BodyID, DefaultItemID);
}
public static int Lookup(int body)
{
return Lookup(body, DefaultItemID);
}
public static int Lookup(Mobile m, int defaultValue)
{
return Lookup(m.Body.BodyID, defaultValue);
}
public static int Lookup(int body, int defaultValue)
{
if (m_Table == null)
Load();
int val = 0;
if (body >= 0 && body < m_Table.Length)
val = m_Table[body];
if (val == 0)
val = defaultValue;
return val;
}
private static void Load()
{
string path = Path.Combine(Core.BaseDirectory, "Data/shrink.cfg");
if (!File.Exists(path))
{
m_Table = new int[0];
return;
}
m_Table = new int[1500];
using (StreamReader ip = new StreamReader(path))
{
string line;
while ((line = ip.ReadLine()) != null)
{
line = line.Trim();
if (line.Length == 0 || line.StartsWith("#"))
continue;
try
{
string[] split = line.Split('\t');
if (split.Length >= 2)
{
int body = Utility.ToInt32(split[0]);
int item = Utility.ToInt32(split[1]);
if (body >= 0 && body < m_Table.Length)
m_Table[body] = item;
}
}
catch (Exception e)
{
Diagnostics.ExceptionLogging.LogException(e);
}
}
}
}
}
}