- Moved passability flags from atom/var/flags to atom/var/pass_flags.

Currently there are three - PASSTABLE, PASSGLASS and PASSGRILLE. PASSTABLE - same as TABLEPASS, PASSGRILLE - can this atom pass through grilles and PASSGLASS - can this atom pass through windows, glass doors, etc. Most can_pass() procs were updated.
Added checkpass atom proc to check if this atom has certain pass_flag set.
- Added proc/sanitize_simple() and proc/strip_html_simple(). sanitize_simple does not html_encode the string and strip_html_simple does not sanitize it. Additionally, sanitize_simple and sanitize can take associative list of key-val chars as second argument, where key is char to searh for and val is replacement.
- Added datum/gas_mixture/proc/return_volume() and datum/gas_mixture/proc/return_temperature().
- Added proc/tg_text2list() and proc/tg_list2text(). tg_list2text is slower then dd_list2text, but processes associative lists differently (it adds not the keys, but associated values). tg_text2list is somewhat faster then dd_text2list.
- Added proc/listclearnulls(), proc/difflist(), proc/intersectlist() and proc/uniquemergelist(). Check the code comments for more info.
- Mechs can hold 3 equipment pieces. Gygax can hold 4.
- Tweaked global_iterator CRASH report.
- Fixed mech pilot ejection if mecha was destroyed.
- Fixed mech fabricator process() waiting for sync() to finish.
- Fixed mech fabricator Topic() waiting for process_queue() to finish.
- Some bugixes related to global map and random sectors.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1722 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
panurgomatic
2011-06-24 23:30:27 +00:00
parent af95e5a8a1
commit 15a5ecdd06
25 changed files with 224 additions and 115 deletions
+1 -2
View File
@@ -75,8 +75,7 @@
/obj/grille/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(air_group || (height==0)) return 1
if ((istype(mover, /obj/effects) || istype(mover, /obj/item/weapon/dummy) || istype(mover, /obj/beam) || istype(mover, /obj/meteor/small)))
if(istype(mover) && mover.checkpass(PASSGRILLE))
return 1
else
if (istype(mover, /obj/item/projectile))
@@ -36,6 +36,7 @@ var/const/PROJECTILE_DART = 8
name = "laser"
damage_type = PROJECTILE_LASER
icon_state = "laser"
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
pulse
name = "pulse"
+2 -3
View File
@@ -94,7 +94,7 @@ TABLE AND RACK OBJECT INTERATIONS
/obj/table/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(air_group || (height==0)) return 1
if ((mover.flags & 2 || istype(mover, /obj/meteor)) )
if(istype(mover) && mover.checkpass(PASSTABLE))
return 1
else
return 0
@@ -293,8 +293,7 @@ TABLE AND RACK OBJECT INTERATIONS
/obj/rack/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(air_group || (height==0)) return 1
if (mover.flags & 2)
if(istype(mover) && mover.checkpass(PASSTABLE))
return 1
else
return 0
+3 -4
View File
@@ -43,20 +43,19 @@
del(src)
/obj/window/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(istype(mover, /obj/beam) || istype(mover, /obj/item/projectile/beam))
if(istype(mover) && mover.checkpass(PASSGLASS))
return 1
if (src.dir == SOUTHWEST || src.dir == SOUTHEAST || src.dir == NORTHWEST || src.dir == NORTHEAST)
return 0 //full tile window, you can't move into it!
if(get_dir(loc, target) == dir)
return !density
else
return 1
/obj/window/CheckExit(atom/movable/O as mob|obj, target as turf)
if(istype(O, /obj/beam) || istype(O, /obj/item/projectile/beam))
if(istype(O) && O.checkpass(PASSGLASS))
return 1
if (get_dir(O.loc, target) == src.dir)
if (get_dir(O.loc, target) == dir)
return 0
return 1