Ejemplo n.º 1
0
bool CExitPellerator::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
	CString name = getName();
	
	if (name == "ExitPellerator") {
		if (_statics->_v2 != 2) {
			switch (getRandomNumber(2)) {
			case 0:
				CPellerator::_soundHandle = queueSound("z#457.wav", CPellerator::_soundHandle);
				break;
			case 1:
				CPellerator::_soundHandle = queueSound("z#458.wav", CPellerator::_soundHandle);
				break;
			default:
				CPellerator::_soundHandle = queueSound("z#464.wav", CPellerator::_soundHandle);
				break;
			}
		}

		switch (_statics->_v2) {
		case 0:
			changeView("PromenadeDeck.Node 1.W");
			break;
		case 1:
			changeView("MusicRoomLobby.Node 1.S");
			break;
		case 4:
			changeView("TopOfWell.Node 6.N");
			break;
		case 5:
			changeView("1stClassRestaurant.Lobby Node.E");
			break;
		case 6:
			changeView(_statics->_isWinter ? "FrozenArboretum.Node 4.S" : "Arboretum.Node 4.W");
			break;
		default:
			petDisplayMessage(2, EXIT_FROM_OTHER_SIDE);
			CPellerator::_soundHandle = queueSound("z#438.wav", CPellerator::_soundHandle);

		}
	} else if (name == "ExitPellerator2") {
		if (_statics->_v2 == 2) {
			switch (getRandomNumber(2)) {
			case 0:
				CPellerator::_soundHandle = queueSound("z#457.wav", CPellerator::_soundHandle);
				break;
			case 1:
				CPellerator::_soundHandle = queueSound("z#458.wav", CPellerator::_soundHandle);
				break;
			default:
				CPellerator::_soundHandle = queueSound("z#464.wav", CPellerator::_soundHandle);
				break;
			}
		}

		if (_statics->_v2 == 2) {
			changeView("Bar.Node 1.N");
		} else {
			petDisplayMessage(2, EXIT_FROM_OTHER_SIDE);
			CPellerator::_soundHandle = queueSound("z#438.wav", CPellerator::_soundHandle);
		}
	}

	return true;
}
Ejemplo n.º 2
0
bool CTrueTalkNPC::NPCQueueIdleAnimMsg(CNPCQueueIdleAnimMsg *msg) {
	int rndVal = getRandomNumber(_fieldF8 - 1) - (_fieldF8 / 2);
	_speechTimerId = startAnimTimer("NPCIdleAnim", _fieldF4 + rndVal, 0);

	return true;
}
Ejemplo n.º 3
0
bool CDoorbot::TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg) {
	CTrueTalkNPC::TrueTalkNotifySpeechEndedMsg(msg);

	if (_npcFlags & NPCFLAG_DOORBOT_INTRO) {
		// Initial speech by Doorbot in 
		switch (msg->_dialogueId) {
		case 10552:
			playClip("SE Try Buttons", MOVIE_NOTIFY_OBJECT);
			_introMovieNum = 9;
			break;

		case 10553:
			enableMouse();
			break;

		case 10557:
			playClip("SE Move To Right", MOVIE_NOTIFY_OBJECT);
			_introMovieNum = 11;
			break;

		case 10559:
			stopAnimTimer(_timerId);
			_timerId = addTimer(0, 2500, 0);
			break;

		case 10560:
			petShow();
			petSetArea(PET_CONVERSATION);
			stopAnimTimer(_timerId);
			_timerId = addTimer(1, 1000, 0);
			break;

		case 10561:
			enableMouse();
			_introMovieNum = 1;
			stopAnimTimer(_timerId);
			_timerId = addTimer(2, 10000, 0);
			break;

		case 10562:
			if (_introMovieNum == 1) {
				stopAnimTimer(_timerId);
				_timerId = addTimer(2, getRandomNumber(5000), 0);
			}
			break;

		case 10563:
		case 10564:
			disableMouse();
			startTalking(this, 221480);
			break;

		case 10565:
			startTalking(this, 221481);
			break;

		case 10566:
			stopAnimTimer(_timerId);
			_timerId = 0;
			if (_field110 == 2) {
				playClip("Cloak On", MOVIE_NOTIFY_OBJECT);
				_introMovieNum = 6;
			} else {
				_timerId = addTimer(3, 2000, 0);
			}
			break;

		case 10567: {
			CActMsg actMsg("BecomeGettable");
			actMsg.execute("Photograph");
			enableMouse();
			stopAnimTimer(_timerId);
			_timerId = addTimer(4, 5000, 0);
			break;
		}

		case 10568:
			// Start moving cursor to photograph
			mouseDisableControl();
			mouseSetPosition(Point(600, 250), 2500);
			_timerId = addTimer(6, 2500, 0);
			break;

		case 10569:
			if (_field110 != 2) {
				stopAnimTimer(_timerId);
				_timerId = addTimer(5, 3000, 0);
			}
			break;

		case 10570:
			mouseSetPosition(Point(200, 430), 2500);
			_timerId = addTimer(7, 3000, 0);
			break;

		case 10571:
			playClip("Cloak On", MOVIE_NOTIFY_OBJECT);
			_introMovieNum = 6;
			break;

		default:
			break;
		}
	}

	return true;
}
Ejemplo n.º 4
0
int main() {
    int number = getRandomNumber();
    printf("%d\n", number);
    return 0;
}
Ejemplo n.º 5
0
 void MultiPeak::calcCellParameters(spatial_cell::SpatialCell* cell,creal& t) {
    setRandomCellSeed(cell);
    rhoRnd = 0.5 - getRandomNumber();
 }
Ejemplo n.º 6
0
	void Vector3D::setRandomVector(){
		//unsigned char randNum;
		x = getRandomNumber();
		y = getRandomNumber();
		z = getRandomNumber();
	}
Ejemplo n.º 7
0
bool CUpLighter::EnterRoomMsg(CEnterRoomMsg *msg) {
	_inRoom = true;
	addTimer(5000 + getRandomNumber(15000), 0);
	return true;
}
Ejemplo n.º 8
0
void IgorEngine::PART_25_EXEC_ACTION(int action) {
	switch (action) {
	case 101:
		_currentPart = 260;
		break;
	case 102:
		switch (getRandomNumber(3) + 1) {
		case 1:
			ADD_DIALOGUE_TEXT(204, 2);
			ADD_DIALOGUE_TEXT(206, 1);
			SET_DIALOGUE_TEXT(1, 2);
			startIgorDialogue();
			break;
		case 2:
			ADD_DIALOGUE_TEXT(207, 1);
			ADD_DIALOGUE_TEXT(208, 1);
			ADD_DIALOGUE_TEXT(209, 1);
			ADD_DIALOGUE_TEXT(206, 1);
			SET_DIALOGUE_TEXT(1, 4);
			startIgorDialogue();
			break;
		case 3:
			ADD_DIALOGUE_TEXT(210, 1);
			ADD_DIALOGUE_TEXT(211, 1);
			ADD_DIALOGUE_TEXT(206, 1);
			SET_DIALOGUE_TEXT(1, 3);
			startIgorDialogue();
			break;
		}
		break;
	case 103:
		ADD_DIALOGUE_TEXT(201, 1);
		SET_DIALOGUE_TEXT(1, 1);
		startIgorDialogue();
		break;
	case 104:
		ADD_DIALOGUE_TEXT(212, 1);
		ADD_DIALOGUE_TEXT(213, 1);
		ADD_DIALOGUE_TEXT(214, 1);
		ADD_DIALOGUE_TEXT(215, 1);
		ADD_DIALOGUE_TEXT(216, 2);
		SET_DIALOGUE_TEXT(1, 5);
		startIgorDialogue();
		break;
	case 105:
		PART_25_ACTION_105();
		break;
	case 106:
		ADD_DIALOGUE_TEXT(203, 1);
		SET_DIALOGUE_TEXT(1, 1);
		startIgorDialogue();
		break;
	case 107:
		PART_25_ACTION_107();
		break;
	case 108:
		PART_25_ACTION_108();
		break;
	case 109:
		_currentPart = 310;
		break;
	default:
		error("PART_25_EXEC_ACTION unhandled action %d", action);
		break;
	}
}
Ejemplo n.º 9
0
int getRandomNumber(int x)
{
	return(getRandomNumber(0,x));
}
String GoogleAnalyticsUrlStrategy::getCookies()
{
	String builder;
	String param;
	// unique visitor id cookie has to be unique per eclipse installation
	//String timeStamp = _T("-1");
	// //String.valueOf( System.currentTimeMillis() );

	param = _T("");
	param += _T("999.");
	param += m_pGoogleParameters->getUserId() + IGoogleAnalyticsParameters::DOT;
	param += m_pGoogleParameters->getFirstVisit() + IGoogleAnalyticsParameters::DOT;
	param += m_pGoogleParameters->getLastVisit() + IGoogleAnalyticsParameters::DOT;
	param += m_pGoogleParameters->getCurrentVisit() + IGoogleAnalyticsParameters::DOT;
	param += UIntToString_( m_pGoogleParameters->getVisitCount() );
	param += IGoogleAnalyticsParameters::SEMICOLON;
	GoogleAnalyticsCookie gac1( IGoogleAnalyticsParameters::PARAM_COOKIES_UNIQUE_VISITOR_ID,
		param, IGoogleAnalyticsParameters::PLUS_SIGN );
	gac1.appendTo( builder );

	param = _T("");
	param += _T("999.");
	param += m_pGoogleParameters->getFirstVisit() + IGoogleAnalyticsParameters::DOT;
	param += _T("1.1.");
	GoogleAnalyticsCookie gac2( IGoogleAnalyticsParameters::PARAM_COOKIES_REFERRAL_TYPE, param );
	gac2.appendTo( builder );

	// new
	/** /
	param = _T("");
	param += _T("1");
	GoogleAnalyticsCookie gac3( IGoogleAnalyticsParameters::PARAM_COOKIES_SESSION, param, 
		IGoogleAnalyticsParameters::SEMICOLON, IGoogleAnalyticsParameters::PLUS_SIGN );
	gac3.appendTo( builder );
	/**/
	// new
	/** /
	param = _T("");
	param += _T("1");
	GoogleAnalyticsCookie gac4( IGoogleAnalyticsParameters::PARAM_COOKIES_BROWSERSESSION, param, 
		IGoogleAnalyticsParameters::SEMICOLON, IGoogleAnalyticsParameters::PLUS_SIGN );
	gac4.appendTo( builder );
	/**/

	param = _T("");
	param += _T("(direct)");
	GoogleAnalyticsCookie gac5( IGoogleAnalyticsParameters::PARAM_COOKIES_UTMCSR, param, IGoogleAnalyticsParameters::PIPE );
	gac5.appendTo( builder );

	param = _T("");
	param += _T("(direct)");
	GoogleAnalyticsCookie gac6( IGoogleAnalyticsParameters::PARAM_COOKIES_UTMCCN, param, IGoogleAnalyticsParameters::PIPE );
	gac6.appendTo( builder );

	param = _T("");
	param += _T("(none)");
	GoogleAnalyticsCookie gac7( IGoogleAnalyticsParameters::PARAM_COOKIES_UTMCMD, param, IGoogleAnalyticsParameters::PIPE );
	gac7.appendTo( builder );

	param = m_pGoogleParameters->getKeyword();
	GoogleAnalyticsCookie gac8( IGoogleAnalyticsParameters::PARAM_COOKIES_KEYWORD, param, IGoogleAnalyticsParameters::PIPE );
	gac8.appendTo( builder );

	// <tt>User defined Value<tt> cookie format: (domain hash).(setvar value)
	// 
	// @see <a
	//      href="http://www.martynj.com/google-analytics-cookies-tracking-multiple-domains-filters">__utmv,
	//      __utmb, __utmc cookies formats and more</a>
	param = getRandomNumber();
	param += IGoogleAnalyticsParameters::DOT;
	param += m_pGoogleParameters->getUserDefined();
	GoogleAnalyticsCookie gac9( IGoogleAnalyticsParameters::PARAM_COOKIES_USERDEFINED, param );
	gac9.appendTo( builder );

	builder += IGoogleAnalyticsParameters::SEMICOLON;

	return builder;
}
Ejemplo n.º 11
0
BigInt pick(unsigned numbits)
{
  return getRandomNumber(numbits);
}
Ejemplo n.º 12
0
void TSGame::displayGame()
{
     //Game
    if(levelClock.getElapsedTime().asMicroseconds()/1000.f > 1000.f/level)
    {
        int randomInt {static_cast<int>(getRandomNumber(-1.f,9.f))};
        levelClock.restart();
        auto AI = (randomInt >= 4 ? enemyAILine : enemyAISine);
        randomInt %= 4;
        sf::Vector2f windowSize = transformVector<sf::Vector2u, sf::Vector2f>(mainWindow.getSize());
        sf::Vector2f target {getRandomNumber(0.f, windowSize.x), getRandomNumber(0.f, windowSize.y)};
        sf::Vector2f source;
        switch(randomInt)
        {
        case 0:
            source = sf::Vector2f {-20.f, getRandomNumber(0.f, windowSize.y)};
            break;
        case 1:
            source = sf::Vector2f {windowSize.x+20.f, getRandomNumber(0.f, windowSize.y)};
            break;
        case 2:
            source = sf::Vector2f {getRandomNumber(0.f, windowSize.y), windowSize.x+20.f};
            break;
        case 3:
            source = sf::Vector2f {getRandomNumber(0, windowSize.y), -20.f};
            break;
        default:
            break;
        }
        Enemies.emplace_back(new Enemy {sf::Color::White, source, target, AI});
        levelCounter++;
        if(levelCounter > level * 10)
            level++;
    }

    incrementColor(enemyColor);

    Score = scoreClock.getElapsedTime().asMilliseconds()*level/1000.f;

    for(unsigned int i = 0; i < Enemies.size(); ++i)
    {
        (*Enemies[i]).Update(gameClock.getElapsedTime().asMicroseconds()/1000.f);
        (*Enemies[i]).setColor(enemyColor);
        (*Enemies[i]).render(mainWindow);
        if(collides((*Enemies[i]).getShape().getPosition(), player.getPosition()))
        {
            gameStatus = true;
            Enemies.clear();
            levelCounter = 0;
            level = 1;
            break;
        }
        if((*Enemies[i]).getShape().getPosition().x > mainWindow.getSize().x + 100 ||
                (*Enemies[i]).getShape().getPosition().x < -100 ||
                (*Enemies[i]).getShape().getPosition().y > mainWindow.getSize().y + 100 ||
                (*Enemies[i]).getShape().getPosition().y < -100)
        {
            Enemies.erase(Enemies.begin()+i);
        }
    }
    std::string scoreString {std::to_string(Score)};
    scoreString = scoreString.substr(0, scoreString.find('.')+3);

    textOverlay.setString(std::string {"Level: "} + std::to_string(level) +
                          std::string {"\nScore: "}  + scoreString +
                          std::string {"\nEntities: "} + std::to_string(Enemies.size()));
    mainWindow.draw(textOverlay);
}
Ejemplo n.º 13
0
bool CSuccUBus::MovieEndMsg(CMovieEndMsg *msg) {
	CPetControl *pet = getPetControl();
	uint petRoomFlags = pet ? pet->getRoomFlags() : 0;

	if (msg->_endFrame == _offEndFrame) {
		if (_endingStartFrame >= 0)
			playSound("z#30.wav", 100);

		if (_signalFlag) {
			_signalFlag = false;
			setVisible(false);
			CSignalObject signalMsg;
			signalMsg._numValue = 1;
			signalMsg.execute(_signalTarget);
		}
	}

	if (msg->_endFrame == _onEndFrame) {
		bool flag = false;

		if (pet && !mailExists(petRoomFlags)) {
			CGameObject *mailObject = _enabled && compareRoomNameTo("Titania") ?
				findMailByFlags(RFC_TITANIA, petRoomFlags) :
				findMailByFlags(_flagsComparison, petRoomFlags);

			if (mailObject) {
				switch (getRandomNumber(4)) {
				case 0:
					startTalking(this, 70094, findView());
					break;
				case 1:
					startTalking(this, 70095, findView());
					break;
				case 2:
					startTalking(this, 70096, findView());
					break;
				case 3:
					startTalking(this, 70098, findView());
					break;
				case 4:
					startTalking(this, 70099, findView());
					break;
				default:
					break;
				}
				flag = true;
			}
		}

		if (!_field188 && !flag) {
			stopSound(_soundHandle);
			_soundHandle = -1;

			switch (getRandomNumber(_style ? 7 : 5, &_priorRandomVal2)) {
			case 2:
				startTalking(this, 230001, findView());
				break;
			case 3:
				startTalking(this, 230002, findView());
				break;
			case 4:
				startTalking(this, 230003, findView());
				break;
			case 5:
				startTalking(this, 230064, findView());
				break;
			case 6:
				startTalking(this, 230062, findView());
				break;
			case 7:
				startTalking(this, 230063, findView());
				break;
			default:
				break;
			}
		}
	}

	if (msg->_endFrame == _sendEndFrame) {
		if (_sendAction == SA_FEATHERS) {
			startTalking(this, 230022, findView());
		} else if (_sendAction == SA_EATEN) {
			startTalking(this, 230017, findView());
		} else if (_sendLost) {
			startTalking(this, 230019, findView());
			_sendLost = false;
		} else if (_isChicken) {
			startTalking(this, 230018, findView());
			_isChicken = false;
		} else {
			startTalking(this, 230013, findView());
		}

		if (_inProgress) {
			_inProgress = false;
			decTransitions();
		}

		CSUBTransition transMsg;
		transMsg.execute(this);
	}

	if (msg->_endFrame == _receiveEndFrame) {
		// SuccUBus disgorged mail
		if (pet && _mailP) {
			_mailP->setMailDest(petRoomFlags);
		}

		_field188 = 1;
		_mailP = nullptr;
		if (_inProgress) {
			_inProgress = false;
			decTransitions();
		}

		CSUBTransition transMsg;
		transMsg.execute(this);
	}

	return true;
}
Ejemplo n.º 14
0
bool CSuccUBus::PETDeliverMsg(CPETDeliverMsg *msg) {
	if (_inProgress)
		return true;

	if (!_isOn) {
		petDisplayMessage(2, SUCCUBUS_IS_IN_STANDBY);
		return true;
	}

	CPetControl *pet = getPetControl();
	if (!pet)
		return true;

	uint destRoomFlags = pet->getRoomFlags();
	CGameObject *mailObject = findMail(destRoomFlags);
	if (!mailObject) {
		switch (getRandomNumber(2)) {
		case 0:
			startTalking(this, 70111, findView());
			break;
		case 1:
			startTalking(this, 70112, findView());
			break;
		case 2:
			startTalking(this, 70113, findView());
			break;
		default:
			break;
		}

		petDisplayMessage(2, NOTHING_IN_SUCCUBUS_TRAY);
	} else {
		_sendLost = false;

		CRoomFlags roomFlags = _destRoomFlags;
		if (!pet->isSuccUBusDest(roomFlags) || pet->getMailDestClass(roomFlags) < getPassengerClass()) {
			roomFlags = pet->getSpecialRoomFlags("BilgeRoom");
			_sendLost = true;
		}

		_isFeathers = mailObject->getName() == "Feathers";
		_isChicken = mailObject->getName() == "Chicken";
		_sendAction = SA_SENT;
		_field188 = 0;
		_inProgress = true;
		incTransitions();

		if (_isFeathers) {
			// The feather has special handling to be rejected by the SuccUBus
			_sendLost = false;
			sendMail(destRoomFlags, roomFlags);
			pet->phonographAction("");

			if (_okStartFrame >= 0) {
				playMovie(_okStartFrame, _okEndFrame, 0);
				startTalking(this, 230022, findView());
			}

			_sendAction = SA_FEATHERS;
			if (_sendStartFrame >= 0)
				playMovie(_sendStartFrame, _sendEndFrame, 0);

			if (_receiveStartFrame >= 0) {
				_mailP = mailObject;
				playMovie(_receiveStartFrame, _receiveEndFrame, MOVIE_NOTIFY_OBJECT);
			}

			if (_afterReceiveStartFrame >= 0) {
				playMovie(_afterReceiveStartFrame, _afterReceiveEndFrame, 0);
			}
		} else {
			// Send the mail to the destination
			sendMail(pet->getRoomFlags(), roomFlags);
			pet->phonographAction("");

			if (_okStartFrame >= 0) {
				playMovie(_okStartFrame, _okEndFrame, 0);
				startTalking(this, 230012, findView());
			}

			if (_sendStartFrame >= 0)
				playMovie(_sendStartFrame, _sendEndFrame, MOVIE_NOTIFY_OBJECT);
		}
	}

	return true;
}
Ejemplo n.º 15
0
static void explosion_renderingFunction(cubeFrameBuf *buf)
{
    static systemTime_t lastTickTime = 0U;
    static bool isExploded = false;

    if (0U == lastTickTime)
    {
        lastTickTime = getSystemTimeUS();
    }
    systemTime_t curTime = getSystemTimeUS();

    if (lastTickTime + EXPLOSION_UPDATE_INTERVAL_US < curTime)
    {
        lastTickTime = getSystemTimeUS();
        if (false == isExploded)
        {
            memset(buf, 0, sizeof(*buf));
            (*buf)[z][y][x] = 1;
            ++z;
            if (z >= trigger_height)
            {
                (*buf)[z][y][x] = EXPLOSION_LAST_INTERVAL;
                isExploded = true;
                x = 0U;
            }
        } else
        {
            uint8_t i, j, k;
            bool needNoReset = false;
            for (i = 0U; i < CUBE_CONFIG_NUMBER_OF_LAYERS; ++i)
            {
                for (j = 0U; j < CUBE_CONFIG_NUMBER_OF_COLS; ++j)
                {
                    for (k = 0U; k < CUBE_CONFIG_NUMBER_OF_ROWS; ++k)
                    {
                        /* spawn if there is a neighbor alive */
                        if ((0 == (*buf)[i][j][k]) &&
                                (((i > 0) && (EXPLOSION_LAST_INTERVAL == (*buf)[i - 1][j][k])) ||
                                 ((i < 7) && (EXPLOSION_LAST_INTERVAL == (*buf)[i + 1][j][k])) ||
                                 ((j > 0) && (EXPLOSION_LAST_INTERVAL == (*buf)[i][j - 1][k])) ||
                                 ((j < 7) && (EXPLOSION_LAST_INTERVAL == (*buf)[i][j + 1][k])) ||
                                 ((k > 0) && (EXPLOSION_LAST_INTERVAL == (*buf)[i][j][k - 1])) ||
                                 ((k < 7) && (EXPLOSION_LAST_INTERVAL == (*buf)[i][j][k + 1]))))
                        {
                            (*buf)[i][j][k] = EXPLOSION_LAST_INTERVAL + 1;
                        } else
                        {
                            /* and die */
                            if (0 < (*buf)[i][j][k])
                            {
                                --(*buf)[i][j][k];
                                if (0 == (*buf)[i][j][k])
                                {
                                    (*buf)[i][j][k] = -1;
                                }
                            }
                        }

                        if (0 < (*buf)[i][j][k])
                        {
                            needNoReset |= true;
                        }
                    }
                }
            }
            if (false == needNoReset) /* we need a reset */
            {
                isExploded = false;
                x = getRandomNumber() % CUBE_CONFIG_NUMBER_OF_COLS;
                y = getRandomNumber() % CUBE_CONFIG_NUMBER_OF_ROWS;

                trigger_height = getRandomNumber() % CUBE_CONFIG_NUMBER_OF_LAYERS;

                x = CLIP_VAL(x, EXPLOSION_LAST_INTERVAL, CUBE_CONFIG_NUMBER_OF_COLS - EXPLOSION_LAST_INTERVAL);
                y = CLIP_VAL(y, EXPLOSION_LAST_INTERVAL, CUBE_CONFIG_NUMBER_OF_ROWS - EXPLOSION_LAST_INTERVAL);
                trigger_height = CLIP_VAL(trigger_height, EXPLOSION_LAST_INTERVAL, CUBE_CONFIG_NUMBER_OF_LAYERS - EXPLOSION_LAST_INTERVAL);

                z = 0;
            }
        }
    }
}
Ejemplo n.º 16
0
int XeenEngine::getRandomNumber(int minNumber, int maxNumber) {
	return getRandomNumber(maxNumber - minNumber) + minNumber;
}
Ejemplo n.º 17
0
static void modeMessageFast(DisplayInternalInfo& displayInternalInfo) {
  int boardId, i;

  HT1632Class& HT1632 = displayInternalInfo.ht1632;
  HT1632.clearAll();

  const int currColorEffect = modeMessageDataColorEffect % 3; 
  for (i=0; i < BUFFER_SECONDARY; ++i) {
    if (modeMessageData.blinkBlankInEffect) break;  // blinkBlankInEffect in effect? If so, write no chars

    switch (modeMessageData.displayColor) {
        case displayColorGreen: boardId = 0; break;
        case displayColorRed: boardId = 1; break;
        case displayColorYellow: boardId = i; break;
        case displayColorAlternate:  // fall thru
        default: boardId = currColorEffect == 2 ? i : currColorEffect; break;
    }

    HT1632.drawTarget(BUFFER_BOARD(boardId+1));

    // if bouncing, make sure sure y is within range
    const int wantedY = modeMessageData.currYFactor / INCREMENT_Y_SCALE;
    const int adjustedY = modeMessageData.incrementY ? getAdjustedTextY(modeMessageData.font, wantedY) : wantedY;

    HT1632.drawText(modeMessageData.msg,
		    modeMessageData.incrementX ? (OUT_SIZE - modeMessageData.currX) : modeMessageData.currX /*x*/,
		    adjustedY /*y*/,
		    getFontData(modeMessageData.font),
		    getFontWidth(modeMessageData.font),
		    getFontHeight(modeMessageData.font),
		    getFontGlyphStep(modeMessageData.font));

    if (modeMessageData.displayColor == displayColorAlternate && currColorEffect == 2) continue;
    if (modeMessageData.displayColor != displayColorYellow) break;
  }

  drawBackgroundMessages(displayInternalInfo);
  drawBackgroundImgs(displayInternalInfo);

  // confetti
  if (modeMessageData.confetti > 0) {
    for (boardId=0; boardId < BUFFER_SECONDARY; ++boardId) {
      HT1632.drawTarget(BUFFER_BOARD(boardId+1));
      for (int xx = 0, yy = (int) getRandomNumber(modeMessageData.confetti); xx <= yy ; ++xx) {
	HT1632.setPixel( (int) getRandomNumber(OUT_SIZE), (int) getRandomNumber(COM_SIZE));
      }
    }
  }

  HT1632.renderAll();

  // text wrap
  if (modeMessageData.incrementX && ++modeMessageData.currX >= (modeMessageData.wd + OUT_SIZE)) {
    modeMessageData.currX = 0;
    ++modeMessageDataColorEffect;

    if (modeMessageData.alternateFont) {
      modeMessageData.font = getNextFont(modeMessageData.font);
      modeMessageData.wd = HT1632.getTextWidth(modeMessageData.msg,
					       getFontWidth(modeMessageData.font),
					       getFontHeight(modeMessageData.font));
    }

    // repeats?
    if (modeMessageData.repeats != ~0) {
      // mode exit (1 of 2)
      if (--modeMessageData.repeats < 0) {
	modeMessageData.repeats = ~0;  // avoid getting here again...
	if (modeMessageData.completedCallback != nullptr) {
	  (*(modeMessageData.completedCallback))(displayInternalInfo, modeMessageData.completedCallbackParam);
	  return;
	}
      }
    }
  }

  // Y (bounce effect)
  if (modeMessageData.incrementY != 0) {
    modeMessageData.currYFactor += modeMessageData.incrementY;

    const int maxY = COM_SIZE - getFontHeight(modeMessageData.font);
    if (modeMessageData.incrementY < 0 && modeMessageData.currYFactor < 0) {
      modeMessageData.incrementY *= -1;
    } else if (modeMessageData.incrementY > 0 && (modeMessageData.currYFactor >= maxY * INCREMENT_Y_SCALE)) {
      modeMessageData.incrementY *= -1;

      if (!modeMessageData.incrementX) {
	++modeMessageDataColorEffect;
	if (modeMessageData.alternateFont) {
	  modeMessageData.font = getNextFont(modeMessageData.font);
	  // modeMessageData.wd = HT1632.getTextWidth(modeMessageData.msg,
	  //				  	   getFontWidth(modeMessageData.font),
	  //					   getFontHeight(modeMessageData.font));
	}
      }
    }
  }
}
Ejemplo n.º 18
0
int main(int argc, char** argv){
	int noOfRows = 5;
	int noOfCols = 1000;
	int love = 0;

	if(argc > 1){
		noOfCols = getNoOfColsForMB(atoi(argv[1]));
	}
	if(argc > 2){
		love = atoi(argv[2]);
		
	}
	if(argc > 3){
		noOfRows = atoi(argv[3]);
	}


	double **rows = malloc(sizeof(double*) * noOfRows);
	for(int c = 0; c < noOfRows; c++){
		rows[c] = malloc(sizeof(double) * noOfCols);
		
		for(int d = 0; d < noOfCols; d++){
			rows[c][d] = getRandomNumber();
		}
	}

	struct timeval start;
	struct timeval stop;
	struct timeval difference;

	gettimeofday(&start, NULL);


	double totalSum = 0.0;
	int cids[2];
	int ptr = 0;

	if(love){
		cids[0] = mchain();
		cids[1] = mchain();
	}

	for(int row = 1; row < noOfRows -1; row++){
		
		if(love){
			brk_mchain(cids[ptr]);

			if(row > 1){
				hate(rows[row - 2], noOfCols*sizeof(double));
			}

			mlink(cids[ptr], rows[row], noOfCols*sizeof(double));

			ptr += 1;
			ptr = ptr%2;
		}


		for(int col = 1; col < noOfCols -1; col++){

			double sum = 0.0;
			for(int i = -1; i < 2; i++){
				for(int j = -1; j < 2; j++){
					sum += rows[row + i][col + j] * (1.0/9.0);
				}
			}
			rows[row][col] = sum;
			totalSum += sum;
		}
	}

	gettimeofday(&stop, NULL);

	time_difference(&difference, &stop, &start);

    printf("Done.\n");
    printf("Time: %ds %dus\n", difference.tv_sec, difference.tv_usec);

	return 0;

}
Ejemplo n.º 19
0
int main (void)
{

	Stats players[2] = {{0, 0, 0, 0.0}, {0, 0, 0, 0.0}};

	Cell playerOneGameBoard[ROWS][COLS];      
	Cell playerTwoGameBoard[ROWS][COLS];  

	Coordinate target;          
	Coordinate targetTemp;     
	Coordinate targetOrigin;      
	Coordinate targetAI;      

	WaterCraft ship[NUM_OF_SHIPS] = {{'c', 5, "Carrier"}, 
	                                 {'b', 4, "Battleship"}, 
	                                 {'r', 3, "Cruiser"}, 
	                                 {'s', 3, "Submarine"}, 
	                                 {'d', 2, "Destroyer"}};

	Boolean    huntMode       = TRUE;                
	Boolean    targetMode     = FALSE;                  
	Boolean    flipper        = TRUE;	                 
	Boolean    cardinals[4]   = {TRUE, TRUE, TRUE, TRUE}; 
	Boolean    hasAShipSunked = FALSE;              


	short sunkShip[2][NUM_OF_SHIPS] = {{5, 4, 3, 3, 2},    
	                                   {5, 4, 3, 3, 2}};

	short player  = 0;	       
	short shot    = 0;       
	int   option  = 0;         
	int   north   = 0,        
		  south   = 0,      
		  east    = 0,         
		  west    = 0;       
	int   i       = 0,             
		  counter = 1;       

	char  shipSymbol = '\0';    
	
	FILE *outStream = NULL;  


	outStream = fopen (LOG_FILE_NAME, "w");

	srand ((unsigned int) time (NULL));


	welcomeScreen ();
	getchar();
	system ("cls");


	initializeGameBoard (playerOneGameBoard);
	initializeGameBoard (playerTwoGameBoard);


	printf ("> Please select from the following menu:\n");
	printf ("> [1] Manually\n");
	printf ("> [2] Randomly\n");
	printf ("> Enter Option: ");
	scanf ("%d", &option);
	
	switch (option) {
		case 1: manuallyPlaceShipsOnGameBoard (playerOneGameBoard, ship);
	            break;
		case 2: randomlyPlaceShipsOnGameBoard (playerOneGameBoard, ship);
				break;
	}


	randomlyPlaceShipsOnGameBoard (playerTwoGameBoard, ship);
	printf ("> Player 2 (Computer's) board has been generated.\n");


	player = getRandomNumber (0, 1);
	printf ("> Player %d has been randomly selected to go first.\n", player + 1);
	getchar();
	system ("cls");


	while (TRUE) {


		fprintf (outStream, "Player %d's turn.\n", player + 1);


		switch (player) {

			case PLAYER_ONE: 

				printf ("> Player 2's Board:\n");
				printGameBoard (playerTwoGameBoard, FALSE);
				printf ("> PLAYER 1'S TURN\n");

	
				do {
					target = getTarget (); 
					shot = checkShot (playerTwoGameBoard, target);
					
	
					if (shot == -1) 
						printf ("> Try inputting another target!\n");

				} while (shot == -1);


				shipSymbol = playerTwoGameBoard[target.row][target.column].symbol;
				break;

			case PLAYER_TWO: 

		
				printf ("> Player 1's Board:\n");
				printGameBoard (playerOneGameBoard, TRUE);
				printf ("> COMPUTER'S TURN\n");

		
				if (hasAShipSunked) {
					hasAShipSunked = FALSE;
					targetMode = FALSE;
					huntMode = TRUE;
				}
				
		
				if (targetMode) {
				
					target = targetAI;

					do {
						if (cardinals[NORTH]) {   
							target.row = north;
						} else if (cardinals[SOUTH]) { 
							target.row = south;
						} else if (cardinals[WEST]) { 
							target.column = west;
						} else if (cardinals[EAST]) { 
							target.column = east;
						} else if (!cardinals[NORTH] && !cardinals[SOUTH] && 
						           !cardinals[WEST]  && !cardinals[EAST]  && 
								   !hasAShipSunked) {
					
							
						
							target = targetOrigin;
							targetTemp = target;

					
							north = target.row - counter;
							targetTemp.row = north;

						
							if (checkShot (playerOneGameBoard, targetTemp) != -1 && north >= 0) {
								cardinals[NORTH] = TRUE;
							}

							targetTemp = target;
							south = target.row + counter;
							targetTemp.row = south;

				
							if (checkShot (playerOneGameBoard, targetTemp) != -1 && south <= 9) {
								cardinals[SOUTH] = TRUE;
							}

							targetTemp = target;
							west = target.column - counter;
							targetTemp.column = west;

					
							if (checkShot (playerOneGameBoard, targetTemp) != -1 && west >= 0) {
								cardinals[WEST] = TRUE;
							}

							targetTemp = target;
							east = target.column + counter;
							targetTemp.column = east;

				
							if (checkShot (playerOneGameBoard, targetTemp) != -1 && east <= 9) {
								cardinals[EAST] = TRUE;
							}

				
							counter++;

						} else  {
				
							targetMode = FALSE;
							huntMode = TRUE;
							break;
						}
						
			
						shot = checkShot (playerOneGameBoard, target);

					} while (shot == -1 && targetMode == TRUE);

			
					if (shot == 1 && huntMode == FALSE) {
						for (i = 0; i < 4; i++) {
							if (flipper == FALSE)
								cardinals[i] = FALSE;

							if (cardinals[i] == flipper) 
								flipper = FALSE;
						}
					} else {
						for (i = 0; i < 4; i++) {
							if (flipper == TRUE && cardinals[i] != FALSE) {
								cardinals[i] = FALSE;
								break;
							}
						}
					}

			
					flipper = TRUE;
				}

		
				if (huntMode) {	

			
					counter = 1;
					flipper = TRUE;
					for (i = 0; i < 4; i++)
						cardinals[i] = TRUE;

		
					do {
						target.row = getRandomNumber (0, 9);
						target.column = getRandomNumber (0, 9);

			
						shot = checkShot (playerOneGameBoard, target);
					} while (shot == -1);

		
					if (shot == 1) targetOrigin = target;
				}

		
				if (shot == 1) {

		
					if (!cardinals[NORTH] && !cardinals[SOUTH] && 
						!cardinals[WEST]  && !cardinals[EAST]  && 
						!hasAShipSunked) { target = targetOrigin; }

		
					huntMode = FALSE;
					targetMode = TRUE;
					targetAI = target;

		
					if (cardinals[NORTH] == TRUE) {  /* NORTH */
						north = (targetAI.row - 1);
						checkBoundsOfCardinal (cardinals, north, NORTH);
						targetTemp = target;
						targetTemp.row = north;
						if (checkShot (playerOneGameBoard, targetTemp) == -1)
							cardinals[NORTH] = FALSE;
					}
					
					if (cardinals[SOUTH] == TRUE) {  /* SOUTH */
						south = targetAI.row + 1;
						checkBoundsOfCardinal (cardinals, south, SOUTH);
						targetTemp = target;
						targetTemp.row = south;
						if (checkShot (playerOneGameBoard, targetTemp) == -1)
							cardinals[SOUTH] = FALSE;
					}

					if (cardinals[WEST] == TRUE) {   /* WEST */
						west  = targetAI.column - 1;
						checkBoundsOfCardinal (cardinals, west, WEST);
						targetTemp = target;
						targetTemp.column = west;
						if (checkShot (playerOneGameBoard, targetTemp) == -1)
							cardinals[WEST] = FALSE;
					}

					if (cardinals[EAST] == TRUE) {   /* EAST */
						east  = targetAI.column + 1;
						checkBoundsOfCardinal (cardinals, east, EAST);
						targetTemp = target;
						targetTemp.column = east;
						if (checkShot (playerOneGameBoard, targetTemp) == -1)
							cardinals[EAST] = FALSE;
					}
				}


				shipSymbol = playerOneGameBoard[target.row][target.column].symbol;
				break;
		}

		if (shot == 1) { 
			printf ("> %d, %d is a hit!\n", target.row, target.column);

	
			fprintf (outStream, "%d, %d is a hit!\n", target.row, target.column);

	
			players[player].numHits++;

		
			if (player == 1)  
				hasAShipSunked = checkSunkShip (sunkShip, !player, shipSymbol, outStream);
			else
				checkSunkShip (sunkShip, !player, shipSymbol, outStream);

		} else {     
			printf ("> %d, %d is a miss!\n", target.row, target.column);

		
			fprintf (outStream, "%d, %d is a miss!\n", target.row, target.column);
			players[player].numMisses++;
		}
		
		if (player == 0) 
			updateGameBoard (playerTwoGameBoard, target);
		else              
			updateGameBoard (playerOneGameBoard, target);

	
		if (isWinner (players, player)) {
			printf ("\n> Player %d wins!\n", player + 1);

	
			fprintf (outStream, "\n>>>>> Player %d wins! <<<<<\n", player + 1);
			break;
		}

		getchar();

	
		player = !player;	

		system ("cls");
	}


	players[0].totalShots = players[0].numHits + players[0].numMisses;
	players[0].hitMissRatio = ((double) players[0].numHits/(double) players[0].numMisses) * 100;
	players[1].totalShots = players[1].numHits + players[1].numMisses;
	players[1].hitMissRatio = ((double) players[1].numHits/(double) players[1].numMisses) * 100;
	fprintf (outStream, "+===================================================\n");
	fprintf (outStream, "|                    PLAYER STATS                   \n");
	fprintf (outStream, "+---------------------------------------------------\n");
	fprintf (outStream, "| PLAYER 1 : %d hits                                \n", players[0].numHits);
	fprintf (outStream, "|            %d misses                              \n", players[0].numMisses);
	fprintf (outStream, "|            %d total shots                         \n", players[0].totalShots);
	fprintf (outStream, "|            %.2lf%% hit/miss ratio                 \n", players[0].hitMissRatio);
	fprintf (outStream, "| PLAYER 2 : %d hits                                \n", players[1].numHits);
	fprintf (outStream, "|            %d misses                              \n", players[1].numMisses);
	fprintf (outStream, "|            %d total shots                         \n", players[1].totalShots);
	fprintf (outStream, "|            %.2lf%% hit/miss ratio                 \n", players[1].hitMissRatio);
	fprintf (outStream, "+===================================================");

	fclose (outStream);
	return 0;
}
Ejemplo n.º 20
0
static void rain_renderingFunction(cubeFrameBuf *buf)
{
	uint32_t randomNr = getRandomNumber();
	uint8_t x, y;
	uint8_t choice = randomNr % MAX_NUM_DROPLETS;
	static systemTime_t lastUpdateTime = 0U;
	static systemTime_t lastSpawnTime = 0U;
	systemTime_t curTime = getSystemTimeUS();

	memset(buf, 0, sizeof(*buf));

	if (0 == lastUpdateTime)
	{
		lastUpdateTime = getSystemTimeUS();
		lastSpawnTime = lastUpdateTime;
	}

	if (lastUpdateTime + DROPLET_FALL_INTERVALL_US < curTime)
	{
		lastUpdateTime = curTime;
		/* let the rain fall! */
		for (x = 0U; x < MAX_NUM_DROPLETS; ++x)
		{
			if (0xff != g_dropletPositions[x])
			{
				g_dropletPositions[x] -= 1;
			}
		}
	}

	if (lastSpawnTime + DROPLET_SPAWN_INTERVAL_US < curTime)
	{
		lastSpawnTime = curTime;

		if (0xff == g_dropletPositions[choice]) /* this one can be spawned */
		{
			g_dropletPositions[choice] = CUBE_CONFIG_NUMBER_OF_LAYERS - 1;
		}
	}


	for (x = 0U; x < CUBE_CONFIG_NUMBER_OF_COLS; ++x)
	{
		for (y = 0U; y < CUBE_CONFIG_NUMBER_OF_ROWS; ++y)
		{
			const uint8_t dropletNr = x * CUBE_CONFIG_NUMBER_OF_ROWS + y;
			if (0xff != g_dropletPositions[dropletNr])
			{
				uint8_t j;

				for (j = 0U; j < DROPLET_HEIGHT; ++j)
				{
					if (g_dropletPositions[dropletNr] + j < CUBE_CONFIG_NUMBER_OF_LAYERS)
					{
						(*buf)[g_dropletPositions[dropletNr] + j][x][y] = 1;
					}
				}
			}
		}
	}
}
Ejemplo n.º 21
0
bool CUpLighter::ChangeSeasonMsg(CChangeSeasonMsg *msg) {
	_isSpring = msg->_season == "Spring";
	if (_isSpring)
		addTimer(5000 + getRandomNumber(15000), 0);
	return true;
}
Ejemplo n.º 22
0
bool CBilgeSuccUBus::MovieEndMsg(CMovieEndMsg *msg) {
	CPetControl *pet = getPetControl();

	if (msg->_endFrame == _trayOutEndFrame) {
		if (_offStartFrame >= 0)
			playSound("z#27.wav");
	} else if (msg->_endFrame == _offEndFrame) {
		if (_endingStartFrame >= 0)
			playSound("z#30.wav");
	} else {
		if (msg->_endFrame == _onEndFrame && pet) {
			if (_style) {
				startTalking(this, getRandomNumber(1) ? 230062 : 230063);
			} else if (!findMail(pet->getRoomFlags())) {
				switch (getRandomNumber(4)) {
				case 0:
					startTalking(this, 230001);
					break;
				case 1:
					startTalking(this, 230002);
					break;
				case 2:
					startTalking(this, 230003);
					break;
				default:
					break;
				}
			}

		} else if (msg->_endFrame == _sendEndFrame) {
			switch (_sendAction) {
			case SA_EATEN:
				stopSound(_soundHandle, 1);
				_soundHandle = playSound("z#3.wav", 1);
				break;
			case SA_BILGE_FEATHERS:
				stopSound(_soundHandle);
				_soundHandle = playSound("z#12.wav");
				break;
			case SA_BILGE_SENT:
				if (_isChicken) {
					startTalking(this, 230018);
					_isChicken = false;
				} else {
					startTalking(this, 230013);
				}
				break;
			case SA_BILGE_EATEN:
				startTalking(this, 230017);
				break;
			default:
				break;
			}

			CSUBTransition transMsg;
			transMsg.execute(this);

		} else if (msg->_endFrame == _receiveEndFrame) {
			if (_mailP) {
				_mailP->petAddToInventory();
				CVisibleMsg visibleMsg(true);
				visibleMsg.execute(_mailP);

				_mailP = nullptr;
				petSetArea(PET_INVENTORY);

				CSUBTransition transMsg;
				transMsg.execute(this);
			}

		} else if (msg->_endFrame == _sneezing1EndFrame) {
			playSound("z#25.wav", 70);
			playSound("z#24.wav", 70);

		} else if (msg->_endFrame == _sneezing2EndFrame) {
			changeView("BilgeRoomWith.Node 1.N", "");
			_style = false;
			resetMail();

			if (_mailP) {
				_mailP->petAddToInventory();
				CVisibleMsg visibleMsg(true);
				visibleMsg.execute(_mailP);

				_mailP = nullptr;
				petSetArea(PET_INVENTORY);
			}

			startTalking(this, 150);
			CBodyInBilgeRoomMsg bodyMsg;
			bodyMsg.execute("Service Elevator Entity");
			decTransitions();
			_sendAction = SA_SENT;

		} else {
			_sendAction = SA_SENT;
		}
	}

	return true;
}