From e12753d2ec9db83ec08bb9db63902a82fb245cdd Mon Sep 17 00:00:00 2001 From: "Tomas Chvatal (scarabeus)" Date: Wed, 22 Oct 2008 22:50:54 +0200 Subject: X --- src/base/arenaFile.c | 432 +++++++++++++++++++++++++++------------------------ 1 file changed, 227 insertions(+), 205 deletions(-) (limited to 'src/base/arenaFile.c') diff --git a/src/base/arenaFile.c b/src/base/arenaFile.c index 10b4449..a8e2e54 100644 --- a/src/base/arenaFile.c +++ b/src/base/arenaFile.c @@ -29,321 +29,343 @@ static list_t *listArenaFile; static bool_t isArenaFileInit = FALSE; -bool_t isAreaFileInicialized() +bool_t +isAreaFileInicialized() { - return isArenaFileInit; + return isArenaFileInit; } -int getArenaValue(char *line, char *env, char *val, int len) +int +getArenaValue(char *line, char *env, char *val, int len) { - char *offset_env; - char *offset_val_begin; - char *offset_val_end; - char clone_env[STR_SIZE]; - int val_len; - - strcpy(clone_env, " "); - strcat(clone_env, env); - offset_env = strstr(line, clone_env); - if (offset_env == NULL) - return -1; - offset_val_begin = strchr(offset_env, '"'); - if (offset_val_begin == NULL) - return -1; - offset_val_end = strchr(offset_val_begin+1, '"'); - if (offset_val_end == NULL) - return -1; - val_len = (int)(offset_val_end - (offset_val_begin + 1)); - if (val_len > len - 1) - val_len = len - 1; - memset(val, 0, len); - memcpy(val, offset_val_begin+1, val_len); - return 0; + char *offset_env; + char *offset_val_begin; + char *offset_val_end; + char clone_env[STR_SIZE]; + int val_len; + + strcpy(clone_env, " "); + strcat(clone_env, env); + offset_env = strstr(line, clone_env); + if (offset_env == NULL) + return -1; + offset_val_begin = strchr(offset_env, '"'); + if (offset_val_begin == NULL) + return -1; + offset_val_end = strchr(offset_val_begin + 1, '"'); + if (offset_val_end == NULL) + return -1; + val_len = (int) (offset_val_end - (offset_val_begin + 1)); + if (val_len > len - 1) + val_len = len - 1; + memset(val, 0, len); + memcpy(val, offset_val_begin + 1, val_len); + return 0; } #ifndef PUBLIC_SERVER -image_t* loadImageFromArena(arenaFile_t *arenaFile, char *filename, char *group, char *name, int alpha) +image_t * +loadImageFromArena(arenaFile_t * arenaFile, char *filename, char *group, + char *name, int alpha) { - char *extractFile; - image_t *image; + char *extractFile; + image_t *image; - extractFile = extractFileFromArchive(arenaFile->path, filename); - image = addImageData(extractFile, alpha, name, group); - deleteExtractFile(extractFile); + extractFile = extractFileFromArchive(arenaFile->path, filename); + image = addImageData(extractFile, alpha, name, group); + deleteExtractFile(extractFile); - return image; + return image; } #ifndef NO_SOUND -void loadMusicFromArena(arenaFile_t *arenaFile, char *filename, char *group, char *name) +void +loadMusicFromArena(arenaFile_t * arenaFile, char *filename, char *group, + char *name) { - char *extractFile; + char *extractFile; - extractFile = extractFileFromArchive(arenaFile->path, filename); - addMusic(extractFile, name, group); - deleteExtractFile(extractFile); + extractFile = extractFileFromArchive(arenaFile->path, filename); + addMusic(extractFile, name, group); + deleteExtractFile(extractFile); } #endif #endif -static void cmd_arena(arena_t **arena, char *line) +static void +cmd_arena(arena_t ** arena, char *line) { - char str_image[STR_SIZE]; - char str_w[STR_SIZE]; - char str_h[STR_SIZE]; - - if (getArenaValue(line, "background", str_image, STR_SIZE) != 0) - return; - if (getArenaValue(line, "w", str_w, STR_SIZE) != 0) - return; - if (getArenaValue(line, "h", str_h, STR_SIZE) != 0) - return; - (*arena) = newArena(atoi(str_w), atoi(str_h)); + char str_image[STR_SIZE]; + char str_w[STR_SIZE]; + char str_h[STR_SIZE]; + + if (getArenaValue(line, "background", str_image, STR_SIZE) != 0) + return; + if (getArenaValue(line, "w", str_w, STR_SIZE) != 0) + return; + if (getArenaValue(line, "h", str_h, STR_SIZE) != 0) + return; + (*arena) = newArena(atoi(str_w), atoi(str_h)); #ifndef PUBLIC_SERVER - (*arena)->background = getImage(IMAGE_GROUP_USER, str_image); + (*arena)->background = getImage(IMAGE_GROUP_USER, str_image); #endif - //(*arena)->w = atoi(str_w); - //(*arena)->h = atoi(str_h); - setCurrentArena(*arena); + //(*arena)->w = atoi(str_w); + //(*arena)->h = atoi(str_h); + setCurrentArena(*arena); #ifdef DEBUG - printf(_("Loaded new arena...\n")); + printf(_("Loaded new arena...\n")); #endif } -static void cmd_loadModule(char *line) +static void +cmd_loadModule(char *line) { - char str_file[STR_SIZE]; + char str_file[STR_SIZE]; - if (getArenaValue(line, "file", str_file, STR_SIZE) != 0) - return; - loadModule(str_file); + if (getArenaValue(line, "file", str_file, STR_SIZE) != 0) + return; + loadModule(str_file); } #ifndef PUBLIC_SERVER -static void cmd_loadImage(arenaFile_t *arenaFile, char *line) +static void +cmd_loadImage(arenaFile_t * arenaFile, char *line) { - char str_file[STR_SIZE]; - char str_name[STR_SIZE]; - char str_alpha[STR_SIZE]; - - if (getArenaValue(line, "file", str_file, STR_SIZE) != 0) - return; - if (getArenaValue(line, "name", str_name, STR_SIZE) != 0) - return; - if (getArenaValue(line, "alpha", str_alpha, STR_SIZE) != 0) - return; - - //printf("str_file=%s str_name=%s str_alpha=%s\n", str_file, str_name, str_alpha); - loadImageFromArena(arenaFile, str_file, IMAGE_GROUP_USER, str_name, isYesOrNO(str_alpha)); - - //addImageData(str_file, isYesOrNO(str_alpha), str_name, IMAGE_GROUP_USER); + char str_file[STR_SIZE]; + char str_name[STR_SIZE]; + char str_alpha[STR_SIZE]; + + if (getArenaValue(line, "file", str_file, STR_SIZE) != 0) + return; + if (getArenaValue(line, "name", str_name, STR_SIZE) != 0) + return; + if (getArenaValue(line, "alpha", str_alpha, STR_SIZE) != 0) + return; + + //printf("str_file=%s str_name=%s str_alpha=%s\n", str_file, str_name, str_alpha); + loadImageFromArena(arenaFile, str_file, IMAGE_GROUP_USER, str_name, + isYesOrNO(str_alpha)); + + //addImageData(str_file, isYesOrNO(str_alpha), str_name, IMAGE_GROUP_USER); } -static void cmd_loadMusic(arenaFile_t *arenaFile, char *line) +static void +cmd_loadMusic(arenaFile_t * arenaFile, char *line) { - char str_file[STR_SIZE]; - char str_name[STR_SIZE]; + char str_file[STR_SIZE]; + char str_name[STR_SIZE]; - if (getArenaValue(line, "file", str_file, STR_SIZE) != 0) - return; - if (getArenaValue(line, "name", str_name, STR_SIZE) != 0) - return; + if (getArenaValue(line, "file", str_file, STR_SIZE) != 0) + return; + if (getArenaValue(line, "name", str_name, STR_SIZE) != 0) + return; #ifndef NO_SOUND - //addMusic(str_file, str_name, MUSIC_GROUP_USER); - loadMusicFromArena(arenaFile, str_file, MUSIC_GROUP_USER, str_name); + //addMusic(str_file, str_name, MUSIC_GROUP_USER); + loadMusicFromArena(arenaFile, str_file, MUSIC_GROUP_USER, str_name); #endif } -static void cmd_playMusic(arena_t *arena, char *line) +static void +cmd_playMusic(arena_t * arena, char *line) { - char str_music[STR_SIZE]; + char str_music[STR_SIZE]; - if (getArenaValue(line, "music", str_music, STR_SIZE) != 0) - return; - strcpy(arena->music, str_music); + if (getArenaValue(line, "music", str_music, STR_SIZE) != 0) + return; + strcpy(arena->music, str_music); } #endif -int getArenaCount() +int +getArenaCount() { - return listArenaFile->count; + return listArenaFile->count; } -static char *getArenaStatus(textFile_t *ts, char *s) +static char * +getArenaStatus(textFile_t * ts, char *s) { - int len; - int i; - - len = strlen(s); - for( i = 0; i < ts->text->count; i++ ) { - char *line; - line = (char *) (ts->text->list[i]); - if( strncmp(line, s, len) == 0 ) - return line+len+1; - } - return NULL; + int len; + int i; + + len = strlen(s); + for (i = 0; i < ts->text->count; i++) { + char *line; + line = (char *) (ts->text->list[i]); + if (strncmp(line, s, len) == 0) + return line + len + 1; + } + return NULL; } -char *getArenaName(arenaFile_t *arenaFile) +char * +getArenaName(arenaFile_t * arenaFile) { - char *ret; + char *ret; - ret = getArenaStatus(arenaFile->map, "name"); - return ( ret != NULL ? ret : "arena_no_name" ); + ret = getArenaStatus(arenaFile->map, "name"); + return (ret != NULL ? ret : "arena_no_name"); } -char *getArenaNetName(arenaFile_t *arenaFile) +char * +getArenaNetName(arenaFile_t * arenaFile) { - char *ret; + char *ret; - ret = getArenaStatus(arenaFile->map, "netName"); - return ( ret != NULL ? ret : "arena_no_net_name" ); + ret = getArenaStatus(arenaFile->map, "netName"); + return (ret != NULL ? ret : "arena_no_net_name"); } -arenaFile_t* getArenaFileFormNetName(char *s) +arenaFile_t * +getArenaFileFormNetName(char *s) { - int i; + int i; // - for (i = 0; i < listArenaFile->count; i++) - { - arenaFile_t *arenaFile; + for (i = 0; i < listArenaFile->count; i++) { + arenaFile_t *arenaFile; - arenaFile = (arenaFile_t *)listArenaFile->list[i]; - if (strcmp(getArenaNetName(arenaFile), s) == 0) - return arenaFile; - } + arenaFile = (arenaFile_t *) listArenaFile->list[i]; + if (strcmp(getArenaNetName(arenaFile), s) == 0) + return arenaFile; + } - return NULL; + return NULL; } -char *getArenaImage(arenaFile_t *arenaFile) +char * +getArenaImage(arenaFile_t * arenaFile) { - return getArenaStatus(arenaFile->map, "screen"); + return getArenaStatus(arenaFile->map, "screen"); } -arenaFile_t* getArenaFile(int n) +arenaFile_t * +getArenaFile(int n) { - return (arenaFile_t *)listArenaFile->list[n]; + return (arenaFile_t *) listArenaFile->list[n]; } -int getArenaFileID(arenaFile_t *arenaFile) +int +getArenaFileID(arenaFile_t * arenaFile) { - int i; + int i; - for (i = 0; i < listArenaFile->count; i++) - { - arenaFile_t *this; + for (i = 0; i < listArenaFile->count; i++) { + arenaFile_t *this; - this = (arenaFile_t *)listArenaFile->list[i]; - - if( this == arenaFile) - { - return i; - } - } + this = (arenaFile_t *) listArenaFile->list[i]; - return -1; + if (this == arenaFile) { + return i; + } + } + + return -1; } -arena_t* getArena(arenaFile_t *arenaFile) +arena_t * +getArena(arenaFile_t * arenaFile) { - textFile_t *ts; - arena_t *arena = NULL; // no warninng - int i; + textFile_t *ts; + arena_t *arena = NULL; // no warninng + int i; - ts = (textFile_t *) arenaFile->map; + ts = (textFile_t *) arenaFile->map; - for( i = 0 ; i < ts->text->count ; i++ ) { - char *line; + for (i = 0; i < ts->text->count; i++) { + char *line; - line = (char *) (ts->text->list[i]); - cmdModule(line); + line = (char *) (ts->text->list[i]); + cmdModule(line); #ifndef PUBLIC_SERVER - if (strncmp(line, "loadImage", 9) == 0) - cmd_loadImage(arenaFile, line); - if (strncmp(line, "loadMusic", 9) == 0) - cmd_loadMusic(arenaFile, line); - if (strncmp(line, "playMusic", 9) == 0) - cmd_playMusic(arena, line); + if (strncmp(line, "loadImage", 9) == 0) + cmd_loadImage(arenaFile, line); + if (strncmp(line, "loadMusic", 9) == 0) + cmd_loadMusic(arenaFile, line); + if (strncmp(line, "playMusic", 9) == 0) + cmd_playMusic(arena, line); #endif - if (strncmp(line, "arena", 5) == 0 ) - cmd_arena(&arena, line); - if (strncmp(line, "loadModule", 10) == 0 ) - cmd_loadModule(line); - //if( strncmp(line, "wall", 4) == 0 )cmd_wall(arena, line); - //if( strncmp(line, "teleport", 8) == 0 )cmd_teleport(arena, line); - //if( strncmp(line, "pipe", 4) == 0 )cmd_pipe(arena, line); - } - - return arena; + if (strncmp(line, "arena", 5) == 0) + cmd_arena(&arena, line); + if (strncmp(line, "loadModule", 10) == 0) + cmd_loadModule(line); + //if( strncmp(line, "wall", 4) == 0 )cmd_wall(arena, line); + //if( strncmp(line, "teleport", 8) == 0 )cmd_teleport(arena, line); + //if( strncmp(line, "pipe", 4) == 0 )cmd_pipe(arena, line); + } + + return arena; } -arenaFile_t* newArenaFile(char *path) +arenaFile_t * +newArenaFile(char *path) { - arenaFile_t *new; - char *extractFile; + arenaFile_t *new; + char *extractFile; - new = malloc( sizeof(arenaFile_t) ); - new->path = strdup(path); + new = malloc(sizeof(arenaFile_t)); + new->path = strdup(path); - extractFile = extractFileFromArchive(path, "arena.map"); - new->map = loadTextFile(extractFile); - deleteExtractFile(extractFile); + extractFile = extractFileFromArchive(path, "arena.map"); + new->map = loadTextFile(extractFile); + deleteExtractFile(extractFile); - return new; + return new; } -void destroyArenaFile(arenaFile_t *p) +void +destroyArenaFile(arenaFile_t * p) { - destroyTextFile(p->map); - free(p->path); - free(p); + destroyTextFile(p->map); + free(p->path); + free(p); } -void loadArenaFile(char *path) +void +loadArenaFile(char *path) { - addList(listArenaFile, newArenaFile(path) ); + addList(listArenaFile, newArenaFile(path)); } -void initArenaFile() +void +initArenaFile() { - director_t *p; - int i; + director_t *p; + int i; #ifndef PUBLIC_SERVER - assert( isImageInicialized() == TRUE ); + assert(isImageInicialized() == TRUE); #endif - isArenaFileInit = TRUE; - listArenaFile = newList(); + isArenaFileInit = TRUE; + listArenaFile = newList(); + + p = loadDirector(PATH_ARENA); + //p = loadDirector( getHomeDirector() ); - p = loadDirector(PATH_ARENA); - //p = loadDirector( getHomeDirector() ); + for (i = 0; i < p->list->count; i++) { + char *line; - for (i = 0; i < p->list->count; i++) { - char *line; - - line = (char *)( p->list->list[i] ); + line = (char *) (p->list->list[i]); - if (strstr(line, ".zip") != NULL && - strstr(line, "~") == NULL) { - char path[STR_PATH_SIZE]; + if (strstr(line, ".zip") != NULL && strstr(line, "~") == NULL) { + char path[STR_PATH_SIZE]; - sprintf(path, PATH_ARENA "%s", line); + sprintf(path, PATH_ARENA "%s", line); #ifdef DEBUG - printf(_("Loading arena: %s\n"), line); + printf(_("Loading arena: %s\n"), line); #endif - accessExistFile(path); - loadArenaFile(path); - } - } - //printf("No. of Arens: %d\n", listArenaFile->count); - destroyDirector(p); + accessExistFile(path); + loadArenaFile(path); + } + } + //printf("No. of Arens: %d\n", listArenaFile->count); + destroyDirector(p); } -void quitArenaFile() +void +quitArenaFile() { - isArenaFileInit = FALSE; - destroyListItem(listArenaFile, destroyArenaFile); + isArenaFileInit = FALSE; + destroyListItem(listArenaFile, destroyArenaFile); } -- cgit v1.2.3