void D_DeveloperDisplay(void) { rcolor sevclr = WHITE; int p_nummobjthinkers = 0; fixed_t px, py, pz, pa, pp; int y = 8; mobj_t *mo; if (!showstats) { glBindCalls = 0; vertCount = 0; statindice = 0; return; } /*PLAYER INFORMATION */ px = py = pz = pa = pp = 0; if (players[0].cameratarget && gamestate == GS_LEVEL) { px = players[0].cameratarget->x / FRACUNIT; py = players[0].cameratarget->y / FRACUNIT; pz = players[0].cameratarget->z / FRACUNIT; pa = players[0].cameratarget->angle >> 24; pp = players[0].cameratarget->pitch >> 24; Draw_Text(0, y, WHITE, 0.35f, false, "x: %i, y: %i, z: %i, a: %i, p: %i", px, py, pz, pa, pp); y += 16; }
//--------------------------------------------------------- inline void CWKSP_Layer_Legend::_Draw_Label(wxDC &dc, int y, wxString Text, int yAlign) { wxCoord dx_Text, dy_Text; switch( yAlign ) { case TEXTALIGN_TOP: default: yAlign = TEXTALIGN_TOPLEFT; break; case TEXTALIGN_YCENTER: yAlign = TEXTALIGN_CENTERLEFT; break; case TEXTALIGN_BOTTOM: yAlign = TEXTALIGN_BOTTOMLEFT; break; } _Set_Font(dc, FONT_LABEL); Draw_Text(dc, yAlign, m_xText, y, Text); dc.GetTextExtent(Text, &dx_Text, &dy_Text); _Set_Size((m_xText - m_xBox) + dx_Text, 0); }
//--------------------------------------------------------- void CWKSP_Shapes_Point::Draw_Label(CWKSP_Map_DC &dc_Map, CSG_Shape *pShape, const wxString &Label) { TSG_Point_Int p(dc_Map.World2DC(pShape->Get_Point(0))); double Angle = m_iLabel_Angle < 0 ? m_Label_Angle : pShape->asDouble(m_iLabel_Angle); Draw_Text(dc_Map.dc, m_Label_Align, p.x, p.y, Angle, Label, m_Label_Eff, m_Label_Eff_Color); }
//--------------------------------------------------------- void CVIEW_ScatterPlot::_Draw_Legend(wxDC &dc, wxRect r) { CSG_Colors Colors(*m_Options("DENSITY_PAL")->asColors()); Colors.Set_Count(r.GetHeight()); for(int i=0, y=r.GetBottom(); i<Colors.Get_Count(); i++, y--) { Draw_FillRect(dc, Get_Color_asWX(Colors.Get_Color(i)), r.GetLeft(), y, r.GetRight(), y + 1); } // r.Offset(0, -r.GetHeight()); Draw_Edge(dc, EDGE_STYLE_SIMPLE, r); Draw_Text(dc, TEXTALIGN_BOTTOMLEFT, 2 + r.GetRight(), r.GetBottom(), "0"); Draw_Text(dc, TEXTALIGN_TOPLEFT , 2 + r.GetRight(), r.GetTop (), wxString::Format("%d", (int)m_Count.Get_Max())); }
/* Строим наше меню */ void cDraw::Studio_Menu(int x, int y, LPSTR text, LPDIRECT3DDEVICE9 pDevice) { DrawBox(x, y, 400, 229, DARK3, pDevice);//Основной бокс на котором строится все меню Draw_Text(x + 10, x + 7, AliceBlue, text, L_Text);//Заголовок меню находящийся на его шапке Draw_Border(x, y, 400, 28, 2, ForestGreen, pDevice);//обводка шапки меню Draw_Border(x, y + 28, 400, 199, 2, ForestGreen, pDevice);//обводка пространства под функции, чекбоксы и тп. Draw_Border(x, y + 28, 130, 199, 2, ForestGreen, pDevice);//обводка пространства под разделы меню }
//--------------------------------------------------------- inline void CWKSP_Layer_Legend::_Draw_Title(wxDC &dc, int Style, wxString Text) { wxCoord dx_Text, dy_Text; _Set_Font(dc, Style); Draw_Text(dc, TEXTALIGN_TOPLEFT, m_Position.x, m_Position.y, Text); dc.GetTextExtent(Text, &dx_Text, &dy_Text); dy_Text += SPACE_VERTICAL; _Set_Size(dx_Text, dy_Text); }
void cDraw::Engine_CheckBox(int x, int y, int &Var, LPSTR text, IDirect3DDevice9* pDevice) { Draw_Text(x + 135, y + 2, AliceBlue, text, L_Text); Draw_Border(x + 374, y + 2, 18, 15, 2, ForestGreen, pDevice); if (IsInBox(x + 128, y, 266, 20)) Draw_Border(x + 130, y, 265, 20, 1, ForestGreen, pDevice); if (IsInBox(x + 374, y + 2, 18, 15)) if (State_Key(VK_LBUTTON, 1000)) Var = !Var; if (Var) DrawBox(x + 377, y + 5, 14, 11, ForestGreen, pDevice); }
void cDraw::Engine_Button(int x, int y, int &Var, LPSTR text, IDirect3DDevice9* pDevice) { if (IsInBox(x, y, 130, 25)) { DrawBox(x + 3, y + 3, 120, 21, ForestGreen, pDevice); if (State_Key(VK_LBUTTON, 1000)) { Varm.Menu0 = Varm.Menu1 = Varm.Menu2 = Varm.Menu3 = Varm.Menu4 = Varm.cvet = 0; Var = !Var; } } if (Var) DrawBox(x + 3, y + 3, 120, 21, ForestGreen, pDevice); Draw_Border(x, y, 124, 25, 2, ForestGreen, pDevice); Draw_Text(x + 64, y + 5, AliceBlue, text, C_Text); }
//--------------------------------------------------------- void CVIEW_ScatterPlot::_Draw_Regression(wxDC &dc, wxRect r) { wxPen oldPen = dc.GetPen(); dc.SetPen(wxPen( m_Options("REG_COLOR")->asColor(), m_Options("REG_SIZE" )->asInt() )); //----------------------------------------------------- double dx = (r.GetWidth () - 1.) / m_Trend.Get_Data_XStats().Get_Range(); double dy = (r.GetHeight() - 1.) / m_Trend.Get_Data_YStats().Get_Range(); //----------------------------------------------------- dc.DrawCircle( GET_DC_X(m_Trend.Get_Data_XStats().Get_Mean()), GET_DC_Y(m_Trend.Get_Data_YStats().Get_Mean()), 2 ); double ex = m_Trend.Get_Data_XStats().Get_Range() / (double)r.GetWidth(); double x = m_Trend.Get_Data_XMin(); for(int ix=0, ay, by=0; ix<r.GetWidth(); ix++, x+=ex) { double y = m_Trend.Get_Value(x); ay = by; by = r.GetBottom() - (int)(dy * (y - m_Trend.Get_Data_YMin())); if( ix > 0 && r.GetTop() < ay && ay < r.GetBottom() && r.GetTop() < by && by < r.GetBottom() ) { dc.DrawLine(r.GetLeft() + ix - 1, ay, r.GetLeft() + ix, by); } } dc.SetPen(oldPen); //----------------------------------------------------- Draw_Text(dc, TEXTALIGN_BOTTOMCENTER, r.GetLeft() + r.GetWidth() / 2, r.GetTop(), m_Trend.Get_Formula(SG_TREND_STRING_Compact).c_str() ); }
/* Настройка цвета */ void cDraw::M1Chams(int x, int y, char *Text, int &Var, DWORD CoLoR1, DWORD CoLoR2, DWORD CoLoR3, DWORD CoLoR4, DWORD CoLoR5, DWORD CoLoR6, DWORD CoLoR7, DWORD CoLoR8, DWORD CoLoR9, DWORD CoLoR10, IDirect3DDevice9* mDevice) { DWORD CoL; DWORD R_COL = WHITE; DWORD Color = WHITE; if (IsInBox(x + 374, y + 2, 18, 15)) { R_COL = ForestGreen; Color = ForestGreen; if (State_Key(VK_LBUTTON, 1000)) { if (Var >= 0){ Var++; } } if (State_Key(VK_LBUTTON, 1000)) { if (Var != 0) { Var--; } } } switch (Var) { case 1: CoL = CoLoR1; break; case 2: CoL = CoLoR2; break; case 3: CoL = CoLoR3; break; case 4: CoL = CoLoR4; break; case 5: CoL = CoLoR5; break; case 6: CoL = CoLoR6; break; case 7: CoL = CoLoR7; break; case 8: CoL = CoLoR8; break; case 9: CoL = CoLoR9; break; case 10: CoL = CoLoR10; break; case 11: Var = 0; break; } if (Var>0) { DrawBox(x + 377, y + 5, 14, 11, CoL, mDevice); Color = ForestGreen; } DrawBorder(x + 374, y + 2, 18, 15, ForestGreen, mDevice); Draw_Text(x + 135, y + 2, AliceBlue, Text, L_Text); }
void ST_DrawFPS(int offset) { static int frames; static int lasttick = 0; static int fps; int ticks; int n; ticks = I_GetTime(); if (!lasttick) { lasttick = ticks; frames = fps = 0; } frames++; if (ticks - lasttick >= TICRATE) { lasttick = ticks; fps = frames; frames = 0; } n = fps; Draw_Text(0, offset, WHITE, 0.35f, false, "FPS: %i", n); }
void GameManager::Draw(CDC *cDC) { if (GameStart()) { if (GamePause() == TRUE) { Draw_Text(cDC, _T("按下回车恢复游戏"), Point(Game_Width / 2, Game_Height / 2)); } else if (GameOver() == TRUE) { Draw_Text(cDC, _T("游戏结束"), Point(Game_Width / 2, Game_Height / 2)); } else { for (int i = Index_Background; i <= Index_Angela; ++i) //Index_Cloud { CList<GameObject*, GameObject*> *now = GetList(i); POSITION pos = now->GetHeadPosition(); while (pos != NULL) { now->GetNext(pos)->Draw(cDC); } } if (God()) { Draw_Text(cDC, _T("无敌模式已开启,按下F键关闭"), Point(110, 50)); } else { Draw_Text(cDC, _T("无敌模式未开启,按下G键开启"), Point(118, 50)); } Draw_Text(cDC, _T("生命值"), PlayerHP(), Point(60, 10)); Draw_Text(cDC, _T("星星值"), PlayerStars(), Point(48, 30)); } } else { Draw_Text(cDC,_T("按下回车键开始游戏"),Point(Game_Width/2, Game_Height/2)); } }
//--------------------------------------------------------- void CWKSP_Layer_Legend::_Draw_Continuum_H(wxDC &dc, int y, double yToDC, double zMin, double zMax, double zFactor, double dz, int dyFont) { int i, iy, jy, yTick, yText, sx, sy; double z; wxString s; yTick = y + m_dxBox; yText = y + m_dxBox + m_dxTick; //----------------------------------------------------- for(i=0, z=m_xBox; i<m_pClassify->Get_Class_Count(); i++, z+=yToDC) { Draw_FillRect(dc, Get_Color_asWX(m_pClassify->Get_Class_Color(i)), (int)(z), y, (int)(z + yToDC), yTick); } Draw_Edge(dc, EDGE_STYLE_SIMPLE, m_xBox, y, m_xBox + METRIC_HEIGHT, yTick); //----------------------------------------------------- switch( m_pClassify->Get_Metric_Mode() ) { case METRIC_MODE_NORMAL: default: jy = METRIC_POS_H(zMin) - METRIC_HEIGHT; z = dz * floor(zMin / dz); if( z < zMin ) z += dz; for(; z<=zMax; z+=dz) { iy = METRIC_POS_H(z); dc.DrawLine(iy, yTick, iy, yText); s = METRIC_GET_STRING(z, dz); dc.GetTextExtent(s, &sx, &sy); if( abs(jy - iy) >= (int)(1.25 * sx) ) { jy = iy; Draw_Text(dc, TEXTALIGN_TOPCENTER, iy, yText, s); } } break; case METRIC_MODE_LOGUP: jy = METRIC_POS_H(zMax) + METRIC_HEIGHT; z = dz * floor(zMax / dz); if( z > zMax ) z -= dz; for(; z>=zMin; z-=dz) { iy = METRIC_POS_H(z); dc.DrawLine(iy, yTick, iy, yText); s = METRIC_GET_STRING(z, dz); dc.GetTextExtent(s, &sx, &sy); if( abs(jy - iy) >= (int)(1.25 * sx) ) { jy = iy; Draw_Text(dc, TEXTALIGN_TOPCENTER, iy, yText, s); } while( abs(iy - METRIC_POS_H(z - dz)) > 2 * sx ) dz *= 0.1; } break; case METRIC_MODE_LOGDOWN: jy = METRIC_POS_H(zMin) - METRIC_HEIGHT; z = dz * floor(zMin / dz); if( z < zMin ) z += dz; for(; z<=zMax; z+=dz) { iy = METRIC_POS_H(z); dc.DrawLine(iy, yTick, iy, yText); s = METRIC_GET_STRING(z, dz); dc.GetTextExtent(s, &sx, &sy); if( abs(jy - iy) >= (int)(1.25 * sx) ) { jy = iy; Draw_Text(dc, TEXTALIGN_TOPCENTER, iy, yText, s); } while( abs(iy - METRIC_POS_H(z + dz)) > 2 * sx ) dz *= 0.1; } break; } //----------------------------------------------------- _Set_Size(METRIC_HEIGHT, yText + dyFont); }
//--------------------------------------------------------- bool CWKSP_Map_Graticule::Draw(CWKSP_Map_DC &dc_Map) { if( !Get_Graticule(dc_Map.m_rWorld) || m_Graticule.Get_Count() <= 0 ) { return( false ); } if( !m_Parameters("SHOW_ALWAYS")->asBool() ) { CSG_Parameter_Range *pRange = m_Parameters("SHOW_RANGE")->asRange(); double dRange = dc_Map.m_rWorld.Get_XRange() > dc_Map.m_rWorld.Get_YRange() ? dc_Map.m_rWorld.Get_XRange() : dc_Map.m_rWorld.Get_YRange(); if( dRange < pRange->Get_LoVal() || pRange->Get_HiVal() < dRange ) { return( false ); } } //----------------------------------------------------- CWKSP_Map_DC *pDC = m_Parameters("TRANSPARENCY")->asDouble() > 0.0 ? new CWKSP_Map_DC(dc_Map.m_rWorld, dc_Map.m_rDC, dc_Map.m_Scale, SG_GET_RGB(255, 255, 255)) : NULL; CWKSP_Map_DC &dc = pDC ? *pDC : dc_Map; //----------------------------------------------------- wxPen Pen(m_Parameters("COLOR")->asColor(), m_Parameters("SIZE")->asInt()); switch( m_Parameters("LINE_STYLE")->asInt() ) { default: case 0: Pen.SetStyle(wxPENSTYLE_SOLID ); break; // Solid style. case 1: Pen.SetStyle(wxPENSTYLE_DOT ); break; // Dotted style. case 2: Pen.SetStyle(wxPENSTYLE_LONG_DASH ); break; // Long dashed style. case 3: Pen.SetStyle(wxPENSTYLE_SHORT_DASH ); break; // Short dashed style. case 4: Pen.SetStyle(wxPENSTYLE_DOT_DASH ); break; // Dot and dash style. case 5: Pen.SetStyle(wxPENSTYLE_BDIAGONAL_HATCH ); break; // Backward diagonal hatch. case 6: Pen.SetStyle(wxPENSTYLE_CROSSDIAG_HATCH ); break; // Cross-diagonal hatch. case 7: Pen.SetStyle(wxPENSTYLE_FDIAGONAL_HATCH ); break; // Forward diagonal hatch. case 8: Pen.SetStyle(wxPENSTYLE_CROSS_HATCH ); break; // Cross hatch. case 9: Pen.SetStyle(wxPENSTYLE_HORIZONTAL_HATCH); break; // Horizontal hatch. case 10: Pen.SetStyle(wxPENSTYLE_VERTICAL_HATCH ); break; // Vertical hatch. // case 11: Pen.SetStyle(wxPENSTYLE_STIPPLE ); break; // Use the stipple bitmap. // case 12: Pen.SetStyle(wxPENSTYLE_USER_DASH ); break; // Use the user dashes: see wxPen::SetDashes. // case 13: Pen.SetStyle(wxPENSTYLE_TRANSPARENT ); break; // No pen is used. } dc.dc.SetPen(Pen); //----------------------------------------------------- for(int iLine=0; iLine<m_Graticule.Get_Count(); iLine++) { CSG_Shape *pLine = m_Graticule.Get_Shape(iLine); for(int iPart=0; iPart<pLine->Get_Part_Count(); iPart++) { if( pLine->Get_Point_Count(iPart) > 1 ) { TSG_Point_Int B, A = dc.World2DC(pLine->Get_Point(0, iPart)); for(int iPoint=1; iPoint<pLine->Get_Point_Count(iPart); iPoint++) { B = A; A = dc.World2DC(pLine->Get_Point(iPoint, iPart)); dc.dc.DrawLine(A.x, A.y, B.x, B.y); } } } } //----------------------------------------------------- if( m_Parameters("LABEL")->asBool() ) { int Size = (int)(0.5 + 0.01 * m_Parameters("LABEL_SIZE")->asDouble() * ( dc.m_rDC.GetWidth() < dc.m_rDC.GetHeight() ? dc.m_rDC.GetWidth() : dc.m_rDC.GetHeight() ) ); if( Size > 2 ) { int Effect; wxColour Effect_Color = Get_Color_asWX(m_Parameters("LABEL_EFFCOL")->asInt()); wxFont Font = Get_Font(m_Parameters("LABEL_FONT")); Font.SetPointSize(Size); dc.dc.SetFont(Font); dc.dc.SetTextForeground(m_Parameters("LABEL_FONT")->asColor()); switch( m_Parameters("LABEL_EFFECT")->asInt() ) { default: Effect = TEXTEFFECT_NONE; break; case 1: Effect = TEXTEFFECT_FRAME; break; case 2: Effect = TEXTEFFECT_TOP; break; case 3: Effect = TEXTEFFECT_TOPLEFT; break; case 4: Effect = TEXTEFFECT_LEFT; break; case 5: Effect = TEXTEFFECT_BOTTOMLEFT; break; case 6: Effect = TEXTEFFECT_BOTTOM; break; case 7: Effect = TEXTEFFECT_BOTTOMRIGHT; break; case 8: Effect = TEXTEFFECT_RIGHT; break; case 9: Effect = TEXTEFFECT_TOPRIGHT; break; } for(int iPoint=0; iPoint<m_Coordinates.Get_Count(); iPoint++) { CSG_Shape *pPoint = m_Coordinates.Get_Shape(iPoint); TSG_Point_Int p(dc.World2DC(pPoint->Get_Point(0))); wxString Type(pPoint->asString(0)); int Align = !Type.Cmp("LAT_MIN") ? TEXTALIGN_CENTERLEFT : !Type.Cmp("LAT_MAX") ? TEXTALIGN_CENTERRIGHT : !Type.Cmp("LON_MIN") ? TEXTALIGN_BOTTOMCENTER : !Type.Cmp("LON_MAX") ? TEXTALIGN_TOPCENTER : TEXTALIGN_CENTER; Draw_Text(dc.dc, Align, p.x, p.y, 0.0, pPoint->asString(1), Effect, Effect_Color); } } } //----------------------------------------------------- if( pDC ) { dc_Map.Draw_DC(dc, m_Parameters("TRANSPARENCY")->asDouble() / 100.0); delete(pDC); } return( true ); }
void ST_Drawer(void) { dboolean checkautomap; // // flash overlay // if ((st_flashoverlay.value || gl_max_texture_units <= 2 || r_texturecombiner.value <= 0) && flashcolor) { ST_FlashingScreen(st_flash_r, st_flash_g, st_flash_b, st_flash_a); } if (iwadDemo) return; checkautomap = (!automapactive || am_overlay.value); // // draw hud // if (checkautomap && st_drawhud.value) { //Status graphics ST_DrawStatus(); // original hud layout if (st_drawhud.value == 1) { //Draw Ammo counter if (weaponinfo[plyr->readyweapon].ammo != am_noammo) Draw_Number(160, 215, plyr->ammo[weaponinfo [plyr->readyweapon]. ammo], 0, REDALPHA(0x7f)); //Draw Health Draw_Number(49, 215, plyr->health, 0, REDALPHA(0x7f)); //Draw Armor Draw_Number(271, 215, plyr->armorpoints, 0, REDALPHA(0x7f)); } // arranged hud layout else if (st_drawhud.value >= 2) { int wpn; if (plyr->pendingweapon == wp_nochange) wpn = plyr->readyweapon; else wpn = plyr->pendingweapon; // display ammo sprite switch (weaponinfo[wpn].ammo) { case am_clip: Draw_Sprite2D(SPR_CLIP, 0, 0, 524, 460, 0.5f, 0, WHITEALPHA(0xC0)); break; case am_shell: Draw_Sprite2D(SPR_SHEL, 0, 0, 524, 460, 0.5f, 0, WHITEALPHA(0xC0)); break; case am_misl: Draw_Sprite2D(SPR_RCKT, 0, 0, 524, 464, 0.5f, 0, WHITEALPHA(0xC0)); break; case am_cell: Draw_Sprite2D(SPR_CELL, 0, 0, 524, 464, 0.5f, 0, WHITEALPHA(0xC0)); break; default: break; } // display artifact sprites if (plyr->artifacts & (1 << ART_TRIPLE)) Draw_Sprite2D(SPR_ART3, 0, 0, 260, 872, 0.275f, 0, WHITEALPHA(0xC0)); if (plyr->artifacts & (1 << ART_DOUBLE)) Draw_Sprite2D(SPR_ART2, 0, 0, 296, 872, 0.275f, 0, WHITEALPHA(0xC0)); if (plyr->artifacts & (1 << ART_FAST)) Draw_Sprite2D(SPR_ART1, 0, 0, 332, 872, 0.275f, 0, WHITEALPHA(0xC0)); // display medkit/armor Draw_Sprite2D(SPR_MEDI, 0, 0, 50, 662, 0.35f, 0, WHITEALPHA(0xC0)); Draw_Sprite2D(SPR_ARM1, 0, 0, 50, 632, 0.35f, 0, WHITEALPHA(0xC0)); GL_SetOrthoScale(0.5f); //Draw Health Draw_Number(96, 448, plyr->health, 2, REDALPHA(0xC0)); Draw_BigText(104, 450, REDALPHA(0xC0), "%"); //Draw Armor Draw_Number(96, 424, plyr->armorpoints, 2, REDALPHA(0xC0)); Draw_BigText(104, 426, REDALPHA(0xC0), "%"); //Draw Ammo counter if (weaponinfo[wpn].ammo != am_noammo) Draw_Number(550, 448, plyr->ammo[weaponinfo[wpn].ammo], 1, REDALPHA(0xC0)); GL_SetOrthoScale(1.0f); } } // // draw messages // if (st_hasjmsg && st_regionmsg.value && plyr->messagepic >= 0) { ST_DrawJMessage(plyr->messagepic); } else if (st_msg && (int)m_messages.value) { Draw_Text(20, 20, ST_MSGCOLOR(automapactive ? 0xff : st_msgalpha), 1, false, st_msg); } else if (automapactive) { char str[128]; mapdef_t *map = P_GetMapInfo(gamemap); if (map) { dmemset(&str, 0, 128); if (map->type == 2) sprintf(str, "%s", map->mapname); else sprintf(str, "Level %i: %s", gamemap, map->mapname); Draw_Text(20, 20, ST_MSGCOLOR(0xff), 1, false, str); } } // // draw chat text and player names // if (netgame) { ST_DrawChatText(); if (checkautomap) { int i; for (i = 0; i < MAXPLAYERS; i++) { if (playeringame[i]) ST_DisplayName(i); } } } // // draw crosshairs // if (st_crosshairs && !automapactive) { int x = (SCREENWIDTH / 2) - (ST_CROSSHAIRSIZE / 8); int y = (SCREENHEIGHT / 2) - (ST_CROSSHAIRSIZE / 8); int alpha = (int)st_crosshairopacity.value; if (alpha > 0xff) alpha = 0xff; if (alpha < 0) alpha = 0; ST_DrawCrosshair(x, y, (int)st_crosshair.value, 2, WHITEALPHA(alpha)); } // // use action context // if (p_usecontext.value) { if (P_UseLines(&players[consoleplayer], true)) { char usestring[16]; char contextstring[32]; float x; #ifdef _USE_XINPUT // XINPUT if (xgamepad.connected) { M_DrawXInputButton(140, 156, XINPUT_GAMEPAD_A); Draw_Text(213, 214, WHITEALPHA(0xA0), 0.75, false, "Use"); } else #endif { G_GetActionBindings(usestring, "+use"); sprintf(contextstring, "(%s)Use", usestring); x = (160 / 0.75f) - ((dstrlen(contextstring) * 8) / 2); Draw_Text((int)x, 214, WHITEALPHA(0xA0), 0.75f, false, contextstring); } } } // // damage indicator // if (p_damageindicator.value) ST_DrawDamageMarkers(); // // display pending weapon // if (st_showpendingweapon.value) ST_DrawPendingWeapon(); // // display stats in automap // if (st_showstats.value && automapactive) { Draw_Text(20, 430, WHITE, 0.5f, false, "Monsters: %i / %i", plyr->killcount, totalkills); Draw_Text(20, 440, WHITE, 0.5f, false, "Items: %i / %i", plyr->itemcount, totalitems); Draw_Text(20, 450, WHITE, 0.5f, false, "Secrets: %i / %i", plyr->secretcount, totalsecret); Draw_Text(20, 460, WHITE, 0.5f, false, "Time: %2.2d:%2.2d", (leveltime / TICRATE) / 60, (leveltime / TICRATE) % 60); } }
void OverRender(ShaderProgram* program, SDL_Window* displayWindow, GLuint text_sprites){ glClear(GL_COLOR_BUFFER_BIT); Draw_Text(program, text_sprites, -1.25f, 0.0f, 0.25f, 0.0f, "GAME OVER"); SDL_GL_SwapWindow(displayWindow); }