|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T s
Length: 1849 (0x739)
Types: TextFile
Names: »setup_next.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/General/Tetris/setup_next.c«
/*
** written by adam margulies vespa@ssyx.ucsc.edu
** {...}!ucbvax!ucscc!ssyx!vespa
**
** permission is granted to freely distribute this code provided that you:
**
** 1) don't charge for it
** 2) leave my name and header on it
** 3) clearly document your changes and place your name on them
**
*/
/* Tetris: setup_next.c */
/* */
/* following a successful drop of a block this function will do all the */
/* house-keeping necessary to the creation of a new block. */
/* */
#include "tetris.h"
void setup_next()
{
int pow();
if (disp_next)
print_shape(next->shape, 17, 6,
next->rot, ' '); /* erase the next shape */
bcopy(next, current, sizeof(struct shape)); /* move next to current */
next->shape = random() % 7;
next->rot = random() % 4;
next->color = shape[next->shape].color;
next->offset = shape[next->shape].offset;
next->pointv = shape[next->shape].pointv[next->rot];
next->was_shown = (disp_next ? 1 : 0);
if (next->rot == 0 || next->rot == 2) {
next->width = shape[next->shape].width;
next->height = shape[next->shape].height;
}
if (next->rot == 1 || next->rot == 3) {
next->width = shape[next->shape].height;
next->height = shape[next->shape].width;
}
curx = 39 - ((current->offset & pow(2, 6 - (current->rot * 2))) ? 1 : 0);
cury = 2 - ((current->offset & pow(2, 7 - (current->rot * 2))) ? 1 : 0) -
current->height;
if (disp_next)
print_shape(next->shape, 17, 6, next->rot,
next->color);
print_shape(current->shape, curx, cury, current->rot,
current->color);
if (shadow == 1) {
current->was_shadowed = 1;
draw_shadow();
}
}