+ bnstate[bn] = press;
+
+ if(press) {
+ if(!sel) return;
+
+ switch(tool) {
+ case TOOL_DRAW:
+ if(bn == 0) {
+ sel->type = CELL_WALK;
+ } else if(bn == 2) {
+ sel->type = CELL_SOLID;
+ }
+ break;
+
+ case TOOL_PSTART:
+ cell_coords(sel, &cx, &cy);
+ if(bn == 0) {
+ if(sel->type == CELL_WALK) {
+ lvl->px = cx;
+ lvl->py = cy;
+ }
+ } else if(bn == 2) {
+ if(lvl->px == cx && lvl->py == cy) {
+ lvl->px = lvl->py = -1;
+ }
+ }
+ break;
+ }
+ }
+}
+
+void lview_mouse(int x, int y)
+{
+ float hsz = cellsz / 2.0f;
+ if(!(sel = pos_to_cell(x + hsz - vpx, vph - y + hsz - vpy, 0, 0))) {
+ return;
+ }
+
+ switch(tool) {
+ case TOOL_DRAW:
+ if(bnstate[0]) {
+ sel->type = CELL_WALK;
+ } else if(bnstate[2]) {
+ sel->type = CELL_SOLID;
+ }
+ break;
+ }