diff --git a/baystation12.dme b/baystation12.dme index a5e0a39cf0..a1c4980fee 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -204,6 +204,7 @@ #define FILE_DIR "icons/spideros_icons" #define FILE_DIR "icons/Testing" #define FILE_DIR "icons/turf" +#define FILE_DIR "icons/vehicles" #define FILE_DIR "icons/vending_icons" #define FILE_DIR "interface" #define FILE_DIR "maps" diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index fca51ad7ce..d745a48d89 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -20,40 +20,39 @@ obj/machinery/atmospherics - var/initialize_directions = 0 - var/color +obj/machinery/atmospherics/var/initialize_directions = 0 +obj/machinery/atmospherics/var/color - process() - build_network() +obj/machinery/atmospherics/process() + build_network() - proc - network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) - // Check to see if should be added to network. Add self if so and adjust variables appropriately. - // Note don't forget to have neighbors look as well! +obj/machinery/atmospherics/proc/network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) + // Check to see if should be added to network. Add self if so and adjust variables appropriately. + // Note don't forget to have neighbors look as well! - return null + return null - build_network() - // Called to build a network from this node +obj/machinery/atmospherics/proc/build_network() + // Called to build a network from this node - return null + return null - return_network(obj/machinery/atmospherics/reference) - // Returns pipe_network associated with connection to reference - // Notes: should create network if necessary - // Should never return null +obj/machinery/atmospherics/proc/return_network(obj/machinery/atmospherics/reference) + // Returns pipe_network associated with connection to reference + // Notes: should create network if necessary + // Should never return null - return null + return null - reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network) - // Used when two pipe_networks are combining +obj/machinery/atmospherics/proc/reassign_network(datum/pipe_network/old_network, datum/pipe_network/new_network) + // Used when two pipe_networks are combining - return_network_air(datum/network/reference) - // Return a list of gas_mixture(s) in the object - // associated with reference pipe_network for use in rebuilding the networks gases list - // Is permitted to return null +obj/machinery/atmospherics/proc/return_network_air(datum/network/reference) + // Return a list of gas_mixture(s) in the object + // associated with reference pipe_network for use in rebuilding the networks gases list + // Is permitted to return null - disconnect(obj/machinery/atmospherics/reference) +obj/machinery/atmospherics/proc/disconnect(obj/machinery/atmospherics/reference) - update_icon() - return null \ No newline at end of file +obj/machinery/atmospherics/update_icon() + return null \ No newline at end of file diff --git a/code/WorkInProgress/Ported/Bureaucracy/copier.dm b/code/WorkInProgress/Ported/Bureaucracy/copier.dm index 897681cd7d..8808e605ff 100644 --- a/code/WorkInProgress/Ported/Bureaucracy/copier.dm +++ b/code/WorkInProgress/Ported/Bureaucracy/copier.dm @@ -134,6 +134,7 @@ P.name = template.name P.desc = template.desc P.icon = template.icon + P.img = template:img sleep(30) job_num_copies -= 1 diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm index e5253e9441..1bfc31340d 100644 --- a/code/defines/obj/storage.dm +++ b/code/defines/obj/storage.dm @@ -88,7 +88,7 @@ /obj/item/weapon/storage/pillbottlebox name = "box of pill bottles" desc = "It has pictures of pill bottles on its front." - icon_state = "box" + icon_state = "pillbox" item_state = "syringe_kit" foldable = /obj/item/stack/sheet/cardboard //BubbleWrap @@ -292,12 +292,19 @@ update_icon() for(var/obj/item/weapon/card/id/ID in contents) - if(ID.icon_state == "gold") - icon_state = "walletid_gold" - return - else if(ID.icon_state == "id") - icon_state = "walletid" - return + switch(ID.icon_state) + if("id") + icon_state = "walletid" + return + if("silver") + icon_state = "walletid_silver" + return + if("gold") + icon_state = "walletid_gold" + return + if("centcom") + icon_state = "walletid_centcom" + return icon_state = "wallet" diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 151b75843b..a44b28b76e 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -142,12 +142,12 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r /obj/machinery/newscaster/attack_hand(mob/user as mob) if(!src.ispowered || src.isbroken) return - if(istype(user, /mob/living/carbon/human) ) - var/mob/living/carbon/human/human_user = user + if(istype(user, /mob/living/carbon/human) || istype(user,/mob/living/silicon) ) + var/mob/living/human_or_robot_user = user var/dat dat = text("Newscaster

Newscaster Unit #[src.unit_no]

") - src.scan_user(human_user) //Newscaster scans you + src.scan_user(human_or_robot_user) //Newscaster scans you switch(screen) if(0) @@ -160,7 +160,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r dat+= "
Submit new Feed story" dat+= "
Print newspaper" dat+= "
Re-scan User" - dat+= "

Exit" + dat+= "

Exit" if(src.securityCaster) var/wanted_already = 0 for(var/obj/machinery/newscaster/N in allCasters) @@ -363,8 +363,8 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r dat+="I'm sorry to break your immersion. This shit's bugged. Report this bug to Agouri, polyxenitopalidou@gmail.com" - human_user << browse(dat, "window=newscaster_main;size=400x600") - onclose(human_user, "newscaster_main") + human_or_robot_user << browse(dat, "window=newscaster_main;size=400x600") + onclose(human_or_robot_user, "newscaster_main") /*if(src.isbroken) //debugging shit return @@ -377,7 +377,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r /obj/machinery/newscaster/Topic(href, href_list) if(..()) return - if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai))) + if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) usr.machine = src if(href_list["set_channel_name"]) src.channel_name = strip_html(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", "")) @@ -444,6 +444,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r FC.messages += newMsg // To avoid further confusion, this one for adds the message to all existing newscasters' channel_list's channels. break // Another for to go through newscasters is not needed. Due to the nature of submit_new_CHANNEL, every reference src.screen=4 // to a channel in ANY newscaster is the same. Editing one will edit them all. + for(var/obj/machinery/newscaster/NEWSCASTER in allCasters) NEWSCASTER.newsAlert(src.channel_name) @@ -747,7 +748,7 @@ obj/item/weapon/newspaper/attack_self(mob/user as mob) obj/item/weapon/newspaper/Topic(href, href_list) var/mob/living/U = usr ..() - if ((src in U.contents) || ( istype(loc, /turf) && in_range(src, U) ) ) + if ((src in U.contents) || ( istype(loc, /turf) && in_range(src, U) )) U.machine = src if(href_list["next_page"]) if(curr_page==src.pages+1) @@ -796,21 +797,26 @@ obj/item/weapon/newspaper/attackby(obj/item/weapon/W as obj, mob/user as mob) ////////////////////////////////////helper procs -/obj/machinery/newscaster/proc/scan_user(mob/living/carbon/human/human_user as mob) - if(human_user.wear_id) //Newscaster scans you - if(istype(human_user.wear_id, /obj/item/device/pda) ) //autorecognition, woo! - var/obj/item/device/pda/P = human_user.wear_id - if(P.id) - src.scanned_user = "[P.id.registered_name] ([P.id.assignment])" +/obj/machinery/newscaster/proc/scan_user(mob/living/user as mob) + if(istype(user,/mob/living/carbon/human)) //User is a human + var/mob/living/carbon/human/human_user = user + if(human_user.wear_id) //Newscaster scans you + if(istype(human_user.wear_id, /obj/item/device/pda) ) //autorecognition, woo! + var/obj/item/device/pda/P = human_user.wear_id + if(P.id) + src.scanned_user = "[P.id.registered_name] ([P.id.assignment])" + else + src.scanned_user = "Unknown" + else if(istype(human_user.wear_id, /obj/item/weapon/card/id) ) + var/obj/item/weapon/card/id/ID = human_user.wear_id + src.scanned_user ="[ID.registered_name] ([ID.assignment])" else - src.scanned_user = "Unknown" - else if(istype(human_user.wear_id, /obj/item/weapon/card/id) ) - var/obj/item/weapon/card/id/ID = human_user.wear_id - src.scanned_user ="[ID.registered_name] ([ID.assignment])" + src.scanned_user ="Unknown" else src.scanned_user ="Unknown" else - src.scanned_user ="Unknown" + var/mob/living/silicon/ai_user = user + src.scanned_user = "[ai_user.name] ([ai_user.job])" /obj/machinery/newscaster/proc/print_paper() diff --git a/code/game/objects/items/weapons/cameras.dm b/code/game/objects/items/weapons/cameras.dm index 0fc1ecb625..17707a33e5 100644 --- a/code/game/objects/items/weapons/cameras.dm +++ b/code/game/objects/items/weapons/cameras.dm @@ -103,7 +103,8 @@ var/n_name = input(usr, "What would you like to label the photo?", "Photo Labelling", src.name) as text n_name = copytext(n_name, 1, 32) - if ((loc == usr && usr.stat == 0)) + //loc.loc check is for making possible renaming photos in clipboards + if (( (src.loc == usr || (src.loc.loc && src.loc.loc == usr)) && usr.stat == 0)) name = "photo[(n_name ? text("- '[n_name]'") : null)]" add_fingerprint(usr) return @@ -203,7 +204,10 @@ y_c-- x_c = x_c - 3 - var/obj/item/weapon/photo/P = new/obj/item/weapon/photo( get_turf(src) ) + var/obj/item/weapon/photo/P = new/obj/item/weapon/photo() + P.loc = usr.loc + if(!user.get_inactive_hand()) + usr.put_in_inactive_hand(P) var/icon/small_img = icon(temp) var/icon/ic = icon('items.dmi',"photo") small_img.Scale(8,8) diff --git a/code/game/objects/items/weapons/papers_bins.dm b/code/game/objects/items/weapons/papers_bins.dm index 5d02bc0ae3..6979ab75d0 100644 --- a/code/game/objects/items/weapons/papers_bins.dm +++ b/code/game/objects/items/weapons/papers_bins.dm @@ -101,7 +101,8 @@ NOTEBOOK return var/n_name = input(usr, "What would you like to label the paper?", "Paper Labelling", null) as text n_name = copytext(n_name, 1, 32) - if ((src.loc == usr && usr.stat == 0)) + //loc.loc check is for making possible renaming papers in clipboards + if ((src.loc == usr || (src.loc.loc && src.loc.loc == usr) && usr.stat == 0)) src.name = n_name && n_name != "" ? n_name : "Untitled paper" src.add_fingerprint(usr) return @@ -633,8 +634,24 @@ NOTEBOOK var/dat = "Clipboard
" if (src.pen) dat += text("Remove Pen

", src) - for(var/obj/item/weapon/paper/P in src) - dat += text("[] Write Remove
", src, P, P.name, src, P, src, P) + dat += "" + for(var/obj/item/weapon/W in src) + dat += "" + if (istype(W, /obj/item/weapon/paper)) + var/obj/item/weapon/paper/P = W + dat += text("", \ + src, P, P.name, src, P, src, P, src, P) + if (istype(W, /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = W + dat += text("" \ + , src, P, P.name, src, P, src, P) + dat += "" + dat += "
[] \ + Write \ + Rename \ + Remove
[] \ + Rename \ + Remove
" user << browse(dat, "window=clipboard") onclose(user, "clipboard") return @@ -679,6 +696,16 @@ NOTEBOOK usr.update_clothing() P.add_fingerprint(usr) src.add_fingerprint(usr) + if (href_list["rname"]) + var/obj/item/I = locate(href_list["rname"]) + if ((I && I.loc == src)) + if (istype(I, /obj/item/weapon/paper)) + var/obj/item/weapon/paper/P = I + P.rename() + if (istype(I, /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = I + P.rename() + src.add_fingerprint(usr) if (href_list["write"]) var/obj/item/P = locate(href_list["write"]) if ((P && P.loc == src)) @@ -692,13 +719,25 @@ NOTEBOOK P.attackby(src.pen, usr) src.add_fingerprint(usr) if (href_list["read"]) - var/obj/item/weapon/paper/P = locate(href_list["read"]) - if ((P && P.loc == src)) - if (!( istype(usr, /mob/living/carbon/human) )) - usr << browse(text("[][]", P.name, stars(P.info)), text("window=[]", P.name)) - onclose(usr, "[P.name]") - else - usr << browse(text("[][]", P.name, P.info), text("window=[]", P.name)) + var/obj/item/I = locate(href_list["read"]) + if ((I && I.loc == src)) + if (istype(I, /obj/item/weapon/paper)) + var/obj/item/weapon/paper/P = I + if (!( istype(usr, /mob/living/carbon/human) )) + usr << browse(text("[][]", P.name, stars(P.info)), text("window=[]", P.name)) + onclose(usr, "[P.name]") + else + var/t = dd_replacetext(P.info, "\n", "
") + usr << browse(text("[][]", P.name, t), text("window=[]", P.name)) + onclose(usr, "[P.name]") + if (istype(I, /obj/item/weapon/photo)) + var/obj/item/weapon/photo/P = I + usr << browse_rsc(P.img, "tmp_photo.png") + usr << browse("Photo" \ + + "" \ + + "
Writings on the back:
[P.scribble]" : ]"\ + + "", "window=book;size=200x[P.scribble ? 400 : 200]") onclose(usr, "[P.name]") if (ismob(src.loc)) var/mob/M = src.loc @@ -733,7 +772,7 @@ NOTEBOOK /obj/item/weapon/clipboard/attackby(obj/item/weapon/P as obj, mob/user as mob) ..() - if (istype(P, /obj/item/weapon/paper)) + if (istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/photo)) if (src.contents.len < 15) user.drop_item() P.loc = src diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 217a4b9f93..0b88d78a53 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -75,7 +75,12 @@ H.apply_effect(10, STUTTER, 0) user.lastattacked = M H.lastattacker = user - charges-- + if(isrobot(src.loc)) + var/mob/living/silicon/robot/R = src.loc + if(R && R.cell) + R.cell.use(50) + else + charges-- H.visible_message("[M] has been stunned with the [src] by [user]!") playsound(src.loc, 'Egloves.ogg', 50, 1, -1) if(charges < 1) diff --git a/code/game/objects/stacks/glass.dm b/code/game/objects/stacks/glass.dm index 76d63e9d33..d21d25886b 100644 --- a/code/game/objects/stacks/glass.dm +++ b/code/game/objects/stacks/glass.dm @@ -262,6 +262,8 @@ SHARDS playsound(src.loc, 'glass_step.ogg', 50, 1) if(ishuman(M)) var/mob/living/carbon/human/H = M + if(H.mutantrace == "lizard") //Soghun have... Scales? Yeah that works + return if(!((H.shoes) || (H.wear_suit && H.wear_suit.body_parts_covered & FEET))) var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot")) if(affecting.status & ROBOT) diff --git a/code/game/objects/storage/briefcase.dm b/code/game/objects/storage/briefcase.dm index 6413a66eec..7c81e92041 100644 --- a/code/game/objects/storage/briefcase.dm +++ b/code/game/objects/storage/briefcase.dm @@ -1,12 +1,5 @@ /obj/item/weapon/storage/briefcase/New() ..() - new /obj/item/weapon/paper(src) - new /obj/item/weapon/paper(src) - new /obj/item/weapon/paper(src) - new /obj/item/weapon/paper(src) - new /obj/item/weapon/paper(src) - new /obj/item/weapon/paper(src) - new /obj/item/weapon/pen(src) /obj/item/weapon/storage/briefcase/attack(mob/M as mob, mob/living/user as mob) //..() diff --git a/code/game/objects/uplinks.dm b/code/game/objects/uplinks.dm index b9aa1276c5..3c138a527a 100644 --- a/code/game/objects/uplinks.dm +++ b/code/game/objects/uplinks.dm @@ -145,7 +145,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid randomItems.Add("/obj/item/weapon/soap/syndie") //Syndicate Soap randomItems.Add("/obj/item/weapon/storage/toolbox/syndicate") //Syndicate Toolbox - if(!randomItems) + if(!randomItems.len) del(randomItems) return 0 else diff --git a/code/game/objects/watercloset.dm b/code/game/objects/watercloset.dm index 38b8c5ea47..1a0d1e09a3 100644 --- a/code/game/objects/watercloset.dm +++ b/code/game/objects/watercloset.dm @@ -58,7 +58,10 @@ var/obj/item/weapon/grab/G = I var/mob/GM = G.affecting if(ismob(G.affecting)) - if(G.state>1 && GM.loc == get_turf(src)) + if(G.state>1) + if(!GM.loc == get_turf(src)) + user << "[GM.name] needs to be on the toilet." + return if(open && !swirlie) user.visible_message("[user] starts to give [GM.name] a swirlie!", "You start to give [GM.name] a swirlie!") swirlie = GM @@ -101,7 +104,10 @@ var/obj/item/weapon/grab/G = I var/mob/GM = G.affecting if(ismob(G.affecting)) - if(G.state>1 && GM.loc == get_turf(src)) + if(G.state>1) + if(!GM.loc == get_turf(src)) + user << "[GM.name] needs to be on the urinal." + return user.visible_message("[user] slams [GM.name] into the [src]!", "You slam [GM.name] into the [src]!") GM.adjustBruteLoss(8) else diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 54befddcbc..08470a9a2e 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -266,7 +266,8 @@ proc/move_mining_shuttle() /*****************************Shovel********************************/ /obj/item/weapon/shovel - name = "Shovel" + name = "shovel" + desc = "A large tool for digging and moving dirt." icon = 'items.dmi' icon_state = "shovel" flags = FPRINT | TABLEPASS| CONDUCT @@ -278,11 +279,14 @@ proc/move_mining_shuttle() m_amt = 50 origin_tech = "materials=1;engineering=1" - - - - - +/obj/item/weapon/shovel/spade + name = "spade" + desc = "A small tool for digging and moving dirt." + icon_state = "spade" + item_state = "spade" + force = 5.0 + throwforce = 7.0 + w_class = 2.0 /**********************Mining car (Crate like thing, not the rail car)**************************/ diff --git a/code/modules/mob/new_player/preferences.dm b/code/modules/mob/new_player/preferences.dm index 78ec74c0d3..2478ce7243 100644 --- a/code/modules/mob/new_player/preferences.dm +++ b/code/modules/mob/new_player/preferences.dm @@ -132,6 +132,8 @@ datum/preferences // OOC Metadata: var/metadata = "" + var/sound_adminhelp = 0 + New() hair_style = new/datum/sprite_accessory/hair/short @@ -265,9 +267,13 @@ datum/preferences if(config.allow_Metadata) dat += "OOC Notes: Edit
" - if((user.client) && (user.client.holder) && (user.client.holder.rank) && (user.client.holder.level >= 5)) - dat += "
OOC
" - dat += "Change colour
__
" + if((user.client) && (user.client.holder) && (user.client.holder.rank)) + dat += "
Adminhelp sound: " + dat += "[(sound_adminhelp)?"On":"Off"] toggle" + + if(user.client.holder.level >= 5) + dat += "
OOC
" + dat += "Change color
__
" dat += "
Occupation Choices
" dat += "\tSet Preferences
" @@ -906,6 +912,9 @@ datum/preferences if(ooccolor) src.ooccolor = ooccolor + if(link_tags["toggleadminhelpsound"]) + src.sound_adminhelp = !src.sound_adminhelp + if(link_tags["f_style"]) if(species != "Human") //Non-humans don't have hair stuff yet. return @@ -1268,6 +1277,7 @@ datum/preferences proc/setup_client(var/client/C) if(C) + C.sound_adminhelp = src.sound_adminhelp C.midis = src.midis C.ooccolor = src.ooccolor C.be_alien = be_special & BE_ALIEN diff --git a/code/modules/mob/new_player/savefile.dm b/code/modules/mob/new_player/savefile.dm index 981e84658d..3dde385937 100644 --- a/code/modules/mob/new_player/savefile.dm +++ b/code/modules/mob/new_player/savefile.dm @@ -161,6 +161,8 @@ datum/preferences/proc/savefile_save(mob/user, slot) F["OOC_Notes"] << src.metadata + F["sound_adminhelp"] << src.sound_adminhelp + return 1 // loads the savefile corresponding to the mob's ckey @@ -269,6 +271,8 @@ datum/preferences/proc/savefile_load(mob/user, slot) F["OOC_Notes"] >> src.metadata + F["sound_adminhelp"] >> src.sound_adminhelp + if(isnull(metadata)) metadata = "" diff --git a/html/changelog.html b/html/changelog.html index ce5b79ed33..ae1f9dfdef 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -57,14 +57,23 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit though. Thanks. --> -
+

29 June 2012

Erthilo updated:

  • Raises job limits for Botanists, Atmospheric Technicnians, Roboticists, Chemists, and Geneticists.
- +
+

28 June 2012

+

Chinsky updated:

+
    +
  • 'Rename' function for clipboards
  • +
  • Can add photos to clipboards
  • +
  • Fixed troubles with formatting when reading from clipboard (linebreaks not being properly placed)
  • +
  • Fixed photocopiers not copying photos properly
  • +
+

27 June 2012

Erthilo updated:

@@ -82,6 +91,14 @@ should be listed in the changelog upon commit though. Thanks. -->
  • Fixes medical items. Gauze/kits/ointment can now be applied correctly again.
  • +
    +

    26 June 2012

    +

    TG updated:

    +
      +
    • Fixed silicon mobs not being able to access newscaster.
    • +
    • Fixed harmbatons on everything other than harm, now it is the opposite way round.
    • +
    +

    25 June 2012

    diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi index fa909660e2..127bf82a85 100644 Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index 190315199d..7a541c4a34 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ diff --git a/icons/obj/contraband.dmi b/icons/obj/contraband.dmi index b33b7070a0..c31268ca41 100644 Binary files a/icons/obj/contraband.dmi and b/icons/obj/contraband.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 69c55d472b..759442da11 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 6292adc221..176d76c5b4 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi deleted file mode 100644 index 2dbaedd639..0000000000 Binary files a/icons/obj/vehicles.dmi and /dev/null differ diff --git a/icons/vehicles/vehicles.dmi b/icons/vehicles/vehicles.dmi new file mode 100644 index 0000000000..5650366b18 Binary files /dev/null and b/icons/vehicles/vehicles.dmi differ