Skip to content

Commit 20db175

Browse files
authored
Merge pull request #19 from artemijan/fb-global-id
Fb global + unit tests
2 parents 2976e66 + 7e861cf commit 20db175

File tree

25 files changed

+231
-71
lines changed

25 files changed

+231
-71
lines changed

Cargo.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

game/src/packets/from_client/restart.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ impl Message<RequestRestart> for PlayerClient {
3434
let p = CharSelectionInfo::new(&user_name.clone(), session_id, &self.controller, chars)?;
3535
let player = self.try_get_selected_char()?.clone(); // we clone it to avoid borrow checker issues with reference to self
3636
self.controller.broadcast_packet_with_filter(
37-
DeleteObject::new(player.get_id())?,
37+
DeleteObject::new(player.get_object_id())?,
3838
Some(Box::new(move |acc, _| !acc.eq(&user_name))),
3939
);
4040
self.send_packet(RestartResponse::ok()?).await?;

game/src/packets/to_client/char_info.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ impl CharInfo {
5555
inst.buffer.write_i32(p.get_z())?; // Confirmed
5656
inst.buffer
5757
.write_i32(p.get_vehicle_object_id().unwrap_or(0))?; // Confirmed
58-
inst.buffer.write_i32(p.char_model.id)?; // Confirmed
58+
inst.buffer.write_i32(p.get_object_id())?; // Confirmed
5959
inst.buffer
6060
.write_c_utf16le_string(Some(p.get_visible_name()))?; // Confirmed
6161
inst.buffer.write_i16(p.char_model.race_id)?; // Confirmed

game/src/packets/to_client/char_move_to_location.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ impl CharMoveToLocation {
1818
buffer: SendablePacketBuffer::new(),
1919
};
2020
inst.buffer.write(Self::PACKET_ID)?;
21-
inst.buffer.write_i32(p.get_id())?; // 1-7 increase force, level
21+
inst.buffer.write_i32(p.get_object_id())?; // 1-7 increase force, level
2222

2323
// Target position
2424
inst.buffer.write_i32(target_x)?;

game/src/packets/to_client/char_selected.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ impl CharSelected {
2020
inst.buffer.write(Self::PACKET_ID)?;
2121
inst.buffer
2222
.write_c_utf16le_string(Some(&player.char_model.name))?;
23-
inst.buffer.write_i32(player.char_model.id)?;
23+
inst.buffer.write_i32(player.get_object_id())?;
2424
inst.buffer
2525
.write_c_utf16le_string(player.char_model.title.as_deref())?;
2626
inst.buffer.write_i32(session_id)?;
@@ -61,6 +61,7 @@ mod tests {
6161
use entities::entities::character;
6262
use l2_core::config::traits::ConfigDirLoader;
6363
use l2_core::data::char_template::ClassTemplates;
64+
use l2_core::id_factory::ObjectId;
6465

6566
#[test]
6667
fn test_char_selected() {
@@ -81,16 +82,16 @@ mod tests {
8182
x: -90939,
8283
y: 248_138,
8384
z: -3563,
84-
id: 268_476_204,
8585
..Default::default()
8686
};
8787
let templates = ClassTemplates::load();
8888
let temp = templates.try_get_template(inst.class_id).unwrap().clone();
89-
let char = Player::new(inst, vec![], temp);
89+
let mut char = Player::new(inst, vec![], temp);
90+
char.object_id = ObjectId::new(268_476_207);
9091
let mut packet = CharSelected::new(&char, 9998, 286).unwrap();
9192
assert_eq!(
9293
[
93-
11, 65, 0, 100, 0, 101, 0, 108, 0, 97, 0, 110, 0, 116, 0, 101, 0, 0, 0, 44,
94+
11, 65, 0, 100, 0, 101, 0, 108, 0, 97, 0, 110, 0, 116, 0, 101, 0, 0, 0, 47,
9495
159, 0, 16, 0, 0, 14, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 10,
9596
0, 0, 0, 1, 0, 0, 0, 197, 156, 254, 255, 74, 201, 3, 0, 21, 242, 255, 255, 0, 0, 0,
9697
0, 0, 128, 88, 64, 0, 0, 0, 0, 0, 128, 77, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

game/src/packets/to_client/extended/equipped_items.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ impl EquippedItems {
2121
};
2222
inst.buffer.write(Self::PACKET_ID)?;
2323
inst.buffer.write_u16(Self::EX_PACKET_ID)?;
24-
inst.buffer.write_i32(p.char_model.id)?;
24+
inst.buffer.write_i32(p.get_object_id())?;
2525
let mut bitmask = BitMask::new(40); //5 bytes, 50 bits
2626
let slots = InventorySlot::iter();
2727
let num_slots = slots.len();
@@ -62,18 +62,18 @@ mod tests {
6262
use l2_core::shared_packets::common::SendablePacket;
6363
use l2_core::traits::ServerConfig;
6464
use std::sync::Arc;
65+
use l2_core::id_factory::ObjectId;
6566
use test_utils::utils::get_test_db;
6667
#[tokio::test]
6768
async fn test_equipped_items() {
6869
let db_pool = get_test_db().await;
6970
let user = user_factory(&db_pool, |u| u).await;
70-
let mut char = char_factory(&db_pool, |mut m| {
71+
let char = char_factory(&db_pool, |mut m| {
7172
m.name = "Adelante".to_string();
7273
m.user_id = user.id;
7374
m
7475
})
7576
.await;
76-
char.id = 268_476_204;
7777
let cfg = Arc::new(GSServerConfig::from_string(include_str!(
7878
"../../../../config/game.yaml"
7979
)));
@@ -82,11 +82,12 @@ mod tests {
8282
.class_templates
8383
.try_get_template(Class::try_from(char.class_id).unwrap())
8484
.unwrap();
85-
let player = Player::new(char, vec![], template.clone());
85+
let mut player = Player::new(char, vec![], template.clone());
86+
player.object_id = ObjectId::new(268_476_206);
8687
let p = EquippedItems::new(&player, true).unwrap();
8788
assert_eq!(
8889
[
89-
254, 86, 1, 44, 159, 0, 16, 33, 0, 255, 255, 255, 255, 128, 22, 0, 0, 0, 0, 0, 0,
90+
254, 86, 1, 46, 159, 0, 16, 33, 0, 255, 255, 255, 255, 128, 22, 0, 0, 0, 0, 0, 0,
9091
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9192
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9293
0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

game/src/packets/to_client/extended/inventory_weight.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ impl InventoryWeight {
1717
};
1818
inst.buffer.write(Self::PACKET_ID)?;
1919
inst.buffer.write_u16(Self::EX_PACKET_ID)?;
20-
inst.buffer.write_i32(p.char_model.id)?;
20+
inst.buffer.write_i32(p.get_object_id())?;
2121
inst.buffer.write_i32(p.inventory.get_current_load())?;
2222
inst.buffer.write_i32(p.inventory.get_max_load())?;
2323
Ok(inst)
@@ -33,18 +33,18 @@ mod tests {
3333
use l2_core::shared_packets::common::SendablePacket;
3434
use l2_core::traits::ServerConfig;
3535
use std::sync::Arc;
36+
use l2_core::id_factory::ObjectId;
3637
use test_utils::utils::get_test_db;
3738
#[tokio::test]
3839
async fn test_inventory_weight() {
3940
let db_pool = get_test_db().await;
4041
let user = user_factory(&db_pool, |u| u).await;
41-
let mut char = char_factory(&db_pool, |mut m| {
42+
let char = char_factory(&db_pool, |mut m| {
4243
m.name = "Adelante".to_string();
4344
m.user_id = user.id;
4445
m
4546
})
4647
.await;
47-
char.id = 268_476_204;
4848
let cfg = Arc::new(GSServerConfig::from_string(include_str!(
4949
"../../../../config/game.yaml"
5050
)));
@@ -53,10 +53,11 @@ mod tests {
5353
.class_templates
5454
.try_get_template(Class::try_from(char.class_id).unwrap())
5555
.unwrap();
56-
let player = Player::new(char, vec![], template.clone());
56+
let mut player = Player::new(char, vec![], template.clone());
57+
player.object_id = ObjectId::new(268_476_205);
5758
let p = InventoryWeight::new(&player).unwrap();
5859
assert_eq!(
59-
[254, 102, 1, 44, 159, 0, 16, 0, 0, 0, 0, 108, 24, 3, 0],
60+
[254, 102, 1, 45, 159, 0, 16, 0, 0, 0, 0, 108, 24, 3, 0],
6061
p.get_buffer().get_data_mut(false)[2..]
6162
);
6263
}

game/src/packets/to_client/extended/premium_state.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ impl PremiumState {
1515
let mut buffer = SendablePacketBuffer::new();
1616
buffer.write(Self::PACKET_ID)?;
1717
buffer.write_u16(Self::EX_PACKET_ID)?;
18-
buffer.write_i32(p.char_model.id)?;
18+
buffer.write_i32(p.get_object_id())?;
1919
buffer.write(p.has_premium())?;
2020
Ok(Self { buffer })
2121
}
@@ -30,6 +30,7 @@ mod test {
3030
use l2_core::shared_packets::common::SendablePacket;
3131
use l2_core::traits::ServerConfig;
3232
use std::sync::Arc;
33+
use l2_core::id_factory::ObjectId;
3334
use test_utils::utils::get_test_db;
3435
use super::*;
3536

@@ -43,7 +44,6 @@ mod test {
4344
m
4445
})
4546
.await;
46-
char.id = 268_476_204;
4747
let cfg = Arc::new(GSServerConfig::from_string(include_str!(
4848
"../../../../config/game.yaml"
4949
)));
@@ -52,10 +52,11 @@ mod test {
5252
.class_templates
5353
.try_get_template(Class::try_from(char.class_id).unwrap())
5454
.unwrap();
55-
let player = Player::new(char, vec![], template.clone());
55+
let mut player = Player::new(char, vec![], template.clone());
56+
player.object_id = ObjectId::new(268_476_209);
5657
let p = PremiumState::new(&player).unwrap();
5758
assert_eq!(
58-
[254, 218, 0, 44, 159, 0, 16, 0],
59+
[254, 218, 0, 49, 159, 0, 16, 0],
5960
p.get_buffer().get_data_mut(false)[2..]
6061
);
6162
}

game/src/packets/to_client/extended/rotation.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ impl Rotation {
1818
};
1919
inst.buffer.write(Self::PACKET_ID)?;
2020
inst.buffer.write_u16(Self::EX_PACKET_ID)?;
21-
inst.buffer.write_i32(player.char_model.id)?;
21+
inst.buffer.write_i32(player.get_object_id())?;
2222
inst.buffer.write_i32(player.get_location().heading)?;
2323
Ok(inst)
2424
}
@@ -35,6 +35,7 @@ mod tests {
3535
use l2_core::shared_packets::common::SendablePacket;
3636
use l2_core::traits::ServerConfig;
3737
use std::sync::Arc;
38+
use l2_core::id_factory::ObjectId;
3839
use test_utils::utils::get_test_db;
3940
#[tokio::test]
4041
async fn test_rotation_packet() {
@@ -46,7 +47,6 @@ mod tests {
4647
m
4748
})
4849
.await;
49-
char.id = 268_476_204;
5050
let cfg = Arc::new(GSServerConfig::from_string(include_str!(
5151
"../../../../config/game.yaml"
5252
)));
@@ -56,10 +56,11 @@ mod tests {
5656
.try_get_template(Class::try_from(char.class_id).unwrap())
5757
.unwrap();
5858
let mut player = Player::new(char, vec![], template.clone());
59+
player.object_id = ObjectId::new(268_476_210);
5960
player.set_location_heading(33897);
6061
let p = Rotation::new(&player).unwrap();
6162
assert_eq!(
62-
[0, 254, 194, 0, 44, 159, 0, 16, 105, 132, 0, 0],
63+
[0, 254, 194, 0, 50, 159, 0, 16, 105, 132, 0, 0],
6364
p.get_buffer().get_data_mut(false)[1..]
6465
);
6566
}

game/src/packets/to_client/move_to.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ impl MoveTo {
1414
pub fn new(p: &Player, loc: &Location) -> anyhow::Result<Self> {
1515
let mut buffer = SendablePacketBuffer::new();
1616
buffer.write(Self::PACKET_ID)?;
17-
buffer.write_i32(p.char_model.id)?;
17+
buffer.write_i32(p.get_object_id())?;
1818
let p_loc = p.get_location();
1919
buffer.write_i32(p_loc.x)?;
2020
buffer.write_i32(p_loc.y)?;

0 commit comments

Comments
 (0)