1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-26 22:37:45 +00:00

Weather works again.

This commit is contained in:
Mordred 2022-01-19 00:18:50 +01:00
parent aa0c318494
commit 1270f496b8
2 changed files with 14 additions and 9 deletions

View file

@ -658,6 +658,12 @@ namespace Component::Excel
int8_t padding0[2]; int8_t padding0[2];
}; };
struct WeatherRate
{
int32_t WeatherId[8];
uint8_t Rate[8];
};
/* 195172 */ /* 195172 */
struct Aetheryte struct Aetheryte
{ {
@ -695,8 +701,8 @@ namespace Component::Excel
uint8_t BattalionMode; uint8_t BattalionMode;
uint8_t ExclusiveType; uint8_t ExclusiveType;
uint8_t IntendedUse; uint8_t IntendedUse;
uint8_t WeatherRate;
uint8_t Breath; uint8_t Breath;
uint8_t Unknown;
uint8_t Resident; uint8_t Resident;
uint8_t Unknown1; uint8_t Unknown1;
uint8_t Unknown2; uint8_t Unknown2;

View file

@ -98,22 +98,21 @@ void Sapphire::Territory::loadWeatherRates()
auto& exdData = Common::Service< Data::ExdData >::ref(); auto& exdData = Common::Service< Data::ExdData >::ref();
// EXD TODO: this must be different in 2.3 // EXD TODO: this must be different in 2.3
/* uint8_t weatherRateId = m_territoryTypeInfo->data().weatherRate > exdData.getWeatherRateIdList().size() ? uint8_t weatherRateId = m_territoryTypeInfo->data().WeatherRate > exdData.getIdList< Component::Excel::WeatherRate >().size() ?
uint8_t{ 0 } : m_territoryTypeInfo->weatherRate; uint8_t{ 0 } : m_territoryTypeInfo->data().WeatherRate;
uint8_t sumPc = 0; uint8_t sumPc = 0;
auto weatherRateFields = exdData.m_WeatherRateDat.get_row( weatherRateId ); auto weatherRate = exdData.getRow< Component::Excel::WeatherRate >( weatherRateId );
for( size_t i = 0; i < 16; ) for( size_t i = 0; i < 8; ++i )
{ {
int32_t weatherId = std::get< int32_t >( weatherRateFields[ i ] ); int32_t weatherId = weatherRate->data().WeatherId[ i ];
if( weatherId == 0 ) if( weatherId == 0 )
break; break;
sumPc += std::get< uint8_t >( weatherRateFields[ i + 1 ] ); sumPc += weatherRate->data().Rate[ i ];
m_weatherRateMap[ sumPc ] = weatherId; m_weatherRateMap[ sumPc ] = weatherId;
i += 2; }
}*/
} }
Sapphire::Territory::~Territory() = default; Sapphire::Territory::~Territory() = default;