diff --git a/assets/games/liminal/scenes/prologue/CMakeLists.txt b/assets/games/liminal/scenes/prologue/CMakeLists.txt
index 11ec6e10..2696e504 100644
--- a/assets/games/liminal/scenes/prologue/CMakeLists.txt
+++ b/assets/games/liminal/scenes/prologue/CMakeLists.txt
@@ -10,4 +10,5 @@ tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/ScenePrologue3.xml)
tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/ScenePrologue4.xml)
tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/ScenePrologue5.xml)
tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/ScenePrologueSportsField.xml)
-tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/ScenePrologueToilets.xml)
\ No newline at end of file
+tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/ScenePrologueToilets.xml)
+tool_vnscene(${CMAKE_CURRENT_LIST_DIR}/ScenePrologue7.xml)
\ No newline at end of file
diff --git a/assets/games/liminal/scenes/prologue/ScenePrologue7.xml b/assets/games/liminal/scenes/prologue/ScenePrologue7.xml
new file mode 100644
index 00000000..6385f677
--- /dev/null
+++ b/assets/games/liminal/scenes/prologue/ScenePrologue7.xml
@@ -0,0 +1,204 @@
+
+
+
+
+
+ The bell rings. School begins for the very last time in Angelwood High.
+
+
+
+
+ I can't concentrate.
+
+
+
+ “Homosapiens. Our origins were not so far away-”
+
+
+
+ My teacher prattles on. I’m thinking too much again.
+
+
+ (Like usual.)
+
+
+ “— and we’ll be discussing the way the world began.”
+
+
+ I remember this class. I remember the words that will leave Mr. Holden’s lips.
+
+
+ “We were born like this.”
+
+
+ “A female of the species is born with XX chromosomes—”
+
+
+ “XY chromosomes denote a male of the species—”
+
+
+ Why am I doing this again?
+
+
+ I died last night.
+
+
+ I died.
+
+
+ I'm only shocked that I don’t feel the wound pounded in my brain. Where’s the pain that murdered me? Why is it that when I raise my fingers to my head I feel nothing?
+
+
+ (But a phantom of pain whispers by my head. Stays; hisses; peels; breaks me, further and further down. Until my head is good as caved open.)
+
+
+ (Pain isn’t here; and pain wants me to drown.)
+
+
+ I wasn’t dreaming. I died. That’s the only explanation for how I know exactly how today will unfold.
+
+
+ “Such markers are indicators of gender—”
+
+
+ No. Not unfold. I don’t want to die again.
+
+
+ (I won’t die again.)
+
+
+ “— categories which all humans fall into.”
+
+
+ Why am I back?
+
+
+ To win again? I won’t complain. I’ll win Prom Queen a thousand times if I had to, and I’d do it gladly.
+
+
+ To try again?
+
+
+ I don’t want to die again.
+
+
+ “Ethereality? Are you with us?”
+
+
+ I snap to attention. Mr. Holden looks at me expectantly, though not with malice. He knows I'm an Estridge and I'm the kindest girl on earth— supposedly. I wouldn’t ignore his class.
+
+
+ “Yes,” I say. “I’m here.”
+
+
+ “Will you answer my question?” He asks. “What makes a female of the species?”
+
+
+ Mr. Holden smiles, encouraging, as he awaits my answer.
+
+
+ I think about this. I’ve done this before. Don’t I remember my answer?
+
+
+
+
+ "A female species is the..."
+
+
+
+ Nuturing.
+
+
+ Emotional.
+
+
+ Sweet.
+
+
+ Empathetic.
+
+
+ Beautiful.
+
+
+
+
+ Mr. Holden nods. His smile widens. “Ethereality’s right,” he says, and turns to the class again.
+
+
+
+
+ “The ability to nuture is crucial to femininity…”
+
+
+
+
+ “The ability to be emotional is crucial to femininity…”
+
+
+
+
+ “The ability to be sweet is crucial to femininity…”
+
+
+
+
+ “The ability to be empathetic is crucial to femininity…”
+
+
+
+
+ “The ability to be beautiful is crucial to femininity…”
+
+
+
+
+
+ Even if I don’t remember, this has been drilled into me since the beginning of time. It’s easy. Angelwood maintains its same elegy for women.
+
+
+
+ (And the elegy is you.)
+
+
+
+
+ The bell rings. Everyone leaves Biology. In the corridors, they tell me how well I’ve done in class (as if); ask me about tonight, because Prom is all that’s on everyone’s minds and I am the star (blood-streaked.)
+
+
+ I manage to return their hellos and smiles without feeling— too — faint.
+
+
+ Finally the questioning abates and their bodies rush off to their next class. I need to go, too. I can’t miss English, they’ll wonder where I am. But my heart rams in my throat; my chest is sick with heave. I feel like hurling.
+
+
+ (My death keeps coming back. My grace keeps cracking. My body keeps falling. Is it because my descent was always the prettiest of them all?)
+
+
+ I breathe in the corridors.
+
+
+ Who murdered me?
+
+
+ All of Angelwood High adores me. I’ve made sure of the fact. It’s been true since the beginning of time.
+
+
+ Or as close to the beginning of time as it could be. When I turned into a teen and shot up the ranks, with my saunter and my beauty and my smile.
+
+
+ (When I stopped hanging with the wrong people. When I began to be beautiful and lived up to the best ideals.)
+
+
+ ...
+
+
+ (When I started to become perfect.)
+
+
+ There are only a few possibilities. There are only a few that hate me.
+
+
+
+
+
\ No newline at end of file
diff --git a/assets/games/liminal/scenes/prologue/ScenePrologueSportsField.xml b/assets/games/liminal/scenes/prologue/ScenePrologueSportsField.xml
index 32cc78da..5facbce8 100644
--- a/assets/games/liminal/scenes/prologue/ScenePrologueSportsField.xml
+++ b/assets/games/liminal/scenes/prologue/ScenePrologueSportsField.xml
@@ -1,9 +1,107 @@
-
+
-
+
- SF.
+ Craig is my boyfriend. He's throwing down for his football tournament happening in June. He loves me like a King loves his Queen- with worship, reverence, and the stars. He's beyond the golden boy: he glistens.
+
+
+ "Ethy!"
+
+
+ Craig calls. He waves me down as I enter the field.
+
+
+ The whistle screeches; Craig whips his head back to the field. He dashes to the football and scores. His teammates' cheers ring in my ears.
+
+
+ Craig winks as he jogs back. "That was for you."
+
+
+
+ Despite myself, I chuckle.
+
+
+
+
+ "So," he says, "you look beautiful."
+
+
+
+ Thanks.
+
+
+
+ So do you.
+
+
+
+ Duh.
+
+
+
+
+
+ As if I don't know that.
+
+
+
+
+ No harm in a little lie. Especially when it brightens him up like sun-dusk.
+
+
+
+
+ He says what all of Angelwood says. Per usual.
+
+
+
+
+ Craig smiles wide. He holds me close to him and laughs.
+
+
+ "My tournament's soon. You'll be there, yeah?"
+
+
+ He's been talking about his tournament since the school year started. He thinks it's his one ticket out of Angelwood.
+
+
+ As if I won't, Craig.
+
+
+
+ He throws an arm around my shoulders. He kisses my cheek. He holds me
+ tight, squeezes me into his sweat-stained, disgusting body. Laughs, nods
+ to his teammates towering high and hulking, their shoulder pads like
+ soldiers in another life.
+
+
+
+
+ They throw the football at Craig's head. He catches it. I nearly flinch.
+
+
+ It's fine. Fine. You're okay.
+
+
+ He doesn't notice.
+
+
+
+ "See you tonight, Ethy," he says. "I can't wait to see your dress."
+
+
+ Craig kisses me in full view of his teammates. They roar, clap Craig on the shoulder and drag him back.
+
+
+ He wipes his mouth clean and grins. Then he throws the football, and all the boys begin to sprint.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/assets/games/liminal/scenes/prologue/ScenePrologueToilets.xml b/assets/games/liminal/scenes/prologue/ScenePrologueToilets.xml
index 92dbc349..8515b719 100644
--- a/assets/games/liminal/scenes/prologue/ScenePrologueToilets.xml
+++ b/assets/games/liminal/scenes/prologue/ScenePrologueToilets.xml
@@ -1,9 +1,140 @@
-
+
-
+
+
+
+
+ On my return, I pass him by the lockers.
+
+
+
+
+ He's by the lockers.
+
+
- TEST
+ Ronin Beaufort. That's his name. I haven't seen him much around Angelwood: he was homeschooled throughout middle school. Came back again for his final years in Angelwood High.
+
+
+ Boys pass by Ronin, entering the toilets and out again. Ronin looks at me and only me.
+
+
+
+ ...
+
+
+
+ He doesn't need to watch me.
+
+
+ I don't need to look at him.
+
+
+ But he calls.
+
+
+ "Stranger."
+
+
+ And I stop.
+
+
+ "And you are?"
+
+
+
+ He smiles thinly.
+
+
+
+ "Ronin. Beaufort. But you knew that, Ther."
+
+
+ Jesus.
+
+
+ I roll my eyes.
+
+
+ I stroll towards Ronin. Head high, back straight. I'm goddess of this school and he's- an a-hole of nothing.
+
+
+ "I don't know who you are."
+
+
+ It's a lie. Of course I know who he is.
+
+
+ Ave Beaufort's brother, in all of his edgy glory.
+
+
+ Of course I know.
+
+
+ The boys go in and out of the toilets, like a cycle of flies. Going in, buzzing out. Hovering: mildly intrigued by whatever this confrontation is. They tend to want to know what Ethereality Estridge is doing.
+
+
+ "Sure you don't," Ronin says. "I don't know who you are, either."
+
+
+ Ugh.
+
+
+ "Somethin' wrong, Ther?"
+
+
+
+ Somethin' wrong, Ther?"
+
+
+
+
+ Asshole.
+
+
+
+ You.
+
+
+
+ Nothing.
+
+
+
+
+
+
+ "Direct," Ronin says. "I like it."
+
+
+
+
+ "Nothing, nothing," Ronin says. "That goes knockin'." He raps his fist against his skull and grins.
+
+
+
+
+ Get out of my sight.
+
+
+ Ronin gets out of my sight. He strolls into the boys' toilets. His boots clack with him, echoing through the floorboards. Each crack is as sharp as a bullet.
+
+
+ I exhale.
+
+
+ Thank Christ. I wouldn't know how to deal with him, otherwise.
+
+
+
+
+ I need to get out of here. I need to find Craig.
+
+
+
+
+
\ No newline at end of file
diff --git a/lib/libarchive b/lib/libarchive
index 2ba3d927..ee16885f 160000
--- a/lib/libarchive
+++ b/lib/libarchive
@@ -1 +1 @@
-Subproject commit 2ba3d92706384be14cd376734f3f7ebe5648591e
+Subproject commit ee16885fe6278344854db4174ebc276c307947aa
diff --git a/src/dawn/games/vn/events/VNChoiceEvent.hpp b/src/dawn/games/vn/events/VNChoiceEvent.hpp
index cc7a3899..1520773b 100644
--- a/src/dawn/games/vn/events/VNChoiceEvent.hpp
+++ b/src/dawn/games/vn/events/VNChoiceEvent.hpp
@@ -41,5 +41,12 @@ namespace Dawn {
}
}, getScene()->eventSceneUpdate);
}
+
+ public:
+ std::string getChoiceKey() {
+ auto it = choices.begin();
+ std::advance(it, choice);
+ return it->first;
+ }
};
}
\ No newline at end of file
diff --git a/src/dawnliminal/vnscenes/ScenePrologue8.hpp b/src/dawnliminal/vnscenes/ScenePrologue8.hpp
new file mode 100644
index 00000000..e7ce4bac
--- /dev/null
+++ b/src/dawnliminal/vnscenes/ScenePrologue8.hpp
@@ -0,0 +1,82 @@
+#pragma once
+
+#include "scenes/SceneMonologue.hpp"
+#include "games/vn/events/VNDummyEvent.hpp"
+#include "games/vn/events/VNSetDefaultFontEvent.hpp"
+#include "games/vn/events/VNTextEvent.hpp"
+#include "games/vn/events/VNChoiceEvent.hpp"
+#include "games/vn/events/VNIfEvent.hpp"
+#include "games/vn/events/VNSceneChangeEvent.hpp"
+#include "games/vn/events/VNChoiceSetEvent.hpp"
+#include "vnscenes/ScenePrologue9.hpp"
+
+namespace Dawn {
+ class ScenePrologue8CustomEventForChoiceSet : public VNChoiceEvent {
+ protected:
+ void onStart() override {
+ auto scene = dynamic_castthis->manager->getScene();
+ assertNotNull(scene, "ScenePrologue8CustomEventForChoiceSet - Scene is null?");
+
+ this->choices = scene->remainingChoices;
+ this->key = "killer";
+ this->text = "It is...";
+
+ VNChoiceSetEvent::onStart();
+ }
+ };
+
+ class ScenePrologue8CustomEventForAfterChoice : public VNEvent {
+ protected:
+ void onStart() override {
+ auto prev = dynamic_cast(this->previous);
+ assertNotNull(prev, "ScenePrologue8CustomEventForAfterChoice - Previous is null?");
+ auto scene = dynamic_castthis->manager->getScene();
+ assertNotNull(scene, "ScenePrologue8CustomEventForAfterChoice - Scene is null?");
+
+ auto key = prev->getChoiceKey();
+ scene->remainingChoices.erase(key);
+
+ this->next();
+ }
+ };
+
+ class ScenePrologue8 : public SceneMonologue {
+ public:
+ std::map remainingChoices;
+
+ ScenePrologue8(DawnGame *game) : SceneMonologue(game) {
+ }
+
+ std::vector getRequiredAssets() override {
+ auto man = &this->game->assetManager;
+ std::vector assets = SceneMonologue::getRequiredAssets();
+ return assets;
+ }
+
+ void stage() override {
+ SceneMonologue::stage();
+
+ remainingChoices["ave"] = "Ave?";
+ remainingChoices["ronin"] = "Ronin?";
+ remainingChoices["craig"] = "Craig?";
+
+ auto man = &this->game->assetManager;
+ assertNotNull(vnManager, "VNSceneGenInit - VN Manager is null?");
+ VNEvent *previous = vnManager->createEvent();
+ auto eventStart = previous;
+
+ auto event0 = vnManager->createEvent();
+ event0->font = "{{ text }}";
+
+ auto event1 = vnManager->createEvent();
+ auto event2 = vnManager->createEvent();
+ auto sceneChange = vnManager->createEvent>();
+
+ eventStart->then(event0);
+ event0->then(event1);
+ event1->then(event2);
+ event2->then(sceneChange);
+ vnManager->setEvent(eventStart);
+ }
+ };
+}
diff --git a/src/dawnosx/host/DawnHostOSX.cpp b/src/dawnosx/host/DawnHostOSX.cpp
index 9c1084b2..a90f6fa0 100644
--- a/src/dawnosx/host/DawnHostOSX.cpp
+++ b/src/dawnosx/host/DawnHostOSX.cpp
@@ -10,6 +10,8 @@ using namespace Dawn;
int32_t main(int32_t argc, char **args) {
int32_t result;
+ memoryInit();
+
// Create the host
auto host = new DawnHost();
auto game = new DawnGame(host);
@@ -40,9 +42,7 @@ int32_t main(int32_t argc, char **args) {
delete game;
delete host;
- #if DAWN_DEBUG_BUILD
- assertTrue(dawnAllocatedItemCount == 0, "DawnHostOSX: Failed to free all allocated items.");
- #endif
+ memoryDispose();
// Success
return 0;
diff --git a/src/dawnshared/util/Xml.cpp b/src/dawnshared/util/Xml.cpp
index 0aac2116..08dd8b55 100644
--- a/src/dawnshared/util/Xml.cpp
+++ b/src/dawnshared/util/Xml.cpp
@@ -281,7 +281,8 @@ Xml * Xml::getFirstChildOfType(std::string type) {
Xml::~Xml() {
auto it = this->children.begin();
while(it != this->children.end()) {
- delete *it;
+ Xml *child = *it;
+ delete child;
++it;
}
}
\ No newline at end of file
diff --git a/src/dawnshared/util/Xml.hpp b/src/dawnshared/util/Xml.hpp
index 0b9f085a..7eb3db7c 100644
--- a/src/dawnshared/util/Xml.hpp
+++ b/src/dawnshared/util/Xml.hpp
@@ -5,6 +5,7 @@
#pragma once
#include "dawnsharedlibs.hpp"
+#include "util/memory.hpp"
#include "assert/assert.hpp"
#include "util/array.hpp"
diff --git a/src/dawnshared/util/memory.cpp b/src/dawnshared/util/memory.cpp
index 601e318c..93b28940 100644
--- a/src/dawnshared/util/memory.cpp
+++ b/src/dawnshared/util/memory.cpp
@@ -6,60 +6,40 @@
#include "memory.hpp"
#include "assert/assert.hpp"
-uint64_t dawnAllocatedItemCount = -1;
-
-void memoryInit() {
- dawnAllocatedItemCount = 0;
+void * operator new(size_t size) noexcept {
+ return memoryAllocate(size);
}
-void memoryDispose() {
- assertTrue(dawnAllocatedItemCount <= 0, "memoryDispose: !!!Leaked memory detected (not enough free)!!!");
- assertTrue(dawnAllocatedItemCount >= 0, "memoryDispose: !!!Leaked memory detected (too much free)!!!");
- dawnAllocatedItemCount = -1;
+void operator delete (void *p) noexcept {
+ return memoryFree(p);
}
void * memoryAllocate(const size_t size) {
- assertTrue(dawnAllocatedItemCount >= 0, "memoryAllocate: Either a memory leak or memoryInit was not called.");
assertTrue(size >= 0, "memoryAllocate: size must be greater than 0 or equal to.");
- if(size == 0) {
- // Technically this is an implementation specific case, I think it should
- // basically be undefined behaviour tbh.
- return memoryCallMalloc(size);
- }
- dawnAllocatedItemCount++;
- auto x = (void *)memoryCallMalloc(size);
+ void *x = (void *)memoryCallMalloc(size);
assertNotNull(x, "memoryAllocate: Failed to allocate memory");
return x;
}
void * memoryAllocateEmpty(const size_t count, const size_t size) {
- assertTrue(dawnAllocatedItemCount >= 0, "memoryAllocateEmpty: Either a memory leak or memoryInit was not called.");
assertTrue(count >= 0, "memoryAllocateEmpty: count must be greater than or equal to 0");
assertTrue(size >= 0, "memoryAllocateEmpty: size must be greater than or equal to 0");
- if(count == 0 || size == 0) {
- // Technically this is an implementation specific case, I think it should
- // basically be undefined behaviour tbh.
- return memoryCallCalloc(count, size);
- }
- dawnAllocatedItemCount++;
- auto x = (void*)memoryCallCalloc(count, size);
+ void *x = (void *)memoryCallCalloc(count, size);
+
assertNotNull(x, "memoryAllocateEmpty: Failed to allocate memory");
return x;
}
void memoryFree(void *pointer) {
- assertTrue(dawnAllocatedItemCount > 0, "memoryFree: Either a memory leak or memoryInit was not called.");
- if(pointer == nullptr || pointer == NULL) {
- // Technically this is an implementation specific case, I think it should
- // basically be undefined behaviour tbh.
- return memoryCallFree(pointer);
- }
- dawnAllocatedItemCount--;
memoryCallFree(pointer);
}
+void * memoryReallocate(void *ptr, size_t newSize) {
+ assertTrue(newSize >= 0, "memoryReallocate: newSize must be greater than or equal to 0");
+ return memoryCallRealloc(ptr, newSize);
+}
+
void memoryCopy(void *source, void *destination, size_t size) {
- assertTrue(dawnAllocatedItemCount >= 0, "memoryAllocate: Either a memory leak or memoryInit was not called.");
assertNotNull(source, "memoryCopy: source must not be null");
assertNotNull(destination, "memoryCopy: destination must not be null");
assertTrue(destination != source, "memoryCopy: destination must not be source");
@@ -68,32 +48,21 @@ void memoryCopy(void *source, void *destination, size_t size) {
}
int32_t memoryCompare(const void *left, const void *right, const size_t size) {
- assertTrue(dawnAllocatedItemCount >= 0, "memoryAllocate: Either a memory leak or memoryInit was not called.");
assertTrue(left != right, "memoryCompare: left must not be right");
assertTrue(size > 0, "memoryCompare: size must be greater than 0");
return memcmp(left, right, size);
}
void memorySet(void *dest, uint8_t data, size_t length) {
- assertTrue(dawnAllocatedItemCount >= 0, "memoryAllocate: Either a memory leak or memoryInit was not called.");
assertNotNull(dest, "memorySet: dest must not be null");
assertTrue(length > 0, "memorySet: length must be greater than 0");
memset(dest, data, length);
}
-size_t memoryReallocate(void **pointer, size_t currentSize, size_t newSize) {
- // Create the new buffer
- void *newBuffer = memoryAllocate(newSize);
- memoryCopy(*pointer, newBuffer, currentSize);
- memoryFree(*pointer);
- *pointer = newBuffer;
- return newSize;
+void memoryInit() {
+
}
-void * operator new(size_t size) {
- return memoryAllocate(size);
-}
-
-void operator delete(void *pointer) {
- memoryFree(pointer);
+void memoryDispose() {
+
}
\ No newline at end of file
diff --git a/src/dawnshared/util/memory.hpp b/src/dawnshared/util/memory.hpp
index 9355afce..1650b250 100644
--- a/src/dawnshared/util/memory.hpp
+++ b/src/dawnshared/util/memory.hpp
@@ -8,7 +8,7 @@
#pragma once
#include "dawnsharedlibs.hpp"
-extern uint64_t dawnAllocatedItemCount;
+#define DAWN_MEMORY_TRACKING 1
static void * memoryCallMalloc(const size_t size) {
return malloc(size);
@@ -22,15 +22,9 @@ static void memoryCallFree(void *p) {
free(p);
}
-/**
- * Initializes the memory management system.
- */
-void memoryInit();
-
-/**
- * Disposes of the memory management system.
- */
-void memoryDispose();
+static void * memoryCallRealloc(void *p, size_t newSize) {
+ return realloc(p, newSize);
+}
/**
* Allocate some space in memory to use for your needs. Memory allocation may
@@ -57,6 +51,16 @@ void * memoryAllocateEmpty(const size_t count, const size_t size);
*/
void memoryFree(void *pointer);
+/**
+ * Reallocate a part of memory. Reallocation simply creates a new buffer that
+ * will take all of the existing contents and then free's the original buffer.
+ *
+ * @param pointer Pointer to pointer in memory that you wish to re-allocate.
+ * @param newSize The new size of the buffer.
+ * @return Pointer to the new buffer.
+ */
+void * memoryReallocate(void *pointer, size_t newSize);
+
/**
* Copies data from one buffer to another. Typically used for array operations.
*
@@ -86,32 +90,11 @@ int32_t memoryCompare(const void *left, const void *right, const size_t size);
void memorySet(void *dest, uint8_t data, size_t length);
/**
- * Reallocate a part of memory. Reallocation simply creates a new buffer that
- * will take all of the existing contents and then free's the original buffer.
- *
- * @param pointer Pointer to pointer in memory that you wish to re-allocate.
- * @param currentSize Current size of the buffer that the pointer points to.
- * @param newSize The new size of the buffer.
- * @return The new size param you provided.
+ * Initializes the memory management system.
*/
-size_t memoryReallocate(void **pointer, size_t currentSize, size_t newSize);
+void memoryInit();
/**
- * Overloads the new operator to use our memory allocation.
- *
- * @param size Size of the memory to allocate.
- * @return Pointer to the memory.
+ * Disposes of the memory management system.
*/
-void * operator new(size_t size);
-
-/**
- * Overloads the delete operator to use our memory allocation.
- *
- * @param p Pointer to the memory to free.
- */
-void operator delete(void * p);
-
-// Override default memory functions
-#define malloc(n) memoryAllocate(n)
-#define free(n) memoryFree(n)
-#define calloc(n, s) memoryAllocateEmpty(n, s)
\ No newline at end of file
+void memoryDispose();
\ No newline at end of file
diff --git a/src/dawntools/truetypetool/TrueTypeTool.cpp b/src/dawntools/truetypetool/TrueTypeTool.cpp
index 33db3e7e..90810cac 100644
--- a/src/dawntools/truetypetool/TrueTypeTool.cpp
+++ b/src/dawntools/truetypetool/TrueTypeTool.cpp
@@ -151,12 +151,7 @@ int32_t TrueTypeTool::start() {
}
// Cleanup
- itFile = files.begin();
- while(itFile != files.end()) {
- auto file = *itFile;
- delete file;
- ++itFile;
- }
+ cleanupFiles();
// Done
fileOut.close();
diff --git a/src/dawntools/vnscenetool/events/VNChoiceEventParser.cpp b/src/dawntools/vnscenetool/events/VNChoiceEventParser.cpp
index 1bfda236..c9a24e15 100644
--- a/src/dawntools/vnscenetool/events/VNChoiceEventParser.cpp
+++ b/src/dawntools/vnscenetool/events/VNChoiceEventParser.cpp
@@ -38,7 +38,7 @@ int32_t VNChoiceParser::onParse(
if(ret != 0) return ret;
out->texts.push_back(text);
} else {
- *error = "Unknown child node '" + child->node + "'";
+ *error = "Unknown child node for choice event '" + child->node + "'";
return -1;
}
@@ -98,7 +98,7 @@ int32_t VNChoicesEventParser::onParse(
out->choices.push_back(choice);
} else {
- *error = "Unknown child node '" + child->node + "'";
+ *error = "Unknown child node for choices event '" + child->node + "'";
return -1;
}
diff --git a/src/dawntools/vnscenetool/events/VNTextEventParser.cpp b/src/dawntools/vnscenetool/events/VNTextEventParser.cpp
index d92ef3ec..86d2daa5 100644
--- a/src/dawntools/vnscenetool/events/VNTextEventParser.cpp
+++ b/src/dawntools/vnscenetool/events/VNTextEventParser.cpp
@@ -71,7 +71,7 @@ int32_t VNTextEventParser::onParse(
if(ret != 0) return ret;
out->texts.push_back(text);
} else {
- *error = "Unknown child node '" + child->node + "'";
+ *error = "Unknown child node for text event '" + child->node + "'";
return -1;
}