diff options
| author | Fujnky <larsfunke1996@gmail.com> | 2010-07-27 22:25:36 +0200 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2010-08-13 03:17:13 +0200 |
| commit | 4d8c4ffadb9c788eb83d244dc509e56251d09030 (patch) | |
| tree | ef0a850eee3f9d924dfbc88d191265d2dfb43019 /src/game | |
| parent | d01fb2eb7818c121ab892f29b929f55d66e4e7ce (diff) | |
| download | zcatch-4d8c4ffadb9c788eb83d244dc509e56251d09030.tar.gz zcatch-4d8c4ffadb9c788eb83d244dc509e56251d09030.zip | |
Improved the replay control buttons in the demo player a lot.
* Now there is a combined play/pause button + a reset button * Replaced the ugly strings with nice graphics
Diffstat (limited to 'src/game')
| -rw-r--r-- | src/game/client/components/menus.h | 1 | ||||
| -rw-r--r-- | src/game/client/components/menus_demo.cpp | 46 |
2 files changed, 32 insertions, 15 deletions
diff --git a/src/game/client/components/menus.h b/src/game/client/components/menus.h index 3ad737e5..53f81954 100644 --- a/src/game/client/components/menus.h +++ b/src/game/client/components/menus.h @@ -33,6 +33,7 @@ class CMenus : public CComponent int DoButton_DemoPlayer(const void *pID, const char *pText, int Checked, const CUIRect *pRect); + int DoButton_DemoPlayer_Sprite(const void *pID, int spriteId, int Checked, const CUIRect *pRect); int DoButton_Menu(const void *pID, const char *pText, int Checked, const CUIRect *pRect); int DoButton_MenuTab(const void *pID, const char *pText, int Checked, const CUIRect *pRect, int Corners); int DoButton_SettingsTab(const void *pID, const char *pText, int Checked, const CUIRect *pRect); diff --git a/src/game/client/components/menus_demo.cpp b/src/game/client/components/menus_demo.cpp index 231cd83a..18d9ddee 100644 --- a/src/game/client/components/menus_demo.cpp +++ b/src/game/client/components/menus_demo.cpp @@ -1,9 +1,9 @@ #include <base/math.h> - #include <engine/demo.h> #include <engine/keys.h> +#include <engine/graphics.h> #include <game/client/render.h> #include <game/client/gameclient.h> @@ -11,6 +11,8 @@ #include <game/client/ui.h> +#include <game/generated/client_data.h> + #include "menus.h" int CMenus::DoButton_DemoPlayer(const void *pID, const char *pText, int Checked, const CUIRect *pRect) @@ -20,6 +22,19 @@ int CMenus::DoButton_DemoPlayer(const void *pID, const char *pText, int Checked, return UI()->DoButtonLogic(pID, pText, Checked, pRect); } +int CMenus::DoButton_DemoPlayer_Sprite(const void *pID, int spriteId, int Checked, const CUIRect *pRect) +{ + RenderTools()->DrawUIRect(pRect, vec4(1,1,1, Checked ? 0.10f : 0.5f)*ButtonColorMul(pID), CUI::CORNER_ALL, 5.0f); + Graphics()->TextureSet(g_pData->m_aImages[IMAGE_DEMOBUTTONS].m_Id); + Graphics()->QuadsBegin(); + RenderTools()->SelectSprite(spriteId); + IGraphics::CQuadItem QuadItem(pRect->x, pRect->y, pRect->w, pRect->h); + Graphics()->QuadsDrawTL(&QuadItem, 1); + Graphics()->QuadsEnd(); + + return UI()->DoButtonLogic(pID, "", Checked, pRect); +} + void CMenus::RenderDemoPlayer(CUIRect MainView) { const IDemoPlayer::CInfo *pInfo = DemoPlayer()->BaseInfo(); @@ -111,33 +126,34 @@ void CMenus::RenderDemoPlayer(CUIRect MainView) { // do buttons CUIRect Button; - - // pause button + + // combined play and pause button ButtonBar.VSplitLeft(ButtonbarHeight, &Button, &ButtonBar); - static int s_PauseButton = 0; - if(DoButton_DemoPlayer(&s_PauseButton, "| |", pInfo->m_Paused, &Button)) + static int s_PlayPauseButton = 0; + if(!pInfo->m_Paused) { - if(pInfo->m_Paused) - DemoPlayer()->Unpause(); - else + if(DoButton_DemoPlayer_Sprite(&s_PlayPauseButton, SPRITE_DEMOBUTTON_PAUSE, pInfo->m_Paused, &Button)) DemoPlayer()->Pause(); } + else + { + if(DoButton_DemoPlayer_Sprite(&s_PlayPauseButton, SPRITE_DEMOBUTTON_PLAY, !pInfo->m_Paused, &Button)) + DemoPlayer()->Unpause(); + } - // play button ButtonBar.VSplitLeft(Margins, 0, &ButtonBar); ButtonBar.VSplitLeft(ButtonbarHeight, &Button, &ButtonBar); - static int s_PlayButton = 0; - if(DoButton_DemoPlayer(&s_PlayButton, ">", !pInfo->m_Paused, &Button)) + static int s_ResetButton = 0; + if(DoButton_DemoPlayer_Sprite(&s_ResetButton, SPRITE_DEMOBUTTON_RESET, false, &Button)) { - DemoPlayer()->Unpause(); - DemoPlayer()->SetSpeed(1.0f); + DemoPlayer()->SetPos(0); } // slowdown ButtonBar.VSplitLeft(Margins, 0, &ButtonBar); ButtonBar.VSplitLeft(ButtonbarHeight, &Button, &ButtonBar); static int s_SlowDownButton = 0; - if(DoButton_DemoPlayer(&s_SlowDownButton, "<<", 0, &Button)) + if(DoButton_DemoPlayer_Sprite(&s_SlowDownButton, SPRITE_DEMOBUTTON_SLOWER, 0, &Button)) { if(pInfo->m_Speed > 4.0f) DemoPlayer()->SetSpeed(4.0f); else if(pInfo->m_Speed > 2.0f) DemoPlayer()->SetSpeed(2.0f); @@ -150,7 +166,7 @@ void CMenus::RenderDemoPlayer(CUIRect MainView) ButtonBar.VSplitLeft(Margins, 0, &ButtonBar); ButtonBar.VSplitLeft(ButtonbarHeight, &Button, &ButtonBar); static int s_FastForwardButton = 0; - if(DoButton_DemoPlayer(&s_FastForwardButton, ">>", 0, &Button)) + if(DoButton_DemoPlayer_Sprite(&s_FastForwardButton, SPRITE_DEMOBUTTON_FASTER, 0, &Button)) { if(pInfo->m_Speed < 0.5f) DemoPlayer()->SetSpeed(0.5f); else if(pInfo->m_Speed < 1.0f) DemoPlayer()->SetSpeed(1.0f); |