ID:1923597
 
(See the best response by Ter13.)
Problem description:
I've been trying to get my head around this and I think I've massively over complicated things. Here goes;

I have X amount of locations on the map, lets say ,
Location 1:(1,1,1),
Location 2:(1,2,1).
I have a list, list[1],list[2].
I want list[1] to contain a description Location 1 and list[2] to do the same for location 2.
This is what I have.
mob
var
list/list_d[2]
turf
Click()
var/tmp/GetReference = "l_[src.x][src.y][src.z]"
MapReference(GetReference,input("Type what is here")as text,usr)
src.name = usr.list_d[1] //Check
proc
MapReference(string,what,mob/m)
switch(string)
if("l_111")
m.list_d[1] = what


It does the job, essentially every player will see the same map, but I'll use images for 'custom objects' (which aren't actually objs) on the map without actually having an object on the map. (The best way of instancing I could think for large amounts of players). For example;
At 1,1,1; Player A builds a wall, Player B builds a tower.
This is how I'll keep track, anyone have any other ideas how I may go about this?
My initial thought was dynamic runtime vars but as far I'm aware thats not possible? Something like this...

#define l_111 list_d[1]
#define l_121 list_d[2]
mob
var
list/list_d[2]
turf
Click()
var/tmp/GetReference = "l_[src.x][src.y][src.z]"
usr.[GetReference] = input("Type what is here")as text
Annnd about two minutes after posting this, I remembered lists can have strings as index's. Well now I feel silly.
Best response
You should look up the tag variable. It's basically what you are trying to do.

Also, the /ref macro.
Brilliant, Many thanks Ter13. I had no idea about tag.