Result<ExitCode> SelfTest::Run(const Settings& settings) const { auto statisticResult = GetStatistic(settings); if (statisticResult.HasError()) { return statisticResult.GetError(); } auto statistic = statisticResult.GetResultValue(); if (statistic.IsService()) { if (!statistic.HasAdministrativePrivileges()) { return EXIT_CODE_NO_ADMIN; } if (!statistic.HasSeAssignPrimaryTokenPrivilege()) { return EXIT_CODE_NO_ASSIGN_PRIMARY_TOKEN_PRIV; } if (!statistic.HasSeTcbPrivilegePrivilege()) { return EXIT_CODE_NO_TCB_PRIV; } } return Is64OS() ? EXIT_CODE_READY_FOR_64 : EXIT_CODE_READY_FOR_32; }
void hnStatus::SendChanges( netMetaPacketOutput * packet ) { if ( m_changedStatistics ) { netClientStatistics stats; for ( int i = 0; i < MAX_STATISTICS; i++ ) stats.statistic[i] = GetStatistic(i); packet->ClientStatistics(stats); m_changedStatistics = false; } if ( m_changedHitPoints ) { netClientHitPoints hp; hp.hitPoints = m_hitPoints; hp.maxHitPoints = m_hitPointMax; packet->ClientHitPoints(hp); m_changedHitPoints = false; } if ( m_changedSpellPoints ) { netClientSpellPoints sp; sp.spellPoints = m_spellPoints; sp.maxSpellPoints = m_spellPointMax; packet->ClientSpellPoints(sp); m_changedSpellPoints = false; } if ( m_changedExperiencePoints ) { netClientExperience ep; ep.experiencePoints = m_experiencePoints; ep.level = m_level; packet->ClientExperience(ep); m_changedExperiencePoints = false; } }