static gint fields_specials_expose (GtkWidget *widget);
static void fields_refreshfield (int field);
-static void fields_drawblock (int field, int x, int y, char block);
+void fields_drawblock (int field, int x, int y, char block);
static void gmsginput_activate (void);
int x, y;
for (y = 0; y < FIELDHEIGHT; y ++)
for (x = 0; x < FIELDWIDTH; x ++)
- if (newfield[y][x] != displayfields[field][y][x]) {
fields_drawblock (field, x, y, newfield[y][x]);
displayfields[field][y][x] = newfield[y][x];
- }
}
void fields_drawblock (int field, int x, int y, char block)
extern void fields_gmsginputclear (void);
extern void fields_gmsginputactivate (int i);
extern const char *fields_gmsginputtext (void);
+
+
+//AF
+extern void fields_drawblock (int field, int x, int y, char block);
if (blocknum >= 0)
placeblock (field, blocknum, blockorient, blockx, blocky);
fields_drawfield (playerfield(playernum), field);
+
+
+ // AF: make shadow
+ FIELD shadowfield;
+ int x, y, y1, f;
+
+ if (blocknum < 0) return;
+
+ y1=0;
+ while (!blockobstructed(fields[playernum], blocknum, blockorient, blockx, y1))
+ y1++;
+ y1--;
+
+ if (y1-4<=blocky) return;
+
+ copyfield (shadowfield, field);
+ if (blocknum >= 0)
+ placeblock (shadowfield, blocknum, blockorient, blockx, y1);
+ f = playerfield(playernum);
+
+ for (y = 0; y < FIELDHEIGHT; y ++)
+ for (x = 0; x < FIELDWIDTH; x ++)
+ if (shadowfield[y][x] != fields[playernum][y][x]) {
+ fields_drawblock (f, x, y, shadowfield[y][x]);
+ }
+
}
int tetris_makeblock (int block, int orient)