From 62c6b9c50c602aeba455f628bff9359dfbea2285 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sun, 4 Sep 2022 10:35:13 +1000 Subject: [PATCH] fixes runtime with stack dna transfer --- code/game/objects/items/stacks/stack.dm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index aa3cca9b903..94901ae26a5 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -286,16 +286,16 @@ if(new_amount < 0 || new_amount % 1) stack_trace("Tried to set a bad stack amount: [new_amount]") return 0 - + // Clean up the new amount new_amount = max(round(new_amount), 0) - + // Can exceed max if you really want if(new_amount > max_amount && !no_limits) new_amount = max_amount - + amount = new_amount - + // Can set it to 0 without qdel if you really want if(amount == 0 && !no_limits) qdel(src) @@ -320,7 +320,7 @@ if (isnull(tamount)) tamount = src.get_amount() - + if(tamount < 0 || tamount % 1) stack_trace("Tried to transfer a bad stack amount: [tamount]") return 0 @@ -333,7 +333,10 @@ if (prob(transfer/orig_amount * 100)) transfer_fingerprints_to(S) if(blood_DNA) - S.blood_DNA |= blood_DNA + if(S.blood_DNA) + S.blood_DNA |= blood_DNA + else + S.blood_DNA = blood_DNA.Copy() return transfer return 0 @@ -347,7 +350,7 @@ if(tamount < 0 || tamount % 1) stack_trace("Tried to split a bad stack amount: [tamount]") return null - + var/transfer = max(min(tamount, src.amount, initial(max_amount)), 0) var/orig_amount = src.amount