OSDN Git Service

6a357fa54eb398bc84f7dd3e5321817ba8943e46
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / 全体 / Coordinates.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Linq;\r
4 using System.Text;\r
5 using System.Runtime.Serialization;\r
6 using System.Xml;\r
7 \r
8 namespace DTXMania\r
9 {\r
10         /// <summary>\r
11         /// DataContract はフィールドまたはプロパティを XML にシリアライズできます。\r
12         /// DataMember が付いているメンバだけがシリアライズされます。シリアライズ可能な型については MSDN を参照してください。\r
13         /// DataMember が付いていないメンバはデシリアライズ時に別途指定される既定値になります。\r
14         /// これらは OnDeserialized 属性がついたメソッドで処理します。\r
15         /// </summary>\r
16         [DataContract]\r
17         public class STX\r
18         {\r
19                 public STX(int x)\r
20                 {\r
21                         X = x;\r
22                 }\r
23 \r
24                 [DataMember(Name = "X")]\r
25                 public int X;\r
26         }\r
27 \r
28         [DataContract]\r
29         public class STY\r
30         {\r
31                 public STY(int y)\r
32                 {\r
33                         Y = y;\r
34                 }\r
35                 [DataMember(Name = "Y")]\r
36                 public int Y;\r
37         }\r
38 \r
39         [DataContract]\r
40         public class STXY : STX\r
41         {\r
42                 public STXY(int x, int y)\r
43                         : base(x)\r
44                 {\r
45                         Y = y;\r
46                 }\r
47 \r
48                 [DataMember(Name = "Y")]\r
49                 public int Y;\r
50         }\r
51 \r
52         [DataContract]\r
53         public class STXW : STX\r
54         {\r
55                 public STXW(int x, int w)\r
56                         : base(x)\r
57                 {\r
58                         W = w;\r
59                 }\r
60 \r
61                 [DataMember(Name = "Width")]\r
62                 public int W;\r
63         }\r
64 \r
65         [DataContract]\r
66         public class STXYW : STXY\r
67         {\r
68                 public STXYW(int x, int y, int w)\r
69                         : base(x, y)\r
70                 {\r
71                         W = w;\r
72                 }\r
73 \r
74                 [DataMember(Name = "Width")]\r
75                 public int W;\r
76         }\r
77 \r
78         [DataContract]\r
79         public class STRange\r
80         {\r
81                 public STRange(int min, int max)\r
82                 {\r
83                         Min = min;\r
84                         Max = max;\r
85                 }\r
86 \r
87                 [DataMember(Name = "Min")]\r
88                 public int Min;\r
89                 [DataMember(Name = "Max")]\r
90                 public int Max;\r
91         }\r
92 \r
93         [DataContract]\r
94         public class STRect : STXY\r
95         {\r
96                 public System.Drawing.Rectangle rc;\r
97                 public System.Drawing.Rectangle rcTmp;\r
98 \r
99                 public STRect(int x, int y, int w, int h)\r
100                         : base(x, y)\r
101                 {\r
102                         W = w;\r
103                         H = h;\r
104                         rc = new System.Drawing.Rectangle(X, Y, W, H);\r
105                         rcTmp = new System.Drawing.Rectangle(X, Y, W, H);\r
106                 }\r
107 \r
108                 public static implicit operator System.Drawing.Rectangle(STRect x)\r
109                 {\r
110                         return x.rcTmp;\r
111                 }\r
112 \r
113                 public System.Drawing.Rectangle ApplyCounterY(int counter, int overlap)\r
114                 {\r
115                         rcTmp.Y = rc.Y + (rc.Height - overlap) * counter;\r
116                         return rcTmp;\r
117                 }\r
118                 public System.Drawing.Rectangle ApplyCounterX(int counter, int overlap)\r
119                 {\r
120                         rcTmp.X = rc.X + (rc.Width - overlap) * counter;\r
121                         return rcTmp;\r
122                 }\r
123                 public System.Drawing.Rectangle ApplyCounterXY(int counterX, int counterY, int overlapX, int overlapY)\r
124                 {\r
125                         rcTmp.X = rc.X + (rc.Width - overlapX) * counterX;\r
126                         rcTmp.Y = rc.Y + (rc.Height - overlapY) * counterY;\r
127                         return rcTmp;\r
128                 }\r
129 \r
130                 [DataMember(Name = "Width")]\r
131                 public int W;\r
132                 [DataMember(Name = "Height")]\r
133                 public int H;\r
134         }\r
135 \r
136         [DataContract]\r
137         public class Lane\r
138         {\r
139                 [DataMember(Name = "LeftCymbal")]\r
140                 public STXW LCY;\r
141                 [DataMember(Name = "HiHatClose")]\r
142                 public STXW HHC;\r
143                 [DataMember(Name = "HiHatOpen")]\r
144                 public STXW HHO;\r
145                 [DataMember(Name = "SnareDrum")]\r
146                 public STXW SD;\r
147                 [DataMember(Name = "BassDrum")]\r
148                 public STXW BD;\r
149                 [DataMember(Name = "HighTom")]\r
150                 public STXW HT;\r
151                 [DataMember(Name = "LowTom")]\r
152                 public STXW LT;\r
153                 [DataMember(Name = "FloorTom")]\r
154                 public STXW FT;\r
155                 [DataMember(Name = "Cymbal")]\r
156                 public STXW CY;\r
157                 [DataMember(Name = "RideCymbal")]\r
158                 public STXW RCY;\r
159 \r
160                 [DataMember(Name = "GuitarOpen")]\r
161                 public STXW GtO;\r
162                 [DataMember(Name = "GuitarR")]\r
163                 public STXW GtR;\r
164                 [DataMember(Name = "GuitarG")]\r
165                 public STXW GtG;\r
166                 [DataMember(Name = "GuitarB")]\r
167                 public STXW GtB;\r
168                 [DataMember(Name = "GuitarWailing")]\r
169                 public STXW GtW;\r
170 \r
171                 [DataMember(Name = "BassOpen")]\r
172                 public STXW BsO;\r
173                 [DataMember(Name = "BassR")]\r
174                 public STXW BsR;\r
175                 [DataMember(Name = "BassG")]\r
176                 public STXW BsG;\r
177                 [DataMember(Name = "BassB")]\r
178                 public STXW BsB;\r
179                 [DataMember(Name = "BassWailing")]\r
180                 public STXW BsW;\r
181         }\r
182 \r
183         [DataContract]\r
184         public class Judge\r
185         {\r
186                 [DataMember(Name = "LeftCymbal")]\r
187                 public STXY LCY;\r
188                 [DataMember(Name = "HiHatClose")]\r
189                 public STXY HH;\r
190                 [DataMember(Name = "SnareDrum")]\r
191                 public STXY SD;\r
192                 [DataMember(Name = "BassDrum")]\r
193                 public STXY BD;\r
194                 [DataMember(Name = "HighTom")]\r
195                 public STXY HT;\r
196                 [DataMember(Name = "LowTom")]\r
197                 public STXY LT;\r
198                 [DataMember(Name = "FloorTom")]\r
199                 public STXY FT;\r
200                 [DataMember(Name = "Cymbal")]\r
201                 public STXY CY;\r
202 \r
203                 [DataMember(Name = "Guitar")]\r
204                 public STXY Gt;\r
205 \r
206                 [DataMember(Name = "Bass")]\r
207                 public STXY Bs;\r
208         }\r
209 \r
210         [DataContract]\r
211         public class Coordinates\r
212         {\r
213                 [DataMember(Name = "Lane")]\r
214                 public Lane Lane;\r
215 \r
216                 [DataMember(Name = "Combo")]\r
217                 public STDGBVALUE<STXY> Combo;\r
218 \r
219                 [DataMember(Name = "MovieBGAGuitarsOnly")]\r
220                 public STRect GtMovie;\r
221 \r
222                 [DataMember(Name = "MovieBGADrumsOnly")]\r
223                 public STRect DrMovie;\r
224 \r
225                 [DataMember(Name = "MovieBGACommon")]\r
226                 public STRect Movie;\r
227 \r
228                 [DataMember(Name = "Judge")]\r
229                 public Judge Judge;\r
230 \r
231                 [DataMember(Name = "JudgeLine")]\r
232                 public STDGBVALUE<STXYW> JudgeLine;\r
233 \r
234                 [DataMember(Name = "Score")]\r
235                 public STDGBVALUE<STXY> Score;\r
236 \r
237                 [DataMember(Name = "Gauge")]\r
238                 public STXY Gauge;\r
239 \r
240                 [DataMember(Name = "GaugeMax")]\r
241                 public int GaugeMax;\r
242 \r
243                 [DataMember(Name = "StatusPanel")]\r
244                 public STDGBVALUE<STXY> StatusPanel;\r
245 \r
246                 [DataMember(Name = "Graph")]\r
247                 public STDGBVALUE<STRect> Graph;\r
248 \r
249                 [DataMember(Name = "Danger")]\r
250                 public STRange Danger;\r
251 \r
252                 [DataMember(Name = "Panel")]\r
253                 public STRect Panel;\r
254 \r
255                 [DataMember(Name = "Debug")]\r
256                 public STXY Debug;\r
257 \r
258                 [DataMember(Name = "BarLine")]\r
259                 public STDGBVALUE<STX> BarLine;\r
260 \r
261                 [DataMember(Name = "SuddenFrom")]\r
262                 public STDGBVALUE<STY> SuddenFrom;\r
263                 [DataMember(Name = "HiddenFrom")]\r
264                 public STDGBVALUE<STY> HiddenFrom;\r
265                 [DataMember(Name = "SuddenFadeInFrom")]\r
266                 public STDGBVALUE<STY> SuddenFadeInFrom;\r
267                 [DataMember(Name = "HiddenFadeOutFrom")]\r
268                 public STDGBVALUE<STY> HiddenFadeOutFrom;\r
269                 [DataMember(Name = "LaneFlash")]\r
270                 public STDGBVALUE<STY> LaneFlash;\r
271 \r
272                 [DataMember(Name = "DrumsPad")]\r
273                 public STY DrPad;\r
274                 [DataMember(Name = "DrumsPadOffsetLCY")]\r
275                 public STY DrPadOffsetLCY;\r
276                 [DataMember(Name = "DrumsPadOffsetHH")]\r
277                 public STY DrPadOffsetHH;\r
278                 [DataMember(Name = "DrumsPadOffsetSD")]\r
279                 public STY DrPadOffsetSD;\r
280                 [DataMember(Name = "DrumsPadOffsetBD")]\r
281                 public STY DrPadOffsetBD;\r
282                 [DataMember(Name = "DrumsPadOffsetHT")]\r
283                 public STY DrPadOffsetHT;\r
284                 [DataMember(Name = "DrumsPadOffsetLT")]\r
285                 public STY DrPadOffsetLT;\r
286                 [DataMember(Name = "DrumsPadOffsetFT")]\r
287                 public STY DrPadOffsetFT;\r
288                 [DataMember(Name = "DrumsPadOffsetCY")]\r
289                 public STY DrPadOffsetCY;\r
290                 [DataMember(Name = "DrumsPadOffsetRCY")]\r
291                 public STXY DrPadOffsetRCY;\r
292 \r
293                 public STRect ImgGtChipOpen;\r
294                 public int ImgGtCountOpenChip;\r
295                 public STRect ImgGtRGBButton;\r
296                 public int ImgGtCountRGBChip;\r
297                 public int ImgGtCountWailingChip;\r
298                 public STRect ImgGtWailingBonus;\r
299                 public STRect ImgGtLaneFlash;\r
300                 public STRect ImgGtWailingChip;\r
301                 public STRect ImgGtWailingFrame;\r
302                 public STRect ImgGtButtonR;\r
303                 public STRect ImgGtButtonG;\r
304                 public STRect ImgGtButtonB;\r
305                 public STRect ImgGtPressingButtonR;\r
306                 public STRect ImgGtPressingButtonG;\r
307                 public STRect ImgGtPressingButtonB;\r
308                 public STRect ImgDrLaneFlash;\r
309                 public STRect ImgDrChipHHC;\r
310                 public STRect ImgDrChipSD;\r
311                 public STRect ImgDrChipBD;\r
312                 public STRect ImgDrChipHT;\r
313                 public STRect ImgDrChipLT;\r
314                 public STRect ImgDrChipCY;\r
315                 public STRect ImgDrChipCYDeco;\r
316                 public STRect ImgDrChipFT;\r
317                 public STRect ImgDrChipHHO;\r
318                 public STRect ImgDrChipHHODeco;\r
319                 public STRect ImgDrChipRCY;\r
320                 public int ImgDrCountChip;\r
321                 public STRect ImgDrPadLCY;\r
322                 public STRect ImgDrPadHH;\r
323                 public STRect ImgDrPadSD;\r
324                 public STRect ImgDrPadBD;\r
325                 public STRect ImgDrPadHT;\r
326                 public STRect ImgDrPadLT;\r
327                 public STRect ImgDrPadFT;\r
328                 public STRect ImgDrPadCY;\r
329                 public STRect ImgDrPadRCY;\r
330                 public STRect ImgJudgeLine;\r
331                 public STRect ImgBarLine;\r
332                 public STRect ImgBeatLine;\r
333                 public STRect ImgComboCombo;\r
334                 public STRect ImgComboOneDigit;\r
335                 public STRect ImgGaugeOrange;\r
336                 public STRect ImgGaugeNormal;\r
337                 public STRect ImgGaugeLight;\r
338                 public STRect ImgGaugeTopLight;\r
339                 public STRect ImgGaugeStar;\r
340                 public STRect ImgScoreOneDigit;\r
341                 public STRect ImgSpeedPanel;\r
342                 public STRect ImgConsoleFont;\r
343                 public STRect ImgJudgeString;\r
344                 public STRect ImgDanger;\r
345 \r
346                 public STDGBVALUE<STY>[] OffsetGuitarBassSwap;\r
347                 public STDGBVALUE<STXY> PointFullCombo;\r
348 \r
349 \r
350                 /// <summary>\r
351                 /// デシリアライズが終了したとき呼び出されます。\r
352                 /// シリアル化非対象メンバはここで初期値を与えます。\r
353                 /// </summary>\r
354                 /// <param name="sc">ストリーミングコンテキスト。使用されません。</param>\r
355                 [OnDeserialized]\r
356                 public void DefaultDeserializer(StreamingContext sc)\r
357                 {\r
358                         ImgJudgeLine = new STRect(0, 0, 64, 16);\r
359 \r
360                         ImgGtChipOpen = new STRect(72 * 3, 0, 72 * 3, 14);\r
361                         ImgGtRGBButton = new STRect(0, 0, 72, 14);\r
362                         ImgGtWailingChip = new STRect(0, 590, 60, 120);\r
363                         ImgGtCountWailingChip = 5;\r
364                         ImgGtCountRGBChip = 48;\r
365                         ImgGtCountOpenChip = 48;\r
366 \r
367                         ImgDanger = new STRect(0, 0, 64, 256);\r
368 \r
369                         ImgGtButtonR = new STRect(0, 0, 72, 72);\r
370                         ImgGtButtonG = new STRect(72, 0, 72, 72);\r
371                         ImgGtButtonB = new STRect(144, 0, 72, 72);\r
372                         ImgGtPressingButtonR = new STRect(0, 72, 72, 72);\r
373                         ImgGtPressingButtonG = new STRect(72, 72, 72, 72);\r
374                         ImgGtPressingButtonB = new STRect(144, 72, 72, 72);\r
375                         ImgGtWailingBonus = new STRect(0, 0, 78, 549);\r
376 \r
377                         ImgComboCombo = new STRect(100, 140, 110, 30);\r
378                         ImgComboOneDigit = new STRect(0, 0, 50, 70);\r
379 \r
380                         ImgGtWailingFrame = new STRect(0, 0, 66, 113);\r
381                         ImgSpeedPanel = new STRect(0, 0, 45, 164);\r
382 \r
383                         ImgConsoleFont = new STRect(0, 0, 16, 32);\r
384                         ImgJudgeString = new STRect(0, 0, 256, 36);\r
385 \r
386                         ImgDrCountChip = 48;\r
387                         ImgDrChipBD = new STRect(0, 20, 99, 22);\r
388                         ImgDrChipHHC = new STRect(99, 16, 72, 18);\r
389                         ImgDrChipSD = new STRect(99 + 72, 16, 72, 18);\r
390                         ImgDrChipHT = new STRect(99 + 72 * 2, 16, 72, 18);\r
391                         ImgDrChipLT = new STRect(99 + 72 * 3, 16, 72, 18);\r
392                         ImgDrChipFT = new STRect(99 + 72 * 4, 16, 72, 18);\r
393                         ImgDrChipCY = new STRect(99 + 72 * 5, 16, 85, 18);\r
394                         ImgDrChipCYDeco = new STRect(99 + 72 * 5, 786, 85, 64);\r
395                         ImgDrChipRCY = new STRect(99 + 72 * 5 + 85, 16, 58, 18);\r
396                         ImgDrChipHHO = new STRect(99 + 72 * 5 + 85, 16, 58, 18);\r
397                         ImgDrChipHHODeco = new STRect(99 + 72 * 5 + 85, 791, 58, 30);\r
398 \r
399                         ImgDrPadLCY = new STRect(0, 0, 170, 130);\r
400                         ImgDrPadHH = new STRect(170, 0, 170, 130);\r
401                         ImgDrPadSD = new STRect(340, 0, 170, 130);\r
402                         ImgDrPadBD = new STRect(0, 130, 170, 130);\r
403                         ImgDrPadHT = new STRect(170, 130, 170, 130);\r
404                         ImgDrPadLT = new STRect(340, 130, 170, 130);\r
405                         ImgDrPadFT = new STRect(0, 260, 170, 130);\r
406                         ImgDrPadCY = new STRect(170, 260, 170, 130);\r
407                         ImgDrPadRCY = new STRect(340, 260, 170, 130);\r
408 \r
409                         ImgBarLine = new STRect(0, 982, 480, 3);\r
410                         ImgBeatLine = new STRect(0, 985, 480, 2);\r
411 \r
412                         ImgGaugeOrange = new STRect(48, 0, 48, 61);\r
413                         ImgGaugeNormal = new STRect(0, 0, 48, 61);\r
414                         ImgGaugeLight = new STRect(0, 0, 48, 576);\r
415                         ImgGaugeTopLight = new STRect(144, 0, 48, 36);\r
416                         ImgGaugeStar = new STRect(0, 72, 96, 72);\r
417 \r
418                         ImgScoreOneDigit = new STRect(0, 0, 30, 38);\r
419 \r
420                         ImgGtLaneFlash = new STRect(0, 0, -1, 512); // w無効\r
421                         ImgDrLaneFlash = new STRect(0, 0, -1, 768); // w無効\r
422 \r
423                         OffsetGuitarBassSwap = new STDGBVALUE<STY>[2];// #24063 2011.1.27 yyagi\r
424                         OffsetGuitarBassSwap[0] = new STDGBVALUE<STY>();\r
425                         OffsetGuitarBassSwap[0].Drums = new STY(0);\r
426                         OffsetGuitarBassSwap[0].Guitar = new STY((int)(21 * Scale.Y));\r
427                         OffsetGuitarBassSwap[0].Bass = new STY((int)(42 * Scale.Y));\r
428                         OffsetGuitarBassSwap[1].Drums = new STY(0);\r
429                         OffsetGuitarBassSwap[1].Guitar = new STY((int)(42 * Scale.Y));\r
430                         OffsetGuitarBassSwap[1].Bass = new STY((int)(21 * Scale.Y));\r
431 \r
432                         PointFullCombo = new STDGBVALUE<STXY>();\r
433                         PointFullCombo.Drums = new STXY((int)(0x80 * Scale.X), (int)(0xed * Scale.Y));\r
434                         PointFullCombo.Guitar = new STXY((int)(0xdf * Scale.X), (int)(0xed * Scale.Y));\r
435                         PointFullCombo.Bass = new STXY((int)(0x141 * Scale.X), (int)(0xed * Scale.Y));\r
436                 }\r
437 \r
438                 /// <summary>\r
439                 /// デシリアライズを開始しようとする前に呼ばれます。\r
440                 /// シリアル化対象メンバを初期化します。\r
441                 /// 該当要素がXMLにすでに存在する場合、ここで指定したその要素に対する値は無効です。\r
442                 /// </summary>\r
443                 /// <param name="sc">ストリーミングコンテキスト。使用しません。</param>\r
444                 [OnDeserializing]\r
445                 public void DefaultDeserializing(StreamingContext sc)\r
446                 {\r
447 \r
448                         Lane = new Lane();\r
449                         int x = 480 - 72 * 4;\r
450                         Lane.GtO = new STXW(x, 72);\r
451                         Lane.GtR = new STXW(x, 72);\r
452                         x += 72;\r
453                         Lane.GtG = new STXW(x, 72);\r
454                         x += 72;\r
455                         Lane.GtB = new STXW(x, 72);\r
456                         x += 72;\r
457                         Lane.GtW = new STXW(x, 72);\r
458 \r
459                         x = 1920 - 480;\r
460                         Lane.BsO = new STXW(x, 72);\r
461                         Lane.BsR = new STXW(x, 72);\r
462                         x += 72;\r
463                         Lane.BsG = new STXW(x, 72);\r
464                         x += 72;\r
465                         Lane.BsB = new STXW(x, 72);\r
466                         x += 72;\r
467                         Lane.BsW = new STXW(x, 72);\r
468 \r
469                         x = 1920 / 2 - 314;\r
470                         Lane.LCY = new STXW(x, 85);\r
471                         x += 85;\r
472                         Lane.HHC = new STXW(x, 72);\r
473                         Lane.HHO = new STXW(x, 72);\r
474                         x += 72;\r
475                         Lane.SD = new STXW(x, 72);\r
476                         x += 72;\r
477                         Lane.BD = new STXW(x, 99);\r
478                         x += 99;\r
479                         Lane.HT = new STXW(x, 72);\r
480                         x += 72;\r
481                         Lane.LT = new STXW(x, 72);\r
482                         x += 72;\r
483                         Lane.FT = new STXW(x, 72);\r
484                         x += 72;\r
485                         Lane.CY = new STXW(x, 85);\r
486                         Lane.RCY = new STXW(x, 85);\r
487 \r
488                         LaneFlash = new STDGBVALUE<STY>();\r
489                         LaneFlash.Drums = new STY(SampleFramework.GameWindowSize.Height - 768);\r
490                         LaneFlash.Guitar = new STY(0);\r
491                         LaneFlash.Bass = new STY(0);\r
492 \r
493                         JudgeLine = new STDGBVALUE<STXYW>();\r
494                         JudgeLine.Drums = new STXYW(Lane.LCY.X, 942, Lane.CY.X + Lane.CY.W - Lane.LCY.X);\r
495                         JudgeLine.Guitar = new STXYW(Lane.GtR.X, 138, Lane.GtB.X + Lane.GtB.W - Lane.GtR.X);\r
496                         JudgeLine.Bass = new STXYW(Lane.BsR.X, 138, Lane.BsB.X + Lane.BsB.W - Lane.BsR.X);\r
497 \r
498                         // Graph = new STDGBVALUE<STXY>();\r
499 \r
500                         Gauge = new STXY(0, 1080);\r
501                         GaugeMax = 1080;\r
502 \r
503                         Graph = new STDGBVALUE<STRect>();\r
504                         Graph.Drums = new STRect(SampleFramework.GameWindowSize.Width / 2 + 314, 0, 60, 400);\r
505                         Graph.Guitar = new STRect(480, 0, 60, 400);\r
506                         Graph.Bass = new STRect(SampleFramework.GameWindowSize.Width - 480 + 72 * 4, 0, 60, 400);\r
507 \r
508                         Debug = new STXY(450 * 3, 128); // 要修正 actPlayInfo.t進行描画\r
509                         Movie = new STRect(619 + 682, 128, 556, 710);\r
510 \r
511                         Combo = new STDGBVALUE<STXY>();\r
512                         Combo.Drums = new STXY(JudgeLine.Drums.W / 2 + JudgeLine.Drums.X, 80);\r
513                         Combo.Guitar = new STXY((JudgeLine.Guitar.W + 72) / 2 + JudgeLine.Guitar.X, 800);\r
514                         Combo.Bass = new STXY((JudgeLine.Bass.W + 72) / 2 + JudgeLine.Bass.X, 800);\r
515 \r
516                         Score = new STDGBVALUE<STXY>();\r
517                         Score.Drums = new STXY(JudgeLine.Drums.X + JudgeLine.Drums.W / 2, 10);\r
518                         Score.Guitar = new STXY(JudgeLine.Guitar.X + JudgeLine.Guitar.W / 2, 10);\r
519                         Score.Bass = new STXY(JudgeLine.Bass.X + JudgeLine.Bass.W / 2, 10);\r
520 \r
521                         Judge = new Judge();\r
522                         Judge.LCY = new STXY(Lane.LCY.X + Lane.LCY.W / 2, 350);\r
523                         Judge.HH = new STXY(Lane.HHC.X + Lane.HHC.W / 2, 420);\r
524                         Judge.SD = new STXY(Lane.SD.X + Lane.SD.W / 2, 350);\r
525                         Judge.BD = new STXY(Lane.BD.X + Lane.BD.W / 2, 420);\r
526                         Judge.HT = new STXY(Lane.HT.X + Lane.HT.W / 2, 350);\r
527                         Judge.LT = new STXY(Lane.LT.X + Lane.LT.W / 2, 420);\r
528                         Judge.FT = new STXY(Lane.FT.X + Lane.FT.W / 2, 350);\r
529                         Judge.CY = new STXY(Lane.CY.X + Lane.CY.W / 2, 420);\r
530                         Judge.Gt = new STXY(Combo.Guitar.X, 600);\r
531                         Judge.Bs = new STXY(Combo.Bass.X, 600);\r
532 \r
533                         DrMovie = new STRect(619 + 682, 128, 556, 710);\r
534                         GtMovie = new STRect(682, 112, 556, 710);\r
535                         Movie = new STRect(1153, 128, 556, 710);\r
536 \r
537                         Panel = new STRect(SampleFramework.GameWindowSize.Width, 0, 0, 0);\r
538                         StatusPanel = new STDGBVALUE<STXY>();\r
539                         StatusPanel.Drums = new STXY(Lane.LCY.X - 45, 0);\r
540                         StatusPanel.Guitar = new STXY(Lane.GtR.X - 45, 0);\r
541                         StatusPanel.Bass = new STXY(Lane.BsR.X - 45, 0);\r
542 \r
543                         BarLine = new STDGBVALUE<STX>();\r
544                         BarLine.Drums = new STX(619);\r
545                         BarLine.Guitar = new STX(78);\r
546                         BarLine.Bass = new STX(480 * 3);\r
547 \r
548                         DrPadOffsetLCY = new STY(0);\r
549                         DrPadOffsetHH = new STY(10);\r
550                         DrPadOffsetSD = new STY(22);\r
551                         DrPadOffsetBD = new STY(30);\r
552                         DrPadOffsetHT = new STY(0);\r
553                         DrPadOffsetLT = new STY(15);\r
554                         DrPadOffsetFT = new STY(30);\r
555                         DrPadOffsetCY = new STY(15);\r
556                         DrPadOffsetRCY = new STXY(80, 0);\r
557                         DrPad = new STY(930);\r
558 \r
559                         SuddenFrom = new STDGBVALUE<STY>();\r
560                         SuddenFrom.Drums = new STY(450);\r
561                         SuddenFrom.Guitar = new STY(450);\r
562                         SuddenFrom.Bass = new STY(450);\r
563                         HiddenFrom = new STDGBVALUE<STY>();\r
564                         HiddenFrom.Drums = new STY(225);\r
565                         HiddenFrom.Guitar = new STY(225);\r
566                         HiddenFrom.Bass = new STY(225);\r
567                         SuddenFadeInFrom.Drums = new STY(562);\r
568                         HiddenFadeOutFrom.Drums = new STY(337);\r
569 \r
570                         Danger = new STRange(0, SampleFramework.GameWindowSize.Width - 64);\r
571                 }\r
572 \r
573                 /// <summary>\r
574                 /// シリアル化対象メンバはここで初期値を与えます。XMLが存在しない場合一度これらの値が書きだされ、\r
575                 /// もう一度デシリアライズされます。XMLが存在する場合、これらの値は全て無効になります。\r
576                 /// </summary>\r
577                 public Coordinates()\r
578                 {\r
579                         StreamingContext sc = new StreamingContext();\r
580                         DefaultDeserializing(sc);\r
581                 }\r
582         }\r
583 }\r