anchor.diff:  			return "#[num2hex(x, 2)][num2hex(m, 2)][num2hex(c, 2)]"
   		if(5)
   			return "#[num2hex(c, 2)][num2hex(m, 2)][num2hex(x, 2)]"
  +
  +#undef CHAT_MESSAGE_SPAWN_TIME
  +#undef CHAT_MESSAGE_LIFESPAN
  +#undef CHAT_MESSAGE_EOL_FADE
  +#undef CHAT_MESSAGE_EXP_DECAY
  +#undef CHAT_MESSAGE_HEIGHT_DECAY
  +#undef CHAT_MESSAGE_APPROX_LHEIGHT
  +#undef CHAT_MESSAGE_WIDTH
  +#undef CHAT_LAYER_Z_STEP
  +#undef CHAT_LAYER_MAX_Z
  +#undef CHAT_MESSAGE_ICON_SIZE
  +#undef WXH_TO_HEIGHT
  
positive.code:   * * text - The text content of the overlay
    * * target - The target atom to display the overlay at
    * * owner - The mob that owns this overlay, only this mob will be able to view it
    * * extra_classes - Extra classes to apply to the span that holds the text
    * * lifespan - The lifespan of the message in deciseconds
    */
  /datum/chatmessage/proc/generate_image(text, atom/target, mob/owner, list/extra_classes, lifespan)
  	// Register client who owns this message
  	owned_by = owner.client
  	RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, .proc/on_parent_qdel)
  
negative.code: #define CHAT_LAYER_Z_STEP			0.0001
  /// The number of z-layer 'slices' usable by the chat message layering
  #define CHAT_LAYER_MAX_Z			(CHAT_LAYER_MAX - CHAT_LAYER) / CHAT_LAYER_Z_STEP
  /// The dimensions of the chat message icons
  #define CHAT_MESSAGE_ICON_SIZE		9
  /// Macro from Lummox used to get height from a MeasureText proc
  #define WXH_TO_HEIGHT(x)			text2num(copytext(x, findtextEx(x, "x") + 1))
  
  