src/ai/api/ai_testmode.cpp
author truebrain
Wed, 18 Jun 2008 10:58:16 +0000
branchnoai
changeset 11007 d57c2e53679b
parent 10339 ce6cd68d9eb8
permissions -rw-r--r--
(svn r13563) [NoAI] -Fix: added some asserts to ensure sanity of AI*Modes.
-Note: it has to be said that currently 'scoping' is broken, and it is possible to cause an assert. But it is better to have an assert, than to build stuff for real in TestMode ;)
/* $Id$ */

/** @file ai_testmode.cpp Implementation of AITestMode. */

#include "ai_testmode.hpp"
#include "../../command_type.h"

bool AITestMode::ModeProc(TileIndex tile, uint32 p1, uint32 p2, uint procc, CommandCost costs)
{
	/* In test mode we only return 'false', telling the DoCommand it
		*  should stop after testing the command and return with that result. */
	return false;
}

AITestMode::AITestMode()
{
	this->last_mode     = this->GetDoCommandMode();
	this->last_instance = this->GetDoCommandModeInstance();
	this->SetDoCommandMode(&AITestMode::ModeProc, this);
}

AITestMode::~AITestMode()
{
	assert(this->GetDoCommandModeInstance() == this);
	this->SetDoCommandMode(this->last_mode, this->last_instance);
}