rnd-20100216-3-src
[rocksndiamonds.git] / src / game_sp / vb_lib.c
index d88c8e36061e3d3d67685232923c4c8df4f15e2b..9381b6605adc3de276b3debd020e51a50793bc61 100644 (file)
 
 
 /* helper functions for constructs not supported by C */
+
+#if 1
+
+void *REDIM_1D(int data_size, int first_data_pos, int last_data_pos)
+{
+  /* for a buffer of n elements, first_data_pos is 0 and last_data_pos is n-1 */
+  /* a negative value for "first_data_pos" indicates a preceding buffer zone */
+
+  int data_count = last_data_pos - first_data_pos + 1;
+  int buffer_size = data_size * data_count;
+  int buffer_start = data_size * first_data_pos;
+
+  return (checked_calloc(buffer_size) - buffer_start);
+}
+
+#else
+
 void *REDIM_1D(int a, int b, int c)
 {
   return checked_calloc(a * (c - b + 1));
 }
 
+#endif
+
 void *REDIM_2D(int a, int b, int c, int d, int e)
 {
   return 0;
@@ -72,7 +91,8 @@ boolean STRING_IS_LIKE(char *a, char *b)
 
 void FILE_GET(FILE *file, int offset, void *buffer, int num_bytes)
 {
-  fseek(file, offset - 1, SEEK_SET);
+  if (offset != -1)
+    fseek(file, offset - 1, SEEK_SET);
 
   while (num_bytes--)
     *(byte *)buffer++ = fgetc(file);
@@ -177,7 +197,7 @@ int FileLen(char *a)
   }
 }
 
-long GetTickCount()
+long MyGetTickCount()
 {
   return random_linux_libc(RANDOM_SIMPLE);
 }
@@ -197,7 +217,11 @@ void SaveSetting(const char * a, const char *b, char *c, int d)
   return;
 }
 
+#if 0
+
 long GetTempPath(long a, char *b)
 {
   return 0;
 }
+
+#endif