From 2012bdd025328c6a8cc4e684aeb08e48bb9c6668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20St=C3=B6ckl?= Date: Mon, 5 Aug 2024 14:31:50 +0200 Subject: [PATCH] Fix icons alignment --- src/pcd.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/pcd.rs b/src/pcd.rs index 7a76083..358cfed 100644 --- a/src/pcd.rs +++ b/src/pcd.rs @@ -36,7 +36,7 @@ pub const PCD_COMMENT_OFFSET: usize = 0x154; /// Length in u16 units inclusive termination pub const PCD_COMMENT_MAX_LENGTH: usize = (PCD_REDISTRIBUTION_OFFSET - PCD_COMMENT_OFFSET) / 2; -pub const PCD_ICONS_OFFSET: usize = 0x34b; +pub const PCD_ICONS_OFFSET: usize = 0x34a; pub const PCD_RECEIVED_OFFSET: usize = 0x354; @@ -297,7 +297,16 @@ impl PCD { header[PCD_GAMES_OFFSET - PCD_PGT_LENGTH..PCD_GAMES_OFFSET + 2 - PCD_PGT_LENGTH].copy_from_slice(&serialize_games(&des.games).to_be_bytes()); put_str(&mut card_data, &des.comment, PCD_COMMENT_MAX_LENGTH); - card_data[PCD_ICONS_OFFSET - PCD_COMMENT_OFFSET..PCD_ICONS_OFFSET - PCD_COMMENT_OFFSET + 2].copy_from_slice(&des.received.to_le_bytes()); + + let icons = [des.icons.0,des.icons.1,des.icons.2].iter().flat_map(|i|i.to_le_bytes()).collect::>(); + + eprintln!("{:?} {:?}", des.icons, icons); + + card_data[PCD_ICONS_OFFSET - PCD_COMMENT_OFFSET..PCD_ICONS_OFFSET - PCD_COMMENT_OFFSET + 2*3].copy_from_slice(icons.as_slice()); + + eprintln!("{:?}", &card_data[PCD_ICONS_OFFSET-PCD_COMMENT_OFFSET..PCD_ICONS_OFFSET-PCD_COMMENT_OFFSET+2*3]); + + card_data[PCD_RECEIVED_OFFSET - PCD_COMMENT_OFFSET..PCD_RECEIVED_OFFSET - PCD_COMMENT_OFFSET + 2].copy_from_slice(&des.received.to_le_bytes()); card_data[PCD_REDISTRIBUTION_OFFSET - PCD_COMMENT_OFFSET] = des.redistribution; PCD {