class UProperty extends UField;

// Persistent variables.
var int ArrayDim;
var int ElementSize;
var int PropertyFlags;
var name Category;
var byte RepOffset[2];
var byte RepIndex[2];
var int Offset;

// In memory variables.
var UProperty PropertyLinkNext;
var UProperty ConfigLinkNext;
var UProperty ConstructorLinkNext;
var UProperty NextRef;
var UProperty RepOwner;
var string CommentString;

final function SetRepOffset(int Value) {
  class 'TWord'.static.SetValue(Value, RepOffset[0], RepOffset[1]);
}

final function int GetRepOffset() {
  return class 'TWord'.static.GetValue(RepOffset[0], RepOffset[1]);
}

final function SetRepIndex(int Value) {
  class 'TWord'.static.SetValue(Value, RepIndex[0], RepIndex[1]);
}

final function int GetRepIndex() {
  return class 'TWord'.static.GetValue(RepIndex[0], RepIndex[1]);
}

static final function UProperty CastProperty(Object Other) {
  return Other;
}