Expose company periodic side-latch trio
This commit is contained in:
parent
b5d194f678
commit
05e5ade1d8
6 changed files with 49 additions and 2 deletions
|
|
@ -5300,6 +5300,7 @@ mod tests {
|
|||
management_attitude: 58,
|
||||
takeover_cooldown_year: Some(1839),
|
||||
merger_cooldown_year: Some(1838),
|
||||
preferred_locomotive_engine_type_raw_u8: Some(2),
|
||||
market_state: Some(crate::RuntimeCompanyMarketState {
|
||||
outstanding_shares: 20_000,
|
||||
bond_count: 2,
|
||||
|
|
@ -5359,6 +5360,7 @@ mod tests {
|
|||
management_attitude: 31,
|
||||
takeover_cooldown_year: None,
|
||||
merger_cooldown_year: None,
|
||||
preferred_locomotive_engine_type_raw_u8: Some(0),
|
||||
market_state: Some(crate::RuntimeCompanyMarketState {
|
||||
outstanding_shares: 18_000,
|
||||
bond_count: 1,
|
||||
|
|
|
|||
|
|
@ -2352,6 +2352,8 @@ pub struct SmpLoadedCompanyRosterEntry {
|
|||
#[serde(default)]
|
||||
pub merger_cooldown_year: Option<u32>,
|
||||
#[serde(default)]
|
||||
pub preferred_locomotive_engine_type_raw_u8: Option<u8>,
|
||||
#[serde(default)]
|
||||
pub market_state: Option<RuntimeCompanyMarketState>,
|
||||
}
|
||||
|
||||
|
|
@ -2465,6 +2467,8 @@ pub struct SmpSaveCompanyRecordAnalysisEntry {
|
|||
pub founding_year: u32,
|
||||
pub last_bankruptcy_year: u32,
|
||||
pub last_dividend_year: u32,
|
||||
pub preferred_locomotive_engine_type_raw_u8: u8,
|
||||
pub preferred_locomotive_engine_type_raw_hex: String,
|
||||
pub city_connection_latch: bool,
|
||||
pub linked_transit_latch: bool,
|
||||
pub merger_cooldown_year: u32,
|
||||
|
|
@ -3183,6 +3187,10 @@ pub fn inspect_save_company_and_chairman_analysis_bytes(
|
|||
&bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_LAST_DIVIDEND_YEAR_OFFSET,
|
||||
)?;
|
||||
let preferred_locomotive_engine_type_raw_u8 = read_u8_at(
|
||||
&bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_PREFERRED_LOCOMOTIVE_ENGINE_TYPE_OFFSET,
|
||||
)?;
|
||||
let city_connection_latch = read_u8_at(
|
||||
&bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_CITY_CONNECTION_LATCH_OFFSET,
|
||||
|
|
@ -3254,6 +3262,10 @@ pub fn inspect_save_company_and_chairman_analysis_bytes(
|
|||
founding_year,
|
||||
last_bankruptcy_year,
|
||||
last_dividend_year,
|
||||
preferred_locomotive_engine_type_raw_u8,
|
||||
preferred_locomotive_engine_type_raw_hex: format!(
|
||||
"0x{preferred_locomotive_engine_type_raw_u8:02x}"
|
||||
),
|
||||
city_connection_latch,
|
||||
linked_transit_latch,
|
||||
merger_cooldown_year,
|
||||
|
|
@ -3724,6 +3736,7 @@ const SAVE_COMPANY_RECORD_PRIOR_ISSUE_CALENDAR_OFFSET: usize = 0x173;
|
|||
const SAVE_COMPANY_RECORD_PRIOR_ISSUE_CALENDAR_OFFSET_2: usize = 0x177;
|
||||
const SAVE_COMPANY_RECORD_TAKEOVER_COOLDOWN_OFFSET: usize = 0x289;
|
||||
const SAVE_COMPANY_RECORD_LAST_DIVIDEND_YEAR_OFFSET: usize = 0x0d2d;
|
||||
const SAVE_COMPANY_RECORD_PREFERRED_LOCOMOTIVE_ENGINE_TYPE_OFFSET: usize = 0x0d17;
|
||||
const SAVE_COMPANY_RECORD_CITY_CONNECTION_LATCH_OFFSET: usize = 0x0d18;
|
||||
const SAVE_COMPANY_RECORD_SUPPORT_PROGRESS_OFFSET: usize = 0x0d07;
|
||||
const SAVE_COMPANY_RECORD_CHAIRMAN_SALARY_CURRENT_OFFSET: usize = 0x0d59;
|
||||
|
|
@ -3920,6 +3933,10 @@ fn parse_save_company_roster_probe(
|
|||
bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_PRIOR_ISSUE_CALENDAR_OFFSET_2,
|
||||
)?;
|
||||
let preferred_locomotive_engine_type_raw_u8 = read_u8_at(
|
||||
bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_PREFERRED_LOCOMOTIVE_ENGINE_TYPE_OFFSET,
|
||||
)?;
|
||||
let city_connection_latch = read_u8_at(
|
||||
bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_CITY_CONNECTION_LATCH_OFFSET,
|
||||
|
|
@ -4007,6 +4024,7 @@ fn parse_save_company_roster_probe(
|
|||
management_attitude: 0,
|
||||
takeover_cooldown_year,
|
||||
merger_cooldown_year,
|
||||
preferred_locomotive_engine_type_raw_u8: Some(preferred_locomotive_engine_type_raw_u8),
|
||||
market_state: Some(RuntimeCompanyMarketState {
|
||||
outstanding_shares,
|
||||
bond_count,
|
||||
|
|
@ -16534,6 +16552,7 @@ mod tests {
|
|||
current_issue_calendar_word_2,
|
||||
prior_issue_calendar_word,
|
||||
prior_issue_calendar_word_2,
|
||||
preferred_locomotive_engine_type_raw_u8,
|
||||
city_connection_latch,
|
||||
linked_transit_latch,
|
||||
),
|
||||
|
|
@ -16562,6 +16581,7 @@ mod tests {
|
|||
8u32,
|
||||
6u32,
|
||||
7u32,
|
||||
2u8,
|
||||
true,
|
||||
false,
|
||||
),
|
||||
|
|
@ -16589,6 +16609,7 @@ mod tests {
|
|||
4u32,
|
||||
2u32,
|
||||
3u32,
|
||||
1u8,
|
||||
false,
|
||||
true,
|
||||
),
|
||||
|
|
@ -16683,6 +16704,8 @@ mod tests {
|
|||
bytes[record_offset + SAVE_COMPANY_RECORD_PRIOR_ISSUE_CALENDAR_OFFSET_2
|
||||
..record_offset + SAVE_COMPANY_RECORD_PRIOR_ISSUE_CALENDAR_OFFSET_2 + 4]
|
||||
.copy_from_slice(&prior_issue_calendar_word_2.to_le_bytes());
|
||||
bytes[record_offset + SAVE_COMPANY_RECORD_PREFERRED_LOCOMOTIVE_ENGINE_TYPE_OFFSET] =
|
||||
preferred_locomotive_engine_type_raw_u8;
|
||||
bytes[record_offset + SAVE_COMPANY_RECORD_CITY_CONNECTION_LATCH_OFFSET] =
|
||||
u8::from(city_connection_latch);
|
||||
bytes[record_offset + SAVE_COMPANY_RECORD_LINKED_TRANSIT_LATCH_OFFSET] =
|
||||
|
|
@ -16781,6 +16804,10 @@ mod tests {
|
|||
assert_eq!(market_state.current_issue_calendar_word_2, 8);
|
||||
assert_eq!(market_state.prior_issue_calendar_word, 6);
|
||||
assert_eq!(market_state.prior_issue_calendar_word_2, 7);
|
||||
assert_eq!(
|
||||
roster.entries[0].preferred_locomotive_engine_type_raw_u8,
|
||||
Some(2)
|
||||
);
|
||||
assert!(market_state.city_connection_latch);
|
||||
assert!(!market_state.linked_transit_latch);
|
||||
assert_eq!(
|
||||
|
|
@ -16828,6 +16855,10 @@ mod tests {
|
|||
assert_eq!(second_market_state.current_issue_calendar_word_2, 4);
|
||||
assert_eq!(second_market_state.prior_issue_calendar_word, 2);
|
||||
assert_eq!(second_market_state.prior_issue_calendar_word_2, 3);
|
||||
assert_eq!(
|
||||
roster.entries[1].preferred_locomotive_engine_type_raw_u8,
|
||||
Some(1)
|
||||
);
|
||||
assert!(!second_market_state.city_connection_latch);
|
||||
assert!(second_market_state.linked_transit_latch);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue