Dolda2000 GitWeb
/
kaka
/
rust-sdl-test.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed wall region indexing bug
[kaka/rust-sdl-test.git]
/
src
/
core
/
level
/
mod.rs
diff --git
a/src/core/level/mod.rs
b/src/core/level/mod.rs
index
e422042
..
47a4703
100644
(file)
--- a/
src/core/level/mod.rs
+++ b/
src/core/level/mod.rs
@@
-204,8
+204,7
@@
pub struct WallRegion {
}
impl WallRegion {
}
impl WallRegion {
- pub fn new(points: Vec<Point<f64>>) -> Self {
- let index: RegionIndex = 0; // use as param
+ pub fn new(index: RegionIndex, points: Vec<Point<f64>>) -> Self {
let mut edges = Vec::with_capacity(points.len());
for i in 0..points.len() {
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<WallEdge> {
let index = (index + 1) % self.edges.len();
fn next(&self, index: EdgeIndex) -> Rc<WallEdge> {
let index = (index + 1) % self.edges.len();
-
Rc::clone(&self.edges[index]
)
+
self.edges[index].clone(
)
}
fn previous(&self, index: EdgeIndex) -> Rc<WallEdge> {
}
fn previous(&self, index: EdgeIndex) -> Rc<WallEdge> {
- 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)]
impl Wall {
#[allow(dead_code)]
- pub fn next(self) -> Wall {
+ pub fn next(
&
self) -> Wall {
Wall {
edge: self.region.next(self.edge.id),
Wall {
edge: self.region.next(self.edge.id),
- region: self.region,
+ region: self.region
.clone()
,
}
}
#[allow(dead_code)]
}
}
#[allow(dead_code)]
- pub fn previous(self) -> Wall {
+ pub fn previous(
&
self) -> Wall {
Wall {
edge: self.region.previous(self.edge.id),
Wall {
edge: self.region.previous(self.edge.id),
- region: self.region,
+ region: self.region
.clone()
,
}
}
}
}