mirror of
https://github.com/Pecusx/scorch_src.git
synced 2026-05-21 21:34:20 +02:00
New method of checking the tank falling direction.
New table "SlideLeftTable" (8 bytes) instead "WhereToSlideTable" (256 bytes) But procedure is not optimal - we need to write a new version. And now, falling diagonally doesn't take any more energy.
This commit is contained in:
+10
-264
@@ -210,270 +210,16 @@ disktance ;tanks distance
|
||||
|
||||
; this table is for deciding where a tank should slide
|
||||
; accordingly to what is below the tank
|
||||
; there are 3 bits used here
|
||||
; bit 0 - go down
|
||||
; bit 1 - go left
|
||||
; bit 2 - go right
|
||||
; position in the table equals to bit pattern of soil below tank
|
||||
|
||||
WhereToSlideTable
|
||||
; we have 3 bits, when set: 2 - go left, 1 - go right, 0 - go down
|
||||
.BY %001 ; 00000000
|
||||
.BY %101 ; 00000001
|
||||
.BY %100 ; 00000010
|
||||
.BY %100 ; 00000011
|
||||
.BY %100 ; 00000100
|
||||
.BY %100 ; 00000101
|
||||
.BY %100 ; 00000110
|
||||
.BY %100 ; 00000111
|
||||
.BY %000 ; 00001000
|
||||
.BY %000 ; 00001001
|
||||
.BY %000 ; 00001010
|
||||
.BY %000 ; 00001011
|
||||
.BY %100 ; 00001100
|
||||
.BY %000 ; 00001101
|
||||
.BY %000 ; 00001110
|
||||
.BY %000 ; 00001111
|
||||
.BY %000 ; 00010000
|
||||
.BY %000 ; 00010001
|
||||
.BY %000 ; 00010010
|
||||
.BY %000 ; 00010011
|
||||
.BY %000 ; 00010100
|
||||
.BY %000 ; 00010101
|
||||
.BY %000 ; 00010110
|
||||
.BY %000 ; 00010111
|
||||
.BY %000 ; 00011000
|
||||
.BY %000 ; 00011001
|
||||
.BY %000 ; 00011010
|
||||
.BY %000 ; 00011011
|
||||
.BY %000 ; 00011100
|
||||
.BY %000 ; 00011101
|
||||
.BY %000 ; 00011110
|
||||
.BY %000 ; 00011111
|
||||
.BY %010 ; 00100000
|
||||
.BY %000 ; 00100001
|
||||
.BY %000 ; 00100010
|
||||
.BY %000 ; 00100011
|
||||
.BY %000 ; 00100100
|
||||
.BY %000 ; 00100101
|
||||
.BY %000 ; 00100110
|
||||
.BY %000 ; 00100111
|
||||
.BY %000 ; 00101000
|
||||
.BY %000 ; 00101001
|
||||
.BY %000 ; 00101010
|
||||
.BY %000 ; 00101011
|
||||
.BY %000 ; 00101100
|
||||
.BY %000 ; 00101101
|
||||
.BY %000 ; 00101110
|
||||
.BY %000 ; 00101111
|
||||
.BY %010 ; 00110000
|
||||
.BY %000 ; 00110001
|
||||
.BY %000 ; 00110010
|
||||
.BY %000 ; 00110011
|
||||
.BY %000 ; 00110100
|
||||
.BY %000 ; 00110101
|
||||
.BY %000 ; 00110110
|
||||
.BY %000 ; 00110111
|
||||
.BY %000 ; 00111000
|
||||
.BY %000 ; 00111001
|
||||
.BY %000 ; 00111010
|
||||
.BY %000 ; 00111011
|
||||
.BY %000 ; 00111100
|
||||
.BY %000 ; 00111101
|
||||
.BY %000 ; 00111110
|
||||
.BY %000 ; 00111111
|
||||
.BY %010 ; 01000000
|
||||
.BY %000 ; 01000001
|
||||
.BY %000 ; 01000010
|
||||
.BY %000 ; 01000011
|
||||
.BY %000 ; 01000100
|
||||
.BY %000 ; 01000101
|
||||
.BY %000 ; 01000110
|
||||
.BY %000 ; 01000111
|
||||
.BY %000 ; 01001000
|
||||
.BY %000 ; 01001001
|
||||
.BY %000 ; 01001010
|
||||
.BY %000 ; 01001011
|
||||
.BY %000 ; 01001100
|
||||
.BY %000 ; 01001101
|
||||
.BY %000 ; 01001110
|
||||
.BY %000 ; 01001111
|
||||
.BY %000 ; 01010000
|
||||
.BY %000 ; 01010001
|
||||
.BY %000 ; 01010010
|
||||
.BY %000 ; 01010011
|
||||
.BY %000 ; 01010100
|
||||
.BY %000 ; 01010101
|
||||
.BY %000 ; 01010110
|
||||
.BY %000 ; 01010111
|
||||
.BY %000 ; 01011000
|
||||
.BY %000 ; 01011001
|
||||
.BY %000 ; 01011010
|
||||
.BY %000 ; 01011011
|
||||
.BY %000 ; 01011100
|
||||
.BY %000 ; 01011101
|
||||
.BY %000 ; 01011110
|
||||
.BY %000 ; 01011111
|
||||
.BY %010 ; 01100000
|
||||
.BY %000 ; 01100001
|
||||
.BY %000 ; 01100010
|
||||
.BY %000 ; 01100011
|
||||
.BY %000 ; 01100100
|
||||
.BY %000 ; 01100101
|
||||
.BY %000 ; 01100110
|
||||
.BY %000 ; 01100111
|
||||
.BY %000 ; 01101000
|
||||
.BY %000 ; 01101001
|
||||
.BY %000 ; 01101010
|
||||
.BY %000 ; 01101011
|
||||
.BY %000 ; 01101100
|
||||
.BY %000 ; 01101101
|
||||
.BY %000 ; 01101110
|
||||
.BY %000 ; 01101111
|
||||
.BY %000 ; 01110000
|
||||
.BY %000 ; 01110001
|
||||
.BY %000 ; 01110010
|
||||
.BY %000 ; 01110011
|
||||
.BY %000 ; 01110100
|
||||
.BY %000 ; 01110101
|
||||
.BY %000 ; 01110110
|
||||
.BY %000 ; 01110111
|
||||
.BY %000 ; 01111000
|
||||
.BY %000 ; 01111001
|
||||
.BY %000 ; 01111010
|
||||
.BY %000 ; 01111011
|
||||
.BY %000 ; 01111100
|
||||
.BY %000 ; 01111101
|
||||
.BY %000 ; 01111110
|
||||
.BY %000 ; 01111111
|
||||
.BY %011 ; 10000000
|
||||
.BY %000 ; 10000001
|
||||
.BY %000 ; 10000010
|
||||
.BY %000 ; 10000011
|
||||
.BY %000 ; 10000100
|
||||
.BY %000 ; 10000101
|
||||
.BY %000 ; 10000110
|
||||
.BY %000 ; 10000111
|
||||
.BY %000 ; 10001000
|
||||
.BY %000 ; 10001001
|
||||
.BY %000 ; 10001010
|
||||
.BY %000 ; 10001011
|
||||
.BY %000 ; 10001100
|
||||
.BY %000 ; 10001101
|
||||
.BY %000 ; 10001110
|
||||
.BY %000 ; 10001111
|
||||
.BY %000 ; 10010000
|
||||
.BY %000 ; 10010001
|
||||
.BY %000 ; 10010010
|
||||
.BY %000 ; 10010011
|
||||
.BY %000 ; 10010100
|
||||
.BY %000 ; 10010101
|
||||
.BY %000 ; 10010110
|
||||
.BY %000 ; 10010111
|
||||
.BY %000 ; 10011000
|
||||
.BY %000 ; 10011001
|
||||
.BY %000 ; 10011010
|
||||
.BY %000 ; 10011011
|
||||
.BY %000 ; 10011100
|
||||
.BY %000 ; 10011101
|
||||
.BY %000 ; 10011110
|
||||
.BY %000 ; 10011111
|
||||
.BY %010 ; 10100000
|
||||
.BY %000 ; 10100001
|
||||
.BY %000 ; 10100010
|
||||
.BY %000 ; 10100011
|
||||
.BY %000 ; 10100100
|
||||
.BY %000 ; 10100101
|
||||
.BY %000 ; 10100110
|
||||
.BY %000 ; 10100111
|
||||
.BY %000 ; 10101000
|
||||
.BY %000 ; 10101001
|
||||
.BY %000 ; 10101010
|
||||
.BY %000 ; 10101011
|
||||
.BY %000 ; 10101100
|
||||
.BY %000 ; 10101101
|
||||
.BY %000 ; 10101110
|
||||
.BY %000 ; 10101111
|
||||
.BY %000 ; 10110000
|
||||
.BY %000 ; 10110001
|
||||
.BY %000 ; 10110010
|
||||
.BY %000 ; 10110011
|
||||
.BY %000 ; 10110100
|
||||
.BY %000 ; 10110101
|
||||
.BY %000 ; 10110110
|
||||
.BY %000 ; 10110111
|
||||
.BY %000 ; 10111000
|
||||
.BY %000 ; 10111001
|
||||
.BY %000 ; 10111010
|
||||
.BY %000 ; 10111011
|
||||
.BY %000 ; 10111100
|
||||
.BY %000 ; 10111101
|
||||
.BY %000 ; 10111110
|
||||
.BY %000 ; 10111111
|
||||
.BY %010 ; 11000000
|
||||
.BY %000 ; 11000001
|
||||
.BY %000 ; 11000010
|
||||
.BY %000 ; 11000011
|
||||
.BY %000 ; 11000100
|
||||
.BY %000 ; 11000101
|
||||
.BY %000 ; 11000110
|
||||
.BY %000 ; 11000111
|
||||
.BY %000 ; 11001000
|
||||
.BY %000 ; 11001001
|
||||
.BY %000 ; 11001010
|
||||
.BY %000 ; 11001011
|
||||
.BY %000 ; 11001100
|
||||
.BY %000 ; 11001101
|
||||
.BY %000 ; 11001110
|
||||
.BY %000 ; 11001111
|
||||
.BY %000 ; 11010000
|
||||
.BY %000 ; 11010001
|
||||
.BY %000 ; 11010010
|
||||
.BY %000 ; 11010011
|
||||
.BY %000 ; 11010100
|
||||
.BY %000 ; 11010101
|
||||
.BY %000 ; 11010110
|
||||
.BY %000 ; 11010111
|
||||
.BY %000 ; 11011000
|
||||
.BY %000 ; 11011001
|
||||
.BY %000 ; 11011010
|
||||
.BY %000 ; 11011011
|
||||
.BY %000 ; 11011100
|
||||
.BY %000 ; 11011101
|
||||
.BY %000 ; 11011110
|
||||
.BY %000 ; 11011111
|
||||
.BY %010 ; 11100000
|
||||
.BY %000 ; 11100001
|
||||
.BY %000 ; 11100010
|
||||
.BY %000 ; 11100011
|
||||
.BY %000 ; 11100100
|
||||
.BY %000 ; 11100101
|
||||
.BY %000 ; 11100110
|
||||
.BY %000 ; 11100111
|
||||
.BY %000 ; 11101000
|
||||
.BY %000 ; 11101001
|
||||
.BY %000 ; 11101010
|
||||
.BY %000 ; 11101011
|
||||
.BY %000 ; 11101100
|
||||
.BY %000 ; 11101101
|
||||
.BY %000 ; 11101110
|
||||
.BY %000 ; 11101111
|
||||
.BY %000 ; 11110000
|
||||
.BY %000 ; 11110001
|
||||
.BY %000 ; 11110010
|
||||
.BY %000 ; 11110011
|
||||
.BY %000 ; 11110100
|
||||
.BY %000 ; 11110101
|
||||
.BY %000 ; 11110110
|
||||
.BY %000 ; 11110111
|
||||
.BY %000 ; 11111000
|
||||
.BY %000 ; 11111001
|
||||
.BY %000 ; 11111010
|
||||
.BY %000 ; 11111011
|
||||
.BY %000 ; 11111100
|
||||
.BY %000 ; 11111101
|
||||
.BY %000 ; 11111110
|
||||
.BY %000 ; 11111111
|
||||
; values in table mean that tank is moving to the left
|
||||
SlideLeftTable
|
||||
.BY %00000001
|
||||
.BY %00000010
|
||||
.BY %00000011
|
||||
.BY %00000100
|
||||
.BY %00000101
|
||||
.BY %00000110
|
||||
.BY %00000111
|
||||
.BY %00001100
|
||||
|
||||
EndOfTheBarrelX
|
||||
; right angles from 0 (vertically up) to 90 (horizontally to the right)
|
||||
|
||||
Reference in New Issue
Block a user