Beispiel #1
0
void game_init(void) {
    int i;

    srand(time(NULL));
    window = SDL_CreateWindow("Pixel Story", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, SCREEN_WIDTH,
                              SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
    if (window == NULL) {
        send_error(EXIT_FAILURE);
    }
    render = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
    if (render == NULL) {
        send_error(EXIT_FAILURE);
    }
    ani_init(render, "../config/img_monitor.txt", &a);
    map = (l_map *)calloc(a->anim_count, sizeof(l_map));
    for (i = 0; i < a->anim_count; i++) {
        map[i].x = ((rand() % 180 / 10) + 1) * 16;
        map[i].y = ((rand() % 130 / 10) + 1) * 16;
        printf("%d = [%d, %d]\n", i, map[i].x, map[i].y);
    }
    l.tex = IMG_LoadTexture(render, "../game_art/tileset.gif");
    for (i = 0; i < 100; i++) {
        l.map[rand() % 20][rand() % 15] = 21;
    }
    l.map[0][0] = 0;
    player.tex = IMG_LoadTexture(render, "../game_art/img_keyboard.gif");
}
Beispiel #2
0
int main(int argc, char **argv)
{
	ani_init();
	ani_print_attack_speed();
	exit(0);
}
Beispiel #3
0
char 
load(ImlibImage *im, ImlibProgressFunction progress, char progress_granularity, char immediate_load)
{
  MsAni *ani = NULL;
  MsChunk *chunk;

  /* if immediate_load is 1, then dont delay image laoding as below, or */
  /* already data in this image - dont load it again */
  if (im->data)
    return 0;

  /* set the format string member to the lower-case full extension */
  /* name for the format - so example names would be: */
  /* "png", "jpeg", "tiff", "ppm", "pgm", "pbm", "gif", "xpm" ... */

  if (!im->format)
    im->format = strdup("ani");

  if (im->loader || immediate_load || progress)
    {
      if (! (ani = ani_init((im->real_file))))
	return 0;

      ani_load (ani);

      for (chunk = ani->chunks; chunk; chunk = chunk->next)
	{
	  if (chunk->chunk_id == 0x6E6F6369)
	    {
	      ImlibLoadError err;
	      ImlibImage *temp_im;
	      char *filename;

	      if ( !(filename = ani_save_ico(chunk)))
		return 0;

	      temp_im = __imlib_LoadImage(filename, progress, progress_granularity,
					  immediate_load, 0, &err);

	      im->w = temp_im->w;
	      im->h = temp_im->h;
	      SET_FLAG(im->flags, F_HAS_ALPHA);

	      if (! (im->data = (DATA32 *) malloc(sizeof(DATA32) * im->w * im->h)))
		{
		  free(filename);
		  return 0;
		}

	      memcpy(im->data, temp_im->data, sizeof(DATA32) * im->w * im->h);
	      unlink(filename);
	      free(filename);
	      break;
	    }
	}

      ani_cleanup (ani);
    }
  
  if (progress)
    {
      progress(im, 100, 0, 0, im->w, im->h);      
    }
  
  return 1;

  progress_granularity = 0;
}
Beispiel #4
0
int main(int argc, char **argv)
{
#ifdef DEBUG_ALLOC
	DebugAllocator::StaticSetUp();
#endif

	ilInit(); // DevIL Initialize

	WriteVersion();
	
	SECTREE_MANAGER	sectree_manager;
	CHARACTER_MANAGER	char_manager;
	ITEM_MANAGER	item_manager;
	CShopManager	shop_manager;
	CMobManager		mob_manager;
	CMotionManager	motion_manager;
	CPartyManager	party_manager;
	CSkillManager	skill_manager;
	CPVPManager		pvp_manager;
	LZOManager		lzo_manager;
	DBManager		db_manager;
	AccountDB 		account_db;

	LogManager		log_manager;
	MessengerManager	messenger_manager;
	P2P_MANAGER		p2p_manager;
	CGuildManager	guild_manager;
	CGuildMarkManager mark_manager;
	CDungeonManager	dungeon_manager;
	CRefineManager	refine_manager;
	CBanwordManager	banword_manager;
	CPrivManager	priv_manager;
	CWarMapManager	war_map_manager;
	building::CManager	building_manager;
	CTargetManager	target_manager;
	marriage::CManager	marriage_manager;
	marriage::WeddingManager wedding_manager;
	CItemAddonManager	item_addon_manager;
	CArenaManager arena_manager;
	COXEventManager OXEvent_manager;
	CMonarch		Monarch;
	CHorseNameManager horsename_manager;

	DESC_MANAGER	desc_manager;

	TrafficProfiler	trafficProfiler;
	CTableBySkill SkillPowerByLevel;
	CPolymorphUtils polymorph_utils;
	CProfiler		profiler;
	CBattleArena	ba;
	SpamManager		spam_mgr;
	CThreeWayWar	threeway_war;
	CDragonLairManager	dl_manager;

	CSpeedServerManager SSManager;
	DSManager dsManager;

#ifdef __AUCTION__
	AuctionManager auctionManager;
#endif

	if (!start(argc, argv)) {
		CleanUpForEarlyExit();
		return 0;
	}

	quest::CQuestManager quest_manager;

	if (!quest_manager.Initialize()) {
		CleanUpForEarlyExit();
		return 0;
	}

	MessengerManager::instance().Initialize();
	CGuildManager::instance().Initialize();
	fishing::Initialize();
	OXEvent_manager.Initialize();
	if (speed_server)
		CSpeedServerManager::instance().Initialize();

	Cube_init();
	Blend_Item_init();
	ani_init();
	PanamaLoad();

	if ( g_bTrafficProfileOn )
		TrafficProfiler::instance().Initialize( TRAFFIC_PROFILE_FLUSH_CYCLE, "ProfileLog" );

	// Client PackageCrypt

	//TODO : make it config
	const std::string strPackageCryptInfoDir = "package/";
	if( !desc_manager.LoadClientPackageCryptInfo( strPackageCryptInfoDir.c_str() ) )
	{
		sys_err("Failed to Load ClientPackageCryptInfo File(%s)", strPackageCryptInfoDir.c_str());	
	}

#if defined (__FreeBSD__) && defined(__FILEMONITOR__)
	PFN_FileChangeListener pPackageNotifyFunc =  &(DESC_MANAGER::NotifyClientPackageFileChanged);
	//FileMonitorFreeBSD::Instance().AddWatch( strPackageCryptInfoName, pPackageNotifyFunc );
#endif

	while (idle());

	sys_log(0, "<shutdown> Starting...");
	g_bShutdown = true;
	g_bNoMoreClient = true;

	if (g_bAuthServer)
	{
		int iLimit = DBManager::instance().CountQuery() / 50;
		int i = 0;

		do
		{
			DWORD dwCount = DBManager::instance().CountQuery();
			sys_log(0, "Queries %u", dwCount);

			if (dwCount == 0)
				break;

			usleep(500000);

			if (++i >= iLimit)
				if (dwCount == DBManager::instance().CountQuery())
					break;
		} while (1);
	}

	sys_log(0, "<shutdown> Destroying CArenaManager...");
	arena_manager.Destroy();
	sys_log(0, "<shutdown> Destroying COXEventManager...");
	OXEvent_manager.Destroy();

	sys_log(0, "<shutdown> Disabling signal timer...");
	signal_timer_disable();

	sys_log(0, "<shutdown> Shutting down CHARACTER_MANAGER...");
	char_manager.GracefulShutdown();
	sys_log(0, "<shutdown> Shutting down ITEM_MANAGER...");
	item_manager.GracefulShutdown();

	sys_log(0, "<shutdown> Flushing db_clientdesc...");
	db_clientdesc->FlushOutput();
	sys_log(0, "<shutdown> Flushing p2p_manager...");
	p2p_manager.FlushOutput();

	sys_log(0, "<shutdown> Destroying CShopManager...");
	shop_manager.Destroy();
	sys_log(0, "<shutdown> Destroying CHARACTER_MANAGER...");
	char_manager.Destroy();
	sys_log(0, "<shutdown> Destroying ITEM_MANAGER...");
	item_manager.Destroy();
	sys_log(0, "<shutdown> Destroying DESC_MANAGER...");
	desc_manager.Destroy();
	sys_log(0, "<shutdown> Destroying quest::CQuestManager...");
	quest_manager.Destroy();
	sys_log(0, "<shutdown> Destroying building::CManager...");
	building_manager.Destroy();

	sys_log(0, "<shutdown> Flushing TrafficProfiler...");
	trafficProfiler.Flush();

	destroy();

#ifdef DEBUG_ALLOC
	DebugAllocator::StaticTearDown();
#endif

	return 1;
}