Exemplo n.º 1
0
void CON_Bunny( void )
    {
    PLAYERp pp = Player + myconnectindex;
    
    if (CommEnabled)
        return;
    
    pp->BunnyMode = !pp->BunnyMode;
    if(pp->BunnyMode)
        PutStringInfo(pp,"Bunny rockets enabled!");
    else    
        PutStringInfo(pp,"Bunny rockets disabled!");
    }
Exemplo n.º 2
0
VOID WarpCheat ( PLAYERp pp, char *cheat_string )
{
    char *cp = cheat_string;
    int episode_num;
    int level_num;
    cp += sizeof ( "swtrek" ) - 1;
    level_num = atol ( cp );
    
    //DSPRINTF(ds,"ep %d, lev %d",episode_num, level_num);
    //MONO_PRINT(ds);
    
    if ( !SW_SHAREWARE )
    {
        if ( level_num > 28 || level_num < 1 )
        {
            return;
        }
    }
    
    else
    {
        if ( level_num > 4 || level_num < 1 )
        {
            return;
        }
    }
    
    Level = level_num;
    ExitLevel = TRUE;
    sprintf ( ds, "ENTERING %1d", Level );
    PutStringInfo ( pp, ds );
}
Exemplo n.º 3
0
void CON_WinPachinko( void )
	{
	extern BOOL Pachinko_Win_Cheat;
	PLAYERp pp = Player + myconnectindex;
    extern void CheckSndData( char *file, int line );
    
    if (CommEnabled)
        return;

	Pachinko_Win_Cheat = !Pachinko_Win_Cheat;

    //CheckSndData( __FILE__, __LINE__ );

	if(Pachinko_Win_Cheat)
		PutStringInfo(pp,"Pachinko Win Cheat Enabled");
	else
		PutStringInfo(pp,"Pachinko Win Cheat Disabled");
	}
Exemplo n.º 4
0
VOID EveryCheatToggle ( PLAYERp pp, char *cheat_string )
{
    EveryCheat ^= 1;
    WeaponCheat ( pp, cheat_string );
    GodCheat ( pp, cheat_string );
    ItemCheat ( pp, cheat_string );
    sprintf ( ds, "EVERY CHEAT %s", EveryCheat ? "ON" : "OFF" );
    PutStringInfo ( pp, ds );
}
Exemplo n.º 5
0
VOID GodCheat ( PLAYERp pp, char *cheat_string )
{
    //
    // GOD mode
    //
    GodMode ^= 1;
    sprintf ( ds, "GOD MODE %s", GodMode ? "ON" : "OFF" );
    PutStringInfo ( pp, ds );
}
Exemplo n.º 6
0
VOID ItemCheat ( PLAYERp pp, char *cheat_string )
{
    //
    // Get all ITEMS
    //
    PLAYERp p;
    short pnum;
    short inv;
    int i;
    PutStringInfo ( pp, "ITEMS" );
    TRAVERSE_CONNECT ( pnum )
    {
        p = &Player[pnum];
        memset ( p->HasKey, TRUE, sizeof ( p->HasKey ) );
        
        if ( p->Wpn[WPN_UZI] && p->CurWpn == p->Wpn[WPN_UZI] )
        {
            SET ( p->Flags, PF_TWO_UZI );
            SET ( p->Flags, PF_PICKED_UP_AN_UZI );
            InitWeaponUzi ( p );
        }
        
        p->WpnShotgunAuto = 50;
        p->WpnRocketHeat = 5;
        p->WpnRocketNuke = 1;
        p->Armor = 100;
        
        for ( inv = 0; inv < MAX_INVENTORY; inv++ )
        {
            p->InventoryPercent[inv] = 100;
            //p->InventoryAmount[inv] = 1;
            p->InventoryAmount[inv] = InventoryData[inv].MaxInv;
            //PlayerUpdateInventory(p, inv);
        }
        
        PlayerUpdateInventory ( p, p->InventoryNum );
        //p->InventoryNum = 0;
    }
    
    for ( i = 0; i < numsectors; i++ )
    {
        if ( SectUser[i] && SectUser[i]->stag == SECT_LOCK_DOOR )
        {
            SectUser[i]->number = 0;    // unlock all doors of this type
        }
    }
    
    WeaponCheat ( pp, cheat_string );
    PlayerUpdateKeys ( pp );
}
Exemplo n.º 7
0
VOID MapCheat ( PLAYERp pp, char *cheat_string )
{
    automapping ^= 1;
    
    if ( automapping )
    {
        MapSetAll2D ( 0 );
    }
    
    else
    {
        MapSetAll2D ( 0xFF );
    }
    
    sprintf ( ds, "AUTOMAPPING %s", automapping ? "ON" : "OFF" );
    PutStringInfo ( pp, ds );
}
Exemplo n.º 8
0
// NOTE: If v3df_follow == 1, x,y,z are considered literal coordinates
int
PlaySound(int num, int *x, int *y, int *z, Voc3D_Flags flags)
{
    VOC_INFOp vp;
    VOC3D_INFOp v3p;
    int pitch = 0;
    short angle, sound_dist;
    int tx, ty, tz;
    uint8_t priority;
    SPRITEp sp=NULL;

    // DEBUG
    //extern SWBOOL Pachinko_Win_Cheat;


    // Don't play game sounds when in menus
    //if (UsingMenus && (*x!=0 || *y!=0 || *z!=0)) return(-1);

    // Weed out parental lock sounds if PLock is active
    if (gs.ParentalLock || Global_PLock)
    {
        unsigned i;

        for (i=0; i<sizeof(PLocked_Sounds); i++)
        {
            if (num == PLocked_Sounds[i])
                return -1;
        }
    }

    if (Prediction)
        return -1;

    if (!gs.FxOn)
        return -1;

    PRODUCTION_ASSERT(num >= 0 && num < DIGI_MAX);

    // Reset voice
    voice = -1;

    // This is used for updating looping sounds in Update3DSounds
    if (Use_SoundSpriteNum && SoundSpriteNum >= 0)
    {
        ASSERT(SoundSpriteNum >= 0 && SoundSpriteNum < MAXSPRITES);
        sp = &sprite[SoundSpriteNum];
    }

    if (gs.Ambient && TEST(flags,v3df_ambient) && !TEST(flags,v3df_nolookup))  // Look for invalid ambient numbers
    {
        if (num < 0 || num > MAX_AMBIENT_SOUNDS)
        {
            sprintf(ds,"Invalid or out of range ambient sound number %d\n",num);
            PutStringInfo(Player+screenpeek, ds);
            return -1;
        }
    }


    // Call queue management to add sound to play list.
    // 3D sound manager will update playing sound 10x per second until
    // the sound ends, at which time it is removed from both the 3D
    // sound list as well as the actual cache.
    v3p = Insert3DSound();

    // If the ambient flag is set, do a name conversion to point to actual
    // digital sound entry.
    v3p->num = num;
    v3p->priority = 0;
    v3p->FX_Ok = FALSE; // Hasn't played yet

    if (gs.Ambient && TEST(flags,v3df_ambient) && !TEST(flags,v3df_nolookup))
    {
        v3p->maxtics = STD_RANDOM_RANGE(ambarray[num].maxtics);
        flags |= ambarray[num].ambient_flags;   // Add to flags if any
        num = ambarray[num].diginame;
    }

    PRODUCTION_ASSERT(num >= 0 && num < DIGI_MAX);


    // Assign voc to voc pointer
    vp = &voc[num];
    if (UsingMenus && *x==0 && *y==0 && *z==0)  // Menus sound outdo everything
        priority = 100;
    else
        priority = vp->priority;
    v3p->vp = vp;

    // Assign voc info to 3d struct for future reference
    v3p->x = x;
    v3p->y = y;
    v3p->z = z;
    v3p->fx = *x;
    v3p->fy = *y;
    v3p->fz = *z;
    v3p->flags = flags;

    if (flags & v3df_follow)
    {
        tx = *x;
        ty = *y;
        if (!z)
            tz = 0;                     // Some sound calls don't have a z
        // value
        else
            tz = *z;
    }
    else
    {
        // Don't use pointers to coordinate values.
        tx = v3p->fx;
        ty = v3p->fy;
        tz = v3p->fz;
    }

    // Special case stuff for sounds being played in a level
    if (*x==0 && *y==0 && *z==0)
        tx = ty = tz = 0;

    if ((vp->voc_flags & vf_loop) && Use_SoundSpriteNum && SoundSpriteNum >= 0 && sp)
    {
        tx=sp->x;
        ty=sp->y;
        tz=sp->z;
        //CON_Message("Using sp to set tx=%ld,ty=%ld,tz=%ld",tx,ty,tz);
    }

    // Calculate sound angle
    if (flags & v3df_dontpan)               // If true, don't do panning
        angle = 0;
    else
        angle = SoundAngle(tx, ty);

    // Calculate sound distance
    if (tx == 0 && ty == 0 && tz == 0)
        sound_dist = 255;  // Special case for menus sounds,etc.
    else
        sound_dist = SoundDist(tx, ty, tz, vp->voc_distance);

    v3p->doplr_delta = sound_dist;      // Save of distance for doppler
    // effect

//  //DSPRINTF(ds,"sound dist = %d\n",sound_dist);
//  MONO_PRINT(ds);

    // Can the ambient sound see the player?  If not, tone it down some.
    if ((vp->voc_flags & vf_loop) && Use_SoundSpriteNum && SoundSpriteNum >= 0)
    {
        PLAYERp pp = Player+screenpeek;

        //MONO_PRINT("PlaySound:Checking sound cansee");
        if (!FAFcansee(tx, ty, tz, sp->sectnum,pp->posx, pp->posy, pp->posz, pp->cursectnum))
        {
            //MONO_PRINT("PlaySound:Reducing sound distance");
            sound_dist += ((sound_dist/2)+(sound_dist/4));  // Play more quietly
            if (sound_dist > 255) sound_dist = 255;

            // Special Cases
            if (num == DIGI_WHIPME) sound_dist = 255;
        }
    }

    // Assign ambient priorities based on distance
    if (gs.Ambient && TEST(flags, v3df_ambient))
    {
        v3p->priority = v3p->vp->priority - (sound_dist / 26);
        priority = v3p->priority;
    }

    if (!CacheSound(num, CACHE_SOUND_PLAY))
    {
        v3p->flags = v3df_kill;
        v3p->handle = -1;
        v3p->dist = 0;
        v3p->deleted = TRUE;            // Sound init failed, remove it!
        return -1;
    }

    LockSound(num);

    if (sound_dist < 5)
        angle = 0;

    // Check for pitch bending
    if (vp->pitch_lo > vp->pitch_hi)
        ASSERT(vp->pitch_lo <= vp->pitch_hi);

    if (vp->pitch_hi == vp->pitch_lo)
        pitch = vp->pitch_lo;
    else if (vp->pitch_hi != vp->pitch_lo)
        pitch = vp->pitch_lo + (STD_RANDOM_RANGE(vp->pitch_hi - vp->pitch_lo));

#if 0
    // DEBUG
    if (Pachinko_Win_Cheat)
    {
        CheckSndData(__FILE__, __LINE__);
        Pachinko_Win_Cheat = FALSE;
        CON_Message("S O U N D S   C H E C K E D");
    }
#endif

    // Request playback and play it as a looping sound if flag is set.
    if (vp->voc_flags & vf_loop)
    {
        short loopvol=0;

        if ((loopvol = 255-sound_dist) <= 0)
            loopvol = 0;

        if (sound_dist < 255 || (flags & v3df_init))
        {
            voice = FX_PlayLoopedAuto((char *)vp->data, vp->datalen, 0, 0,
                                      pitch, loopvol, loopvol, loopvol, priority, num);
        }
        else
            voice = -1;

    }
    else
    //if(!flags & v3df_init)  // If not initing sound, play it
    if (tx==0 && ty==0 && tz==0)     // It's a non-inlevel sound
    {
        voice = FX_PlayAuto((char *)vp->data, vp->datalen, pitch, 255, 255, 255, priority, num);
    }
    else     // It's a 3d sound
    {
        if (sound_dist < 255)
        {
            voice = FX_PlayAuto3D((char *)vp->data, vp->datalen, FX_ONESHOT, pitch, angle, sound_dist, priority, num);
        }
        else
            voice = -1;
    }

    // If sound played, update our counter
    if (voice > FX_Ok)
    {
        //vp->playing++;
        v3p->FX_Ok = TRUE;
    }
    else
    {
        vp->lock--;
    }

    // Assign voc info to 3d struct for future reference
    v3p->handle = voice;                // Save the current voc handle in struct
    v3p->dist = sound_dist;
    v3p->tics = 0;                      // Reset tics
    if (flags & v3df_init)
        v3p->flags ^= v3df_init;        // Turn init off now

    return voice;
}
Exemplo n.º 9
0
// !JIM! My simplified version of CheatInput which simply processes MessageInputString
void CheatInput ( void )
{
    static BOOL cur_show;
    int ret;
    BOOL match = FALSE;
    unsigned int i;
    //if (CommEnabled)
    //    return;
    strcpy ( CheatInputString, MessageInputString );
    // make sure string is lower cased
    Bstrlwr ( CheatInputString );
    
    // check for at least one single match
    for ( i = 0; i < SIZ ( ci ); i++ )
    {
        // compare without the NULL
        if ( cheatcmp ( CheatInputString, ci[i].CheatInputCode, strlen ( CheatInputString ) ) == 0 )
        {
            // if they are equal in length then its a complet match
            if ( strlen ( CheatInputString ) == strlen ( ci[i].CheatInputCode ) )
            {
                match = TRUE;
                CheatInputMode = FALSE;
                
                if ( TEST ( ci[i].flags, CF_NOTSW ) && SW_SHAREWARE )
                {
                    return;
                }
                
                if ( !TEST ( ci[i].flags, CF_ALL ) )
                {
                    if ( CommEnabled )
                    {
                        return;
                    }
                    
                    if ( Skill >= 3 )
                    {
                        PutStringInfo ( Player, "You're too skillful to cheat\n" );
                        return;
                    }
                }
                
                if ( ci[i].CheatInputFunc )
                {
                    ( *ci[i].CheatInputFunc ) ( Player, CheatInputString );
                }
                
                return;
            }
            
            else
            {
                match = TRUE;
                break;
            }
        }
    }
    
    if ( !match )
    {
        ////DSPRINTF(ds,"Lost A Match %s", CheatInputString);
        //MONO_PRINT(ds);
        CheatInputMode = FALSE;
    }
}
Exemplo n.º 10
0
VOID ClipCheat ( PLAYERp pp, char *cheat_string )
{
    FLIP ( pp->Flags, PF_CLIP_CHEAT );
    sprintf ( ds, "NO CLIP MODE %s", TEST ( pp->Flags, PF_CLIP_CHEAT ) ? "ON" : "OFF" );
    PutStringInfo ( pp, ds );
}