summaryrefslogtreecommitdiff
path: root/src/dynamic_placeholder_text_util.c
diff options
context:
space:
mode:
authorDiegoisawesome <diego@domoreaweso.me>2018-07-24 21:18:23 -0700
committerDiegoisawesome <diego@domoreaweso.me>2018-07-24 21:18:23 -0700
commit156fb472e10c10751268d2339b2526c8bd07e34f (patch)
treeda05e1a5852e4e9da51763339676d17e2e23cdd9 /src/dynamic_placeholder_text_util.c
parent731d6d59bc624e0350b3396f135a35f6c9bdc4f8 (diff)
Clean up files and add entries to charmap
Diffstat (limited to 'src/dynamic_placeholder_text_util.c')
-rw-r--r--src/dynamic_placeholder_text_util.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/dynamic_placeholder_text_util.c b/src/dynamic_placeholder_text_util.c
new file mode 100644
index 000000000..bdfcf6653
--- /dev/null
+++ b/src/dynamic_placeholder_text_util.c
@@ -0,0 +1,56 @@
+#include "global.h"
+#include "text.h"
+#include "dynamic_placeholder_text_util.h"
+#include "string_util.h"
+
+static EWRAM_DATA const u8 *sStringPointers[8] = {};
+
+void DynamicPlaceholderTextUtil_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 DynamicPlaceholderTextUtil_SetPlaceholderPtr(u8 idx, const u8 *ptr)
+{
+ if (idx < ARRAY_COUNT(sStringPointers))
+ {
+ sStringPointers[idx] = ptr;
+ }
+}
+
+u8 *DynamicPlaceholderTextUtil_ExpandPlaceholders(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 *DynamicPlaceholderTextUtil_GetPlaceholderPtr(u8 idx)
+{
+ return sStringPointers[idx];
+}