///// menu sound string sndFullMode = "ui_08_confirm_long"; string sndGameStart = "obje_01_bell_long"; //string sndOK = "ui_01_yes"; string sndOK = ""; string sndOKOnly = "ui_03_ok_01"; //string sndSelected = "ui_05_selected"; string sndSelected = ""; //string sndCancel = "ui_07_show_off"; string sndCancel = ""; string sndPadX = "ui_06_flip_x"; string sndPadY = "ui_06_flip_y"; string sndChangeMode = "ui_06_flip"; string sndOption = "ui_04_cancel_01"; string sndSel = "ui_06_flip"; string sndVoiceVolume = "ai3_kai_001"; string sndFight = "ai3_kai_001"; string menuMusic = "mainmenu"; //// HUD sound string sndNoWeapon = "ui_04_cancel_01"; string sndUseUItem = "fant_11_effect_02_wave_up"; string sndNoUItem = "ui_04_cancel_01"; //string sndAICmd = "ui_05_selected"; string sndAICmd = ""; string sndPerform = "ui_06_flip_y"; string sndDropItem = "ui_04_cancel_02"; string sndTimeout = "ui_09_timer"; string sndCountDown = "ui_06_flip_x"; string sndHeartbeat = "heartbeat"; string sndFullHP = ""; string sndFullRage = "fant_12_effect_02_wave_chimes"; string sndRage60 = "fant_12_effect_02_wave_chimes"; string sndNoRage = "ui_04_cancel_03"; string sndNoStamina = "ui_04_cancel_03"; string sndOpenToolbar = "ui_07_show_off"; string sndCloseToolbar = "ui_07_show_on"; string sndPickupWeapon = "inte_06_weapon_friction"; string sndPickupDart = "inte_08_pickup_items_01"; string sndPickupUItem = "inte_06_weapon_touch_01"; float WIDTH_RATIO = 1.0; // team color float teamColorR[3]; float teamColorG[3]; float teamColorB[3]; teamColorR[0] = 0.9; teamColorG[0] = 0.9; teamColorB[0] = 0; teamColorR[1] = 1; teamColorG[1] = 0.1; teamColorB[1] = 0; teamColorR[2] = 0; teamColorG[2] = 0.5; teamColorB[2] = 1; wstring teamColorCode[3]; wstring whiteColorCode; int optNumRounds[4]; int optWinCondition[4]; int optRoundTime[4]; int optWinScore[4]; int optMaxPlayers[4]; int optNumPrivatePlayers[4]; int optMaxHP[4]; int optNumAIPlayers[4]; int optAIPlayerLevel[4]; int optTeamHurt[4]; int optSpawnPickableItem[4]; int optDedicatedServer[4]; int g_suggestMaxPlayers = 1; int g_unlockIN88 = 0; void InitUILib() { if (IsWideScreen()) { Print("wide screen\n"); WIDTH_RATIO = 0.75; } int i; for (i=0; i<4;i++) { optNumRounds[i] = 3; optWinCondition[i] = 0; optRoundTime[i] = 600; optWinScore[i] = 10; optMaxPlayers[i] = 8; optNumPrivatePlayers[i] = 0; optMaxHP[i] = 1000; optNumAIPlayers[i] = 0; optAIPlayerLevel[i] = 1; optTeamHurt[i] = 0; optSpawnPickableItem[i] = 1; optDedicatedServer[i] = 0; } optNumAIPlayers[3] = 8; // NET_MODE_INTERNET for (i=0; i<3; i++) teamColorCode[i] = GetTextColorCode(teamColorR[i], teamColorG[i], teamColorB[i]); whiteColorCode = GetTextColorCode(1,1,1); } void Activate(int id, int on) { Begin(id); Show(on); Enable(on); End(); } void BeginChild(int c) { Begin(GetChild(c)); } void ShowChild(int c, int show) { Begin(GetChild(c)); Show(show); End(); } void ShowUI(int id, int show) { Begin(id); Show(show); End(); } void SetChildText(int c, int txtID) { Begin(GetChild(c)); Text(txtID); End(); } int GetListChildTextID(int list, int idx) { int txtId; Begin(list); BeginChild(idx); txtId = GetTextID(); End(); End(); return txtId; } void PlayUIAnimation(int id, int frame) { Begin(id); PlayAnimation(frame); End(); } int IsButtonLeft(int key) { return key==BUTTONKEY_PAD_LEFT || key==BUTTONKEY_JOY1_LEFT; } int IsButtonRight(int key) { return key==BUTTONKEY_PAD_RIGHT || key==BUTTONKEY_JOY1_RIGHT; } int IsButtonUp(int key) { return key==BUTTONKEY_PAD_UP || key==BUTTONKEY_JOY1_UP; } int IsButtonDown(int key) { return key==BUTTONKEY_PAD_DOWN || key==BUTTONKEY_JOY1_DOWN; } int IsButtonA(int key) { return key==BUTTONKEY_A || key==' '; } int IsButtonB(int key) { return key==BUTTONKEY_B || key==27; // ESC } int IsButtonX(int key) { return key==BUTTONKEY_X || key=='x'; } int IsButtonY(int key) { return key==BUTTONKEY_Y || key=='y'; } int IsButtonBlack(int key) { return key==BUTTONKEY_BLACK || key=='b'; } int IsButtonWhite(int key) { return key==BUTTONKEY_WHITE || key=='w'; } int IsButtonSTART(int key) { return key==BUTTONKEY_START; } void FlashText(int frame) { if (frame == 0) { TweenTextColor(0.5,0.5,0.5,1, 1,1,1,1, 0.2); NextFrame(0.3); } else { TweenTextColor(1,1,1,1, 0.5,0.5,0.5,1, 0.2); NextFrame(0.2, 0); } } int NextShowItem(int list, int idx, int sel) { int show; Begin(list); int s = NumChildren(); int n = s; while (n-- > 0) { idx = idx + sel; if (idx < 0) idx = s - 1; else if (idx >= s) idx = 0; BeginChild(idx); show = IsShow(); End(); if (show) break; } End(); return idx; } int NewSimpleItem(int x, int y, int txtId, int txtSize, int width) { int id = NewUI(); Begin(id); Position(x-width/2, y); Begin(NewUI()); Number(txtSize); Size(width, txtSize*1.2); Font(1); Text(txtId); TextSize(txtSize); TextFlag(TEXT_ALIGN_CENTER_XY); TextColor(0,0,0); End(); // focus Begin(NewUI()); Number(txtSize); Size(width, txtSize*1.2); Image("brush2"); Color(1,1,1); Font(1); Text(txtId); TextSize(txtSize*1.1); TextFlag(TEXT_ALIGN_CENTER_XY); TextColor(1,1,1); EventHandler("OnAnimate", "FlashText"); End(); End(); return id; } int GetSimpleItemText(int id) { int txt = -1; Begin(id); BeginChild(1); txt=GetTextID(); End(); End(); return txt; } void SetSimpleItemText(int id, int txtId) { Begin(id); BeginChild(0); Text(txtId); End(); BeginChild(1); Text(txtId); End(); End(); } void SetSimpleItemTextW(int id, wstring s) { Begin(id); BeginChild(0); Text(s); End(); BeginChild(1); Text(s); End(); End(); } int SelectSimpleItem(int list, int idx) { Begin(list); int s = NumChildren(); if (idx < 0) idx = s-1; else if (idx >= s) idx = 0; int i; for (i=0; i= 0) { Begin(list); txtId = GetSimpleItemText(GetChild(idx)); End(); } return txtId; } int SelectNextSimpleItem(int list) { return SelectSimpleItem(list, NextShowItem(list, GetSelectedSimpleItemIndex(list), 1)); } int SelectPrevSimpleItem(int list) { return SelectSimpleItem(list, NextShowItem(list, GetSelectedSimpleItemIndex(list), -1)); } int SelectSubItem(int list, int idx) { Begin(list); int s = NumChildren(); if (idx < 0) idx = s-1; else if (idx >= s) idx = 0; int i; for (i=0; i= s) idx = 0; int i, j, k; for (i=0; i= s) idx = 0; for (i=0; i= s) itmIdx = 0; } else { if (itmIdx < 0) itmIdx = 0; else if (itmIdx >= s) itmIdx = s-1; } for (i=0; i> (direction * 8)) & 255; if (d < 0) return idx; return d; } int NewCaption(int txtId) { int id = NewUI(); Begin(id); Position(160, 65); Size(480, 50); Layer(5); Image("brush_big"); Color(0,0,0); Font(1); TextSize(30); TextColor(1,1,1); TextFlag(TEXT_ALIGN_CENTER_XY); Text(txtId); End(); return id; } int NewCaption2(int txtId) { int id = NewUI(); Begin(id); Position(200, 120); Size(400, 45); Layer(5); Image("brush_big"); Color(0,0,0); Font(1); TextSize(25); TextColor(1,1,1); TextFlag(TEXT_ALIGN_CENTER_XY); Text(txtId); End(); return id; } void FadeInCaption(int c) { BeginChild(c); TweenColor(0,0,0,0, 1,1,1,1, 0.5); TweenTextColor(1,1,1,0, 1,1,1,1, 0.5); End(); } int NewMsgBar(int text) { int id = NewUI(); Begin(id); Position(0, 524); Size(800, 24); Layer(20); AbsCoord(); Font(1); TextSize(24); TextColor(1,1,1); TextFlag(TEXT_ALIGN_CENTER | TEXT_MULTILINES | TEXT_SHADOW); Text(text); End(); return id; } int NewMsgBar2(int text) { int id = NewUI(); Begin(id); Position(0, 480); Size(800, 24); Layer(20); AbsCoord(); Font(1); TextSize(20); TextColor(1,1,1); TextFlag(TEXT_ALIGN_CENTER | TEXT_MULTILINES | TEXT_SHADOW); Text(text); End(); return id; } int NewMsgBar3(int text) { int id = NewUI(); Begin(id); Position(0, 360); Size(800, 24); Layer(20); AbsCoord(); Font(1); TextSize(20); TextColor(1,1,1); TextFlag(TEXT_ALIGN_CENTER | TEXT_MULTILINES | TEXT_SHADOW); Text(text); End(); return id; } void FadeInMsgBar(int c) { BeginChild(c); TweenTextColor(1,1,1,0, 1,1,1,1, 0.5); End(); } int NewSafeArea() { int id = NewUI(); Begin(id); Position(800*0.075, 600*0.075); Size(800*0.85, 600*0.85); BorderSize(1,1); BorderColor(1,1,0); End(); return id; } void FadeIn(float t) { Fade(0,0,0,0, 1,1,1,1, t, BLEND_MODE_MODULATE); } void FadeOut(float t) { Fade(1,1,1,1, 0,0,0,1, t, BLEND_MODE_MODULATE); } #include "UIScroll.cs" int NewDialog(string name, int text, int msgBar) { int id = NewUI(name); Begin(id); Position(400, 300); Font(1); TextColor(0,0,0); TextSize(20); TextFlag(TEXT_ALIGN_CENTER_XY | TEXT_MULTILINES); if (text >= 0) Text(text); if (msgBar >= 0) NewMsgBar3(msgBar); End(); return id; } void AnimateDialog(int scroll, int frame) { if (frame == 0) { Show(0); EnableInput(0); NextFrame(0.1); } else if (frame == 1) { ShowScroll(scroll, 5); NextFrame(0.1); } else if (frame == 2) { Show(); TweenTextColor(0,0,0,0, 0,0,0,1, 0.1); NextFrame(0.1); } else if (frame == 3) { EnableInput(1); } } wstring TrimLongText(wstring s, int maxLen) { if (wcslen(s) > maxLen) return subwcs(s, 0, maxLen) + L"..."; else return s; } int NewUITime(int x, int y, int size) { int id = NewUI(); Begin(id); Position(x, y); Begin(NewUI()); // minutes Font(1); TextSize(size); TextColor(1,1,1); TextFlag(TEXT_ALIGN_RIGHT | TEXT_SHADOW); Position(-size/2, 0); End(); Begin(NewUI()); // seconds Font(1); TextSize(size); TextColor(1,1,1); TextFlag(TEXT_SHADOW); Position(size/2, 0); End(); Begin(NewUI()); Font(1); TextSize(size); TextColor(1,1,1); TextFlag(TEXT_ALIGN_CENTER | TEXT_SHADOW); Text(":"); Position(0, -size/10); End(); End(); return id; } void SetUITime(int id, int sec) { if (sec < 0) sec = 0; Begin(id); BeginChild(0); Text(NumToStr("%02d", sec/60)); End(); BeginChild(1); Text(NumToStr("%02d", sec%60)); End(); End(); } int GetUpIndex(int idx, int max, int row) { int y = max; if (y > row) y = row; if (idx < row) { idx--; if (idx < 0) idx = y - 1; } else { idx--; if (idx < row) idx = max - 1; } return idx; } int GetDownIndex(int idx, int max, int row) { int y = max; if (y > row) y = row; if (idx < row) { idx++; if (idx >= y) idx = 0; } else { idx++; if (idx >= max) idx = row; } return idx; } int GetLeftIndex(int idx, int max, int row) { int y = max; if (y > row) y = row; if (idx < row) { if (max > row) { idx = idx + row; if (idx >= max) idx = max-1; } } else { if (max > row) idx = idx - row; } return idx; }