#include <sys/types.h> #include <sys/time.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> /* * Some Constraints on the world Size * * "19,250,000 locations should be * enough for everyone!" * Quote, Thri Oct 17, 2005 */ #define MAX_X 80 #define MAX_Y 170 #define MAX_Z 20 /* * Question, since 5000x9000x11 is only * 500million, long is 2 billion, why * do i get size of variable 'map' is too large * on compile if it goes any higher? */ int map[MAX_X][MAX_Y][MAX_Z]; void load_world (); void save_world(); int main() { printf("Thing is %d\n\r", map[1][1][1]); printf("Starting Save world Function\n\r"); //save_world(); printf("Save world finished, starting loading\n\r"); load_world(); printf("Load world finished!\n\r"); printf("Thing is %d\n\r", map[1][1][1]); return (0); } /* * load_world() * * Loads the entire world. */ void load_world() { FILE * fp; long x = 0; long y = 0; long z = 0; size_t object_size = sizeof(int); size_t object_count = (MAX_X * MAX_Y * MAX_Z); size_t op_return; fp = fopen ("world.bin", "r"); op_return = fread (&map, object_size, object_count, fp); if (op_return != object_count) { printf ("Error read data file.\n"); } else { printf ("Successfully read data file.\n"); } fclose(fp); } /* * save_world() * * Save the world! * Not just for Jehovah witnessess anymore. */ void save_world() { FILE * fp; long x = 0; long y = 0; long z = 0; size_t object_size = sizeof(int); size_t object_count = (MAX_X * MAX_Y * MAX_Z); size_t op_return; fp = fopen ("world.bin", "w"); op_return = fwrite (&map, object_size, object_count, fp); if (op_return != object_count) { printf ("Error writing data to file.\n"); } else { printf ("Successfully wrote data to file.\n"); } fclose(fp); }