summaryrefslogtreecommitdiff
path: root/src/strings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/strings.cpp')
-rw-r--r--src/strings.cpp92
1 files changed, 92 insertions, 0 deletions
diff --git a/src/strings.cpp b/src/strings.cpp
new file mode 100644
index 0000000..d2acc03
--- /dev/null
+++ b/src/strings.cpp
@@ -0,0 +1,92 @@
+static bool32 Hacko = false;
+static int32 EffectSel = -1;
+
+// I'm using the filter's grep functionality to sort the effects for us
+// (probably severely suboptimal), so I'm just using this callback function to
+// signal back to our code that tab has been pressed in the text edit.
+static int
+EffectConsoleCallback(ImGuiInputTextCallbackData* data)
+{
+ if (data->EventFlag == ImGuiInputTextFlags_CallbackCompletion)
+ {
+ Hacko = true;
+ }
+ return 0;
+}
+
+static void
+CopyStrings(void *Dest, void *Data)
+{
+ for (int i = 0; i < STRING_SIZE; i++)
+ {
+ *((char *)Dest + i) = *((char *)Data + i);
+ }
+}
+
+static uint16
+String_AddToFile(memory *Memory, char *Char)
+{
+ uint16 FileIndex = Memory_Block_AllocateNew(Memory, F_Strings);
+ block_string *String = (block_string *)Memory_Block_AddressAtIndex(Memory, F_Strings, FileIndex, 0);
+ History_Action_Block_Swap(Memory, F_Strings, String);
+ String->Occupied = 1;
+ uint16 i = 0;
+ while (Char[i] != '\0') {
+ String->Char[i] = Char[i];
+ i++;
+ }
+ return FileIndex;
+}
+
+static bool32
+String_Compare(char *String1, char *String2, uint32 Length)
+{
+ for (int i = 0; i < Length; i++) {
+ if (String1[i] != String2[i])
+ return 0;
+ }
+ return 1;
+}
+
+static uint32
+String_Length(char *Char)
+{
+ int32 i = 0;
+ while (Char[i] != '\0') {
+ i++;
+ }
+ return i;
+}
+
+static void
+String_Copy(char *String1, char *String2, uint32 Length)
+{
+ int32 i = 0;
+ while (i < Length) {
+ String1[i] = String2[i];
+ i++;
+ }
+}
+
+static void
+String_Append(char *String1, char *String2, uint32 Length)
+{
+ int32 i = 0;
+ while (String1[i] != '\0') {
+ String1[i] = String2[i];
+ }
+}
+
+static void
+String_PathToLayerName(char *Path, char *Dest)
+{
+ uint32 i = 0;
+ uint32 LastSlash = 0;
+ while (Path[i] != '\0') {
+ if (Path[i] == '/')
+ LastSlash = i;
+ i++;
+ }
+ for (int s = 0; s < i - LastSlash; s++)
+ Dest[s] = Path[s + LastSlash + 1];
+}