Sanity checks, miscellaneous bugfixes, failsafes.

Disposals no longer indiscriminately let items land inside it - the items have to have been thrown by someone.

The ongoing attempt to fix the thousands of runtimes plaguing the game.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3195 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
vageyenaman@gmail.com
2012-02-26 02:17:17 +00:00
parent 70424f3b07
commit 4eaf8e1d1a
9 changed files with 29 additions and 18 deletions

View File

@@ -288,13 +288,14 @@
return output return output
proc/remove_resources(var/obj/item/mecha_parts/part) proc/remove_resources(var/obj/item/mecha_parts/part)
for(var/resource in part.construction_cost) if(istype(part, /obj/item/mecha_parts/part))
if(resource in src.resources) for(var/resource in part.construction_cost)
src.resources[resource] -= get_resource_cost_w_coeff(part,resource) if(resource in src.resources)
src.resources[resource] -= get_resource_cost_w_coeff(part,resource)
return return
proc/check_resources(var/obj/item/mecha_parts/part) proc/check_resources(var/obj/item/mecha_parts/part)
if(istype(part, /obj/item)) if(istype(part, /obj/item/mecha_parts/part))
for(var/resource in part.construction_cost) for(var/resource in part.construction_cost)
if(resource in src.resources) if(resource in src.resources)
if(src.resources[resource] < get_resource_cost_w_coeff(part,resource)) if(src.resources[resource] < get_resource_cost_w_coeff(part,resource))

View File

@@ -261,6 +261,8 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
channel = null channel = null
if (!istype(connection)) if (!istype(connection))
return return
if (!connection)
return

View File

@@ -496,6 +496,10 @@
usr << "\red You don't have the dexterity to do this!" usr << "\red You don't have the dexterity to do this!"
return return
if(!istype(src, /turf/simulated/wall/r_wall))
return // this may seem stupid and redundant but apparently floors can call this attackby() proc, it was spamming shit up. -- Doohl
if (istype(W, /obj/item/weapon/weldingtool) && W:welding) if (istype(W, /obj/item/weapon/weldingtool) && W:welding)
W:eyecheck(user) W:eyecheck(user)
var/turf/T = user.loc var/turf/T = user.loc

View File

@@ -2579,6 +2579,7 @@
if (!M.mind) if (!M.mind)
usr << "Sorry, this mob has no mind!" usr << "Sorry, this mob has no mind!"
return
M.mind.edit_memory() M.mind.edit_memory()

View File

@@ -545,15 +545,16 @@
if(D.loc == trg) break if(D.loc == trg) break
step_towards(D,trg) step_towards(D,trg)
for(var/mob/living/carbon/M in D.loc) if(D)
if(!istype(M,/mob/living/carbon)) continue for(var/mob/living/carbon/M in D.loc)
if(M == user) continue if(!istype(M,/mob/living/carbon)) continue
D.reagents.trans_to(M, 15) if(M == user) continue
M.take_organ_damage(5) D.reagents.trans_to(M, 15)
for(var/mob/O in viewers(world.view, D)) M.take_organ_damage(5)
O.show_message(text("\red [] was hit by the syringe!", M), 1) for(var/mob/O in viewers(world.view, D))
O.show_message(text("\red [] was hit by the syringe!", M), 1)
del(D) del(D)
if(D) if(D)
for(var/atom/A in D.loc) for(var/atom/A in D.loc)
if(A == user) continue if(A == user) continue

View File

@@ -1544,6 +1544,7 @@ It can still be worn/put on as normal.
if (W) if (W)
W.loc = target.loc W.loc = target.loc
W.dropped(target) W.dropped(target)
if (W)
W.layer = initial(W.layer) W.layer = initial(W.layer)
W.add_fingerprint(source) W.add_fingerprint(source)
else else

View File

@@ -90,10 +90,11 @@
var/law = src.laws.supplied[index] var/law = src.laws.supplied[index]
if (length(law) > 0) if (length(law) > 0)
if (src.lawcheck[number+1] == "Yes") if(src.lawcheck.len >= number+1)
src.say("[number]. [law]") if (src.lawcheck[number+1] == "Yes")
sleep(10) src.say("[number]. [law]")
number++ sleep(10)
number++
/mob/living/silicon/ai/verb/checklaws() //Gives you a link-driven interface for deciding what laws the statelaws() proc will share with the crew. --NeoFite /mob/living/silicon/ai/verb/checklaws() //Gives you a link-driven interface for deciding what laws the statelaws() proc will share with the crew. --NeoFite

View File

@@ -632,7 +632,7 @@
return. return.
var/t = input("Message:", text("Private message to [C.key]")) as text|null var/t = input("Message:", text("Private message to [C.key]")) as text|null
if (!t || !usr || !C) if (!t || !usr || !C || !usr.client)
return return
if (usr.client && usr.client.holder) //Admin is messaging a player if (usr.client && usr.client.holder) //Admin is messaging a player
C << "\red <font size='4'><b>-- Administrator private message --</b></font>" C << "\red <font size='4'><b>-- Administrator private message --</b></font>"

View File

@@ -386,7 +386,7 @@
del(H) del(H)
CanPass(atom/movable/mover, turf/target, height=0, air_group=0) CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if (istype(mover,/obj/item)) if (istype(mover,/obj/item) && mover.throwing)
var/obj/item/I = mover var/obj/item/I = mover
if(istype(I, /obj/item/weapon/dummy) || istype(I, /obj/item/projectile)) if(istype(I, /obj/item/weapon/dummy) || istype(I, /obj/item/projectile))
return return