mirror of https://github.com/marrub--/zscript-doc
140 lines
2.8 KiB
Markdown
140 lines
2.8 KiB
Markdown
# PSprite
|
|
|
|
A **P**layer **Sprite**, paradoxically, is not the player themself, but the
|
|
sprite *within their view*, such as their weapon. PSprites are arbitrarily
|
|
layered by number, somewhat similar to `HUDMessage`s. They are drawn ordered
|
|
from lowest to highest.
|
|
|
|
The predefined layers are:
|
|
|
|
| Name | Value | Description |
|
|
| ---- | :---: | ----------- |
|
|
| `PSprite.Flash` | `1000` | The layer used by `A_GunFlash` for gun flashes. |
|
|
| `PSprite.StrifeHands` | `-1` | The hands brought up by `A_ItBurnsItBurns` when the player in Strife dies of fire. |
|
|
| `PSprite.TargetCenter` | `int.Max - 2` | The middle of the targeting system view in Strife. |
|
|
| `PSprite.TargetLeft` | `int.Max - 1` | The left side of the targeting system view in Strife. |
|
|
| `PSprite.TargetRight` | `int.Max` | The right side of the targeting system view in Strife. |
|
|
| `PSprite.Weapon` | `1` | The default layer for all weapons. |
|
|
|
|
```
|
|
class PSprite : Object play
|
|
{
|
|
readonly State CurState;
|
|
readonly int ID;
|
|
readonly PSprite Next;
|
|
readonly PlayerInfo Owner;
|
|
|
|
double Alpha;
|
|
Actor Caller;
|
|
bool FirstTic;
|
|
int Frame;
|
|
double OldX;
|
|
double OldY;
|
|
bool ProcessPending;
|
|
spriteid Sprite;
|
|
int Tics;
|
|
double X;
|
|
double Y;
|
|
|
|
bool bAddBob;
|
|
bool bAddWeapon;
|
|
bool bCVarFast;
|
|
bool bFlip;
|
|
bool bPowDouble;
|
|
|
|
void SetState(State newstate, bool pending = false);
|
|
void Tick();
|
|
}
|
|
```
|
|
|
|
### `CurState`
|
|
|
|
TODO
|
|
|
|
### `ID`
|
|
|
|
TODO
|
|
|
|
### `Next`
|
|
|
|
TODO
|
|
|
|
### `Owner`
|
|
|
|
TODO
|
|
|
|
### `Alpha`
|
|
|
|
The amount of translucency of the PSprite, range 0-1 inclusive.
|
|
|
|
### `Caller`
|
|
|
|
TODO
|
|
|
|
### `FirstTic`
|
|
|
|
TODO
|
|
|
|
### `Frame`
|
|
|
|
Frame number of the sprite.
|
|
|
|
### `OldX`
|
|
|
|
TODO
|
|
|
|
### `OldY`
|
|
|
|
TODO
|
|
|
|
### `ProcessPending`
|
|
|
|
TODO
|
|
|
|
### `Sprite`
|
|
|
|
The sprite to display on this layer.
|
|
|
|
### `Tics`
|
|
|
|
The number of game ticks before the next state takes over.
|
|
|
|
### `X`
|
|
|
|
The offset from the weapon's normal resting position on the horizontal axis.
|
|
|
|
### `Y`
|
|
|
|
The offset from the weapon's normal resting position on the vertical axis. Note
|
|
that `32` is the real resting position because of `A_Raise`.
|
|
|
|
### `bAddBob`
|
|
|
|
Adds the weapon's bobbing to this layer's offset.
|
|
|
|
### `bAddWeapon`
|
|
|
|
Adds the weapon layer's offsets to this layer's offset.
|
|
|
|
### `bCVarFast`
|
|
|
|
Layer will respect `sv_fastweapons`.
|
|
|
|
### `bFlip`
|
|
|
|
Flips the weapon visually horizontally.
|
|
|
|
### `bPowDouble`
|
|
|
|
Layer will respect `PowerDoubleFiringSpeed`.
|
|
|
|
### `SetState`
|
|
|
|
TODO
|
|
|
|
### `Tick`
|
|
|
|
Called by `PlayerPawn::TickPSprites` to advance the frame.
|
|
|
|
<!-- EOF -->
|