void F_Drawer(void) { GL_ClearView(0xFF000000); Draw_GfxImage(64, 30, "EVIL", D_RGBA(255, 255, 255, 0xff), false); Draw_BigText(-1, 240-32, D_RGBA(255, 0, 0, 0xff), castorder[castnum].name); Draw_Sprite2D( caststate->sprite, castrotation, (caststate->frame & FF_FRAMEMASK), 160, 180, 1.0f, mobjinfo[castorder[castnum].type].palette, D_RGBA(finalePal.r, finalePal.g, finalePal.b, finalePal.a) ); }
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); } }