Page 1 of 1

VM abort: player.txt line 374

Posted: Fri Nov 30, 2018 10:20 am
by Major Cooke

Code: Select all

virtual void CheckWeaponChange ()
{
	let player = self.player;
	if ((player.WeaponState & WF_DISABLESWITCH) || // <----------------------------------------------------------------Aborts here
		player.morphTics != 0)					// Morphed classes cannot change weapons.
	{ // ...so throw away any pending weapon requests.
		player.PendingWeapon = WP_NOCHANGE;
	}

	// Put the weapon away if the player has a pending weapon or has died, and
	// we're at a place in the state sequence where dropping the weapon is okay.
	if ((player.PendingWeapon != WP_NOCHANGE || player.health <= 0) &&
		player.WeaponState & WF_WEAPONSWITCHOK)
	{
		player.DropWeapon();
	}
}
Specifically:

Code: Select all

if ((player.WeaponState & WF_DISABLESWITCH) ||
This can happen when morphing, it would appear.

Re: VM abort: player.txt line 374

Posted: Fri Nov 30, 2018 11:14 am
by Graf Zahl
How can I reproduce this? You are particularly vague on that aspect.

Re: VM abort: player.txt line 374

Posted: Fri Nov 30, 2018 12:45 pm
by Major Cooke
Good question. Unfortunately, it's sporadic when playing D4D, so I cannot present a quick and easy demonstration.

Here's the resources and here's the bleeding edge.

Just put them in the same folder together and only load Doom4Doom-master.zip, it will auto-load the resources package for you.

I should also note I'm playing on maps like Dark Tartarus which makes extensive use of voodoo dolls.

I attempted to fix it myself by adding in at the top:

Code: Select all

if (!player || !player.mo)
	return;
I haven't encountered further aborts as of yet...

Re: VM abort: player.txt line 374

Posted: Fri Nov 30, 2018 12:59 pm
by Graf Zahl
Morphing and voodoo dolls are a match made in hell... :?

Re: VM abort: player.txt line 374

Posted: Thu Aug 12, 2021 12:28 pm
by Graf Zahl
fixed.