Bazaar developer reference

CvUnit::stackTraceRemark(const FAutoVariableBase &) const

Defined in
CvUnit.cpp, line 25467
Class
CvUnit
Hook name
CivHooks::CvUnit_stackTraceRemark

Hooks

static bool BeforeCvUnit_stackTraceRemark(const CvUnit* self, const FAutoVariableBase& var, std::string& result);static void AfterCvUnit_stackTraceRemark(const CvUnit* self, const FAutoVariableBase& var, std::string& result);static std::string ReplaceCvUnit_stackTraceRemark(std::string (*original)(const CvUnit*, const FAutoVariableBase&), const CvUnit* self, const FAutoVariableBase& var);CivRegisterBefore<CivHooks::CvUnit_stackTraceRemark>(host, &BeforeCvUnit_stackTraceRemark);CivRegisterAfter<CivHooks::CvUnit_stackTraceRemark>(host, &AfterCvUnit_stackTraceRemark);CivRegisterReplace<CivHooks::CvUnit_stackTraceRemark>(host, &ReplaceCvUnit_stackTraceRemark);

Code

25467std::string CvUnit::stackTraceRemark(const FAutoVariableBase& var) const25468{25469	std::string result = "Game Turn : ";25470	char gameTurnBuffer[8] = {0};25471	int gameTurn = GC.getGame().getGameTurn();25472	sprintf_s(gameTurnBuffer, "%d\0", gameTurn);25473	result += gameTurnBuffer;25474	result += "\nValue Before Change=" + FSerialization::toString(var);25475	if(&var == &m_eActivityType)25476	{25477		result += "\nm_eActivityType changes based on canMove().\n";25478		bool moves = getMoves() > 0;25479		if(canMove())25480		{25481			result += "canMove() returned true because ";25482			if(moves)25483			{25484				result += "getMoves() > 0\n";25485				result += "---- Call Stack for m_iMoves last change: ----\n";25486				result += m_iMoves.getStackTrace();25487				result += "---- END STACK TRACE FOR m_iMoves ----\n";25488			}25489			else25490			{25491				result += "some unknown check was added there but not here in the remark code\n";25492			}25493		}25494		else25495		{25496			result += "\ncanMove() return false because ";25497			if(!moves)25498			{25499				result += "getMoves() == 0\n";25500				result += "---- Call Stack for m_iMoves last change: ----\n";25501				result += m_iMoves.getStackTrace();25502				result += "---- END STACK TRACE FOR m_iMoves ----\n";2550325504			}25505			else25506			{25507				result += "some unknown check was added there but not here in the remark code\n";25508			}25509		}25510	}25511	return result;25512}

Calls