Пример #1
0
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;
}
Пример #2
0
/*
====================================================================
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;
}