Skip to content

Commit

Permalink
Custom hud update
Browse files Browse the repository at this point in the history
No point putting all changes in as there's so many.
Added preview checkbox - might not be clear how this works and end up having preview enabled all the time.
Added anchor positions for text to allow for more flexibility.
Need to add control tooltips in a future update to make the controls that bit clearer.

Still more changes planned but settled on and fixed much of the base functionality!

# Conflicts:
#	Game_Scratch-2008.sln
#	cl_dll/client_scratch-2008.vcproj
#	cl_dll/ff/vgui/ff_miscoptions.h
#	cl_dll/vgui_int.cpp
#	dlls/server_scratch-2008.vcproj
  • Loading branch information
AdamWillden committed Oct 14, 2020
1 parent 7720c62 commit 79b48d2
Show file tree
Hide file tree
Showing 42 changed files with 7,081 additions and 3,075 deletions.
159 changes: 96 additions & 63 deletions cl_dll/ff/ff_hud_buildstate_detpack.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,56 +25,82 @@ KeyValues* CHudBuildStateDetpack::GetDefaultStyleData()
{
KeyValues *kvPreset = new KeyValues("StyleData");

kvPreset->SetInt("x", 480);
kvPreset->SetInt("x", 580);
kvPreset->SetInt("y", 330);
kvPreset->SetInt("alignH", 0);
kvPreset->SetInt("alignH", 2);
kvPreset->SetInt("alignV", 0);

kvPreset->SetInt("columns", 1);
kvPreset->SetInt("headerTextX", 27);
kvPreset->SetInt("headerTextY", 8);
kvPreset->SetInt("headerIconX", 5);
kvPreset->SetInt("headerIconY", 3);
kvPreset->SetInt("textX", 25);
kvPreset->SetInt("textY", 22);
kvPreset->SetInt("itemsX", 5);
kvPreset->SetInt("itemsY", 22);
kvPreset->SetInt("showHeaderText", 1);
kvPreset->SetInt("showHeaderIcon", 1);
kvPreset->SetInt("showText", 1);
kvPreset->SetInt("headerTextShadow", 0);
kvPreset->SetInt("headerIconShadow", 0);
kvPreset->SetInt("textShadow", 0);
kvPreset->SetInt("headerTextSize", 2);
kvPreset->SetInt("headerIconSize", 6);
kvPreset->SetInt("textSize", 3);
kvPreset->SetInt("showPanel", 1);
kvPreset->SetInt("panelColorCustom", 0);
kvPreset->SetInt("panelMargin", 5);
kvPreset->SetInt("panelColorMode", FFQuantityPanel::COLOR_MODE_TEAMCOLORED);
kvPreset->SetInt("panelRed", 255);
kvPreset->SetInt("panelGreen", 255);
kvPreset->SetInt("panelBlue", 255);
kvPreset->SetInt("panelAlpha", 255);

kvPreset->SetInt("barWidth", 60);
kvPreset->SetInt("barHeight", 10);
kvPreset->SetInt("showHeaderText", 1);
kvPreset->SetInt("headerTextSize", 3);
kvPreset->SetInt("headerTextShadow", 1);
kvPreset->SetInt("headerTextAnchorPosition", FFQuantityPanel::ANCHORPOS_TOPLEFT);
kvPreset->SetInt("headerTextAlignHoriz", FFQuantityPanel::ALIGN_LEFT);
kvPreset->SetInt("headerTextAlignVert", FFQuantityPanel::ALIGN_BOTTOM);
kvPreset->SetInt("headerTextX", 16);
kvPreset->SetInt("headerTextY", -2);
kvPreset->SetInt("headerTextColorMode", FFQuantityPanel::COLOR_MODE_CUSTOM);
kvPreset->SetInt("headerTextRed", 255);
kvPreset->SetInt("headerTextGreen", 255);
kvPreset->SetInt("headerTextBlue", 255);
kvPreset->SetInt("headerTextAlpha", 255);

kvPreset->SetInt("showHeaderIcon", 1);
kvPreset->SetInt("headerIconSize", 1);
kvPreset->SetInt("headerIconShadow", 1);
kvPreset->SetInt("headerIconAnchorPosition", FFQuantityPanel::ANCHORPOS_TOPLEFT);
kvPreset->SetInt("headerIconAlignHoriz", FFQuantityPanel::ALIGN_LEFT);
kvPreset->SetInt("headerIconAlignVert", FFQuantityPanel::ALIGN_BOTTOM);
kvPreset->SetInt("headerIconX", 0);
kvPreset->SetInt("headerIconY", 0);
kvPreset->SetInt("headerIconColorMode", FFQuantityPanel::COLOR_MODE_CUSTOM);
kvPreset->SetInt("headerIconRed", 255);
kvPreset->SetInt("headerIconGreen", 255);
kvPreset->SetInt("headerIconBlue", 255);
kvPreset->SetInt("headerIconAlpha", 255);

kvPreset->SetInt("showText", 1);
kvPreset->SetInt("textSize", 3);
kvPreset->SetInt("textShadow", 1);
kvPreset->SetInt("textAnchorPosition", FFQuantityPanel::ANCHORPOS_TOPLEFT);
kvPreset->SetInt("textAlignHoriz", FFQuantityPanel::ALIGN_LEFT);
kvPreset->SetInt("textAlignVert", FFQuantityPanel::ALIGN_TOP);
kvPreset->SetInt("textX", 5);
kvPreset->SetInt("textY", 5);
kvPreset->SetInt("textColorMode", FFQuantityPanel::COLOR_MODE_CUSTOM);
kvPreset->SetInt("textRed", 255);
kvPreset->SetInt("textGreen", 255);
kvPreset->SetInt("textBlue", 255);
kvPreset->SetInt("textAlpha", 255);

kvPreset->SetInt("barOrientation", FFQuantityItem::ORIENTATION_HORIZONTAL);
kvPreset->SetInt("barWidth", 70);
kvPreset->SetInt("barHeight", 7);
kvPreset->SetInt("barBorderWidth", 1);
kvPreset->SetInt("barMarginHorizontal", 0);
kvPreset->SetInt("barMarginVertical", 0);
kvPreset->SetInt("barOrientation", ORIENTATION_HORIZONTAL_INVERTED);

kvPreset->SetInt("itemColumns", 1);
kvPreset->SetInt("itemMarginHorizontal", 0);
kvPreset->SetInt("itemMarginVertical", 0);

KeyValues *kvComponent = new KeyValues("Bar");
kvComponent->SetInt("show", 1);
kvComponent->SetInt("colorMode", COLOR_MODE_FADED);
kvComponent->SetInt("colorMode", FFQuantityItem::ITEM_COLOR_MODE_FADED);
kvComponent->SetInt("red", 255);
kvComponent->SetInt("green", 255);
kvComponent->SetInt("blue", 255);
kvComponent->SetInt("alpha", 93);
kvComponent->SetInt("alpha", 130);

kvPreset->AddSubKey(kvComponent);

kvComponent = new KeyValues("BarBorder");
kvComponent->SetInt("show", 1);
kvComponent->SetInt("colorMode", COLOR_MODE_CUSTOM);
kvComponent->SetInt("show", 0);
kvComponent->SetInt("colorMode", FFQuantityItem::ITEM_COLOR_MODE_CUSTOM);
kvComponent->SetInt("red", 255);
kvComponent->SetInt("green", 255);
kvComponent->SetInt("blue", 255);
Expand All @@ -84,61 +110,64 @@ KeyValues* CHudBuildStateDetpack::GetDefaultStyleData()

kvComponent = new KeyValues("BarBackground");
kvComponent->SetInt("show", 1);
kvComponent->SetInt("colorMode", COLOR_MODE_FADED);
kvComponent->SetInt("colorMode", FFQuantityItem::ITEM_COLOR_MODE_FADED);
kvComponent->SetInt("red", 255);
kvComponent->SetInt("green", 255);
kvComponent->SetInt("blue", 255);
kvComponent->SetInt("alpha", 65);
kvComponent->SetInt("alpha", 40);

kvPreset->AddSubKey(kvComponent);

kvComponent = new KeyValues("Icon");
kvComponent->SetInt("show", 0);
kvComponent->SetInt("colorMode", COLOR_MODE_CUSTOM);
kvComponent->SetInt("colorMode", FFQuantityItem::ITEM_COLOR_MODE_CUSTOM);
kvComponent->SetInt("red", 255);
kvComponent->SetInt("green", 255);
kvComponent->SetInt("blue", 255);
kvComponent->SetInt("alpha", 255);
kvComponent->SetInt("shadow", 0);
kvComponent->SetInt("shadow", 1);
kvComponent->SetInt("size", 2);
kvComponent->SetInt("alignH", ALIGN_CENTER);
kvComponent->SetInt("alignV", ALIGN_MIDDLE);
kvComponent->SetInt("offsetX", 5);
kvComponent->SetInt("anchorPosition", FFQuantityItem::ANCHORPOS_MIDDLELEFT);
kvComponent->SetInt("alignH", FFQuantityItem::ALIGN_RIGHT);
kvComponent->SetInt("alignV", FFQuantityItem::ALIGN_MIDDLE);
kvComponent->SetInt("offsetX", -2);
kvComponent->SetInt("offsetY", 0);

kvPreset->AddSubKey(kvComponent);

kvComponent = new KeyValues("Label");
kvComponent->SetInt("show", 1);
kvComponent->SetInt("colorMode", COLOR_MODE_CUSTOM);
kvComponent->SetInt("colorMode", FFQuantityItem::ITEM_COLOR_MODE_CUSTOM);
kvComponent->SetInt("red", 255);
kvComponent->SetInt("green", 255);
kvComponent->SetInt("blue", 255);
kvComponent->SetInt("alpha", 255);
kvComponent->SetInt("fontTahoma", 1);
kvComponent->SetInt("shadow", 1);
kvComponent->SetInt("size", 1);
kvComponent->SetInt("alignH", ALIGN_LEFT);
kvComponent->SetInt("alignV", ALIGN_MIDDLE);
kvComponent->SetInt("offsetX", 54);
kvComponent->SetInt("anchorPosition", FFQuantityItem::ANCHORPOS_TOPLEFT);
kvComponent->SetInt("alignH", FFQuantityItem::ALIGN_LEFT);
kvComponent->SetInt("alignV", FFQuantityItem::ALIGN_BOTTOM);
kvComponent->SetInt("offsetX", 0);
kvComponent->SetInt("offsetY", 0);
kvComponent->SetInt("fontTahoma", 1);

kvPreset->AddSubKey(kvComponent);

kvComponent = new KeyValues("Amount");
kvComponent->SetInt("show", 1);
kvComponent->SetInt("colorMode", COLOR_MODE_FADED);
kvComponent->SetInt("colorMode", FFQuantityItem::ITEM_COLOR_MODE_CUSTOM);
kvComponent->SetInt("red", 255);
kvComponent->SetInt("green", 255);
kvComponent->SetInt("blue", 255);
kvComponent->SetInt("alpha", 255);
kvComponent->SetInt("shadow", 0);
kvComponent->SetInt("size", 0);
kvComponent->SetInt("alignH", ALIGN_RIGHT);
kvComponent->SetInt("alignV", ALIGN_CENTER);
kvComponent->SetInt("offsetX", 3);
kvComponent->SetInt("offsetY", 1);
kvComponent->SetInt("fontTahoma", 0);
kvComponent->SetInt("fontTahoma", 1);
kvComponent->SetInt("shadow", 1);
kvComponent->SetInt("size", 1);
kvComponent->SetInt("anchorPosition", FFQuantityItem::ANCHORPOS_TOPRIGHT);
kvComponent->SetInt("alignH", FFQuantityItem::ALIGN_RIGHT);
kvComponent->SetInt("alignV", FFQuantityItem::ALIGN_BOTTOM);
kvComponent->SetInt("offsetX", 0);
kvComponent->SetInt("offsetY", 0);

kvPreset->AddSubKey(kvComponent);

Expand All @@ -147,7 +176,11 @@ KeyValues* CHudBuildStateDetpack::GetDefaultStyleData()

void CHudBuildStateDetpack::VidInit()
{
wchar_t *tempString = vgui::localize()->Find("#FF_PLAYER_DETPACK");
wchar_t *tempString = vgui::localize()->Find("#HudPanel_Detpack");

//TODO: perhaps provide an option in quantity panel for upper case or normal??
//force upper case
wcsupr(tempString);

if (!tempString)
tempString = L"DETPACK";
Expand All @@ -166,11 +199,11 @@ void CHudBuildStateDetpack::VidInit()
if (!m_wszBuildingText)
m_wszBuildingText = L"Building...";

m_qbDetpackTimeLeft->SetLabelText("#FF_ITEM_TIMELEFT", false);
m_qbDetpackTimeLeft->SetIconChar("f", false);
m_qbDetpackTimeLeft->SetIntensityAmountScaled(true);//max changes (is not 100) so we need to scale to a percentage amount for calculation
m_qbDetpackTimeLeft->SetAmount(0);
m_qbDetpackTimeLeft->SetVisible(false);
m_qiDetpackTimeLeft->SetLabelText("#FF_ITEM_TIMELEFT", false);
m_qiDetpackTimeLeft->SetIconChar("f", false);
m_qiDetpackTimeLeft->SetIntensityAmountScaled(true);//max changes (is not 100) so we need to scale to a percentage amount for calculation
m_qiDetpackTimeLeft->SetAmount(0);
HideItem(m_qiDetpackTimeLeft);

SetToggleTextVisible(true);
}
Expand All @@ -180,7 +213,7 @@ void CHudBuildStateDetpack::Init()
ivgui()->AddTickSignal(GetVPanel(), 250); //only update 4 times a second
HOOK_HUD_MESSAGE(CHudBuildStateDetpack, DetpackMsg);

m_qbDetpackTimeLeft = AddItem("HudBuildStateDetpackTimeLeft");
m_qiDetpackTimeLeft = AddItem("HudBuildStateDetpackTimeLeft");

AddPanelToHudOptions("Detpack", "#HudPanel_Detpack", "BuildState", "#HudPanel_BuildableState");
}
Expand Down Expand Up @@ -220,14 +253,14 @@ void CHudBuildStateDetpack::OnTick()
//hide quantity bars
{
m_bBuilt = false;
m_qbDetpackTimeLeft->SetVisible(false);
HideItem(m_qiDetpackTimeLeft);
SetToggleTextVisible(true);
}
else if(bBuilt && !m_bBuilt)
//show quantity bars
{
m_bBuilt = true;
m_qbDetpackTimeLeft->SetVisible(true);
ShowItem(m_qiDetpackTimeLeft);
SetToggleTextVisible(false);
}
}
Expand All @@ -239,9 +272,9 @@ void CHudBuildStateDetpack::Paint()
float flCurTime = gpGlobals->curtime;
int iDetpackTimeLeft = (int)(m_flDetonateTime - gpGlobals->curtime + 1);
if(iDetpackTimeLeft < 0)
m_qbDetpackTimeLeft->SetAmount(m_flDetonateTime - flCurTime);
m_qiDetpackTimeLeft->SetAmount(m_flDetonateTime - flCurTime);
else
m_qbDetpackTimeLeft->SetAmount(iDetpackTimeLeft);
m_qiDetpackTimeLeft->SetAmount(iDetpackTimeLeft);
}
//paint header
BaseClass::Paint();
Expand All @@ -250,5 +283,5 @@ void CHudBuildStateDetpack::Paint()
void CHudBuildStateDetpack::MsgFunc_DetpackMsg(bf_read &msg)
{
m_flDetonateTime = msg.ReadFloat();
m_qbDetpackTimeLeft->SetAmountMax((int) msg.ReadByte());
m_qiDetpackTimeLeft->SetAmountMax((int) msg.ReadByte());
}
2 changes: 1 addition & 1 deletion cl_dll/ff/ff_hud_buildstate_detpack.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class CHudBuildStateDetpack : public CHudElement, public FFQuantityPanel
private:
DECLARE_CLASS_SIMPLE( CHudBuildStateDetpack, FFQuantityPanel );

FFQuantityBar *m_qbDetpackTimeLeft;
FFQuantityItem *m_qiDetpackTimeLeft;

bool m_bBuilt;
bool m_bBuilding;
Expand Down
Loading

0 comments on commit 79b48d2

Please sign in to comment.