DEADSOFTWARE

render: draw touch controls via render
[d2df-sdl.git] / src / game / g_monsters.pas
index b97e48dec90db625917302dfb22e9bd6687dc8b9..97152525e5c4d7e688a5d433851128124f57bde4 100644 (file)
@@ -521,9 +521,12 @@ var
 implementation
 
 uses
+  {$IFDEF ENABLE_MENU}
+    g_menu,
+  {$ENDIF}
   e_log, g_sound, g_gfx, g_player, g_game,
   g_weapons, g_triggers, g_items, g_options,
-  g_console, g_map, Math, g_menu, wadreader,
+  g_console, g_map, Math, wadreader,
   g_language, g_netmsg, idpool, utils, xstreams;
 
 
@@ -1660,7 +1663,7 @@ begin
     FAnim[a, TDirection.D_LEFT] := TAnimationState.Create(ANIMTABLE[a].loop, MONSTER_ANIMTABLE[MonsterType].AnimSpeed[a], MONSTER_ANIMTABLE[MonsterType].AnimCount[a]);
   end;
   if MonsterType = MONSTER_VILE then
-    vilefire := TAnimationState.Create(True, 2, 0); // !!! len
+    vilefire := TAnimationState.Create(True, 2, 8);
 end;
 
 function TMonster.Damage(aDamage: Word; VelX, VelY: Integer; SpawnerUID: Word; t: Byte): Boolean;
@@ -4139,7 +4142,7 @@ begin
   anim := (vilefire <> nil);
   utils.writeBool(st, anim);
   // Если есть - сохраняем:
-  if anim then vilefire.SaveState(st);
+  if anim then vilefire.SaveState(st, 0, False);
   // Анимации
   for i := ANIM_SLEEP to ANIM_PAIN do
   begin
@@ -4147,12 +4150,12 @@ begin
     anim := (FAnim[i, TDirection.D_LEFT] <> nil);
     utils.writeBool(st, anim);
     // Если есть - сохраняем
-    if anim then FAnim[i, TDirection.D_LEFT].SaveState(st);
+    if anim then FAnim[i, TDirection.D_LEFT].SaveState(st, 0, False);
     // Есть ли правая анимация
     anim := (FAnim[i, TDirection.D_RIGHT] <> nil);
     utils.writeBool(st, anim);
     // Если есть - сохраняем
-    if anim then FAnim[i, TDirection.D_RIGHT].SaveState(st);
+    if anim then FAnim[i, TDirection.D_RIGHT].SaveState(st, 0, False);
   end;
 end;
 
@@ -4160,8 +4163,8 @@ end;
 procedure TMonster.LoadState (st: TStream);
 var
   i: Integer;
-  b: Byte;
-  anim: Boolean;
+  b, alpha: Byte;
+  anim, blending: Boolean;
 begin
   assert(st <> nil);
 
@@ -4221,7 +4224,7 @@ begin
   if anim then
   begin
     Assert(vilefire <> nil, 'TMonster.LoadState: no vilefire anim');
-    vilefire.LoadState(st);
+    vilefire.LoadState(st, alpha, blending);
   end;
   // Анимации
   for i := ANIM_SLEEP to ANIM_PAIN do
@@ -4232,7 +4235,7 @@ begin
     if anim then
     begin
       Assert(FAnim[i, TDirection.D_LEFT] <> nil, 'TMonster.LoadState: no '+IntToStr(i)+'_left anim');
-      FAnim[i, TDirection.D_LEFT].LoadState(st);
+      FAnim[i, TDirection.D_LEFT].LoadState(st, alpha, blending);
     end;
     // Есть ли правая анимация
      anim := utils.readBool(st);
@@ -4240,7 +4243,7 @@ begin
     if anim then
     begin
       Assert(FAnim[i, TDirection.D_RIGHT] <> nil, 'TMonster.LoadState: no '+IntToStr(i)+'_right anim');
-      FAnim[i, TDirection.D_RIGHT].LoadState(st);
+      FAnim[i, TDirection.D_RIGHT].LoadState(st, alpha, blending);
     end;
   end;
   // update cache