Skip to content

Commit ea53c68

Browse files
committed
..
1 parent fecca79 commit ea53c68

File tree

2 files changed

+25
-27
lines changed

2 files changed

+25
-27
lines changed

agrf/graphics/cv/foundation.py

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,21 @@ def get_left_part(left_parts, r, c, solid, scale):
1010

1111
# Top limit - not applicable to solid parts
1212
if not solid:
13-
if left_parts // 4 == 0:
14-
left *= r * 2 + c >= 0 * scale
15-
elif left_parts // 4 == 1:
16-
left *= r * 4 + c >= 0 * scale
17-
elif left_parts // 4 == 2:
18-
left *= r * 4 + c * 3 >= -32 * scale
13+
if left_parts[2] == left_parts[3]:
14+
left *= r * 2 + c >= (-16 * left_parts[3]) * scale
15+
elif left_parts[2] == left_parts[3] + 1:
16+
left *= r * 4 + c >= (-16 * left_parts[3]) * 2 * scale
1917
else:
20-
assert left_parts // 4 == 3
21-
left *= r * 2 + c >= -16 * scale
22-
23-
if left_parts % 4 == 0:
24-
left *= r * 2 - c <= 64 * scale
25-
elif left_parts % 4 == 1:
26-
left *= r * 4 - c <= 96 * scale
27-
elif left_parts % 4 == 2:
28-
left *= r * 4 - c * 3 <= 128 * scale
18+
assert left_parts[2] == left_parts[3] - 1
19+
left *= r * 4 + c * 3 >= (-16 * left_parts[3]) * 2 * scale
20+
21+
if left_parts[0] == left_parts[1]:
22+
left *= r * 2 - c <= (64 - 16 * left_parts[0]) * scale
23+
elif left_parts[0] == left_parts[1] + 1:
24+
left *= r * 4 - c <= (64 - 16 * left_parts[0]) * 2 * scale
2925
else:
30-
assert left_parts % 4 == 3
31-
left *= r * 2 - c <= 48 * scale
26+
assert left_parts[0] == left_parts[1] - 1
27+
left *= r * 4 - c * 3 <= (64 - 16 * left_parts[0]) * 2 * scale
3228

3329
return left.astype(np.uint8)
3430

agrf/lib/building/foundation.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,12 @@ def make_sprite(self, slope_type, render_context):
8484
def get_sprite_conf(self, style, i):
8585
left, right = {
8686
("ground", 0): (7, 7),
87-
("simple", 0): (6, None),
88-
("simple", 1): (4, None),
89-
("simple", 2): (5, None),
90-
("simple", 3): (None, 6),
91-
("simple", 4): (None, 4),
92-
("simple", 5): (None, 5),
87+
("simple", 0): (2, None),
88+
("simple", 1): (0, None),
89+
("simple", 2): (1, None),
90+
("simple", 3): (None, 2),
91+
("simple", 4): (None, 0),
92+
("simple", 5): (None, 1),
9393
("simple", 6): (3, None),
9494
("simple", 7): (None, 3),
9595
("extended", 0): (3, 1),
@@ -112,14 +112,16 @@ def get_sprite_conf(self, style, i):
112112
y_limit += 16
113113

114114
if left is not None:
115-
left = (left & 3) + (left & 6) * 2
115+
left = [left % 2, left // 2 % 2, left // 2 % 2, left // 4]
116116
if self.sw_shareground:
117-
left = left & 12
117+
left[0] = -self.zshift // 8
118+
left[1] = -self.zshift // 8
118119

119120
if right is not None:
120-
right = (right & 3) + (right & 6) * 2
121+
right = [right % 2, right // 2 % 2, right // 2 % 2, right // 4]
121122
if self.se_shareground:
122-
right = right & 12
123+
right[0] = -self.zshift // 8
124+
right[1] = -self.zshift // 8
123125

124126
return left, right, y_limit
125127

0 commit comments

Comments
 (0)