Example #1
0
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;
}
Example #2
0
float TCODSystem::getElapsedSeconds() {
	return TCOD_sys_elapsed_seconds();
}
Example #3
0
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;
}