From f43dc9d92583fec7e56b28ec3ddc1f2aa0b8e214 Mon Sep 17 00:00:00 2001
From: Christoph Oelckers <coelckers@users.noreply.github.com>
Date: Tue, 29 Nov 2022 17:01:08 +0100
Subject: [PATCH] - Duke: fixed Jibs animation and scale.

---
 source/games/duke/src/flags_r.cpp               | 2 +-
 source/games/duke/src/gamedef.cpp               | 2 +-
 source/games/duke/src/namelist_d.h              | 7 +++++++
 source/games/duke/src/namelist_r.h              | 7 +++++++
 wadsrc/static/zscript/games/duke/actors/jibs.zs | 7 ++++++-
 5 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/source/games/duke/src/flags_r.cpp b/source/games/duke/src/flags_r.cpp
index 8a18b733a..5acedea32 100644
--- a/source/games/duke/src/flags_r.cpp
+++ b/source/games/duke/src/flags_r.cpp
@@ -250,7 +250,7 @@ void initactorflags_r()
 	TILE_EGG = EGG;
 
 	gs.firstdebris = SCRAP6;
-	gs.gutsscale = 0.25;
+	gs.gutsscale = 0.125;
 }
 
 END_DUKE_NS
diff --git a/source/games/duke/src/gamedef.cpp b/source/games/duke/src/gamedef.cpp
index f8447cea0..4fbf9632f 100644
--- a/source/games/duke/src/gamedef.cpp
+++ b/source/games/duke/src/gamedef.cpp
@@ -3187,7 +3187,7 @@ void loadcons()
 	gs.shrinkerblastradius = 650;
 	gs.gravity = 0.6875;
 	gs.tripbombblastradius = 3880;
-	gs.gutsscale = 0.125;
+	gs.gutsscale = 0.5;
 	gs.playerheight = 40;
 	gs.displayflags = DUKE3D_NO_WIDESCREEN_PINNING;
 
diff --git a/source/games/duke/src/namelist_d.h b/source/games/duke/src/namelist_d.h
index c53145edc..32edce6da 100644
--- a/source/games/duke/src/namelist_d.h
+++ b/source/games/duke/src/namelist_d.h
@@ -480,6 +480,13 @@ x(JIBS5, 2265)
 x(BURNING, 2270)
 x(FIRE, 2271)
 x(JIBS6, 2286)
+x(JIBS6A, 2287)
+x(JIBS6B, 2288)
+x(JIBS6C, 2289)
+x(JIBS6D, 2290)
+x(JIBS6E, 2291)
+x(JIBS6F, 2292)
+x(JIBS6G, 2293)
 x(BLOODSPLAT1, 2296)
 x(BLOODSPLAT3, 2297)
 x(BLOODSPLAT2, 2298)
diff --git a/source/games/duke/src/namelist_r.h b/source/games/duke/src/namelist_r.h
index 92c45df18..3794b0e75 100644
--- a/source/games/duke/src/namelist_r.h
+++ b/source/games/duke/src/namelist_r.h
@@ -477,6 +477,13 @@ x(BURNING, 1494)
 x(FIRE, 1495)
 x(USERWEAPON, 1510)
 x(JIBS6, 1515)
+x(JIBS6A, 1516)
+x(JIBS6B, 1517)
+x(JIBS6C, 1518)
+x(JIBS6D, 1519)
+x(JIBS6E, 1520)
+x(JIBS6F, 1521)
+x(JIBS6G, 1522)
 x(BLOODSPLAT1, 1525)
 x(BLOODSPLAT3, 1526)
 x(BLOODSPLAT2, 1527)
diff --git a/wadsrc/static/zscript/games/duke/actors/jibs.zs b/wadsrc/static/zscript/games/duke/actors/jibs.zs
index 64d2f8a9e..43a2952a2 100644
--- a/wadsrc/static/zscript/games/duke/actors/jibs.zs
+++ b/wadsrc/static/zscript/games/duke/actors/jibs.zs
@@ -50,7 +50,7 @@ class DukeJibs1 : DukeActor
 	default
 	{
 		statnum STAT_MISC;
-		spriteset "JIBS1", "JIBS6";
+		spriteset "JIBS1", "JIBS6", "JIBS6A", "JIBS6B", "JIBS6C", "JIBS6D", "JIBS6E", "JIBS6F", "JIBS6G";
 	}
 	
 	override void Tick()
@@ -184,6 +184,10 @@ class DukeJibs1 : DukeActor
 		if (Raze.isRRRA() && tspr.pal == 19)
 			tspr.shade = -127;
 	
+		if (spritesetindex == 1)
+		{
+			tspr.SetSpritePic(self, 1 + self.temp_data[0]);
+		}
 		if (tspr.pal == 6) tspr.shade = -120;
 
 		if (self.sector.shadedsector == 1)
@@ -256,6 +260,7 @@ class DukeJibs6 : DukeJibs1
 	override void Initialize()
 	{
 		if (Raze.isRR()) self.scale *= 0.5; // only RR needs this.
+		self.setSpriteSetImage(1);
 	}
 }