Added GetPlayerInput(int numinput, int ptr = AAPTR_PLAYER1).
- Works exactly like the ACS version, but with pointers instead. The pointer can be anything, so long as it can be identified as a player.
This commit is contained in:
parent
6384e81d0f
commit
85a34bbb88
5 changed files with 142 additions and 25 deletions
|
|
@ -543,6 +543,63 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, GetCVar)
|
|||
return 0;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// GetPlayerInput
|
||||
//
|
||||
// NON-ACTION function that works like ACS's GetPlayerInput.
|
||||
// Takes a pointer as anyone may or may not be a player.
|
||||
//==========================================================================
|
||||
|
||||
DEFINE_ACTION_FUNCTION_PARAMS(AActor, GetPlayerInput)
|
||||
{
|
||||
if (numret > 0)
|
||||
{
|
||||
assert(ret != nullptr);
|
||||
PARAM_SELF_PROLOGUE(AActor);
|
||||
PARAM_INT (inputnum);
|
||||
PARAM_INT_OPT (ptr) { ptr = AAPTR_PLAYER1; }
|
||||
|
||||
AActor *mobj = COPY_AAPTR(self, ptr);
|
||||
|
||||
//Need a player.
|
||||
if (!mobj || !mobj->player)
|
||||
{
|
||||
ret->SetInt(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
player_t *p = mobj->player;
|
||||
int renum = 0;
|
||||
switch (inputnum)
|
||||
{
|
||||
case INPUT_OLDBUTTONS: renum = p->original_oldbuttons; break;
|
||||
case INPUT_BUTTONS: renum = p->original_cmd.buttons; break;
|
||||
case INPUT_PITCH: renum = p->original_cmd.pitch; break;
|
||||
case INPUT_YAW: renum = p->original_cmd.yaw; break;
|
||||
case INPUT_ROLL: renum = p->original_cmd.roll; break;
|
||||
case INPUT_FORWARDMOVE: renum = p->original_cmd.forwardmove; break;
|
||||
case INPUT_SIDEMOVE: renum = p->original_cmd.sidemove; break;
|
||||
case INPUT_UPMOVE: renum = p->original_cmd.upmove; break;
|
||||
|
||||
case MODINPUT_OLDBUTTONS: renum = p->oldbuttons; break;
|
||||
case MODINPUT_BUTTONS: renum = p->cmd.ucmd.buttons; break;
|
||||
case MODINPUT_PITCH: renum = p->cmd.ucmd.pitch; break;
|
||||
case MODINPUT_YAW: renum = p->cmd.ucmd.yaw; break;
|
||||
case MODINPUT_ROLL: renum = p->cmd.ucmd.roll; break;
|
||||
case MODINPUT_FORWARDMOVE: renum = p->cmd.ucmd.forwardmove; break;
|
||||
case MODINPUT_SIDEMOVE: renum = p->cmd.ucmd.sidemove; break;
|
||||
case MODINPUT_UPMOVE: renum = p->cmd.ucmd.upmove; break;
|
||||
|
||||
default: renum = 0; break;
|
||||
}
|
||||
ret->SetInt(renum);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
// __decorate_internal_state__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue