From 70d6476fd2f9186a0a2080d4039445a28b380915 Mon Sep 17 00:00:00 2001
From: Evan Debenham <Evan@ShatteredPixel.com>
Date: Sun, 29 Mar 2020 17:13:00 -0400
Subject: [PATCH] v0.8.0: added functionality for forced newlines in game log

---
 .../shatteredpixeldungeon/actors/mobs/DwarfKing.java        | 1 -
 .../shatteredpixeldungeon/actors/mobs/Goo.java              | 1 -
 .../shatteredpixeldungeon/actors/mobs/King.java             | 1 -
 .../shatteredpixeldungeon/actors/mobs/Mob.java              | 1 +
 .../shatteredpixeldungeon/actors/mobs/NewDM300.java         | 1 -
 .../shatteredpixeldungeon/actors/mobs/NewTengu.java         | 1 -
 .../shatteredpixeldungeon/actors/mobs/OldDM300.java         | 1 -
 .../shatteredpixeldungeon/actors/mobs/OldTengu.java         | 1 -
 .../shatteredpixeldungeon/actors/mobs/Yog.java              | 1 -
 .../shatteredpixeldungeon/actors/mobs/YogDzewa.java         | 1 -
 .../shatteredpixel/shatteredpixeldungeon/ui/GameLog.java    | 5 +++++
 .../shatteredpixel/shatteredpixeldungeon/utils/GLog.java    | 6 ++++++
 12 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DwarfKing.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DwarfKing.java
index e5c4a45fc..9af7a57c4 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DwarfKing.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/DwarfKing.java
@@ -347,7 +347,6 @@ public class DwarfKing extends Mob {
 			yell(Messages.get(this, "notice"));
 			for (Char ch : Actor.chars()){
 				if (ch instanceof DriedRose.GhostHero){
-					GLog.n("\n");
 					((DriedRose.GhostHero) ch).sayBoss();
 				}
 			}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java
index fc3430835..220cba902 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java
@@ -267,7 +267,6 @@ public class Goo extends Mob {
 			yell(Messages.get(this, "notice"));
 			for (Char ch : Actor.chars()){
 				if (ch instanceof DriedRose.GhostHero){
-					GLog.n("\n");
 					((DriedRose.GhostHero) ch).sayBoss();
 				}
 			}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/King.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/King.java
index 80dd2a123..c4f161614 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/King.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/King.java
@@ -232,7 +232,6 @@ public class King extends Mob {
 			yell(Messages.get(this, "notice"));
 			for (Char ch : Actor.chars()){
 				if (ch instanceof DriedRose.GhostHero){
-					GLog.n("\n");
 					((DriedRose.GhostHero) ch).sayBoss();
 				}
 			}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java
index 1135d067a..3268cdc7a 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java
@@ -720,6 +720,7 @@ public abstract class Mob extends Char {
 	}
 	
 	public void yell( String str ) {
+		GLog.newLine();
 		GLog.n( "%s: \"%s\" ", Messages.titleCase(name()), str );
 	}
 
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewDM300.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewDM300.java
index 0ced1d209..dd50e4232 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewDM300.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewDM300.java
@@ -321,7 +321,6 @@ public class NewDM300 extends Mob {
 			yell(Messages.get(this, "notice"));
 			for (Char ch : Actor.chars()){
 				if (ch instanceof DriedRose.GhostHero){
-					GLog.n("\n");
 					((DriedRose.GhostHero) ch).sayBoss();
 				}
 			}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java
index 8fc072d83..6913dc13f 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java
@@ -305,7 +305,6 @@ public class NewTengu extends Mob {
 				yell(Messages.get(this, "notice_gotcha", Dungeon.hero.name()));
 				for (Char ch : Actor.chars()){
 					if (ch instanceof DriedRose.GhostHero){
-						GLog.n("\n");
 						((DriedRose.GhostHero) ch).sayBoss();
 					}
 				}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/OldDM300.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/OldDM300.java
index 7c776bb91..ed386789e 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/OldDM300.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/OldDM300.java
@@ -174,7 +174,6 @@ public class OldDM300 extends Mob {
 			yell(Messages.get(this, "notice"));
 			for (Char ch : Actor.chars()){
 				if (ch instanceof DriedRose.GhostHero){
-					GLog.n("\n");
 					((DriedRose.GhostHero) ch).sayBoss();
 				}
 			}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/OldTengu.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/OldTengu.java
index 40231d497..4b75f5c7b 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/OldTengu.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/OldTengu.java
@@ -251,7 +251,6 @@ public class OldTengu extends Mob {
 				yell(Messages.get(this, "notice_mine", Dungeon.hero.name()));
 				for (Char ch : Actor.chars()){
 					if (ch instanceof DriedRose.GhostHero){
-						GLog.n("\n");
 						((DriedRose.GhostHero) ch).sayBoss();
 					}
 				}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java
index c23814e94..1cd60032e 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java
@@ -181,7 +181,6 @@ public class Yog extends Mob {
 			yell(Messages.get(this, "notice"));
 			for (Char ch : Actor.chars()){
 				if (ch instanceof DriedRose.GhostHero){
-					GLog.n("\n");
 					((DriedRose.GhostHero) ch).sayBoss();
 				}
 			}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/YogDzewa.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/YogDzewa.java
index d9be7af34..3c4f7281f 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/YogDzewa.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/YogDzewa.java
@@ -369,7 +369,6 @@ public class YogDzewa extends Mob {
 			yell(Messages.get(this, "notice"));
 			for (Char ch : Actor.chars()){
 				if (ch instanceof DriedRose.GhostHero){
-					GLog.n("\n");
 					((DriedRose.GhostHero) ch).sayBoss();
 				}
 			}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/GameLog.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/GameLog.java
index e74b75f3d..94d4d6515 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/GameLog.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/GameLog.java
@@ -57,6 +57,11 @@ public class GameLog extends Component implements Signal.Listener<String> {
 				clear();
 				recreateLines();
 			}
+
+			if (text.equals( GLog.NEW_LINE )){
+				lastEntry = null;
+				continue;
+			}
 			
 			int color = CharSprite.DEFAULT;
 			if (text.startsWith( GLog.POSITIVE )) {
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/utils/GLog.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/utils/GLog.java
index 94be92b69..012f76158 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/utils/GLog.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/utils/GLog.java
@@ -33,8 +33,14 @@ public class GLog {
 	public static final String NEGATIVE		= "-- ";
 	public static final String WARNING		= "** ";
 	public static final String HIGHLIGHT	= "@@ ";
+
+	public static final String NEW_LINE	    = "\n";
 	
 	public static Signal<String> update = new Signal<>();
+
+	public static void newLine(){
+		update.dispatch( NEW_LINE );
+	}
 	
 	public static void i( String text, Object... args ) {