annotate ChunkyDataFBIF.cs @ 0:82db9430c2e4 default tip

Initial commit under GPLv3
author IBBoard <dev@ibboard.co.uk>
date Sat, 06 Oct 2018 19:49:25 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
1 // This file is a part of the Relic Tools and is copyright 2006-2018 IBBoard.
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
2 //
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
3 // The file and the library/program it is in are licensed under the GNU GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license.
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
4 using System;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
5 using System.IO;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
6 using IBBoard.Relic.RelicTools.Exceptions;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
7
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
8 namespace IBBoard.Relic.RelicTools
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
9 {
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
10 /// <summary>
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
11 /// Summary description for ChunkyDataDATA.
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
12 /// </summary>
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
13 public class ChunkyDataFBIF : ChunkyData
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
14 {
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
15 string pluginName, username, burntime;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
16 int pluginVer;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
17
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
18 public ChunkyDataFBIF(int version_in, string name_in, byte[] innerData):base("FBIF", version_in, name_in)
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
19 {
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
20 int pos = 0;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
21 int length = innerData[0]+(innerData[1]<<8)+(innerData[2]<<16)+(innerData[3]<<24);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
22 pos = 4;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
23 pluginName = ByteArrayToTextString(innerData, 4, length);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
24 pos += length;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
25 pluginVer = innerData[pos]+(innerData[pos+1]<<8)+(innerData[pos+2]<<16)+(innerData[pos+3]<<24);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
26 pos+=4;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
27 length = innerData[pos]+(innerData[pos+1]<<8)+(innerData[pos+2]<<16)+(innerData[pos+3]<<24);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
28 pos+=4;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
29 username = ByteArrayToTextString(innerData, pos, length);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
30 pos += length;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
31 length = innerData[pos]+(innerData[pos+1]<<8)+(innerData[pos+2]<<16)+(innerData[pos+3]<<24);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
32 pos+=4;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
33 burntime = ByteArrayToTextString(innerData, pos, length);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
34 }
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
35
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
36 public override string GetDisplayDetails()
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
37 {
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
38 return base.GetBaseDisplayDetails()+Environment.NewLine+
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
39 "------------"+Environment.NewLine+
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
40 "Plugin name:\t\t"+pluginName+Environment.NewLine+
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
41 "Plugin version:\t\t"+pluginVer+Environment.NewLine+
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
42 "Username:\t\t"+username+Environment.NewLine+
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
43 "Burn time:\t\t"+burntime;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
44 }
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
45
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
46 public override int DataLength
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
47 {
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
48 get
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
49 {
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
50 return 16+pluginName.Length+username.Length+burntime.Length;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
51 }
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
52 }
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
53
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
54 public override byte[] GetDataBytes()
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
55 {
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
56 byte[] data = new byte[DataLength];
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
57 int pos = 0;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
58 int temp;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
59
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
60 temp = pluginName.Length;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
61 data[pos++] = (byte)temp;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
62 data[pos++] = (byte)(temp>>8);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
63 data[pos++] = (byte)(temp>>16);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
64 data[pos++] = (byte)(temp>>24);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
65
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
66 System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
67
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
68 enc.GetBytes(pluginName).CopyTo(data,pos);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
69 pos += temp;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
70
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
71 data[pos++] = (byte)pluginVer;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
72 data[pos++] = (byte)(pluginVer>>8);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
73 data[pos++] = (byte)(pluginVer>>16);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
74 data[pos++] = (byte)(pluginVer>>24);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
75
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
76 temp = username.Length;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
77 data[pos++] = (byte)temp;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
78 data[pos++] = (byte)(temp>>8);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
79 data[pos++] = (byte)(temp>>16);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
80 data[pos++] = (byte)(temp>>24);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
81
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
82 enc.GetBytes(username).CopyTo(data,pos);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
83 pos += temp;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
84
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
85 temp = burntime.Length;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
86 data[pos++] = (byte)temp;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
87 data[pos++] = (byte)(temp>>8);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
88 data[pos++] = (byte)(temp>>16);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
89 data[pos++] = (byte)(temp>>24);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
90
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
91 enc.GetBytes(burntime).CopyTo(data,pos);
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
92 pos += temp;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
93
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
94 return data;
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
95 }
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
96
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
97
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
98 }
82db9430c2e4 Initial commit under GPLv3
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
99 }