shithub: rott

Download patch

ref: bfa6b519e6dedf03e6ece23ac93bc57bbf8e6476
parent: 26811126933fa666e392bc78e28fdbb4e9af9211
author: Marc-Alexandre Espiaut <marcalexandre@member.fsf.org>
date: Mon Jun 4 11:31:36 EDT 2018

Removing DOS code rt_spbal.c

--- a/rott/rt_spbal.c
+++ b/rott/rt_spbal.c
@@ -48,439 +48,9 @@
 #include "scriplib.h"
 #include <stdlib.h>
 
-#ifdef DOS
-#include <conio.h>
-#include <io.h>
-#include <fcntl.h>
-#include <dos.h>
-#include <mem.h>
-#endif
 //MED
 #include "memcheck.h"
 
-#ifdef DOS
-/* This file and associated .h files and Spaceball libraries:
-   Copyright 1995 Spacetec IMC Corporation
-*/
-//static char c[]="Copyright 1995 Spacetec IMC Corporation";
-
-
-#define MSGN(x)    (((x)>0)?1:-1)
-#define MABS(x)    ((x<0)?(-x):(x))
-
-#define FF(n) FLOAT_TO_FIXED(n)
-
-#define MAX_WARPS 1  // maximum number of ranges in all warps in defaultWarps
-static WarpRange defaultWarps[][MAX_WARPS]= {
-    {{  0, 511, FF(0.00013)}},   // Tx
-    {{  0, 511, FF(0.0075 )}},   // Ty
-    {{  0, 511, FF(0.0005 )}},   // Tz
-    {{150, 511, FF(0.0075 )}},   // Rx
-    {{  0, 511, FF(0.15   )}}	   // Ry
-};
-
-#undef FF
-
-
-static WarpRecord defaultRecords[]= {
-    {"Tx",  defaultWarps[0], 1},
-    {"Ty",  defaultWarps[1], 1},
-    {"Tz",  defaultWarps[2], 1},
-    {"Rx",  defaultWarps[3], 1},
-    {"Ry",  defaultWarps[4], 1},
-};
-
-WarpRecord *WarpTx, *WarpTy, *WarpTz, *WarpRx, *WarpRy;
-
-static char *SpaceBallConfigName = "spwrott.cfg";
-static char *ApogeePath = "APOGEECD";
-
-#define    TURBO_LIMIT          1000000
-static int turbo_increment    = 500000,
-           turbo_count        = 0,
-           turboFire          = false;
-
-
-// sbbuttons mask: 00FE DCBA
-
-#define BUTTON_A    0x01
-#define BUTTON_B    0x02
-#define BUTTON_C    0x04
-#define BUTTON_D    0x08
-#define BUTTON_E    0x10
-#define BUTTON_F    0x20
-
-// All possible button assignment masks (with defaults)
-static
-short turboFireMask      = BUTTON_A,
-      attackMask         = BUTTON_B,
-      useMask            = BUTTON_C,
-      mapMask            = 0,
-      swapWeaponMask     = BUTTON_D,
-      singleAxisMask     = 0,
-      planarMask         = 0,
-      aimMask            = BUTTON_E,
-      pauseMask          = BUTTON_F;
-
-// Array exists just to make sure two tasks are not assigned to same button
-static short *masks[6]= {&turboFireMask,  &attackMask, &useMask,
-                         &swapWeaponMask, &aimMask,    &pauseMask
-                        };
-
-
-
-//******************************************************************************
-//
-// ShiftTowardZero ()
-//
-//******************************************************************************
-
-static short
-ShiftTowardZero(short n, short amount)
-{
-    if (MABS(n) >= amount)
-        return n-((n>0)?amount:-amount);
-    else
-        return 0;
-}
-
-
-//******************************************************************************
-//
-// SPW_SingleAxisFilter
-//
-//  Zeroes all but the largest (in absolute value) element in a RawPacket
-//
-//   returns: nothing
-//
-//******************************************************************************
-
-static void
-SPW_SingleAxisFilter(SpwRawData *p)
-{
-    short *array   = &(p->tx),  // hope the data are in contigous locations
-           *largest = array,
-            newabs, large, array_length = 6;
-
-    large = MABS( *array );
-    while (--array_length > 0) {
-        ++array;
-        newabs = MABS(*array);
-        if (newabs > large) {
-            *largest = 0;
-            large = newabs;
-            largest = array;
-        } else
-            *array = 0;
-    }
-
-} /* end of SPW_SingleAxisFilter */
-
-
-
-//******************************************************************************
-//
-// HandleSpaceBallMotion ()
-//
-//******************************************************************************
-
-static void HandleSpaceBallMotion (SpwRawData * npacket, int controlbuf[])
-{
-
-    int    strafeAngle;
-    short  tx, ty, tz, rx, ry;
-    long   sbtx, sbty, sbtz, sbrx, sbry;
-    static short ButtonState;
-
-    // If they are really cranking on it, limit them to one axis at a time
-    if ((MABS(npacket->tx) > 450) ||
-            (MABS(npacket->ty) > 450) ||
-            (MABS(npacket->tz) > 450) ||
-            (MABS(npacket->rx) > 450) ||
-            (MABS(npacket->ry) > 450)) SPW_SingleAxisFilter(npacket);
-
-    // Don't want to lose the low end that the sb null_region calc is losing
-    tx=ShiftTowardZero(npacket->tx,30);   // range now approximately +/- 0-480
-    ty=ShiftTowardZero(npacket->ty,30);   // range now approximately +/- 0-480
-    tz=ShiftTowardZero(npacket->tz,50);   // range now approximately +/- 0-460
-    rx=ShiftTowardZero(npacket->rx,60);   // range now approximately +/- 0-450
-    ry=ShiftTowardZero(npacket->ry,60);   // range now approximately +/- 0-450
-
-    sbtx = SbFxConfigWarp( WarpTx, tx );
-    sbty = SbFxConfigWarp( WarpTy, ty );
-    sbtz = SbFxConfigWarp( WarpTz, tz );
-    sbrx = SbFxConfigWarp( WarpRx, rx );
-    sbry = SbFxConfigWarp( WarpRy, ry );
-
-    strafeAngle = (player->angle - FINEANGLES/4)&(FINEANGLES-1);
-
-    // check for turboFire
-    if (turboFire)
-    {
-        if (MABS(turbo_count) > TURBO_LIMIT)
-            turbo_increment *= -1;
-        turbo_count += turbo_increment;
-        sbry += turbo_increment;
-    }
-
-    controlbuf[0] += -(FixedMul (sbtz, viewcos))+
-                     FixedMul (sbtx, costable[strafeAngle]);
-
-    controlbuf[1] +=  FixedMul (sbtz, viewsin) -
-                      FixedMul (sbtx, sintable[strafeAngle]);
-
-    controlbuf[2] += sbry;
-
-
-
-    // Handle looking up and down ^ flying
-
-    ButtonState=npacket->buttons.cur;
-
-    // should the user be running?
-    buttonpoll[bt_run] = true; //((MABS(tx)+MABS(tz)+MABS(ry)) > 320) ? true : false ;
-
-
-    // TY does flying if the user has acquired the ability to fly.
-    // Currently this is ^'ed with looking up and down
-    if (player->flags & FL_FLEET)
-    {
-        if (sbty != 0)
-        {
-            if (sbty > 0)
-                buttonpoll[bt_lookup  ] = true;
-            else
-                buttonpoll[bt_lookdown] = true;
-        }
-    }
-    else  // Lookup/down || aim up/down ?
-    {
-        if ( sbrx != 0 )
-        {
-            if (sbrx > 0)
-            {
-                if (ButtonState & aimMask)
-                    buttonpoll[bt_horizonup] = true;
-                else
-                    buttonpoll[bt_lookup] = true;
-            }
-            else
-            {
-                if (ButtonState & aimMask)
-                    buttonpoll[bt_horizondown] = true;
-                else
-                    buttonpoll[bt_lookdown] = true;
-            }
-        }
-    }
-
-
-}
-
-//******************************************************************************
-//
-// PollSpaceBall ()
-//
-//******************************************************************************
-
-void PollSpaceBall (void)
-{
-    SpwRawData rawpacket;
-    short buttonsChanged;
-    static short buttonState=0;
-    static int reusePacketNTimes=0;
-    static SpwRawData lastPacket;
-
-    memset(&rawpacket,0,sizeof(rawpacket));
-    if (SpwSimpleGet(0,&rawpacket))
-    {
-        lastPacket=rawpacket;
-        reusePacketNTimes=6;
-    }
-    else if (reusePacketNTimes > 0)
-    {
-        rawpacket=lastPacket;
-        --reusePacketNTimes;
-    }
-    else if (buttonState) // did not get a packet but a button is down
-        rawpacket.buttons.cur=lastPacket.buttons.cur;
-    else
-        return;
-
-
-    buttonsChanged=buttonState ^ rawpacket.buttons.cur;
-    buttonState=rawpacket.buttons.cur;
-
-    buttonpoll[bt_attack] = (turboFire = (buttonState & turboFireMask) ? true : false );
-
-    if (buttonState & mapMask)          DoMap(player->tilex,player->tiley);
-    if (buttonState & useMask)          buttonpoll[bt_use]        = true;
-    if (buttonState & attackMask)       buttonpoll[bt_attack]     = true;
-    if (buttonState & swapWeaponMask)   buttonpoll[bt_swapweapon] = true;
-    if (buttonState & singleAxisMask)   SPW_SingleAxisFilter(&rawpacket);
-    if (buttonState & planarMask)       rawpacket.ty=rawpacket.rz=rawpacket.rx=0;
-    if (buttonState & pauseMask)        PausePressed=true;
-    if (!PausePressed)                  HandleSpaceBallMotion(&rawpacket,controlbuf);
-}
-
-
-//******************************************************************************
-//
-// OpenSpaceBall ()
-//
-//******************************************************************************
-
-void OpenSpaceBall (void)
-{
-    int  btn;
-    char filename[ 128 ];
-
-    if (SpwSimpleOpen(0))
-    {
-        SpwRawData sp;
-
-        SpaceBallPresent = true;
-        printf("Test the Spaceball by moving the ball and/or pressing buttons.\n");
-        printf("Exit test by pressing any keyboard key...\n");
-        while(!kbhit())
-        {
-
-            if (SpwSimpleGet(0,&sp))
-                printf("\r# tx: %4d ty: %4d tz: %4d # rx: %4d ry: %4d rz: %4d # b:  %1c-%1c-%1c-%1c-%1c-%1c",
-                       sp.tx, sp.ty, sp.tz,
-                       sp.rx,  sp.ry,  sp.rz,
-                       sp.buttons.cur &  1 ? 'A':' ', sp.buttons.cur &  2 ? 'B':' ',
-                       sp.buttons.cur &  4 ? 'C':' ', sp.buttons.cur &  8 ? 'D':' ',
-                       sp.buttons.cur & 16 ? 'E':' ', sp.buttons.cur & 32 ? 'F':' ');
-        }
-
-        // Check for configuration file, set defaults if none
-
-        GetPathFromEnvironment( filename, ApogeePath, SpaceBallConfigName );
-
-        SbConfigParse(filename);
-
-        // Check for warp records
-        WarpTx = SbConfigGetWarpRange("Tx");
-        WarpTy = SbConfigGetWarpRange("Ty");
-        WarpTz = SbConfigGetWarpRange("Tz");
-        WarpRx = SbConfigGetWarpRange("Rx");
-        WarpRy = SbConfigGetWarpRange("Ry");
-
-        if(!WarpTx) WarpTx = &defaultRecords[0];
-        if(!WarpTy) WarpTy = &defaultRecords[1];
-        if(!WarpTz) WarpTz = &defaultRecords[2];
-        if(!WarpRx) WarpRx = &defaultRecords[3];
-        if(!WarpRy) WarpRy = &defaultRecords[4];
-
-        // Check for button assignments
-        if((btn=SbConfigGetButtonNumber("TURBO_FIRE"))!=-1)
-        {
-            if (masks[btn])
-                *(masks[btn]) = 0; // zero out mask previously assigned to button
-            masks[btn]= &turboFireMask;
-            turboFireMask=(short)(1<<btn);
-        }
-
-        if((btn=SbConfigGetButtonNumber("ATTACK"))!=-1)
-        {
-            if (masks[btn])
-                *masks[btn] = 0; // zero out mask previously assigned to button
-            masks[btn]= &attackMask;
-            attackMask=(short)(1<<btn);
-        }
-
-        if((btn=SbConfigGetButtonNumber("USE"))!=-1)
-        {
-            if (masks[btn])
-                *masks[btn] = 0; // zero out mask previously assigned to button
-            masks[btn]= &useMask;
-            useMask=(short)(1<<btn);
-        }
-
-        if((btn=SbConfigGetButtonNumber("MAP"))!=-1)
-        {
-            if (masks[btn])
-                *masks[btn] = 0; // zero out mask previously assigned to button
-            masks[btn]= &mapMask;
-            mapMask=(short)(1<<btn);
-        }
-
-        if((btn=SbConfigGetButtonNumber("SWAP_WEAPON"))!=-1)
-        {
-            if (masks[btn])
-                *masks[btn] = 0; // zero out mask previously assigned to button
-            masks[btn]= &swapWeaponMask;
-            swapWeaponMask=(short)(1<<btn);
-        }
-
-        if((btn=SbConfigGetButtonNumber("SINGLE_AXIS_FILTER"))!=-1)
-        {
-            if (masks[btn])
-                *masks[btn] = 0; // zero out mask previously assigned to button
-            masks[btn]= &singleAxisMask;
-            singleAxisMask=(short)(1<<btn);
-        }
-
-        if((btn=SbConfigGetButtonNumber("PLANAR_FILTER"))!=-1)
-        {
-            if (masks[btn])
-                *masks[btn] = 0; // zero out mask previously assigned to button
-            masks[btn]= &planarMask;
-            planarMask=(short)(1<<btn);
-        }
-
-        if((btn=SbConfigGetButtonNumber("AIM"))!=-1)
-        {
-            if (masks[btn])
-                *masks[btn] = 0; // zero out mask previously assigned to button
-            masks[btn]= &aimMask;
-            aimMask=(short)(1<<btn);
-        }
-
-        if((btn=SbConfigGetButtonNumber("PAUSE"))!=-1)
-        {
-            if (masks[btn])
-                *masks[btn] = 0; // zero out mask previously assigned to button
-            masks[btn]= &pauseMask;
-            pauseMask=(short)(1<<btn);
-        }
-    }
-    else
-    {
-        SpaceBallPresent = false;
-    }
-}
-
-//******************************************************************************
-//
-// CloseSpaceBall ()
-//
-//******************************************************************************
-
-void CloseSpaceBall (void)
-{
-    if (SpaceBallPresent)
-    {
-        SpwSimpleClose(0);
-    }
-}
-
-//******************************************************************************
-//
-// GetSpaceBallButtons ()
-//
-//******************************************************************************
-
-unsigned GetSpaceBallButtons (void)
-{
-    SpwRawData sp;
-
-    return ((SpwSimpleGet(0,&sp) & SPW_BUTTON_DOWN));
-}
-
-#else
-
 /* This isn't of much use in Linux. */
 
 void PollSpaceBall (void)
@@ -504,4 +74,3 @@
     return 0;
 }
 
-#endif