Oh I see lol, I didn't notice that
.
Anyways, to fix the 'double' Link when you're holding something, take out the first draw_sprite call in the Draw event (right after "draw_sprite(sprLinkShadow,0,x,y)"). I think you just forgot to take that out; it was always drawing two sprites.
To fix the lack of lift/throw animations, just move where you check that the sprite isn't a lift/throw animation (in the step event code) to cover just about the whole step event. Basically change this:
if (holdd ||holdu || holdl || holdr)
&& (sprite_index!=sprLinkLiftD and sprite_index!=sprLinkLiftU and sprite_index!=sprLinkLiftL and sprite_index!=sprLinkLiftR)
&& (sprite_index!=sprLinkThrowD and sprite_index!=sprLinkThrowU and sprite_index!=sprLinkThrowL and sprite_index!=sprLinkThrowR)
{
To this:
if (sprite_index!=sprLinkLiftD && sprite_index!=sprLinkLiftU && sprite_index!=sprLinkLiftL && sprite_index!=sprLinkLiftR
&& sprite_index!=sprLinkThrowD && sprite_index!=sprLinkThrowU && sprite_index!=sprLinkThrowL && sprite_index!=sprLinkThrowR)
{
if (holdd ||holdu || holdl || holdr)
{
And then add another } at the end, right before "depth=-y;".
And finally, I noticed that you can push blocks while holding a rock. To fix that, just check if you're holding anything (probably just "if (instance_exists(holding_pot))" before running any of the Wall-pushing detection code.
Hope this helps