Esempio n. 1
0
void RollbackManager::reportAction(const RollbackAction &action_)
{
	// Ignore if not important
	if (!action_.isImportant(gamedef)) {
		return;
	}

	RollbackAction action = action_;
	action.unix_time = time(0);

	// Figure out actor
	action.actor = current_actor;
	action.actor_is_guess = current_actor_is_guess;

	if (action.actor.empty()) { // If actor is not known, find out suspect or cancel
		v3s16 p;
		if (!action.getPosition(&p)) {
			return;
		}

		action.actor = getSuspect(p, 83, 1);
		if (action.actor.empty()) {
			return;
		}

		action.actor_is_guess = true;
	}

	addAction(action);
}
Esempio n. 2
0
	void reportAction(const RollbackAction &action_)
	{
		// Ignore if not important
		if(!action_.isImportant(m_gamedef))
			return;
		RollbackAction action = action_;
		action.unix_time = time(0);
		// Figure out actor
		action.actor = m_current_actor;
		action.actor_is_guess = m_current_actor_is_guess;
		// If actor is not known, find out suspect or cancel
		if(action.actor.empty()){
			v3s16 p;
			if(!action.getPosition(&p))
				return;
			action.actor = getSuspect(p, 83, 1);
			if(action.actor.empty())
				return;
			action.actor_is_guess = true;
		}
		infostream<<"RollbackManager::reportAction():"
				<<" time="<<action.unix_time
				<<" actor=\""<<action.actor<<"\""
				<<(action.actor_is_guess?" (guess)":"")
				<<" action="<<action.toString()
				<<std::endl;
		addAction(action);
	}