int main(int _argc, char **_argv) { run = true; argc = _argc; argv = _argv; #if THREADS InitializeCriticalSectionAndSpinCount(&log_crit, 4000); #endif AW_SetBinDir(); fclose(fopen((bin_dir + "log.txt").c_str(), "w+")); log((str("Binary directory: ") + bin_dir + "\n").c_str()); atexit(exit); TCOD_sys_get_current_resolution(&resx, &resy); #if FULLSCREEN CON_RES_X = floor(resx/CHAR_SIZE); CON_RES_Y = floor(resy/CHAR_SIZE); #else CON_RES_X = 70; CON_RES_Y = 40; #endif TCOD_console_set_custom_font("./data/terminal.png", TCOD_FONT_LAYOUT_ASCII_INROW, 16, 48); TCOD_console_init_root(CON_RES_X, CON_RES_Y, "ASCIIWar", false, TCOD_RENDERER_SDL); con = TCOD_console_new(CON_RES_X, CON_RES_Y); #if FULLSCREEN TCOD_sys_force_fullscreen_resolution(resx, resy); TCOD_console_set_fullscreen(true); #endif TCOD_sys_get_current_resolution(&resx, &resy); TCOD_mouse_show_cursor(true); TCOD_sys_set_fps(1000/NORMAL_TIME_STEP); #if FULLSCREEN int offx, offy; TCOD_sys_get_fullscreen_offsets(&offx, &offy); MINIMAP_START_X = offx+CHAR_SIZE*MINIMAP_CON_START_X; LAGOMETER_START_X = resx-offx-LAGOMETER_SIZE; #endif TCOD_console_set_keyboard_repeat(1, 0); trace("ASCIIWar has started."); trace("Parsing configs..."); TCOD_parser_t game_parser = TCOD_parser_new(); TCOD_parser_new_struct(game_parser, (char*)"game"); TCOD_parser_run(game_parser,"game.cfg", &game_parser_listener); trace("Configs parsing done."); trace("Master server at: " + game_desc.master_server); client_gi.name = "asciiwar"; #if RELEASE TCOD_console_credits(); #endif if(_argc >= 4) { game_desc.game_name = (char*)argv[1]; game_desc.player_count_per_team = atoi((char*)argv[2]); game_desc.team_count = atoi((char*)argv[3]); } else { game_desc.game_name = "bahla"; game_desc.player_count_per_team = 1+1; game_desc.team_count = 1; } // client game instance GI_Init(&client_gi, argc, argv); GI_ConnectToMasterServer(&client_gi); GI_AddState(&client_gi, AW_state_join); while(run && !TCOD_console_is_window_closed()) GI_Update(&client_gi); trace("Deleting game instance..."); GI_Close(&client_gi); trace(str("Execution time: " + f2a(TCOD_sys_elapsed_seconds()/60) + " minutes.")); return 0; }
float TCODSystem::getElapsedSeconds() { return TCOD_sys_elapsed_seconds(); }
int main( int argc, char *argv[] ) { char *font="tilesense/libtcod/fonts/courier12x12_aa_tc.png"; int nb_char_horiz=0,nb_char_vertic=0; int font_flags=TCOD_FONT_TYPE_GREYSCALE|TCOD_FONT_LAYOUT_TCOD; TCOD_console_set_custom_font(font,font_flags,nb_char_horiz,nb_char_vertic); TCOD_console_init_root(80,40,"salamandeRL",false); Map room = initRoom(); Object player = initPlayer(room); object_sense(player); TCOD_sys_set_fps(30); float elapsed = 0; char finished = 0; TCOD_key_t key = {TCODK_NONE,0}; TCOD_console_set_foreground_color(NULL,TCOD_white); do { key = TCOD_console_check_for_keypress(TCOD_KEY_PRESSED); if(key.vk != TCODK_NONE) { TCOD_console_clear(NULL); } TCOD_console_print_right(NULL,79,26,TCOD_BKGND_NONE,"last frame : %3d ms (%3d fps)", (int)(TCOD_sys_get_last_frame_length()*1000), TCOD_sys_get_fps()); TCOD_console_print_right(NULL,79,27,TCOD_BKGND_NONE,"elapsed : %8dms %4.2fs", TCOD_sys_elapsed_milli(),TCOD_sys_elapsed_seconds()); TCOD_console_print_left(NULL,0,27,TCOD_BKGND_NONE,"other stat stuff can go here"); //map drawmap(room, player); TCOD_console_print_left(NULL, object_position(player).x*2, object_position(player).y, TCOD_BKGND_NONE,"@"); //divider TCOD_console_print_left(NULL,0,28,TCOD_BKGND_NONE, "--------------------------------------------------------------------------------" ); //text display TCOD_console_print_left(NULL,2,29,TCOD_BKGND_NONE,"we'll probably put text down here."); /* update the game screen */ TCOD_console_flush(); if(key.vk == TCODK_RIGHT) { map_turn_object(room, "@", 1); } else if(key.vk == TCODK_LEFT) { map_turn_object(room, "@", -1); } else if(key.vk == TCODK_CHAR) { switch(key.c) { case 'w': map_move_object(room, "@", (mapVec){0, -1, 0}); break; case 'a': map_move_object(room, "@", (mapVec){-1, 0, 0}); break; case 's': map_move_object(room, "@", (mapVec){0, 1, 0}); break; case 'd': map_move_object(room, "@", (mapVec){1, 0, 0}); break; case 'q': finished = 1; break; //next, handle chomping default: break; } } } while (!finished && !TCOD_console_is_window_closed()); return 0; }