ID:277985
 
Hey, what ever happened, to Xooxers Radar demo or was it a libary? I dont remember.
o.0 I believe you're confuzzled. The last radar I made was eons ago: [link] You must be thinking of someone else. Probably Malver: http://www.byond.com/developer/Malver/RadarDemo
In response to Xooxer
Ahh yes, that was the radar I was thinking of. Did you use http://www.byond.com/developer/Malver/RadarDemo that for yours? That's the idea I was going for... With the map in the background.
In response to Dranzer_Solo
No, I hacked mine together from scratch. It was horrible.

[edit]

See:
var/list/GlobalRadarUpdates = new()

atom
var/turf/prev_loc

client
var
list/matrix
running=0
obj
radarTL = /obj/radar/TopLeft
radarTM = /obj/radar/TopMiddle
radarTR = /obj/radar/TopRight
radarML = /obj/radar/MiddleLeft
radarMM = /obj/radar/MiddleMiddle
radarMR = /obj/radar/MiddleRight
radarBL = /obj/radar/BottomLeft
radarBM = /obj/radar/BottomMiddle
radarBR = /obj/radar/BottomRight
radarRC = /obj/radar/ResizeClose
radarDC = /obj/radar/DisplayControl
radarCL = /obj/radar/ControlLeft
list/RadarScreen = new()
list/RadarDisplay = new()
list/RadarObjects = new()
list/RadarUpdates = new()

obj
RObj1 = /obj/display/D1
RObj2 = /obj/display/D2
RObj3 = /obj/display/D3
RObj4 = /obj/display/D4
RObj5 = /obj/display/D5
RObj6 = /obj/display/D6
RObj7 = /obj/display/D7
RObj8 = /obj/display/D8
RObj9 = /obj/display/D9
RObj10 = /obj/display/D10
RObj11 = /obj/display/D11
RObj12 = /obj/display/D12
RObj13 = /obj/display/D13
RObj14 = /obj/display/D14
RObj15 = /obj/display/D15
RObj16 = /obj/display/D16
RObj17 = /obj/display/D17
RObj18 = /obj/display/D18
RObj19 = /obj/display/D19
RObj20 = /obj/display/D20
RObj21 = /obj/display/D21
RObj22 = /obj/display/D22
RObj23 = /obj/display/D23
RObj24 = /obj/display/D24
RObj25 = /obj/display/D25
RObj26 = /obj/display/D26
RObj27 = /obj/display/D27
RObj28 = /obj/display/D28
RObj29 = /obj/display/D29
RObj30 = /obj/display/D30
RObj31 = /obj/display/D31
RObj32 = /obj/display/D32
RObj33 = /obj/display/D33
RObj34 = /obj/display/D34
RObj35 = /obj/display/D35
RObj36 = /obj/display/D36
RObj37 = /obj/display/D37
RObj38 = /obj/display/D38
RObj39 = /obj/display/D39
RObj40 = /obj/display/D40
RObj41 = /obj/display/D41
RObj42 = /obj/display/D42
RObj43 = /obj/display/D43
RObj44 = /obj/display/D44
RObj45 = /obj/display/D45
RObj46 = /obj/display/D46
RObj47 = /obj/display/D47
RObj48 = /obj/display/D48
RObj49 = /obj/display/D49
RObj50 = /obj/display/D50
RObj51 = /obj/display/D51
RObj52 = /obj/display/D52
RObj53 = /obj/display/D53
RObj54 = /obj/display/D54
RObj55 = /obj/display/D55
RObj56 = /obj/display/D56
RObj57 = /obj/display/D57
RObj58 = /obj/display/D58
RObj59 = /obj/display/D59
RObj60 = /obj/display/D60
RObj61 = /obj/display/D61
RObj62 = /obj/display/D62
RObj63 = /obj/display/D63
RObj64 = /obj/display/D64


icon
R1 = new('radar.dmi',"")
R2 = new('radar.dmi',"")
R3 = new('radar.dmi',"")
R4 = new('radar.dmi',"")
R5 = new('radar.dmi',"")
R6 = new('radar.dmi',"")
R7 = new('radar.dmi',"")
R8 = new('radar.dmi',"")
R9 = new('radar.dmi',"")
R10 = new('radar.dmi',"")
R11 = new('radar.dmi',"")
R12 = new('radar.dmi',"")
R13 = new('radar.dmi',"")
R14 = new('radar.dmi',"")
R15 = new('radar.dmi',"")
R16 = new('radar.dmi',"")
R17 = new('radar.dmi',"")
R18 = new('radar.dmi',"")
R19 = new('radar.dmi',"")
R20 = new('radar.dmi',"")
R21 = new('radar.dmi',"")
R22 = new('radar.dmi',"")
R23 = new('radar.dmi',"")
R24 = new('radar.dmi',"")
R25 = new('radar.dmi',"")
R26 = new('radar.dmi',"")
R27 = new('radar.dmi',"")
R28 = new('radar.dmi',"")
R29 = new('radar.dmi',"")
R30 = new('radar.dmi',"")
R31 = new('radar.dmi',"")
R32 = new('radar.dmi',"")
R33 = new('radar.dmi',"")
R34 = new('radar.dmi',"")
R35 = new('radar.dmi',"")
R36 = new('radar.dmi',"")
R37 = new('radar.dmi',"")
R38 = new('radar.dmi',"")
R39 = new('radar.dmi',"")
R40 = new('radar.dmi',"")
R41 = new('radar.dmi',"")
R42 = new('radar.dmi',"")
R43 = new('radar.dmi',"")
R44 = new('radar.dmi',"")
R45 = new('radar.dmi',"")
R46 = new('radar.dmi',"")
R47 = new('radar.dmi',"")
R48 = new('radar.dmi',"")
R49 = new('radar.dmi',"")
R50 = new('radar.dmi',"")
R51 = new('radar.dmi',"")
R52 = new('radar.dmi',"")
R53 = new('radar.dmi',"")
R54 = new('radar.dmi',"")
R55 = new('radar.dmi',"")
R56 = new('radar.dmi',"")
R57 = new('radar.dmi',"")
R58 = new('radar.dmi',"")
R59 = new('radar.dmi',"")
R60 = new('radar.dmi',"")
R61 = new('radar.dmi',"")
R62 = new('radar.dmi',"")
R63 = new('radar.dmi',"")
R64 = new('radar.dmi',"")

New()
..()
RadarScreen = list(radarTL,radarTM,radarTR,radarML,radarMM,radarMR,radarBL,radarBM,radarBR,radarRC,radarDC,radarCL)
RadarDisplay = list(R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,R13,R14,R15,R16,R17,R18,R19,R20,R21,R22,R23,R24,R25,R26,R27,R28,R29,R30,R31,R32,R33,R34,R35,R36,R37,R38,R39,R40,R41,R42,R43,R44,R45,R46,R47,R48,R49,R50,R51,R52,R53,R54,R55,R56,R57,R58,R59,R60,R61,R62,R63,R64)
RadarObjects = list(RObj1,RObj2,RObj3,RObj4,RObj5,RObj6,RObj7,RObj8,RObj9,RObj10,RObj11,RObj12,RObj13,RObj14,RObj15,RObj16,RObj17,RObj18,RObj19,RObj20,RObj21,RObj22,RObj23,RObj24,RObj25,RObj26,RObj27,RObj28,RObj29,RObj30,RObj31,RObj32,RObj33,RObj34,RObj35,RObj36,RObj37,RObj38,RObj39,RObj40,RObj41,RObj42,RObj43,RObj44,RObj45,RObj46,RObj47,RObj48,RObj49,RObj50,RObj51,RObj52,RObj53,RObj54,RObj55,RObj56,RObj57,RObj58,RObj59,RObj60,RObj61,RObj62,RObj63,RObj64)

var/list/Rdisplay = new()
for(var/icon/I in RadarDisplay)
I = new('radar.dmi',"")
Rdisplay += I
RadarDisplay = Rdisplay


proc
show_radar()
var/list/Rscreen = new()
for(var/X in RadarScreen)
var/obj/radar/S = new X(src)
Rscreen += S
RadarScreen = Rscreen

var/list/Robjects = new()
for(var/X = RadarObjects.len, X > 0, X--)
var/type = RadarObjects[X]
var/obj/display/D = new type(src)
D.icon = RadarDisplay[X]
Robjects += D
RadarObjects = Robjects


hide_radar()
for(var/obj/O in src.screen)
if(O in RadarScreen)
src.screen -= O
RadarScreen -= O
RadarScreen += O.type
del(O)
else if(O in RadarObjects)
src.screen -= O
RadarObjects -= O
RadarObjects += O.type
del(O)


check_local_radar_updates()
var/list/L = new()
if(running)
for(var/RadarUpdate/U in GlobalRadarUpdates)
if(istype(U.ref, /turf))
if(U.ref:coverimage in images) continue
else L += U
else
if(U.ref.loc:coverimage in images) continue
else L += U
return L


get_type(var/turf/T)
if(src.matrix[T.x][T.y])
if(T.contents.len)
for(var/atom/A in T.contents)
if(istype(A,/mob))
return A:team
else if(istype(A,/obj))
return A:radar_state
else
return T.radar_state


get_obj(var/turf/Loc)
var/obj_x = round(round((Loc.x-1)*2)/32)+12
var/obj_y = round(round((Loc.y-1)*2)/32)+8
for(var/obj/display/D in RadarObjects)
if(D.screen_loc == "[obj_x]:50,[obj_y]:50")
return D


RadarUpdate
var
turf/map_loc
turf/prev_loc
atom/ref


proc
update_radar()
if(GlobalRadarUpdates.len)
for(var/client/C in PLAYERS)
var/list/updates = C.check_local_radar_updates()
if(updates.len)
for(var/RadarUpdate/U in updates)
if(U.prev_loc)
// create new blip for prev loc
var/new_type = C.get_type(U.prev_loc)
var/obj/Robj = C.get_obj(U.prev_loc)
var/icon/I = C.RadarDisplay[C.RadarObjects.Find(Robj)]
var/dx = round((U.prev_loc.x-1)*2,1)%32
var/dy = round((U.prev_loc.y-1)*2,1)%32
var/icon/old_pix = new /icon('radar.dmi',"[new_type]")
old_pix.Shift(EAST,dx)
old_pix.Shift(NORTH,dy)
I.Blend(old_pix,ICON_OVERLAY)
Robj.icon = I
// create blip for new loc
var/new_type = C.get_type(U.map_loc)
var/obj/display/Robj = C.get_obj(U.map_loc)
var/icon/I = C.RadarDisplay[C.RadarObjects.Find(Robj)]
var/dx = round((U.map_loc.x-1)*2,1)%32
var/dy = round((U.map_loc.y-1)*2,1)%32
var/icon/old_pix = new /icon('radar.dmi',"[new_type]")
old_pix.Shift(EAST,dx)
old_pix.Shift(NORTH,dy)
I.Blend(old_pix,ICON_OVERLAY)
Robj.icon = I
// update prev loc in reference
if(U.ref.prev_loc != U.map_loc)
U.ref.prev_loc = U.map_loc
GlobalRadarUpdates.len = 0
spawn(3) update_radar()


obj/radar

proc
lower_size(var/size)

TopLeft
icon = 'radar.dmi'
icon_state = "0,2"
layer = HUD_LAYER

New(client/C)
screen_loc = "12:22,15:22"
..()
C.screen += src


TopMiddle
icon = 'radar.dmi'
icon_state = "1,2"
layer = HUD_LAYER

New(client/C)
screen_loc = "13:22,15:22 to 18:22,15:22"
..()
C.screen += src


TopRight
icon = 'radar.dmi'
icon_state = "2,2"
layer = HUD_LAYER

New(client/C)
screen_loc = "19:22,15:22"
..()
C.screen += src


MiddleLeft
icon = 'radar.dmi'
icon_state = "0,1"
layer = HUD_LAYER

New(client/C)
screen_loc = "12:22,14:22 to 12:22,9:22"
..()
C.screen += src


MiddleMiddle
icon = 'radar.dmi'
icon_state = "1,1"
layer = HUD_LAYER

New(client/C)
screen_loc = "13:22,14:22 to 18:22,9:22"
..()
C.screen += src


MiddleRight
icon = 'radar.dmi'
icon_state = "2,1"
layer = HUD_LAYER

New(client/C)
screen_loc = "19:22,14:22 to 19:22,9:22"
..()
C.screen += src


BottomLeft
icon = 'radar.dmi'
icon_state = "0,0"
layer = HUD_LAYER

New(client/C)
screen_loc = "12:22,8:22"
..()
C.screen += src


BottomMiddle
icon = 'radar.dmi'
icon_state = "1,0"
layer = HUD_LAYER

New(client/C)
screen_loc = "13:22,8:22 to 15:22,8:22"
..()
C.screen += src


BottomRight
icon = 'radar.dmi'
icon_state = "2,0"
layer = HUD_LAYER

New(client/C)
screen_loc = "19:22,8:22"
..()
C.screen += src


ResizeClose
icon = 'radar.dmi'
icon_state = "resize_close"
layer = HUD_LAYER

New(client/C)
screen_loc = "18:22,8:22"
..()
C.screen += src

MouseDown(src,x_factor,y_factor)
if( x_factor <= 15 && y_factor <= 11 && x_factor >= 7 && y_factor >= 3)
usr.client.running = 0
if(!usr.told_radar)
usr << "<b>You have turned off your Radar Display. To turn it back on, click the radar station, type \"radar\" into the command line below, or press alt+r</b>"
usr.told_radar = 1
usr.client.hide_radar()


DisplayControl
icon = 'radar.dmi'
icon_state = "0"
layer = HUD_LAYER

New(client/C)
screen_loc = "17:22,8:22"
..()
C.screen += src

MouseDown(src,x_factor,y_factor)
if(x_factor >= 25 && x_factor <= 32 && y_factor <= 10 && y_factor >= 6)
usr << "This would toggle terrain"
else if(x_factor >= 3 && x_factor <= 10 && y_factor <= 10 && y_factor >= 6)
usr << "This would toggle structures"
else if(x_factor >= 13 && x_factor <= 20 && y_factor <= 10 && y_factor >= 6)
usr << "This would toggle units"




ControlLeft
icon = 'radar.dmi'
icon_state = "ctrlL"
layer = HUD_LAYER

New(client/C)
screen_loc = "16:22,8:22"
..()
C.screen += src


obj/display
icon = 'radar.dmi'
icon_state = "1,1"
layer = HUD_LAYER + 1

New(client/C) // 12:22,15:22 to 19:22,8:22
..()
C.screen += src
D1
screen_loc = "12:50,8:50"
D2
screen_loc = "13:50,8:50"
D3
screen_loc = "14:50,8:50"
D4
screen_loc = "15:50,8:50"
D5
screen_loc = "16:50,8:50"
D6
screen_loc = "17:50,8:50"
D7
screen_loc = "18:50,8:50"
D8
screen_loc = "19:50,8:50"
D9
screen_loc = "12:50,9:50"
D10
screen_loc = "13:50,9:50"
D11
screen_loc = "14:50,9:50"
D12
screen_loc = "15:50,9:50"
D13
screen_loc = "16:50,9:50"
D14
screen_loc = "17:50,9:50"
D15
screen_loc = "18:50,9:50"
D16
screen_loc = "19:50,9:50"
D17
screen_loc = "12:50,10:50"
D18
screen_loc = "13:50,10:50"
D19
screen_loc = "14:50,10:50"
D20
screen_loc = "15:50,10:50"
D21
screen_loc = "16:50,10:50"
D22
screen_loc = "17:50,10:50"
D23
screen_loc = "18:50,10:50"
D24
screen_loc = "19:50,10:50"
D25
screen_loc = "12:50,11:50"
D26
screen_loc = "13:50,11:50"
D27
screen_loc = "14:50,11:50"
D28
screen_loc = "15:50,11:50"
D29
screen_loc = "16:50,11:50"
D30
screen_loc = "17:50,11:50"
D31
screen_loc = "18:50,11:50"
D32
screen_loc = "19:50,11:50"
D33
screen_loc = "12:50,12:50"
D34
screen_loc = "13:50,12:50"
D35
screen_loc = "14:50,12:50"
D36
screen_loc = "15:50,12:50"
D37
screen_loc = "16:50,12:50"
D38
screen_loc = "17:50,12:50"
D39
screen_loc = "18:50,12:50"
D40
screen_loc = "19:50,12:50"
D41
screen_loc = "12:50,13:50"
D42
screen_loc = "13:50,13:50"
D43
screen_loc = "14:50,13:50"
D44
screen_loc = "15:50,13:50"
D45
screen_loc = "16:50,13:50"
D46
screen_loc = "17:50,13:50"
D47
screen_loc = "18:50,13:50"
D48
screen_loc = "19:50,13:50"
D49
screen_loc = "12:50,14:50"
D50
screen_loc = "13:50,14:50"
D51
screen_loc = "14:50,14:50"
D52
screen_loc = "15:50,14:50"
D53
screen_loc = "16:50,14:50"
D54
screen_loc = "17:50,14:50"
D55
screen_loc = "18:50,14:50"
D56
screen_loc = "19:50,14:50"
D57
screen_loc = "12:50,15:50"
D58
screen_loc = "13:50,15:50"
D59
screen_loc = "14:50,15:50"
D60
screen_loc = "15:50,15:50"
D61
screen_loc = "16:50,15:50"
D62
screen_loc = "17:50,15:50"
D63
screen_loc = "18:50,15:50"
D64
screen_loc = "19:50,15:50"



obj/radar/red
icon='bases.dmi' // pick whatever icon you want
icon_state="red_comm"
var/obj/radar_screen/screen = null

Click()
if(usr.client.running) return
// screen=new(null,usr)
// usr.hud()
usr.client.running = 1
// // do something here to add this to the events list
// spawn(5) Update()
usr.client.show_radar()
..()


I warned you. >.>
In response to Xooxer
Wow...
In response to Dranzer_Solo
Yeah, well. I was new then. I had only been here for a little under two months when I made that post. I plead newb.