mirror of
https://github.com/AdAstra-LD/DS-Pokemon-Rom-Editor.git
synced 2026-05-09 12:51:54 -05:00
104 lines
2.4 KiB
C#
104 lines
2.4 KiB
C#
using System.IO;
|
|
|
|
namespace DSPRE.ROMFiles {
|
|
public class HeadbuttTree {
|
|
public bool picked = false;
|
|
|
|
private ushort _globalX;
|
|
private ushort _globalY;
|
|
private ushort _matrixX;
|
|
private ushort _matrixY;
|
|
private ushort _mapX;
|
|
private ushort _mapY;
|
|
|
|
public bool unused { get { return globalX == ushort.MaxValue && globalY == ushort.MaxValue; } }
|
|
|
|
public enum Types {
|
|
Normal,
|
|
Special,
|
|
}
|
|
|
|
public HeadbuttTree(BinaryReader br) {
|
|
this.globalX = br.ReadUInt16();
|
|
this.globalY = br.ReadUInt16();
|
|
}
|
|
|
|
public HeadbuttTree(ushort globalX = ushort.MaxValue, ushort globalY = ushort.MaxValue) {
|
|
this.globalX = globalX;
|
|
this.globalY = globalY;
|
|
}
|
|
|
|
public HeadbuttTree(HeadbuttTree original) {
|
|
this.globalX = original.globalX;
|
|
this.globalY = original.globalY;
|
|
}
|
|
|
|
public ushort globalX {
|
|
get { return _globalX; }
|
|
set {
|
|
_globalX = value;
|
|
_matrixX = (ushort)(_globalX / MapFile.mapSize);
|
|
_mapX = (ushort)(_globalX % MapFile.mapSize);
|
|
}
|
|
}
|
|
|
|
public ushort globalY {
|
|
get { return _globalY; }
|
|
set {
|
|
_globalY = value;
|
|
_matrixY = (ushort)(_globalY / MapFile.mapSize);
|
|
_mapY = (ushort)(_globalY % MapFile.mapSize);
|
|
}
|
|
}
|
|
|
|
public ushort matrixX {
|
|
get {
|
|
return _matrixX;
|
|
}
|
|
set {
|
|
_matrixX = value;
|
|
_globalX = (ushort)(_matrixX * MapFile.mapSize + _mapX);
|
|
_mapX = (ushort)(_globalX % MapFile.mapSize);
|
|
}
|
|
}
|
|
|
|
public ushort matrixY {
|
|
get {
|
|
return _matrixY;
|
|
}
|
|
set {
|
|
_matrixY = value;
|
|
_globalY = (ushort)(_matrixY * MapFile.mapSize + _mapY);
|
|
_mapY = (ushort)(_globalY % MapFile.mapSize);
|
|
}
|
|
}
|
|
|
|
public ushort mapX {
|
|
get {
|
|
return _mapX;
|
|
}
|
|
set {
|
|
_mapX = value;
|
|
_globalX = (ushort)(_matrixX * MapFile.mapSize + _mapX);
|
|
_matrixX = (ushort)(_globalX / MapFile.mapSize);
|
|
}
|
|
}
|
|
|
|
public ushort mapY {
|
|
get {
|
|
return _mapY;
|
|
}
|
|
set {
|
|
_mapY = value;
|
|
_globalY = (ushort)(_matrixY * MapFile.mapSize + _mapY);
|
|
_matrixY = (ushort)(_globalY / MapFile.mapSize);
|
|
}
|
|
}
|
|
|
|
public override string ToString() {
|
|
string suffix = unused ? "unused" : $"globalX: {globalX}, globalY: {globalY}";
|
|
return $"{nameof(HeadbuttTree)} - {suffix}";
|
|
}
|
|
}
|
|
}
|