Fixes records unintentionally referencing each other.

Because of the limitations of BYOND's bitwise operators (which affect both the old and new implementations of num2hex()), you cannot use numbers larger than 2^16 with that proc.
Manual port of https://github.com/PolarisSS13/Polaris/pull/430.
This commit is contained in:
PsiOmegaDelta
2015-12-05 09:25:56 +01:00
parent 828e07d3fa
commit da080df765
3 changed files with 6 additions and 4 deletions

View File

@@ -48,7 +48,7 @@
else else
assignment = "Unassigned" assignment = "Unassigned"
var/id = add_zero(num2hex(rand(1, 1.6777215E7)), 6) //this was the best they could come up with? A large random number? *sigh* var/id = generate_record_id()
var/icon/front = new(get_id_photo(H), dir = SOUTH) var/icon/front = new(get_id_photo(H), dir = SOUTH)
var/icon/side = new(get_id_photo(H), dir = WEST) var/icon/side = new(get_id_photo(H), dir = WEST)
//General Record //General Record
@@ -136,8 +136,10 @@
locked += L locked += L
return return
/proc/generate_record_id()
return add_zero(num2hex(rand(1, 65535)), 4) //no point generating higher numbers because of the limitations of num2hex
proc/get_id_photo(var/mob/living/carbon/human/H) /proc/get_id_photo(var/mob/living/carbon/human/H)
var/icon/preview_icon = null var/icon/preview_icon = null
var/g = "m" var/g = "m"

View File

@@ -5,7 +5,7 @@
var/icon/side = new(get_id_photo(dummy), dir = WEST) var/icon/side = new(get_id_photo(dummy), dir = WEST)
var/datum/data/record/G = new /datum/data/record() var/datum/data/record/G = new /datum/data/record()
G.fields["name"] = "New Record" G.fields["name"] = "New Record"
G.fields["id"] = text("[]", add_zero(num2hex(rand(1, 1.6777215E7)), 6)) G.fields["id"] = generate_record_id()
G.fields["rank"] = "Unassigned" G.fields["rank"] = "Unassigned"
G.fields["real_rank"] = "Unassigned" G.fields["real_rank"] = "Unassigned"
G.fields["sex"] = "Male" G.fields["sex"] = "Male"

View File

@@ -88,7 +88,7 @@ obj/machinery/scanner/attack_hand(mob/living/carbon/human/user)
G.fields["rank"] = "Unassigned" G.fields["rank"] = "Unassigned"
G.fields["real_rank"] = G.fields["rank"] G.fields["real_rank"] = G.fields["rank"]
G.fields["name"] = mname G.fields["name"] = mname
G.fields["id"] = text("[]", add_zero(num2hex(rand(1, 1.6777215E7)), 6)) G.fields["id"] = generate_record_id()
M.fields["name"] = G.fields["name"] M.fields["name"] = G.fields["name"]
M.fields["id"] = G.fields["id"] M.fields["id"] = G.fields["id"]
S.fields["name"] = G.fields["name"] S.fields["name"] = G.fields["name"]