_calc_push golf redux

Removed unnecessary variable declarations and conditional cases by using an "assume, alternate, verify assumption" pattern and reusing ax0/ay0 when they would never be referenced again.
This commit is contained in:
Kistaro Windrider 2023-01-02 16:22:10 -08:00
parent cb36faac23
commit b2dbd9ec60
Signed by: kistaro
SSH Key Fingerprint: SHA256:TBE2ynfmJqsAf0CP6gsflA0q5X5wD5fVKWPsZ7eVUg8

View File

@ -1645,21 +1645,16 @@ function rope:_calc_push(
smy=-smy
end
local mx,dmx
local dmx=1 -- maybe push right?
if anch.adx==-1 and a0.x>an.x+7 then
-- push left
mx=ax0-1
dmx=-1
elseif anch.adx==1 and a0.x<an.x-7 then
-- push right
mx=ax0
dmx=1
else
ax0, dmx=ax0-1,-1
elseif anch.adx!=1 or a0.x>=an.x-7 then
return {}
end
for my=my0,my1,smy do
add(ops,{mx,my,dmx,0})
add(ops,{ax0,my,dmx,0})
end
end
@ -1671,22 +1666,16 @@ function rope:_calc_push(
smx=-smx
end
local my,dmy
local dmy=1 -- maybe push down?
if anch.ady==-1 and a0.y>an.y+6 then
-- push up
my=ay0-1
dmy=-1
elseif anch.ady==1 and a0.y<an.y-6 then
-- push down
my=ay0
dmy=1
else
ay0,dmy=ay0-1,dmy=-1
elseif anch.ady!=1 or a0.y>=an.y-6 then
return {}
end
for mx=mx0,mx1,smx do
add(ops,{mx,my,0,dmy})
add(ops,{mx,ay0,0,dmy})
end
end