The request
I'd like to be able to dynamically change playerclasses and/or playerskins in-game, preferably through DECORATE. Something like A_SetPlayerClass("ClassName"). Or (for versatility) possibly even something more generic like A_SetActorClass(), allowing any actor to be morphed in (or replaced by) another actor?
Current alternatives & their limitations
- Morphing players. Unfortunately, the effect does not transfer to the next level and does not have the required support for pickups and using multiple weapons. A morphed player is a crippled one.
- Use only one playerclass with massive ACS & Decorate (dummy Inventory items and A_JumpIfInventory). SetActorProperty can help a bit, but lacks changing (view)height/scale/radius/gravity/painchance/ForwardMove/SideMove etc, not to mention the mugshot, crouchsprite and playersounds. Also, this requires additional scripting to prevent classes from using/picking up 'wrong' weapons for their class.
- Extending the Morph system, removing the limitation concerning the use of weapons and picking up items, etc and making it *permanent*.
- Creating new code, which could (loosly) also be used for Hexen's shadowcaster-cheat?