mirror of
https://github.com/HarbourMasters/Shipwright
synced 2026-09-29 03:17:52 -04:00
Fix title card margins (#7167)
This commit is contained in:
@@ -452,35 +452,25 @@ static const char* MarginCvarNonAnchor[]{
|
||||
void SetMarginAll(const char* ButtonName, bool SetActivated, const char* tooltip) {
|
||||
if (UIWidgets::Button(ButtonName,
|
||||
UIWidgets::ButtonOptions().Size(ImVec2(200.0f, 0.0f)).Color(THEME_COLOR).Tooltip(tooltip))) {
|
||||
// MarginCvarNonAnchor is an array that list every element that has No anchor by default, because if that the
|
||||
// case this function will not touch it with pose type 0.
|
||||
u8 arrayLengthNonMargin = sizeof(MarginCvarNonAnchor) / sizeof(*MarginCvarNonAnchor);
|
||||
for (auto cvarName : MarginCvarList) {
|
||||
std::string cvarPosType = std::string(cvarName).append(".PosType");
|
||||
std::string cvarNameMargins = std::string(cvarName).append(".UseMargins");
|
||||
if (CVarGetInteger(cvarPosType.c_str(), 0) <= ANCHOR_RIGHT &&
|
||||
SetActivated) { // Our element is not Hidden or Non anchor
|
||||
for (int i = 0; i < arrayLengthNonMargin; i++) {
|
||||
if ((strcmp(cvarName, MarginCvarNonAnchor[i]) == 0) &&
|
||||
(CVarGetInteger(cvarPosType.c_str(), 0) ==
|
||||
ORIGINAL_LOCATION)) { // Our element is both in original position and do not have anchor by
|
||||
// default so we skip it.
|
||||
CVarSetInteger(cvarNameMargins.c_str(), false); // force set off
|
||||
} else if ((strcmp(cvarName, MarginCvarNonAnchor[i]) == 0) &&
|
||||
(CVarGetInteger(cvarPosType.c_str(), 0) !=
|
||||
ORIGINAL_LOCATION)) { // Element not in original position, regardless. It has no
|
||||
// anchor by default; since player made it anchored we can toggle
|
||||
// margins
|
||||
CVarSetInteger(cvarNameMargins.c_str(), SetActivated);
|
||||
} else if (strcmp(cvarName, MarginCvarNonAnchor[i]) !=
|
||||
0) { // Our element has an anchor by default, so regardless of its position right now
|
||||
// it's okay to toggle margins.
|
||||
CVarSetInteger(cvarNameMargins.c_str(), SetActivated);
|
||||
bool activate = SetActivated;
|
||||
if (SetActivated) {
|
||||
int posType = CVarGetInteger(cvarPosType.c_str(), 0);
|
||||
// MarginCvarNonAnchor lists the elements that have no anchor by default.
|
||||
bool noDefaultAnchor = false;
|
||||
for (auto nonAnchorName : MarginCvarNonAnchor) {
|
||||
if (strcmp(cvarName, nonAnchorName) == 0) {
|
||||
noDefaultAnchor = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else { // Since the user requested to turn all margin off no need to do any check there.
|
||||
CVarSetInteger(cvarNameMargins.c_str(), SetActivated);
|
||||
// Skip hidden and non anchored elements, plus elements that only get an anchor once the player moves
|
||||
// them off their original position. Margins do nothing for those.
|
||||
activate = posType <= ANCHOR_RIGHT && !(noDefaultAnchor && posType == ORIGINAL_LOCATION);
|
||||
}
|
||||
CVarSetInteger(cvarNameMargins.c_str(), activate);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+10
-10
@@ -1133,16 +1133,16 @@ void TitleCard_Draw(PlayState* play, TitleCardContext* titleCtx) {
|
||||
if (titleCtx->alpha != 0) {
|
||||
width = titleCtx->width;
|
||||
height = titleCtx->height;
|
||||
s16 TitleCard_PosX_Modifier = (titleCtx->isBossCard ? CVarGetInteger(CVAR_COSMETIC("TitleCard.Boss.PosX"), 0)
|
||||
: CVarGetInteger(CVAR_COSMETIC("TitleCard.Map.PosX"), 0));
|
||||
s16 TitleCard_PosY_Modifier = (titleCtx->isBossCard ? CVarGetInteger(CVAR_COSMETIC("TitleCard.Boss.PosY"), 0)
|
||||
: CVarGetInteger(CVAR_COSMETIC("TitleCard.Map.PosY"), 0));
|
||||
s16 TitleCard_PosType_Checker =
|
||||
(titleCtx->isBossCard ? CVarGetInteger(CVAR_COSMETIC("TitleCard.Boss.PosType"), 0)
|
||||
: CVarGetInteger(CVAR_COSMETIC("TitleCard.Map.PosType"), 0));
|
||||
s16 TitleCard_Margin_Checker =
|
||||
(titleCtx->isBossCard ? CVarGetInteger(CVAR_COSMETIC("TitleCard.Boss.UseMargins"), 0)
|
||||
: CVarGetInteger(CVAR_COSMETIC("TitleCard.Map.UseMargins"), 0));
|
||||
s16 TitleCard_PosX_Modifier = titleCtx->isBossCard ? CVarGetInteger(CVAR_COSMETIC("HUD.TitleCard.Boss.PosX"), 0)
|
||||
: CVarGetInteger(CVAR_COSMETIC("HUD.TitleCard.Map.PosX"), 0);
|
||||
s16 TitleCard_PosY_Modifier = titleCtx->isBossCard ? CVarGetInteger(CVAR_COSMETIC("HUD.TitleCard.Boss.PosY"), 0)
|
||||
: CVarGetInteger(CVAR_COSMETIC("HUD.TitleCard.Map.PosY"), 0);
|
||||
s16 TitleCard_PosType_Checker = titleCtx->isBossCard
|
||||
? CVarGetInteger(CVAR_COSMETIC("HUD.TitleCard.Boss.PosType"), 0)
|
||||
: CVarGetInteger(CVAR_COSMETIC("HUD.TitleCard.Map.PosType"), 0);
|
||||
s16 TitleCard_Margin_Checker = titleCtx->isBossCard
|
||||
? CVarGetInteger(CVAR_COSMETIC("HUD.TitleCard.Boss.UseMargins"), 0)
|
||||
: CVarGetInteger(CVAR_COSMETIC("HUD.TitleCard.Map.UseMargins"), 0);
|
||||
s16 TitleCard_MarginX = 0;
|
||||
s16 TitleCard_PosX = titleCtx->x;
|
||||
s16 TitleCard_PosY = titleCtx->y;
|
||||
|
||||
Reference in New Issue
Block a user