Esempio n. 1
0
shared_ptr<Portal> PortalsSystem::_loadPortal(const String &path, bool recovery, bool start)
{
	try
	{
		shared_ptr<Portal> portal(OS_NEW Portal(getPeersCacheSize(), getDatabasesCacheSize()));
		if(_initPortal(portal, path, recovery, start) == false)
			return nullptr;

		/*
		if(getPortal(portal->getPortalID()) != nullptr)
			return false;
		*/
		if(getPortalByFullPov(portal->getFullPovID()) != nullptr)
			return nullptr;

		m_portals.push_back(portal);
		return portal;
	}
	catch(std::exception &e)
	{
		OS_LOG_ERROR(e.what());
	}
	catch(...)
	{
		OS_LOG_ERROR(_S("Unknown error loading portal '") + path + _S("'"));
	}

	return nullptr;
}
Esempio n. 2
0
	// Tests for Portal
	void testPortalUpdate(void) {
		setUp();

		Portal portal(*tileSet, 0, 0, 0, 100, true);

		TS_ASSERT(portal.is_projectile);
		TS_ASSERT(portal.wall == Wall::NONE);
		TS_ASSERT_DELTA(portal.dy, PORTAL_SPEED, 0.001);
		TS_ASSERT_DELTA(portal.dx, 0.0, 0.001);

		breakDown();        
	}
Esempio n. 3
0
TEST_F( CPortalUnit,logout_Ok_v2 )
{
    std::cout << "是否进行 logout v2 测试" << std::endl;
    char ch = getchar();
    getchar();
    if( ch != 'y' && ch != 'Y' )
    {
        return;
    }

    CPortal portal( EPORTAL_VER::VER2, "123portal" );
    Poco::Net::SocketAddress nasAddr( "192.168.10.99",2000 );
    Poco::Timespan timeout( 5,0 );
    try{
        portal.userLogout("192.168.202.5",nasAddr, timeout );
    }catch( Taiji::ExceptPortal& e )
    {
        std::cerr << "!!!!!!!!!" << e.getErrInfo() << "!!!!!!!!!!" << std::endl;
    }
}
Esempio n. 4
0
	void playfield::setfield(int mapid, char pid)
	{
		step = GST_TRANSITION;

		map_objects.clear();
		portals.clear();

		string oldbgm = map_info.getbgm();

		app.getimgcache()->setmode(ict_map);
		nl::nx::view_file("Map");

		string fullname;
		string strid = to_string(mapid);
		size_t extend = 9 - strid.length();
		for (char i = 0; i < extend; i++)
		{
			fullname.append("0");
		}

		node mapdata = nl::nx::nodes["Map"].resolve("Map/Map" + to_string(mapid / 100000000) + "/" + fullname.append(strid) + ".img");

		footholds = footholdtree(mapdata["foothold"]);
		map_info = mapinfo(mapid, mapdata["info"], vector2d(footholds.getwalls()), vector2d(footholds.getborders()));
		landr = laddersropes(mapdata["ladderRope"]);

		nl::node portalnodes = mapdata["portal"];
		for (nl::node portalnd = portalnodes.begin(); portalnd != portalnodes.end(); portalnd++)
		{
			char pid = static_cast<char>(stoi(portalnd.name()));

			portaltype ptype = static_cast<portaltype>(portalnd.resolve("pt").get_integer());
			string pname = portalnd.resolve("pn").get_string();
			vector2d ppos = vector2d(static_cast<int>(portalnd.resolve("x").get_integer()), static_cast<int>(portalnd.resolve("y").get_integer()));
			int targetid = static_cast<int>(portalnd.resolve("tm").get_integer());
			string targetpname = portalnd.resolve("tn").get_string();

			animation anim;

			nl::node pnode = nl::nx::nodes["Map"].resolve("MapHelper.img/portal/game");
			switch (ptype)
			{
			case PT_REGULAR:
				anim = animation(pnode.resolve("pv"));
				break;
			case PT_HIDDEN:
			case PT_SCRIPTED_HIDDEN:
				anim = animation(pnode.resolve("ph/default/portalContinue"));
				break;
			}

			portals.addportal(pid, portal(ptype, pname, targetid, targetid == mapid, targetpname, anim, ppos));
		}

		nl::nx::view_file("Back");

		backgrounds = mapbackgrounds(mapdata.resolve("back"), map_info.getwalls(), map_info.getborders());

		nl::nx::unview_file("Back");

		nl::nx::view_file("Tile");
		nl::nx::view_file("Obj");

		for (int i = 0; i < 8; i++)
		{
			maplayers[i] = maplayer(mapdata.resolve(to_string(i)));
		}

		nl::nx::unview_file("Tile");
		nl::nx::unview_file("Obj");
		nl::nx::unview_file("Map");
		app.getimgcache()->unlock();

		vector2d startpos = portals.getspawnpoint(pid);
		playerchar.setfh(&footholds);
		playerchar.setposition(startpos);
		view.setposition(startpos);
		view.setbounds(map_info.getwalls(), map_info.getborders());

		string path = map_info.getbgm();

		if (path != oldbgm)
		{
			bgm.Cleanup();

			wstring stemp = wstring(path.begin(), path.end());
			bgm.Load(stemp.c_str());
			bgm.SetVolume((100 * config.getbgmvolume()) - 10000);
			bgm.Play();
		}

		step = GST_GAME;
	}