summaryrefslogtreecommitdiff
path: root/src/unk_text_util.c
diff options
context:
space:
mode:
authorDiegoisawesome <diego@domoreaweso.me>2017-11-29 00:52:32 -0600
committerDiegoisawesome <diego@domoreaweso.me>2017-11-29 00:52:32 -0600
commit70743f4b951bb84ca33fd2151e55b2f5018eb6c5 (patch)
tree7298959f4e81c88adeac0c26b9016b9d197da1fd /src/unk_text_util.c
parent52624c4fb7c145c33a2d0edc1d64b2d6e09c1336 (diff)
parent54da96309186b98263b4434911e1c5b8d4b4e3ec (diff)
Merge branch 'master' of https://github.com/pret/pokeemerald
Diffstat (limited to 'src/unk_text_util.c')
-rw-r--r--src/unk_text_util.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/unk_text_util.c b/src/unk_text_util.c
new file mode 100644
index 000000000..2773522b2
--- /dev/null
+++ b/src/unk_text_util.c
@@ -0,0 +1,56 @@
+#include "global.h"
+#include "text.h"
+#include "unk_text_util.h"
+#include "string_util.h"
+
+static EWRAM_DATA const u8 *sStringPointers[8] = {};
+
+void UnkTextUtil_Reset(void)
+{
+ const u8 **ptr;
+ u8 *fillval;
+ const u8 **ptr2;
+
+ ptr = sStringPointers;
+ fillval = NULL;
+ ptr2 = ptr + (ARRAY_COUNT(sStringPointers) - 1);
+ do
+ {
+ *ptr2-- = fillval;
+ } while ((int)ptr2 >= (int)ptr);
+}
+
+void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr)
+{
+ if (idx < ARRAY_COUNT(sStringPointers))
+ {
+ sStringPointers[idx] = ptr;
+ }
+}
+
+u8 *UnkTextUtil_StringExpandPlaceholders(u8 *dest, const u8 *src)
+{
+ while (*src != EOS)
+ {
+ if (*src != CHAR_SPECIAL_F7)
+ {
+ *dest++ = *src++;
+ }
+ else
+ {
+ src++;
+ if (sStringPointers[*src] != NULL)
+ {
+ dest = StringCopy(dest, sStringPointers[*src]);
+ }
+ src++;
+ }
+ }
+ *dest = EOS;
+ return dest;
+}
+
+const u8 *UnkTextUtil_GetPtrI(u8 idx)
+{
+ return sStringPointers[idx];
+}