void HandleQuarterHourUpdate() { //if the game hasnt even started yet ( we havent arrived in the sector ) dont process this if ( DidGameJustStart() ) return; DecayTacticalMoraleModifiers( ); }
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(); } }
//returns the UINT8 ID for the specified sector. UINT8 GetLoadScreenID( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ ) { SECTORINFO *pSector; UINT8 ubSectorID; BOOLEAN fNight = FALSE; ubSectorID = SECTOR( sSectorX, sSectorY ); if( NightTime() ) //before 5AM or after 9PM { fNight = TRUE; } switch( bSectorZ ) { case 0: switch( ubSectorID ) { case SEC_A2: case SEC_B2: if( fNight ) return LOADINGSCREEN_NIGHTCHITZENA; return LOADINGSCREEN_DAYCHITZENA; case SEC_A9: if( !DidGameJustStart() ) { if( fNight ) return LOADINGSCREEN_NIGHTOMERTA; return LOADINGSCREEN_DAYOMERTA; } return LOADINGSCREEN_HELI; case SEC_A10: if( fNight ) return LOADINGSCREEN_NIGHTOMERTA; return LOADINGSCREEN_DAYOMERTA; case SEC_P3: if( fNight ) return LOADINGSCREEN_NIGHTPALACE; return LOADINGSCREEN_DAYPALACE; case SEC_H13: case SEC_H14: //military installations case SEC_I13: case SEC_N7: if( fNight ) return LOADINGSCREEN_NIGHTMILITARY; return LOADINGSCREEN_DAYMILITARY; case SEC_K4: if( fNight ) return LOADINGSCREEN_NIGHTLAB; return LOADINGSCREEN_DAYLAB; case SEC_J9: if( fNight ) return LOADINGSCREEN_NIGHTPRISON; return LOADINGSCREEN_DAYPRISON; case SEC_D2: case SEC_D15: case SEC_I8: case SEC_N4: if( fNight ) return LOADINGSCREEN_NIGHTSAM; return LOADINGSCREEN_DAYSAM; case SEC_F8: if( fNight ) return LOADINGSCREEN_NIGHTHOSPITAL; return LOADINGSCREEN_DAYHOSPITAL; case SEC_B13: case SEC_N3: if( fNight ) return LOADINGSCREEN_NIGHTAIRPORT; return LOADINGSCREEN_DAYAIRPORT; case SEC_L11: case SEC_L12: if( fNight ) return LOADINGSCREEN_NIGHTBALIME; return LOADINGSCREEN_DAYBALIME; case SEC_H3: case SEC_H8: case SEC_D4: if( fNight ) return LOADINGSCREEN_NIGHTMINE; return LOADINGSCREEN_DAYMINE; } pSector = &SectorInfo[ ubSectorID ]; switch( pSector->ubTraversability[ 4 ] ) { case TOWN: if( fNight ) { if( Random( 2 ) ) { return LOADINGSCREEN_NIGHTTOWN2; } return LOADINGSCREEN_NIGHTTOWN1; } if( Random( 2 ) ) { return LOADINGSCREEN_DAYTOWN2; } return LOADINGSCREEN_DAYTOWN1; case SAND: case SAND_ROAD: if( fNight ) { return LOADINGSCREEN_NIGHTDESERT; } return LOADINGSCREEN_DAYDESERT; case FARMLAND: case FARMLAND_ROAD: case ROAD: if( fNight ) { return LOADINGSCREEN_NIGHTGENERIC; } return LOADINGSCREEN_DAYGENERIC; case PLAINS: case SPARSE: case HILLS: case PLAINS_ROAD: case SPARSE_ROAD: case HILLS_ROAD: if( fNight ) { return LOADINGSCREEN_NIGHTWILD; } return LOADINGSCREEN_DAYWILD; case DENSE: case SWAMP: case SWAMP_ROAD: case DENSE_ROAD: if( fNight ) { return LOADINGSCREEN_NIGHTFOREST; } return LOADINGSCREEN_DAYFOREST; case TROPICS: case TROPICS_ROAD: case WATER: case NS_RIVER: case EW_RIVER: case COASTAL: case COASTAL_ROAD: if( fNight ) { return LOADINGSCREEN_NIGHTTROPICAL; } return LOADINGSCREEN_DAYTROPICAL; default: Assert( 0 ); if( fNight ) { return LOADINGSCREEN_NIGHTGENERIC; } return LOADINGSCREEN_DAYGENERIC; } break; case 1: switch( ubSectorID ) { case SEC_A10: //Miguel's basement case SEC_I13: //Alma prison dungeon case SEC_J9: //Tixa prison dungeon case SEC_K4: //Orta weapons plant case SEC_O3: //Meduna case SEC_P3: //Meduna return LOADINGSCREEN_BASEMENT; default: //rest are mines return LOADINGSCREEN_MINE; } break; case 2: case 3: //all level 2 and 3 maps are caves! return LOADINGSCREEN_CAVE; default: // shouldn't ever happen Assert( FALSE ); if( fNight ) { return LOADINGSCREEN_NIGHTGENERIC; } return LOADINGSCREEN_DAYGENERIC; } }