I thought up a solution to the problem, I don't know if its any better but I thought that I might as well suggest it.
What if you could assign skins to each weapon within the player class? That way, the weapon would not need to interact with the player class anymore than it already does (assuming that PlayerPawn actually "knows" which weapon it has selected), and nothing would have to be unconditionally replaced.
Example:
Code: Select all
ACTOR DoomPlayer2 : Doomplayer
{
Player.WeaponSkin "Pistol" "PistolMarine"
}

