changeset 43:1f583d85c8ed

rocks slide correctly now. rock movement is complete.
author William Morgan <bill@mrgn.org>
date Sun, 15 Jul 2012 16:45:42 -0700
parents 21b14768ea00
children 5d2e59cbbc7c ccaecf1d6425
files src/sim.tp
diffstat 1 files changed, 16 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/sim.tp	Sun Jul 15 14:48:05 2012 -0700
+++ b/src/sim.tp	Sun Jul 15 16:45:42 2012 -0700
@@ -197,10 +197,25 @@
 							x <- calcX: index
 							y <- calcY: index
 							below <- getCell: x (y - 1)
+							fallToSide <- :delta {
+								side      <- getCell: (x + delta) y
+								belowSide <- getCell: (x + delta) (y - 1)
+								if: (side eq: (cellTypes empty)) {
+									if: (belowSide eq: (cellTypes empty)) {
+										setCell: (x + delta) (y - 1) value
+										setCell: x y (cellTypes empty)
+										true
+									} else: { false }
+								} else: { false }
+							}
 							if: (below eq: (cellTypes empty)) {
 								setCell: x y (cellTypes empty)
 								setCell: x (y - 1) value
-							}
+							} else: { if: (below eq: (cellTypes rock)) {
+								if: (not: (fallToSide: 1)) {fallToSide: -1}
+							} else: { if: (below eq: (cellTypes lambda)) {
+								fallToSide: 1
+							}}} // end if
 						} else: {
 							if: (value eq: (cellTypes closedLift)) {
 								if: (_robot collected) = _lambdaCount {