Ignore:
Timestamp:
Feb 15, 2011, 11:43:32 PM (11 years ago)
Author:
weyers
Message:

EnigmaPresentation Settings synchronisation and start on play update and bugfixes, Pictures updated as .png, Rotor2 synchronisation update, Reflector bugfix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/Enigma/Rotor2.cs

    r2636 r2701  
    6161        int[] fuenf = new int[] { 21, 25, 1, 17, 6, 8, 19, 24, 20, 15, 18, 3, 13, 7, 11, 23, 0, 22, 12, 9, 16, 14, 5, 4, 2, 10 };
    6262
    63 
     63        public void changeoffset(int offset)
     64        {
     65
     66        }
    6467
    6568
     
    7073        }
    7174
    72         public Rotor2(int map, double width, double height)
     75        public Rotor2(int map, double width, double height, int offset, int ringoffset)
    7376        {
    7477
     
    7982            this.width = width;
    8083            this.height = height;
    81             this.map = map;
    82 
    83 
    84             this.Children.Add(alpha());
     84            this.map = map+1;
     85
     86
     87            this.Children.Add(alpha(offset,ringoffset-1));
    8588        }
    8689
     
    618621
    619622
     623
    620624                Line l = new Line();
    621625                l = this.cloneLine(lines[0]);
     
    929933            stack.Children.Add(dummy);
    930934
    931            
     935
    932936            int x = Int32.Parse(custom2.Text);
    933937            if (x != 1)
     
    11501154            }
    11511155
    1152             System.GC.Collect();
     1156            //System.GC.Collect();
    11531157        }
    11541158
     
    11591163
    11601164
    1161         private Canvas alpha()
     1165        private Canvas alpha(int offset, int ringoffset)
    11621166        {
    11631167
     
    12071211            temp.Children.Add(lineCanvas);
    12081212
    1209             for (int i = 0; i < 26; i++)
    1210             {
     1213            int max = 26;
     1214            int rest = 26 - offset;
     1215
     1216            for (int i = offset; i < max; i++)
     1217            {
     1218               
     1219                int inew = (i-offset +ringoffset)%26;
    12111220                TextBlock t = new TextBlock();
    1212                 t.Text = "" + (i + 1);
     1221                t.Text = "" + ((26-i+ringoffset)%26+1);
    12131222                t.Width = 29.4;
    12141223                t.Height = 29.4;
     
    12531262                Line t1 = new Line();
    12541263                t1.X1 = 170;
    1255                 t1.Y1 = 29.4 * i + 75;
     1264                t1.Y1 = 29.4 * inew + 75;
    12561265                t1.Opacity = 0.5;
    12571266                t1.X2 = 30;
     
    12621271
    12631272
    1264                 maparray[i, 0] = i;
     1273                maparray[inew, 0] = inew;
    12651274                switch (map)
    12661275                {
    12671276                    case 1:
    1268                         maparray[i, 1] = eins[i];
    1269                         t1.Y2 = 29.4 * eins[i] + 75;
     1277                        maparray[inew, 1] = ((eins[i] + rest + ringoffset) % 26);
     1278                        t1.Y2 = 29.4 * ((eins[i] + rest +ringoffset) % 26) + 75;
     1279                        iAm.Text = "I";
     1280                        nextint = einsnext;
     1281                        if (offset == nextint)
     1282                            next = true;
     1283                        break;
     1284
     1285                    case 2:
     1286                        maparray[inew, 1] = (zwei[i] + rest + ringoffset) % 26;
     1287                        t1.Y2 = 29.4 * ((zwei[i] + rest + ringoffset) % 26) + 75;
     1288                        nextint = zweinext;
     1289                        iAm.Text = "II";
     1290                        if (offset == nextint)
     1291                            next = true;
     1292                        break;
     1293                    case 3:
     1294                        maparray[inew, 1] = (drei[i] + rest + ringoffset) % 26;
     1295                        t1.Y2 = 29.4 * ((drei[i] + rest + ringoffset) % 26) + 75;
     1296                        nextint = dreinext;
     1297                        iAm.Text = "III";
     1298                        if (offset == nextint)
     1299                            next = true;
     1300                        break;
     1301                    case 4:
     1302                        maparray[inew, 1] = (vier[i] + rest + ringoffset) % 26;
     1303                        t1.Y2 = 29.4 * ((vier[i] + rest + ringoffset) % 26) + 75;
     1304                        nextint = viernext;
     1305                        iAm.Text = "IV";
     1306                        if (offset == nextint)
     1307                            next = true;
     1308                        break;
     1309                    case 5:
     1310                        maparray[inew, 1] = (fuenf[i] + rest + ringoffset) % 26;
     1311                        t1.Y2 = 29.4 * ((fuenf[i] + rest + ringoffset) % 26) + 75;
     1312                        nextint = fuenfnext;
     1313                        iAm.Text = "V";
     1314                        if (offset == nextint)
     1315                            next = true;
     1316                        if (i == 0)
     1317                        {
     1318                            t2.Foreground = Brushes.OrangeRed;
     1319                            t2.FontWeight = FontWeights.UltraBold;
     1320                            t2.FontSize = 22;
     1321                        }
     1322                        break;
     1323
     1324                }
     1325
     1326                lines[inew] = t1;
     1327
     1328
     1329
     1330                if (i == nextint + 1)
     1331                {
     1332                    t2.FontWeight = FontWeights.UltraBold;
     1333                    t2.Foreground = Brushes.OrangeRed;
     1334                    t2.FontSize = 22;
     1335                }
     1336
     1337
     1338                lineCanvas.Children.Add(t1);
     1339
     1340            }
     1341
     1342            for (int i = 0; i < offset; i++)
     1343            {
     1344                int inew = (i + rest+ringoffset)%26;
     1345
     1346                TextBlock t = new TextBlock();
     1347                t.Text = "" + ((26 - i +ringoffset) % 26 + 1);
     1348                t.Width = 29.4;
     1349                t.Height = 29.4;
     1350
     1351
     1352                t.FontSize = 20;
     1353                t.Background = Brushes.Gainsboro;
     1354                t.TextAlignment = TextAlignment.Center;
     1355                if (i % 2 == 0)
     1356                    t.Background = Brushes.Silver;
     1357                if (i == 0)
     1358                {
     1359                    t.FontWeight = FontWeights.UltraBold;
     1360                    t.Foreground = Brushes.OrangeRed;
     1361                    t.FontSize = 22;
     1362
     1363                }
     1364
     1365
     1366                stack.Children.Add(t);
     1367
     1368                tebo.Add(t);
     1369
     1370                TextBlock t2 = new TextBlock();
     1371                t2.Text = "" + Convert.ToChar(i + 65);
     1372                t2.Width = 29.4;
     1373                t2.Height = 29.4;
     1374
     1375
     1376                t2.FontSize = 20;
     1377                t2.Background = Brushes.Gainsboro;
     1378                t2.TextAlignment = TextAlignment.Center;
     1379                if (i % 2 == 0)
     1380                    t2.Background = Brushes.Silver;
     1381
     1382
     1383
     1384                stack1.Children.Add(t2);
     1385
     1386                tebo2.Add(t2);
     1387
     1388                Line t1 = new Line();
     1389                t1.X1 = 170;
     1390                t1.Y1 = 29.4 * ((i - offset + 26 +ringoffset )%26) + 75;
     1391                t1.Opacity = 0.5;
     1392                t1.X2 = 30;
     1393                t1.Y2 = 0;
     1394
     1395                t1.Stroke = Brushes.Black;
     1396
     1397
     1398
     1399                maparray[inew , 0] = inew ;
     1400                switch (map)
     1401                {
     1402                    case 1:
     1403                        maparray[inew, 1] = ((eins[i] + rest + ringoffset) % 26);
     1404                        t1.Y2 = 29.4 * ((eins[i] + rest+ringoffset) % 26) + 75;
    12701405                        iAm.Text = "I";
    12711406                        nextint = einsnext;
     
    12731408
    12741409                    case 2:
    1275                         maparray[i, 1] = zwei[i];
    1276                         t1.Y2 = 29.4 * zwei[i] + 75;
     1410                        maparray[inew, 1] = ((zwei[i] + rest + ringoffset) % 26);
     1411                        t1.Y2 = 29.4 * ((zwei[i] + rest + ringoffset) % 26) + 75;
    12771412                        nextint = zweinext;
    12781413                        iAm.Text = "II";
    12791414                        break;
    12801415                    case 3:
    1281                         maparray[i, 1] = drei[i];
    1282                         t1.Y2 = 29.4 * drei[i] + 75;
     1416                        maparray[inew, 1] = (drei[i] + rest + ringoffset) % 26;
     1417                        t1.Y2 = 29.4 * ((drei[i] + rest + ringoffset) % 26) + 75;
    12831418                        nextint = dreinext;
    12841419                        iAm.Text = "III";
    12851420                        break;
    12861421                    case 4:
    1287                         maparray[i, 1] = vier[i];
    1288                         t1.Y2 = 29.4 * vier[i] + 75;
     1422                        maparray[inew, 1] = (vier[i] + rest + ringoffset) % 26;
     1423                        t1.Y2 = 29.4 * ((vier[i] + rest + ringoffset) % 26) + 75;
    12891424                        nextint = viernext;
    12901425                        iAm.Text = "IV";
    12911426                        break;
    12921427                    case 5:
    1293                         maparray[i, 1] = fuenf[i];
    1294                         t1.Y2 = 29.4 * fuenf[i] + 75;
     1428                        maparray[inew, 1] = (fuenf[i] + rest + ringoffset) % 26;
     1429                        t1.Y2 = 29.4 * ((fuenf[i] + rest + ringoffset) % 26) + 75;
    12951430                        nextint = fuenfnext;
    12961431                        iAm.Text = "V";
     
    13041439
    13051440                }
    1306                 lines[i] = t1;
     1441                lines[inew] = t1;
    13071442
    13081443
     
    13171452
    13181453                lineCanvas.Children.Add(t1);
     1454
    13191455            }
    13201456
     
    13381474            Canvas.SetTop(down, 5);
    13391475
    1340             custom.Text = "A";
     1476            custom.Text = "" + Convert.ToChar(offset+65) ;
    13411477
    13421478            custom.Height = 50;
     
    14231559            Canvas.SetLeft(down1, 125);
    14241560
    1425             custom2.Text = "1";
     1561            custom2.Text = ""+(ringoffset+1);
    14261562
    14271563            custom2.Height = 50;
Note: See TracChangeset for help on using the changeset viewer.