function HaloPC:get_yaw_rate(player_index)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return read_f32(0x006AAACC + (0x85c * player_index))
end
function HaloPC:set_yaw_rate(player_index, value)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return write_f32(0x006AAACC + (0x85c * player_index), value)
end
function HaloPC:get_pitch_rate(player_index)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return read_f32(0x006AAAD0 + (0x85c * player_index))
end
function HaloPC:get_pitch_rate(player_index, value)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return write_f32(0x006AAAD0 + (0x85c * player_index), value)
end
function HaloPC:get_digital_forward_throttle(player_index)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return read_f32(0x006ABB38 + (0x85c * player_index))
end
function HaloPC:set_digital_forward_throttle(player_index, value)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return write_f32(0x006ABB38 + (0x85c * player_index), value)
end

function HaloPC:get_digital_strafe_throttle(player_index)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return read_f32(0x006ABB3C + (0x85c * player_index))
end
function HaloPC:set_digital_strafe_throttle(player_index, value)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return write_f32(0x006ABB3C + (0x85c * player_index), value)
end
function HaloPC:get_digital_yaw_increment(player_index)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return read_f32(0x006ABB40 + (0x85c * player_index))
end
function HaloPC:set_digital_yaw_increment(player_index, value)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return write_f32(0x006ABB40 + (0x85c * player_index), value)
end
function HaloPC:get_digital_pitch_increment(player_index)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return read_f32(0x006ABB44 + (0x85c * player_index))
end
function HaloPC:set_digital_pitch_increment(player_index, value)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return write_f32(0x006ABB44 + (0x85c * player_index), value)
end


function HaloPC:get_mouse_forward_threshold(player_index)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return read_f32(0x006ABB48 + (0x85c * player_index))
end
function HaloPC:set_mouse_forward_threshold(player_index, value)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return write_f32(0x006ABB48 + (0x85c * player_index), value)
end
function HaloPC:get_mouse_strafe_threshold(player_index)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return read_f32(0x006ABB4C + (0x85c * player_index))
end
function HaloPC:set_mouse_strafe_threshold(player_index, value)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return write_f32(0x006ABB4C + (0x85c * player_index), value)
end
function HaloPC:get_mouse_yaw_scale(player_index)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return read_f32(0x006ABB50 + (0x85c * player_index))
end
function HaloPC:set_mouse_yaw_scale(player_index, value)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return write_f32(0x006ABB50 + (0x85c * player_index), value)
end
function HaloPC:get_mouse_pitch_scale(player_index)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return read_f32(0x006ABB54 + (0x85c * player_index))
end
function HaloPC:set_mouse_pitch_scale(player_index, value)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return write_f32(0x006ABB54 + (0x85c * player_index), value)
end


function HaloPC:get_gamepad_forward_threshold(player_index)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return read_f32(0x006ABB58 + (0x85c * player_index))
end
function HaloPC:set_gamepad_forward_threshold(player_index, value)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return write_f32(0x006ABB58 + (0x85c * player_index), value)
end
function HaloPC:get_gamepad_strafe_threshold(player_index)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return read_f32(0x006ABB5C + (0x85c * player_index))
end
function HaloPC:set_gamepad_strafe_threshold(player_index, value)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return write_f32(0x006ABB5C + (0x85c * player_index), value)
end
function HaloPC:get_gamepad_yaw_scale(player_index)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return read_f32(0x006ABB60 + (0x85c * player_index))
end
function HaloPC:set_gamepad_yaw_scale(player_index, value)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return write_f32(0x006ABB60 + (0x85c * player_index), value)
end
function HaloPC:get_gamepad_pitch_scale(player_index)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return read_f32(0x006ABB64 + (0x85c * player_index))
end
function HaloPC:set_gamepad_pitch_scale(player_index, value)
  if player_index < 0 then Halo:Print("Array Underflow exception!") return -1 end
  if player_index > 3 then Halo:Print("Array overflow exception!") return -1 end
  return write_f32(0x006ABB64 + (0x85c * player_index), value)
end

function HaloPC:get_global_f(index)
  if index < 0 then Halo:Print("underflow! f0-f5") return -1 end
  if index > 5 then Halo:Print("overflow! f0-f5") return -1 end
  return read_f32(0x00624A24 + (4 * index))
end

function HaloPC:set_global_f(index, value)
  if index < 0 then Halo:Print("underflow! f0-f5") return -1 end
  if index > 5 then Halo:Print("overflow! f0-f5") return -1 end
  return write_f32(0x00624A24 + (4 * index), value)
end