DEADSOFTWARE

gl: fix barrels
authorDeaDDooMER <deaddoomer@deadsoftware.ru>
Tue, 21 Feb 2023 16:25:30 +0000 (19:25 +0300)
committerDeaDDooMER <deaddoomer@deadsoftware.ru>
Fri, 9 Jun 2023 09:19:33 +0000 (12:19 +0300)
src/game/renders/opengl/r_map.pas

index 992d8687a3194d9c15d5dc17b98f7773001117d7..d58daee2ce5516c22223cf3573623312d73f24ec 100644 (file)
@@ -753,16 +753,20 @@ implementation
   end;
 
   procedure r_Map_DrawMonster (constref mon: TMonster);
-    var m, a, xx, yy, dx, dy: Integer; d: TDirection; flip: Boolean; t: TGLMultiTexture;
+    var m, a, xx, yy, dx, dy: Integer; d, da: TDirection; flip: Boolean; t: TGLMultiTexture;
   begin
     m := mon.MonsterType;
     a := mon.MonsterAnim;
     d := mon.GameDirection;
 
+    (* hack: barrel tracks player, fix it in game logic *)
+    if m = MONSTER_BARREL then d := TDirection.D_LEFT;
+
     r_Common_GetObjectPos(mon.obj, xx, yy);
     if r_Map_GetMonsterTexture(m, a, d, t, dx, dy, flip) then
     begin
-      r_Draw_MultiTextureRepeat(t, mon.DirAnim[a, d], false, xx + dx, yy + dy, t.width, t.height, flip, 255, 255, 255, 255, false);
+      da := mon.GameDirection;
+      r_Draw_MultiTextureRepeat(t, mon.DirAnim[a, da], false, xx + dx, yy + dy, t.width, t.height, flip, 255, 255, 255, 255, false);
     end;
     if DebugFrames then
     begin