ID:1884041
 
Applies to:DM Language
Status: Open

Issue hasn't been assigned a status value.
I'm putting this in feature requests but I'm not sure if this is feasible already.

Basically as the title says I wonder if there's a way to make it so you can have a mob or obj have separate layers in its icon. For example, if you could declare with bound_width and height a certain portion of the icon have one layer and the rest have another layer.

This could be really useful for instances where you'd like the feet of a mob to have a lower layer so grass, water and other turf displays over it and doesn't cover the rest of the body as well.

I know an alternative to this would be to split the icon manually and add the feet to the mob as underlay or something similar. But this seems like a bit of unnecessary work if it could be done in a simpler way.
The only way to do what you're asking is to split the icon as you've described, and do the layering programmatically. I can't think of any way this would be feasible from the perspective of the graphics themselves.
In response to Super Saiyan X
I think the amount of work would double using this method. If I have to do this for every turf and object on the map that I'd like to have different layers.
SIDE_MAP does something similar to this, but not as detailed as what I think you're suggesting.

I'm not sure this would work for grass. Ideally you'd only want a few blades of it at any point to appear over the character's feet, but that would imply each row of grass blades in a tile had a separate sub-layer. It'd be like giving each pixel its own layer offset, and that's straight-up impossible. (Sure, DirectX has depth buffers, but we don't use them. That'd complicate drawing something fierce.)
In response to Lummox JR
The grass I was referring to would be separate patches of tall grass specifically for this purpose.

But thank you for the feedback I'll check out SIDE_MAP and make do with whatever is available.
The layering in SIDE_MAP is a little annoying and messed up most of the game up but it gives the desired result. However when I add turfs with a higher layer to the map this happens(I am adding them on top of the turf instead of replacing the turf):




This is the code:

turf
dirt
icon='turfs.dmi'
density
density =1
plant
icon = 'turfs.dmi'
icon_state = "plant"
layer = 5


This is how it looks in DM:


This is probably something dumb I am doing but I'd rather get to the bottom of it as quick as possible before I decide whether I want to continue using SIDE_MAP from here on.
Admittedly SIDE_MAP is a little broken. The layering is imperfect because it does not use topological sorting. That's something I have plans to address in the future.
In response to Lummox JR
What do you suggest I do moving forward?
Well, the way people have been handling this so far is modifying the layer of each row of the map, and modifying the player's layer as they move. This may not be very practical. SIDE_MAP is on my horizon to fix, but I have other things that need to get done first.
In response to Lummox JR
So just stay with top down then. Thanks a bunch for taking your time to explain and looking forward to those fixes.

edit: now that I switched back the problem above still remains, the turf appears with a black background on top of other turf.
The black turf thing is not a SIDE_MAP issue, but something that went wrong in your map. It looks as though the underlay is either missing or out of place. Open up your map in a text editor to see if the underlay is there.

The only real issue in SIDE_MAP is that sometimes it confuses the layers of two icons, but it shouldn't ever leave them out entirely.
In response to Lummox JR
I opened it up in a text editor but I have no idea what I'm looking at or for:

"aa" = (/turf,/area)
"ab" = (/obj/introScreen/titlePicture,/obj/introScreen/enterToBegin,/ obj/introScreen/gameName,/turf,/area)
"ac" = (/turf/density,/area)
"ad" = (/turf/dirt,/area)
"ae" = (/turf/dirt,/turf/plant,/area)
"af" = (/turf/plant,/area)
"ag" = (/turf/testLoc,/area)
"ah" = (/obj/spiritWorld/miloTreeRootsGlow,/obj/spiritWorld/ miloTreeRootsGlow,/obj/spiritWorld/miloTreeMoonSpirit,/ turf,/area)
"ai" = (/obj/spiritWorld/miloTreeRootsGlow,/turf/spiritWorld/ miloTree,/area)
"aj" = (/turf/introScreen/moonGlow,/area)
"ak" = (/turf/introScreen/moon,/area)
"al" = (/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"am" = (/obj/introScreen/cloudsBigger{tag = "icon-3"; icon_state = "3"},/turf,/area)
"an" = (/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"ao" = (/obj/introScreen/cloudsBigger{tag = "icon-4"; icon_state = "4"},/turf,/area)
"ap" = (/obj/introScreen/starsBright{tag = "icon-tiny"; icon_state = "tiny"},/turf,/area)
"aq" = (/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"ar" = (/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"as" = (/obj/introScreen/starsBright{tag = "icon-big"; icon_state = "big"},/turf,/area)
"at" = (/obj/introScreen/starsBright{tag = "icon-del"; icon_state = "del"},/turf,/area)
"au" = (/obj/introScreen/cloudsBigger{tag = "icon-4"; icon_state = "4"},/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"av" = (/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"aw" = (/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/cloudsBigger{tag = "icon-4"; icon_state = "4"},/turf,/area)
"ax" = (/obj/introScreen/starsBright{tag = "icon-spec"; icon_state = "spec"},/turf,/area)
"ay" = (/obj/introScreen/cloudsBigger{tag = "icon-3"; icon_state = "3"},/obj/introScreen/starsBright{tag = "icon-del"; icon_state = "del"},/turf,/area)
"az" = (/obj/introScreen/starsFaded{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"aA" = (/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsBright{tag = "icon-tiny"; icon_state = "tiny"},/turf,/area)
"aB" = (/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsBright{tag = "icon-del"; icon_state = "del"},/turf,/area)
"aC" = (/obj/introScreen/cloudsBigger,/turf,/area)
"aD" = (/obj/introScreen/clouds,/turf,/area)
"aE" = (/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/obj/introScreen/cloudsBigger{tag = "icon-4"; icon_state = "4"},/turf,/area)
"aF" = (/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"aG" = (/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"aH" = (/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsBright{tag = "icon-big"; icon_state = "big"},/turf,/area)
"aI" = (/turf/introScene/moonLocation,/area)
"aJ" = (/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsBright{tag = "icon-del"; icon_state = "del"},/turf,/area)
"aK" = (/obj/introScreen/starsBright,/turf,/area)
"aL" = (/obj/introScreen/starsBright{tag = "icon-del"; icon_state = "del"},/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"aM" = (/obj/introScreen/cloudsBigger{tag = "icon-2"; icon_state = "2"},/turf,/area)
"aN" = (/obj/introScreen/clouds{tag = "icon-5"; icon_state = "5"},/turf,/area)
"aO" = (/obj/introScreen/cloudsBigger{tag = "icon-3"; icon_state = "3"},/obj/introScreen/cloudsBigger{tag = "icon-3"; icon_state = "3"},/turf,/area)
"aP" = (/obj/introScreen/clouds{tag = "icon-6"; icon_state = "6"},/turf,/area)
"aQ" = (/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"aR" = (/obj/introScreen/cloudsBigger{tag = "icon-1"; icon_state = "1"},/turf,/area)
"aS" = (/obj/littleThings/firefliesWhite{tag = "icon-newSpec"; icon_state = "newSpec"},/turf,/area)
"aT" = (/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/turf/introScreen/moonGlow,/area)
"aU" = (/obj/littleThings/firefliesWhite{tag = "icon-small"; icon_state = "small"},/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"aV" = (/obj/littleThings/firefliesWhite{tag = "icon-small"; icon_state = "small"},/turf,/area)
"aW" = (/obj/introScreen/cloudsBigger{tag = "icon-2"; icon_state = "2"},/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"aX" = (/obj/littleThings/firefliesWhite{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"aY" = (/obj/introScreen/cloudsBigger{tag = "icon-1"; icon_state = "1"},/turf/introScreen/moonGlow,/area)
"aZ" = (/obj/littleThings/firefliesWhiteLonger{tag = "icon-newBig"; icon_state = "newBig"},/turf,/area)
"ba" = (/obj/introScreen/starsFaded{tag = "icon-spec"; icon_state = "spec"},/turf,/area)
"bb" = (/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSpec"; icon_state = "newSpec"},/obj/littleThings/firefliesWhite{tag = "icon-newSpec"; icon_state = "newSpec"},/turf,/area)
"bc" = (/obj/littleThings/firefliesWhiteLonger{tag = "icon-2in1"; icon_state = "2in1"},/turf,/area)
"bd" = (/obj/littleThings/firefliesWhiteLonger{tag = "icon-small"; icon_state = "small"},/turf,/area)
"be" = (/obj/introScreen/starsFaded{tag = "icon-spec"; icon_state = "spec"},/obj/introScreen/starsFaded{tag = "icon-spec"; icon_state = "spec"},/turf,/area)
"bf" = (/obj/littleThings/fireflies,/turf,/area)
"bg" = (/obj/littleThings/firefliesWhite,/turf,/area)
"bh" = (/obj/littleThings/fireflies,/obj/littleThings/fireflies,/ turf,/area)
"bi" = (/obj/littleThings/fireflies,/obj/littleThings/fireflies,/obj/ littleThings/fireflies,/turf,/area)
"bj" = (/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"bk" = (/obj/introScreen/starsFaded{tag = "icon-spec"; icon_state = "spec"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"bl" = (/obj/littleThings/firefliesWhite{tag = "icon-newSpec"; icon_state = "newSpec"},/obj/littleThings/firefliesWhite{tag = "icon-newSpec"; icon_state = "newSpec"},/turf,/area)
"bm" = (/obj/littleThings/firefliesWhite{tag = "icon-newSpec"; icon_state = "newSpec"},/obj/littleThings/firefliesWhite{tag = "icon-small"; icon_state = "small"},/turf,/area)
"bn" = (/obj/littleThings/firefliesWhite{tag = "icon-newBig"; icon_state = "newBig"},/turf,/area)
"bo" = (/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"bp" = (/obj/introScreen/starsBright{tag = "icon-spec"; icon_state = "spec"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"bq" = (/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"br" = (/obj/introScreen/cloudsFlipped{tag = "icon-4"; icon_state = "4"},/turf,/area)
"bs" = (/obj/littleThings/firefliesFaded,/turf,/area)
"bt" = (/obj/littleThings/firefliesFaded,/obj/littleThings/ firefliesFaded,/turf,/area)
"bu" = (/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"bv" = (/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSpec"; icon_state = "newSpec"},/turf,/area)
"bw" = (/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSmall"; icon_state = "newSmall"},/obj/littleThings/firefliesWhite{tag = "icon-small"; icon_state = "small"},/turf,/area)
"bx" = (/obj/introScreen/cloudsBigger{tag = "icon-3"; icon_state = "3"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"by" = (/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"bz" = (/obj/introScreen/starsFaded{tag = "icon-spec"; icon_state = "spec"},/obj/introScreen/starsFaded{tag = "icon-smal"; icon_state = "smal"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"bA" = (/obj/introScreen/starsFaded{tag = "icon-spec"; icon_state = "spec"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"bB" = (/obj/introScreen/starsFaded{tag = "icon-smal"; icon_state = "smal"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"bC" = (/obj/introScreen/cloudsFlipped{tag = "icon-3"; icon_state = "3"},/turf,/area)
"bD" = (/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSmall"; icon_state = "newSmall"},/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSpec"; icon_state = "newSpec"},/turf,/area)
"bE" = (/obj/introScreen/starsFaded{tag = "icon-smal"; icon_state = "smal"},/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"bF" = (/obj/introScreen/starsFaded{tag = "icon-spec"; icon_state = "spec"},/obj/introScreen/starsFaded{tag = "icon-smal"; icon_state = "smal"},/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"bG" = (/obj/littleThings/fireflies,/obj/littleThings/ firefliesWhiteLonger{tag = "icon-newBig"; icon_state = "newBig"},/turf,/area)
"bH" = (/obj/introScreen/starsBright{tag = "icon-spec"; icon_state = "spec"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"bI" = (/obj/introScreen/starsFaded{tag = "icon-smal"; icon_state = "smal"},/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"bJ" = (/obj/introScreen/starsFaded{tag = "icon-dot"; icon_state = "dot"},/obj/introScreen/starsFaded{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"bK" = (/obj/littleThings/firefliesWhite{tag = "icon-newBig"; icon_state = "newBig"},/obj/littleThings/firefliesWhite{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"bL" = (/obj/littleThings/firefliesWhite{tag = "icon-newSmall"; icon_state = "newSmall"},/obj/littleThings/firefliesWhite{tag = "icon-newSmall"; icon_state = "newSmall"},/obj/littleThings/firefliesWhite{tag = "icon-newBig"; icon_state = "newBig"},/turf,/area)
"bM" = (/obj/littleThings/firefliesWhite{tag = "icon-newSpec"; icon_state = "newSpec"},/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSpec"; icon_state = "newSpec"},/turf,/area)
"bN" = (/obj/littleThings/firefliesWhiteFaded{tag = "icon-small"; icon_state = "small"},/turf,/area)
"bO" = (/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"bP" = (/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/obj/littleThings/firefliesWhiteFaded{tag = "icon-newBig"; icon_state = "newBig"},/turf,/area)
"bQ" = (/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"bR" = (/obj/introScreen/clouds{tag = "icon-3"; icon_state = "3"},/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"bS" = (/obj/introScreen/cloudsBigger{tag = "icon-4"; icon_state = "4"},/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"bT" = (/obj/littleThings/firefliesWhite{tag = "icon-newSpec"; icon_state = "newSpec"},/obj/littleThings/firefliesWhite{tag = "icon-newSpec"; icon_state = "newSpec"},/obj/littleThings/firefliesWhite{tag = "icon-newSpec"; icon_state = "newSpec"},/turf,/area)
"bU" = (/obj/littleThings/firefliesWhite{tag = "icon-small"; icon_state = "small"},/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSpec"; icon_state = "newSpec"},/turf,/area)
"bV" = (/obj/littleThings/firefliesWhite{tag = "icon-newSmall"; icon_state = "newSmall"},/obj/littleThings/firefliesWhite{tag = "icon-small"; icon_state = "small"},/turf,/area)
"bW" = (/obj/introScreen/clouds{tag = "icon-6"; icon_state = "6"},/obj/introScreen/starsFaded{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"bX" = (/obj/introScreen/clouds{tag = "icon-4"; icon_state = "4"},/turf,/area)
"bY" = (/obj/introScreen/starsFaded{tag = "icon-spec"; icon_state = "spec"},/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"bZ" = (/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSpec"; icon_state = "newSpec"},/turf/introScreen/moonGlow,/area)
"ca" = (/obj/littleThings/firefliesWhite{tag = "icon-newBig"; icon_state = "newBig"},/obj/littleThings/firefliesWhite{tag = "icon-newSpec"; icon_state = "newSpec"},/turf,/area)
"cb" = (/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"cc" = (/obj/introScreen/clouds{tag = "icon-5"; icon_state = "5"},/obj/introScreen/starsBright{tag = "icon-dot"; icon_state = "dot"},/turf,/area)
"cd" = (/obj/introScreen/cloudsBigger{tag = "icon-3"; icon_state = "3"},/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"ce" = (/obj/introScreen/cloudsBiggerFlipped{tag = "icon-2"; icon_state = "2"},/turf,/area)
"cf" = (/obj/introScreen/clouds{tag = "icon-3"; icon_state = "3"},/turf,/area)
"cg" = (/obj/introScreen/cloudsBigger{tag = "icon-2"; icon_state = "2"},/obj/introScreen/cloudsBigger{tag = "icon-4"; icon_state = "4"},/obj/introScreen/starsBright{tag = "icon-smal"; icon_state = "smal"},/turf,/area)
"ch" = (/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSpec"; icon_state = "newSpec"},/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSpec"; icon_state = "newSpec"},/turf,/area)
"ci" = (/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSpec"; icon_state = "newSpec"},/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"cj" = (/obj/introScreen/cloudsFlipped{tag = "icon-5"; icon_state = "5"},/obj/littleThings/firefliesWhiteLonger{tag = "icon-newBig"; icon_state = "newBig"},/turf,/area)
"ck" = (/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSpec"; icon_state = "newSpec"},/turf,/area)
"cl" = (/obj/littleThings/firefliesWhite{tag = "icon-newBig"; icon_state = "newBig"},/obj/littleThings/firefliesWhite{tag = "icon-small"; icon_state = "small"},/turf,/area)
"cm" = (/obj/littleThings/firefliesWhite{tag = "icon-newBig"; icon_state = "newBig"},/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"cn" = (/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSpec"; icon_state = "newSpec"},/turf,/area)
"co" = (/obj/littleThings/firefliesWhiteFaded{tag = "icon-small"; icon_state = "small"},/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"cp" = (/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"cq" = (/obj/littleThings/firefliesWhite{tag = "icon-small"; icon_state = "small"},/obj/littleThings/firefliesWhite{tag = "icon-newSpec"; icon_state = "newSpec"},/turf,/area)
"cr" = (/obj/introScreen/cloudsBigger{tag = "icon-2"; icon_state = "2"},/obj/introScreen/starsBright{tag = "icon-spec"; icon_state = "spec"},/turf,/area)
"cs" = (/obj/introScreen/cloudsFlipped{tag = "icon-5"; icon_state = "5"},/turf,/area)
"ct" = (/obj/littleThings/firefliesWhite{tag = "icon-newBig"; icon_state = "newBig"},/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSmall"; icon_state = "newSmall"},/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"cu" = (/obj/littleThings/firefliesWhite{tag = "icon-small"; icon_state = "small"},/obj/littleThings/firefliesWhite{tag = "icon-small"; icon_state = "small"},/turf,/area)
"cv" = (/obj/introScreen/starsFaded,/turf,/area)
"cw" = (/obj/littleThings/firefliesWhiteFaded{tag = "icon-newBig"; icon_state = "newBig"},/obj/introScreen/cloudsBiggerFlipped{tag = "icon-3"; icon_state = "3"},/turf,/area)
"cx" = (/obj/littleThings/firefliesWhiteFaded{tag = "icon-newBig"; icon_state = "newBig"},/turf,/area)
"cy" = (/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSpec"; icon_state = "newSpec"},/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"cz" = (/obj/introScreen/cloudsBiggerFlipped{tag = "icon-3"; icon_state = "3"},/turf,/area)
"cA" = (/obj/introScreen/cloudsBiggerFlipped{tag = "icon-1"; icon_state = "1"},/turf,/area)
"cB" = (/obj/littleThings/firefliesWhiteFaded{tag = "icon-newBig"; icon_state = "newBig"},/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"cC" = (/obj/littleThings/firefliesWhiteFaded{tag = "icon-newBig"; icon_state = "newBig"},/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSpec"; icon_state = "newSpec"},/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"cD" = (/obj/littleThings/firefliesWhiteLonger{tag = "icon-newSpec"; icon_state = "newSpec"},/obj/littleThings/firefliesWhiteFaded{tag = "icon-newBig"; icon_state = "newBig"},/turf,/area)
"cE" = (/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/obj/littleThings/firefliesWhiteFaded{tag = "icon-newBig"; icon_state = "newBig"},/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"cF" = (/obj/introScreen/cloudsFlipped{tag = "icon-4"; icon_state = "4"},/obj/littleThings/firefliesWhiteFaded{tag = "icon-newSpec"; icon_state = "newSpec"},/turf,/area)
"cG" = (/obj/littleThings/firefliesFaded,/obj/littleThings/ firefliesWhiteFaded{tag = "icon-newSmall"; icon_state = "newSmall"},/turf,/area)
"cH" = (/obj/introScreen/lotusBackground,/obj/introScreen/ lotusWaterGlow,/turf,/area)
"cI" = (/turf/introScreen/blackTile,/area)
"cJ" = (/turf/introScreen/moonFlipped,/area)
"cK" = (/obj/littleThings/firefliesFaded,/turf/introScreen/ blackTile,/area)
"cL" = (/obj/introScreen/introPlant,/obj/introScreen/plantGlow,/obj/ introScreen/introPlantRoots,/turf/introScreen/blackTile,/ area)
"cM" = (/turf/introScreen/blackTile,/turf/introScreen/treeEyes{tag = "icon-bigY"; icon_state = "bigY"},/area)
"cN" = (/obj/littleThings/fireflies,/turf/introScreen/blackTile,/area)
"cO" = (/turf/introScreen/treeEyes{tag = "icon-bigY"; icon_state = "bigY"},/area)
"cP" = (/turf/introScreen/treeEyes{tag = "icon-smallB"; icon_state = "smallB"},/area)
"cQ" = (/turf/introScreen/treeEyes{tag = "icon-bigB"; icon_state = "bigB"},/area)
"cR" = (/obj/littleThings/firefliesEthos,/turf,/area)
"cS" = (/obj/littleThings/firefliesEthos,/turf/introScreen/ blackTile,/area)
"cT" = (/turf/introScreen/treeEyes,/area)
"cU" = (/turf/introScene/runningSceneBegin,/area)
"cV" = (/turf/introScreen/cutsceneBackground2,/area)
"cW" = (/obj/littleThings/fireflies,/obj/littleThings/ firefliesEthos,/turf/introScreen/blackTile,/area)
"cX" = (/turf/introScreen/cutsceneBackground,/area)
"cY" = (/turf/introScreen/blackTile,/turf/introScreen/ cutsceneForeground,/area)
"cZ" = (/turf/introScreen/cutsceneForeground,/area)
"da" = (/turf/introScreen/blackTile,/turf/introScreen/moonGlow,/area)
"db" = (/turf/introScreen/cave/caveBackground1,/turf/introScreen/ cave/caveForeground,/area)
"dc" = (/turf/introScreen/cave/caveBackgroundMain,/turf/introScreen/ cave/caveForegroundMain,/area)
"dd" = (/turf/introScreen/custceneForegroundBlue,/area)
"de" = (/turf/introScreen/blackTile,/turf/introScreen/sunlight,/area)
"df" = (/turf/crap,/area)
These two lines are of the most interest:

"ae" = (/turf/dirt,/turf/plant,/area)
"af" = (/turf/plant,/area)

You have turfs on your map that only have the plant, but no dirt. (That'd be the af ones; the ae ones have dirt too.)

If everything looks right with these turfs in DM but not in DS, then I'm not sure what's going on. I could take a look if you have source handy.
In response to Lummox JR
Sure no problem, where should I send it?
You can just send a zip to my regular email at [email protected], or if you a link up somewhere you can send me a private message with the link. I'll look at it when I can.
A tiny suggestion, you could make plants an object instead of a turf and avoid the blackness problem.

In response to Lummox JR
Lummox JR wrote:
The black turf thing is not a SIDE_MAP issue, but something that went wrong in your map. It looks as though the underlay is either missing or out of place. Open up your map in a text editor to see if the underlay is there.

Actually, this is an icon issue, Lummox.

When an overlay has a null icon_state, it will default to sharing the same icon_state as the main object.

turf
dirt
icon='turfs.dmi'
icon_state = "dirt"
density
density =1
plant
icon = 'turfs.dmi'
icon_state = "plant"
layer = 5


Just set the icon_state on dirt to a specific value and the issue goes away.
In response to Ter13
I confirmed that this fixed it. That's really weird but thanks a bunch.
Odd; there's actually a flag for keeping the icon_state of the overlay intact, which I would have expected to come into play here. But then the way underlays work from the map editor has always been a little iffy, and there are spots I know are broken that I'm afraid to fix for fear of impacting existing games.
At the same time this might correct existing games, I believe that if the correction will make map on runtime look as it did in the editor then it'd probably be better to fix it.

I've bumped similar issues a few times and all I did to resolve it was change things to /obj instead of keep them as turfs. I've actually noticed a few people who had similar problems but were never actually aware of that because it looked fine in the editor, sometimes it's just minor like a edge of a grass tile, it can go unnoticed.

I actually wonder how many games you'll help.