projects
/
rocksndiamonds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
108c590
)
moved code for handling wall side of slope for MM engine
author
Holger Schemel
<info@artsoft.org>
Fri, 19 May 2023 10:37:12 +0000
(12:37 +0200)
committer
Holger Schemel
<info@artsoft.org>
Fri, 19 May 2023 10:37:12 +0000
(12:37 +0200)
src/game_mm/mm_game.c
patch
|
blob
|
history
diff --git
a/src/game_mm/mm_game.c
b/src/game_mm/mm_game.c
index 24507681889d1becc70e053b776c2f96cee43913..46f914de964302cd2f31fae73d811cdc1a99b7b2 100644
(file)
--- a/
src/game_mm/mm_game.c
+++ b/
src/game_mm/mm_game.c
@@
-1328,22
+1328,6
@@
static void ScanLaser(void)
break;
}
}
break;
}
}
- else if (IS_DF_SLOPE(element))
- {
- if (hit_mask == HIT_MASK_LEFT ||
- hit_mask == HIT_MASK_RIGHT ||
- hit_mask == HIT_MASK_TOP ||
- hit_mask == HIT_MASK_BOTTOM)
- {
- if (HitReflectingWalls(element, hit_mask))
- break;
- }
- else
- {
- if (HitElement(element, hit_mask))
- break;
- }
- }
else
{
if (HitElement(element, hit_mask))
else
{
if (HitElement(element, hit_mask))
@@
-1704,6
+1688,15
@@
static boolean HitElement(int element, int hit_mask)
boolean cross_x = (getLevelFromLaserX(LX) != getLevelFromLaserX(LX + 2));
boolean cross_y = (getLevelFromLaserY(LY) != getLevelFromLaserY(LY + 2));
boolean cross_x = (getLevelFromLaserX(LX) != getLevelFromLaserX(LX + 2));
boolean cross_y = (getLevelFromLaserY(LY) != getLevelFromLaserY(LY + 2));
+ // check if wall (horizontal or vertical) side of slope was hit
+ if (hit_mask == HIT_MASK_LEFT ||
+ hit_mask == HIT_MASK_RIGHT ||
+ hit_mask == HIT_MASK_TOP ||
+ hit_mask == HIT_MASK_BOTTOM)
+ {
+ return HitReflectingWalls(element, hit_mask);
+ }
+
// check if an edge was hit while crossing element borders
if (cross_x && cross_y && get_number_of_bits(hit_mask) == 1)
{
// check if an edge was hit while crossing element borders
if (cross_x && cross_y && get_number_of_bits(hit_mask) == 1)
{