diff options
| author | metamuffin <metamuffin@disroot.org> | 2025-10-12 00:03:16 +0200 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2025-10-12 00:03:16 +0200 |
| commit | bab30b167f8d81df92ee0f3dd6f1c1b3dfaeb9b0 (patch) | |
| tree | 2d69741912aed51084df8b1b5f44d8fe1787639e /server/src | |
| parent | 94fab766512de7b3be8123c4238a7902ce7b35c4 (diff) | |
| download | hurrycurry-bab30b167f8d81df92ee0f3dd6f1c1b3dfaeb9b0.tar hurrycurry-bab30b167f8d81df92ee0f3dd6f1c1b3dfaeb9b0.tar.bz2 hurrycurry-bab30b167f8d81df92ee0f3dd6f1c1b3dfaeb9b0.tar.zst | |
Fix bug where unknown order item was optimized out
Diffstat (limited to 'server/src')
| -rw-r--r-- | server/src/entity/mod.rs | 16 | ||||
| -rw-r--r-- | server/src/server.rs | 2 |
2 files changed, 10 insertions, 8 deletions
diff --git a/server/src/entity/mod.rs b/server/src/entity/mod.rs index ce7cb849..6418d0c7 100644 --- a/server/src/entity/mod.rs +++ b/server/src/entity/mod.rs @@ -37,7 +37,7 @@ use environment_effect::{EnvironmentController, EnvironmentEffectController}; use hurrycurry_client_lib::Game; use hurrycurry_data::{Serverdata, entities::EntityDecl}; use hurrycurry_locale::TrError; -use hurrycurry_protocol::{Character, Gamedata, PacketC, PacketS, PlayerID, glam::IVec2}; +use hurrycurry_protocol::{Character, PacketC, PacketS, PlayerID, glam::IVec2}; use item_portal::ItemPortal; use player_portal::PlayerPortal; use std::{ @@ -80,7 +80,7 @@ pub trait Entity: Any { } } -pub fn construct_entity(decl: &EntityDecl, data: &Gamedata) -> DynEntity { +pub fn construct_entity(decl: &EntityDecl) -> DynEntity { match decl.to_owned() { EntityDecl::Book { pos } => Box::new(Book(pos)), EntityDecl::ItemPortal { from, to } => Box::new(ItemPortal { from, to }), @@ -92,16 +92,18 @@ pub fn construct_entity(decl: &EntityDecl, data: &Gamedata) -> DynEntity { cooldown: 0., }), EntityDecl::Map { name, pos } => Box::new(Map { pos, name }), - EntityDecl::Gate { condition, pos } => Box::new(Gate { + EntityDecl::Gate { + condition, + pos, + blocker_tile, + } => Box::new(Gate { condition, unlocked: false, pos, - blocker_tile: data - .get_tile_by_name("fence") - .expect("asserted earlier (tm)"), + blocker_tile, active: true, }), - EntityDecl::Customers { scaling_factor } => { + EntityDecl::Customers { scaling_factor, .. } => { Box::new(Customers::new(scaling_factor.unwrap_or(0.5))) } EntityDecl::EnvironmentEffect(config) => Box::new(EnvironmentEffectController::new(config)), diff --git a/server/src/server.rs b/server/src/server.rs index 99e7eaf8..c0b32a1c 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -388,7 +388,7 @@ impl Server { self.gamedata_index.update(&self.game.data); self.entities.clear(); for ed in &serverdata.entity_decls { - self.entities.push(construct_entity(ed, &self.game.data)); + self.entities.push(construct_entity(ed)); } self.data = serverdata.into(); for e in &mut self.entities { |