diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index 1410116f6bb..c073d7acf3f 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -26,6 +26,7 @@ var/list/mannequins_ // Times that players are allowed to respawn ("ckey" = world.time) GLOBAL_LIST_EMPTY(respawn_timers) +<<<<<<< HEAD // Closets have magic appearances GLOBAL_LIST_EMPTY(closet_appearances) @@ -33,6 +34,8 @@ GLOBAL_LIST_EMPTY(closet_appearances) var/global/list/poster_designs = list() var/global/list/NT_poster_designs = list() +======= +>>>>>>> beaf109... Refactors posters to use decls (#8128) // Holomaps var/global/list/holomap_markers = list() var/global/list/mapping_units = list() @@ -213,18 +216,6 @@ GLOBAL_LIST_EMPTY(mannequins) if(S.spawn_flags & SPECIES_IS_WHITELISTED) GLOB.whitelisted_species += S.name - //Posters - paths = typesof(/datum/poster) - /datum/poster - paths -= typesof(/datum/poster/nanotrasen) - for(var/T in paths) - var/datum/poster/P = new T - poster_designs += P - - paths = typesof(/datum/poster/nanotrasen) - for(var/T in paths) - var/datum/poster/P = new T - NT_poster_designs += P - //Ores paths = typesof(/ore)-/ore for(var/oretype in paths) @@ -236,10 +227,7 @@ GLOBAL_LIST_EMPTY(mannequins) GLOB.alloy_data += new alloytype() //Closet appearances - paths = typesof(/decl/closet_appearance) - for(var/T in paths) - var/decl/closet_appearance/app = new T() - GLOB.closet_appearances[T] = app + GLOB.closet_appearances = decls_repository.get_decls_of_type(/decl/closet_appearance) paths = typesof(/datum/sprite_accessory/ears) - /datum/sprite_accessory/ears for(var/path in paths) diff --git a/code/datums/repositories/decls.dm b/code/datums/repositories/decls.dm index c46c8b41bf3..e6040a90dd0 100644 --- a/code/datums/repositories/decls.dm +++ b/code/datums/repositories/decls.dm @@ -14,7 +14,7 @@ // III. Thou shalt not write a decl that relies on arguments supplied to New(). // IV. Thou shalt not call Initialize() on a /decl. -var/repository/decls/decls_repository = new() +var/repository/decls/decls_repository // Initialiozed in /datum/global_init/New() /repository/decls var/list/fetched_decls diff --git a/code/datums/supplypacks/recreation.dm b/code/datums/supplypacks/recreation.dm index eae37c5869b..a3b6ad30d59 100644 --- a/code/datums/supplypacks/recreation.dm +++ b/code/datums/supplypacks/recreation.dm @@ -51,7 +51,7 @@ /obj/item/weapon/reagent_containers/glass/paint/purple, /obj/item/weapon/reagent_containers/glass/paint/black, /obj/item/weapon/reagent_containers/glass/paint/white, - /obj/item/weapon/contraband/poster/custom, + /obj/item/poster/custom, /obj/item/weapon/wrapping_paper = 3 ) cost = 10 diff --git a/code/datums/supplypacks/security.dm b/code/datums/supplypacks/security.dm index 33f30174fb1..b926fa8b8de 100644 --- a/code/datums/supplypacks/security.dm +++ b/code/datums/supplypacks/security.dm @@ -668,9 +668,9 @@ /datum/supply_pack/security/posters name = "Gear - Morale Posters" contains = list( - /obj/item/weapon/contraband/poster/nanotrasen = 6 + /obj/item/poster/nanotrasen = 6 ) - cost = 20 + cost = 10 containertype = /obj/structure/closet/crate/secure/nanotrasen containername = "Morale Posters" access = access_maint_tunnels diff --git a/code/game/objects/effects/decals/posters/bs12.dm b/code/game/objects/effects/decals/posters/bs12.dm index 5c1c32d98b0..6933031c5f8 100644 --- a/code/game/objects/effects/decals/posters/bs12.dm +++ b/code/game/objects/effects/decals/posters/bs12.dm @@ -1,346 +1,347 @@ // baystation12 posters -/datum/poster/bay_1 - icon_state="bsposter1" - name = "PSA: Unlucky Space Explorer" - desc = "This grim PSA depicts a skeletal form within a space suit. Thousands die every year as a result of failing to follow EVA safety guidelines." - listing_name = "PSA - EVA Accidents" +// Base type needs to be defined or template types make random selection wonky +/decl/poster + var/icon_state="bsposter1" + var/name = "PSA: Unlucky Space Explorer" + var/desc = "This grim PSA depicts a skeletal form within a space suit. Thousands die every year as a result of failing to follow EVA safety guidelines." + var/listing_name = "PSA - EVA Accidents" -/datum/poster/bay_2 +/decl/poster/bay_2 icon_state="bsposter2" name = "PSA: Disobedient Drones" desc = "This PSA depicts the cold, unmoving stare of a particularly advanced AI. Contact information for the Emergent Intelligence Oversight is included." listing_name = "PSA - Emergent Drones" -/datum/poster/bay_3 +/decl/poster/bay_3 icon_state="bsposter3" name = "PSA: Corporate Espionage" desc = "This PSA warns of the dangers of trusting your co-workers with sensitive department information. They may be spying for a rival corporation, or worse!" listing_name = "PSA - Corporate Espionage" -/datum/poster/bay_4 +/decl/poster/bay_4 icon_state="bsposter4" name = "Keep Calm" desc = "An incredibly vague message, presented in a classic form. Someone has scribbled an O over the A on the poster." listing_name = "PSA - Keep Calm" -/datum/poster/bay_5 +/decl/poster/bay_5 icon_state="bsposter5" name = "PSA: Saboteurs!" desc = "A company PSA reminding employees to keep an eye out for suspicious activity, and report it immediately." listing_name = "PSA - Saboteur" -/datum/poster/bay_6 +/decl/poster/bay_6 icon_state="bsposter6" name = "Eradicator XV" desc = "An ad for the fifteenth installment in the Eradicator movie franchise, about a violent robotic uprising hellbent on wiping out humanity." listing_name = "Ad - Eradicator XV" -/datum/poster/bay_7 +/decl/poster/bay_7 icon_state="bsposter7" name = "Wasteland: Battle for Earth" desc = "This action movie ad shows a couple of ragged post-apocalyptic gunmen, one male and one female, on top of a mound of rubble." listing_name = "Ad - Battle for Earth" -/datum/poster/bay_8 +/decl/poster/bay_8 icon_state="bsposter8" name = "Pinup Girl Cindy" desc = "This is a vintage 2450s pin-up of NanoTrasen's PR girl, Cindy, in a particularly feminine pose." listing_name = "Pin-up - Cindi" -/datum/poster/bay_9 +/decl/poster/bay_9 icon_state="bsposter9" name = "Pinup Girl Amy" desc = "This pin-up is of Amy, one of NanoTrasen's most popular PR models." listing_name = "Pin-up - Amy" -/datum/poster/bay_10 +/decl/poster/bay_10 icon_state="bsposter10" name = "Don't Panic" desc = "This ad for Vey-Medical anxiety pills depicts some sort of star in a grimace. The \"Don't Panic\" is written in big, friendly letters." listing_name = "Ad - Don't panic." -/datum/poster/bay_11 +/decl/poster/bay_11 icon_state="bsposter11" name = "Underwater Living" desc = "This immigration poster encourages you to move to Earth;s premiere underwater city, Atlantis. One bedroom apartments start at half your salary." listing_name = "Ad - Atlantis" -/datum/poster/bay_12 +/decl/poster/bay_12 icon_state="bsposter12" name = "Beware Rogue AI" desc = "This ad for the Emergent Intelligence Oversight Recruitment Division depicts a menacing AI and asks if you're a bad enough dude to take it on." listing_name = "Recruitment - EIO" -/datum/poster/bay_13 +/decl/poster/bay_13 icon_state="bsposter13" name = "Become A User of the Arcane Arts" desc = "This ad for popular Virtual Reality online game 'Wiz Online' depicts a wizard, casting a spell. You can't really make out if it's an actual photograph or a computer-generated image. Incredible graphics!" listing_name = "Ad - Wiz Online" -/datum/poster/bay_14 +/decl/poster/bay_14 icon_state="bsposter14" name = "Levitating Skull" desc = "This tacky ad is a portrait of the flying enchanted skull, Bones. Its adventures along with its fabled companion are showing now on a broadcast service near you!" listing_name = "Ad - Bones Adventures" -/datum/poster/bay_15 +/decl/poster/bay_15 icon_state="bsposter15" name = "Augmented Legend" desc = "This ad for Ward-Takahashi cybernetic implants shows obviously augmented individual, gazing towards the sky. Is your body augmented?" listing_name = "Ad - Ward-Takahashi Augments" -/datum/poster/bay_16 +/decl/poster/bay_16 icon_state="bsposter16" name = "Snow Crash" desc = "This particular one depicts nothing remarkable other than a rather mesmerising pattern of monitor static. You think it's an ad for something, but you're not sure what." listing_name = "Ad - Snow Crash" -/datum/poster/bay_17 +/decl/poster/bay_17 icon_state="bsposter17" name = "Pinup Girl Val" desc = "Luscious Val McNeil, the vertically challenged Legal Extraordinaire, winner of Miss Space two years running and favoured pinup girl of Lawyers Weekly." listing_name = "Pin-up - Val" -/datum/poster/bay_18 +/decl/poster/bay_18 icon_state="bsposter18" name = "Derpman, Enforcer of the State" desc = "An ad for Centauri Provisions donuts. Officer Derpman is here to protect and serve... your donuts! A generously proportioned man, he teaches you the value of hiding your snacks." listing_name = "Ad - Officer Derpman Donuts" -/datum/poster/bay_19 +/decl/poster/bay_19 icon_state="bsposter19" name = "Respect an Unathi" desc = "This poster depicts a sharply dressed Unathi receiving a prestigious award. It appears to espouse greater co-operation and harmony between humanity and the Unathi." listing_name = "PSA - Unathi" -/datum/poster/bay_20 +/decl/poster/bay_20 icon_state="bsposter20" name = "Skrell Tourism" desc = "This tourism poster depicts a mysteriously inscrutable, alien scene. Numerous Skrell can be seen conversing amidst great, crystalline towers rising above crashing waves." listing_name = "Ad - Skrellian Tourism" -/datum/poster/bay_21 +/decl/poster/bay_21 icon_state="bsposter21" name = "Join the Fuzz!" desc = "It's a nice recruitment poster of a white haired Chinese woman that says; \"Big Guns, Hot Women, Good Times. Security. We get it done.\"" listing_name = "Recruitment - NanoTrasen Security - Pinup" -/datum/poster/bay_22 +/decl/poster/bay_22 icon_state="bsposter22" name = "Looking for a career with excitement?" desc = "A recruitment poster starring a dark haired woman with glasses and a purple shirt that has \"Got Brains? Got Talent? Not afraid of electric flying monsters that want to suck the soul out of you? Then Xenobiology could use someone like you!\" written on the bottom." listing_name = "Recruitment - Xenobiology" -/datum/poster/bay_23 +/decl/poster/bay_23 icon_state="bsposter23" name = "Safety first: because electricity doesn't wait!" desc = "A safety poster starring a clueless looking redhead with frazzled hair. \"Every year, hundreds of NT employees expose themselves to electric shock. Play it safe. Avoid suspicious doors after electrical storms, and always wear protection when doing electric maintenance.\"" listing_name = "Safety - Electric Shock" -/datum/poster/bay_24 +/decl/poster/bay_24 icon_state="bsposter24" name = "Responsible medbay habits, No #259" desc = "A poster with a nervous looking geneticist on it states; \"Friends Tell Friends They're Clones. It can cause severe and irreparable emotional trauma if a person is not properly informed of their recent demise. Always follow your contractual obligation and inform them of their recent rejuvenation.\"" listing_name = "Medical - Clone Disclosure" -/datum/poster/bay_25 +/decl/poster/bay_25 icon_state="bsposter25" name = "Irresponsible medbay habits, No #2" desc = "This is a safety poster starring a perverted looking naked doctor. \"Sexual harassment is never okay. REPORT any acts of sexual deviance or harassment that disrupt a healthy working environment.\"" listing_name = "Medical - Sexual Harassment" -/datum/poster/bay_26 +/decl/poster/bay_26 icon_state="bsposter26" name = "The Men We Knew" desc = "This movie poster depicts a group of soldiers fighting a large mech, it seems to be some kind of movie set during the Hegemony War." listing_name = "Ad - Men We Knew" -/datum/poster/bay_27 +/decl/poster/bay_27 icon_state="bsposter27" name = "Plastic Sheep Can't Scream" desc = "This is a movie poster for an upcoming horror movie, featuring a frightening looking robotic creature." listing_name = "Ad - Plastic Sheep Can't Scream" -/datum/poster/bay_28 +/decl/poster/bay_28 icon_state="bsposter28" name = "The Stars Know Love" desc = "This is a movie poster. A bleeding woman is shown drawing a heart in her blood on the window of space ship, it seems to be a romantic drama." listing_name = "Ad - The Stars Know Love" -/datum/poster/bay_29 +/decl/poster/bay_29 icon_state="bsposter29" name = "Winter Is Coming" desc = "On the poster is a frighteningly large wolf, he warns: \"Only YOU can keep yourself from freezing this winter!\". Below is the logo of NanoThreads clothing." listing_name = "Ad - Cold-weather Gear" -/datum/poster/bay_30 +/decl/poster/bay_30 icon_state="bsposter30" name = "Ambrosia Vulgaris" desc = "It's an ad for getting absolutely shitfaced on psychadelics. Just looking at this poster makes you feel a little bit dizzy. Use responsibly." listing_name = "Ad - Ambrosia Vulgaris" -/datum/poster/bay_31 +/decl/poster/bay_31 icon_state="bsposter31" name = "Donut Panic" desc = "This is an advertisement for Donut Panic, the bi-monthly periodical for donut lovers galaxy-wide." listing_name = "Ad - Donuts Panic" -/datum/poster/bay_32 +/decl/poster/bay_32 icon_state="bsposter32" name = "Eat!" desc = "A NanoPastures poster depicting a synthmeat hamburger. The poster COMMANDS you to consume the hamburger." listing_name = "Ad - Hamburger" -/datum/poster/bay_33 +/decl/poster/bay_33 icon_state="bsposter33" name = "Tools, tools, tools!" desc = "Xion Manufacturing reminds you: Never trust an off-brand tool. " listing_name = "Ad - Xion Tools" -/datum/poster/bay_34 +/decl/poster/bay_34 icon_state="bsposter34" name = "Power Up!" desc = "NanoTrasen are leaders in Phoron-based supermatter power! High reward, higher risk!" listing_name = "Ad - Phoron Power" -/datum/poster/bay_35 +/decl/poster/bay_35 icon_state="bsposter35" name = "Kendrick" desc = "This is a poster depicting the pet and mascot of the science department, and national corporate ambassador for slime-based science solutions.." listing_name = "Ad - Slime Science" -/datum/poster/bay_36 +/decl/poster/bay_36 icon_state="bsposter36" name = "Fancy Borg" desc = "A poster depicting a cyborg dressed to the nines. An ad for cybernetics enthusiast magazine, Borg Fancy." listing_name = "Ad - Borg Fancy A" -/datum/poster/bay_37 +/decl/poster/bay_37 icon_state="bsposter37" name = "Fancier Borg" desc = "A poster depicting a cyborg dressed to the nines. An ad for cybernetics enthusiast magazine, Borg Fancy. This is even fancier than the other poster." listing_name = "Ad - Borg Fancy B" -/datum/poster/bay_38 +/decl/poster/bay_38 icon_state="bsposter38" name = "Toaster Love" desc = "This is a poster of a toaster containing two slices of bread. The word LOVE is written in big pink letters underneath. An ad for a cybernetics 'enthusiast' magazine. " listing_name = "Ad - Toaster Love" -/datum/poster/bay_39 +/decl/poster/bay_39 icon_state="bsposter39" name = "Responsible medbay habits, No #91" desc = "A safety poster with a chemist holding a vial. \"Always wear safety gear while handling dangerous chemicals, even if it concerns only small amounts.\"" listing_name = "Safety - Chemicals" -/datum/poster/bay_40 +/decl/poster/bay_40 icon_state="bsposter40" name = "Agreeable work environment" desc = "This poster depicts a young woman in a stylish dress. \"Try to aim for a pleasant atmosphere in the workspace. A friendly word can do more than forms in triplicate.\"" listing_name = "PSA - Agreeable Work Environment" -/datum/poster/bay_41 +/decl/poster/bay_41 icon_state="bsposter41" name = "Professional work environment" desc = "A safety poster featuring a green haired woman in a shimmering blue dress. \"As an Internal Affairs Agent, your job is to create a fair and agreeable work environment for the crewmembers, as discreetly and professionally as possible.\"" listing_name = "Recruitment - Internal Affairs" -/datum/poster/bay_42 +/decl/poster/bay_42 icon_state="bsposter42" name = "Engineering pinup" desc = "This is pin-up poster. A half-naked girl with white hair, toned muscles and stunning blue eyes looks back at you from the poster. Her welding helmet, tattoos and grey jumpsuit hanging around her waist gives a bit of a rugged feel." listing_name = "Pin-up - Engineer" -/datum/poster/bay_43 +/decl/poster/bay_43 icon_state="bsposter43" name = "Responsible medbay habits, No #3" desc = "A safety poster with a purple-haired surgeon. She looks a bit cross. \"Let the surgeons do their work. NEVER replace or remove a surgery tool from where the surgeon put it.\"" listing_name = "Safety - Surgical Tools" -/datum/poster/bay_44 +/decl/poster/bay_44 icon_state="bsposter44" name = "Time for a drink?" desc = "This poster for a brand for \"Tajaran-style\" rum produced by Gilthari Exports depicts a friendly-looking Tajaran holding a tray of drinks." listing_name = "Ad - Rarkajar Rum" -/datum/poster/bay_45 +/decl/poster/bay_45 icon_state="bsposter45" name = "Responsible engineering habits, No #1" desc = "A safety poster featuring a blue haired engineer. \"When repairing a machine or construction, always aim for long-term solutions.\"" listing_name = "Safety - No Shortcut Fixes" -/datum/poster/bay_46 +/decl/poster/bay_46 icon_state="bsposter46" name = "Inspirational lawyer" desc = "An inspirational poster depicting a Skrellian lawyer. He seems to be shouting something, while pointing fiercely to the right. It's an ad for a NanoTrasen subsidiary law firm." listing_name = "Ad - NanoTrasen Law" -/datum/poster/bay_47 +/decl/poster/bay_47 icon_state="bsposter47" name = "Security pinup" desc = "This is a pin-up poster. A dark skinned white haired girl poses in the sunlight wearing a tank top with her stomach exposed. The text on the poster states \"M, Succubus of Security.\" and a lipstick mark stains the top right corner, as if kissed by the model herself." listing_name = "Pin-up - Security" -/datum/poster/bay_48 +/decl/poster/bay_48 icon_state="bsposter48" name = "Remote Drones 4 U" desc = "This is an ad for a fairly basic model of drone produced by Grayson Manufactories Ltd. for use in hazardous environments." listing_name = "Ad - Grayson Drones" -/datum/poster/bay_49 +/decl/poster/bay_49 icon_state="bsposter49" name = "Engineering recruitment" desc = "This is a poster showing an engineer relaxing by a computer, the text states \"Living the life! Join Engineering today!\"" listing_name = "Recruitment - Engineering" -/datum/poster/bay_50 +/decl/poster/bay_50 icon_state="bsposter50" name = "Pinup Girl Cindy Kate" desc = "This particular one is of Cindy Kate, a seductive virtual performer well known among less savoury exonet circles." listing_name = "Pin-up - Cindi-Kate" -/datum/poster/bay_51 +/decl/poster/bay_51 icon_state="bsposter51" name = "space tourism poster" desc = "This is a poster produced by the Visit Space Society. This one is targeted at planet-dwellers, suggesting they generally visit space." listing_name = "Tourism - Space" -/datum/poster/bay_52 +/decl/poster/bay_52 icon_state="bsposter52" name = "fire safety poster" desc = "This is a poster reminding you of what you should do if you are on fire, or if you are at a dance party." listing_name = "Safety - Stop Drop and Roll" -/datum/poster/bay_53 +/decl/poster/bay_53 icon_state="bsposter53" name = "fire extinguisher poster" desc = "This is a poster reminding you of what you should use to put out a fire." listing_name = "Safety - Fire Extinguishers" -/datum/poster/bay_54 +/decl/poster/bay_54 icon_state="bsposter54" name = "firefighter poster" desc = "This is a poster of a particularly stern looking firefighter. The caption reads, \"Only you can prevent space fires.\"" listing_name = "Safety - Prevent Fires" -/datum/poster/bay_55 +/decl/poster/bay_55 icon_state="bsposter55" name = "Binma tourism poster" desc = "This is a poster produced by the Visit Space Society. This one suggests you visit the exotic garden world of Binma, and try not to get eaten." listing_name = "Tourism - Binma" -/datum/poster/bay_56 +/decl/poster/bay_56 icon_state="bsposter56" name = "Mars appreciation poster" desc = "This is a poster produced by the Visit Space Society. This one suggests you visit historic Mars. Come for the domes, stay for the monuments to hubris!" -/datum/poster/bay_57 +/decl/poster/bay_57 icon_state="bsposter57" name = "space carp warning poster" desc = "This poster tells of the dangers of space carp infestations." listing_name = "Safety - Carp" -/datum/poster/bay_58 +/decl/poster/bay_58 icon_state="bsposter58" name = "space carp information poster" desc = "This poster showcases an old spacer saying on the dangers of migrant space carp." diff --git a/code/game/objects/effects/decals/posters/polarisposters.dm b/code/game/objects/effects/decals/posters/polarisposters.dm index 8835d582423..4dc444ade5b 100644 --- a/code/game/objects/effects/decals/posters/polarisposters.dm +++ b/code/game/objects/effects/decals/posters/polarisposters.dm @@ -1,52 +1,52 @@ -/datum/poster/pol_1 +/decl/poster/pol_1 icon_state="polposter1" name = "Safety!" desc = "A poster advising you to learn how to put on your internals at a moment's notice." listing_name = "Safety - Internals" -/datum/poster/pol_2 +/decl/poster/pol_2 icon_state="polposter2" name = "Safety!" desc = "A blue and white colored poster. This one advises you to wear your safety goggles when handling chemicals." listing_name = "Safety - Goggles" -/datum/poster/pol_3 +/decl/poster/pol_3 icon_state="polposter3" name = "Safety!" desc = "A safety poster instructing you to comply with the authorities, especially in an emergency." listing_name = "Safety - Follow Instruction" -/datum/poster/pol_4 +/decl/poster/pol_4 icon_state="polposter4" name = "Clean Hands Save Lives" desc = "A safety poster reminding you to wash your hands." listing_name = "Safety - Hand Washing" -/datum/poster/pol_5 +/decl/poster/pol_5 icon_state="polposter5" name = "Help!" desc = "This poster depicts a man helping another man get up." listing_name = "Safety - Help Others" -/datum/poster/pol_6 +/decl/poster/pol_6 icon_state="polposter6" name = "Walk!" desc = "This poster depicts a man walking, presumably to encourage you not to run in the halls." listing_name = "Safety - No Running" -/datum/poster/pol_7 +/decl/poster/pol_7 icon_state="polposter7" name = "Place your signs!" desc = "A safety poster reminding custodial staff to place wet floor signs where needed. This reminder's rarely heeded." listing_name = "Safety - Wet Floor Signs" -/datum/poster/pol_8 +/decl/poster/pol_8 icon_state="polposter8" name = "Safety!" desc = "An advertisement / safety poster for EVA training and certification. Training is available at your local Central Command." listing_name = "Safety - EVA Training" -/datum/poster/pol_9 +/decl/poster/pol_9 icon_state="poster10" //Recycling this icon name = "Airlock Maintenance Reference" desc = "This poster appears to be reference material for maintenance personnel, instructing to always wear insulated gloves, that wirecutters and \ @@ -54,49 +54,49 @@ wire codes." listing_name = "Safety - Airlock Maintenance" -/datum/poster/pol_10 +/decl/poster/pol_10 icon_state="polposter9" name = "orchid" desc = "This poster appears strangely familiar, depicting the flower of a tree native to the planet Earth." listing_name = "General - Orchid" -/datum/poster/pol_11 +/decl/poster/pol_11 icon_state="polposter10" name = "firefighter pinup" desc = "A buff firefighter with his shirt off. Maybe he's trying to raise awareness about fire safety, but you're a little distracted." listing_name = "Pin-up - Firefighter" -/datum/poster/pol_12 +/decl/poster/pol_12 icon_state="polposter11" name = "CHUCK" desc = "With the budget Cyber Solutions 'Chuck' model work drone, your days of menial labour are numbered! \"With Cyber Solutions, there's always someone beside you, helping you. You know their face. You know my face.\"" listing_name = "Ad - Chuck" -/datum/poster/pol_13 +/decl/poster/pol_13 icon_state="polposter12" name = "New You" desc = "An ad for Kaleidoscope Cosmetics. \"The common factor in all your failed relationships is you. Fix it with affordable gene therapy!\"" listing_name = "Ad - Kaleidoscope" -/datum/poster/pol_14 +/decl/poster/pol_14 icon_state="polposter13" name = "Take a Taxi" desc = "An ad for the Major Bill's Transportation drone-operated taxi service operating in most major cities throughout Solar space." listing_name = "Ad - Taxi" -/datum/poster/pol_15 +/decl/poster/pol_15 icon_state="polposter14" name = "Adopt A Teshpet" desc = "An ad for definitively racist virtual pet game, Teshpets." listing_name = "Ad - Teshpets" -/datum/poster/pol_16 +/decl/poster/pol_16 icon_state="polposter15" name = "Train and Fight" desc = "This poster of sweaty, near-naked wrestlers is the most masculine thing you've ever seen. You can barely tell where one man ends and the other begins. Always seek manliness!" listing_name = "Pinup - Wrestling" -/datum/poster/nt_3 +/decl/poster/nt_3 icon_state = "ntposter03" name = "Mechatronic Safety" desc = "This poster displays three cutting-edge gygaxes standing in line in front of a man in plain clothes.\ @@ -104,25 +104,25 @@ The image seems important." listing_name = "Safety - Mech Operation" -/datum/poster/nt_4 +/decl/poster/nt_4 icon_state = "ntposter04" name = "Beware Aetotheans" desc = "This poster displays a distinctly hostile-looking red Promethean in a black coat. The fine-print around the edges warns the reader about the dangers posed by Almachi Prometheans." listing_name = "Safety - Aetothean Danger" -/datum/poster/nt_5 +/decl/poster/nt_5 icon_state = "ntposter05" name = "Promethean" desc = "This poster displays a friendly-looking green Promethean in a labcoat. The fine-print around the edges talks about the benefits Prometheans give in laboratories." listing_name = "Safety - Prometheans" -/datum/poster/nt_6 +/decl/poster/nt_6 icon_state = "ntposter06" name = "NanoTrasen" desc = "This poster showcases an NT emblem. There is writing in the ring around the inner points, probably some sort of slogan no one bothers to memorize." listing_name = "Ad - NanoTrasen" -/datum/poster/nt_7 +/decl/poster/nt_7 icon_state = "ntposter07" name = "SolGov" desc = "This poster showcases an SCG emblem. The outer ring reads,\ @@ -130,62 +130,62 @@ Solar Confederate Government." listing_name = "Political - SolGov" -/datum/poster/nt_8 +/decl/poster/nt_8 icon_state = "ntposter08" name = "wildlife hazard" desc = "This SifGov poster warns against attempting to kill a fully grown giant spider or other hostile life-form alone." listing_name = "Safety - Spiders" // A new subset of poster datum for ONLY 'Internal' NanoTrasen posters, given to Security. -/datum/poster/nanotrasen +/decl/poster/nanotrasen icon_state = "polposter1" name = "Safety!" desc = "A poster advising you to learn how to put on your internals at a moment's notice." listing_name = "Safety - Internals" -/datum/poster/nanotrasen/pol_2 +/decl/poster/nanotrasen/pol_2 icon_state="polposter2" name = "Safety!" desc = "A blue and white colored poster. This one advises you to wear your safety goggles when handling chemicals." listing_name = "Safety - Goggles" -/datum/poster/nanotrasen/pol_3 +/decl/poster/nanotrasen/pol_3 icon_state="polposter3" name = "Safety!" desc = "A safety poster instructing you to comply with the authorities, especially in an emergency." listing_name = "Safety - Follow Instruction" -/datum/poster/nanotrasen/pol_4 +/decl/poster/nanotrasen/pol_4 icon_state="polposter4" name = "Clean Hands Save Lives" desc = "A safety poster reminding you to wash your hands." listing_name = "Safety - Hand Washing" -/datum/poster/nanotrasen/pol_5 +/decl/poster/nanotrasen/pol_5 icon_state="polposter5" name = "Help!" desc = "This poster depicts a man helping another man get up." listing_name = "Safety - Help Others" -/datum/poster/nanotrasen/pol_6 +/decl/poster/nanotrasen/pol_6 icon_state="polposter6" name = "Walk!" desc = "This poster depicts a man walking, presumably to encourage you not to run in the halls." listing_name = "Safety - No Running" -/datum/poster/nanotrasen/pol_7 +/decl/poster/nanotrasen/pol_7 icon_state="polposter7" name = "Place your signs!" desc = "A safety poster reminding custodial staff to place wet floor signs where needed. This reminder's rarely heeded." listing_name = "Safety - Wet Floor Signs" -/datum/poster/nanotrasen/pol_8 +/decl/poster/nanotrasen/pol_8 icon_state="polposter8" name = "Safety!" desc = "An advertisement / safety poster for EVA training and certification. Training is available at your local Central Command." listing_name = "Safety - EVA Training" -/datum/poster/nanotrasen/pol_9 +/decl/poster/nanotrasen/pol_9 icon_state="poster10" name = "Airlock Maintenance Reference" desc = "This poster appears to be reference material for maintenance personnel, instructing to always wear insulated gloves, that wirecutters and \ @@ -193,97 +193,97 @@ wire codes." listing_name = "Safety - Airlock Maintenance" -/datum/poster/nanotrasen/pol_10 +/decl/poster/nanotrasen/pol_10 icon_state="polposter9" name = "orchid" desc = "This poster suggests a feeling of peace. It depicts the flower of a tree native to the planet Earth." listing_name = "General - Orchid" -/datum/poster/nanotrasen/bay_9 +/decl/poster/nanotrasen/bay_9 icon_state="bsposter9" name = "Pinup Girl Amy" desc = "This particular one is of Amy, the nymphomaniac urban legend of deep space. How this photograph came to be is not known." listing_name = "Pin-up - Amy" -/datum/poster/nanotrasen/bay_21 +/decl/poster/nanotrasen/bay_21 icon_state="bsposter21" name = "Join the Fuzz!" desc = "It's a nice recruitment poster of a white haired Chinese woman that says; \"Big Guns, Hot Women, Good Times. Security. We get it done.\"" listing_name = "Recruitment - NanoTrasen Security - Pinup" -/datum/poster/nanotrasen/bay_22 +/decl/poster/nanotrasen/bay_22 icon_state="bsposter22" name = "Looking for a career with excitement?" desc = "A recruitment poster starring a dark haired woman with glasses and a purple shirt that has \"Got Brains? Got Talent? Not afraid of electric flying monsters that want to suck the soul out of you? Then Xenobiology could use someone like you!\" written on the bottom." listing_name = "Recruitment - Xenobiology" -/datum/poster/nanotrasen/bay_23 +/decl/poster/nanotrasen/bay_23 icon_state="bsposter23" name = "Safety first: because electricity doesn't wait!" desc = "A safety poster starring a clueless looking redhead with frazzled hair. \"Every year, hundreds of NT employees expose themselves to electric shock. Play it safe. Avoid suspicious doors after electrical storms, and always wear protection when doing electric maintenance.\"" listing_name = "Safety - Electric Shock" -/datum/poster/nanotrasen/bay_24 +/decl/poster/nanotrasen/bay_24 icon_state="bsposter24" name = "Responsible medbay habits, No #259" desc = "A poster with a nervous looking geneticist on it states; \"Friends Tell Friends They're Clones. It can cause severe and irreparable emotional trauma if a person is not properly informed of their recent demise. Always follow your contractual obligation and inform them of their recent rejuvenation.\"" listing_name = "Medical - Clone Disclosure" -/datum/poster/nanotrasen/bay_25 +/decl/poster/nanotrasen/bay_25 icon_state="bsposter25" name = "Irresponsible medbay habits, No #2" desc = "This is a safety poster starring a perverted looking naked doctor. \"Sexual harassment is never okay. REPORT any acts of sexual deviance or harassment that disrupt a healthy working environment.\"" listing_name = "Medical - Sexual Harassment" -/datum/poster/nanotrasen/bay_49 +/decl/poster/nanotrasen/bay_49 icon_state="bsposter49" name = "Engineering recruitment" desc = "This is a poster showing an engineer relaxing by a computer, the text states \"Living the life! Join Engineering today!\"" listing_name = "Recruitment - Engineering" -/datum/poster/nanotrasen/bay_52 +/decl/poster/nanotrasen/bay_52 icon_state="bsposter52" name = "fire safety poster" desc = "This is a poster reminding you of what you should do if you are on fire, or if you are at a dance party." listing_name = "Safety - Stop Drop And Roll" -/datum/poster/nanotrasen/bay_53 +/decl/poster/nanotrasen/bay_53 icon_state="bsposter53" name = "fire extinguisher poster" desc = "This is a poster reminding you of what you should use to put out a fire." listing_name = "Safety - Extinguishers" -/datum/poster/nanotrasen/bay_54 +/decl/poster/nanotrasen/bay_54 icon_state="bsposter54" name = "firefighter poster" desc = "This is a poster of a particularly stern looking firefighter. The caption reads, \"Only you can prevent space fires.\"" listing_name = "Safety - Prevent Fires" -/datum/poster/nanotrasen/bay_57 +/decl/poster/nanotrasen/bay_57 icon_state="bsposter57" name = "space carp warning poster" desc = "This poster tells of the dangers of space carp infestations." listing_name = "Safety - Carp" -/datum/poster/nanotrasen/bay_58 +/decl/poster/nanotrasen/bay_58 icon_state="bsposter58" name = "space carp information poster" desc = "This poster showcases an old spacer saying on the dangers of migrant space carp." listing_name = "Safety - Carp Information" -/datum/poster/nanotrasen/nt_1 +/decl/poster/nanotrasen/nt_1 icon_state = "ntposter01" name = "Security recruitment" desc = "This poster showcases an NT security guard in an excited pose, with a small blurb about the importance of Security." listing_name = "Recruitment - NanoTrasen Security - Importance" -/datum/poster/nanotrasen/nt_2 +/decl/poster/nanotrasen/nt_2 icon_state = "ntposter02" name = "Security recruitment" desc = "This poster showcases an NT security guard in an excited pose, with a small blurb about Security Employee benefits." listing_name = "Recruitment - NanoTrasen Security - Benefits" -/datum/poster/nanotrasen/nt_3 +/decl/poster/nanotrasen/nt_3 icon_state = "ntposter03" name = "Mechatronic Safety" desc = "This poster displays three cutting-edge gygaxes standing in line in front of a man in plain clothes.\ @@ -291,9 +291,13 @@ The image seems important." listing_name = "Safety - Mech Operation" +<<<<<<< HEAD //VOREStation Removal Start /* /datum/poster/nanotrasen/nt_4 +======= +/decl/poster/nanotrasen/nt_4 +>>>>>>> beaf109... Refactors posters to use decls (#8128) icon_state = "ntposter04" name = "Beware Aetotheans" desc = "This poster displays a distinctly hostile-looking red Promethean in a black coat. The fine-print around the edges warns the reader about the dangers posed by Almachi Prometheans." @@ -301,19 +305,19 @@ */ //VOREstation Removal End -/datum/poster/nanotrasen/nt_5 +/decl/poster/nanotrasen/nt_5 icon_state = "ntposter05" name = "Promethean" desc = "This poster displays a friendly-looking green Promethean in a labcoat. The fine-print around the edges talks about the benefits Prometheans give in laboratories." listing_name = "Safety - Prometheans" -/datum/poster/nanotrasen/nt_6 +/decl/poster/nanotrasen/nt_6 icon_state = "ntposter06" name = "NanoTrasen" desc = "This poster showcases an NT emblem. There is writing in the ring around the inner points, probably some sort of slogan no one bothers to memorize." listing_name = "Ad - NanoTrasen" -/datum/poster/nanotrasen/nt_7 +/decl/poster/nanotrasen/nt_7 icon_state = "ntposter07" name = "SolGov" desc = "This poster showcases an SCG emblem. The outer ring reads,\ @@ -321,13 +325,13 @@ Solar Confederate Government." listing_name = "Political - SolGov" -/datum/poster/nanotrasen/nt_8 +/decl/poster/nanotrasen/nt_8 icon_state = "ntposter08" name = "wildlife hazard" desc = "This poster warns against attempting to kill a fully grown giant spider or other hostile life-form alone." listing_name = "Safety - Spiders" -/datum/poster/nanotrasen/nt_9 +/decl/poster/nanotrasen/nt_9 icon_state = "ntposter09" name = "Regulations and You" desc = "This SifGov poster showcases an NT security guard reading from her PDA. The blurb advocates for the reader to keep corporate regulations in mind at all times, as an emergency can occur at any time." diff --git a/code/game/objects/effects/decals/posters/posters.dm b/code/game/objects/effects/decals/posters/posters.dm new file mode 100644 index 00000000000..8046cf439ab --- /dev/null +++ b/code/game/objects/effects/decals/posters/posters.dm @@ -0,0 +1,206 @@ +/proc/get_poster_decl(var/path = null, var/exact = TRUE) + if(ispath(path)) + if(exact) + return decls_repository.get_decl(path) + else + var/list/L = decls_repository.get_decls_of_type(path) + return L[pick(L)] + return null + +/obj/item/poster + name = "rolled-up poster" + desc = "The poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface." + icon = 'icons/obj/contraband.dmi' + icon_state = "rolled_poster" + drop_sound = 'sound/items/drop/wrapper.ogg' + pickup_sound = 'sound/items/pickup/wrapper.ogg' + force = 0 + var/decl/poster/poster_decl = null + var/poster_type = /obj/structure/sign/poster + +/obj/item/poster/Initialize(var/mapload, var/decl/poster/poster_decl = null) + if(ispath(src.poster_decl)) + src.poster_decl = get_poster_decl(src.poster_decl, TRUE) + else if(istype(poster_decl)) + src.poster_decl = poster_decl + else if(ispath(poster_decl)) + src.poster_decl = get_poster_decl(poster_decl, TRUE) + else + src.poster_decl = get_poster_decl(/decl/poster, FALSE) + + name += " - No. [src.poster_decl.name]" + return ..() + +//Places the poster on a wall +/obj/item/poster/afterattack(var/atom/A, var/mob/user, var/adjacent, var/clickparams) + if(!adjacent) + return FALSE + + //must place on a wall and user must not be inside a closet/mecha/whatever + var/turf/W = A + if(!iswall(W) || !isturf(user.loc)) + to_chat(user, "You can't place this here!") + return FALSE + + var/placement_dir = get_dir(user, W) + if(!(placement_dir in cardinal)) + to_chat(user, "You must stand directly in front of the wall you wish to place that on.") + return FALSE + + //just check if there is a poster on or adjacent to the wall + var/stuff_on_wall = 0 + if(locate(/obj/structure/sign/poster) in W) + stuff_on_wall = 1 + + //crude, but will cover most cases. We could do stuff like check pixel_x/y but it's not really worth it. + for (var/dir in cardinal) + var/turf/T = get_step(W, dir) + if (locate(/obj/structure/sign/poster) in T) + stuff_on_wall = 1 + break + + if(stuff_on_wall) + to_chat(user, "There is already a poster there!") + return FALSE + + to_chat(user, "You start placing the poster on the wall...") //Looks like it's uncluttered enough. Place the poster. + + var/obj/structure/sign/poster/P = new poster_type(user.loc, get_dir(user, W), src) + + if(do_after(user, 17)) //Let's check if everything is still there + to_chat(user, "You place the poster!") + qdel(src) + return TRUE + + P.roll_and_drop(P.loc) + qdel(src) + return FALSE + +//NT subtype +/obj/item/poster/nanotrasen + icon_state = "rolled_poster_nt" + poster_type = /obj/structure/sign/poster/nanotrasen + +/obj/item/poster/nanotrasen/Initialize(turf/loc, var/decl/poster/P = null) + if(!ispath(src.poster_decl) && !ispath(P) && !istype(P)) + src.poster_decl = get_poster_decl(/decl/poster/nanotrasen, FALSE) + return ..() + +//Selectable subtype +/obj/item/poster/custom + name = "rolled-up poly-poster" + desc = "The poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. This one is made from some kind of e-paper, and could display almost anything!" + poster_type = /obj/structure/sign/poster/custom + +/obj/item/poster/custom/verb/select_poster() + set name = "Set Poster type" + set category = "Object" + set desc = "Click to choose a poster to display." + + var/mob/M = usr + var/list/options = list() + for(var/decl/poster/posteroption in decls_repository.get_decls_of_type(/decl/poster)) + options[posteroption.listing_name] = posteroption + + var/choice = input(M,"Choose a poster!","Customize Poster") in options + if(src && choice && !M.stat && in_range(M,src)) + poster_decl = options[choice] + name = "rolled-up poly-poster - No.[poster_decl.icon_state]" + to_chat(M, "The poster is now: [choice].") + + + +//############################## THE ACTUAL DECALS ########################### + +/obj/structure/sign/poster + name = "poster" + desc = "A large piece of space-resistant printed paper. " + icon = 'icons/obj/contraband.dmi' + anchored = 1 + var/decl/poster/poster_decl = null + var/target_poster_decl_path = /decl/poster + var/roll_type = /obj/item/poster + var/ruined = FALSE + +// This stuff needs to go in new() for the the flick() to look right while it's being placed +/obj/structure/sign/poster/New(var/newloc, var/placement_dir = null, var/obj/item/poster/P = null) + if(placement_dir) + dir = placement_dir + + switch (dir) + if (NORTH) + pixel_x = 0 + pixel_y = 32 + if (SOUTH) + pixel_x = 0 + pixel_y = -32 + if (EAST) + pixel_x = 32 + pixel_y = 0 + if (WEST) + pixel_x = -32 + pixel_y = 0 + + flick("poster_being_set", src) + return ..() + + +/obj/structure/sign/poster/Initialize(var/newloc, var/placement_dir = null, var/obj/item/poster/P = null) + if(ispath(src.poster_decl)) + src.poster_decl = get_poster_decl(src.poster_decl, TRUE) + else if(istype(P)) + src.poster_decl = P.poster_decl + roll_type = P.type + else if(ispath(P)) + src.poster_decl = get_poster_decl(P, TRUE) + else + src.poster_decl = get_poster_decl(target_poster_decl_path, FALSE) + + name = "[initial(name)] - [poster_decl.name]" + desc = "[initial(desc)] [poster_decl.desc]" + icon_state = poster_decl.icon_state + + return ..() + +/obj/structure/sign/poster/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(W.is_wirecutter()) + playsound(src, W.usesound, 100, 1) + if(ruined) + to_chat(user, "You remove the remnants of the poster.") + qdel(src) + else + to_chat(user, "You carefully remove the poster from the wall.") + roll_and_drop(get_turf(user)) + return + +/obj/structure/sign/poster/attack_hand(mob/user as mob) + + if(ruined) + return + + if(alert("Do I want to rip the poster from the wall?","You think...","Yes","No") == "Yes") + + if(ruined || !user.Adjacent(src)) + return + + visible_message("[user] rips [src] in a single, decisive motion!" ) + playsound(src, 'sound/items/poster_ripped.ogg', 100, 1) + ruined = TRUE + icon_state = "poster_ripped" + name = "ripped poster" + desc = "You can't make out anything from the poster's original print. It's ruined." + add_fingerprint(user) + +/obj/structure/sign/poster/proc/roll_and_drop(turf/newloc) + var/obj/item/poster/P = new roll_type(newloc, poster_decl) + P.loc = newloc + qdel(src) + +// NT poster subtype. +/obj/structure/sign/poster/nanotrasen + roll_type = /obj/item/poster/nanotrasen + target_poster_decl_path = /decl/poster/nanotrasen + +// Non-Random Posters +/obj/structure/sign/poster/custom + roll_type = /obj/item/poster/custom \ No newline at end of file diff --git a/code/game/objects/effects/decals/posters/tgposters.dm b/code/game/objects/effects/decals/posters/tgposters.dm index 50d615efa08..c1800fe40f3 100644 --- a/code/game/objects/effects/decals/posters/tgposters.dm +++ b/code/game/objects/effects/decals/posters/tgposters.dm @@ -1,50 +1,50 @@ // /tg/ posters. -/datum/poster/tg_1 +/decl/poster/tg_1 name = "Free Tonto" desc = "A framed shred of a much larger flag, colors bled together and faded from age." icon_state="poster1" -/datum/poster/tg_2 +/decl/poster/tg_2 name = "Atmosia Declaration of Independence" desc = "A relic of a failed rebellion" icon_state="poster2" -/datum/poster/tg_3 +/decl/poster/tg_3 name = "Fun Police" desc = "A poster condemning the station's security forces." icon_state="poster3" -/datum/poster/tg_4 +/decl/poster/tg_4 name = "Lusty Xeno" desc = "A heretical poster depicting the titular star of an equally heretical book." icon_state="poster4" -/datum/poster/tg_5 +/decl/poster/tg_5 name = "Mercenary Recruitment Poster" desc = "See the galaxy! Shatter corrupt megacorporations! Join today!" icon_state="poster5" -/datum/poster/tg_6 +/decl/poster/tg_6 name = "Clown" desc = "Honk." icon_state="poster6" -/datum/poster/tg_7 +/decl/poster/tg_7 name = "Smoke" desc = "A poster depicting a carton of cigarettes." icon_state="poster7" -/datum/poster/tg_8 +/decl/poster/tg_8 name = "Grey Tide" desc = "A rebellious poster symbolizing assistant solidarity." icon_state="poster8" -/datum/poster/tg_9 +/decl/poster/tg_9 name = "Missing Gloves" desc = "This poster is about the uproar that followed NanoTrasen's financial cuts towards insulated-glove purchases." icon_state="poster9" -/datum/poster/tg_10 +/decl/poster/tg_10 name = "Hacking Guide" desc = "This poster details the internal workings of the common NanoTrasen airlock." icon_state="poster10" \ No newline at end of file diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm index e4d96a0c79a..285fba5bfda 100644 --- a/code/game/objects/items/weapons/gift_wrappaper.dm +++ b/code/game/objects/items/weapons/gift_wrappaper.dm @@ -77,7 +77,7 @@ /obj/item/weapon/lipstick/random, /obj/item/weapon/grenade/smokebomb, /obj/item/weapon/corncob, - /obj/item/weapon/contraband/poster/custom, + /obj/item/poster/custom, /obj/item/weapon/book/manual/barman_recipes, /obj/item/weapon/book/manual/chef_recipes, /obj/item/weapon/bikehorn, diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm index 1827af8df83..3c872f86fa4 100644 --- a/code/game/objects/random/misc.dm +++ b/code/game/objects/random/misc.dm @@ -259,11 +259,14 @@ icon_state = "purplecomb" spawn_nothing_percentage = 50 /obj/random/contraband/item_to_spawn() +<<<<<<< HEAD return pick(prob(6);/obj/item/weapon/storage/pill_bottle/paracetamol, //VOREStation Edit, prob(8);/obj/item/weapon/haircomb, +======= + return pick(prob(6);/obj/item/weapon/storage/pill_bottle/tramadol, +>>>>>>> beaf109... Refactors posters to use decls (#8128) prob(4);/obj/item/weapon/storage/pill_bottle/happy, prob(4);/obj/item/weapon/storage/pill_bottle/zoom, - prob(10);/obj/item/weapon/contraband/poster/custom, prob(4);/obj/item/weapon/material/butterfly, prob(6);/obj/item/weapon/material/butterflyblade, prob(6);/obj/item/weapon/material/butterflyhandle, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 6fa559d2af1..d1ed2f8e9ae 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -199,7 +199,7 @@ if(prob(50)) starts_with += /obj/item/weapon/storage/backpack/dufflebag/sec if(prob(30)) - starts_with += /obj/item/weapon/contraband/poster/nanotrasen + starts_with += /obj/item/poster/nanotrasen return ..() /obj/structure/closet/secure_closet/security/cargo/Initialize() @@ -273,11 +273,11 @@ GLOBAL_LIST_BOILERPLATE(all_brig_closets, /obj/structure/closet/secure_closet/br anchored = 1 starts_with = list( - /obj/item/weapon/contraband/poster/nanotrasen, - /obj/item/weapon/contraband/poster/nanotrasen, - /obj/item/weapon/contraband/poster/nanotrasen, - /obj/item/weapon/contraband/poster/nanotrasen, - /obj/item/weapon/contraband/poster/nanotrasen) + /obj/item/poster/nanotrasen, + /obj/item/poster/nanotrasen, + /obj/item/poster/nanotrasen, + /obj/item/poster/nanotrasen, + /obj/item/poster/nanotrasen) /obj/structure/closet/secure_closet/courtroom name = "courtroom locker" diff --git a/code/game/objects/structures/loot_piles.dm b/code/game/objects/structures/loot_piles.dm index 0461c8ee251..4443fb6da34 100644 --- a/code/game/objects/structures/loot_piles.dm +++ b/code/game/objects/structures/loot_piles.dm @@ -253,8 +253,8 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh /obj/item/stack/rods{amount = 5}, /obj/item/stack/material/steel{amount = 5}, /obj/item/stack/material/cardboard{amount = 5}, - /obj/item/weapon/contraband/poster, - /obj/item/weapon/contraband/poster/custom, + /obj/item/poster, + /obj/item/poster/custom, /obj/item/weapon/newspaper, /obj/item/weapon/paper/crumpled, /obj/item/weapon/paper/crumpled/bloody diff --git a/code/global_init.dm b/code/global_init.dm index 7a96219a0c5..200a4dd9d98 100644 --- a/code/global_init.dm +++ b/code/global_init.dm @@ -22,7 +22,11 @@ var/global/datum/global_init/init = new () error_log = file("[log_path]-error.log") debug_log = file("[log_path]-debug.log") debug_log << "[log_end]\n[log_end]\nStarting up. [time_stamp()][log_end]\n---------------------[log_end]" +<<<<<<< HEAD */ //VOREStation Removal End +======= + decls_repository = new() +>>>>>>> beaf109... Refactors posters to use decls (#8128) load_configuration() makeDatumRefLists() diff --git a/maps/northern_star/polaris-2.dmm b/maps/northern_star/polaris-2.dmm index 1d8b2068a96..21acf97be4f 100644 --- a/maps/northern_star/polaris-2.dmm +++ b/maps/northern_star/polaris-2.dmm @@ -482,7 +482,7 @@ "jn" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom) "jo" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom) "jp" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership) -"jq" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/steel_reinforced,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom) +"jq" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/steel_reinforced,/obj/item/poster,/obj/item/poster,/obj/item/poster,/obj/item/poster,/obj/item/poster,/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom) "jr" = (/obj/machinery/door/window/northleft{name = "Cargo Hold"; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom) "js" = (/obj/structure/table/steel_reinforced,/obj/random/plushie,/obj/random/plushie,/obj/random/plushie,/obj/random/plushie,/obj/random/plushie,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom) "jt" = (/obj/machinery/door/window/northright{name = "Cargo Hold"; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/trade/centcom) @@ -999,7 +999,7 @@ "tk" = (/obj/machinery/computer/card,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) "tl" = (/obj/structure/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) "tm" = (/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/command) -"tn" = (/obj/structure/sign/poster{poster_type = "/datum/poster/bay_50"; pixel_x = -32},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start) +"tn" = (/obj/structure/sign/poster{poster_type = "/decl/poster/bay_50"; pixel_x = -32},/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start) "to" = (/obj/structure/closet,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/obj/item/weapon/reagent_containers/food/snacks/tastybread,/turf/simulated/shuttle/floor/darkred,/area/syndicate_station/start) "tp" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/space) "tq" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1331; id_tag = "merc_base"; pixel_x = -25; pixel_y = -5},/turf/unsimulated/floor{dir = 2; icon_state = "dark"},/area/syndicate_mothership) diff --git a/maps/southern_cross/southern_cross-6.dmm b/maps/southern_cross/southern_cross-6.dmm index 35d4c816569..0eabfb6624c 100644 --- a/maps/southern_cross/southern_cross-6.dmm +++ b/maps/southern_cross/southern_cross-6.dmm @@ -1304,7 +1304,7 @@ "zd" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/shuttle/floor/black,/area/shuttle/merchant/home) "ze" = (/obj/structure/table/steel_reinforced,/obj/item/clothing/under/cheongsam,/obj/item/clothing/under/hosformalmale,/obj/item/clothing/under/hosformalfem,/obj/item/clothing/under/harness,/obj/item/clothing/under/gladiator,/obj/item/clothing/under/ert,/obj/item/clothing/under/schoolgirl,/obj/item/clothing/under/redcoat,/obj/item/clothing/under/sexymime,/obj/item/clothing/under/sexyclown,/obj/item/clothing/under/soviet,/obj/item/clothing/under/space,/obj/item/clothing/under/swimsuit/stripper/mankini,/obj/item/clothing/under/suit_jacket/female,/obj/item/clothing/under/rank/psych/turtleneck,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/syndicate/tacticool,/obj/item/clothing/under/syndicate/tacticool,/obj/item/clothing/under/dress/sailordress,/obj/item/clothing/under/dress/redeveninggown,/obj/item/clothing/under/dress/dress_saloon,/obj/item/clothing/under/dress/blacktango,/obj/item/clothing/under/dress/blacktango/alt,/obj/item/clothing/under/dress/dress_orange,/obj/item/clothing/under/dress/maid/janitor,/turf/simulated/shuttle/floor/black,/area/shuttle/merchant/home) "zf" = (/obj/machinery/door/airlock/glass{name = "Dock"},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/main_hall) -"zg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/steel_reinforced,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/turf/simulated/shuttle/floor/black,/area/shuttle/merchant/home) +"zg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/steel_reinforced,/obj/item/poster,/obj/item/poster,/obj/item/poster,/obj/item/poster,/obj/item/poster,/turf/simulated/shuttle/floor/black,/area/shuttle/merchant/home) "zh" = (/obj/machinery/door/window/northleft{name = "Cargo Hold"; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/merchant/home) "zi" = (/obj/structure/table/steel_reinforced,/obj/random/plushie,/obj/random/plushie,/obj/random/plushie,/obj/random/plushie,/obj/random/plushie,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor/black,/area/shuttle/merchant/home) "zj" = (/obj/machinery/door/window/northright{name = "Cargo Hold"; req_access = list(160)},/turf/simulated/shuttle/floor/black,/area/shuttle/merchant/home) @@ -2344,7 +2344,7 @@ "Te" = (/obj/machinery/computer/pod{desc = "A control panel used to open and close Spawn Kill Prevention barriers."; id = "spawngreen"; name = "Spawn Kill Prevention"; title = "Spawn Kill Prevention"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/virtual_reality) "Tf" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'},/turf/unsimulated/floor{icon_state = "dark"},/area/virtual_reality) "Tg" = (/obj/effect/landmark/virtual_reality{name = "Thunderdome (Green Team)"},/turf/unsimulated/floor{icon_state = "dark"},/area/virtual_reality) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm b/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm index b6c8b1b0a5b..003a57a7111 100644 --- a/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm +++ b/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm @@ -92,7 +92,7 @@ "bN" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) "bO" = (/obj/structure/table/rack,/obj/item/clothing/head/soft/mbill{desc = "It's a ballcap bearing the colors of Major Bill's Shipping. This one looks at least a few decades out of date."; name = "old shipping cap"},/turf/simulated/shuttle/floor{icon_state = "floor_white"},/area/submap/cave/qShuttle) "bP" = (/obj/structure/ore_box,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) -"bQ" = (/obj/item/weapon/contraband/poster,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) +"bQ" = (/obj/item/poster,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) "bR" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/shuttle/floor{icon_state = "floor_yellow"},/area/submap/cave/qShuttle) "bS" = (/obj/structure/sign/biohazard,/turf/simulated/shuttle/wall/hard_corner,/area/submap/cave/qShuttle) "bT" = (/obj/item/tape/medical{icon_state = "tape_v_0"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) @@ -116,7 +116,7 @@ "cl" = (/obj/structure/table/rack,/obj/item/clothing/head/bio_hood,/obj/item/clothing/suit/bio_suit,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) "cm" = (/obj/item/weapon/weldingtool/largetank,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) "cn" = (/obj/structure/closet/crate/medical,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/cave/qShuttle) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -144,3 +144,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + diff --git a/maps/submaps/surface_submaps/wilderness/Drugden.dmm b/maps/submaps/surface_submaps/wilderness/Drugden.dmm index 12d8173eaf0..2c4b90752ca 100644 --- a/maps/submaps/surface_submaps/wilderness/Drugden.dmm +++ b/maps/submaps/surface_submaps/wilderness/Drugden.dmm @@ -19,7 +19,7 @@ "s" = (/obj/structure/bed/chair/comfy/beige{icon_state = "armchair_preview"; dir = 1},/turf/simulated/floor/carpet,/area/submap/Drugd) "t" = (/obj/item/weapon/reagent_containers/pill/citalopram{name = "pill"},/turf/simulated/floor/carpet,/area/submap/Drugd) "u" = (/obj/random/junk,/turf/simulated/floor,/area/submap/Drugd) -"v" = (/obj/structure/closet/cabinet,/obj/item/weapon/contraband/poster,/turf/simulated/floor/carpet,/area/submap/Drugd) +"v" = (/obj/structure/closet/cabinet,/obj/item/poster,/turf/simulated/floor/carpet,/area/submap/Drugd) "w" = (/obj/structure/bed/chair/comfy/beige,/turf/simulated/floor/carpet,/area/submap/Drugd) "x" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/obj/item/weapon/reagent_containers/syringe/drugs,/turf/simulated/floor/carpet,/area/submap/Drugd) "y" = (/obj/structure/bed/chair/comfy/beige,/obj/item/weapon/reagent_containers/pill/citalopram{name = "pill"},/turf/simulated/floor/carpet,/area/submap/Drugd) diff --git a/vorestation.dme b/vorestation.dme index 924ab2ee347..5f3a167388b 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1103,7 +1103,6 @@ #include "code\game\objects\effects\chem\foam_vr.dm" #include "code\game\objects\effects\chem\water.dm" #include "code\game\objects\effects\decals\cleanable.dm" -#include "code\game\objects\effects\decals\contraband.dm" #include "code\game\objects\effects\decals\crayon.dm" #include "code\game\objects\effects\decals\misc.dm" #include "code\game\objects\effects\decals\remains.dm" @@ -1117,6 +1116,7 @@ #include "code\game\objects\effects\decals\posters\bs12.dm" #include "code\game\objects\effects\decals\posters\polarisposters.dm" #include "code\game\objects\effects\decals\posters\polarisposters_vr.dm" +#include "code\game\objects\effects\decals\posters\posters.dm" #include "code\game\objects\effects\decals\posters\tgposters.dm" #include "code\game\objects\effects\decals\posters\voreposters_vr.dm" #include "code\game\objects\effects\map_effects\beam_point.dm"