void CRaceDef::InitData (CMmio * pMmio) { pMmio->DescendChunk ('R', 'A', 'C', 'E'); for (int iOn=0; iOn<num_race; iOn++) { m_fRace [iOn] = pMmio->ReadFloat (); if (m_fRace [iOn] < 0.1) m_fRace [iOn] = (float) (50 + RandNum (100)) / 100.0f; m_fRace [iOn] = (m_fRace [iOn] < 0.7f) ? 0.7f : (m_fRace [iOn] > 1.2f ? 1.2f : m_fRace [iOn]); } // read the island/ocean parts m_iPos [0] [island] = pMmio->ReadShort (); if ( m_iPos [0] [island] == -1 ) m_iPos [0] [island] = RandNum (1); m_iPos [0] [ocean] = pMmio->ReadShort (); if ( m_iPos [0] [ocean] == -1 ) m_iPos [0] [ocean] = RandNum (1); for (int iTyp=1; iTyp<NUM_START_TYPES; iTyp++) { m_iPos [iTyp] [island] = m_iPos [0] [island]; m_iPos [iTyp] [ocean] = m_iPos [0] [ocean]; } pMmio->AscendChunk (); }
//Generate Rectangles_-------------------------------------------------------- Rectangle GenRect() { struct Rectangle RandomRect; RandomRect.Bot = RandNum (MPW_BOT,MPW_TOP-1); RandomRect.Top = RandNum (RandomRect.Bot+1,MPW_TOP); RandomRect.Left = RandNum (MPW_LEFT,MPW_RIGHT-1); RandomRect.Right = RandNum (RandomRect.Left+1,MPW_TOP); for (int i=0; i<4; i++) { RandomRect.Name[i] = RandNum ('a','z'); } RandomRect.Name[4] = 0; return (RandomRect); }
void CGame::MulEvent (int ID, CUnit * pUnit) { ASSERT ((0 <= ID) && (ID < NUM_MEVENTS)); ASSERT ((sizeof (aiMSfx) / sizeof (int)) == NUM_MEVENTS); int iSfx = aiMSfx [ID] + RandNum (aiNumMSfx [ID]); if (iSfx > 0) { int iVoice; if (pUnit == NULL) iVoice = RandNum (1); else iVoice = pUnit->GetVoice (); theMusicPlayer.PlayForegroundSound (VOICES::GetID (iSfx, iVoice), SFXPRIORITY::voice_pri ); } }