DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T t

⟦ce09ad2dd⟧ TextFile

    Length: 1422 (0x58e)
    Types: TextFile
    Names: »torp.c«

Derivation

└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
    └─ ⟦526ad3590⟧ »EUUGD11/gnu-31mar87/X.V10.R4.tar.Z« 
        └─⟦2109abc41⟧ 
            └─ ⟦this⟧ »./X.V10R4/xtrek/torp.c« 

TextFile

#ifndef lint
static char *rcsid_torp_c = "$Header: torp.c,v 10.1 86/11/30 15:29:20 jg Rel $";
#endif	lint
/* Copyright (c) 1986 	Chris Guthrie */

#include <X/Xlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include "defs.h"
#include "struct.h"
#include "data.h"

/* Launch torp */

ntorp(course, type)
unsigned char course;
int type;
{
    register int i;
    register struct torp *k;

    if (me->p_ntorp == MAXTORP) {
	warning("Torps limited to 12");
	return;
    }
    if (me->p_fuel < myship->s_torpcost) {
	warning("Not enough fuel for torp");
	return;
    }
    if (me->p_flags & PFREPAIR) {
	warning("Can't fire while repairing");
	return;
    }
    if (me->p_flags & PFWEP) {
	warning("Weapons overheated");
	return;
    }
    if (me->p_flags & PFCLOAK) {
	warning("Cannot fire while cloaked");
	return;
    }
    me->p_ntorp++;
    me->p_fuel -= myship->s_torpcost;
    me->p_wtemp += myship->s_torpcost / 10;
    for (i = me->p_no * MAXTORP, k = &torps[i];
	i < me->p_no * MAXTORP + MAXTORP; i++, k++) {
	    if (k->t_status == TFREE)
		break;
    }
    k->t_no = i;
    k->t_status = type;
    k->t_owner = me->p_no;
    k->t_x = me->p_x;
    k->t_y = me->p_y;
    k->t_dir = course;
    k->t_damage = myship->s_torpdamage;
    k->t_speed = myship->s_torpspeed;
    k->t_war = me->p_war | me->p_swar;
    k->t_fuse = (random() % 60) + 30;
    mystats->st_torps++;
}