|
|
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 r
Length: 1669 (0x685)
Types: TextFile
Names: »rocks.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/Sun/Sdi/rocks.c«
/****************************** laser.c *******************************/
#include <pixrect/pixrect_hs.h>
#include "sdi.h"
#include <sunwindow/notify.h>
/*
* Copyright 1987 by Mark Weiser.
* Permission to reproduce and use in any manner whatsoever on Suns is granted
* so long as this copyright and other identifying marks of authorship
* in the code and the game remain intact and visible. Use of this code
* in other products is reserved to me--I'm working on Mac and IBM versions.
*/
/*
* All rock-specific code is here.
*/
struct rock {
int x1, y1, x2, y2, number;
struct circ *type;
struct rock *next;
Pixwin *pw;
} *rock_head = NULL;
/*
* Throw some rocks out.
*/
start_rocks(pw, x1, y1, x2, y2, number, type)
Pixwin *pw;
struct circ *type;
{
struct rock real_r, *r = &real_r;
r->x1 = x1; r->x2 = x2; r->y1 = y1; r->y2 = y2;
r->number = number; r->type = type; r->pw = pw;
draw_rock(r);
}
draw_rock(r)
register struct rock *r;
{
double x, y, xinc, yinc, fabs();
int i;
x = r->x1;
y = r->y1;
xinc = (double)(r->x2-r->x1)/(double)r->number;
yinc = (double)(r->y2-r->y1)/(double)r->number;
for (i=0; i < r->number; i += 1) {
start_blast((int)x, (int)y, 0, 4, r->pw, r->type);
x += xinc;
y += yinc;
}
}
/*
* Add_rock, doto_rocks, and delete_rock are unused at this time, but
* they were once used, and worked.
*/
add_rock(r)
struct rock *r;
{
r->next = rock_head;
rock_head = r;
}
doto_rocks()
{
}
delete_rock(r)
struct rock *r;
{
struct rock *tr = rock_head;
if (r == tr) {
rock_head = r->next;
return;
}
while (tr != NULL && tr->next != r) {
tr = tr->next;
}
if (tr != NULL) {
tr->next = r->next;
}
}