Rehost company dividend and bonus save lanes
This commit is contained in:
parent
6562560d92
commit
77377c67a0
4 changed files with 93 additions and 0 deletions
|
|
@ -5048,8 +5048,11 @@ mod tests {
|
|||
cached_share_price_raw_u32: 0x42200000,
|
||||
chairman_salary_baseline: 24,
|
||||
chairman_salary_current: 30,
|
||||
chairman_bonus_year: 1832,
|
||||
chairman_bonus_amount: 900,
|
||||
founding_year: 1831,
|
||||
last_bankruptcy_year: 0,
|
||||
last_dividend_year: 1837,
|
||||
current_issue_calendar_word: 5,
|
||||
prior_issue_calendar_word: 4,
|
||||
city_connection_latch: true,
|
||||
|
|
@ -5088,8 +5091,11 @@ mod tests {
|
|||
cached_share_price_raw_u32: 0x41f80000,
|
||||
chairman_salary_baseline: 20,
|
||||
chairman_salary_current: 22,
|
||||
chairman_bonus_year: 0,
|
||||
chairman_bonus_amount: 0,
|
||||
founding_year: 1833,
|
||||
last_bankruptcy_year: 0,
|
||||
last_dividend_year: 0,
|
||||
current_issue_calendar_word: 3,
|
||||
prior_issue_calendar_word: 2,
|
||||
city_connection_latch: false,
|
||||
|
|
@ -6371,8 +6377,11 @@ mod tests {
|
|||
cached_share_price_raw_u32: 0x42180000,
|
||||
chairman_salary_baseline: 21,
|
||||
chairman_salary_current: 24,
|
||||
chairman_bonus_year: 1836,
|
||||
chairman_bonus_amount: 600,
|
||||
founding_year: 1834,
|
||||
last_bankruptcy_year: 0,
|
||||
last_dividend_year: 1838,
|
||||
current_issue_calendar_word: 4,
|
||||
prior_issue_calendar_word: 3,
|
||||
city_connection_latch: false,
|
||||
|
|
|
|||
|
|
@ -67,10 +67,16 @@ pub struct RuntimeCompanyMarketState {
|
|||
#[serde(default)]
|
||||
pub chairman_salary_current: u32,
|
||||
#[serde(default)]
|
||||
pub chairman_bonus_year: u32,
|
||||
#[serde(default)]
|
||||
pub chairman_bonus_amount: i32,
|
||||
#[serde(default)]
|
||||
pub founding_year: u32,
|
||||
#[serde(default)]
|
||||
pub last_bankruptcy_year: u32,
|
||||
#[serde(default)]
|
||||
pub last_dividend_year: u32,
|
||||
#[serde(default)]
|
||||
pub current_issue_calendar_word: u32,
|
||||
#[serde(default)]
|
||||
pub prior_issue_calendar_word: u32,
|
||||
|
|
|
|||
|
|
@ -2333,8 +2333,11 @@ pub struct SmpSaveCompanyRecordAnalysisEntry {
|
|||
pub cached_share_price_f32: f32,
|
||||
pub chairman_salary_baseline: u32,
|
||||
pub chairman_salary_current: u32,
|
||||
pub chairman_bonus_year: u32,
|
||||
pub chairman_bonus_amount: i32,
|
||||
pub founding_year: u32,
|
||||
pub last_bankruptcy_year: u32,
|
||||
pub last_dividend_year: u32,
|
||||
pub city_connection_latch: bool,
|
||||
pub linked_transit_latch: bool,
|
||||
pub merger_cooldown_year: u32,
|
||||
|
|
@ -3013,6 +3016,14 @@ pub fn inspect_save_company_and_chairman_analysis_bytes(
|
|||
&bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_CHAIRMAN_SALARY_CURRENT_OFFSET,
|
||||
)?;
|
||||
let chairman_bonus_year = read_u32_at(
|
||||
&bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_CHAIRMAN_BONUS_YEAR_OFFSET,
|
||||
)?;
|
||||
let chairman_bonus_amount = read_i32_at(
|
||||
&bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_CHAIRMAN_BONUS_AMOUNT_OFFSET,
|
||||
)?;
|
||||
let founding_year = read_u32_at(
|
||||
&bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_FOUNDING_YEAR_OFFSET,
|
||||
|
|
@ -3021,6 +3032,10 @@ pub fn inspect_save_company_and_chairman_analysis_bytes(
|
|||
&bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_LAST_BANKRUPTCY_YEAR_OFFSET,
|
||||
)?;
|
||||
let last_dividend_year = read_u32_at(
|
||||
&bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_LAST_DIVIDEND_YEAR_OFFSET,
|
||||
)?;
|
||||
let city_connection_latch = read_u8_at(
|
||||
&bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_CITY_CONNECTION_LATCH_OFFSET,
|
||||
|
|
@ -3063,8 +3078,11 @@ pub fn inspect_save_company_and_chairman_analysis_bytes(
|
|||
cached_share_price_f32,
|
||||
chairman_salary_baseline,
|
||||
chairman_salary_current,
|
||||
chairman_bonus_year,
|
||||
chairman_bonus_amount,
|
||||
founding_year,
|
||||
last_bankruptcy_year,
|
||||
last_dividend_year,
|
||||
city_connection_latch,
|
||||
linked_transit_latch,
|
||||
merger_cooldown_year,
|
||||
|
|
@ -3428,12 +3446,15 @@ const SAVE_COMPANY_RECORD_BOND_COUNT_OFFSET: usize = 0x5b;
|
|||
const SAVE_COMPANY_RECORD_BOND_TABLE_OFFSET: usize = 0x5f;
|
||||
const SAVE_COMPANY_RECORD_BOND_SLOT_STRIDE: usize = 12;
|
||||
const SAVE_COMPANY_RECORD_CHAIRMAN_SALARY_BASELINE_OFFSET: usize = 0x14f;
|
||||
const SAVE_COMPANY_RECORD_CHAIRMAN_BONUS_YEAR_OFFSET: usize = 0x34f;
|
||||
const SAVE_COMPANY_RECORD_CHAIRMAN_BONUS_AMOUNT_OFFSET: usize = 0x353;
|
||||
const SAVE_COMPANY_RECORD_MERGER_COOLDOWN_OFFSET: usize = 0x15f;
|
||||
const SAVE_COMPANY_RECORD_FOUNDING_YEAR_OFFSET: usize = 0x157;
|
||||
const SAVE_COMPANY_RECORD_LAST_BANKRUPTCY_YEAR_OFFSET: usize = 0x163;
|
||||
const SAVE_COMPANY_RECORD_CURRENT_ISSUE_CALENDAR_OFFSET: usize = 0x16b;
|
||||
const SAVE_COMPANY_RECORD_PRIOR_ISSUE_CALENDAR_OFFSET: usize = 0x173;
|
||||
const SAVE_COMPANY_RECORD_TAKEOVER_COOLDOWN_OFFSET: usize = 0x289;
|
||||
const SAVE_COMPANY_RECORD_LAST_DIVIDEND_YEAR_OFFSET: usize = 0x0d2d;
|
||||
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;
|
||||
|
|
@ -3551,6 +3572,14 @@ fn parse_save_company_roster_probe(
|
|||
bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_CHAIRMAN_SALARY_CURRENT_OFFSET,
|
||||
)?;
|
||||
let chairman_bonus_year = read_u32_at(
|
||||
bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_CHAIRMAN_BONUS_YEAR_OFFSET,
|
||||
)?;
|
||||
let chairman_bonus_amount = read_i32_at(
|
||||
bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_CHAIRMAN_BONUS_AMOUNT_OFFSET,
|
||||
)?;
|
||||
let founding_year = read_u32_at(
|
||||
bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_FOUNDING_YEAR_OFFSET,
|
||||
|
|
@ -3559,6 +3588,10 @@ fn parse_save_company_roster_probe(
|
|||
bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_LAST_BANKRUPTCY_YEAR_OFFSET,
|
||||
)?;
|
||||
let last_dividend_year = read_u32_at(
|
||||
bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_LAST_DIVIDEND_YEAR_OFFSET,
|
||||
)?;
|
||||
let current_issue_calendar_word = read_u32_at(
|
||||
bytes,
|
||||
record_offset + SAVE_COMPANY_RECORD_CURRENT_ISSUE_CALENDAR_OFFSET,
|
||||
|
|
@ -3608,8 +3641,11 @@ fn parse_save_company_roster_probe(
|
|||
cached_share_price_raw_u32,
|
||||
chairman_salary_baseline,
|
||||
chairman_salary_current,
|
||||
chairman_bonus_year,
|
||||
chairman_bonus_amount,
|
||||
founding_year,
|
||||
last_bankruptcy_year,
|
||||
last_dividend_year,
|
||||
current_issue_calendar_word,
|
||||
prior_issue_calendar_word,
|
||||
city_connection_latch,
|
||||
|
|
@ -15709,8 +15745,11 @@ mod tests {
|
|||
cached_share_price_raw_u32,
|
||||
chairman_salary_baseline,
|
||||
chairman_salary_current,
|
||||
chairman_bonus_year,
|
||||
chairman_bonus_amount,
|
||||
founding_year,
|
||||
last_bankruptcy_year,
|
||||
last_dividend_year,
|
||||
current_issue_calendar_word,
|
||||
prior_issue_calendar_word,
|
||||
city_connection_latch,
|
||||
|
|
@ -15732,8 +15771,11 @@ mod tests {
|
|||
0x426c0000u32,
|
||||
24u32,
|
||||
31u32,
|
||||
1849u32,
|
||||
1250i32,
|
||||
1842u32,
|
||||
1851u32,
|
||||
1848u32,
|
||||
7u32,
|
||||
6u32,
|
||||
true,
|
||||
|
|
@ -15754,8 +15796,11 @@ mod tests {
|
|||
0x42780000u32,
|
||||
28u32,
|
||||
36u32,
|
||||
0u32,
|
||||
0i32,
|
||||
1845u32,
|
||||
0u32,
|
||||
1850u32,
|
||||
3u32,
|
||||
2u32,
|
||||
false,
|
||||
|
|
@ -15817,12 +15862,21 @@ mod tests {
|
|||
bytes[record_offset + SAVE_COMPANY_RECORD_CHAIRMAN_SALARY_CURRENT_OFFSET
|
||||
..record_offset + SAVE_COMPANY_RECORD_CHAIRMAN_SALARY_CURRENT_OFFSET + 4]
|
||||
.copy_from_slice(&chairman_salary_current.to_le_bytes());
|
||||
bytes[record_offset + SAVE_COMPANY_RECORD_CHAIRMAN_BONUS_YEAR_OFFSET
|
||||
..record_offset + SAVE_COMPANY_RECORD_CHAIRMAN_BONUS_YEAR_OFFSET + 4]
|
||||
.copy_from_slice(&chairman_bonus_year.to_le_bytes());
|
||||
bytes[record_offset + SAVE_COMPANY_RECORD_CHAIRMAN_BONUS_AMOUNT_OFFSET
|
||||
..record_offset + SAVE_COMPANY_RECORD_CHAIRMAN_BONUS_AMOUNT_OFFSET + 4]
|
||||
.copy_from_slice(&chairman_bonus_amount.to_le_bytes());
|
||||
bytes[record_offset + SAVE_COMPANY_RECORD_FOUNDING_YEAR_OFFSET
|
||||
..record_offset + SAVE_COMPANY_RECORD_FOUNDING_YEAR_OFFSET + 4]
|
||||
.copy_from_slice(&founding_year.to_le_bytes());
|
||||
bytes[record_offset + SAVE_COMPANY_RECORD_LAST_BANKRUPTCY_YEAR_OFFSET
|
||||
..record_offset + SAVE_COMPANY_RECORD_LAST_BANKRUPTCY_YEAR_OFFSET + 4]
|
||||
.copy_from_slice(&last_bankruptcy_year.to_le_bytes());
|
||||
bytes[record_offset + SAVE_COMPANY_RECORD_LAST_DIVIDEND_YEAR_OFFSET
|
||||
..record_offset + SAVE_COMPANY_RECORD_LAST_DIVIDEND_YEAR_OFFSET + 4]
|
||||
.copy_from_slice(&last_dividend_year.to_le_bytes());
|
||||
bytes[record_offset + SAVE_COMPANY_RECORD_CURRENT_ISSUE_CALENDAR_OFFSET
|
||||
..record_offset + SAVE_COMPANY_RECORD_CURRENT_ISSUE_CALENDAR_OFFSET + 4]
|
||||
.copy_from_slice(¤t_issue_calendar_word.to_le_bytes());
|
||||
|
|
@ -15897,8 +15951,11 @@ mod tests {
|
|||
assert_eq!(market_state.cached_share_price_raw_u32, 0x426c0000);
|
||||
assert_eq!(market_state.chairman_salary_baseline, 24);
|
||||
assert_eq!(market_state.chairman_salary_current, 31);
|
||||
assert_eq!(market_state.chairman_bonus_year, 1849);
|
||||
assert_eq!(market_state.chairman_bonus_amount, 1250);
|
||||
assert_eq!(market_state.founding_year, 1842);
|
||||
assert_eq!(market_state.last_bankruptcy_year, 1851);
|
||||
assert_eq!(market_state.last_dividend_year, 1848);
|
||||
assert_eq!(market_state.current_issue_calendar_word, 7);
|
||||
assert_eq!(market_state.prior_issue_calendar_word, 6);
|
||||
assert!(market_state.city_connection_latch);
|
||||
|
|
@ -15912,6 +15969,9 @@ mod tests {
|
|||
.market_state
|
||||
.as_ref()
|
||||
.expect("second company market state should load");
|
||||
assert_eq!(second_market_state.chairman_bonus_year, 0);
|
||||
assert_eq!(second_market_state.chairman_bonus_amount, 0);
|
||||
assert_eq!(second_market_state.last_dividend_year, 1850);
|
||||
assert_eq!(second_market_state.current_issue_calendar_word, 3);
|
||||
assert_eq!(second_market_state.prior_issue_calendar_word, 2);
|
||||
assert!(!second_market_state.city_connection_latch);
|
||||
|
|
|
|||
|
|
@ -49,6 +49,9 @@ pub struct RuntimeSummary {
|
|||
pub selected_company_outstanding_shares: Option<u32>,
|
||||
pub selected_company_cached_share_price_value_f32_text: Option<String>,
|
||||
pub selected_company_mutable_support_scalar_value_f32_text: Option<String>,
|
||||
pub selected_company_last_dividend_year: Option<u32>,
|
||||
pub selected_company_chairman_bonus_year: Option<u32>,
|
||||
pub selected_company_chairman_bonus_amount: Option<i32>,
|
||||
pub player_count: usize,
|
||||
pub chairman_profile_count: usize,
|
||||
pub active_chairman_profile_count: usize,
|
||||
|
|
@ -246,6 +249,15 @@ impl RuntimeSummary {
|
|||
.map(|market_state| {
|
||||
raw_u32_to_f32_text(market_state.mutable_support_scalar_raw_u32)
|
||||
}),
|
||||
selected_company_last_dividend_year: selected_company_market_state
|
||||
.map(|market_state| market_state.last_dividend_year)
|
||||
.filter(|year| *year != 0),
|
||||
selected_company_chairman_bonus_year: selected_company_market_state
|
||||
.map(|market_state| market_state.chairman_bonus_year)
|
||||
.filter(|year| *year != 0),
|
||||
selected_company_chairman_bonus_amount: selected_company_market_state
|
||||
.map(|market_state| market_state.chairman_bonus_amount)
|
||||
.filter(|amount| *amount != 0),
|
||||
player_count: state.players.len(),
|
||||
chairman_profile_count: state.chairman_profiles.len(),
|
||||
active_chairman_profile_count: state
|
||||
|
|
@ -1869,8 +1881,11 @@ mod tests {
|
|||
cached_share_price_raw_u32: 0x42200000,
|
||||
chairman_salary_baseline: 24,
|
||||
chairman_salary_current: 30,
|
||||
chairman_bonus_year: 1842,
|
||||
chairman_bonus_amount: 750,
|
||||
founding_year: 1831,
|
||||
last_bankruptcy_year: 0,
|
||||
last_dividend_year: 1841,
|
||||
current_issue_calendar_word: 5,
|
||||
prior_issue_calendar_word: 4,
|
||||
city_connection_latch: true,
|
||||
|
|
@ -1892,5 +1907,8 @@ mod tests {
|
|||
summary.selected_company_mutable_support_scalar_value_f32_text,
|
||||
Some("1.000000".to_string())
|
||||
);
|
||||
assert_eq!(summary.selected_company_last_dividend_year, Some(1841));
|
||||
assert_eq!(summary.selected_company_chairman_bonus_year, Some(1842));
|
||||
assert_eq!(summary.selected_company_chairman_bonus_amount, Some(750));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue