Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
40oz

Chainsaw Grab

Recommended Posts

Curious if this is a known (or even useful) tactic for speedrunning, or if my hypothesis has any merit to it.

I was wondering if it's possible to make a jump that's just a hair's width too far to make if there is a monster on the ledge that can be caught by a chainsaw.

I was playing MAP01 of Katamori's Somewhere in Time demo, and there's a part where you're supposed to teleport and drop down to the ledge just below it to get a shotgun. There's a pillar with an imp standing on it that appears to be within the right "runfalling" distance and I was able to make it while attempting to chainsaw the imp in midair. After I killed the imp I accidentally fell off, teleported back up, and was since unable to make the jump again without the imp there.

I may just be a faulty player but can the chainsaw's ability to latch on to things possibly give you an extra midair boost to make jumps you wouldn't normally make?

Share this post


Link to post

In SITDEMO2.WAD I can't make the jump with normal straferunning, while with strafe 50 I jump across the pillar (I jump too far). Probably, I repeat probably, since I really know nothing about jumps, the chainsaw should not help by giving any "boost". This latching you mention means, from my experience, that the player makes quicker turns and that's it.

I the zip there's an example WAD with an example .lmp. The player jumps across, hurts an imp with the chainsaw and just keeps falling down, as the imp is a square hitbox and doesn't let the player stand next to it... Watch it with slowmo

chain.zip

Share this post


Link to post

I think chainsaw pulls you to the monster you are sawing, but I don't know if it works midair.

Interesting idea.

Share this post


Link to post

I did a similar experiment and I also think saw doesn't give you any forward boost when it latches on a target. I'm attaching the test wad. Feel free to experiment with height of the other platform and distance of the imp, but I simply don't see any forward momentum. Can it be that sawing pulls the monster closer and not the other way?

saw01.zip

Share this post


Link to post

Trying doom2 map01 with iddqd and idclip while standing still, with automap coordinates in prplus, looks like you get pulled forward.

Share this post


Link to post

Likewise, I did the experiment with xdre with a map I created really quick, and the chainsaw didn't seem to do anything, though I'm not sure. At any rate, xdre doesn't show any noticeable increase in speed or momentum.

I did get kind of a weird demo that I'm attaching with the map. The imp from the platform shot me with a fireball while I'm in midair and I got a noticeable boost of about 0.5 units/second (that can be seen in xdre) that got me over the gap, even though the fireball was going the opposite direction of my movement. I imagine it might be because the speed of the fireball backwards combined with my speed actually caused the fireball essentially to go through the player and hit him on the back, but I'm not sure.

what1.zip

Share this post


Link to post

Chainsaw definitely yanks you toward the monster. Usually when I'm chainsawing something I'm holding the backpedal key the entire time and still get a good bit of hits before I detach.

I've also chainsawed pinky demons as they were running away from me trying to bite another monster, and without pressing any movement keys, you can kinda "skitch" along their backside as they run away for a few seconds (before it changes it's target back to you, that is)

Share this post


Link to post

That probably leaves us at an impasse - it looks like you only get the forward momentum with your feet on the ground, which won't help with jump tricks.

Share this post


Link to post

yeah, i don't get what you're referring to when you're saying it looks like you only get the forward momentum with your feet on the ground. The Doomguy spends the majority of his time on the floor. What did you do to find that it doesnt work in the air?

I didn't make time to watch any of these demos yet though.

Share this post


Link to post

Why are you posting such inane questions? There are several proof of concept wads and demos right here in your thread. I suggest you inspect them first.

Share this post


Link to post

It wouldn't work even if some boost in theory existed (hint: it doesn't) because you would need to actually use saw to be pushed forward, and trying to saw something that's over a gap will either result in clash against an actor and thus failing any jump, or jump over while monster is far from that gap allowing you to jump over it, but it would have nothing to do with saw that way because you'll be unable to use it. That's about enough theorycrafting for today.

Share this post


Link to post

The saw actually has enough reach to observe the effect if it worked. I put a blocking line in front of my test imp and I tried moving it from very close to almost-out-of-reach, but I didn't see any pull to the target platform.

Share this post


Link to post

I don't have doom at the computer I'm using to access the internet. I was trying to elicit as much information through text as I can so I can better understand what has happened. I'll watch the demos when I get a chance but at this time I do not. Why are you getting all irritable and answering my questions with questions?

Share this post


Link to post
j4rio said:

Chainsaw just changes angle. It doesn't actually boost, I think.


Yeppers!

//
// A_Saw
//
void
A_Saw
( player_t*	player,
  pspdef_t*	psp ) 
{
    angle_t	angle;
    int		damage;
    int		slope;

    damage = 2*(P_Random ()%10+1);
    angle = player->mo->angle;
    angle += (P_Random()-P_Random())<<18;
    
    // use meleerange + 1 se the puff doesn't skip the flash
    slope = P_AimLineAttack (player->mo, angle, MELEERANGE+1);
    P_LineAttack (player->mo, angle, MELEERANGE+1, slope, damage);

    if (!linetarget)
    {
	S_StartSound (player->mo, sfx_sawful);
	return;
    }
    S_StartSound (player->mo, sfx_sawhit);
	
    // turn to face target
    angle = R_PointToAngle2 (player->mo->x, player->mo->y,
			     linetarget->x, linetarget->y);
    if (angle - player->mo->angle > ANG180)
    {
	if (angle - player->mo->angle < -ANG90/20)
	    player->mo->angle = angle + ANG90/21;
	else
	    player->mo->angle -= ANG90/20;
    }
    else
    {
	if (angle - player->mo->angle > ANG90/20)
	    player->mo->angle = angle - ANG90/21;
	else
	    player->mo->angle += ANG90/20;
    }
    player->mo->flags |= MF_JUSTATTACKED;
}
So as you can see, it fiddles with the player's angle, but doesn't change anything to position or momentum.

However, notice that MF_JUSTATTACKED flag that is being set? It's a hack. This flag is used by monster AI and meaningless for a player. So, how is it used?
//
// P_PlayerThink
//
void P_PlayerThink (player_t* player)
{
    ticcmd_t*		cmd;
    weapontype_t	newweapon;
	
    // fixme: do this in the cheat code
    if (player->cheats & CF_NOCLIP)
	player->mo->flags |= MF_NOCLIP;
    else
	player->mo->flags &= ~MF_NOCLIP;
    
    // chain saw run forward
    cmd = &player->cmd;
    if (player->mo->flags & MF_JUSTATTACKED)
    {
	cmd->angleturn = 0;
	cmd->forwardmove = 0xc800/512;
	cmd->sidemove = 0;
	player->mo->flags &= ~MF_JUSTATTACKED;
    }
<snip lots more code>
There you go. It sets your forwardmove. If you're already running, it won't change anything I think; however if you're standing still (or backpedaling) it changes your command into a move forward the monster.

Note that, independently of being stopped by collision into the monster, it'll also slow you down if you were straferunning since it sets your sidemove to 0.

Share this post


Link to post

Thanks for the verification, Gez. That perfectly explains why ToD observed movement while my freefall scenario failed.

Share this post


Link to post

Nicely said gez. Im guessing the chainsaw always had the player get a few nicks at a time if the monster had any time to move or be nudged back by the damage, so that bit was added in combination with the angle changes so the player could easily get a pretty solid stream of hits without having to manually run toward the monster and follow it any direction its trying to go

i guess I must have made that jump with straferunning alone. If I had recorded a demo I could observe to see if the chainsaw aided me a bit. perhaps the sharp angle change helped draw me more toward the closest corner of the pillar without me having to turn into it myself, but even then that sounds more like an effect of extreme circumstance and isnt really something that would be very beneficial in a speedrun or to design a map with that situation in mind.

Share this post


Link to post

Boohoo! It would have been funny to see TASes where player always switches to chainsaw when possible :D

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
×