I've just started using Evolved's lighting functions for my game, and I've been looking to make the DBP code a bit cleaner/faster/easier to read.
The code contains this function:
function LF_ObjectUpdate(o)
PosX#=object position x(Object(o).ObjectNum)
PosY#=object position y(Object(o).ObjectNum)
PosZ#=object position z(Object(o).ObjectNum)
Sizex#=0:Sizey#=0:Sizez#=0
position object Object(o).ObjectNum,0,0,0
move object Object(o).ObjectNum,object size x(Object(o).ObjectNum,1)
move object up Object(o).ObjectNum,object size y(Object(o).ObjectNum,1)
move object left Object(o).ObjectNum,object size z(Object(o).ObjectNum,1)
if abs(object position x(Object(o).ObjectNum))>Sizex# then Sizex#=abs(object position x(Object(o).ObjectNum))
if abs(object position y(Object(o).ObjectNum))>Sizey# then Sizey#=abs(object position y(Object(o).ObjectNum))
if abs(object position z(Object(o).ObjectNum))>Sizez# then Sizez#=abs(object position z(Object(o).ObjectNum))
position object Object(o).ObjectNum,0,0,0
move object Object(o).ObjectNum,object size x(Object(o).ObjectNum,1)
move object down Object(o).ObjectNum,object size y(Object(o).ObjectNum,1)
move object left Object(o).ObjectNum,object size z(Object(o).ObjectNum,1)
if abs(object position x(Object(o).ObjectNum))>Sizex# then Sizex#=abs(object position x(Object(o).ObjectNum))
if abs(object position y(Object(o).ObjectNum))>Sizey# then Sizey#=abs(object position y(Object(o).ObjectNum))
if abs(object position z(Object(o).ObjectNum))>Sizez# then Sizez#=abs(object position z(Object(o).ObjectNum))
position object Object(o).ObjectNum,0,0,0
move object Object(o).ObjectNum,object size x(Object(o).ObjectNum,1)
move object down Object(o).ObjectNum,object size y(Object(o).ObjectNum,1)
move object right Object(o).ObjectNum,object size z(Object(o).ObjectNum,1)
if abs(object position x(Object(o).ObjectNum))>Sizex# then Sizex#=abs(object position x(Object(o).ObjectNum))
if abs(object position y(Object(o).ObjectNum))>Sizey# then Sizey#=abs(object position y(Object(o).ObjectNum))
if abs(object position z(Object(o).ObjectNum))>Sizez# then Sizez#=abs(object position z(Object(o).ObjectNum))
position object Object(o).ObjectNum,0,0,0
move object Object(o).ObjectNum,object size x(Object(o).ObjectNum,1)
move object up Object(o).ObjectNum,object size y(Object(o).ObjectNum,1)
move object right Object(o).ObjectNum,object size z(Object(o).ObjectNum,1)
if abs(object position x(Object(o).ObjectNum))>Sizex# then Sizex#=abs(object position x(Object(o).ObjectNum))
if abs(object position y(Object(o).ObjectNum))>Sizey# then Sizey#=abs(object position y(Object(o).ObjectNum))
if abs(object position z(Object(o).ObjectNum))>Sizez# then Sizez#=abs(object position z(Object(o).ObjectNum))
Object(o).ObjectPosX#=PosX#
Object(o).ObjectPosY#=PosY#
Object(o).ObjectPosZ#=PosZ#
Object(o).ObjectSizeX#=Sizex#
Object(o).ObjectSizeY#=Sizey#
Object(o).ObjectSizeZ#=Sizez#
LF_ObjectGetLights(o)
position object Object(o).ObjectNum,PosX#,PosY#,PosZ#
endfunction
This seems a bit OTT to me, why not just do this?
function LF_ObjectUpdate(o)
PosX#=object position x(Object(o).ObjectNum)
PosY#=object position y(Object(o).ObjectNum)
PosZ#=object position z(Object(o).ObjectNum)
Sizex#=object size x(Object(o).ObjectNum,1)
Sizey#=object size y(Object(o).ObjectNum,1)
Sizez#=object size z(Object(o).ObjectNum,1)
Object(o).ObjectPosX#=PosX#
Object(o).ObjectPosY#=PosY#
Object(o).ObjectPosZ#=PosZ#
Object(o).ObjectSizeX#=Sizex#
Object(o).ObjectSizeY#=Sizey#
Object(o).ObjectSizeZ#=Sizez#
LF_ObjectGetLights(o)
endfunction
There must be a reason for it or he wouldn't have gone to all the effort to type it, but it looks to me as if each step checking the size of the object will return the same value. Can anyone see a problem with my thinking/explain why Evolved has done it the way he has?
Thanks,
BC