# vim: set ts=10
#TODO: use AllLeft instead of cond in AllLeft defines
# replace && and || for AND and OR
# add space support in aaa == kkkk
# replace wallGetblablabla(WALL_blablabla for WALL_blablabla
# order the elements by tile and not by layer
XX AllLeft
# Gate/left
cond left==TILES_DOOR
drawAll 0 2 15
drawGate 0 -TILE_H+3 gateGetFrame(left)
# normal/left
cond left==TILES_FLOOR
drawAll 0 2 10
# loose moving/left
cond left==TILES_LOOSEMOVING
drawLoose 0 2 looseGetFrame(left),layTritop
# exit_left/left
cond left==TILE_EXIT_RIGHT
drawAll 0 2 7
# pillar/left
cond left==TILES_PILLAR
drawAll 0 2 44
# pillar_big_up/left
cond left==TILE_BP_BOTTOM
drawAll 0 2 83
cond left==TILE_BP_TOP
drawAll 0 3 85
# pressable/left
cond left==TILES_RAISE_PRESSED
drawAll 0 2 10
cond left==TILES_RAISE_UNPRESSED
drawAll 0 1 10
cond left==TILES_DROP_PRESSED
drawAll 0 3 10
cond left==TILES_DROP_UNPRESSED
drawAll 0 2 10
# debris/left
cond left==TILES_BROKENTILE
drawAll 0 2 49
# spikes/left
cond left==TILES_SPIKES
drawAll 0 2 107
drawSpike -TILE_W 0 spikeGetFrame(left),layRight
# skeleton/left
cond left==TILES_SKELETON
drawAll 0 2 81
# sword/left
cond left==TILES_SWORD
drawSword -15 -4
# potion base/left
cond left==TILES_SMALLPOTION
drawPotionSmallBase -15 -4
cond (left==TILES_BIGPOTION)
drawPotionBigBase -15 -4
# potion animation/left
cond left==TILES_REDPOTION
drawPotionRedBubbles 3-15 -15 left==TILES_BIGPOTION
cond left==TILES_GREENPOTION
drawPotionGreenBubbles 3-15 -15 left==TILES_BIGPOTION
cond left==TILES_BLUEPOTION
drawPotionBlueBubbles 3-15 -15 left==TILES_BIGPOTION
XX AllTile
# Wall/left
cond (tile!=TILES_WALL)&&(left==TILES_WALL)
drawAll 0 2 63
# torch/this
cond tile==TILES_TORCH
# animation
drawTorchFire 11+TILE_W -39
# base
drawAll 3+TILE_W -24 56
# chopper/this
cond tile==TILE_CHOPPER
drawChopper 0 0 chopperGetFrame(tile),layCBack
# empty_bricks/this
cond tile==TILES_BRICKE1
drawAll TILE_W+0 -18 52
cond tile==TILES_BRICKE2
drawAll TILE_W+0 -18 53
cond tile==TILES_WINDOW
drawAll TILE_W+0 -18 54
# floor_bricks/this
cond tile==TILES_BRICKF1
drawAll TILE_W+0 -18 12
cond tile==TILES_BRICKF2
drawAll TILE_W+0 -18 13
# gate/this
cond tile==TILES_DOOR
drawAll 0 0 14
# gate_frame/this
cond tile==TILES_GATEFRAME
drawAll 24 0 17
# normal/this
cond tile==TILES_FLOOR
drawAll 0 0 9
# loose moving/this
cond tile==TILES_LOOSEMOVING
drawLoose 0 0 looseGetFrame(tile),layTribot
# exit_left/this
cond tile==TILE_EXIT_RIGHT
drawAll 0 0 5
cond tile==TILE_EXIT_LEFT
drawAll 0 0 9
drawExit TILE_W+8 -TILE_H-1 gateGetFrame(tile)
# pillar/this
cond tile==TILES_PILLAR
drawAll 0 0 43
# big_pillar/this
cond tile==TILE_BP_BOTTOM
drawAll 0 0 82
cond tile==TILE_BP_TOP
drawAll 8 3 87
# pressable/this
# TODO: use boolean algebra to simplify this
cond tile==TILES_RAISE_UNPRESSED&&left==TILES_WALKABLE&&(left!=TILES_RAISE)
drawAll 0 0 57
cond (tile==TILES_RAISE&&((tile!=TILES_UNPRESSED)||(left!=TILES_WALKABLE)||left==TILES_RAISE))&&(tile==TILES_UNPRESSED)
drawAll 0 0 58
cond ((tile==TILES_RAISE&&((tile!=TILES_UNPRESSED)||(left!=TILES_WALKABLE)||left==TILES_RAISE))&&(tile!=TILES_UNPRESSED))||tile==TILES_DROP_UNPRESSED
drawAll 0 1 58
cond tile==TILES_DROP_PRESSED
drawAll 0 2 58
# debris/this
cond tile==TILES_BROKENTILE
drawAll 0 0 48
# spikes/this
cond tile==TILES_SPIKES
drawAll 0 0 101
drawSpike 0 0 spikeGetFrame(tile),layBack
# skeleton/this
cond tile==TILES_SKELETON
drawAll 0 0 80
XX AllBack
# loose moving
cond tile==TILES_LOOSEMOVING
drawLoose 0 3 looseGetFrame(tile),layBase
# normal
cond tile==TILES_UNPRESSED
# TODO: drop has resource 59 for unpressed/raise 47? checkgame
drawAll 0 3 59
cond tile==TILES_PRESSED
drawAll 0 4 59
cond tile==TILES_WALKABLE && tile!=TILES_LOOSEMOVING && tile!=TILES_PRESSABLE
drawAll 0 3 11
# wall
# there are 4 cases
cond wallCase(WALL_LOC_WWW)
drawAll 0 3 65
cond wallCase(WALL_LOC_SWW)
drawAll 0 3 71
cond wallCase(WALL_LOC_WWS)
drawAll 0 3 67
cond wallCase(WALL_LOC_SWS)
drawAll 0 3 69
# empty/gate_frame/this
cond tile==TILES_SPACE && tile==TILES_GATEFRAME
drawAll 0 3 42
# empty/gate/left
cond tile==TILES_SPACE && dleft==TILES_DOOR
drawAll 0 3 16
# empty/big_pillar/left
cond tile==TILES_SPACE && dleft==TILE_BP_TOP
drawAll 0 3 86
# empty/pillar/left
cond tile==TILES_SPACE && dleft==TILES_PILLAR
drawAll 0 3 45
# empty/wall/left
cond tile==TILES_SPACE && dleft==TILES_WALL
drawAll 0 3 64
# upper objects
cond tile==TILE_EXIT_LEFT
drawAll 0+TILE_W -TILE_H+3 6
cond tile==TILE_EXIT_RIGHT
drawAll 0+TILE_W -TILE_H+3 8
XX AllFore
# pillar
cond tile==TILES_PILLAR
drawAll 8 0 46
# big pillar
cond tile==TILE_BP_BOTTOM
drawAll 8 0 84
# wall
# there are 4 cases
cond wallCase(WALL_LOC_WWW)
drawAll 0 0 66
cond wallCase(WALL_LOC_SWW)
drawAll 0 0 72
cond wallCase(WALL_LOC_WWS)
drawAll 0 0 68
cond wallCase(WALL_LOC_SWS)
drawAll 0 0 70
# the seed generation algorithm
# Upper row
cond wallGetInfo(WALL_TABLE_LINE1_DARKER)
drawAll 0 -39 75
cond wallGetInfo(WALL_TABLE_LINE1_LEFT_DOWN)
drawAll 0 -39 77
cond wallGetInfo(WALL_TABLE_LINE1_RIGHT_DOWN)
drawAll 24 -39 79
cond wallGetInfo(WALL_TABLE_LINE1_RIGHT_UP)
drawAll 24 -49 78
cond wallGetInfo(WALL_TABLE_LINE1_LEFT_UP)
drawAll 0 -54 76
# Second row
cond tile==TILES_WALL
drawAll 7+wallGetInfo(WALL_TABLE_LINE2_OFFSET) -18 74-wallGetInfo(WALL_TABLE_LINE2_SEP)
cond wallGetInfo(WALL_TABLE_LINE2_LEFT_DOWN)
drawAll 7+wallGetInfo(WALL_TABLE_LINE2_OFFSET)+5 -39+21 77
cond wallGetInfo(WALL_TABLE_LINE2_RIGHT_DOWN)
drawAll 24+7+wallGetInfo(WALL_TABLE_LINE2_OFFSET)-32+5 -39+21 79
cond wallGetInfo(WALL_TABLE_LINE2_RIGHT_UP)
drawAll 24+7+wallGetInfo(WALL_TABLE_LINE2_OFFSET)-32+5 -49+21 78
cond wallGetInfo(WALL_TABLE_LINE2_LEFT_UP)
drawAll 7+wallGetInfo(WALL_TABLE_LINE2_OFFSET)+5 -54+21 76
# Third row TODO: send to BottomTile
cond tile==TILES_WALL
drawAll 3+wallGetInfo(WALL_TABLE_LINE3_OFFSET) 3 74-wallGetInfo(WALL_TABLE_LINE3_SEP)
cond wallGetInfo(WALL_TABLE_LINE3_LEFT_UP)
drawAll 5+wallGetInfo(WALL_TABLE_LINE3_OFFSET)+5 -55+21*2 76
# debris/this foreground layer
cond tile==TILES_BROKENTILE
drawAll 0 0 51
# spikes/this foreground layer
cond tile==TILES_SPIKES
drawSpike 0 0 spikeGetFrame(tile),layFore