mirror of https://github.com/marrub--/zscript-doc
140 lines
2.9 KiB
Markdown
140 lines
2.9 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 -->
|