void HourlyQuestUpdate( void ) { UINT32 uiHour = GetWorldHour(); // brothel if ( uiHour == 4 ) { SetFactFalse( FACT_BROTHEL_OPEN ); } else if ( uiHour == 20 ) { SetFactTrue( FACT_BROTHEL_OPEN ); } // bar/nightclub if ( uiHour == 15 ) { UINT8 ubLoop; SetFactTrue( FACT_CLUB_OPEN ); SetFactFalse( FACT_PAST_CLUB_CLOSING_AND_PLAYER_WARNED ); // reset boxes fought for ( ubLoop = 0; ubLoop < NUM_BOXERS; ubLoop++ ) { gfBoxerFought[ ubLoop ] = FALSE; } // if # of boxing matches the player has won is a multiple of // 3, and the boxers haven't rested, then make them rest if ( gfBoxersResting ) { // done resting now! gfBoxersResting = FALSE; gubBoxersRests++; } else if ( gubBoxingMatchesWon / 3 > gubBoxersRests ) { // time for the boxers to rest! gfBoxersResting = TRUE; } } else if ( uiHour == 2 ) { SetFactFalse( FACT_CLUB_OPEN ); } // museum if ( uiHour == 9 ) { SetFactTrue( FACT_MUSEUM_OPEN ); } else if ( uiHour == 18 ) { SetFactFalse( FACT_MUSEUM_OPEN ); } }
void HandleHourlyUpdate() { //if the game hasnt even started yet ( we havent arrived in the sector ) dont process this if ( DidGameJustStart() ) return; // hourly update of town loyalty HandleTownLoyalty(); // hourly update of team assignments UpdateAssignments(); #ifndef JA2DEMO // hourly update of hated/liked mercs UpdateBuddyAndHatedCounters(); #endif // update morale! HourlyMoraleUpdate(); // degrade camouflage HourlyCamouflageUpdate(); // check mines for monster infestation/extermination HourlyMinesUpdate(); // check how well the player is doing right now HourlyProgressUpdate(); // do any quest stuff necessary HourlyQuestUpdate(); HourlyLarryUpdate(); HourlyCheckIfSlayAloneSoHeCanLeave(); PayOffSkyriderDebtIfAny(); if ( GetWorldHour() % 6 == 0 ) // 4 times a day { UpdateRegenCounters(); } }
BOOLEAN ContractIsExpiring( SOLDIERTYPE *pSoldier ) { UINT32 uiCheckHour; // First at least make sure same day.... if( ( pSoldier->iEndofContractTime /1440 ) <= (INT32)GetWorldDay( ) ) { uiCheckHour = GetHourWhenContractDone( pSoldier ); // See if the hour we are on is the same.... if ( GetWorldHour( ) == uiCheckHour ) { // All's good for go! return( TRUE ); } } return( FALSE ); }
BOOLEAN ContractIsGoingToExpireSoon( SOLDIERTYPE *pSoldier ) { // get hour contract is going to expire.... UINT32 uiCheckHour; // First at least make sure same day.... if( ( pSoldier->iEndofContractTime /1440 ) <= (INT32)GetWorldDay( ) ) { uiCheckHour = GetHourWhenContractDone( pSoldier ); // If we are <= 2 hours from expiry. if ( GetWorldHour( ) >= ( uiCheckHour - 2 ) ) { // All's good for go! return( TRUE ); } } return( FALSE ); }