void EventSelectInit () { Winsys.ShowCursor (!param.ice_cursor); EventList = Events.EventList; curr_event = 0; last_event = Events.numEvents - 1; CupList = Events.CupList; curr_cup = 0; last_cup = EventList[curr_event].num_cups - 1; curr_focus = 1; framewidth = 500 * param.scale; frameheight = 50 * param.scale; area = AutoAreaN (30, 80, framewidth); frametop1 = AutoYPosN (35); frametop2 = AutoYPosN (50); ResetWidgets (); AddArrow (area.right+8, frametop1, 0, 0); AddArrow (area.right+8, frametop1+18, 1, 0); AddArrow (area.right+8, frametop2, 0, 1); AddArrow (area.right+8, frametop2+18, 1, 1); int siz = FT.AutoSizeN (5); double len = FT.GetTextWidth (Trans.Text(9)); AddTextButton (Trans.Text(9), area.right-len-50, AutoYPosN (70), 2, siz); AddTextButton (Trans.Text(8), area.left+50, AutoYPosN (70), 3, siz); Events.MakeUnlockList (Players.GetCurrUnlocked()); Music.Play (param.menu_music, -1); g_game.loopdelay = 20; }
void CScore::Enter() { Winsys.ShowCursor (!param.ice_cursor); Winsys.KeyRepeat (true); Music.Play (param.menu_music, -1); framewidth = 550 * Winsys.scale; frameheight = 50 * Winsys.scale; frametop = AutoYPosN (32); area = AutoAreaN (30, 80, framewidth); FT.AutoSizeN (3); linedist = FT.AutoDistanceN (1); listtop = AutoYPosN (44); dd1 = 50 * Winsys.scale; dd2 = 115 * Winsys.scale; dd3 = 250 * Winsys.scale; dd4 = 375 * Winsys.scale; CourseList = &Course.CourseList[0]; ResetGUI (); course = AddUpDown(area.right + 8, frametop, 0, (int)Course.CourseList.size()-1, 0); int siz = FT.AutoSizeN (5); textbutton = AddTextButton (Trans.Text(64), CENTER, AutoYPosN (80), siz); g_game.loopdelay = 1; }
void RegistLoop (double timestep ){ int ww = param.x_resolution; int hh = param.y_resolution; Music.Update (); check_gl_error(); ClearRenderContext (); set_gl_options (GUI); SetupGuiDisplay (); TColor col; update_ui_snow (timestep); draw_ui_snow(); Tex.Draw (BOTTOM_LEFT, 0, hh - 256, 1); Tex.Draw (BOTTOM_RIGHT, ww-256, hh-256, 1); Tex.Draw (TOP_LEFT, 0, 0, 1); Tex.Draw (TOP_RIGHT, ww-256, 0, 1); Tex.Draw (T_TITLE_SMALL, CENTER, AutoYPosN (5), scale); // DrawFrameX (area.left, area.top, area.right-area.left, area.bottom - area.top, // 0, colMBackgr, col, 0.2); FT.AutoSizeN (3); FT.SetColor (colWhite); int top = AutoYPosN (24); FT.DrawString (area.left, top, "Select your player name:"); FT.DrawString (area.left + framewidth + arrowwidth, top, "Select a character:"); FT.AutoSizeN (4); if (curr_focus == 0) col = colDYell; else col = colWhite; DrawFrameX (area.left, area.top, framewidth, frameheight, 3, colMBackgr, col, 1.0); FT.SetColor (col); FT.DrawString (area.left + 20, area.top, Players.GetName (curr_player)); Tex.DrawDirectFrame (Players.GetAvatarID (curr_player), area.left + 60, AutoYPosN (40), texsize, texsize, 3, colWhite); if (curr_focus == 1) col = colDYell; else col = colWhite; DrawFrameX (area.left + framewidth + arrowwidth, area.top, framewidth, frameheight, 3, colMBackgr, col, 1.0); FT.SetColor (col); FT.DrawString (area.left + framewidth + arrowwidth + 20, area.top, CharList[curr_character].name); Tex.DrawDirectFrame (CharList[curr_character].preview, area.right - texsize - 60 - arrowwidth, AutoYPosN (40), texsize, texsize, 3, colWhite); FT.SetColor (colWhite); PrintArrow (0, (curr_player > 0)); PrintArrow (1, (curr_player < last_player)); PrintArrow (2, (curr_character > 0)); PrintArrow (3, (curr_character < last_character)); PrintTextButton (0, curr_focus); PrintTextButton (1, curr_focus); if (param.ice_cursor) DrawCursor (); Winsys.SwapBuffers(); }
void CGameConfig::Enter() { Winsys.ShowCursor (!param.ice_cursor); Winsys.KeyRepeat (true); for (int i=0; i<NUM_RESOLUTIONS; i++) res_names[i] = Winsys.GetResName (i); int framewidth = 550 * Winsys.scale; area = AutoAreaN (30, 80, framewidth); FT.AutoSizeN (4); dd = FT.AutoDistanceN (3); if (dd < 36) dd = 36; int rightpos = area.right -48; ResetGUI (); #ifndef PANDORA fullscreen = AddCheckbox (area.left, area.top, framewidth-16, Trans.Text(31)); fullscreen->checked = param.fullscreen; resolution = AddUpDown(rightpos, area.top+dd*1, 0, NUM_RESOLUTIONS-1, (int)param.res_type); #endif mus_vol = AddUpDown(rightpos, area.top+dd*2, 0, 120, param.music_volume); sound_vol = AddUpDown(rightpos, area.top+dd*3, 0, 120, param.sound_volume); detail_level = AddUpDown(rightpos, area.top+dd*4, 1, 4, param.perf_level); language = AddUpDown(rightpos, area.top+dd*5, 0, (int)Trans.languages.size() - 1, (int)param.language); int siz = FT.AutoSizeN (5); textbuttons[0] = AddTextButton (Trans.Text(28), area.left+50, AutoYPosN (80), siz); ETR_DOUBLE len = FT.GetTextWidth (Trans.Text(8)); textbuttons[1] = AddTextButton (Trans.Text(15), area.right-len-50, AutoYPosN (80), siz); Music.Play (param.config_music, -1); }
void RegistInit (void) { Winsys.ShowCursor (!param.ice_cursor); init_ui_snow (); Music.Play (param.menu_music, -1); scale = param.scale; framewidth = (int)(scale * 280); frameheight = (int)(scale * 50); arrowwidth = 50; sumwidth = framewidth * 2 + arrowwidth * 2; area = AutoAreaN (30, 80, sumwidth); texsize = 128 * scale; ResetWidgets (); AddArrow (area.left + framewidth + 8, area.top, 0, 0); AddArrow (area.left + framewidth + 8, area.top + 18, 1, 0); AddArrow (area.left + framewidth * 2 + arrowwidth + 8, area.top, 0, 1); AddArrow (area.left + framewidth * 2 + arrowwidth + 8, area.top + 18, 1, 1); int siz = FT.AutoSizeN (5); AddTextButton ("Enter", CENTER, AutoYPosN (62), 2, siz); AddTextButton ("Register a new player", CENTER, AutoYPosN (70), 3, siz); curr_focus = 0; g_game.loopdelay = 10; CharList = Char.CharList; last_character = Char.numCharacters - 1; last_player = Players.numPlayers - 1; if (g_game.prev_mode == NEWPLAYER && old_last != last_player) { curr_player = last_player; } else curr_player = g_game.start_player; }
void CHelp::Loop(double timestep) { Music.Update (); check_gl_error(); ClearRenderContext (); ScopedRenderMode rm(GUI); SetupGuiDisplay (); if (param.ui_snow) { update_ui_snow (timestep); draw_ui_snow(); } FT.AutoSizeN (4); FT.SetColor (colWhite); FT.DrawString (xleft1, AutoYPosN (5), Trans.Text (57)); FT.AutoSizeN (3); int offs = FT.AutoDistanceN (2); FT.DrawString (xleft1, ytop, Trans.Text(44)); FT.DrawString (xleft1, ytop + offs, Trans.Text(45)); FT.DrawString (xleft1, ytop + offs * 2, Trans.Text(46)); FT.DrawString (xleft1, ytop + offs * 3, Trans.Text(47)); FT.DrawString (xleft1, ytop + offs * 4, Trans.Text(48)); FT.DrawString (xleft1, ytop + offs * 5, Trans.Text(49)); FT.DrawString (xleft1, ytop + offs * 6, Trans.Text(50)); FT.DrawString (xleft1, ytop + offs * 7, Trans.Text(51)); FT.DrawString (xleft1, ytop + offs * 8,Trans.Text(52)); FT.DrawString (xleft1, ytop + offs * 9, Trans.Text(53)); FT.DrawString (xleft1, ytop + offs * 10, Trans.Text(54)); FT.DrawString (xleft1, ytop + offs * 11, Trans.Text(55)); FT.DrawString (xleft1, ytop + offs * 12, Trans.Text(56)); FT.DrawString (CENTER, AutoYPosN (90), Trans.Text(65)); Winsys.SwapBuffers(); }
void CEventSelect::Enter () { Winsys.ShowCursor (!param.ice_cursor); EventList = &Events.EventList[0]; CupList = &Events.CupList[0]; framewidth = 500 * Winsys.scale; frameheight = 50 * Winsys.scale; area = AutoAreaN (30, 80, framewidth); frametop1 = AutoYPosN (35); frametop2 = AutoYPosN (50); ResetGUI(); event = AddUpDown(area.right+8, frametop1, 0, (int)Events.EventList.size() - 1, 0); cup = AddUpDown(area.right+8, frametop2, 0, (int)EventList[0].cups.size() - 1, 0); int siz = FT.AutoSizeN (5); double len = FT.GetTextWidth (Trans.Text(9)); textbuttons[0] = AddTextButton (Trans.Text(9), area.right-len-50, AutoYPosN (70), siz); textbuttons[1] = AddTextButton (Trans.Text(8), area.left+50, AutoYPosN (70), siz); SetFocus(textbuttons[1]); Events.MakeUnlockList (Players.GetCurrUnlocked()); Music.Play (param.menu_music, -1); g_game.loopdelay = 20; }
void CLoading::Loop(float time_step) { ScopedRenderMode rm(GUI); Winsys.clear(); if (param.ui_snow) { update_ui_snow(time_step); draw_ui_snow(); } sf::Sprite logo(Tex.GetSFTexture(TEXLOGO)); logo.setScale(0.35f, 0.35f); logo.setPosition((Winsys.resolution.width - logo.getTextureRect().width*0.35f) / 2, 40); Winsys.draw(logo); DrawGUIFrame(); FT.SetColor(colDYell); FT.AutoSizeN(5); FT.DrawString(CENTER, AutoYPosN(60), Trans.Text(29) + " '" + g_game.course->name + '\''); FT.SetColor(colWhite); FT.DrawString(CENTER, AutoYPosN(70), Trans.Text(30)); Winsys.SwapBuffers(); Course.LoadCourse(g_game.course); g_game.location_id = Course.GetEnv(); Env.LoadEnvironment(g_game.location_id, g_game.light_id); State::manager.RequestEnterState(Intro); }
void CGameConfig::Enter() { Winsys.ShowCursor (!param.ice_cursor); Winsys.KeyRepeat (true); for (int i=0; i<NUM_RESOLUTIONS; i++) res_names[i] = Winsys.GetResName (i); int framewidth = 500 * Winsys.scale; area = AutoAreaN (Winsys.resolution.width < Winsys.resolution.height ? 30 : 12, 80, framewidth); FT.AutoSizeN (4); dd = FT.AutoDistanceN (4); if (dd < 36) dd = 36; int rightpos = area.right -96; ResetGUI (); vid_orient = AddUpDown(rightpos, area.top, 0, 3, param.orient); sensit = AddUpDown(rightpos, area.top + dd, 1, 20, param.sensit); mus_vol = AddUpDown(rightpos, area.top + dd * 2, 0, 120, param.music_volume); sound_vol = AddUpDown(rightpos, area.top + dd * 3, 0, 120, param.sound_volume); detail_level = AddUpDown(rightpos, area.top + dd * 4, 1, 4, param.perf_level); language = AddUpDown(rightpos, area.top + dd * 5, 0, (int)Trans.languages.size() - 1, (int)param.language); int siz = FT.AutoSizeN (5); textbuttons[0] = AddTextButton (Trans.Text(28), area.left+50, AutoYPosN (80), siz); ETR_DOUBLE len = FT.GetTextWidth (Trans.Text(15)); textbuttons[1] = AddTextButton (Trans.Text(15), area.right-len-50, AutoYPosN (80), siz); Music.Play (param.config_music, -1); }
void CScore::Loop (double timestep) { int ww = Winsys.resolution.width; int hh = Winsys.resolution.height; Music.Update (); check_gl_error(); ClearRenderContext (); ScopedRenderMode rm(GUI); SetupGuiDisplay (); if (param.ui_snow) { update_ui_snow (timestep); draw_ui_snow(); } Tex.Draw (BOTTOM_LEFT, 0, hh - 256, 1); Tex.Draw (BOTTOM_RIGHT, ww-256, hh-256, 1); Tex.Draw (TOP_LEFT, 0, 0, 1); Tex.Draw (TOP_RIGHT, ww-256, 0, 1); Tex.Draw (T_TITLE_SMALL, CENTER, AutoYPosN (5), Winsys.scale); // DrawFrameX (area.left, area.top, area.right-area.left, area.bottom - area.top, // 0, colMBackgr, colBlack, 0.2); FT.AutoSizeN (7); FT.SetColor (colWhite); FT.DrawString (CENTER, AutoYPosN (22), Trans.Text(62)); DrawFrameX (area.left, frametop, framewidth, frameheight, 3, colMBackgr, colDYell, 1.0); FT.AutoSizeN (5); FT.SetColor (colWhite); FT.DrawString (area.left+20, frametop, CourseList[course->GetValue()].name); const TScoreList *list = Score.GetScorelist (course->GetValue()); FT.SetColor (colWhite); if (list != NULL) { FT.AutoSizeN (3); if (list->numScores < 1) { FT.DrawString (CENTER, area.top + 140, Trans.Text(63)); } else { for (int i=0; i<min(MAX_SCORES, list->numScores); i++) { int y = listtop + i*linedist; FT.DrawString (area.left, y, ordinals[i]); FT.DrawString (area.left + dd1, y, Int_StrN (list->scores[i].points)); FT.DrawString (area.left + dd2, y, list->scores[i].player); FT.DrawString (area.left + dd3, y, Int_StrN (list->scores[i].herrings) + " herrings"); FT.DrawString (area.left + dd4, y, Float_StrN (list->scores[i].time, 1) + " sec"); } } } else Message ("score list out of range"); DrawGUI(); Winsys.SwapBuffers(); }
void EventSelectLoop (double timestep) { int ww = param.x_resolution; int hh = param.y_resolution; TColor col; check_gl_error(); set_gl_options (GUI ); Music.Update (); ClearRenderContext (); SetupGuiDisplay (); if (param.ui_snow) { update_ui_snow (timestep); draw_ui_snow (); } Tex.Draw (T_TITLE_SMALL, CENTER, AutoYPosN (5), param.scale); Tex.Draw (BOTTOM_LEFT, 0, hh-256, 1); Tex.Draw (BOTTOM_RIGHT, ww-256, hh-256, 1); Tex.Draw (TOP_LEFT, 0, 0, 1); Tex.Draw (TOP_RIGHT, ww-256, 0, 1); // DrawFrameX (area.left, area.top, area.right-area.left, area.bottom - area.top, // 0, colMBackgr, colBlack, 0.2); FT.AutoSizeN (3); FT.SetColor (colWhite); FT.DrawString (area.left, AutoYPosN (30), Trans.Text (6)); FT.DrawString (area.left,AutoYPosN (45), Trans.Text (7)); if (Events.IsUnlocked (curr_event, curr_cup) == false) { FT.SetColor (colLGrey); FT.DrawString (CENTER, AutoYPosN (58), Trans.Text (10)); } FT.AutoSizeN (4); if (curr_focus == 0) col = colDYell; else col = colWhite; DrawFrameX (area.left, frametop1, framewidth, frameheight, 3, colMBackgr, col, 1.0); FT.SetColor (colDYell); FT.DrawString (area.left + 20, frametop1, EventList[curr_event].name); if (curr_focus == 1) col = colDYell; else col = colWhite; DrawFrameX (area.left, frametop2, framewidth, frameheight, 3, colMBackgr, col, 1.0); if (Events.IsUnlocked (curr_event, curr_cup)) FT.SetColor (colDYell); else FT.SetColor (colLGrey); FT.DrawString (area.left + 20, frametop2, Events.GetCupTrivialName (curr_event, curr_cup)); PrintArrow (0, (curr_event > 0)); PrintArrow (1, (curr_event < last_event)); PrintArrow (2, (curr_cup > 0)); PrintArrow (3, (curr_cup < last_cup)); if (Events.IsUnlocked (curr_event, curr_cup)) PrintTextButton (0, curr_focus); PrintTextButton (1, curr_focus); if (param.ice_cursor) DrawCursor (); SDL_GL_SwapBuffers (); }
TArea AutoAreaN (ETR_DOUBLE top_perc, ETR_DOUBLE bott_perc, int w) { TArea res; res.top = AutoYPosN (top_perc); res.bottom = AutoYPosN (bott_perc); if (w > Winsys.resolution.width) w = Winsys.resolution.width; res.left = (Winsys.resolution.width - w) / 2; res.right = Winsys.resolution.width - res.left; return res; }
void CEventSelect::Loop (double timestep) { int ww = Winsys.resolution.width; int hh = Winsys.resolution.height; TColor col; check_gl_error(); ScopedRenderMode rm(GUI); Music.Update (); ClearRenderContext (); SetupGuiDisplay (); if (param.ui_snow) { update_ui_snow (timestep); draw_ui_snow (); } Tex.Draw (T_TITLE_SMALL, CENTER, AutoYPosN (5), Winsys.scale); Tex.Draw (BOTTOM_LEFT, 0, hh-256, 1); Tex.Draw (BOTTOM_RIGHT, ww-256, hh-256, 1); Tex.Draw (TOP_LEFT, 0, 0, 1); Tex.Draw (TOP_RIGHT, ww-256, 0, 1); // DrawFrameX (area.left, area.top, area.right-area.left, area.bottom - area.top, // 0, colMBackgr, colBlack, 0.2); FT.AutoSizeN (3); FT.SetColor (colWhite); FT.DrawString (area.left, AutoYPosN (30), Trans.Text (6)); FT.DrawString (area.left,AutoYPosN (45), Trans.Text (7)); if (Events.IsUnlocked (event->GetValue(), cup->GetValue()) == false) { FT.SetColor (colLGrey); FT.DrawString (CENTER, AutoYPosN (58), Trans.Text (10)); } FT.AutoSizeN (4); if (event->focussed()) col = colDYell; else col = colWhite; DrawFrameX (area.left, frametop1, framewidth, frameheight, 3, colMBackgr, col, 1.0); FT.SetColor (colDYell); FT.DrawString (area.left + 20, frametop1, EventList[event->GetValue()].name); if (cup->focussed()) col = colDYell; else col = colWhite; DrawFrameX (area.left, frametop2, framewidth, frameheight, 3, colMBackgr, col, 1.0); if (Events.IsUnlocked (event->GetValue(), cup->GetValue())) FT.SetColor (colDYell); else FT.SetColor (colLGrey); FT.DrawString (area.left + 20, frametop2, Events.GetCupTrivialName (event->GetValue(), cup->GetValue())); textbuttons[0]->SetActive(Events.IsUnlocked (event->GetValue(), cup->GetValue())); DrawGUI(); Winsys.SwapBuffers(); }
void GameConfigInit (void) { Winsys.ShowCursor (!param.ice_cursor); Winsys.KeyRepeat (true); init_ui_snow (); LangList = Trans.languages; lastLang = Trans.numLanguages - 1; SDL_Surface *surf = 0; surf = SDL_GetVideoSurface (); for (int i=0; i<NUM_RESOLUTIONS; i++) res_names[i] = Winsys.GetResName (i); paramchanged = false; // read the start params: curr_res = param.res_type; prev_res = param.res_type; curr_fullscreen = param.fullscreen; prev_fullscreen = param.fullscreen; curr_mus_vol = param.music_volume; curr_sound_vol = param.sound_volume; curr_detail_level = param.perf_level; curr_language = param.language; if (curr_language > lastLang) curr_language = lastLang; framewidth = 550 * param.scale; frameheight = 50 * param.scale; area = AutoAreaN (30, 80, framewidth); FT.AutoSizeN (4); dd = FT.AutoDistanceN (3); if (dd < 36) dd = 36; rightpos = area.right -48; ResetWidgets (); AddCheckbox (area.left, area.top, 0, framewidth-16, Trans.Text(31)); AddArrow (rightpos, area.top+dd*1, 0, 1); AddArrow (rightpos, area.top+dd*1+18, 1, 1); AddArrow (rightpos, area.top+dd*2, 0, 2); AddArrow (rightpos, area.top+dd*2+18, 1, 2); AddArrow (rightpos, area.top+dd*3, 0, 3); AddArrow (rightpos, area.top+dd*3+18, 1, 3); AddArrow (rightpos, area.top+dd*4, 0, 4); AddArrow (rightpos, area.top+dd*4+18, 1, 4); AddArrow (rightpos, area.top+dd*5, 0, 5); AddArrow (rightpos, area.top+dd*5+18, 1, 5); int siz = FT.AutoSizeN (5); AddTextButton (Trans.Text(28), area.left+50, AutoYPosN (80), 6, siz); double len = FT.GetTextWidth (Trans.Text(8)); AddTextButton (Trans.Text(15), area.right-len-50, AutoYPosN (80), 7, siz); curr_focus = 0; Music.Play (param.config_music, -1); }
void CRegist::Loop (double timestep) { int ww = Winsys.resolution.width; int hh = Winsys.resolution.height; Music.Update (); check_gl_error(); ClearRenderContext (); ScopedRenderMode rm(GUI); SetupGuiDisplay (); TColor col; if (param.ui_snow) { update_ui_snow (timestep); draw_ui_snow(); } Tex.Draw (BOTTOM_LEFT, 0, hh - 256, 1); Tex.Draw (BOTTOM_RIGHT, ww-256, hh-256, 1); Tex.Draw (TOP_LEFT, 0, 0, 1); Tex.Draw (TOP_RIGHT, ww-256, 0, 1); Tex.Draw (T_TITLE_SMALL, CENTER, AutoYPosN (5), scale); // DrawFrameX (area.left, area.top, area.right-area.left, area.bottom - area.top, // 0, colMBackgr, col, 0.2); FT.AutoSizeN (3); FT.SetColor (colWhite); int top = AutoYPosN (24); FT.DrawString (area.left, top, Trans.Text(58)); FT.DrawString (area.left + framewidth + arrowwidth, top, Trans.Text(59)); FT.AutoSizeN (4); if (player->focussed()) col = colDYell; else col = colWhite; DrawFrameX (area.left, area.top, framewidth, frameheight, 3, colMBackgr, col, 1.0); FT.SetColor (col); FT.DrawString (area.left + 20, area.top, Players.GetName (player->GetValue())); Players.GetAvatarTexture(player->GetValue())->DrawFrame( area.left + 60, AutoYPosN (40), texsize, texsize, 3, colWhite); if (character->focussed()) col = colDYell; else col = colWhite; DrawFrameX (area.left + framewidth + arrowwidth, area.top, framewidth, frameheight, 3, colMBackgr, col, 1.0); FT.SetColor (col); FT.DrawString (area.left + framewidth + arrowwidth + 20, area.top, Char.CharList[character->GetValue()].name); if(Char.CharList[character->GetValue()].preview != NULL) Char.CharList[character->GetValue()].preview->DrawFrame( area.right - texsize - 60 - arrowwidth, AutoYPosN (40), texsize, texsize, 3, colWhite); FT.SetColor (colWhite); DrawGUI(); Winsys.SwapBuffers(); }
void CNewPlayer::Loop(float timestep) { sf::Color col; ScopedRenderMode rm(GUI); Winsys.clear(); if (param.ui_snow) { update_ui_snow(timestep); draw_ui_snow(); } textfield->UpdateCursor(timestep); DrawGUIBackground(Winsys.scale); FT.SetColor(colWhite); FT.AutoSizeN(4); FT.DrawString(CENTER, AutoYPosN(30), Trans.Text(66)); if (avatar->focussed()) col = colDYell; else col = colWhite; Players.GetAvatarTexture(avatar->GetValue())->DrawFrame( prevleft, prevtop, prevwidth, prevwidth, 2, col); DrawGUI(); Winsys.SwapBuffers(); }
static void GameSelectLoop (double time_step) { int ww = param.x_resolution; int hh = param.y_resolution; check_gl_error(); Music.Update (); set_gl_options (GUI); ClearRenderContext (); SetupGuiDisplay (); if (param.ui_snow) { update_ui_snow (time_step); draw_ui_snow(); } Tex.Draw (T_TITLE, CENTER, AutoYPosN (5), param.scale); Tex.Draw (BOTTOM_LEFT, 0, hh-256, 1); Tex.Draw (BOTTOM_RIGHT, ww-256, hh-256, 1); Tex.Draw (TOP_LEFT, 0, 0, 1); Tex.Draw (TOP_RIGHT, ww-256, 0, 1); PrintTextButton (0, scope); PrintTextButton (1, scope); PrintTextButton (2, scope); PrintTextButton (3, scope); PrintTextButton (4, scope); PrintTextButton (5, scope); PrintTextButton (6, scope); if (param.ice_cursor) DrawCursor (); Reshape (ww, hh); Winsys.SwapBuffers (); }
void CCredits::Loop(double time_step) { int ww = Winsys.resolution.width; int hh = Winsys.resolution.height; Music.Update (); check_gl_error(); ClearRenderContext (); ScopedRenderMode rm(GUI); SetupGuiDisplay (); // DrawBackLogo (-1, AutoYPos (200), 1.0); DrawCreditsText (time_step); if (param.ui_snow) { update_ui_snow (time_step); draw_ui_snow(); } Tex.Draw (BOTTOM_LEFT, 0, hh-256, 1); Tex.Draw (BOTTOM_RIGHT, ww-256, hh-256, 1); Tex.Draw (TOP_LEFT, 0, 0, 1); Tex.Draw (TOP_RIGHT, ww-256, 0, 1); Tex.Draw (T_TITLE_SMALL, CENTER, AutoYPosN (5), Winsys.scale); Reshape (ww, hh); Winsys.SwapBuffers(); }
void CHelp::Enter() { Winsys.ShowCursor (false); Music.Play (param.credits_music, -1); xleft1 = 40; xleft2 = (int)(Winsys.resolution.width / 2) + 20; ytop = AutoYPosN (15); }
void CEventSelect::Enter() { Winsys.ShowCursor(!param.ice_cursor); int framewidth = 500 * Winsys.scale; int frameheight = 50 * Winsys.scale; TArea area = AutoAreaN(30, 80, framewidth); int frametop1 = AutoYPosN(35); int frametop2 = AutoYPosN(50); ResetGUI(); event = AddUpDown(area.right+8, frametop1, 0, (int)Events.EventList.size() - 1, 0); cup = AddUpDown(area.right + 8, frametop2, 0, (int)Events.EventList[0].cups.size() - 1, 0); unsigned int siz = FT.AutoSizeN(5); float len = FT.GetTextWidth(Trans.Text(9)); textbuttons[0] = AddTextButton(Trans.Text(9), area.right-len-50, AutoYPosN(70), siz); textbuttons[1] = AddTextButton(Trans.Text(8), area.left+50, AutoYPosN(70), siz); SetFocus(textbuttons[0]); FT.AutoSizeN(3); selectEvent = AddLabel(Trans.Text(6), area.left, AutoYPosN(30), colWhite); selectCup = AddLabel(Trans.Text(7), area.left, AutoYPosN(45), colWhite); cupLocked = AddLabel(Trans.Text(10), CENTER, AutoYPosN(58), colLGrey); FT.AutoSizeN(4); selectedEvent = AddFramedText(area.left, frametop1, framewidth, frameheight, 3, colMBackgr, "", FT.GetSize(), true); selectedCup = AddFramedText(area.left, frametop2, framewidth, frameheight, 3, colMBackgr, "", FT.GetSize(), true); Events.MakeUnlockList(g_game.player->funlocked); Music.Play(param.menu_music, true); }
void EventInit () { Winsys.ShowCursor (!param.ice_cursor); if (g_game.prev_mode == GAME_OVER) UpdateCupRacing (); else InitCupRacing (); framewidth = 500; frametop = AutoYPosN (45); area = AutoAreaN (30, 80, framewidth); messtop = AutoYPosN (50); messtop2 = AutoYPosN (60); bonustop = AutoYPosN (35); texsize = 32 * param.scale; if (texsize < 32) texsize = 32; dist = texsize + 2 * 4; framebottom = frametop + ecup->num_races * dist + 10; ResetWidgets (); int siz = FT.AutoSizeN (5); AddTextButton (Trans.Text(8), area.left + 100, AutoYPosN (80), 1, siz); double len = FT.GetTextWidth (Trans.Text(13)); AddTextButton (Trans.Text(13), area.right -len - 100, AutoYPosN (80), 0, siz); AddTextButton (Trans.Text(15), CENTER, AutoYPosN (80), 2, siz); Music.Play (param.menu_music, -1); if (ready < 1) curr_focus = 0; else curr_focus = 2; g_game.loopdelay = 20; }
void CEvent::Enter () { Winsys.ShowCursor (!param.ice_cursor); if (State::manager.PreviousState() == &GameOver) UpdateCupRacing (); else InitCupRacing (); framewidth = 500; frametop = AutoYPosN (45); area = AutoAreaN (30, 80, framewidth); messtop = AutoYPosN (50); messtop2 = AutoYPosN (60); bonustop = AutoYPosN (35); texsize = 32 * Winsys.scale; if (texsize < 32) texsize = 32; dist = texsize + 2 * 4; framebottom = frametop + (int)ecup->races.size() * dist + 10; ResetGUI (); int siz = FT.AutoSizeN (5); textbuttons[1] = AddTextButton (Trans.Text(8), area.left + 100, AutoYPosN (80), siz); double len = FT.GetTextWidth (Trans.Text(13)); textbuttons[0] = AddTextButton (Trans.Text(13), area.right -len - 100, AutoYPosN (80), siz); textbuttons[2] = AddTextButton (Trans.Text(15), CENTER, AutoYPosN (80), siz); Music.Play (param.menu_music, -1); if (ready < 1) curr_focus = textbuttons[0]; else curr_focus = textbuttons[2]; g_game.loopdelay = 20; }
void CNewPlayer::Loop() { int ww = Winsys.resolution.width; int hh = Winsys.resolution.height; TColor col; Music.Update (); check_gl_error(); ClearRenderContext (); ScopedRenderMode rm(GUI); SetupGuiDisplay (); if (param.ui_snow) { update_ui_snow (); draw_ui_snow(); } textfield->UpdateCursor(); // DrawFrameX (area.left, area.top, area.right-area.left, area.bottom - area.top, // 0, colMBackgr, col, 0.2); Tex.Draw (BOTTOM_LEFT, 0, hh - 256, 1); Tex.Draw (BOTTOM_RIGHT, ww-256, hh-256, 1); Tex.Draw (TOP_LEFT, 0, 0, 1); Tex.Draw (TOP_RIGHT, ww-256, 0, 1); Tex.Draw (T_TITLE_SMALL, CENTER, AutoYPosN (5), Winsys.scale); FT.SetColor (colWhite); FT.AutoSizeN (4); FT.DrawString (CENTER, AutoYPosN (30), Trans.Text(66)); if (avatar->focussed()) col = colDYell; else col = colWhite; Players.GetAvatarTexture(avatar->GetValue())->DrawFrame( prevleft, prevtop, prevwidth, prevwidth, 2, col); DrawGUI(); Winsys.SwapBuffers(); }
void CRegist::Enter (void) { Winsys.ShowCursor (!param.ice_cursor); Music.Play (param.menu_music, -1); scale = Winsys.scale; framewidth = (int)(scale * 280); frameheight = (int)(scale * 50); arrowwidth = 50; sumwidth = framewidth * 2 + arrowwidth * 2; area = AutoAreaN (30, 80, sumwidth); texsize = 128 * scale; ResetGUI (); player = AddUpDown(area.left + framewidth + 8, area.top, 0, (int)Players.numPlayers() - 1, (int)g_game.start_player); character = AddUpDown(area.left + framewidth * 2 + arrowwidth + 8, area.top, 0, (int)Char.CharList.size() - 1, 0); int siz = FT.AutoSizeN (5); textbuttons[0] = AddTextButton (Trans.Text(60), CENTER, AutoYPosN (62), siz); textbuttons[1] = AddTextButton (Trans.Text(61), CENTER, AutoYPosN (70), siz); g_game.loopdelay = 10; if(Char.CharList.empty()) Winsys.Terminate(); // Characters are necessary - ETR is unusable otherwise }
void CNewPlayer::Enter() { Winsys.ShowCursor(!param.ice_cursor); Music.Play(param.menu_music, true); int framewidth = 400 * Winsys.scale; int frameheight = 50 * Winsys.scale; int frametop = AutoYPosN(38); TArea area = AutoAreaN(30, 80, framewidth); int prevoffs = 80; prevleft = area.left + prevoffs; prevtop = AutoYPosN(52); prevwidth = 75 * Winsys.scale; ResetGUI(); avatar = AddUpDown(area.left + prevwidth + prevoffs + 8, prevtop, 0, (int)Players.numAvatars() - 1, 0, prevwidth - 34); int siz = FT.AutoSizeN(5); textbuttons[0] = AddTextButton(Trans.Text(8), area.left+50, AutoYPosN(70), siz); float len = FT.GetTextWidth(Trans.Text(15)); textbuttons[1] = AddTextButton(Trans.Text(15), area.right-len-50, AutoYPosN(70), siz); textfield = AddTextField(emptyString, area.left, frametop, framewidth, frameheight); }
void CRaceSelect::Enter() { Winsys.ShowCursor (!param.ice_cursor); Music.Play (param.menu_music, -1); CourseList = &Course.CourseList[0]; framewidth = 520 * Winsys.scale; frameheight = 50 * Winsys.scale; frametop = AutoYPosN (Winsys.resolution.width > Winsys.resolution.height ? 10 : 30); area = AutoAreaN (Winsys.resolution.width > Winsys.resolution.height ? 10 : 30, 80, framewidth); prevtop = AutoYPosN (Winsys.resolution.width > Winsys.resolution.height ? 40 : 50); prevheight = 144 * Winsys.scale; prevwidth = 192 * Winsys.scale; boxwidth = framewidth - prevwidth - 20; boxleft = area.right - boxwidth; int icontop = AutoYPosN(Winsys.resolution.width > Winsys.resolution.height ? 25 : 40); int iconsize = 48 * Winsys.scale; int iconspace = (int) ((iconsize + 6) * 1.5); int iconsumwidth = iconspace * 4 + iconsize; int iconleft = (Winsys.resolution.width - iconsumwidth) / 2; ResetGUI (); course = AddUpDown(area.left + framewidth - 90, frametop, 0, (int)Course.CourseList.size() - 1, g_game.course?(int)Course.GetCourseIdx(g_game.course):0); light = AddIconButton (iconleft, icontop, Tex.GetTexture (LIGHT_BUTT), iconsize, 3, (int)g_game.light_id); snow = AddIconButton (iconleft + iconspace, icontop, Tex.GetTexture (SNOW_BUTT), iconsize, 3, g_game.snow_id); wind = AddIconButton (iconleft + iconspace*2, icontop, Tex.GetTexture (WIND_BUTT), iconsize, 3, g_game.wind_id); mirror = AddIconButton (iconleft + iconspace*3, icontop, Tex.GetTexture (MIRROR_BUTT), iconsize, 1, (int)g_game.mirrorred); random_btn = AddIconButton (iconleft + iconspace*4, icontop, Tex.GetTexture (RANDOM_BUTT), iconsize, 0, 0); int siz = FT.AutoSizeN (5); int len1 = FT.GetTextWidth (Trans.Text(13)); textbuttons[0] = AddTextButton (Trans.Text(13), area.right-len1-50, AutoYPosN (80), siz); textbuttons[1] = AddTextButton (Trans.Text(8), area.left + 50, AutoYPosN (80), siz); }
static void GameSelectInit (void) { Winsys.ShowCursor (!param.ice_cursor); init_ui_snow (); scope = 0; ResetWidgets (); int top = AutoYPosN (40); int siz = FT.AutoSizeN (6); int dist = FT.AutoDistanceN (2); AddTextButton (Trans.Text(1), CENTER, top, 0, siz); AddTextButton (Trans.Text(2), CENTER, top + dist, 1, siz); AddTextButton (Trans.Text(3), CENTER, top + dist * 2, 2, siz); AddTextButton (Trans.Text(4), CENTER, top + dist * 5, 5, siz); AddTextButton (Trans.Text(43), CENTER, top + dist * 4, 4, siz); AddTextButton ("Highscore list", CENTER, top + dist * 3, 3, siz); AddTextButton (Trans.Text(5), CENTER, top + dist * 6, 6, siz); Music.Play (param.menu_music, -1); g_game.loopdelay = 10; }
void SplashLoop (double /*timestep*/){ Music.Update (); check_gl_error(); ClearRenderContext (); set_gl_options (GUI); SetupGuiDisplay (); // FT.SetFont ("normal"); Tex.Draw (TEXLOGO, CENTER, 60, param.scale); FT.SetColor (colDYell); FT.AutoSizeN (6); int top = AutoYPosN (60); int dist = FT.AutoDistanceN (3); FT.DrawText (CENTER, top, "Loading resources,"); FT.DrawText (CENTER, top+dist, "please wait ..."); if (param.ice_cursor) DrawCursor (); Winsys.SwapBuffers(); Trans.LoadLanguages (); Trans.LoadTranslations (param.language); LoadCreditList (); Char.LoadCharacterList (); Course.LoadObjectTypes (); Course.LoadTerrainTypes (); Env.LoadEnvironmentList (); Course.LoadCourseList (); Score.LoadHighScore (); // after LoadCourseList !!! Events.LoadEventList (); Players.LoadAvatars (); // before LoadPlayers !!! Players.LoadPlayers (); Winsys.Delay (10); Winsys.SetMode (REGIST); }
void CEvent::Loop (double timestep) { int ww = Winsys.resolution.width; int hh = Winsys.resolution.height; check_gl_error(); ScopedRenderMode rm(GUI); Music.Update (); ClearRenderContext (); SetupGuiDisplay (); if (param.ui_snow) { update_ui_snow (timestep); draw_ui_snow (); } Tex.Draw (T_TITLE_SMALL, CENTER, AutoYPosN (5), Winsys.scale); Tex.Draw (BOTTOM_LEFT, 0, hh-256, 1); Tex.Draw (BOTTOM_RIGHT, ww-256, hh-256, 1); Tex.Draw (TOP_LEFT, 0, 0, 1); Tex.Draw (TOP_RIGHT, ww-256, 0, 1); // DrawFrameX (area.left, area.top, area.right-area.left, area.bottom - area.top, // 0, colMBackgr, colBlack, 0.2); if (ready == 0) { // cup not finished FT.AutoSizeN (6); FT.SetColor (colWhite); FT.DrawString (CENTER, AutoYPosN (25), ecup->name); DrawBonusExt (bonustop, (int)ecup->races.size(), curr_bonus); DrawFrameX (area.left, frametop, framewidth, (int)ecup->races.size() * dist + 20, 3, colBackgr, colWhite, 1); for (size_t i=0; i<ecup->races.size(); i++) { FT.AutoSizeN (3); int y = frametop + 10 + (int)i * dist; if (i == curr_race) FT.SetColor (colDYell); else FT.SetColor (colWhite); FT.DrawString (area.left + 29, y, Course.CourseList[ecup->races[i]->course].name); Tex.Draw (CHECKBOX, area.right -54, y, texsize, texsize); if (curr_race > i) Tex.Draw (CHECKMARK, area.right-50, y + 4, 0.8); } FT.AutoSizeN (3); int ddd = FT.AutoDistanceN (1); FT.SetColor (colDBlue); string info = Trans.Text(11); info += " " + Int_StrN (ecup->races[curr_race]->herrings.i); info += " " + Int_StrN (ecup->races[curr_race]->herrings.j); info += " " + Int_StrN (ecup->races[curr_race]->herrings.k); FT.DrawString (CENTER, framebottom+15, info); info = Trans.Text(12); info += " " + Float_StrN (ecup->races[curr_race]->time.x, 0); info += " " + Float_StrN (ecup->races[curr_race]->time.y, 0); info += " " + Float_StrN (ecup->races[curr_race]->time.z, 0); info += " " + Trans.Text(14); FT.DrawString (CENTER, framebottom+15+ddd, info); } else if (ready == 1) { // cup successfully finished FT.AutoSizeN (5); FT.SetColor (colWhite); FT.DrawString (CENTER, messtop, Trans.Text(16)); DrawBonusExt (bonustop, (int)ecup->races.size(), curr_bonus); int res = resultlevel(curr_bonus, ecup->races.size()); FT.DrawString (CENTER, messtop2, Trans.Text(17) + " "+Int_StrN (res)); } else if (ready == 2) { // cup finished but failed FT.AutoSizeN (5); FT.SetColor (colLRed); FT.DrawString (CENTER, messtop, Trans.Text(18)); DrawBonusExt (bonustop, ecup->races.size(), curr_bonus); FT.DrawString (CENTER, messtop2, Trans.Text(19)); } textbuttons[0]->SetVisible(ready < 1); textbuttons[1]->SetVisible(ready < 1); textbuttons[2]->SetVisible(!(ready < 1)); DrawGUI (); Winsys.SwapBuffers(); }
void CRaceSelect::Loop() { int ww = Winsys.resolution.width; int hh = Winsys.resolution.height; TColor col; check_gl_error(); ScopedRenderMode rm(GUI); ClearRenderContext (); SetupGuiDisplay (); Music.Update (); if (param.ui_snow) { update_ui_snow (); draw_ui_snow (); } //Tex.Draw (T_TITLE_SMALL, CENTER, AutoYPosN (5), 1.0); Tex.Draw (BOTTOM_LEFT, 0, hh-256, 1); Tex.Draw (BOTTOM_RIGHT, ww-256, hh-256, 1); Tex.Draw (TOP_LEFT, 0, 0, 1); Tex.Draw (TOP_RIGHT, ww-256, 0, 1); // DrawFrameX (area.left, area.top, area.right-area.left, area.bottom - area.top, // 0, colMBackgr, colBlack, 0.2); // course selection col = colWhite; DrawFrameX (area.left, frametop, framewidth - 100, frameheight, 3, colMBackgr, col, 1.0); FT.AutoSizeN (4); FT.SetColor (colDYell); FT.DrawString (area.left+20, frametop, CourseList[course->GetValue()].name); if (CourseList[course->GetValue()].preview) CourseList[course->GetValue()].preview->DrawFrame(area.left + 3, prevtop, prevwidth, prevheight, 3, colWhite); DrawFrameX (area.right-boxwidth, prevtop-3, boxwidth, prevheight+6, 3, colBackgr, colWhite, 1.0); FT.AutoSizeN (2); FT.SetColor (colWhite); int dist = FT.AutoDistanceN (0); for (size_t i=0; i<CourseList[course->GetValue()].num_lines; i++) { FT.DrawString (boxleft+8, prevtop+i*dist, CourseList[course->GetValue()].desc[i]); } FT.DrawString (CENTER, prevtop + prevheight + 10, "Author: " + CourseList[course->GetValue()].author); //FT.DrawString (CENTER, AutoYPosN (45), info); if (g_game.force_treemap) { FT.AutoSizeN (4); static const string forcetrees = "Load trees.png"; string sizevar = "Size: "; sizevar += Int_StrN (g_game.treesize); sizevar += " Variation: "; sizevar += Int_StrN (g_game.treevar); FT.SetColor (colYellow); FT.DrawString (CENTER, AutoYPosN (85), forcetrees); FT.DrawString (CENTER, AutoYPosN (90), sizevar); } DrawGUI(); Winsys.SwapBuffers(); }