-Added a "landmarks_list"; the game will now check for landmarks in the list instead of the world.

-Did some optimizing to AI freelook.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4670 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
giacomand@gmail.com
2012-09-09 22:27:06 +00:00
parent e01bf78933
commit 384b2717b0
19 changed files with 54 additions and 36 deletions
@@ -47,10 +47,12 @@ var/datum/cameranet/cameranet = new()
var/list/remove = ai.visibleCameraChunks - visibleChunks
var/list/add = visibleChunks - ai.visibleCameraChunks
for(var/datum/camerachunk/c in remove)
for(var/chunk in remove)
var/datum/camerachunk/c = chunk
c.remove(ai)
for(var/datum/camerachunk/c in add)
for(var/chunk in add)
var/datum/camerachunk/c = chunk
c.add(ai)
// Updates the chunks that the turf is located in. Use this when obstacles are destroyed or when doors open.
@@ -69,8 +69,10 @@
continue
for(var/turf/t in c.can_see())
if(t in turfs)
newVisibleTurfs += t
newVisibleTurfs += t
// Removes turf that isn't in turfs.
newVisibleTurfs &= turfs
var/list/visAdded = newVisibleTurfs - visibleTurfs
var/list/visRemoved = visibleTurfs - newVisibleTurfs
@@ -79,20 +81,24 @@
obscuredTurfs = turfs - newVisibleTurfs
for(var/turf/t in visAdded)
for(var/turf in visAdded)
var/turf/t = turf
if(t.obscured)
obscured -= t.obscured
for(var/mob/aiEye/m in seenby)
for(var/eye in seenby)
var/mob/aiEye/m = eye
if(m.ai.client)
m.ai.client.images -= t.obscured
for(var/turf/t in visRemoved)
for(var/turf in visRemoved)
var/turf/t = turf
if(t in obscuredTurfs)
if(!t.obscured)
t.obscured = image('icons/effects/cameravis.dmi', t, "black", 15)
obscured += t.obscured
for(var/mob/aiEye/m in seenby)
for(var/eye in seenby)
var/mob/aiEye/m = eye
if(!m)
seenby -= m
if(m.ai.client)
@@ -115,17 +121,21 @@
if(t.x >= x && t.y >= y && t.x < x + 16 && t.y < y + 16)
turfs += t
for(var/obj/machinery/camera/c in cameras)
for(var/camera in cameras)
var/obj/machinery/camera/c = camera
if(!c.can_use())
continue
for(var/turf/t in c.can_see())
if(t in turfs)
visibleTurfs += t
visibleTurfs += t
// Removes turf that isn't in turfs.
visibleTurfs &= turfs
obscuredTurfs = turfs - visibleTurfs
for(var/turf/t in obscuredTurfs)
for(var/turf in obscuredTurfs)
var/turf/t = turf
if(!t.obscured)
t.obscured = image('icons/effects/cameravis.dmi', t, "black", 15)
obscured += t.obscured
+1 -1
View File
@@ -22,7 +22,7 @@
player_list |= src
var/list/watch_locations = list()
for(var/obj/effect/landmark/landmark in world)
for(var/obj/effect/landmark/landmark in landmarks_list)
if(landmark.tag == "landmark*new_player")
watch_locations += landmark.loc
+3 -3
View File
@@ -84,21 +84,21 @@
O.key = key
var/obj/loc_landmark
for(var/obj/effect/landmark/start/sloc in world)
for(var/obj/effect/landmark/start/sloc in landmarks_list)
if (sloc.name != "AI")
continue
if (locate(/mob/living) in sloc.loc)
continue
loc_landmark = sloc
if (!loc_landmark)
for(var/obj/effect/landmark/tripai in world)
for(var/obj/effect/landmark/tripai in landmarks_list)
if (tripai.name == "tripai")
if(locate(/mob/living) in tripai.loc)
continue
loc_landmark = tripai
if (!loc_landmark)
O << "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone."
for(var/obj/effect/landmark/start/sloc in world)
for(var/obj/effect/landmark/start/sloc in landmarks_list)
if (sloc.name == "AI")
loc_landmark = sloc