summary refs log tree commit diff
path: root/src/Support.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Support.cpp')
-rw-r--r--src/Support.cpp169
1 files changed, 2 insertions, 167 deletions
diff --git a/src/Support.cpp b/src/Support.cpp
index 2b033f5..850d0bb 100644
--- a/src/Support.cpp
+++ b/src/Support.cpp
@@ -1,18 +1,13 @@
-#include <dirent.h>
-#include <fcntl.h>
+#include <stdbool.h>
+#include <stdlib.h>
 
 #include <GLFW/glfw3.h>
 
 #include "Support.h"
-#include "Files.h"
 
 int Random()
 {
-#if RAND_MAX >= 65535
 	return (rand() % 65535) - 32767;
-#else
-#error please fix this for your platform
-#endif
 }
 
 bool IsKeyDown(int key)
@@ -20,163 +15,3 @@ bool IsKeyDown(int key)
 	const auto window = glfwGetCurrentContext();
 	return glfwGetKey(window, key) == GLFW_PRESS;
 }
-
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
-#ifndef MAX_PATH
-#define MAX_PATH 256
-#endif
-
-static int find_filename(char *filename)
-{
-	char *ptr;
-	char *cur;
-	char *next;
-	DIR *dir;
-	struct dirent *dirent;
-
-	if (access(filename, R_OK) == 0) {
-		return 1;
-	}
-
-	ptr = filename;
-
-	while (*ptr) {
-		if (ptr == filename || *ptr == '/') {
-			if (*ptr == '/') {
-				cur = ptr+1;
-			} else {
-				cur = ptr;
-			}
-
-			if (*cur == 0) {
-				/* hit the end */
-				break;
-			}
-
-			next = strchr(cur, '/');
-
-			if (ptr != filename) {
-				*ptr = 0;
-			}
-
-			if (next) {
-				*next = 0;
-			}
-
-			if (ptr == filename && *ptr == '/') {
-				dir = opendir("/");
-			} else {
-				dir = opendir(filename);
-			}
-
-			if (dir == NULL) {
-				if (ptr != filename) {
-					*ptr = '/';
-				}
-
-				if (next) {
-					*next = 0;
-				}
-
-				return 0;
-			}
-
-			while ((dirent = readdir(dir)) != NULL) {
-				if (strcasecmp(cur, dirent->d_name) == 0) {
-					strcpy(cur, dirent->d_name);
-					break;
-				}
-			}
-
-			closedir(dir);
-
-			if (ptr != filename) {
-				*ptr = '/';
-			}
-
-			if (next) {
-				*next = '/';
-				ptr = next;
-			} else {
-				ptr++;
-			}
-		} else {
-			ptr++;
-		}
-	}
-
-	if (access(filename, R_OK) == 0) {
-		return 1;
-	}
-
-	return 0;
-}
-
-static void fix_filename(const char *original, char *fixed)
-{
-	const char *start;
-	int i;
-	int len;
-
-	start = original;
-	if (original[0] == ':') {
-		start = &original[1];
-	}
-
-	fixed[MAX_PATH-1] = 0;
-
-	strncpy(fixed, start, MAX_PATH);
-
-	/* check to see if strncpy overwrote the terminator */
-	if (fixed[MAX_PATH-1] != 0) {
-		fixed[MAX_PATH-1] = 0;
-
-		fprintf(stderr, "ERROR: file truncation error: %s -> %s\n",
-			original, fixed);
-	}
-
-	len = strlen(fixed);
-	for (i = 0; i < len; i++) {
-		if (fixed[i] == ':') {
-			fixed[i] = '/';
-		}
-	}
-
-	/*
-	   here we would try to see if the file is available (game dir),
-	   else try another dir
-
-	   really, this function also needs a flag to indicate whether
-	   it should only go to local (write) or both (read)
-	 */
-
-	if (find_filename(fixed) == 0) {
-		fprintf(stderr, "find failed: %s\n", fixed);
-	}
-}
-
-/*
-Convenient Filename Hacks
-*/
-
-int Files::OpenFile(Str255 Name)
-{
-	char filename1[MAX_PATH];
-
-	fix_filename((char *)Name, filename1);
-
-	sFile = open(filename1, O_RDONLY | O_BINARY);
-	return sFile;
-}
-
-void Files::EndLoad()
-{
-	if (sFile != -1) {
-		FSClose( sFile );
-	}
-
-	sFile = -1;
-}