Allow FindState from ui context

Remember, just because you request it, that doesn't mean you'll get it.

Moderator: GZDoom Developers

Allow FindState from ui context

Postby AFADoomer » Sun Jun 11, 2017 11:17 am

I'm trying to tweak the PlayerMenu so that I can add a "Portrait" state to my player class and use that for the player animation instead of See or Spawn (because the class uses "####" frames, and you end up with random sprites as your animation).

I'd like to be able to do something like this in the code:
Code: Select allExpand view
    void ExtendedUpdatePlayer(int classnum)
        mPlayerClass = PlayerClasses[classnum];
        mPlayerState = GetDefaultByType (mPlayerClass.Type).FindState("Portrait"); // <---  Obviously doesn't work...
        if (mPlayerState == NULL) { mPlayerState = GetDefaultByType (mPlayerClass.Type).SeeState; }
        if (mPlayerState == NULL) { mPlayerState = GetDefaultByType (mPlayerClass.Type).SpawnState; }
        mPlayerTics = mPlayerState != NULL ? mPlayerState.Tics : -1;

Is there a reason why FindState (as well as some of the other non-modifying functions) can't be made accessible from ui?
User avatar
Joined: 15 Jul 2003

Re: Allow FindState from ui context

Postby Graf Zahl » Sun Jun 11, 2017 11:32 am

It just got overlooked. In general, this should be C/S-safe and accessing too much of the play state is not good - but since the cast call already needs this access anyway an exception can be made here.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Joined: 19 Jul 2003
Location: Germany

Return to Feature Suggestions

Who is online

Users browsing this forum: No registered users and 0 guests