int client_game_init_network( char *opponent_name, int diff ) { /* create an empty one level levelset. the server will send * the data into the level everytime we play. */ game_set = levelset_create_empty( 1, "empty", "empty" ); /* create client game context */ game = game_create( GT_NETWORK, diff, 100 ); game_set_current( game ); game_round = 0; /* will be increased by init_next_round() */ game_over = 0; /* a network game communicates every 25 ms by default */ client_comm_delay = 25; no_comm_since = 0; /* initiate players */ players_clear(); player_add( client_name, game->diff->lives, levelset_get_first( game_set ) ); player_add( opponent_name, game->diff->lives, levelset_get_first( game_set ) ); cur_player = players_get_first(); display_text( font, "Receiving level data..." ); set_state( CS_RECV_LEVEL ); return 1; }
/* ==================================================================== Load all levels from either home directory (fname begins with ~) or installation directory. addBonusLevels is also the seed if not 0. ==================================================================== */ LevelSet *levelset_load( char *fname, int addBonusLevels ) { int version, update, i, j, num; LevelSet *set; Level *level; List *levels = list_create( LIST_NO_AUTO_DELETE, 0 ); /* check virtual sets */ if (fname[0]=='!') { set = levelset_create_empty(1,"Michael Speck","Bonus Level"); sprintf(set->name,"%s",fname); if (!strcmp(fname,_("!JUMPING_JACK!"))) set->levels[0]->type = LT_JUMPING_JACK; else if (!strcmp(fname,_("!OUTBREAK!"))) set->levels[0]->type = LT_OUTBREAK; else if (!strcmp(fname,_("!BARRIER!"))) set->levels[0]->type = LT_BARRIER; else if (!strcmp(fname,_("!SITTING_DUCKS!"))) set->levels[0]->type = LT_SITTING_DUCKS; else if (!strcmp(fname,_("!HUNTER!"))) set->levels[0]->type = LT_HUNTER; else if (!strcmp(fname,_("!INVADERS!"))) set->levels[0]->type = LT_DEFENDER; return set; } /* load normal file */ levels_load( fname, levels, &version, &update ); /* add bonus levels every four normal levels */ if (addBonusLevels) { srand(addBonusLevels); num = levels->count / 4; for (i=0,j=4;i<num;i++) { level = level_create_empty("Michael Speck", "Bonus Level"); level->type = RANDOM(LT_JUMPING_JACK,LT_LAST-1); list_insert(levels,level,j); j += 5; } } set = levelset_build_from_list( levels, fname, version, update ); if ( set == 0 ) fprintf( stderr, "empty levelset: %s\n", fname ); else printf( "%s v%i.%02i: %i levels\n", fname, set->version, set->update, set->count ); return set; }