From a1d43b4ab6e365c3f16528573017a183e693f06a Mon Sep 17 00:00:00 2001
From: Dominic Masters <dominic@domsplace.com>
Date: Sat, 15 Jul 2023 20:34:32 -0700
Subject: [PATCH] Working on Prologue 4

---
 assets/games/liminal/scenes/SceneInitial.xml  |   2 +-
 .../liminal/scenes/prologue/CMakeLists.txt    |   3 +-
 .../scenes/prologue/ScenePrologue4.xml        | 134 ++++++++++++++++++
 .../liminal/scenes/prologue/ScenePrologue4xml |  72 ----------
 src/dawntools/util/XmlParser.hpp              |   2 +-
 5 files changed, 138 insertions(+), 75 deletions(-)
 create mode 100644 assets/games/liminal/scenes/prologue/ScenePrologue4.xml
 delete mode 100644 assets/games/liminal/scenes/prologue/ScenePrologue4xml

diff --git a/assets/games/liminal/scenes/SceneInitial.xml b/assets/games/liminal/scenes/SceneInitial.xml
index f6877bfa..b3d73c7b 100644
--- a/assets/games/liminal/scenes/SceneInitial.xml
+++ b/assets/games/liminal/scenes/SceneInitial.xml
@@ -1,5 +1,5 @@
 <vnscene name="SceneInitial" extend="scenes/SceneMonologue">
   <events>
-    <scene-change scene="vnscenes/ScenePrologue3" />
+    <scene-change scene="vnscenes/ScenePrologue4" />
   </events>
 </vnscene>
\ No newline at end of file
diff --git a/assets/games/liminal/scenes/prologue/CMakeLists.txt b/assets/games/liminal/scenes/prologue/CMakeLists.txt
index 8fa8b6bd..fb5eb83a 100644
--- a/assets/games/liminal/scenes/prologue/CMakeLists.txt
+++ b/assets/games/liminal/scenes/prologue/CMakeLists.txt
@@ -6,4 +6,5 @@
 tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/ScenePrologue0.xml)
 tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/ScenePrologue1.xml)
 tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/ScenePrologue2.xml)
-tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/ScenePrologue3.xml)
\ No newline at end of file
+tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/ScenePrologue3.xml)
+tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/ScenePrologue4.xml)
\ No newline at end of file
diff --git a/assets/games/liminal/scenes/prologue/ScenePrologue4.xml b/assets/games/liminal/scenes/prologue/ScenePrologue4.xml
new file mode 100644
index 00000000..bf010fc9
--- /dev/null
+++ b/assets/games/liminal/scenes/prologue/ScenePrologue4.xml
@@ -0,0 +1,134 @@
+<vnscene name="ScenePrologue4" extend="scenes/SceneStandard">
+  <events>
+    <set-font font="font_main" size="32" />
+
+    <text>
+      <string lang="en">This is my world.</string>
+    </text>
+
+    <text>
+      <string lang="en">I stroll through the corridors and they worship me. Starry-eyed whispers; flushed faces as I pass; gazes sloshing with so much awe.</string>
+    </text>
+
+    <choices key="love-them">
+      <title>
+        <string lang="en">They love me.</string>
+      </title>
+
+      <choice value="love">
+        <string lang="en">You love them.</string>
+      </choice>
+    </choices>
+
+    <choices key="smile-back">
+      <title>
+        <string lang="en">"Oh my gosh, hi!"</string>
+      </title>
+
+      <choice value="smile">
+        <string lang="en">Smile back.</string>
+      </choice>
+
+      <choice value="dont">
+        <string lang="en">Don't.</string>
+      </choice>
+    </choices>
+
+    <if key="smile-back" value="smile">
+      <text>
+        <string lang="en"><font style="italics">My mouth tugs in a smile. The student looks like she'll faint. That's funny.</font></string>
+      </text>
+    </if>
+    <if key="smile-back" value="dont">
+      <text>
+        <string lang="en"><font style="italics">She'll be just as obsessed with me. If not more.</font></string>
+      </text>
+    </if>
+
+    <choices key="love-dress">
+      <title>
+        <string lang="en">I love your dress!</string>
+      </title>
+
+      <choice value="thank-you">
+        <string lang="en">Thank you, it's designer</string>
+      </choice>
+
+      <choice value="love-yours-too">
+        <string lang="en">I love yours too.</string>
+      </choice>
+    </choices>
+    
+    <if key="love-dress" value="thank-you">
+      <text>
+        <string lang="en"><font style="italics">The girl's eyes widen to extraordinary proportions. "Whoa", she whispers.</font></string>
+      </text>
+    </if>
+    <if key="love-dress" value="love-yours-too">
+      <text>
+        <string lang="en"><font style="italics">It's cute... to an extent. Not as cute as mine, but let's be honest, here: nobody can reach my level.</font></string>
+      </text>
+    </if>
+
+    <choices key="interview">
+      <title>
+        <string lang="en">Ethereality! Can I interview you for the school newspaper? Final edition, we're <font style="italics">sure</font> this one's gonna be the bomb!</string>
+      </title>
+
+      <choice value="help-her-out">
+        <string lang="en">Help her out. Can't hurt to have a few extra votes.</string>
+      </choice>
+
+      <choice value="dont">
+        <string lang="en">Don't. Why waste your time?</string>
+      </choice>
+    </choices>
+
+    <if key="interview" value="help-her-out">
+      <title>
+        <string lang="en"><font style="italics">"Of course", I tell the Newspaper Girl. "I'd love to be interviewed. This is about my Prom campaign, right?"</font></string>
+      </title>
+      <title>
+        <string lang="en"><font style="italics">"Oh, yes!" Newspaper Girl grins. "You're the star, Ethereality. What else will it be about?"</font></string>
+      </title>
+    </if>
+    <if key="interview" value="dont">
+      <title>
+        <string lang="en"><font style="italics">"Sorry", I say, offering a slight smile. It'll feel consolatory enough. "It's Prom Day."</font></string>
+      </title>
+      <title>
+        <string lang="en"><font style="italics">"Oh, yes!" Newspaper Girl says. "I'm so sorry, of course you're busy. You're going to shine, Eth!"</font></string>
+      </title>
+    </if>
+
+    <text>
+      <string lang="en">They would die for me if I called for it.</string>
+    </text>
+
+    <text>
+      <string lang="en">(They didn't, though, when a bucket tethered above my head. They watched the <font style="italics">thunk</font>. They gasped when I hit the stage, when guts made a laurel around my neck, when the blood pulsated and drip, <font style="italics">drip</font>, dripped...)</string>
+    </text>
+
+    <text>
+      <string lang="en">
+        No.
+        They would die.
+        For me.
+        If I called for it.
+      </string>
+    </text>
+
+    <text>
+      <string lang="en">It's my day. Today is Prom Day. <font style="strike">(Wasn't yesterday?)</font> I am pristine and they know it. They have seen my face on my campaign posters, seen what I would look like with a crown on my head.</string>
+    </text>
+
+    <text>
+      <string lang="en">When Prom Night begins the ballot, they will vote for me.</string>
+    </text>
+
+    <text>
+      <string lang="en">Thank god for that.</string>
+    </text>
+      
+  </events>
+</vnscene>
\ No newline at end of file
diff --git a/assets/games/liminal/scenes/prologue/ScenePrologue4xml b/assets/games/liminal/scenes/prologue/ScenePrologue4xml
deleted file mode 100644
index 0642b556..00000000
--- a/assets/games/liminal/scenes/prologue/ScenePrologue4xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<vnscene name="ScenePrologue3" extend="scenes/SceneStandard">
-  <events>
-    <set-font font="font_main" size="32" />
-
-    <text>
-      <string lang="en">This is my world.</string>
-    </text>
-
-    <text>
-      <string lang="en">I stroll through the corridors and they worship me. Starry-eyed whispers; flushed faces as I pass; gazes sloshing with so much awe.</string>
-    </text>
-
-    <choices key="love-them">
-      <title>
-        <string lang="en">They love me.</string>
-      </title>
-
-      <choice>
-        <string lang="en">You love them.</string>
-      </choice>
-    </choices>
-
-    <choices key="smile-back">
-      <title>
-        <string lang="en">"Oh my gosh, hi!"</string>
-      </title>
-
-      <choice value="smile">
-        <string lang="en">Smile back.</string>
-      </choice>
-
-      <choice value="dont">
-        <string lang="en">Don't.</string>
-      </choice>
-    </choices>
-
-    <!--
-      Angelwood High. 
-      This is my world. 
-      I stroll through the corridors and they worship me. Starry-eyed whispers; flushed faces as I pass; gazes sloshing with so much awe. They love me.
-      Choice:
-      You love them. 
-      "Oh my gosh, hi!"
-      Choice:
-      Smile back. - My mouth tugs in a smile. The student looks like she'll faint. That's funny.
-      Don't. - She'll be just as obsessed with me. If not more. 
-      "I love your dress!"
-      Choice:
-      "Thank you, it's designer." - The girl's eyes widen to extraordinary proportions. "Whoa," she whispers. 
-      "I love yours too." - It's cute... to an extent. Not as cute as mine, but let's be honest, here: nobody can reach my level. 
-      "Ethereality! Can I interview you for the school newspaper? Final edition, we're sure this one's gonna be the bomb!"
-      Choice:
-      Help her out. Can't hurt to have a few extra votes. - "Of course," I tell Newspaper Girl. "I'd love to be interviewed. This is about my Prom campaign, right?"
-
-
-      "Oh, yes!" Newspaper Girl grins. "You're the star, Ethereality. What else will it be about?"
-
-      Don't. Why waste your time? - "Sorry," I say, offering a slight smile. It'll feel consolatory enough. "It's Prom Day." 
-      "Oh, yes!" Newspaper Girl says. "I'm so sorry, of course you're busy. You're going to shine, Eth!"
-      They would die for me if I called for it. 
-      (They didn't, though, when a bucket tethered above my head. They watched the thunk. They gasped when I hit the stage, when guts made a laurel around my neck, when the blood pulsated and drip, drip, dripped...)
-      No.
-      They would die.
-      For me.
-      If I called for it. 
-      It's my day. Today is Prom Day. (Wasn't yesterday?) I am pristine and they know it. They have seen my face on my campaign posters, seen what I would look like with a crown on my head. 
-      When Prom Night begins the ballot, they will vote for me. 
-      Thank god for that. 
-
-    -->
-  </events>
-</vnscene>
\ No newline at end of file
diff --git a/src/dawntools/util/XmlParser.hpp b/src/dawntools/util/XmlParser.hpp
index 5f007b71..71acbe42 100644
--- a/src/dawntools/util/XmlParser.hpp
+++ b/src/dawntools/util/XmlParser.hpp
@@ -83,7 +83,7 @@ namespace Dawn {
           auto s = *itRequired;
           auto attr = xml->attributes.find(s);
           if(attr == xml->attributes.end()) {
-            std::cout << "Missing required attribute \"" << s << "\"" << std::endl;
+            std::cout << "Missing required attribute \"" << s << "\" on node \"" << xml->node << "\"" << std::endl;
             return 1;
           }
           values[s] = attr->second;