1
/************************************************************************************
3
AstroMenace (Hardcore 3D space shooter with spaceship upgrade possibilities)
4
Copyright © 2006-2012 Michael Kurinnoy, Viewizard
7
AstroMenace is free software: you can redistribute it and/or modify
8
it under the terms of the GNU General Public License as published by
9
the Free Software Foundation, either version 3 of the License, or
10
(at your option) any later version.
12
AstroMenace is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
17
You should have received a copy of the GNU General Public License
18
along with AstroMenace. If not, see <http://www.gnu.org/licenses/>.
21
Web Site: http://www.viewizard.com/
22
Project: http://sourceforge.net/projects/openastromenace/
23
E-mail: viewizard@viewizard.com
25
*************************************************************************************/
31
// вот тут храним самый важный номер! - номер текущего профайла!!!
32
int CurrentProfile=-1;
35
char NewProfileName[128] = "";
37
float LastProfileNameTime = 0.0f;
38
float CurrentProfileNameTransp = 0.9f;
39
int SoundOnProfileID = -1;
45
//------------------------------------------------------------------------------------
46
// создание новой записи
47
//------------------------------------------------------------------------------------
50
// заносим в новый профайл (последний)
52
for (int i=4; i>=0; i--)
53
if (!Setup.Profile[i].Used) ProfileNum = i;
56
// выводим диалог - все заняты!
59
SetCurrentDialogBox(1);
63
if (strlen(NewProfileName)<=0) return;
66
// пишем данные в профайл
68
Setup.Profile[ProfileNum].Used = true;
69
strcpy(Setup.Profile[ProfileNum].Name, NewProfileName);
71
Setup.Profile[ProfileNum].NPCWeaponPenalty = 3;
72
Setup.Profile[ProfileNum].NPCArmorPenalty = 2;
73
Setup.Profile[ProfileNum].NPCTargetingSpeedPenalty = 2;
74
Setup.Profile[ProfileNum].LimitedAmmo = 0;
75
Setup.Profile[ProfileNum].DestroyableWeapon = 1;
76
Setup.Profile[ProfileNum].WeaponTargetingMode = 0;
77
Setup.Profile[ProfileNum].SpaceShipControlMode = 1;
80
Setup.Profile[ProfileNum].Ship = 1;
81
Setup.Profile[ProfileNum].ShipHullUpgrade = 1;
82
Setup.Profile[ProfileNum].ShipHullCurrentStrength = 30;
84
// сброс настроек оружия
85
for (int i=0; i<6; i++)
87
Setup.Profile[ProfileNum].Weapon[i] = 0;
88
Setup.Profile[ProfileNum].WeaponAmmo[i] = 0;
89
Setup.Profile[ProfileNum].WeaponControl[i] = 0;
90
Setup.Profile[ProfileNum].WeaponAltControl[i] = 0;
91
Setup.Profile[ProfileNum].WeaponAltControlData[i] = 0;
92
Setup.Profile[ProfileNum].WeaponSlotYAngle[i] = 0.0f;
94
// ставим 2 орудия первоначально
97
Setup.Profile[ProfileNum].Weapon[2] = 1;
98
Setup.Profile[ProfileNum].WeaponAmmo[2] = 3000;
99
Setup.Profile[ProfileNum].WeaponControl[2] = 1;
100
Setup.Profile[ProfileNum].Weapon[3] = 1;
101
Setup.Profile[ProfileNum].WeaponAmmo[3] = 3000;
102
Setup.Profile[ProfileNum].WeaponControl[3] = 1;
103
Setup.Profile[ProfileNum].Weapon[4] = 16;
104
Setup.Profile[ProfileNum].WeaponAmmo[4] = 200;
105
Setup.Profile[ProfileNum].WeaponControl[4] = 2;
107
Setup.Profile[ProfileNum].EngineSystem = 1;
108
Setup.Profile[ProfileNum].TargetingSystem = 1;
109
Setup.Profile[ProfileNum].AdvancedProtectionSystem = 1;
110
Setup.Profile[ProfileNum].PowerSystem = 1;
111
Setup.Profile[ProfileNum].TargetingMechanicSystem = 1;
113
Setup.Profile[ProfileNum].Difficulty = 50;
115
Setup.Profile[ProfileNum].PrimaryWeaponFireMode = 2;
116
Setup.Profile[ProfileNum].SecondaryWeaponFireMode = 1;
119
Setup.Profile[ProfileNum].Money = 200;
120
Setup.Profile[ProfileNum].Experience = 0;
123
for (int i=0; i<100; i++)
125
Setup.Profile[ProfileNum].ByMissionExperience[i] = 0;
126
Setup.Profile[ProfileNum].MissionReplayCount[i] = 0;
130
Setup.Profile[ProfileNum].OpenLevelNum = 0;// 1;
133
// подготавливаем, для новой записи
135
for(int i=0; i<128; i++)
136
NewProfileName[i] = 0;
139
CurrentProfile = ProfileNum;
140
Setup.LastProfile = CurrentProfile;
141
// сразу ставим первую миссию все равно выбирать не из чего
143
Setup.Profile[CurrentProfile].LastMission = CurrentMission;
144
// ставим первый лист миссий
153
//------------------------------------------------------------------------------------
154
// создание дубликата записи
155
//------------------------------------------------------------------------------------
156
void DuplicateRecord()
158
// запоминаем номер профайла, с которого копировать
159
int BaseProfileNum = CurrentProfile;
161
// заносим в новый профайл (последний)
163
for (int i=4; i>=0; i--)
164
if (!Setup.Profile[i].Used) ProfileNum = i;
166
// выводим диалог - все заняты!
167
if (ProfileNum == -1)
169
SetCurrentDialogBox(1);
174
// пишем данные в профайл (дублируем)
176
Setup.Profile[ProfileNum].Used = true;
177
strcpy(Setup.Profile[ProfileNum].Name, Setup.Profile[BaseProfileNum].Name);
179
Setup.Profile[ProfileNum].NPCWeaponPenalty = Setup.Profile[BaseProfileNum].NPCWeaponPenalty;
180
Setup.Profile[ProfileNum].NPCArmorPenalty = Setup.Profile[BaseProfileNum].NPCArmorPenalty;
181
Setup.Profile[ProfileNum].NPCTargetingSpeedPenalty = Setup.Profile[BaseProfileNum].NPCTargetingSpeedPenalty;
182
Setup.Profile[ProfileNum].LimitedAmmo = Setup.Profile[BaseProfileNum].LimitedAmmo;
183
Setup.Profile[ProfileNum].DestroyableWeapon = Setup.Profile[BaseProfileNum].DestroyableWeapon;
184
Setup.Profile[ProfileNum].WeaponTargetingMode = Setup.Profile[BaseProfileNum].WeaponTargetingMode;
185
Setup.Profile[ProfileNum].SpaceShipControlMode = Setup.Profile[BaseProfileNum].SpaceShipControlMode;
188
Setup.Profile[ProfileNum].Ship = Setup.Profile[BaseProfileNum].Ship;
189
Setup.Profile[ProfileNum].ShipHullUpgrade = Setup.Profile[BaseProfileNum].ShipHullUpgrade;
190
Setup.Profile[ProfileNum].ShipHullCurrentStrength = Setup.Profile[BaseProfileNum].ShipHullCurrentStrength;
192
// сброс настроек оружия
193
for (int i=0; i<6; i++)
195
Setup.Profile[ProfileNum].Weapon[i] = Setup.Profile[BaseProfileNum].Weapon[i];
196
Setup.Profile[ProfileNum].WeaponAmmo[i] = Setup.Profile[BaseProfileNum].WeaponAmmo[i];
197
Setup.Profile[ProfileNum].WeaponControl[i] = Setup.Profile[BaseProfileNum].WeaponControl[i];
198
Setup.Profile[ProfileNum].WeaponAltControl[i] = Setup.Profile[BaseProfileNum].WeaponAltControl[i];
199
Setup.Profile[ProfileNum].WeaponAltControlData[i] = Setup.Profile[BaseProfileNum].WeaponAltControlData[i];
200
Setup.Profile[ProfileNum].WeaponSlotYAngle[i] = Setup.Profile[BaseProfileNum].WeaponSlotYAngle[i];
204
Setup.Profile[ProfileNum].EngineSystem = Setup.Profile[BaseProfileNum].EngineSystem;
205
Setup.Profile[ProfileNum].TargetingSystem = Setup.Profile[BaseProfileNum].TargetingSystem;
206
Setup.Profile[ProfileNum].AdvancedProtectionSystem = Setup.Profile[BaseProfileNum].AdvancedProtectionSystem;
207
Setup.Profile[ProfileNum].PowerSystem = Setup.Profile[BaseProfileNum].PowerSystem;
208
Setup.Profile[ProfileNum].TargetingMechanicSystem = Setup.Profile[BaseProfileNum].TargetingMechanicSystem;
210
Setup.Profile[ProfileNum].Difficulty = Setup.Profile[BaseProfileNum].Difficulty;
212
Setup.Profile[ProfileNum].PrimaryWeaponFireMode = Setup.Profile[BaseProfileNum].PrimaryWeaponFireMode;
213
Setup.Profile[ProfileNum].SecondaryWeaponFireMode = Setup.Profile[BaseProfileNum].SecondaryWeaponFireMode;
216
Setup.Profile[ProfileNum].Money = Setup.Profile[BaseProfileNum].Money;
217
Setup.Profile[ProfileNum].Experience = Setup.Profile[BaseProfileNum].Experience;
219
for (int i=0; i<100; i++)
221
Setup.Profile[ProfileNum].ByMissionExperience[i] = Setup.Profile[BaseProfileNum].ByMissionExperience[i];
222
Setup.Profile[ProfileNum].MissionReplayCount[i] = Setup.Profile[BaseProfileNum].MissionReplayCount[i];
226
Setup.Profile[ProfileNum].OpenLevelNum = Setup.Profile[BaseProfileNum].OpenLevelNum;
227
Setup.Profile[ProfileNum].LastMission = Setup.Profile[BaseProfileNum].LastMission;
231
CurrentProfile = ProfileNum;
232
Setup.LastProfile = CurrentProfile;
233
CurrentMission = Setup.Profile[CurrentProfile].LastMission;
234
// ставим нужный лист миссий
237
if (CurrentMission != -1)
238
while (!(StartMission<=CurrentMission && CurrentMission<=EndMission))
249
//------------------------------------------------------------------------------------
251
//------------------------------------------------------------------------------------
254
if (CurrentProfile == -1) return;
257
// проверяем, входит в таблицу рекордов или нет
258
if (Setup.Profile[CurrentProfile].Experience != 0)
259
AddTopScores(Setup.Profile[CurrentProfile].Experience, Setup.Profile[CurrentProfile].Name, false);
263
// если это последняя запись...
264
if (CurrentProfile == 4)
266
Setup.Profile[CurrentProfile].Used = false;
270
// если после этой записи - ничего нет... тоже просто удаляем
271
if (!Setup.Profile[CurrentProfile+1].Used)
273
Setup.Profile[CurrentProfile].Used = false;
280
for (int i=CurrentProfile; i<4; i++)
282
memcpy(Setup.Profile+i, Setup.Profile+i+1, sizeof(GameProfile));
283
Setup.Profile[i+1].Used = false;
290
// проверяем, текущий номер
291
if (CurrentProfile == -1)
292
if (Setup.Profile[0].Used) CurrentProfile = 0;
293
Setup.LastProfile = CurrentProfile;
306
//------------------------------------------------------------------------------------
308
//------------------------------------------------------------------------------------
309
void ProfileInputText()
312
// пишем букву, если можем
314
if (vw_FontSize(NewProfileName)< 540)
315
if (vw_GetCurrentKeyUnicode()) // если тут не ноль, а юникод - значит нажали
317
Uint16 NewChar = vw_GetCurrentKeyUnicode();
318
vw_SetCurrentKeyUnicode(0); // сразу сбрасываем данные
319
// делаем простое преобразование, без учета суррогатной пары
320
char* str = NewProfileName + Pos;
323
*str = (char)NewChar;
326
else if (NewChar <= 0x7FF)
328
*str++ = (char)(0xC0 | (NewChar >> 6));
329
*str = (char)(0x80 | (NewChar & 0x3F));
334
*str++ = (char)(0xE0 | (NewChar >> 12));
335
*str++ = (char)(0x80 | ((NewChar >> 6) & 0x3F));
336
*str = (char)(0x80 | (NewChar & 0x3F));
340
if (vw_FindSoundByNum(SoundTaping) != 0)
341
vw_FindSoundByNum(SoundTaping)->Stop(0.0f);
343
SoundTaping = Audio_PlaySound2D(4,1.0f);
345
vw_SetCurrentKeyUnicode(0);
350
// проверяем, может спец-код
351
if (vw_GetKeys(SDLK_BACKSPACE))
354
// кривое решение на "пока", перебираем в поисках предпоследнего символа
355
const char *ReversePoint = NewProfileName;
356
const char *ReversePointPrevious = 0;
357
while (strlen(ReversePoint) > 0)
359
unsigned CurrentChar;
360
ReversePointPrevious = ReversePoint;
361
ReversePoint = utf8_to_utf32(ReversePoint, &CurrentChar);
363
while (ReversePointPrevious != ReversePoint)
365
NewProfileName[Pos] = 0;
367
ReversePointPrevious++;
369
NewProfileName[Pos] = 0;
371
if (vw_FindSoundByNum(SoundTaping) != 0)
372
vw_FindSoundByNum(SoundTaping)->Stop(0.0f);
373
SoundTaping = Audio_PlaySound2D(4,1.0f);
375
vw_SetKeys(SDLK_BACKSPACE, false);
379
if (vw_GetKeys(SDLK_KP_ENTER) || vw_GetKeys(SDLK_RETURN))
383
//Audio_PlayMenuSound(4,1.0f);
384
vw_SetKeys(SDLK_KP_ENTER, false);
385
vw_SetKeys(SDLK_RETURN, false);
390
int X1 = Setup.iAspectRatioWidth/2 - 372;
393
// находим положения ввода
394
int Size = vw_FontSize(NewProfileName);
395
RECT SrcRest, DstRest;
396
SetRect(&SrcRest,0,0,2,2);
397
SetRect(&DstRest,X1+Size+2,Y1-2,X1+26+Size,Y1+24);
398
vw_DrawTransparent(&DstRest, &SrcRest, vw_FindTextureByName("DATA/MENU/whitepoint.tga"),
399
true, CurrentProfileNameTransp*MenuContentTransp);
401
float DeltaTime = vw_GetTime() - LastProfileNameTime;
402
LastProfileNameTime = vw_GetTime();
403
CurrentProfileNameTransp -= 2.0f*DeltaTime;
404
if (CurrentProfileNameTransp < 0.2f) CurrentProfileNameTransp = 0.9f;
424
//------------------------------------------------------------------------------------
425
// выбор текущего профайла
426
//------------------------------------------------------------------------------------
430
RECT SrcRest, DstRest;
431
SetRect(&SrcRest,2,2,863-2,484-2);
432
SetRect(&DstRest,Setup.iAspectRatioWidth/2-427,175-15,Setup.iAspectRatioWidth/2-427+863-4,175-15+484-4);
433
vw_DrawTransparent(&DstRest, &SrcRest, vw_FindTextureByName("DATA/MENU/panel800_444_back.tga"), true, 0.9f*MenuContentTransp);
436
int X1 = Setup.iAspectRatioWidth/2 - 372;
441
vw_DrawFont(X1, Y1, 0, 0, 1.0f, 1.0f,0.5f,0.0f, MenuContentTransp, vw_GetText("3_New_Pilot_Profile"));
445
SetRect(&SrcRest,0,0,2,2);
446
SetRect(&DstRest,X1-2,Y1-6,X1+2+590,Y1-2+30);
447
vw_DrawTransparent(&DstRest, &SrcRest, vw_FindTextureByName("DATA/MENU/blackpoint.tga"), true, 0.2f*MenuContentTransp);
448
SetRect(&DstRest,X1,Y1-4,X1+590,Y1-4+30);
449
vw_DrawTransparent(&DstRest, &SrcRest, vw_FindTextureByName("DATA/MENU/blackpoint.tga"), true, 0.5f*MenuContentTransp);
450
// кнопка, создания новой записи
452
if (strlen(NewProfileName)<=0) Off = true;
453
if (DrawButton128_2(X1+616, Y1-6, vw_GetText("1_Create"), MenuContentTransp, Off))
459
if (!isDialogBoxDrawing())
460
if (MenuContentTransp == 1.0f) ProfileInputText();
462
vw_DrawFont(X1, Y1, 0, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, NewProfileName);
472
// список для выбора записи
474
vw_DrawFont(X1, Y1, 0, 0, 1.0f, 1.0f,0.5f,0.0f, MenuContentTransp, vw_GetText("3_Pilots_Profiles"));
475
int Size = vw_FontSize(vw_GetText("3_Money"));
482
int SizeI = Setup.iAspectRatioWidth/2+2 + (130 - Size)/2;
483
vw_DrawFont(SizeI, Y1, WScale, 0, 1.0f, 1.0f,0.5f,0.0f, MenuContentTransp, vw_GetText("3_Money"));
485
Size = vw_FontSize(vw_GetText("3_Experience"));
492
SizeI = Setup.iAspectRatioWidth/2+132 + (130 - Size)/2;
493
vw_DrawFont(SizeI, Y1, WScale, 0, 1.0f, 1.0f,0.5f,0.0f, MenuContentTransp, vw_GetText("3_Experience"));
495
Size = vw_FontSize(vw_GetText("3_Difficulty"));
502
SizeI = Setup.iAspectRatioWidth/2+262 + (130 - Size)/2;
503
vw_DrawFont(SizeI, Y1, WScale, 0, 1.0f, 1.0f,0.5f,0.0f, MenuContentTransp, vw_GetText("3_Difficulty"));
507
SetRect(&SrcRest,0,0,2,2);
508
SetRect(&DstRest,X1-2,Y1-6,X1+2+750,Y1-2+230);
509
vw_DrawTransparent(&DstRest, &SrcRest, vw_FindTextureByName("DATA/MENU/blackpoint.tga"), true, 0.2f*MenuContentTransp);
510
SetRect(&DstRest,X1,Y1-4,X1+750,Y1-4+230);
511
vw_DrawTransparent(&DstRest, &SrcRest, vw_FindTextureByName("DATA/MENU/blackpoint.tga"), true, 0.5f*MenuContentTransp);
516
int TMPSoundOnProfileID = -1;
518
for (int i=0; i<5; i++)
520
if (Setup.Profile[i].Used)
522
vw_DrawFont(X1+10, TmpY, 0, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, "%i.",i+1);
524
if (vw_FontSize(Setup.Profile[i].Name) > 300)
526
vw_DrawFont(X1+50, TmpY, 0, 300, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, Setup.Profile[i].Name);
527
vw_DrawFont(X1+50+310, TmpY, 0, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, "...");
530
vw_DrawFont(X1+50, TmpY, 0, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, Setup.Profile[i].Name);
533
int Size = vw_FontSize("%i", Setup.Profile[i].Money);
534
int SizeI = Setup.iAspectRatioWidth/2+2 + (130 - Size)/2;
535
vw_DrawFont(SizeI, TmpY, 0, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, "%i", Setup.Profile[i].Money);
536
Size = vw_FontSize("%i", Setup.Profile[i].Experience);
537
SizeI = Setup.iAspectRatioWidth/2+132 + (130 - Size)/2;
538
vw_DrawFont(SizeI, TmpY, 0, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, "%i", Setup.Profile[i].Experience);
539
Size = vw_FontSize("%i%%", Setup.Profile[i].Difficulty);
540
SizeI = Setup.iAspectRatioWidth/2+262 + (130 - Size)/2;
541
vw_DrawFont(SizeI, TmpY, 0, 0, 1.0f, 1.0f,1.0f,1.0f, MenuContentTransp, "%i%%", Setup.Profile[i].Difficulty);
544
// работаем с клавиатурой
545
if ((MenuContentTransp >= 0.99f) && !isDialogBoxDrawing()) CurrentActiveMenuElement++;
546
bool InFocusByKeyboard = false;
547
if (CurrentKeyboardSelectMenuElement > 0)
549
if (CurrentKeyboardSelectMenuElement == CurrentActiveMenuElement)
551
InFocusByKeyboard = true;
555
// проверяем, если стоим над записью
556
SetRect(&SrcRest,0,0,2,2);
557
SetRect(&DstRest,X1,Y1-233+46*i,X1+750,Y1-234+46+46*i);
558
if (!isDialogBoxDrawing())
559
if (vw_OnRect(&DstRest) || InFocusByKeyboard)
561
TMPSoundOnProfileID = i;
562
CurrentCursorStatus = 1;
563
// если только встали - нужно звуком это показать
564
if (SoundOnProfileID != i)
566
SoundOnProfileID = i;
567
// если задействуем клавиатуру - неиграем тут звук
568
if (CurrentKeyboardSelectMenuElement == 0) Audio_PlaySound2D(5,1.0f);
571
if (vw_GetWindowLBMouse(true) || (InFocusByKeyboard && (vw_GetKeys(SDLK_KP_ENTER) || vw_GetKeys(SDLK_RETURN))))
573
// если другой - нужно сбросить миссию...
574
if (CurrentProfile != i) CurrentMission = Setup.Profile[i].LastMission;
576
Setup.LastProfile = CurrentProfile;
577
// играем звук выбора
578
Audio_PlaySound2D(6,1.0f);
579
if (InFocusByKeyboard)
581
vw_SetKeys(SDLK_KP_ENTER, false);
582
vw_SetKeys(SDLK_RETURN, false);
586
if (CurrentProfile != i)
588
// переход по 2-му клику
589
if (vw_GetWindowLBDoubleMouse(true))
592
Setup.LastProfile = CurrentProfile;
593
// если другой - нужно сбросить миссию...
594
CurrentMission = Setup.Profile[CurrentProfile].LastMission;
599
SetRect(&DstRest,X1+2,Y1-233+46*i,X1+748,Y1-235+46+46*i);
600
if (CurrentProfile != i)
601
vw_DrawTransparent(&DstRest, &SrcRest, vw_FindTextureByName("DATA/MENU/whitepoint.tga"), true, 0.1f*MenuContentTransp);
605
// переход по 2-му клику
606
if (vw_GetWindowLBDoubleMouse(true))
617
vw_DrawFont(X1+10, TmpY, 0, 0, 1.0f, 1.0f,1.0f,1.0f, transp*MenuContentTransp, "%i.",i+1);
618
vw_DrawFont(X1+50, TmpY, 0, 0, 1.0f, 1.0f,1.0f,1.0f, transp*MenuContentTransp, vw_GetText("3_empty"));
623
// если не стоим над профайлами - нужно сбросить флаг
624
if (TMPSoundOnProfileID == -1) SoundOnProfileID = -1;
627
// подсветка выбранного...
628
if (CurrentProfile != -1)
630
SetRect(&SrcRest,0,0,2,2);
631
SetRect(&DstRest,X1+2,Y1-233+46*CurrentProfile,X1+748,Y1-235+46+46*CurrentProfile);
632
vw_DrawTransparent(&DstRest, &SrcRest, vw_FindTextureByName("DATA/MENU/whitepoint.tga"), true, 0.1f*MenuContentTransp);
645
// кнопка создания дубликата
647
if (CurrentProfile >= 0) Off = false;
648
if (DrawButton200_2(X1+6, Y1-6, vw_GetText("1_Duplicate"), MenuContentTransp, Off))
653
// кнопка удаления записи
655
if (CurrentProfile >= 0) Off = false;
656
if (DrawButton128_2(X1+240, Y1-6, vw_GetText("1_Delete"), MenuContentTransp, Off))
658
SetCurrentDialogBox(2);
662
// кнопка установки сложности
664
if (CurrentProfile >= 0) Off = false;
665
if (DrawButton200_2(X1+544, Y1-6, vw_GetText("1_Difficulty"), MenuContentTransp, Off))
667
ComBuffer = DIFFICULTY;
672
int X = Setup.iAspectRatioWidth/2 - 284;
674
if (DrawButton256(X,Y, vw_GetText("1_MAIN_MENU"), MenuContentTransp, &Button10Transp, &LastButton10UpdateTime))
676
ComBuffer = MAIN_MENU;
679
if (CurrentProfile >= 0) Off = false;
680
X = Setup.iAspectRatioWidth/2 + 28;
681
if (DrawButton256(X,Y, vw_GetText("1_NEXT"), MenuContentTransp, &Button11Transp, &LastButton11UpdateTime, Off))