author | ecalot
<ecalot> 2005-03-02 13:22:50 UTC |
committer | ecalot
<ecalot> 2005-03-02 13:22:50 UTC |
parent | c24e2425e4c082b3c055298d9a2fd65c61345976 |
FP/src/include/room.h | +235 | -0 |
FP/src/ker/room.c | +3 | -233 |
diff --git a/FP/src/include/room.h b/FP/src/include/room.h index b18dd32..d7ef40e 100644 --- a/FP/src/include/room.h +++ b/FP/src/include/room.h @@ -45,5 +45,240 @@ void roomDrawForeground(tRoom* room); void roomLoadGfx(long environment); /* Only to initialize environment by mapStart */ int roomPress(tRoom* room, tObject* obj); void roomKidChangedFloor(tRoom* room, tObject* kid); + +#define drawAllLeft(left,tile) \ + /* Wall/left */\ + if ((!isIn(tile,TILES_WALL))&&(isIn(left,TILES_WALL))) \ + e(63,(x-1)*TILE_W+0,y*TILE_H+2);\ + /* Gate/left */\ + if (isIn(left,TILES_DOOR)) {\ + e(15,(x-1)*TILE_W+0,y*TILE_H+2);\ + drawGate((x-1)*TILE_W+0,(y-1)*TILE_H+3,gateGetFrame(left));\ + }\ + /* normal/left */\ + if (isIn(left,TILES_FLOOR)) \ + e(10,(x-1)*TILE_W+0,y*TILE_H+2);\ + /* loose moving/left */\ + if (isIn(left,TILES_LOOSEMOVING)) \ + drawLoose((x-1)*TILE_W+0,y*TILE_H+2,looseGetFrame(left),layTritop);\ + /* exit_left/left */\ + if (isIn(left,TILE_EXIT_RIGHT)) \ + e(7,(x-1)*TILE_W+0,y*TILE_H+2);\ + /* pillar/left */\ + if (isIn(left,TILES_PILLAR)) \ + e(44,(x-1)*TILE_W+0,y*TILE_H+2);\ + /* pillar_big_up/left */\ + if (isIn(left,TILE_BP_BOTTOM)) \ + e(83,(x-1)*TILE_W+0,y*TILE_H+2);\ + if (isIn(left,TILE_BP_TOP)) \ + e(85,(x-1)*TILE_W+0,y*TILE_H+3);\ + /* pressable/left */\ + if (isIn(left,TILES_RAISE_PRESSED)) \ + e(10,(x-1)*TILE_W+0,y*TILE_H+2);\ + if (isIn(left,TILES_RAISE_UNPRESSED)) \ + e(10,(x-1)*TILE_W+0,y*TILE_H+1);\ + if (isIn(left,TILES_DROP_PRESSED)) \ + e(10,(x-1)*TILE_W+0,y*TILE_H+3);\ + if (isIn(left,TILES_DROP_UNPRESSED)) \ + e(10,(x-1)*TILE_W+0,y*TILE_H+2);\ + /* debris/left */\ + if (isIn(left,TILES_BROKENTILE)) \ + e(49,(x-1)*TILE_W+0,y*TILE_H+2);\ + /* spikes/left */\ + if (isIn(left,TILES_SPIKES)) {\ + e(107,(x-1)*TILE_W+0,y*TILE_H+2);\ + drawSpike((x-2)*TILE_W+0,y*TILE_H,spikeGetFrame(left),layRight);\ + }\ + /* skeleton/left */\ + if (isIn(left,TILES_SKELETON)) \ + e(81,(x-1)*TILE_W+0,y*TILE_H+2);\ + /* torch/this */\ + if (isIn(tile,TILES_TORCH)) { /* animation */\ + drawTorchFire(x*TILE_W+11,y*TILE_H-39); \ + /* base */\ + e(56,x*TILE_W+3,y*TILE_H-24);\ + }\ + /* chopper/this */\ + if (isIn(tile,TILE_CHOPPER)) \ + drawChopper((x-1)*TILE_W+0,y*TILE_H,chopperGetFrame(tile),layCBack);\ + /* empty_bricks/this */\ + if (isIn(tile,TILES_BRICKE1)) \ + e(52,x*TILE_W+0,y*TILE_H-18);\ + if (isIn(tile,TILES_BRICKE2)) \ + e(53,x*TILE_W+0,y*TILE_H-18);\ + if (isIn(tile,TILES_WINDOW)) \ + e(54,x*TILE_W+0,y*TILE_H-18);\ + /* floor_bricks/this */\ + if (isIn(tile,TILES_BRICKF1)) \ + e(12,x*TILE_W+0,y*TILE_H-18);\ + if (isIn(tile,TILES_BRICKF2)) \ + e(13,x*TILE_W+0,y*TILE_H-18);\ + /* gate/this */\ + if (isIn(tile,TILES_DOOR)) \ + e(14,(x-1)*TILE_W+0,y*TILE_H+0);\ + /* gate_frame/this */\ + if (isIn(tile,TILES_GATEFRAME)) \ + e(17,(x-1)*TILE_W+24,y*TILE_H+0);\ + /* normal/this */\ + if (isIn(tile,TILES_FLOOR)) \ + e(9,(x-1)*TILE_W+0,y*TILE_H+0);\ + /* loose moving/this */\ + if (isIn(tile,TILES_LOOSEMOVING)) \ + drawLoose((x-1)*TILE_W+0,y*TILE_H+0,looseGetFrame(tile),layTribot);\ + /* exit_left/this */\ + if (isIn(tile,TILE_EXIT_RIGHT)) \ + e(5,(x-1)*TILE_W+0,y*TILE_H+0);\ + if (isIn(tile,TILE_EXIT_LEFT)) {\ + e(9,(x-1)*TILE_W+0,y*TILE_H+0);\ + drawExit(x*TILE_W+8,(y-1)*TILE_H-1,gateGetFrame(tile));\ + }\ + /* pillar/this */\ + if (isIn(tile,TILES_PILLAR)) \ + e(43,(x-1)*TILE_W+0,y*TILE_H+0);\ + /* big_pillar/this */\ + if (isIn(tile,TILE_BP_BOTTOM)) \ + e(82,(x-1)*TILE_W+0,y*TILE_H+0);\ + if (isIn(tile,TILE_BP_TOP)) \ + e(87,(x-1)*TILE_W+8,y*TILE_H+3);\ + /* pressable/this */\ + /* TODO: use boolean algebra to simplify this */\ + if (isIn(tile,TILES_RAISE_UNPRESSED)&&isIn(left,TILES_WALKABLE)&&(!isIn(left,TILES_RAISE)))\ + e(57,(x-1)*TILE_W+0,y*TILE_H);\ + if ((isIn(tile,TILES_RAISE)&&((!isIn(tile,TILES_UNPRESSED))||(!isIn(left,TILES_WALKABLE))||isIn(left,TILES_RAISE)))&&(isIn(tile,TILES_UNPRESSED))) \ + e(58,(x-1)*TILE_W+0,y*TILE_H);\ + if (((isIn(tile,TILES_RAISE)&&((!isIn(tile,TILES_UNPRESSED))||(!isIn(left,TILES_WALKABLE))||isIn(left,TILES_RAISE)))&&(!isIn(tile,TILES_UNPRESSED)))||isIn(tile,TILES_DROP_UNPRESSED))\ + e(58,(x-1)*TILE_W+0,y*TILE_H+1);\ + \ + if (isIn(tile,TILES_DROP_PRESSED)) \ + e(58,(x-1)*TILE_W+0,y*TILE_H+2);\ + /* debris/this */\ + if (isIn(tile,TILES_BROKENTILE)) \ + e(48,(x-1)*TILE_W+0,y*TILE_H+0);\ + /* spikes/this */\ + if (isIn(tile,TILES_SPIKES)) {\ + e(101,(x-1)*TILE_W+0,y*TILE_H+0);\ + drawSpike((x-1)*TILE_W+0,y*TILE_H,spikeGetFrame(tile),layBack);\ + }\ + /* skeleton/this */\ + if (isIn(tile,TILES_SKELETON)) \ + e(80,(x-1)*TILE_W+0,y*TILE_H+0);\ + /* sword/left */\ + if (isIn(left,TILES_SWORD)) \ + drawSword((x-1)*TILE_W-15,y*TILE_H-4);\ + /* potion base/left */\ + if (isIn(left,TILES_SMALLPOTION))\ + drawPotionSmallBase((x-1)*TILE_W-15,y*TILE_H-4);\ + if ((isIn(left,TILES_BIGPOTION))) \ + drawPotionBigBase((x-1)*TILE_W-15,y*TILE_H-4);\ + /* potion animation/left */\ + if (isIn(left,TILES_REDPOTION))\ + drawPotionRedBubbles((x-1)*TILE_W+3-15,y*TILE_H-15,isIn(left,TILES_BIGPOTION));\ + if (isIn(left,TILES_GREENPOTION))\ + drawPotionGreenBubbles((x-1)*TILE_W+3-15,y*TILE_H-15,isIn(left,TILES_BIGPOTION));\ + if (isIn(left,TILES_BLUEPOTION))\ + drawPotionBlueBubbles((x-1)*TILE_W+3-15,y*TILE_H-15,isIn(left,TILES_BIGPOTION)); + +#define drawAllBack(left,tile,right,dleft) \ + /* TODO: fix this conditions to make miniterms */\ + /* loose moving */\ + if (isIn(tile,TILES_LOOSEMOVING)) \ + drawLoose((x-1)*TILE_W+0,y*TILE_H+3,looseGetFrame(tile),layBase);\ + /* normal */\ + if (isIn(tile,TILES_PRESSABLE)) \ + /* TODO: drop has resource 59 for unpressed/raise 47? checkgame */\ + e(59,(x-1)*TILE_W+0,y*TILE_H+(isIn(tile,TILES_UNPRESSED)?3:4));\ + if (isIn(tile,TILES_WALKABLE)&&(!isIn(tile,TILES_LOOSEMOVING))&&(!isIn(tile,TILES_PRESSABLE)))\ + e(11,(x-1)*TILE_W+0,y*TILE_H+3);\ + /* wall */\ + /* there are 4 cases */\ + if (wallCase(WALL_LOC_WWW))\ + e(65,(x-1)*TILE_W+0,y*TILE_H+3);\ + if (wallCase(WALL_LOC_SWW))\ + e(71,(x-1)*TILE_W+0,y*TILE_H+3);\ + if (wallCase(WALL_LOC_WWS))\ + e(67,(x-1)*TILE_W+0,y*TILE_H+3);\ + if (wallCase(WALL_LOC_SWS))\ + e(69,(x-1)*TILE_W+0,y*TILE_H+3);\ + /* empty */\ + /* tile, dleft*/\ + \ + /* gate_frame/this */\ + if (isIn(tile,TILES_SPACE)&&isIn(tile,TILES_GATEFRAME)) \ + e(42,(x-1)*TILE_W+0,y*TILE_H+3);\ + /* gate/left */\ + if (isIn(tile,TILES_SPACE)&&isIn(dleft,TILES_DOOR)) \ + e(16,(x-1)*TILE_W+0,y*TILE_H+3);\ + /* drawGateTop(x*TILE_W+0,(y-1)*TILE_H+3,gateGetFrame(tile));*/\ + /* big_pillar/left */\ + if (isIn(tile,TILES_SPACE)&&isIn(dleft,TILE_BP_TOP)) \ + e(86,(x-1)*TILE_W+0,y*TILE_H+3);\ + /* pillar/left */\ + if (isIn(tile,TILES_SPACE)&&isIn(dleft,TILES_PILLAR)) \ + e(45,(x-1)*TILE_W+0,y*TILE_H+3);\ + /* wall/left */\ + if (isIn(tile,TILES_SPACE)&&isIn(dleft,TILES_WALL)) \ + e(64,(x-1)*TILE_W+0,y*TILE_H+3);\ +\ + /* upper objects */\ + if (isIn(tile,TILE_EXIT_LEFT)) \ + e(6,x*TILE_W+0,(y-1)*TILE_H+3);\ + if (isIn(tile,TILE_EXIT_RIGHT)) \ + e(8,x*TILE_W+0,(y-1)*TILE_H+3);\ + + +#define drawAllFore(left,tile,right) \ + /* pillar */\ + if (isIn(tile,TILES_PILLAR)) \ + e(46,x*TILE_W-24,y*TILE_H+0);\ + /* big pillar */\ + if (isIn(tile,TILE_BP_BOTTOM)) \ + e(84,x*TILE_W-24,y*TILE_H+0);\ + /* wall */\ + /* there are 4 cases */\ + if (wallCase(WALL_LOC_WWW))\ + e(66,(x-1)*TILE_W+0,y*TILE_H+0);\ + if (wallCase(WALL_LOC_SWW))\ + e(72,(x-1)*TILE_W+0,y*TILE_H+0);\ + if (wallCase(WALL_LOC_WWS))\ + e(68,(x-1)*TILE_W+0,y*TILE_H+0);\ + if (wallCase(WALL_LOC_SWS))\ + e(70,(x-1)*TILE_W+0,y*TILE_H+0);\ + \ + /* the seed generation algorithm */\ + /* Upper row */\ + if (wallGetInfo(WALL_TABLE_LINE1_DARKER))\ + e(75,(x-1)*TILE_W+0,y*TILE_H-39);\ + if (wallGetInfo(WALL_TABLE_LINE1_LEFT_DOWN))\ + e(77,(x-1)*TILE_W+0,y*TILE_H-39);\ + if (wallGetInfo(WALL_TABLE_LINE1_RIGHT_DOWN))\ + e(79,(x-1)*TILE_W+24,y*TILE_H-39);\ + if (wallGetInfo(WALL_TABLE_LINE1_RIGHT_UP))\ + e(78,(x-1)*TILE_W+24,y*TILE_H-49);\ + if (wallGetInfo(WALL_TABLE_LINE1_LEFT_UP))\ + e(76,(x-1)*TILE_W+0,y*TILE_H-54);\ + /* Second row */\ + if (isIn(tile,TILES_WALL))\ + e(74-wallGetInfo(WALL_TABLE_LINE2_SEP),(x-1)*TILE_W+7+wallGetInfo(WALL_TABLE_LINE2_OFFSET),y*TILE_H-18);\ + if (wallGetInfo(WALL_TABLE_LINE2_LEFT_DOWN))\ + e(77,(x-1)*TILE_W+7+wallGetInfo(WALL_TABLE_LINE2_OFFSET)+5,y*TILE_H-39+21);\ + if (wallGetInfo(WALL_TABLE_LINE2_RIGHT_DOWN))\ + e(79,(x-1)*TILE_W+24+7+wallGetInfo(WALL_TABLE_LINE2_OFFSET)-32+5,y*TILE_H-39+21);\ + if (wallGetInfo(WALL_TABLE_LINE2_RIGHT_UP))\ + e(78,(x-1)*TILE_W+24+7+wallGetInfo(WALL_TABLE_LINE2_OFFSET)-32+5,y*TILE_H-49+21);\ + if (wallGetInfo(WALL_TABLE_LINE2_LEFT_UP))\ + e(76,(x-1)*TILE_W+7+wallGetInfo(WALL_TABLE_LINE2_OFFSET)+5,y*TILE_H-54+21);\ + /* Third row TODO: send to BottomTile */\ + if (isIn(tile,TILES_WALL))\ + e(74-wallGetInfo(WALL_TABLE_LINE3_SEP),(x-1)*TILE_W+3+wallGetInfo(WALL_TABLE_LINE3_OFFSET),y*TILE_H+3);\ + if (wallGetInfo(WALL_TABLE_LINE3_LEFT_UP))\ + e(76,(x-1)*TILE_W+5+wallGetInfo(WALL_TABLE_LINE3_OFFSET)+5,y*TILE_H-55+21*2);\ +\ + /* debris/this foreground layer */\ + if (isIn(tile,TILES_BROKENTILE)) \ + e(51,(x-1)*TILE_W+0,y*TILE_H+0);\ + /* spikes/this foreground layer */\ + if (isIn(tile,TILES_SPIKES)) \ + drawSpike((x-1)*TILE_W+0,y*TILE_H+0,spikeGetFrame(tile),layFore);\ + #endif diff --git a/FP/src/ker/room.c b/FP/src/ker/room.c index d1f7b4b..4d1c6f7 100644 --- a/FP/src/ker/room.c +++ b/FP/src/ker/room.c @@ -285,143 +285,11 @@ void drawChopper(int x, int y, int frame, tChopperLayer layer) { /* End of special drawings */ - /* main panel block */ void drawBackPanel(tRoom* room,int x, int y) { tTile tile=roomGetTile(room,x,y); tTile left=roomGetTile(room,x-1,y); - /* LEFT (left,tile) */ - - /* Wall/left */ - if ((!isIn(tile,TILES_WALL))&&(isIn(left,TILES_WALL))) - e(63,(x-1)*TILE_W+0,y*TILE_H+2); - /* Gate/left */ - if (isIn(left,TILES_DOOR)) { - e(15,(x-1)*TILE_W+0,y*TILE_H+2); - drawGate((x-1)*TILE_W+0,(y-1)*TILE_H+3,gateGetFrame(left)); - } - /* normal/left */ - if (isIn(left,TILES_FLOOR)) - e(10,(x-1)*TILE_W+0,y*TILE_H+2); - /* loose moving/left */ - if (isIn(left,TILES_LOOSEMOVING)) - drawLoose((x-1)*TILE_W+0,y*TILE_H+2,looseGetFrame(left),layTritop); - /* exit_left/left */ - if (isIn(left,TILE_EXIT_RIGHT)) - e(7,(x-1)*TILE_W+0,y*TILE_H+2); - /* pillar/left */ - if (isIn(left,TILES_PILLAR)) - e(44,(x-1)*TILE_W+0,y*TILE_H+2); - /* pillar_big_up/left */ - if (isIn(left,TILE_BP_BOTTOM)) - e(83,(x-1)*TILE_W+0,y*TILE_H+2); - if (isIn(left,TILE_BP_TOP)) - e(85,(x-1)*TILE_W+0,y*TILE_H+3); - /* pressable/left */ - if (isIn(left,TILES_RAISE_PRESSED)) - e(10,(x-1)*TILE_W+0,y*TILE_H+2); - if (isIn(left,TILES_RAISE_UNPRESSED)) - e(10,(x-1)*TILE_W+0,y*TILE_H+1); - if (isIn(left,TILES_DROP_PRESSED)) - e(10,(x-1)*TILE_W+0,y*TILE_H+3); - if (isIn(left,TILES_DROP_UNPRESSED)) - e(10,(x-1)*TILE_W+0,y*TILE_H+2); - /* debris/left */ - if (isIn(left,TILES_BROKENTILE)) - e(49,(x-1)*TILE_W+0,y*TILE_H+2); - /* spikes/left */ - if (isIn(left,TILES_SPIKES)) { - e(107,(x-1)*TILE_W+0,y*TILE_H+2); - drawSpike((x-2)*TILE_W+0,y*TILE_H,spikeGetFrame(left),layRight); - } - /* skeleton/left */ - if (isIn(left,TILES_SKELETON)) - e(81,(x-1)*TILE_W+0,y*TILE_H+2); - /* torch/this */ - if (isIn(tile,TILES_TORCH)) { /* animation */ - drawTorchFire(x*TILE_W+11,y*TILE_H-39); - /* base */ - e(56,x*TILE_W+3,y*TILE_H-24); - } - /* chopper/this */ - if (isIn(tile,TILE_CHOPPER)) - drawChopper((x-1)*TILE_W+0,y*TILE_H,chopperGetFrame(tile),layCBack); - /* empty_bricks/this */ - if (isIn(tile,TILES_BRICKE1)) - e(52,x*TILE_W+0,y*TILE_H-18); - if (isIn(tile,TILES_BRICKE2)) - e(53,x*TILE_W+0,y*TILE_H-18); - if (isIn(tile,TILES_WINDOW)) - e(54,x*TILE_W+0,y*TILE_H-18); - /* floor_bricks/this */ - if (isIn(tile,TILES_BRICKF1)) - e(12,x*TILE_W+0,y*TILE_H-18); - if (isIn(tile,TILES_BRICKF2)) - e(13,x*TILE_W+0,y*TILE_H-18); - /* gate/this */ - if (isIn(tile,TILES_DOOR)) - e(14,(x-1)*TILE_W+0,y*TILE_H+0); - /* gate_frame/this */ - if (isIn(tile,TILES_GATEFRAME)) - e(17,(x-1)*TILE_W+24,y*TILE_H+0); - /* normal/this */ - if (isIn(tile,TILES_FLOOR)) - e(9,(x-1)*TILE_W+0,y*TILE_H+0); - /* loose moving/this */ - if (isIn(tile,TILES_LOOSEMOVING)) - drawLoose((x-1)*TILE_W+0,y*TILE_H+0,looseGetFrame(tile),layTribot); - /* exit_left/this */ - if (isIn(tile,TILE_EXIT_RIGHT)) - e(5,(x-1)*TILE_W+0,y*TILE_H+0); - if (isIn(tile,TILE_EXIT_LEFT)) { - e(9,(x-1)*TILE_W+0,y*TILE_H+0); - drawExit(x*TILE_W+8,(y-1)*TILE_H-1,gateGetFrame(tile)); - } - /* pillar/this */ - if (isIn(tile,TILES_PILLAR)) - e(43,(x-1)*TILE_W+0,y*TILE_H+0); - /* big_pillar/this */ - if (isIn(tile,TILE_BP_BOTTOM)) - e(82,(x-1)*TILE_W+0,y*TILE_H+0); - if (isIn(tile,TILE_BP_TOP)) - e(87,(x-1)*TILE_W+8,y*TILE_H+3); - /* pressable/this */ - /* TODO: use boolean algebra to simplify this */ - if (isIn(tile,TILES_RAISE_UNPRESSED)&&isIn(left,TILES_WALKABLE)&&(!isIn(left,TILES_RAISE))) - e(57,(x-1)*TILE_W+0,y*TILE_H); - if ((isIn(tile,TILES_RAISE)&&((!isIn(tile,TILES_UNPRESSED))||(!isIn(left,TILES_WALKABLE))||isIn(left,TILES_RAISE)))&&(isIn(tile,TILES_UNPRESSED))) - e(58,(x-1)*TILE_W+0,y*TILE_H); - if (((isIn(tile,TILES_RAISE)&&((!isIn(tile,TILES_UNPRESSED))||(!isIn(left,TILES_WALKABLE))||isIn(left,TILES_RAISE)))&&(!isIn(tile,TILES_UNPRESSED)))||isIn(tile,TILES_DROP_UNPRESSED)) - e(58,(x-1)*TILE_W+0,y*TILE_H+1); - - if (isIn(tile,TILES_DROP_PRESSED)) - e(58,(x-1)*TILE_W+0,y*TILE_H+2); - /* debris/this */ - if (isIn(tile,TILES_BROKENTILE)) - e(48,(x-1)*TILE_W+0,y*TILE_H+0); - /* spikes/this */ - if (isIn(tile,TILES_SPIKES)) { - e(101,(x-1)*TILE_W+0,y*TILE_H+0); - drawSpike((x-1)*TILE_W+0,y*TILE_H,spikeGetFrame(tile),layBack); - } - /* skeleton/this */ - if (isIn(tile,TILES_SKELETON)) - e(80,(x-1)*TILE_W+0,y*TILE_H+0); - /* sword/left */ - if (isIn(left,TILES_SWORD)) - drawSword((x-1)*TILE_W-15,y*TILE_H-4); - /* potion base/left */ - if (isIn(left,TILES_SMALLPOTION)) - drawPotionSmallBase((x-1)*TILE_W-15,y*TILE_H-4); - if ((isIn(left,TILES_BIGPOTION))) - drawPotionBigBase((x-1)*TILE_W-15,y*TILE_H-4); - /* potion animation/left */ - if (isIn(left,TILES_REDPOTION)) - drawPotionRedBubbles((x-1)*TILE_W+3-15,y*TILE_H-15,isIn(left,TILES_BIGPOTION)); - if (isIn(left,TILES_GREENPOTION)) - drawPotionGreenBubbles((x-1)*TILE_W+3-15,y*TILE_H-15,isIn(left,TILES_BIGPOTION)); - if (isIn(left,TILES_BLUEPOTION)) - drawPotionBlueBubbles((x-1)*TILE_W+3-15,y*TILE_H-15,isIn(left,TILES_BIGPOTION)); + drawAllLeft(left,tile); } /* bottom panel block at background */ @@ -431,53 +299,7 @@ void drawBackBottomTile(tRoom* room,int x, int y) { tTile right=roomGetTile(room,x+1,y); tTile dleft=roomGetTile(room,x-1,(y==3)?3:(y+1)); int cases=wallGetCase(left,tile,right); - - /* TODO: fix this conditions to make miniterms */ - /* loose moving */ - if (isIn(tile,TILES_LOOSEMOVING)) - drawLoose((x-1)*TILE_W+0,y*TILE_H+3,looseGetFrame(tile),layBase); - /* normal */ - if (isIn(tile,TILES_PRESSABLE)) - /* TODO: drop has resource 59 for unpressed/raise 47? checkgame */ - e(59,(x-1)*TILE_W+0,y*TILE_H+(isIn(tile,TILES_UNPRESSED)?3:4)); - if (isIn(tile,TILES_WALKABLE)&&(!isIn(tile,TILES_LOOSEMOVING))&&(!isIn(tile,TILES_PRESSABLE))) - e(11,(x-1)*TILE_W+0,y*TILE_H+3); - /* wall */ - /* there are 4 cases */ - if (wallCase(WALL_LOC_WWW)) - e(65,(x-1)*TILE_W+0,y*TILE_H+3); - if (wallCase(WALL_LOC_SWW)) - e(71,(x-1)*TILE_W+0,y*TILE_H+3); - if (wallCase(WALL_LOC_WWS)) - e(67,(x-1)*TILE_W+0,y*TILE_H+3); - if (wallCase(WALL_LOC_SWS)) - e(69,(x-1)*TILE_W+0,y*TILE_H+3); - if (isIn(tile,TILES_SPACE)) { - /* empty */ - /* tile, dleft*/ - - /* gate_frame/this */ - if (isIn(tile,TILES_GATEFRAME)) - e(42,(x-1)*TILE_W+0,y*TILE_H+3); - /* gate/left */ - if (isIn(dleft,TILES_DOOR)) - e(16,(x-1)*TILE_W+0,y*TILE_H+3); - /* drawGateTop(x*TILE_W+0,(y-1)*TILE_H+3,gateGetFrame(tile));*/ - /* big_pillar/left */ - if (isIn(dleft,TILE_BP_TOP)) - e(86,(x-1)*TILE_W+0,y*TILE_H+3); - /* pillar/left */ - if (isIn(dleft,TILES_PILLAR)) - e(45,(x-1)*TILE_W+0,y*TILE_H+3); - /* wall/left */ - if (isIn(dleft,TILES_WALL)) - e(64,(x-1)*TILE_W+0,y*TILE_H+3); - } - /* upper objects */ - if (isIn(tile,TILE_EXIT_LEFT)) - e(6,x*TILE_W+0,(y-1)*TILE_H+3); - if (isIn(tile,TILE_EXIT_RIGHT)) - e(8,x*TILE_W+0,(y-1)*TILE_H+3); + drawAllBack(left,tile,right,dleft) \ } /* main panel block */ @@ -488,59 +310,7 @@ void drawForePanel(tRoom* room,int x, int y) { tTile tile=roomGetTile(room,x,y); tTile right=roomGetTile(room,x+1,y); int cases=wallGetCase(left,tile,right); - - /* pillar */ - if (isIn(tile,TILES_PILLAR)) - e(46,x*TILE_W-24,y*TILE_H+0); - /* big pillar */ - if (isIn(tile,TILE_BP_BOTTOM)) - e(84,x*TILE_W-24,y*TILE_H+0); - /* wall */ - /* there are 4 cases */ - if (wallCase(WALL_LOC_WWW)) - e(66,(x-1)*TILE_W+0,y*TILE_H+0); - if (wallCase(WALL_LOC_SWW)) - e(72,(x-1)*TILE_W+0,y*TILE_H+0); - if (wallCase(WALL_LOC_WWS)) - e(68,(x-1)*TILE_W+0,y*TILE_H+0); - if (wallCase(WALL_LOC_SWS)) - e(70,(x-1)*TILE_W+0,y*TILE_H+0); - - /* the seed generation algorithm */ - /* Upper row */ - if (wallGetInfo(WALL_TABLE_LINE1_DARKER)) - e(75,(x-1)*TILE_W+0,y*TILE_H-39); - if (wallGetInfo(WALL_TABLE_LINE1_LEFT_DOWN)) - e(77,(x-1)*TILE_W+0,y*TILE_H-39); - if (wallGetInfo(WALL_TABLE_LINE1_RIGHT_DOWN)) - e(79,(x-1)*TILE_W+24,y*TILE_H-39); - if (wallGetInfo(WALL_TABLE_LINE1_RIGHT_UP)) - e(78,(x-1)*TILE_W+24,y*TILE_H-49); - if (wallGetInfo(WALL_TABLE_LINE1_LEFT_UP)) - e(76,(x-1)*TILE_W+0,y*TILE_H-54); - /* Second row */ - if (isIn(tile,TILES_WALL)) - e(74-wallGetInfo(WALL_TABLE_LINE2_SEP),(x-1)*TILE_W+7+wallGetInfo(WALL_TABLE_LINE2_OFFSET),y*TILE_H-18); - if (wallGetInfo(WALL_TABLE_LINE2_LEFT_DOWN)) - e(77,(x-1)*TILE_W+7+wallGetInfo(WALL_TABLE_LINE2_OFFSET)+5,y*TILE_H-39+21); - if (wallGetInfo(WALL_TABLE_LINE2_RIGHT_DOWN)) - e(79,(x-1)*TILE_W+24+7+wallGetInfo(WALL_TABLE_LINE2_OFFSET)-32+5,y*TILE_H-39+21); - if (wallGetInfo(WALL_TABLE_LINE2_RIGHT_UP)) - e(78,(x-1)*TILE_W+24+7+wallGetInfo(WALL_TABLE_LINE2_OFFSET)-32+5,y*TILE_H-49+21); - if (wallGetInfo(WALL_TABLE_LINE2_LEFT_UP)) - e(76,(x-1)*TILE_W+7+wallGetInfo(WALL_TABLE_LINE2_OFFSET)+5,y*TILE_H-54+21); - /* Third row TODO: send to BottomTile */ - if (isIn(tile,TILES_WALL)) - e(74-wallGetInfo(WALL_TABLE_LINE3_SEP),(x-1)*TILE_W+3+wallGetInfo(WALL_TABLE_LINE3_OFFSET),y*TILE_H+3); - if (wallGetInfo(WALL_TABLE_LINE3_LEFT_UP)) - e(76,(x-1)*TILE_W+5+wallGetInfo(WALL_TABLE_LINE3_OFFSET)+5,y*TILE_H-55+21*2); - - /* debris/this foreground layer */ - if (isIn(tile,TILES_BROKENTILE)) - e(51,(x-1)*TILE_W+0,y*TILE_H+0); - /* spikes/this foreground layer */ - if (isIn(tile,TILES_SPIKES)) - drawSpike((x-1)*TILE_W+0,y*TILE_H+0,spikeGetFrame(tile),layFore); + drawAllFore(left,tile,right); } /*