DEADSOFTWARE

models: remove sounds from player model state
[d2df-sdl.git] / src / game / g_playermodel.pas
index 8ffb589787109f0a7ccf680e619b87c4dea97ea4..34fc9e71ef620206bbe9a4eda0a0f21923294519 100644 (file)
@@ -108,14 +108,8 @@ type
     FColor:            TRGB;
     FCurrentAnimation: Byte;
     FAnimState:        TAnimationState;
-    FPainSounds:       TModelSoundArray;
-    FDieSounds:        TModelSoundArray;
-    FSlopSound:        Byte;
     FCurrentWeapon:    Byte;
     FFlag:             Byte;
-    FFlagPoint:        TDFPoint;
-    FFlagAngle:        SmallInt;
-    FFlagAnim:         TAnimation; // !!! TAnimationState
     FFire:             Boolean;
     FFireCounter:      Byte;
     FID:               Integer;
@@ -141,17 +135,10 @@ type
 
   public
     property    Color: TRGB read FColor write FColor;
-
     property    AnimState: TAnimationState read FAnimState;
     property    CurrentAnimation: Byte read FCurrentAnimation;
-
     property    CurrentWeapon: Byte read FCurrentWeapon;
-
     property    Flag: Byte read FFlag;
-    property    FlagAnim: TAnimation read FFlagAnim;
-    property    FlagAngle: SmallInt read FFlagAngle;
-    property    FlagPoint: TDFPoint read FFlagPoint;
-
     property    ID: Integer read FID;
   end;
 
@@ -658,16 +645,8 @@ begin
 
       with PlayerModelsArray[a] do
       begin
-        Result.FPainSounds := PainSounds;
-        Result.FDieSounds := DieSounds;
-        Result.FSlopSound := SlopSound;
-
-        Result.FFlagPoint := FlagPoint;
-        Result.FFlagAngle := FlagAngle;
         Result.FID := a;
-
         Result.ChangeAnimation(A_STAND, True);
-
         Break;
       end;
     end;
@@ -847,33 +826,33 @@ begin
 
   if SoundType = MODELSOUND_PAIN then
   begin
-    if FPainSounds = nil then Exit;
+    if PlayerModelsArray[FID].PainSounds = nil then Exit;
 
-    for a := 0 to High(FPainSounds) do
-      if FPainSounds[a].Level = Level then
+    for a := 0 to High(PlayerModelsArray[FID].PainSounds) do
+      if PlayerModelsArray[FID].PainSounds[a].Level = Level then
       begin
-        SetLength(TempArray, Length(TempArray)+1);
-        TempArray[High(TempArray)] := FPainSounds[a].ID;
+        SetLength(TempArray, Length(TempArray) + 1);
+        TempArray[High(TempArray)] := PlayerModelsArray[FID].PainSounds[a].ID;
       end;
   end
   else
   begin
-    if (Level in [2, 3, 5]) and (FSlopSound > 0) then
+    if (Level in [2, 3, 5]) and (PlayerModelsArray[FID].SlopSound > 0) then
     begin
       g_Sound_PlayExAt('SOUND_MONSTER_SLOP', X, Y);
-      if FSlopSound = 1 then
+      if PlayerModelsArray[FID].SlopSound = 1 then
       begin
         Result := True;
         Exit;
       end;
     end;
-    if FDieSounds = nil then Exit;
+    if PlayerModelsArray[FID].DieSounds = nil then Exit;
 
-    for a := 0 to High(FDieSounds) do
-      if FDieSounds[a].Level = Level then
+    for a := 0 to High(PlayerModelsArray[FID].DieSounds) do
+      if PlayerModelsArray[FID].DieSounds[a].Level = Level then
       begin
-        SetLength(TempArray, Length(TempArray)+1);
-        TempArray[High(TempArray)] := FDieSounds[a].ID;
+        SetLength(TempArray, Length(TempArray) + 1);
+        TempArray[High(TempArray)] := PlayerModelsArray[FID].DieSounds[a].ID;
       end;
     if (TempArray = nil) and (Level = 5) then
     begin
@@ -906,27 +885,14 @@ begin
     FFireCounter := 0
 end;
 
-procedure TPlayerModel.SetFlag(Flag: Byte);
-var
-  tid: DWORD;
-begin
-  FFlag := Flag;
-
-  FFlagAnim.Free();
-  FFlagAnim := nil;
-
-  case Flag of
-    FLAG_RED: g_Frames_Get(tid, 'FRAMES_FLAG_RED');
-    FLAG_BLUE: g_Frames_Get(tid, 'FRAMES_FLAG_BLUE');
-    else Exit;
+  procedure TPlayerModel.SetFlag (Flag: Byte);
+  begin
+    FFlag := Flag
   end;
 
-  FFlagAnim := TAnimation.Create(tid, True, 8);
-end;
-
-  procedure TPlayerModel.SetWeapon(Weapon: Byte);
+  procedure TPlayerModel.SetWeapon (Weapon: Byte);
   begin
-    FCurrentWeapon := Weapon;
+    FCurrentWeapon := Weapon
   end;
 
   function TPlayerModel.GetBlood (): TModelBlood;
@@ -943,8 +909,6 @@ end;
   begin
     if FAnimState <> nil then
       FAnimState.Update;
-    if FFlagAnim <> nil then
-      FFlagAnim.Update;
     if FFireCounter > 0 then
       Dec(FFireCounter)
     else