home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: vmsnet.sources.games
- Path: uunet!stanford.edu!agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!zaphod.mps.ohio-state.edu!rpi!usenet.coe.montana.edu!news.u.washington.edu!raven.alaska.edu!acad2.alaska.edu!asdmf
- From: asdmf@acad2.alaska.edu
- Subject: Vmsnetrek 23/47
- Message-ID: <1992Nov13.140046.1@acad2.alaska.edu>
- Lines: 487
- Sender: news@raven.alaska.edu (USENET News System)
- Nntp-Posting-Host: acad2.alaska.edu
- Organization: University of Alaska
- Date: Fri, 13 Nov 1992 18:00:46 GMT
- Xref: uunet vmsnet.sources.games:509
-
- -+-+-+-+-+-+-+-+ START OF PART 23 -+-+-+-+-+-+-+-+
- V buf, strlen(buf),
- X`009`009W_RegularFont);
- X`009 sprintf(buf, "Planets: %5.2f %5d",
- X`009`009planetRating(j),
- X`009`009j->p_stats.st_planets + j->p_stats.st_tplanets);
- X`009 W_WriteText(infow, W_Textwidth, W_Textheight*line++, playerColor(j),
- V buf, strlen(buf),
- X`009`009W_RegularFont);
- X`009 sprintf(buf, "Offense: %5.2f %5d",
- X`009`009offenseRating(j),
- X`009`009j->p_stats.st_kills + j->p_stats.st_tkills);
- X`009 W_WriteText(infow, W_Textwidth, W_Textheight*line++, playerColor(j),
- V buf, strlen(buf),
- X`009`009W_RegularFont);
- X`009 sprintf(buf, "Defense: %5.2f %5d",`032
- X`009`009defenseRating(j),
- X`009`009j->p_stats.st_losses + j->p_stats.st_tlosses);
- X`009 W_WriteText(infow, W_Textwidth, W_Textheight*line++, playerColor(j),
- V buf, strlen(buf),
- X`009`009W_RegularFont);
- X`009 if (j->p_ship.s_type == STARBASE) `123
- X`009`009sprintf(buf, " Maxkills: %6.2f", j->p_stats.st_sbmaxkills);
- X`009 `125 else `123
- X`009`009sprintf(buf, " Maxkills: %6.2f", j->p_stats.st_maxkills);
- X`009 `125
- X`009 W_WriteText(infow, W_Textwidth, W_Textheight*line++, playerColor(j),
- V buf, strlen(buf),
- X`009`009W_RegularFont);
- X`009 sprintf(buf, " Hours: %6.2f",`032
- X`009`009(float) j->p_stats.st_tticks / 36000.0);
- X`009 W_WriteText(infow, W_Textwidth, W_Textheight*line++, playerColor(j),
- V buf, strlen(buf),
- X`009`009W_RegularFont);
- X`009`125 `032
- X `125
- X else `123 /* Planet */
- X`009/* Too close to the edge? */
- X`009if (mx + 20 * W_Textwidth + 2 > windowWidth)
- X`009 mx = windowWidth - 25 * W_Textwidth - 2;
- X`009if (my + 3 * W_Textheight + 2 > windowHeight)
- X`009 my = windowHeight - 3 * W_Textheight - 2;
- X
- X`009infow = W_MakeWindow("info",mx,my,W_Textwidth*25,W_Textheight*3,ww,
- X`009 2,foreColor);
- X`009W_MapWindow(infow);
- X`009k = &planets`091target->o_num`093;
- X`009dist = hypot((double) (me->p_x - k->pl_x),
- X`009 (double) (me->p_y - k->pl_y));
- X`009if (k->pl_info & me->p_team) `123
- X`009 (void) sprintf(buf, "%s (%c)", k->pl_name, teamlet`091k->pl_owner`09
- V3);
- X`009 W_WriteText(infow, W_Textwidth, W_Textheight*line++, planetColor(k),
- V buf, strlen(buf),
- X`009`009planetFont(k));
- X`009 (void) sprintf(buf, "Armies %d", k->pl_armies);
- X`009 W_WriteText(infow, W_Textwidth, W_Textheight*line++, planetColor(k),
- V buf, strlen(buf),
- X`009`009W_RegularFont);
- X`009 (void) sprintf(buf, "%s %s %s %c%c%c%c",
- X`009`009(k->pl_flags & PLREPAIR ? "REPAIR" : " "),
- X`009`009(k->pl_flags & PLFUEL ? "FUEL" : " "),
- X`009`009(k->pl_flags & PLAGRI ? "AGRI" : " "),
- X`009`009(k->pl_info & FED ? 'F' : ' '),
- X`009`009(k->pl_info & ROM ? 'R' : ' '),
- X`009`009(k->pl_info & KLI ? 'K' : ' '),
- X`009`009(k->pl_info & ORI ? 'O' : ' '));
- X`009 W_WriteText(infow, W_Textwidth, W_Textheight*line++, planetColor(k),
- V buf, strlen(buf),
- X`009`009W_RegularFont);
- X`009`125
- X`009else `123
- X`009 (void) sprintf(buf, "%s", k->pl_name);
- X`009 W_WriteText(infow, W_Textwidth, W_Textheight*line++, planetColor(k),
- V buf, strlen(buf),
- X`009`009W_RegularFont);
- X`009 (void) sprintf(buf, "No other info");
- X`009 W_WriteText(infow, W_Textwidth, W_Textheight*line++, planetColor(k),
- V buf, strlen(buf),
- X`009`009W_RegularFont);
- X`009`125
- X `125
- X`125
- X
- X
- XdestroyInfo()
- X`123
- X W_DestroyWindow(infow);
- X infomapped = 0;
- X`125
- X
- $ CALL UNPACK INFORM.C;1 1280503866
- $ create/nolog 'f'
- X/*
- X * input.c
- X *
- X * Modified to work as client in socket based protocol
- X */
- X#include "copyright.h"
- X
- X#include <stdio.h>
- X#include <math.h>
- X#include "TWG$TCP:`091NETDIST.INCLUDE.SYS`093types.h"
- X#ifdef hpux
- X#include <time.h>
- X#else /*hpux*/
- X#include <time.h>
- X#endif /*hpux*/
- X#include <signal.h>
- X#include <errno.h>
- X#include "Wlib.h"
- X#include "defs.h"
- X#include "struct.h"
- X#include "data.h"
- X#include "packets.h"
- X
- X#ifdef VMS
- X#include "vmsutils.h"
- X#endif
- X
- Xinitkeymap()
- X`123
- X char *str;
- X
- X if ((str = getdefault("keymap")) != NULL) `123
- X`009while (*str!='\0') `123
- X`009 if (*str >= 32 && *str < 127) `123
- X`009`009mystats->st_keymap`091*str - 32`093= *(str+1);
- X`009 `125
- X`009 str+=2;
- X`009`125
- X `125
- X`125
- X
- Xinitinput()
- X`123
- X /* Nothing doing... */
- X`125
- X
- Xinput()
- X`123
- X W_Event data;
- X fd_set readfds;
- X/* int fd;*/
- X
- X while (1) `123
- X`009while (!W_EventsPending()) `123
- X`009 /* Screw it. It we can't get any damned socket to block on,`032
- X`009 * we will just poll, and blow away the cpu. Its this systems
- X`009 * damned fault because no socket was provided.
- X`009 */
- X`009 if (W_Socket() != -1) `123
- X/*`009`009fd = ((1 << W_Socket()) `124 (1 << sock));*/
- X`009`009FD_ZERO(&readfds);
- X`009`009FD_SET(W_Socket(), &readfds);
- X`009`009FD_SET(sock, &readfds);
- X`009`009if (udpSock >= 0)
- X`009`009 FD_SET(udpSock, &readfds);
- X`009`009select(32, &readfds, 0, 0, 0);
- X`009 `125
- X`009 intrupt();
- X`009 if (isServerDead()) `123
- X`009`009printf("Whoops! We've been ghostbusted!\n");
- X`009`009printf("Pray for a miracle!\n");
- X`009`009/* UDP fail-safe */
- X`009`009commMode = commModeReq = COMM_TCP;
- X`009`009commSwitchTimeout = 0;
- X`009`009if (udpSock >= 0)
- X`009`009 closeUdpConn();
- X`009`009if (udpWin) `123
- X`009`009 udprefresh(UDP_CURRENT);
- X`009`009 udprefresh(UDP_STATUS);
- X`009`009`125
- X`009`009connectToServer(nextSocket);
- X`009`009printf("Yea! We've been resurrected!\n");
- X`009 `125
- X`009`125
- X`009W_NextEvent(&data);
- X`009switch ((int) data.type) `123
- X`009 case W_EV_KEY:
- X`009`009if (data.Window==optionWin)
- X`009`009 optionaction(&data);
- X`009`009else if (data.Window == messagew)`032
- X`009`009 smessage(data.key);
- X`009`009else`032
- X`009`009 keyaction(&data);
- X`009`009break;
- X`009 case W_EV_BUTTON:
- X`009`009if (data.Window == war)`032
- X`009`009 waraction(&data);
- X`009`009else if (data.Window == optionWin)`032
- X`009`009 optionaction(&data);
- X`009`009else if (data.Window == udpWin)
- X`009`009 udpaction(&data);`009`009/* UDP */
- X`009 else buttonaction(&data);
- X`009`009break;
- X`009 case W_EV_EXPOSE:
- X`009`009if (data.Window == statwin)
- X`009`009 redrawStats();
- X`009`009else if (data.Window == tstatw)
- X`009`009 redrawTstats();
- X`009`009else if (data.Window == mapw)
- X`009`009 redrawall = 1;
- X`009`009else if (data.Window == iconWin)
- X`009`009 drawIcon();
- X`009`009else if (data.Window == helpWin)
- X`009`009 fillhelp();
- X`009`009else if (data.Window == playerw)`032
- X`009`009 playerlist();
- X`009`009else if (data.Window == planetw)
- X`009`009 planetlist();
- X`009`009else if (data.Window == rankw)`032
- X`009`009 ranklist();
- X`009`009else if (data.Window == warnw)`032
- X W_ClearWindow(warnw);
- X else if (data.Window == messagew)
- X W_ClearWindow(messagew);
- X`009`009break;
- X`009 default:
- X`009`009break;
- X`009`125
- X `125
- X`125
- X
- Xkeyaction(data)
- XW_Event *data;
- X`123
- X unsigned char course;
- X struct obtype *gettarget(), *target;
- X char key=data->key;
- X
- X if (data->Window!=mapw && data->Window!=w && data->Window!=infow && data
- V->Window!=scanw) return;
- X if (!index("sbogadc", key) `124`124 !(localflags & PFREFIT)) `123
- X`009if (key >= 32 && key < 127) `123
- X`009 key=mystats->st_keymap`091key - 32`093;
- X`009`125
- X `125
- X switch(key) `123
- X`009case '0':
- X`009case '1':
- X`009case '2':
- X`009case '3':
- X`009case '4':
- X`009case '5':
- X`009case '6':
- X`009case '7':
- X`009case '8':
- X`009case '9':
- X`009 set_speed(key - '0');
- X`009 localflags &= `126(PFREFIT);
- X`009 break;
- X`009case 'e': /* Turn off docking permission, eject docked vessels. */
- X`009 if (me->p_flags & PFDOCKOK)
- X`009`009sendDockingReq(0);
- X`009 else
- X`009`009sendDockingReq(1);
- X`009 break;
- X`009case 'r':
- X`009 localflags `124= PFREFIT;
- X`009 warning("s=scout, d=destroyer, c=cruiser, b=battleship, a=assault, o
- V=starbase, g=galaxy");
- X`009 break;
- X`009case ')':
- X`009 set_speed(10);
- X`009 localflags &= `126(PFREFIT);
- X`009 break;
- X`009case '!':
- X`009 set_speed(11);
- X`009 localflags &= `126(PFREFIT);
- X`009 break;
- X`009case '@':
- X`009 set_speed(12);
- X`009 localflags &= `126(PFREFIT);
- X`009 break;
- X`009case '#':
- X`009 set_speed(me->p_ship.s_maxspeed/2);
- X`009 localflags &= `126(PFREFIT);
- X`009 break;
- X`009case '%':
- X`009 set_speed(99);`009/* Max speed... */
- X`009 localflags &= `126(PFREFIT);
- X`009 break;
- X`009case 'a':
- X`009 if (localflags & PFREFIT) `123
- X`009`009do_refit(ASSAULT);
- X`009 `125 else `123
- X#ifdef OLD_SCAN
- X`009`009/* ATM - scanners ("About...") */
- X`009`009if (!scanmapped)
- X`009`009 scan(data->Window, data->x, data->y);
- X`009`009else
- X`009`009 destroyScan();
- X#endif
- X`009`009if (!W_IsMapped(scanwin)) `123
- X`009`009 scan(data->Window, data->x, data->y);
- X`009`009`125 else `123
- X`009`009 if (scanmapped)
- X`009`009`009W_UnmapWindow(scanwin);
- X`009`009 scanmapped = 0;
- X`009`009`125
- X`009 `125
- X`009 break;
- X`009case 'k': /* k = set course */
- X`009 course = getcourse(data->Window, data->x, data->y);
- X`009 set_course(course);
- X`009 me->p_flags &= `126(PFPLOCK `124 PFPLLOCK);
- X`009 localflags &= `126(PFREFIT);
- X`009 break;
- X`009case 'p': /* p = fire phasers */
- X`009 course = getcourse(data->Window, data->x, data->y);
- X`009 sendPhaserReq(course);
- X`009 break;
- X`009case 't': /* t = launch torps */
- X`009 course = getcourse(data->Window, data->x, data->y);
- X`009 sendTorpReq(course);
- X`009 break;
- X`009case 'f':`032
- X`009 /* f = launch plasma torpedos */
- X`009 course = getcourse(data->Window, data->x, data->y);
- X`009 sendPlasmaReq(course);
- X`009 break;
- X`009case 'd': /* d = detonate other torps */
- X`009 if (localflags & PFREFIT)
- X`009`009do_refit(DESTROYER);
- X`009 else
- X`009`009sendDetonateReq();
- X`009 break;
- X`009case 'g':
- X`009 if (localflags & PFREFIT)
- X`009`009do_refit(GALAXY);
- X`009 break;
- X`009case 'D': /* D = detonate my torps */
- X`009 detmine();
- X`009 break;
- X`009case '`091':
- X`009 shield_down();
- X`009 break;
- X`009case '`093':
- X`009 shield_up();
- X`009 break;
- X`009case 'u': /* u = toggle shields */
- X`009 shield_tog();
- X`009 break;
- X`009case 's': /* For Serge */
- X`009 if (localflags & PFREFIT)
- X`009`009do_refit(SCOUT);
- X`009 else
- X`009`009shield_tog();
- X`009 break;
- X`009case 'b': /* b = bomb planet */
- X`009 if (localflags & PFREFIT)
- X`009`009do_refit(BATTLESHIP);
- X`009 else
- X`009`009bomb_planet();
- X`009 break;
- X`009case 'z': /* z = beam up */
- X`009 beam_up();
- X`009 break;
- X`009case 'x': /* x = beam down */
- X`009 beam_down();
- X`009 break;
- X`009case 'R': /* R = Go into repair mode */
- X`009 sendRepairReq(1);
- X`009 break;
- X`009case 'y':
- X`009case 'T':
- X`009 if (me->p_flags & (PFTRACT `124 PFPRESS)) `123
- X`009`009sendTractorReq(0, me->p_no);
- X`009`009break;
- X`009 `125
- X`009 target = gettarget(data->Window, data->x, data->y, TARG_PLAYER);
- X`009 if (key=='T') `123
- X`009`009sendTractorReq(1, target->o_num);
- X`009 `125 else `123
- X`009`009sendRepressReq(1, target->o_num);
- X`009 `125
- X`009 break;
- X`009case 'o': /* o = dock at nearby starbase or orbit nearest planet */
- X`009 if (localflags & PFREFIT) `123
- X`009`009do_refit(STARBASE);
- X`009 `125 else `123
- X`009`009sendOrbitReq(1);
- X`009 `125
- X`009 break;
- X`009case 'O': /* O = options Window */
- X`009 if (optionWin!=NULL && W_IsMapped(optionWin))
- X`009`009optiondone();
- X`009 else
- X`009`009optionwindow();
- X`009 break;
- X`009case 'Q':
- X`009 sendQuitReq();
- X`009 break;
- X`009case 'V':
- X`009 showlocal++;
- X`009 if (showlocal==3) showlocal=0;
- X`009 break;
- X`009case 'B':
- X`009 showgalactic++;
- X`009 if (showgalactic==3) showgalactic=0;
- X`009 redrawall=1;
- X`009 break;
- X`009case '?': /* ? = Redisplay all message windows */
- X`009 if (!W_IsMapped(reviewWin)) `123
- X`009`009if (W_IsMapped(messwa)) `123
- X`009`009 W_UnmapWindow(messwa);
- X`009`009 W_UnmapWindow(messwt);
- X`009`009 W_UnmapWindow(messwi);
- X`009`009 W_UnmapWindow(messwk);
- X`009`009`125 else `123
- X`009`009 W_MapWindow(reviewWin);
- X`009`009`125
- X`009 `125 else `123
- X`009`009W_UnmapWindow(reviewWin);
- X`009`009W_MapWindow(messwa);
- X`009`009W_MapWindow(messwt);
- X`009`009W_MapWindow(messwi);
- X`009`009W_MapWindow(messwk);
- X `009 `125
- X`009 if (optionWin) `123
- X`009`009optionredrawtarget(reviewWin);
- X`009`009optionredrawtarget(messwa);
- X`009`009optionredrawtarget(messwt);
- X`009`009optionredrawtarget(messwi);
- X`009`009optionredrawtarget(messwk);
- X`009 `125
- X`009 break;
- X`009case 'c': /* c = cloak */
- X`009 if (localflags & PFREFIT)
- X`009`009do_refit(CRUISER);
- X`009 else
- X`009`009cloak();
- X`009 break;
- X`009case 'C': /* C = coups */
- X`009 sendCoupReq();
- X`009 break;
- X`009case 'l': /* l = lock onto */
- X`009 target = gettarget(data->Window, data->x, data->y,
- X`009`009TARG_PLAYER`124TARG_PLANET);
- X`009 if (target->o_type == PLAYERTYPE) `123
- X`009`009sendPlaylockReq(target->o_num);
- X`009 `125
- X`009 else `123 `009/* It's a planet */
- X`009`009sendPlanlockReq(target->o_num);
- X`009 `125
- X`009 break;
- X`009case 'm': /* m = warp mouse to message window */
- X`009 W_WarpPointer(messagew);`009/* ATM - mouse warp */
- X`009 break;
- X`009case '*':
- X`009 sendPractrReq();
- X`009 break;
- X`009/* Start of display functions */
- X`009case ' ': /* ' ' = clear special windows */
- X`009 W_UnmapWindow(planetw);
- X`009 W_UnmapWindow(rankw);
- X`009 if (infomapped)
- X`009`009destroyInfo();
- X`009 W_UnmapWindow(helpWin);
- X`009 W_UnmapWindow(war);
- X`009 if (optionWin)
- X`009`009optiondone();
- X`009 if (scanmapped) `123
- X`009`009W_UnmapWindow(scanwin);
- X`009`009scanmapped = 0;
- X`009 `125
- X`009 if (udpWin)
- X`009`009udpdone();
- X`009 break;
- X`009case 'E': /* E = send emergency call */
- X`009 emergency();
- X`009 break;
- X`009case 'L': /* L = Player list */
- X`009 if (W_IsMapped(playerw)) `123
- X`009`009W_UnmapWindow(playerw);
- X`009 `125 else `123
- X`009`009W_MapWindow(playerw);
- X`009 `125
- X`009 break;
- X`009case 'P': /* P = Planet list */
- X`009 if (W_IsMapped(planetw)) `123
- X`009`009W_UnmapWindow(planetw);
- X`009 `125 else `123
- X`009`009W_MapWindow(planetw);
- X`009 `125
- +-+-+-+-+-+-+-+- END OF PART 23 +-+-+-+-+-+-+-+-
-