int GameSelectWorld::getGameNumber(Room *room) { NumberObject *first = NULL, *second = NULL; int gameNumber = 0; for (UINT i=0; i<room->getObjects()->length(); i++) { if ( (first != NULL) && (second != NULL) ) break; GameObject *object = (GameObject *)(room->getObjects()->elementAt(i)); if ( (object->getType() == GameObject::GAMEOBJECT_TYPE_NUMBER) && (object->getIsBeingHeld() == FALSE) ) { if (first != NULL) second = (NumberObject *)object; else first = (NumberObject *)object; } } if (first != NULL) { if (second == NULL) { gameNumber = first->getNumber(); } else { // the game number is the number as readable on screen (ignoring vertical // position) if (first->getX() < second->getX()) gameNumber = ( first->getNumber() * 10 ) + second->getNumber(); else gameNumber = ( second->getNumber() * 10 ) + first->getNumber(); } } return gameNumber; }