Player class "face" property without clobbering SBARINFO

Post a reply

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :geek: :ugeek: :!: :?: :idea: :arrow: :| :mrgreen: :3: :wub: >:( :blergh:
View more smilies

BBCode is OFF
Smilies are ON

Topic review
   

Expand view Topic review: Player class "face" property without clobbering SBARINFO

Re: Player class "face" property without clobbering SBARINFO

by MartinHowe » Sun Apr 06, 2008 3:48 am

When playing DOOM games, STF is automatic and already built into the game - if there isn't an SBARINFO loaded that says "use something other than STF", the game will use STF by default. For games other than DOOM, there is no built-in faces so any SBARINFO WAD must include it's own face graphics.

This is how it was before I got involved so I didn't need to change anything on that score, which is why there is nothing about it in the diff :)

Since there is no "" option for DrawMugShot, what I did do was change the code for all texture drawing things (not only faces) so that it does not crash if the named graphics don't exist, but just does not draw anything where the face would be. This way, if somebody wants to make an SBARINFO that can work with all games -- on condition that somewhere in the list of WADs that are loaded at the time there is player class faces (or old-skool SKIN faces) for the player classes that are in use -- they can just specify "STF" anyway; in this case "STF" is just being used as a placeholder for "whatever face applies here".

For this reason, it might be useful to allow an empty <default> parameter (that is, "") to DrawMugShot since it is now a meaningful thing to do.

Re: Player class "face" property without clobbering SBARINFO

by Blzut3 » Sat Apr 05, 2008 8:35 pm

Did this contain code to override "STF" when used in SBarInfo? I don't see anything in the diff. Just the code for morphed players.

Re: Player class "face" property without clobbering SBARINFO

by MartinHowe » Sat Apr 05, 2008 2:04 pm

Cheers, Graf :thumb:

Wiki'd!

Re: Player class "face" property without clobbering SBARINFO

by MartinHowe » Sat Apr 05, 2008 4:53 am

OK, this is the diff for the status face stuff only. Please could this be added?

Re: Player class "face" property without clobbering SBARINFO

by MartinHowe » Sat Apr 05, 2008 2:58 am

Here is a message; mostly for Blutz3, but it's as well to take note generally.

It is clear to me that the morph powerup and improvements need a fair bit of work. I still want to do it, but it's gone way beyond the scope of this thread's original purpose. Furthermore, Graf has indicated in another thread that he believes that cleaning up the restrictions on player classes using things will be messy and complicated. Whatever I think about that, the issue directly affects morphing; however, there is still a lot of useful cleaning up that can (and IMO should) still be done with morphing without going that far and there's no technical reason why morph powerups and improved attacks can't be done without a lot of bloat - you have seen the code.

My point is this thread is nothing to do with status faces any more. I seem to have derailed my own thread; if I were a moderator I should have to ban myself :) Anyway, when I have the time, I will post here for attention of Blutz3 another SVN diff that does nothing except the status bar improvements and includes only those changes to the morphing code necessary to support them. The morphing subsystem cleanup will have to go in another thread.

Re: Player class "face" property without clobbering SBARINFO

by MartinHowe » Thu Apr 03, 2008 6:26 pm

Too late at night to test what I've just compiled (it's 01:22 am here in the UK right now :() but the next version will slightly change the MorphStyle property into a set of flags to make it a bit more extensible and so that what we have now could be added as is, if only for the status faces.

As for suppressing the flash, more flexible would be the ability to specify the morph effect flash actor (including "None"), like with pickup flashes, instead of assuming ye olde teleflash. But that will have to wait until tomorrow becasue I can't keep my eyes open any more. G'Night, all!

Re: Player class "face" property without clobbering SBARINFO

by Xaser » Wed Apr 02, 2008 6:40 pm

Great Scott... net-safe Doom VWEP support? That's nuts, I say! XD

Re: Player class "face" property without clobbering SBARINFO

by Project Shadowcat » Wed Apr 02, 2008 6:35 pm

Ported to DECORATE? Dude, if that were to happen, I know just how to abuse the fuck out of that, and it involves just cycling weapons.

Just think, DoomGuy can actually show what weapon he's carrying if people took the time to actually do that. What say you all? :D
(The faces could be changed but it would not make sense for this specific purpose.)

Re: Player class "face" property without clobbering SBARINFO

by Nash » Wed Apr 02, 2008 12:23 am

Sounds good Martin, but in my opinion if you can extend this enough to allow modders in-game player class morphing, I think that'd be too awesome not to merge into the main code...

At any rate, this is all so awesome already. Keep up the good work!

Re: Player class "face" property without clobbering SBARINFO

by MartinHowe » Tue Apr 01, 2008 5:47 pm

Gez wrote:I think you need to use SlumpEd to turn your status bar graphics into PNG. Then the screenshots won't be that painful to see. :P
Thanks for the tip! I'm looking for a scripted way of doing it, but as a manual hack on the compiled WAD file, SLumpEd works fine.
Nash wrote:Martin, does this little modification of yours allows modders to hack an in-game class change feature by giving the duration time a stupidly large amount (or constantly morphing the player via an ACS loop or something)... ?
At the moment, you can't be morphed twice. I do plan some extra parameters or flags to suppress the sound and/or flash and I suppose there could be an "allow further change" flag too. I'm also thinking of allowing PlayerClass as "" to mean "unmorph if already morphed". The change-morph would likely have to be an internal unmorph then morph again - P_MorphPlayer probably isn't robust enough to modify it for direct morph class change and it would probably take a lot of work.

The morph subsystem uses a Duration of -1 internally to mean "until explicitly unmorphed", but this is only used internally by the PowerMorph class; I guess exposing it in DECORATE could work. Then again, this ought to be available for powerups too.

As for ACS, just giving the powerup should do it; if you want a proper ACS MorphPlayer() function, best ask one of the guys who knows ACS internals well. It'll be a while before this whole thing is good enough for me to ask for it to be added, though because I have a shitload of Real Life right now and because I really want the "what the player can use/pickup" thing defined in a clean way - that's why I didn't just stop at getting faces to work; the original motivation for faces was morphing, then I realised that the morph subsystem was in chaos and needed cleaning up. There is, I hope, a better chance of this mod being accepted into the engine if it gives some real benefit as well as just eyecandy support.

Re: Player class "face" property without clobbering SBARINFO

by Nash » Tue Apr 01, 2008 3:57 pm

Martin, does this little modification of yours allows modders to hack an in-game class change feature by giving the duration time a stupidly large amount (or constantly morphing the player via an ACS loop or something)... ?

Re: Player class "face" property without clobbering SBARINFO

by Gez » Tue Apr 01, 2008 1:59 am

I think you need to use SlumpEd to turn your status bar graphics into PNG. Then the screenshots won't be that painful to see. :P

Re: Player class "face" property without clobbering SBARINFO

by MartinHowe » Mon Mar 31, 2008 6:02 pm

OK, renamed MorphProjectile.MorphTime to MorphProjectile.Duration for general syntax consistency.

Fixed some SBARINFO crashes when specified graphics don't exist. Running DOOM HUDs with HeXen is a strange thing to do but although one cannot expect them to work properly, they most definitely should not crash the engine; instead the missing graphics simply aren't displayed.

With the above applied, and using my goodguyz mod, I can now do the holy grail of weird doom modding - Bombay 72 in HeXen!!!!

Increment/SAS/SBS Training Manual Section 6.6.6:
Don't do drugs before a mission. They turn you into a giant cat and your vision is all f***ed up! Got that Soldier!?!?!
Image

Re: Player class "face" property without clobbering SBARINFO

by MartinHowe » Sun Mar 30, 2008 2:22 am

Nash wrote:Question... what makes the property MorphTime and the existing Duration property different from each other?
The existing Duration property only exists in PowerupGiver, it didn't exist in MorphProjectile; MorphTime is just MorphProjectile's name for Duration, though in hindsight, perhaps MorphTime should be called Duration for the sake of consistency. Since this whole thing hasn't been accepted yet (assuming that Randy/Graf have noticed it) there's still time to fix syntax and other deficiencies.

Top