Browse Source

Clean up quests.cpp global naming

pull/2922/head
Anders Jenbo 5 years ago
parent
commit
464fd77238
  1. 121
      Source/quests.cpp

121
Source/quests.cpp

@ -69,21 +69,22 @@ namespace {
int WaterDone; int WaterDone;
/** Indices of quests to display in quest log window. `fistfinishedEntry` are active quests the rest are completed */ /** Indices of quests to display in quest log window. `FirstFinishedQuest` are active quests the rest are completed */
quest_id qlist[MAXQUESTS]; quest_id EncounteredQuests[MAXQUESTS];
/** Overall number of qlist entries */ /** Overall number of EncounteredQuests entries */
int qlistCnt; int EncounteredQuestCount;
/** First (nonselectable) finished quest in list */ /** First (nonselectable) finished quest in list */
int firstFinishedEntry; int FirstFinishedQuest;
/** Currently selected quest list item */ /** Currently selected quest list item */
int selectedEntry; int SelectedQuest;
constexpr Rectangle panelInnerRect { { 32, 26 }, { 280, 300 } }; constexpr Rectangle InnerPanel { { 32, 26 }, { 280, 300 } };
constexpr int lineHeight = 12; constexpr int LineHeight = 12;
constexpr int maxSpacing = lineHeight * 2; constexpr int MaxSpacing = LineHeight * 2;
int topY; int ListYOffset;
int lineSpacing; int LineSpacing;
int act2finSpacing; /** The number of pixels to move finished quest, to seperate them from the active ones */
int FinishedQuestOffset;
const char *const QuestTriggerNames[5] = { const char *const QuestTriggerNames[5] = {
N_(/* TRANSLATORS: Quest Map*/ "King Leoric's Tomb"), N_(/* TRANSLATORS: Quest Map*/ "King Leoric's Tomb"),
@ -249,14 +250,14 @@ void DrawBlood(int x, int y)
int QuestLogMouseToEntry() int QuestLogMouseToEntry()
{ {
Rectangle innerArea = panelInnerRect; Rectangle innerArea = InnerPanel;
innerArea.position += Displacement(LeftPanel.position.x, LeftPanel.position.y); innerArea.position += Displacement(LeftPanel.position.x, LeftPanel.position.y);
if (!innerArea.Contains(MousePosition) || (qlistCnt == 0)) if (!innerArea.Contains(MousePosition) || (EncounteredQuestCount == 0))
return -1; return -1;
int y = MousePosition.y - innerArea.position.y; int y = MousePosition.y - innerArea.position.y;
for (int i = 0; i < firstFinishedEntry; i++) { for (int i = 0; i < FirstFinishedQuest; i++) {
if ((y >= topY + i * lineSpacing) if ((y >= ListYOffset + i * LineSpacing)
&& (y < topY + i * lineSpacing + lineHeight)) { && (y < ListYOffset + i * LineSpacing + LineHeight)) {
return i; return i;
} }
} }
@ -744,17 +745,17 @@ void DrawQuestLog(const Surface &out)
{ {
int l = QuestLogMouseToEntry(); int l = QuestLogMouseToEntry();
if (l >= 0) { if (l >= 0) {
selectedEntry = l; SelectedQuest = l;
} }
const auto x = panelInnerRect.position.x; const auto x = InnerPanel.position.x;
CelDrawTo(out, GetPanelPosition(UiPanels::Quest, { 0, 351 }), *pQLogCel, 1); CelDrawTo(out, GetPanelPosition(UiPanels::Quest, { 0, 351 }), *pQLogCel, 1);
int y = panelInnerRect.position.y + topY; int y = InnerPanel.position.y + ListYOffset;
for (int i = 0; i < qlistCnt; i++) { for (int i = 0; i < EncounteredQuestCount; i++) {
if (i == firstFinishedEntry) { if (i == FirstFinishedQuest) {
y += act2finSpacing; y += FinishedQuestOffset;
} }
PrintQLString(out, x, y, _(QuestsData[qlist[i]]._qlstr), i == selectedEntry, i >= firstFinishedEntry); PrintQLString(out, x, y, _(QuestsData[EncounteredQuests[i]]._qlstr), i == SelectedQuest, i >= FirstFinishedQuest);
y += lineSpacing; y += LineSpacing;
} }
} }
@ -765,59 +766,59 @@ void StartQuestlog()
return QuestsData[a].questBookOrder < QuestsData[b].questBookOrder; return QuestsData[a].questBookOrder < QuestsData[b].questBookOrder;
}; };
qlistCnt = 0; EncounteredQuestCount = 0;
for (auto &quest : Quests) { for (auto &quest : Quests) {
if (quest._qactive == QUEST_ACTIVE && quest._qlog) { if (quest._qactive == QUEST_ACTIVE && quest._qlog) {
qlist[qlistCnt] = quest._qidx; EncounteredQuests[EncounteredQuestCount] = quest._qidx;
qlistCnt++; EncounteredQuestCount++;
} }
} }
firstFinishedEntry = qlistCnt; FirstFinishedQuest = EncounteredQuestCount;
for (auto &quest : Quests) { for (auto &quest : Quests) {
if (quest._qactive == QUEST_DONE || quest._qactive == QUEST_HIVE_DONE) { if (quest._qactive == QUEST_DONE || quest._qactive == QUEST_HIVE_DONE) {
qlist[qlistCnt] = quest._qidx; EncounteredQuests[EncounteredQuestCount] = quest._qidx;
qlistCnt++; EncounteredQuestCount++;
} }
} }
std::sort(&qlist[0], &qlist[firstFinishedEntry], sortQuestIdx); std::sort(&EncounteredQuests[0], &EncounteredQuests[FirstFinishedQuest], sortQuestIdx);
std::sort(&qlist[firstFinishedEntry], &qlist[qlistCnt], sortQuestIdx); std::sort(&EncounteredQuests[FirstFinishedQuest], &EncounteredQuests[EncounteredQuestCount], sortQuestIdx);
bool twoBlocks = firstFinishedEntry != 0 && firstFinishedEntry < qlistCnt; bool twoBlocks = FirstFinishedQuest != 0 && FirstFinishedQuest < EncounteredQuestCount;
topY = 0; ListYOffset = 0;
act2finSpacing = !twoBlocks ? 0 : lineHeight / 2; FinishedQuestOffset = !twoBlocks ? 0 : LineHeight / 2;
int overallMinHeight = qlistCnt * lineHeight + act2finSpacing; int overallMinHeight = EncounteredQuestCount * LineHeight + FinishedQuestOffset;
int space = panelInnerRect.size.height; int space = InnerPanel.size.height;
if (qlistCnt > 0) { if (EncounteredQuestCount > 0) {
int additionalSpace = space - overallMinHeight; int additionalSpace = space - overallMinHeight;
int addLineSpacing = additionalSpace / qlistCnt; int addLineSpacing = additionalSpace / EncounteredQuestCount;
addLineSpacing = std::min(maxSpacing - lineHeight, addLineSpacing); addLineSpacing = std::min(MaxSpacing - LineHeight, addLineSpacing);
lineSpacing = lineHeight + addLineSpacing; LineSpacing = LineHeight + addLineSpacing;
if (twoBlocks) { if (twoBlocks) {
int additionalSepSpace = additionalSpace - (addLineSpacing * qlistCnt); int additionalSepSpace = additionalSpace - (addLineSpacing * EncounteredQuestCount);
additionalSepSpace = std::min(lineHeight, additionalSepSpace); additionalSepSpace = std::min(LineHeight, additionalSepSpace);
act2finSpacing = std::max(4, additionalSepSpace); FinishedQuestOffset = std::max(4, additionalSepSpace);
} }
int overallHeight = qlistCnt * lineSpacing + act2finSpacing; int overallHeight = EncounteredQuestCount * LineSpacing + FinishedQuestOffset;
topY += (space - overallHeight) / 2; ListYOffset += (space - overallHeight) / 2;
} }
selectedEntry = firstFinishedEntry == 0 ? -1 : 0; SelectedQuest = FirstFinishedQuest == 0 ? -1 : 0;
QuestLogIsOpen = true; QuestLogIsOpen = true;
} }
void QuestlogUp() void QuestlogUp()
{ {
if (firstFinishedEntry == 0) { if (FirstFinishedQuest == 0) {
selectedEntry = -1; SelectedQuest = -1;
} else { } else {
selectedEntry--; SelectedQuest--;
if (selectedEntry < 0) { if (SelectedQuest < 0) {
selectedEntry = firstFinishedEntry - 1; SelectedQuest = FirstFinishedQuest - 1;
} }
PlaySFX(IS_TITLEMOV); PlaySFX(IS_TITLEMOV);
} }
@ -825,12 +826,12 @@ void QuestlogUp()
void QuestlogDown() void QuestlogDown()
{ {
if (firstFinishedEntry == 0) { if (FirstFinishedQuest == 0) {
selectedEntry = -1; SelectedQuest = -1;
} else { } else {
selectedEntry++; SelectedQuest++;
if (selectedEntry == firstFinishedEntry) { if (SelectedQuest == FirstFinishedQuest) {
selectedEntry = 0; SelectedQuest = 0;
} }
PlaySFX(IS_TITLEMOV); PlaySFX(IS_TITLEMOV);
} }
@ -839,8 +840,8 @@ void QuestlogDown()
void QuestlogEnter() void QuestlogEnter()
{ {
PlaySFX(IS_TITLSLCT); PlaySFX(IS_TITLSLCT);
if (qlistCnt != 0 && selectedEntry >= 0 && selectedEntry < firstFinishedEntry) if (EncounteredQuestCount != 0 && SelectedQuest >= 0 && SelectedQuest < FirstFinishedQuest)
InitQTextMsg(Quests[qlist[selectedEntry]]._qmsg); InitQTextMsg(Quests[EncounteredQuests[SelectedQuest]]._qmsg);
QuestLogIsOpen = false; QuestLogIsOpen = false;
} }

Loading…
Cancel
Save