HUD objects seem to render differently on each client.
The layers must be the same value in order for this to occur.
screen location also seems to influence whether or not this occurs.
Code Snippet (if applicable) to Reproduce Problem:
//Hud object b is supposed to appear over object a
obj
hud_obj
icon='HUD.dmi'
a
icon_state="a"
b
screen_loc="2,1:-24"
icon_state="b"
mob
proc
make_toolbar()
for(x=0,x<8,x++)
var/obj/O=new/obj/hud_obj/a()
O.screen_loc="[x],0"
client.screen+=O
var/obj/OOO=new/obj/hud_obj/b()
client.screen+=OOO
mob
New()
..()
spawn(0)make_toolbar()
Expected Results:
Identical screen object rendering
Actual Results:
The screen objects render differently on each client
Workarounds:
Problem doesn't occur if you set the layer of the overlapping object as higher than the object beneath it.
This code shows the same problem but with only two objects.
obj
hud_obj
icon='HUD.dmi'
a
layer=1
icon_state="a"
screen_loc="2,0"
b
layer=1
screen_loc="2,1:-24"
icon_state="b"
mob
proc
only_two()
var/obj/O=new/obj/hud_obj/a()
client.screen+=O
var/obj/OOO=new/obj/hud_obj/b()
client.screen+=OOO
mob
New()
..()
spawn(0)only_two()