/*
 * Copyright (c) 1983 Regents of the University of California.
 * All rights reserved. The Berkeley Software License Agreement
 * specifies the terms and conditions for redistribution.
 */
static char rcsid[] = "$Header:grap.c 12.0$";
#ifndef lint
static	char *sccsid = "@(#)grap.c	1.1 83/03/17";
#endif
#include "externs.h"

ungrap(from,to)
int from, to;
{
	int k;

	if(grapple(from, to)){
		for (k = 0; k < 10; k++){
			if (scene[game].ship[from].file -> grapples[k].turnfoul && to == scene[game].ship[from].file -> grapples[k].toship && (die() < 3 || scene[game].ship[from].nationality == scene[game].ship[to].nationality)){
				cleangrapple(from, to, k);
				makesignal("ungrappling %s (%c%c)", to, from);
			}
		}
	}
}

grap(from, to)
int from,to;
{
	int number, captured, l;

	if ((captured = scene[game].ship[to].file -> captured) < 0)
		captured = to;
	number = die() < 3;
	if (!number && scene[game].ship[from].nationality == scene[game].ship[captured].nationality)
		number = 1;
	if (number){
		for (l=0; l < 10 && scene[game].ship[from].file -> grapples[l].turnfoul; l++);
		if (l < 10){
			Write(FILES + from, 0, 124 + l*4, turn);
			Write(FILES + from, 0, 124 + l*4 + 2, to);
		}
		for (l=0; l < 10 && scene[game].ship[to].file -> grapples[l].turnfoul; l++);
		if (l < 10){
			Write(FILES + to, 0, 124 + l*4, turn);
			Write(FILES + to, 0, 124 + l*4 + 2, from);
		}
		makesignal("grappled with %s (%c%c)", to, from);
	}
}


