Everytime I run the profiler these procs in particular are taking up way to much space.
Not really sure exactly what is eating up the most space. Also not really sure what and what does not belong in the client/north
Here is the move() proc
mob/human
Move(turf/loc,dirr)
if(!src || !src.client) return
if(!src.loc)
for(var/obj/Respawn_Pt/R in world)
if((!faction || (faction.village=="Missing"&&R.ind==4))||(faction.village=="Konoha"&&R.ind==1)||(faction.village=="Suna"&&R.ind==2)||(faction.village=="Kiri"&&R.ind==3))
loc = R.loc
break
if(!src.client)
if(!istype(src,/mob/human))
return
if(!loc)
return
if(!src.canwalk)
return
if(src.stunned) return
if(src.Juubi_Summon)return
if(src.barber) return
if(src.client) src.old_location=src.loc
if(istype(src,/mob/human/clay))
. = ..()
for(var/area/XE in oview(src,0))
if(istype(XE,/area/nopkzone))
var/mob/human/clay/spider/S = src
if(istype(src,/mob/human/clay/spider) && S.explode && istype(S.explode,/mob/human/player))
for(var/obj/trigger/exploding_spider/T in S.explode.triggers)
if(T.spider == src) S.explode.RemoveTrigger(T)
src.loc=null
return
if(istype(src,/mob/human/sandmonster)||istype(src,/mob/human/player/npc))
if(src.icon_state!="D-funeral" && !src.stunned)
goto fin
else
return 0
if(src.client && src.client.inputting)
return 0
if(src.incombo)
return 0
if(src.frozen)
return 0
if(src.lava_walk)
if(src.pk)
var/obj/a = new/obj/lava_walk(locate(src.x,src.y,src.z))
var/obj/b = new/obj/lava_walk(locate(src.x-1,src.y,src.z))
var/obj/c = new/obj/lava_walk(locate(src.x+1,src.y,src.z))
var/obj/d = new/obj/lava_walk(locate(src.x,src.y-1,src.z))
var/obj/e = new/obj/lava_walk(locate(src.x,src.y+1,src.z))
a:lavaowner = src
b:lavaowner = src
c:lavaowner = src
d:lavaowner = src
e:lavaowner = src
if(istype(src,/mob/spectator))
src.density=0
src.icon=null
goto fin
if(capture_the_flag&&capture_the_flag.HasFlag(src))
src.movepenalty+=1
if(src.mole)
if(src.curchakra>src.chakraregen || !src.curchakra<=0)
src.stunned=0
src.curchakra-=rand(40,100)
src.movepenalty+=5
else if(src.curchakra<src.chakraregen && src.curchakra<=0)
src.stunned+=1
var/i=0
i=Iswater(src.loc)
if(i)
var/obj/haku_ice/ice = locate(/obj/haku_ice) in loc
if(!ice)
if(clan == "Haku")
new /obj/haku_ice(loc)
else
if(chakra_foot)
watercount++
waterlogged = 0
curchakra -= 1
else if(clan == "Capacity"||clan=="Hozuki")
waterlogged = 0
watercount++
else if(curchakra>5)
curchakra-=5
waterlogged=1
watercount++
else if(curstamina>25)
curstamina-=25
waterlogged=1
watercount++
else
return 0
if(src && src.carrying)
for(var/mob/human/npc/bounty/B in view(src,1))
for(var/mob/corpse/C in src.carrying)
switch(input("Would you like to cash in your corpses' bountys?!","Corpse Bounty") in list ("Yes","No"))
if("Yes")
if(!src || !C) return
src.money+=C.corpsebounty
src<<"Gained [C.corpsebounty] money"
var/list/Team
if(src.squad)
Team = list()
for(var/mob/U in src.squad.online_members)
if(U in range(src,25))
Team += U
if(src.squad)
for(var/mob/U in Team)
U.money+=C.corpsebounty
U<<"Gained [C.corpsebounty] money"
U<<'Cash.wav'
for(var/mob/human/M in world)
M.carrying-=C
C.carryingme=null
C.corpsebounty=0
C.name="[C.name]<font color =green>CASHED IN!"
C.loc = locate(/turf/cage1)
src<<'Cash.wav'
if(src.Tank)
for(var/mob/human/player/Xe in get_step(src,src.dir))
if(Xe && Xe!=src && !Xe.ko && !Xe.protected)//(Xe.client))
var/obj/t = new/obj(Xe.loc)
t.icon='icons/gatesmack.dmi'
flick("smack",t)
if(t)t.loc=null
if(src.Tank==3)
spawn()if(Xe && src)Xe.Dec_Stam((src.rfx+src.rfxbuff-rfxneg)*pick(1,3)+600,1,src)
else if(src && src.Tank==4)
spawn()if(src && Xe)Xe.Dec_Stam((src.rfx+src.rfxbuff-rfxneg)*pick(2,6)+600,1,src)
else
spawn()if(src && Xe)Xe.Dec_Stam((src.str+src.strbuff-strneg)*pick(1,3)+400,1,src)
spawn()if(Xe && src)Xe.Hostile(src)
if(Xe && src &&!Xe.Tank)
Xe.loc=locate(src.x,src.y,src.z)
Xe.icon_state="Hurt"
spawn()
if(src && Xe && !Xe.Tank)
Xe.Knockback(5,turn(src.dir, 180))
else
if(src && Xe)Xe.Knockback(5,src.dir)
if(Xe)Xe.icon_state=""
else
if(src && Xe)src.loc=locate(Xe.x,Xe.y,Xe.z)
if(src.dynamic_kick)
for(var/mob/human/Xe in get_step(src,src.dir))
if(Xe!=src && !Xe.ko && !Xe.protected && (Xe.client/*||istype(Xe,/mob/human/player/npc/kage_bunshin)*/))
var/obj/t = new/obj(Xe.loc)
t.icon='icons/gatesmack.dmi'
flick("smack",t)
if(t)t.loc=null
if(src.dynamic_kick)
viewers(src) << output("[src] Dynamic Kick!", "combat_output")
spawn()if(src && Xe)Xe.Dec_Stam((src.rfx+src.rfxbuff-rfxneg)*pick(1,3)+500,1,src)
else if(src && Xe&&src.dynamic_kick==0)
spawn()if(src && Xe)Xe.Dec_Stam((src.rfx+src.rfxbuff-rfxneg)*pick(2,6)+100,1,src)
else
spawn()if(src && Xe)Xe.Dec_Stam((src.str+src.strbuff-strneg)*pick(1,3)+50,1,src)
spawn()if(src && Xe)Xe.Hostile(src)
if(Xe && src &&!Xe.dynamic_kick)
Xe.loc=locate(src.x,src.y,src.z)
Xe.icon_state="Hurt"
spawn()
viewers(src) << output("[src] Dynamic Kick!", "combat_output")
if(Xe && src&&!Xe.dynamic_kick)
Xe.Knockback(5,turn(src.dir, 180))
else
if(src && Xe)Xe.Knockback(5,src.dir)
if(src && Xe)Xe.icon_state=""
else
if(src && Xe)src.loc=locate(Xe.x,Xe.y,Xe.z)
if(movin)
return ..()
if(dirr==src.dir)
src.movin=1
walk(src,src.dir,1)
sleep(3)
walk(src,0)
src.movin=0
return 1
else
return ..()
if(!EN[14])
return ..()
if(src && !src.movedrecently)
src.movedrecently++
if(src && src.movedrecently>10)
src.movedrecently=10
if(src && src.isguard)
src.icon_state=""
src.isguard=0
for(var/obj/Bonespire/P in get_step(src,src.dir))
if(P.causer==src)
P.density=0
spawn(2)
if(P)
P.density=1
for(var/turf/P in get_step(src,src.dir))
if(!P.icon || P.type==/turf)
return 0
if(src.sleeping)
src.sleeping=0
src.icon_state=""
if(length(carrying))
for(var/mob/X in carrying)
X.loc=src.loc
fin
. = ..()
if(src.HasSkill(BLOOD_BIND))
for(var/obj/undereffect/B in src.loc)
if(B.uowner)src.Blood_Add(B.uowner)
if(!istype(src,/mob/human/player/npc) && src.z && src.z>1)
src.Get_Global_Coords()
var/wa=0
//~~~~
if(!afteryou_cool && wa)
if(pick(0,1))
var/squadsize=pick(1,2,3,4)
squadsize=min(squadsize,afteryou)
afteryou_cool=1
afteryou-=squadsize
spawn(30)
var/lvl=1
if(MissionClass=="D")
lvl=limit(1,round(src.blevel * rand(0.4,1)),30)
if(MissionClass=="C")
lvl=limit(1,round(src.blevel * rand(0.7,1.1)),60)
if(MissionClass=="B")
lvl=limit(1,round(src.blevel * rand(0.8,1.2)),80)
if(MissionClass=="A")
lvl=limit(1,round(src.blevel * rand(0.9,1.3)),100)
if(MissionClass=="S")
lvl=limit(1,round(src.blevel * rand(1,1.3)),100)
Ambush(src,lvl,squadsize)
else
if(wa)
spawn(200)
afteryou_cool=0
for(var/mob/human/player/npc/Q in oview(5))
if(Q.following==src)
Q.nextstep=src.dir
for(var/area/XE in oview(src,0))
if(istype(XE,/area/nopkzone))
if(src)src.Hostile()
if(istype(src,/mob/human/sandmonster)||istype(src,/mob/human/player/npc))
canmove=0
spawn(1)
canmove=1
return
for(var/obj/x in oview(0))
if(istype(x,/obj/caltrops))
x:E(src)
for(var/obj/x in oview(1))
if(istype(x,/obj/trip))
x:E(src)
// if (src.is_doubleStepping==1)
// return
src.runlevel++
if(src.runlevel>8)
src.runlevel=8
if(src.doublestep==2 && src.runlevel>=4 && canmove==1)
src.is_doubleStepping = 1
step(src,src.dir,0)
if(!src.Sprinting)
spawn(20)
src.runlevel--
if(src.levitate && src.runlevel<=3)
src.pixel_y=0
src.icon_state=""
src.levitation_active=0
else if(src.icon_state=="" &&src.runlevel<=3)//Run
src.icon_state=""
if(src.runlevel>4 &&!src.Size)
if(!src.icon_state&&!src.rasengan&&!src.larch&&src.levitate&&!src.lightning_cutter)
src.icon_state="Seal"
src.levitation_active=1
start
if(src)src.pixel_y+=1
sleep(2)
if(src)src.pixel_y+=1.5
sleep(3)
if(src)src.pixel_y-=1.5
sleep(2)
if(src)src.pixel_y-=1
if(src.runlevel>4)
goto start
else
if(!src.icon_state&&!src.rasengan&&!src.larch&&!src.levitate&&!src.lightning_cutter)
src.icon_state=""//Run
else
if(src.levitate&&src.icon_state=="Seal")
src.icon_state=""
src.levitation_active=0
if(src.is_doubleStepping==1)
src.icon_state="Run2"
/* else if(src.icon_state=="Run")
src.icon_state=""*/
canmove=0
sleep(-1)
if(src && src.Size==1)
src.movepenalty=25
if(src.Size==2)
src.movepenalty=35
if(src.movepenalty>50)
src.movepenalty=50
if(move_stun)
if(!movepenalty)
movepenalty = 10
sleep(round(movepenalty/5))
else
sleep(round(movepenalty/10))
/*
if(src.leading)
sleep(src.GetMovementSpeed())
*/
canmove=1
mob/var/movement_map
client
West()
if(src.mob.controlmob)
step(mob.controlmob,WEST)
return
if(src.mob.Primary)
if(get_step(src.mob.Primary,WEST) in oview(20,src.mob))
step(src.mob.Primary,WEST)
return
var/mob/user=src.mob
if(user &&user.pixel_y)
user.pixel_y-=user.pixel_y/abs(user.pixel_y) *min(8,abs(user.pixel_y))
if(user &&user.pixel_x>0)
user.pixel_x-=user.pixel_x/abs(user.pixel_x) *min(8,abs(user.pixel_x))
if(mob.movement_map)
var/dir = mob.movement_map["[WEST]"]
step(mob, dir)
return
..()
East()
if(src.mob.controlmob)
step(mob.controlmob,EAST)
return
if(src.mob.Primary)
if(get_step(src.mob.Primary,EAST) in oview(20,src.mob))
step(src.mob.Primary,EAST)
return
var/mob/user=src.mob
if(user &&user.pixel_x<0)
user.pixel_x-=user.pixel_x/abs(user.pixel_x) *min(8,abs(user.pixel_x))
if(user &&user.pixel_y)
user.pixel_y-=user.pixel_y/abs(user.pixel_y) *min(8,abs(user.pixel_y))
if(mob.movement_map)
var/dir = mob.movement_map["[EAST]"]
step(mob, dir)
return
..()
North()
if(src.mob.controlmob)
step(mob.controlmob,NORTH)
return
if(src.mob.Primary)
if(get_step(src.mob.Primary,NORTH) in oview(20,src.mob))
step(src.mob.Primary,NORTH)
return
var/mob/user=src.mob
if(user &&user.pixel_y<0)
user.pixel_y-=user.pixel_y/abs(user.pixel_y) *min(8,abs(user.pixel_y))
if(user &&user.pixel_x)
user.pixel_x-=user.pixel_x/abs(user.pixel_x) *min(8,abs(user.pixel_x))
if(mob.movement_map)
var/dir = mob.movement_map["[NORTH]"]
step(mob, dir)
return
..()
South()
if(src.mob.controlmob)
step(mob.controlmob,SOUTH)
return
if(src.mob.Primary)
if(get_step(src.mob.Primary,SOUTH) in oview(20,src.mob))
step(src.mob.Primary,SOUTH)
return
var/mob/user=src.mob
if(user &&user.pixel_y>0)
user.pixel_y-=user.pixel_y/abs(user.pixel_y) *min(8,abs(user.pixel_y))
if(user &&user.pixel_x)
user.pixel_x-=user.pixel_x/abs(user.pixel_x) *min(8,abs(user.pixel_x))
if(mob.movement_map)
var/dir = mob.movement_map["[SOUTH]"]
step(mob, dir)
return
..()
Southeast()
if(src.mob.controlmob)
step(mob.controlmob,SOUTHEAST)
return
if(src.mob.Primary)
if(get_step(src.mob.Primary,SOUTHEAST) in oview(20,src.mob))
step(src.mob.Primary,SOUTHEAST)
return
var/mob/user=src.mob
if(user &&user.pixel_y>0)
user.pixel_y-=user.pixel_y/abs(user.pixel_y) *min(8,abs(user.pixel_y))
if(user &&user.pixel_x<0)
user.pixel_x-=user.pixel_x/abs(user.pixel_x) *min(8,abs(user.pixel_x))
if(mob.movement_map)
var/dir = mob.movement_map["[SOUTHEAST]"]
step(mob, dir)
return
..()
Northeast()
if(src.mob.controlmob)
step(mob.controlmob,NORTHEAST)
return
if(src.mob.Primary)
if(get_step(src.mob.Primary,NORTHEAST) in oview(20,src.mob))
step(src.mob.Primary,NORTHEAST)
return
var/mob/user=src.mob
if(user &&user.pixel_y<0)
user.pixel_y-=user.pixel_y/abs(user.pixel_y) *min(8,abs(user.pixel_y))
if(user &&user.pixel_x<0)
user.pixel_x-=user.pixel_x/abs(user.pixel_x) *min(8,abs(user.pixel_x))
if(mob.movement_map)
var/dir = mob.movement_map["[NORTHEAST]"]
step(mob, dir)
return
..()
Southwest()
if(src.mob.controlmob)
step(mob.controlmob,SOUTHWEST)
return
if(src.mob.Primary)
if(get_step(src.mob.Primary,SOUTHWEST) in oview(20,src.mob))
step(src.mob.Primary,SOUTHWEST)
return
var/mob/user=src.mob
if(user &&user.pixel_y>0)
user.pixel_y-=user.pixel_y/abs(user.pixel_y) *min(8,abs(user.pixel_y))
if(user &&user.pixel_x>0)
user.pixel_x-=user.pixel_x/abs(user.pixel_x) *min(8,abs(user.pixel_x))
if(mob.movement_map)
var/dir = mob.movement_map["[SOUTHWEST]"]
step(mob, dir)
return
..()
Northwest()
if(src.mob.controlmob)
step(mob.controlmob,NORTHWEST)
return
if(src.mob.Primary)
if(get_step(src.mob.Primary,NORTHWEST) in oview(20,src.mob))
step(src.mob.Primary,NORTHWEST)
return
var/mob/user=src.mob
if(user &&user.pixel_y<0)
user.pixel_y-=user.pixel_y/abs(user.pixel_y) *min(8,abs(user.pixel_y))
if(user &&user.pixel_x>0)
user.pixel_x-=user.pixel_x/abs(user.pixel_x) *min(8,abs(user.pixel_x))
if(mob.movement_map)
var/dir = mob.movement_map["[NORTHWEST]"]
step(mob, dir)
return
..()
A slightly better answer is that you're using goto.
A more in-depth answer should come later, since I don't have the time at the moment to examine this in-depth.