Fix crash if Num_walls=0
[btb/d2x.git] / main / crypt.c
1 /* $Id: crypt.c,v 1.4 2003-10-10 09:36:34 btb Exp $ */
2 /*
3 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
4 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
5 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
6 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
7 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
8 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
9 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
10 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
11 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
12 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
13 */
14
15 /*
16  *
17  * Encryption function for the cheat codes
18  *
19  */
20
21 #ifdef HAVE_CONFIG_H
22 #include <conf.h>
23 #endif
24
25 #ifdef RCS
26 char crypt_rcsid[] = "$Id: crypt.c,v 1.4 2003-10-10 09:36:34 btb Exp $";
27 #endif
28
29 //#include <time.h>
30 //#include <stdlib.h>
31 #include <string.h>
32
33 //#include "inferno.h"
34
35 char *jcrypt (char *plainstring)
36 {
37         int i, t, len;
38         static char cryptstring[20];
39
40         len=strlen (plainstring);
41         if (len > 8)
42                 len = 8;
43
44         for (i = 0; i < len; i++)
45         {
46                 cryptstring[i] = 0;
47
48                 for (t = 0; t < 8; t++)
49                 {
50                         cryptstring[i] ^= (plainstring[t] ^ plainstring[i % (t + 1)]);
51                         cryptstring[i] %= 90;
52                         cryptstring[i] += 33;
53                 }
54         }
55         cryptstring[i] = 0;
56         return ((char *)cryptstring);
57 }