예제 #1
0
void
Map::Add(T *obj)
{
	CellPair p = LeGACY::ComputeCellPair(obj->GetPositionX(), obj->GetPositionY());

	assert(obj);

	if(p.x_coord >= TOTAL_NUMBER_OF_CELLS_PER_MAP || p.y_coord >= TOTAL_NUMBER_OF_CELLS_PER_MAP)
	{
		sLog.outError("Map::Add: Object " I64FMTD " have invalid coordinates X:%u Y:%u grid cell [%u,%u]", obj->GetGUID(), obj->GetPositionX(), obj->GetPositionY(), p.x_coord, p.y_coord);
		return;
	}

	Cell cell(p);
	EnsureGridCreated(GridPair(cell.GridX(), cell.GridY()));
	NGridType *grid = getNGrid(cell.GridX(), cell.GridY());
	assert( grid != NULL );

	AddToGrid(obj,grid,cell);
	obj->AddToWorld();

	DEBUG_LOG("Object %u enters grid[%u,%u]", GUID_LOPART(obj->GetGUID()), cell.GridX(), cell.GridY());

	UpdateObjectVisibility(obj,cell,p);

	AddNotifier(obj,cell,p);
}
예제 #2
0
BOOL	MainWindow::AfterCreated()
{
	SetIcon((Util::GetAppPath() + L"/resources/icon/amao.ico").c_str());
	CreateControls();
	AddNotifier(this);
	return TRUE;
}
예제 #3
0
void Map::Add(Player *player)
{
	player->AddToWorld();

	SendInitSelf(player);

	// update player state for other and vice-versa
	CellPair p = LeGACY::ComputeCellPair(player->GetPositionX(), player->GetPositionY());
	Cell cell(p);
	EnsureGridLoadedForPlayer(cell, player, true);

	// TODO: FIX HERE
	UpdatePlayerVisibility(player, cell, p);
	//UpdateObjectsVisibilityFor(player, cell, p);
	
	AddNotifier(player, cell, p);

	// reinitialize reset time
	//InitResetTime();

}
예제 #4
0
CNotificationHelper::CNotificationHelper()
{
	m_NotificationSwitchInterval = 0;
	m_NotificationSensorInterval = 12 * 3600;

	/* more notifiers can be added here */

	AddNotifier(new CNotificationProwl());
	AddNotifier(new CNotificationNma());
	AddNotifier(new CNotificationPushbullet());
	AddNotifier(new CNotificationPushover());
	AddNotifier(new CNotificationPushalot());
	AddNotifier(new CNotificationEmail());
	AddNotifier(new CNotificationSMS());
	AddNotifier(new CNotificationHTTP());
	AddNotifier(new CNotificationKodi());
	AddNotifier(new CNotificationLogitechMediaServer());
	AddNotifier(new CNotificationGCM());
}