t_tetrimino *init_main(char **av, char **env, t_config *config, t_tetrimino *tetri) { if (env[0] == NULL) return (NULL); srand(time(NULL)); tetri = NULL; config->error = 0; if (load_tetriminos(&tetri) == -1) config->error = 1; if (init_config(config) == -1) return (NULL); if (user_config(av, config) == -1) { write(2, "Error: bad parameter\n", 21); return (NULL); } if (init_sequences(config, env) == -1 || get_highscore(config) == -1) return (NULL); debug_part(config, &tetri); if (config->error == 1) return (NULL); prep_screen(); clean_list(&tetri); config->form = choose_tetrimino(tetri); config->next = choose_tetrimino(tetri); config->pos[0] = (config->width / 2) - (config->form->width / 2); display_game(config, 1); return (tetri); }
void init_score_commit() { switch (score_col) { case 0: if (get_highscore(0,1,score_row) == 0 || spNetC4ACommitScore(profile,"puzzletube_points",get_highscore(0,1,score_row),&pointsScore,TIME_OUT)) printf("Points score %i already at server\n",get_highscore(0,1,score_row)); break; case 1: if (get_highscore(1,1,score_row) == 0 || spNetC4ACommitScore(profile,"puzzletube_survival",get_highscore(1,1,score_row)*100,&survivalScore,TIME_OUT)) printf("Survival score %i already at server\n",get_highscore(1,1,score_row)); break; case 2: if (get_highscore(2,1,score_row) == 10000 || spNetC4ACommitScore(profile,"puzzletube_race",get_highscore(2,1,score_row)*100,&raceScore,TIME_OUT)) printf("Race score %i already at server\n",get_highscore(2,1,score_row)); break; } }
void award_output_awardname( int award ) { int p = player_index[ 0 ]; _score final_award_score; _score current_highscore; calculate_award_score( AWARD_LIST[ award ].awardID, p, &final_award_score ); get_highscore( AWARD_LIST[ award ].awardID, ¤t_highscore, global_highscores ); if ( AWARD_LIST[ award ].keep_highscore ) { if ( score_compare( final_award_score, current_highscore ) > 0L ) { // there is a new highscore update_highscores( AWARD_LIST[ award ].awardID, p, final_award_score, global_highscores ); sprintf( outbuf, HTML_AWARD_NAME_HIGHSCORE, AWARD_LIST[ award ].name ); } else { sprintf( outbuf, HTML_AWARD_NAME, AWARD_LIST[ award ].name ); } } else { sprintf( outbuf, HTML_AWARD_NAME, AWARD_LIST[ award ].name ); } AS_OUT( OE_PLAIN, outbuf ); }
// todo: add award here void award_output_description( int award, int for_highscore, _highscore_type *highscores ) { int p = player_index[ 0 ]; _score final_award_score; outbuf[ 0 ] = '\0'; if ( for_highscore ) { get_highscore( AWARD_LIST[ award ].awardID, & final_award_score, highscores ); //final_award_score = highscores[ AWARD_LIST[ award ].awardID ].score; } else { calculate_award_score( AWARD_LIST[ award ].awardID, p, &final_award_score ); } switch( AWARD_LIST[ award ].awardID ) { case AW_TERMINATOR : sprintf( outbuf, " for fragging %ld enemies.", final_award_score.score1 ); break; case AW_SERIAL_KILLER : sprintf( outbuf, " for a streak of %ld frags.", final_award_score.score1 ); break; case AW_FRAGMEAT : sprintf( outbuf, " for being fragged %ld times.", final_award_score.score1 ); break; case AW_RESUP_DEFENDER : sprintf( outbuf, " for being fragged only %ld times.", final_award_score.score1 ); break; case AW_GODZILLA : // only count sentries for highscore sprintf( outbuf, " for destroying %ld autosentries and %ld supplystations.", final_award_score.score1 , final_award_score.score2 ); break; case AW_ACTION_MAN : sprintf( outbuf, " for %ld frags + deaths.", final_award_score.score1 ); break; case AW_PENETRATOR: sprintf( outbuf, " for taking the flag from base %ld times.", final_award_score.score1 ); break; case AW_ESCAPE_ARTIST: sprintf( outbuf, " for %ld coast to coast captures.", final_award_score.score1 ); break; case AW_WANDERING_HANDS: sprintf( outbuf, " for %ld flagtouches.", final_award_score.score1 ); break; case AW_SAVING_PRIVATE_RYAN : sprintf( outbuf, " for defending the flagcarrier %ld times.", final_award_score.score1 ); break; case AW_GOALKEEPER : sprintf( outbuf, " for defending the flag at base %ld times.", final_award_score.score1 ); break; case AW_FLYING_GOALKEEPER : sprintf( outbuf, " for defending the flag in the field %ld times.", final_award_score.score1 ); break; case AW_TERRIER : sprintf( outbuf, " for killing the flagcarrier %ld times.", final_award_score.score1 ); break; case AW_CAPTAIN_LEMMING : sprintf( outbuf, " for committing suicide %ld times.", final_award_score.score1 ); break; case AW_SUCKZILLA : sprintf( outbuf, " for teamkilling a sentry %ld times.", final_award_score.score1 ); break; case AW_TEAMKILLER : sprintf( outbuf, " for killing %ld teammates.", final_award_score.score1 ); break; case AW_JACKASS : sprintf( outbuf, " for sitting on his grenade %ld times.", final_award_score.score1 ); break; case AW_SUCKER : sprintf( outbuf, " for teamkilling the flagcarrier %ld times.", final_award_score.score1 ); break; case AW_METEORITE : sprintf( outbuf, " for cratering %ld times.", final_award_score.score1 ); break; case AW_ROCKETLAUNCHER : sprintf( outbuf, " for %ld direct rocket kills.", final_award_score.score1 ); break; case AW_GRENADELAUNCHER : sprintf( outbuf, " for %ld direct red pipe kills.", final_award_score.score1 ); break; case AW_SNIPERRIFLE : sprintf( outbuf, " for %ld headshot kills.", final_award_score.score1 ); break; case AW_FLASH_GRENADE : sprintf( outbuf, " for %ld flashbang kills.", final_award_score.score1 ); break; case AW_SHOTGUN : sprintf( outbuf, " for %ld shotgun kills.", final_award_score.score1 ); break; case AW_FLAMETHROWER : sprintf( outbuf, " for %ld flamethrower kills.", final_award_score.score1 ); break; case AW_NAILGUN : sprintf( outbuf, " for %ld nailgun kills.", final_award_score.score1 ); break; case AW_MINIGUN : sprintf( outbuf, " for %ld minigun kills.", final_award_score.score1 ); break; case AW_SENTRY : sprintf( outbuf, " for letting his autosentry get %ld kills.", final_award_score.score1 ); break; case AW_SUPPLY_STATION: sprintf( outbuf, " for letting his supply station get %ld kills.", final_award_score.score1 ); break; case AW_STALKER : sprintf( outbuf, " for %ld close range kills.",final_award_score.score1 ); break; case AW_TOSSER : sprintf( outbuf, " for %ld handgrenade kills.", final_award_score.score1 ); break; case AW_SANDMAN: switch( final_award_score.score1) { case 1: sprintf( outbuf, " for putting 1 player to sleep using the dartgun.", final_award_score.score1 ); break; default:sprintf( outbuf, " for putting %ld people to sleep using the dartgun.", final_award_score.score1 ); break; } break; case AW_HE_CHARGE : sprintf( outbuf, " for %ld kills with a heavy explosive charge.", final_award_score.score1 ); break; case AW_CLUSTER : sprintf( outbuf, " for %ld clusterbomb kills.", final_award_score.score1 ); break; case AW_NAILGRENADE : sprintf( outbuf, " for %ld nail grenade kills.", final_award_score.score1 ); break; case AW_LAVAGRENADE : sprintf( outbuf, " for %ld napalm grenade kills.", final_award_score.score1 ); break; case AW_MOST_TEAMKILLED : sprintf( outbuf, " for being teamkilled %ld times.", final_award_score.score1 ); break; case AW_FIRST_BLOOD: sprintf( outbuf, " got the first kill. The victim was %s.", html_player_clickable( first_blood_victim ) ); break; } if ( for_highscore == FALSE ) { if ( outbuf[ 0 ] != '\0' ) { AS_OUT( OE_PLAIN, outbuf ); } } else { // this is just for highscores } }