From 792855dd3f3b6531cfa037f25e1811090169cc24 Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Sun, 3 Dec 2023 07:03:22 +0100
Subject: [PATCH] [MIRROR] [NO GBP] Cargo-ordered bar signs don't come with
 access restrictions [MDB IGNORE] (#25405)

* [NO GBP] Cargo-ordered bar signs don't come with access restrictions (#80070)

## About The Pull Request

Bar signs ordered from cargo will not have an access restriction
attached to them.

The barsign disassembly code has been slightly modified to accommodate
this.
## Why It's Good For The Game

It didn't even occur to me that bar signs had access locks on them.

Now you can establish Bargonia without begging the bartender/captain for
their ID.
## Changelog
:cl: Rhials
qol: Bar signs ordered from cargo will no longer be access-restricted.
/:cl:

* [NO GBP] Cargo-ordered bar signs don't come with access restrictions

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
---
 code/game/machinery/barsigns.dm     | 9 ++++++++-
 code/modules/cargo/packs/service.dm | 4 ++--
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/code/game/machinery/barsigns.dm b/code/game/machinery/barsigns.dm
index dc5b4655b8e..c5349618674 100644
--- a/code/game/machinery/barsigns.dm
+++ b/code/game/machinery/barsigns.dm
@@ -12,6 +12,8 @@
 	var/datum/barsign/chosen_sign
 	/// Do we attempt to rename the area we occupy when the chosen sign is changed?
 	var/change_area_name = FALSE
+	/// What kind of sign do we drop upon being disassembled?
+	var/disassemble_result = /obj/item/wallframe/barsign
 
 /datum/armor/sign_barsign
 	melee = 20
@@ -92,7 +94,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/barsign, 32)
 /obj/machinery/barsign/deconstruct(disassembled = TRUE)
 	if(!(flags_1 & NODECONSTRUCT_1))
 		if(disassembled)
-			new /obj/item/wallframe/barsign(loc)
+			new disassemble_result(drop_location())
 		else
 			new /obj/item/stack/sheet/iron(drop_location(), 2)
 			new /obj/item/stack/cable_coil(drop_location(), 2)
@@ -487,6 +489,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/barsign, 32)
 // For other locations that aren't in the main bar
 /obj/machinery/barsign/all_access
 	req_access = null
+	disassemble_result = /obj/item/wallframe/barsign/all_access
 
 MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/barsign/all_access, 32)
 
@@ -513,3 +516,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/barsign/all_access, 32)
 	if(isopenturf(get_step(on_wall, EAST))) //This takes up 2 tiles so we want to make sure we have two tiles to hang it from.
 		balloon_alert(user, "needs more support!")
 		return FALSE
+
+/obj/item/wallframe/barsign/all_access
+	desc = "Used to help draw the rabble into your bar. Some assembly required. This one doesn't have an access lock."
+	result_path = /obj/machinery/barsign/all_access
diff --git a/code/modules/cargo/packs/service.dm b/code/modules/cargo/packs/service.dm
index e658db5229e..ac59c5cb8ff 100644
--- a/code/modules/cargo/packs/service.dm
+++ b/code/modules/cargo/packs/service.dm
@@ -293,5 +293,5 @@
 	name = "Bar Sign Replacement Kit"
 	desc = "A replacement bar sign, perfect for drawing in customers to your bar, tavern, inn, nightclub, or even coffeehouse!"
 	cost = CARGO_CRATE_VALUE * 14
-	contains = list(/obj/item/wallframe/barsign)
-	crate_name = "bar sign replacement crate"
+	contains = list(/obj/item/wallframe/barsign/all_access)
+	crate_name = "bar sign crate"