index c2c7d4eb8557e2aadf0a8eee1c032b245baabcdd..4f4d709182bb491668c4f29f5de076ca4e0867e4 100644 (file)
W_POS_NORMAL = 0;
W_POS_UP = 1;
W_POS_DOWN = 2;
+ W_POS_LAST = W_POS_DOWN;
W_ACT_NORMAL = 0;
W_ACT_FIRE = 1;
+ W_ACT_LAST = W_ACT_FIRE;
FLAG_BASEPOINT: TDFPoint = (X:16; Y:43);
type
TWeaponPoints = Array [WP_FIRST + 1..WP_LAST, A_STAND..A_LAST, TDirection.D_LEFT..TDirection.D_RIGHT] of Array of TDFPoint;
- TModelMatrix = Array [TDirection.D_LEFT..TDirection.D_RIGHT, A_STAND..A_LAST] of TAnimationState;
+ TModelMatrix = Array [TDirection.D_LEFT..TDirection.D_RIGHT, A_STAND..A_LAST] of TAnimState;
TModelTextures = Array [TDirection.D_LEFT..TDirection.D_RIGHT, A_STAND..A_LAST] of record
Resource: String;
FDirection: TDirection;
FColor: TRGB;
FCurrentAnimation: Byte;
- FAnimState: TAnimationState;
+ FAnimState: TAnimState;
FCurrentWeapon: Byte;
FFlag: Byte;
FFireCounter: Byte;
public
property Color: TRGB read FColor write FColor;
- property AnimState: TAnimationState read FAnimState;
+ property AnimState: TAnimState read FAnimState;
property CurrentAnimation: Byte read FCurrentAnimation;
property CurrentWeapon: Byte read FCurrentWeapon;
property Flag: Byte read FFlag;
once := FCurrentAnimation in [A_STAND, A_WALK];
speed := PlayerModelsArray[FID].ModelSpeed[FCurrentAnimation];
count := PlayerModelsArray[FID].Anim[FDirection, FCurrentAnimation].Frames;
- FAnimState := TAnimationState.Create(once, speed, count);
+ FAnimState := TAnimState.Create(once, speed, count);
end;
destructor TPlayerModel.Destroy();
begin
- FAnimState.Free;
+ FAnimState.Invalidate;
inherited;
end;
procedure TPlayerModel.Update;
begin
- if FAnimState <> nil then
+ if FAnimState.IsValid() then
FAnimState.Update;
if FFireCounter > 0 then
Dec(FFireCounter)