X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fcore%2Flevel%2Fmod.rs;fp=src%2Fcore%2Flevel%2Fmod.rs;h=47a4703e8904f65315d8fe76c6b971237ab13289;hb=d67471eea7777938ffe9fb82ac2e060133b655d9;hp=e422042f57241ae0ea787be34f6104e89584eb1f;hpb=15cda3333ba8d5600b1afa9426a112dea99d4941;p=kaka%2Frust-sdl-test.git diff --git a/src/core/level/mod.rs b/src/core/level/mod.rs index e422042..47a4703 100644 --- a/src/core/level/mod.rs +++ b/src/core/level/mod.rs @@ -204,8 +204,7 @@ pub struct WallRegion { } impl WallRegion { - pub fn new(points: Vec>) -> Self { - let index: RegionIndex = 0; // use as param + pub fn new(index: RegionIndex, points: Vec>) -> Self { let mut edges = Vec::with_capacity(points.len()); for i in 0..points.len() { @@ -223,12 +222,12 @@ impl WallRegion { fn next(&self, index: EdgeIndex) -> Rc { let index = (index + 1) % self.edges.len(); - Rc::clone(&self.edges[index]) + self.edges[index].clone() } fn previous(&self, index: EdgeIndex) -> Rc { - let index = (index + self.edges.len() + 1) % self.edges.len(); - Rc::clone(&self.edges[index]) + let index = (index + self.edges.len() - 1) % self.edges.len(); + self.edges[index].clone() } } @@ -270,18 +269,18 @@ pub struct Wall { impl Wall { #[allow(dead_code)] - pub fn next(self) -> Wall { + pub fn next(&self) -> Wall { Wall { edge: self.region.next(self.edge.id), - region: self.region, + region: self.region.clone(), } } #[allow(dead_code)] - pub fn previous(self) -> Wall { + pub fn previous(&self) -> Wall { Wall { edge: self.region.previous(self.edge.id), - region: self.region, + region: self.region.clone(), } }