Accessing the Scroll class from a ScrollObject

Being able to access common functions in the Scroll class is pretty essential in a Orx/Scroll based game. The Scroll class provides a singleton which can be accessed from anywhere in a ScrollObject class:

MyClass::GetInstance()

Imagine for a second that you had a function in your Scroll class to update a score. Collisions using OnCollide in the various instances of ScrollObject(s) might all need to update the score with different values.

Let's say the score function looks like this in the MyGame Scroll class:

void MyGame::AddToScore(int points) {
	score += points;
}

And say we had a Hero ScrollObject class which happened to collide with a Coin ScrollObject class:

orxBOOL Hero::OnCollide(ScrollObject *_poCollider, 
                        orxBODY_PART *_pstPart, 
                        orxBODY_PART *_pstColliderPart, 
                        const orxVECTOR &_rvPosition, 
                        const orxVECTOR &_rvNormal)
{
 
	if (_poCollider == orxNULL) {
		return;
	}
 
	const orxSTRING colliderName = _poCollider->GetName();
 
	if (orxString_Compare(colliderName, "Coin") == 0)
	{
		MyGame::GetInstance().AddToScore(100);
	}
 
	return orxTRUE;
}

The main point is that once the collision is detected, we can update the score in the Scroll class using the singleton:

MyGame::GetInstance().AddToScore(100);

That's all there is to it.