1 /* 2000-08-10T16:43:50Z
9 struct LevelInfo_EM native_em_level;
11 void setLevelInfoToDefaults_EM(void)
15 native_em_level.file_version = FILE_VERSION_EM_ACTUAL;
16 native_em_level.cav = &cav;
19 for (i = 0; i < MAX_PLAYERS; i++)
20 game_em.ply[i] = &ply[i];
25 for (i = 0; i < MAX_PLAYERS; i++)
41 cav.wonderwall_state = 0;
42 cav.wonderwall_time = 0;
44 cav.num_ball_arrays = 8;
46 for (i = 0; i < TILE_MAX; i++)
47 cav.android_array[i] = Xblank;
53 * completely initializes the level structure, ready for a game
56 #define MAX_EM_LEVEL_SIZE 16384
58 boolean LoadNativeLevel_EM(char *filename, boolean level_info_only)
60 unsigned char raw_leveldata[MAX_EM_LEVEL_SIZE];
61 int raw_leveldata_length;
65 /* always start with reliable default values */
66 setLevelInfoToDefaults_EM();
68 if (!(file = openFile(filename, MODE_READ)))
71 Error(ERR_WARN, "cannot open level '%s' -- using empty level", filename);
76 raw_leveldata_length = readFile(file, raw_leveldata, 1, MAX_EM_LEVEL_SIZE);
80 if (raw_leveldata_length <= 0)
82 Error(ERR_WARN, "cannot read level '%s' -- using empty level", filename);
87 file_version = cleanup_em_level(raw_leveldata, raw_leveldata_length,filename);
89 if (file_version == FILE_VERSION_EM_UNKNOWN)
91 Error(ERR_WARN, "unknown EM level '%s' -- using empty level", filename);
96 convert_em_level(raw_leveldata, file_version);