anchor.diff:  			if(B.moved)
   				B.screen_loc = B.moved
   			else
  -				B.screen_loc = hud_used.ButtonNumberToScreenCoords(button_number)
  +				B.screen_loc = hud_used.ButtonNumberToScreenCoords(button_number, supportedcolumns)
   			if(reload_screen)
   				client.screen += B
   
  
positive.code: 			return
  
  	if(!hud_used.hide_actions_toggle.moved)
  		hud_used.hide_actions_toggle.screen_loc = hud_used.ButtonNumberToScreenCoords(button_number+1)
  	else
  		hud_used.hide_actions_toggle.screen_loc = hud_used.hide_actions_toggle.moved
  	if(reload_screen)
  		client.screen += hud_used.hide_actions_toggle
  
  
  
  #define AB_MAX_COLUMNS 10
  
  /datum/hud/proc/ButtonNumberToScreenCoords(number) // TODO : Make this zero-indexed for readabilty
  	var/row = round((number - 1)/AB_MAX_COLUMNS)
  	var/col = ((number - 1)%(AB_MAX_COLUMNS)) + 1
  
  	var/coord_col = "+[col-1]"
  	var/coord_col_offset = 4 + 2 * col
  
  	var/coord_row = "[row ? -row : "+0"]"
  
  	return "WEST[coord_col]:[coord_col_offset],NORTH[coord_row]:-6"
  
  /datum/hud/proc/SetButtonCoords(obj/screen/button,number)
  	var/row = round((number-1)/AB_MAX_COLUMNS)
  	var/col = ((number - 1)%(AB_MAX_COLUMNS)) + 1
  	var/x_offset = 32*(col-1) + 4 + 2*col
  	var/y_offset = -32*(row+1) + 26
  
  
negative.code: 		return
  
  	var/button_number = 0
  	var/list/cview = getviewsize(client.view)
  	var/supportedcolumns = cview[1]-2
  
  	if(hud_used.action_buttons_hidden)
  		for(var/datum/action/A in actions)
  