diff --git a/data/.wolf3d/N3Ddata.cdogscpn/character_classes.json b/data/.wolf3d/N3Ddata.cdogscpn/character_classes.json index 50551a380..b7c707645 100644 --- a/data/.wolf3d/N3Ddata.cdogscpn/character_classes.json +++ b/data/.wolf3d/N3Ddata.cdogscpn/character_classes.json @@ -1,6 +1,24 @@ { "Version": 2, "Characters": [ + { + "Name": "Noah", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Sounds": "man", + "BloodColor": "0066ff" + }, + { + "Name": "Naamah", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/lady" + }, + "Sounds": "woman", + "BloodColor": "0066ff" + }, { "Name": "Sheep", "HeadPics": { @@ -9,7 +27,8 @@ }, "Body": "dog", "Sounds": "sheep", - "Corpse": "dead_guard" + "Corpse": "sheep_sleep", + "BloodColor": "00000000" }, { "Name": "Goat", @@ -19,7 +38,9 @@ }, "Body": "dog", "Sounds": "sheep", - "Footsteps": "dog" + "Footsteps": "dog", + "Corpse": "sheep_sleep", + "BloodColor": "00000000" }, { "Name": "SS", diff --git a/data/.wolf3d/N3Ddata.cdogscpn/characters.json b/data/.wolf3d/N3Ddata.cdogscpn/characters.json index 0f233ae19..41f7dcd32 100644 --- a/data/.wolf3d/N3Ddata.cdogscpn/characters.json +++ b/data/.wolf3d/N3Ddata.cdogscpn/characters.json @@ -1,7 +1,7 @@ { "Version": 14, "Characters": [{ - "Class": "Jones", + "Class": "Noah", "PlayerTemplateName": "Noah", "FacehairType": "beard", "Skin": "ffb26aff", @@ -289,7 +289,7 @@ "actionDelay": 40 }, { - "Class": "Lady", + "Class": "Naamah", "PlayerTemplateName": "Naamah", "HairType": "long", "Skin": "ffb26aff", @@ -312,7 +312,7 @@ "actionDelay": 15 }, { - "Class": "Jones", + "Class": "Noah", "PlayerTemplateName": "Utnapishtim", "HairType": "ponytail", "FacehairType": "dutch", @@ -336,7 +336,7 @@ "actionDelay": 15 }, { - "Class": "Jones", + "Class": "Noah", "PlayerTemplateName": "Ziusudra", "HairType": "long", "FacehairType": "beard", diff --git a/data/.wolf3d/N3Ddata.cdogscpn/graphics/sheep_sleep.png b/data/.wolf3d/N3Ddata.cdogscpn/graphics/sheep_sleep.png new file mode 100644 index 000000000..06d683e94 Binary files /dev/null and b/data/.wolf3d/N3Ddata.cdogscpn/graphics/sheep_sleep.png differ diff --git a/data/.wolf3d/N3Ddata.cdogscpn/map_objects.json b/data/.wolf3d/N3Ddata.cdogscpn/map_objects.json index 784ce7d67..7181db8be 100644 --- a/data/.wolf3d/N3Ddata.cdogscpn/map_objects.json +++ b/data/.wolf3d/N3Ddata.cdogscpn/map_objects.json @@ -288,6 +288,15 @@ "Offset": [-8, -11], "Health": 0, "Flags": ["OnWall"] + }, + { + "Name": "sheep_sleep", + "Pic": { + "Type": "Normal", + "Pic": "sheep_sleep" + }, + "Health": 0, + "DrawBelow": true } ] } diff --git a/src/cdogs/actors.c b/src/cdogs/actors.c index 9da0aa0f9..bd7d2f767 100644 --- a/src/cdogs/actors.c +++ b/src/cdogs/actors.c @@ -2246,6 +2246,11 @@ static void ActorAddBloodSplatters( const GoreAmount ga = ConfigGetEnum(&gConfig, "Graphics.Gore"); if (ga == GORE_NONE) return; + const color_t bloodColor = ActorGetCharacter(a)->Class->BloodColor; + if (bloodColor.a == 0) + { + return; + } // Emit blood based on power and gore setting int bloodPower = power * 2; @@ -2281,7 +2286,7 @@ static void ActorAddBloodSplatters( ap.Angle = NAN; ap.Z = 10; ap.Vel = vel; - ap.Mask = ActorGetCharacter(a)->Class->BloodColor; + ap.Mask = bloodColor; EmitterStart(em, &ap); switch (ga) {