CREATE_SHOVEL just creates a new shovel sprite. I return the shovel's id/handle if successful and -1 if we ran out of sprites. Note the SPFUNC call. That says what function you want called. The desired function can't take parameters or return values. If you want to create new shovels without the hero sprite you just need to duplicate line 72's CREATE_SHOVEL call in the hero's update function.