diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm
index 7d7a1d8ef04..7927cea1f00 100644
--- a/code/game/machinery/camera/tracking.dm
+++ b/code/game/machinery/camera/tracking.dm
@@ -1,25 +1,56 @@
-/mob/living/silicon/ai/proc/ai_camera_list()
+/mob/living/silicon/ai/proc/get_camera_list()
+
+ if(src.stat == 2)
+ return
+
+ var/list/L = list()
+ for (var/obj/machinery/camera/C in cameranet.cameras)
+ L.Add(C)
+
+ camera_sort(L)
+
+ var/list/T = list()
+ T["Cancel"] = "Cancel"
+ for (var/obj/machinery/camera/C in L)
+ if (C.network == src.network)
+ T[text("[][]", C.c_tag, (C.can_use() ? null : " (Deactivated)"))] = C
+
+ track = new()
+ track.cameras = T
+ return T
+
+
+/mob/living/silicon/ai/proc/ai_camera_list(var/camera in get_camera_list())
set category = "AI Commands"
set name = "Show Camera List"
- if(usr.stat == 2)
- usr << "You can't track with camera because you are dead!"
+ if(src.stat == 2)
+ src << "You can't list the cameras because you are dead!"
return
- attack_ai(src)
+ if (!camera || camera == "Cancel")
+ return 0
-/mob/living/silicon/ai/proc/ai_camera_track()
- set category = "AI Commands"
- set name = "Track With Camera"
- if(usr.stat == 2)
- usr << "You can't track with camera because you are dead!"
- return
+ var/obj/machinery/camera/C = track.cameras[camera]
+ track = null
+ src.eyeobj.setLoc(C)
+ return
+
+// Used to allow the AI is write in mob names/camera name from the CMD line.
+/datum/trackable
var/list/names = list()
var/list/namecounts = list()
var/list/humans = list()
var/list/others = list()
+ var/list/cameras = list()
+/mob/living/silicon/ai/proc/trackable_mobs()
+
+ if(usr.stat == 2)
+ return list()
+
+ var/datum/trackable/TB = new()
for(var/mob/living/M in mob_list)
// Easy checks first.
// Don't detect mobs on Centcom. Since the wizard den is on Centcomm, we only need this.
@@ -55,25 +86,34 @@
continue
var/name = M.name
- if (name in names)
- namecounts[name]++
- name = text("[] ([])", name, namecounts[name])
+ if (name in TB.names)
+ TB.namecounts[name]++
+ name = text("[] ([])", name, TB.namecounts[name])
else
- names.Add(name)
- namecounts[name] = 1
+ TB.names.Add(name)
+ TB.namecounts[name] = 1
if(human)
- humans[name] = M
+ TB.humans[name] = M
else
- others[name] = M
+ TB.others[name] = M
- var/list/targets = sortList(humans) + sortList(others)
- var/target_name = input(usr, "Which creature should you track?") as null|anything in targets
+ var/list/targets = sortList(TB.humans) + sortList(TB.others)
+ src.track = TB
+ return targets
- if (!target_name)
- usr:cameraFollow = null
+/mob/living/silicon/ai/proc/ai_camera_track(var/target_name in trackable_mobs())
+ set category = "AI Commands"
+ set name = "Track With Camera"
+ set desc = "Select who you would like to track."
+
+ if(src.stat == 2)
+ src << "You can't track with camera because you are dead!"
return
+ if(!target_name)
+ src.cameraFollow = null
- var/mob/target = (isnull(humans[target_name]) ? others[target_name] : humans[target_name])
+ var/mob/target = (isnull(track.humans[target_name]) ? track.others[target_name] : track.humans[target_name])
+ src.track = null
ai_actual_track(target)
/mob/living/silicon/ai/proc/ai_actual_track(mob/living/target as mob)
@@ -121,7 +161,7 @@
return
sleep(10)
-/proc/near_camera(var/mob/M)
+/proc/near_camera(var/mob/living/M)
if (!isturf(M.loc))
return 0
if(isrobot(M))
@@ -141,33 +181,7 @@
/mob/living/silicon/ai/attack_ai(var/mob/user as mob)
- if (user != src)
- return
-
- if (stat == 2)
- return
-
- var/list/L = list()
- for (var/obj/machinery/camera/C in cameranet.cameras)
- L.Add(C)
-
- camera_sort(L)
-
- var/list/D = list()
- D["Cancel"] = "Cancel"
- for (var/obj/machinery/camera/C in L)
- if (C.network == src.network)
- D[text("[][]", C.c_tag, (C.can_use() ? null : " (Deactivated)"))] = C
-
- var/t = input(user, "Which camera should you change to?") as null|anything in D
-
- if (!t || t == "Cancel")
- return 0
-
- var/obj/machinery/camera/C = D[t]
- src.eyeobj.setLoc(C)
-
- return
+ ai_camera_list()
/proc/camera_sort(list/L)
var/obj/machinery/camera/a
diff --git a/code/modules/mob/living/carbon/brain/say.dm b/code/modules/mob/living/carbon/brain/say.dm
index 9a885d9a97a..ed723557089 100644
--- a/code/modules/mob/living/carbon/brain/say.dm
+++ b/code/modules/mob/living/carbon/brain/say.dm
@@ -10,6 +10,8 @@
return
else
message = Gibberish(message, (emp_damage*6))//scrambles the message, gets worse when emp_damage is higher
- ..()
- else
- ..()
\ No newline at end of file
+ if(istype(container, /obj/item/device/mmi/radio_enabled))
+ var/obj/item/device/mmi/radio_enabled/R = container
+ if(R.radio)
+ spawn(0) R.radio.hear_talk(src, message)
+ ..()
\ No newline at end of file
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 854ef72fbdf..e7c477a235d 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -280,7 +280,7 @@ var/list/department_radio_keys = list(
listening|=M
var/turf/T = get_turf(src)
- var/list/W = view(message_range, T)
+ var/list/W = hear(message_range, T)
for (var/obj/O in ((W | contents)-used_radios))
W |= O
@@ -311,12 +311,13 @@ var/list/department_radio_keys = list(
if (O)
O.hear_talk(src, message)
*/
- if(isbrain(src))//For brains to properly talk if they are in an MMI..or in a brain. Could be extended to other mobs I guess.
+
+/* if(isbrain(src))//For brains to properly talk if they are in an MMI..or in a brain. Could be extended to other mobs I guess.
for(var/obj/O in loc)//Kinda ugly but whatever.
if(O)
spawn(0)
O.hear_talk(src, message)
-
+*/
var/list/heard_a = list() // understood us
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 32a7185da5e..5b8a4ba173d 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -41,6 +41,7 @@
var/mob/living/silicon/ai/parent = null
var/camera_light_on = 0 //Defines if the AI toggled the light on the camera it's looking through.
+ var/datum/trackable/track = null
/mob/living/silicon/ai/New(loc, var/datum/ai_laws/L, var/obj/item/device/mmi/B, var/safety = 0)
var/list/possibleNames = ai_names
diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm
index ec4d50bfa96..5dc3c834e36 100644
--- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm
+++ b/code/modules/mob/living/silicon/ai/freelook/chunk.dm
@@ -124,8 +124,6 @@
/datum/camerachunk/New(loc, x, y, z)
- set background = 1
-
// 0xf = 15
x &= ~0xf
y &= ~0xf
diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm
index 32b4038923a..476d13f4193 100644
--- a/code/modules/mob/living/silicon/ai/freelook/eye.dm
+++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm
@@ -94,7 +94,7 @@
// This will move the AIEye. It will also cause lights near the eye to light up, if toggled.
// This is handled in the proc below this one.
-/client/AIMove(n, direct, var/mob/living/silicon/ai/user)
+/client/proc/AIMove(n, direct, var/mob/living/silicon/ai/user)
var/initial = initial(user.sprint)
var/max_sprint = 50
diff --git a/code/modules/mob/living/silicon/ai/move.dm b/code/modules/mob/living/silicon/ai/move.dm
deleted file mode 100644
index b1a6e623148..00000000000
--- a/code/modules/mob/living/silicon/ai/move.dm
+++ /dev/null
@@ -1,71 +0,0 @@
-/var/const/SHARED_TYPES_WEIGHT = 5
-/var/const/CAMERA_PROXIMITY_PREFERENCE = 0.2
-// the smaller this is, the more a straight line will be preferred over a closer camera when changing cameras
-// if you set this to 0 the game will crash. don't do that.
-// if you set it to be negative the algorithm will do completely nonsensical things (like choosing the camera that's
-// the farthest away). don't do that.
-
-/client/proc/AIMove(n,direct,var/mob/living/silicon/ai/user)
- if(!user) return
- if(user.control_disabled) return
-
- var/min_dist = 1e8
- var/obj/machinery/camera/closest = null
- var/atom/old = (user.current?user.current : user.loc)
-
- if(!old) return
-
- var/dx = 0
- var/dy = 0
- if(direct & NORTH)
- dy = 1
- else if(direct & SOUTH)
- dy = -1
- if(direct & EAST)
- dx = 1
- else if(direct & WEST)
- dx = -1
-
- var/area/A = get_area(old)
- var/list/old_types = dd_text2list("[A.type]", "/")
-
- for(var/obj/machinery/camera/current in cameranet.cameras)
- if(user.network != current.network) continue
- if(!current.status) continue // ignore disabled cameras
-
- //make sure it's the right direction
- if(dx && (current.x * dx <= old.x * dx))
- continue
- if(dy && (current.y * dy <= old.y * dy))
- continue
-
- var/shared_types = 0 //how many levels deep the old camera and the closest camera's areas share
- //for instance, /area/A and /area/B would have shared_types = 2 (because of how dd_text2list works)
- //whereas area/A/B and /area/A/C would have it as 3
-
- var/area/cur_area = get_area(current)
- if(!cur_area) continue
- var/list/new_types = dd_text2list("[cur_area.type]", "/")
- for(var/i = 1; i <= old_types.len && i <= new_types.len; i++)
- if(old_types[i] == new_types[i])
- shared_types++
- else
- break
-
- //don't let it be too far from the current one in the axis perpindicular to the direction of travel,
- //but let it be farther from that if it's in the same area
- //something in the same hallway but farther away beats something in the same hallway
-
- var/distance = abs((current.y - old.y)/(CAMERA_PROXIMITY_PREFERENCE + abs(dy))) + abs((current.x - old.x)/(CAMERA_PROXIMITY_PREFERENCE + abs(dx)))
- distance -= SHARED_TYPES_WEIGHT * shared_types
- //weight things in the same area as this so they count as being closer - makes you stay in the same area
- //when possible
-
- if(distance < min_dist)
- //closer, or this is in the same area and the current closest isn't
- min_dist = distance
- closest = current
-
- if(!closest)
- return
- user.switchCamera(closest)
\ No newline at end of file
diff --git a/html/changelog.html b/html/changelog.html
index d1be8d9701b..1c3858da677 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -48,6 +48,14 @@ Stuff which is in development and not yet visible to players or just code relate
should be listed in the changelog upon commit tho. Thanks. -->
+
+
18 October 2012
+
Giacom updated:
+
+ - As an AI, you can type in the "track with camera" command and get a list of names to show up there. This also works with "list camera" verb. Remember to use space to auto-fill.
+
+
+
16 October 2012
Giacom updated:
diff --git a/tgstation.dme b/tgstation.dme
index 3ea1812ddf3..1ba6de996c6 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -6,6 +6,266 @@
// BEGIN_FILE_DIR
#define FILE_DIR .
+#define FILE_DIR ".svn"
+#define FILE_DIR ".svn/pristine"
+#define FILE_DIR ".svn/pristine/00"
+#define FILE_DIR ".svn/pristine/01"
+#define FILE_DIR ".svn/pristine/02"
+#define FILE_DIR ".svn/pristine/03"
+#define FILE_DIR ".svn/pristine/04"
+#define FILE_DIR ".svn/pristine/05"
+#define FILE_DIR ".svn/pristine/06"
+#define FILE_DIR ".svn/pristine/07"
+#define FILE_DIR ".svn/pristine/08"
+#define FILE_DIR ".svn/pristine/09"
+#define FILE_DIR ".svn/pristine/0a"
+#define FILE_DIR ".svn/pristine/0b"
+#define FILE_DIR ".svn/pristine/0c"
+#define FILE_DIR ".svn/pristine/0d"
+#define FILE_DIR ".svn/pristine/0e"
+#define FILE_DIR ".svn/pristine/0f"
+#define FILE_DIR ".svn/pristine/10"
+#define FILE_DIR ".svn/pristine/11"
+#define FILE_DIR ".svn/pristine/12"
+#define FILE_DIR ".svn/pristine/13"
+#define FILE_DIR ".svn/pristine/14"
+#define FILE_DIR ".svn/pristine/15"
+#define FILE_DIR ".svn/pristine/16"
+#define FILE_DIR ".svn/pristine/17"
+#define FILE_DIR ".svn/pristine/18"
+#define FILE_DIR ".svn/pristine/19"
+#define FILE_DIR ".svn/pristine/1a"
+#define FILE_DIR ".svn/pristine/1b"
+#define FILE_DIR ".svn/pristine/1c"
+#define FILE_DIR ".svn/pristine/1d"
+#define FILE_DIR ".svn/pristine/1e"
+#define FILE_DIR ".svn/pristine/1f"
+#define FILE_DIR ".svn/pristine/20"
+#define FILE_DIR ".svn/pristine/21"
+#define FILE_DIR ".svn/pristine/22"
+#define FILE_DIR ".svn/pristine/23"
+#define FILE_DIR ".svn/pristine/24"
+#define FILE_DIR ".svn/pristine/25"
+#define FILE_DIR ".svn/pristine/26"
+#define FILE_DIR ".svn/pristine/27"
+#define FILE_DIR ".svn/pristine/28"
+#define FILE_DIR ".svn/pristine/29"
+#define FILE_DIR ".svn/pristine/2a"
+#define FILE_DIR ".svn/pristine/2b"
+#define FILE_DIR ".svn/pristine/2c"
+#define FILE_DIR ".svn/pristine/2d"
+#define FILE_DIR ".svn/pristine/2e"
+#define FILE_DIR ".svn/pristine/2f"
+#define FILE_DIR ".svn/pristine/30"
+#define FILE_DIR ".svn/pristine/31"
+#define FILE_DIR ".svn/pristine/32"
+#define FILE_DIR ".svn/pristine/33"
+#define FILE_DIR ".svn/pristine/34"
+#define FILE_DIR ".svn/pristine/35"
+#define FILE_DIR ".svn/pristine/36"
+#define FILE_DIR ".svn/pristine/37"
+#define FILE_DIR ".svn/pristine/38"
+#define FILE_DIR ".svn/pristine/39"
+#define FILE_DIR ".svn/pristine/3a"
+#define FILE_DIR ".svn/pristine/3b"
+#define FILE_DIR ".svn/pristine/3c"
+#define FILE_DIR ".svn/pristine/3d"
+#define FILE_DIR ".svn/pristine/3e"
+#define FILE_DIR ".svn/pristine/3f"
+#define FILE_DIR ".svn/pristine/40"
+#define FILE_DIR ".svn/pristine/41"
+#define FILE_DIR ".svn/pristine/42"
+#define FILE_DIR ".svn/pristine/43"
+#define FILE_DIR ".svn/pristine/44"
+#define FILE_DIR ".svn/pristine/45"
+#define FILE_DIR ".svn/pristine/46"
+#define FILE_DIR ".svn/pristine/47"
+#define FILE_DIR ".svn/pristine/48"
+#define FILE_DIR ".svn/pristine/49"
+#define FILE_DIR ".svn/pristine/4a"
+#define FILE_DIR ".svn/pristine/4b"
+#define FILE_DIR ".svn/pristine/4c"
+#define FILE_DIR ".svn/pristine/4d"
+#define FILE_DIR ".svn/pristine/4e"
+#define FILE_DIR ".svn/pristine/4f"
+#define FILE_DIR ".svn/pristine/50"
+#define FILE_DIR ".svn/pristine/51"
+#define FILE_DIR ".svn/pristine/52"
+#define FILE_DIR ".svn/pristine/53"
+#define FILE_DIR ".svn/pristine/54"
+#define FILE_DIR ".svn/pristine/55"
+#define FILE_DIR ".svn/pristine/56"
+#define FILE_DIR ".svn/pristine/57"
+#define FILE_DIR ".svn/pristine/58"
+#define FILE_DIR ".svn/pristine/59"
+#define FILE_DIR ".svn/pristine/5a"
+#define FILE_DIR ".svn/pristine/5b"
+#define FILE_DIR ".svn/pristine/5c"
+#define FILE_DIR ".svn/pristine/5d"
+#define FILE_DIR ".svn/pristine/5e"
+#define FILE_DIR ".svn/pristine/5f"
+#define FILE_DIR ".svn/pristine/60"
+#define FILE_DIR ".svn/pristine/61"
+#define FILE_DIR ".svn/pristine/62"
+#define FILE_DIR ".svn/pristine/63"
+#define FILE_DIR ".svn/pristine/64"
+#define FILE_DIR ".svn/pristine/65"
+#define FILE_DIR ".svn/pristine/66"
+#define FILE_DIR ".svn/pristine/67"
+#define FILE_DIR ".svn/pristine/68"
+#define FILE_DIR ".svn/pristine/69"
+#define FILE_DIR ".svn/pristine/6a"
+#define FILE_DIR ".svn/pristine/6b"
+#define FILE_DIR ".svn/pristine/6c"
+#define FILE_DIR ".svn/pristine/6d"
+#define FILE_DIR ".svn/pristine/6e"
+#define FILE_DIR ".svn/pristine/6f"
+#define FILE_DIR ".svn/pristine/70"
+#define FILE_DIR ".svn/pristine/71"
+#define FILE_DIR ".svn/pristine/72"
+#define FILE_DIR ".svn/pristine/73"
+#define FILE_DIR ".svn/pristine/74"
+#define FILE_DIR ".svn/pristine/75"
+#define FILE_DIR ".svn/pristine/76"
+#define FILE_DIR ".svn/pristine/77"
+#define FILE_DIR ".svn/pristine/78"
+#define FILE_DIR ".svn/pristine/79"
+#define FILE_DIR ".svn/pristine/7a"
+#define FILE_DIR ".svn/pristine/7b"
+#define FILE_DIR ".svn/pristine/7c"
+#define FILE_DIR ".svn/pristine/7d"
+#define FILE_DIR ".svn/pristine/7e"
+#define FILE_DIR ".svn/pristine/7f"
+#define FILE_DIR ".svn/pristine/80"
+#define FILE_DIR ".svn/pristine/81"
+#define FILE_DIR ".svn/pristine/82"
+#define FILE_DIR ".svn/pristine/83"
+#define FILE_DIR ".svn/pristine/84"
+#define FILE_DIR ".svn/pristine/85"
+#define FILE_DIR ".svn/pristine/86"
+#define FILE_DIR ".svn/pristine/87"
+#define FILE_DIR ".svn/pristine/88"
+#define FILE_DIR ".svn/pristine/89"
+#define FILE_DIR ".svn/pristine/8a"
+#define FILE_DIR ".svn/pristine/8b"
+#define FILE_DIR ".svn/pristine/8c"
+#define FILE_DIR ".svn/pristine/8d"
+#define FILE_DIR ".svn/pristine/8e"
+#define FILE_DIR ".svn/pristine/8f"
+#define FILE_DIR ".svn/pristine/90"
+#define FILE_DIR ".svn/pristine/91"
+#define FILE_DIR ".svn/pristine/92"
+#define FILE_DIR ".svn/pristine/93"
+#define FILE_DIR ".svn/pristine/94"
+#define FILE_DIR ".svn/pristine/95"
+#define FILE_DIR ".svn/pristine/96"
+#define FILE_DIR ".svn/pristine/97"
+#define FILE_DIR ".svn/pristine/98"
+#define FILE_DIR ".svn/pristine/99"
+#define FILE_DIR ".svn/pristine/9a"
+#define FILE_DIR ".svn/pristine/9b"
+#define FILE_DIR ".svn/pristine/9c"
+#define FILE_DIR ".svn/pristine/9d"
+#define FILE_DIR ".svn/pristine/9e"
+#define FILE_DIR ".svn/pristine/9f"
+#define FILE_DIR ".svn/pristine/a0"
+#define FILE_DIR ".svn/pristine/a1"
+#define FILE_DIR ".svn/pristine/a2"
+#define FILE_DIR ".svn/pristine/a3"
+#define FILE_DIR ".svn/pristine/a4"
+#define FILE_DIR ".svn/pristine/a5"
+#define FILE_DIR ".svn/pristine/a6"
+#define FILE_DIR ".svn/pristine/a7"
+#define FILE_DIR ".svn/pristine/a8"
+#define FILE_DIR ".svn/pristine/a9"
+#define FILE_DIR ".svn/pristine/aa"
+#define FILE_DIR ".svn/pristine/ab"
+#define FILE_DIR ".svn/pristine/ac"
+#define FILE_DIR ".svn/pristine/ad"
+#define FILE_DIR ".svn/pristine/ae"
+#define FILE_DIR ".svn/pristine/af"
+#define FILE_DIR ".svn/pristine/b0"
+#define FILE_DIR ".svn/pristine/b1"
+#define FILE_DIR ".svn/pristine/b2"
+#define FILE_DIR ".svn/pristine/b3"
+#define FILE_DIR ".svn/pristine/b4"
+#define FILE_DIR ".svn/pristine/b5"
+#define FILE_DIR ".svn/pristine/b6"
+#define FILE_DIR ".svn/pristine/b7"
+#define FILE_DIR ".svn/pristine/b8"
+#define FILE_DIR ".svn/pristine/b9"
+#define FILE_DIR ".svn/pristine/ba"
+#define FILE_DIR ".svn/pristine/bb"
+#define FILE_DIR ".svn/pristine/bc"
+#define FILE_DIR ".svn/pristine/bd"
+#define FILE_DIR ".svn/pristine/be"
+#define FILE_DIR ".svn/pristine/bf"
+#define FILE_DIR ".svn/pristine/c0"
+#define FILE_DIR ".svn/pristine/c1"
+#define FILE_DIR ".svn/pristine/c2"
+#define FILE_DIR ".svn/pristine/c3"
+#define FILE_DIR ".svn/pristine/c4"
+#define FILE_DIR ".svn/pristine/c5"
+#define FILE_DIR ".svn/pristine/c6"
+#define FILE_DIR ".svn/pristine/c7"
+#define FILE_DIR ".svn/pristine/c8"
+#define FILE_DIR ".svn/pristine/c9"
+#define FILE_DIR ".svn/pristine/ca"
+#define FILE_DIR ".svn/pristine/cb"
+#define FILE_DIR ".svn/pristine/cc"
+#define FILE_DIR ".svn/pristine/cd"
+#define FILE_DIR ".svn/pristine/ce"
+#define FILE_DIR ".svn/pristine/cf"
+#define FILE_DIR ".svn/pristine/d0"
+#define FILE_DIR ".svn/pristine/d1"
+#define FILE_DIR ".svn/pristine/d2"
+#define FILE_DIR ".svn/pristine/d3"
+#define FILE_DIR ".svn/pristine/d4"
+#define FILE_DIR ".svn/pristine/d5"
+#define FILE_DIR ".svn/pristine/d6"
+#define FILE_DIR ".svn/pristine/d7"
+#define FILE_DIR ".svn/pristine/d8"
+#define FILE_DIR ".svn/pristine/d9"
+#define FILE_DIR ".svn/pristine/da"
+#define FILE_DIR ".svn/pristine/db"
+#define FILE_DIR ".svn/pristine/dc"
+#define FILE_DIR ".svn/pristine/dd"
+#define FILE_DIR ".svn/pristine/de"
+#define FILE_DIR ".svn/pristine/df"
+#define FILE_DIR ".svn/pristine/e0"
+#define FILE_DIR ".svn/pristine/e1"
+#define FILE_DIR ".svn/pristine/e2"
+#define FILE_DIR ".svn/pristine/e3"
+#define FILE_DIR ".svn/pristine/e4"
+#define FILE_DIR ".svn/pristine/e5"
+#define FILE_DIR ".svn/pristine/e6"
+#define FILE_DIR ".svn/pristine/e7"
+#define FILE_DIR ".svn/pristine/e8"
+#define FILE_DIR ".svn/pristine/e9"
+#define FILE_DIR ".svn/pristine/ea"
+#define FILE_DIR ".svn/pristine/eb"
+#define FILE_DIR ".svn/pristine/ec"
+#define FILE_DIR ".svn/pristine/ed"
+#define FILE_DIR ".svn/pristine/ee"
+#define FILE_DIR ".svn/pristine/ef"
+#define FILE_DIR ".svn/pristine/f0"
+#define FILE_DIR ".svn/pristine/f1"
+#define FILE_DIR ".svn/pristine/f2"
+#define FILE_DIR ".svn/pristine/f3"
+#define FILE_DIR ".svn/pristine/f4"
+#define FILE_DIR ".svn/pristine/f5"
+#define FILE_DIR ".svn/pristine/f6"
+#define FILE_DIR ".svn/pristine/f7"
+#define FILE_DIR ".svn/pristine/f8"
+#define FILE_DIR ".svn/pristine/f9"
+#define FILE_DIR ".svn/pristine/fa"
+#define FILE_DIR ".svn/pristine/fb"
+#define FILE_DIR ".svn/pristine/fc"
+#define FILE_DIR ".svn/pristine/fd"
+#define FILE_DIR ".svn/pristine/fe"
+#define FILE_DIR ".svn/pristine/ff"
+#define FILE_DIR "bot"
+#define FILE_DIR "bot/Marakov"
#define FILE_DIR "code"
#define FILE_DIR "code/ATMOSPHERICS"
#define FILE_DIR "code/ATMOSPHERICS/components"
@@ -185,6 +445,15 @@
#define FILE_DIR "code/WorkInProgress/mapload"
#define FILE_DIR "code/WorkInProgress/organs"
#define FILE_DIR "code/WorkInProgress/virus2"
+#define FILE_DIR "config"
+#define FILE_DIR "config/names"
+#define FILE_DIR "data"
+#define FILE_DIR "data/logs"
+#define FILE_DIR "data/logs/2012"
+#define FILE_DIR "data/logs/2012/10-October"
+#define FILE_DIR "data/player_saves"
+#define FILE_DIR "data/player_saves/g"
+#define FILE_DIR "data/player_saves/g/giacomand"
#define FILE_DIR "html"
#define FILE_DIR "icons"
#define FILE_DIR "icons/effects"
@@ -199,6 +468,7 @@
#define FILE_DIR "icons/obj/machines"
#define FILE_DIR "icons/obj/pipes"
#define FILE_DIR "icons/pda_icons"
+#define FILE_DIR "icons/PSD files"
#define FILE_DIR "icons/spideros_icons"
#define FILE_DIR "icons/Testing"
#define FILE_DIR "icons/turf"
@@ -207,6 +477,7 @@
#define FILE_DIR "interface"
#define FILE_DIR "maps"
#define FILE_DIR "maps/RandomZLevels"
+#define FILE_DIR "music"
#define FILE_DIR "sound"
#define FILE_DIR "sound/AI"
#define FILE_DIR "sound/ambience"
@@ -220,8 +491,18 @@
#define FILE_DIR "sound/violin"
#define FILE_DIR "sound/voice"
#define FILE_DIR "sound/weapons"
+#define FILE_DIR "SQL"
#define FILE_DIR "tools"
#define FILE_DIR "tools/Redirector"
+#define FILE_DIR "tools/Runtime Condenser"
+#define FILE_DIR "tools/UnstandardnessTestForDM"
+#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM"
+#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin"
+#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug"
+#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj"
+#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86"
+#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug"
+#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties"
// END_FILE_DIR
// BEGIN_PREFERENCES
@@ -1057,7 +1338,6 @@
#include "code\modules\mob\living\silicon\ai\life.dm"
#include "code\modules\mob\living\silicon\ai\login.dm"
#include "code\modules\mob\living\silicon\ai\logout.dm"
-#include "code\modules\mob\living\silicon\ai\move.dm"
#include "code\modules\mob\living\silicon\ai\say.dm"
#include "code\modules\mob\living\silicon\ai\freelook\cameranet.dm"
#include "code\modules\mob\living\silicon\ai\freelook\chunk.dm"