From ed5d2d98e7c62d43942f9d19cae049f69c0190b8 Mon Sep 17 00:00:00 2001 From: ephphatha Date: Thu, 28 Jul 2022 19:27:47 +1000 Subject: [PATCH] Simplify AddBookLever --- Source/objects.cpp | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/Source/objects.cpp b/Source/objects.cpp index 093a0c379..a556a5b9c 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -459,22 +459,18 @@ void AddCandles() * @param affectedArea The map region to be updated when this object is activated by the player. * @param msg The quest text to play when the player activates the book. */ -void AddBookLever(Rectangle affectedArea, _speech_id msg) +void AddBookLever(_object_id type, Rectangle affectedArea, _speech_id msg) { std::optional position = GetRandomObjectPosition({ 2, 2 }); if (!position) return; - Object *lever = nullptr; - if (Quests[Q_BLIND].IsAvailable()) - lever = AddObject(OBJ_BLINDBOOK, *position); - if (Quests[Q_WARLORD].IsAvailable()) - lever = AddObject(OBJ_STEELTOME, *position); - if (Quests[Q_BLOOD].IsAvailable()) { + if (type == OBJ_BLOODBOOK) position = SetPiece.position.megaToWorld() + Displacement { 9, 24 }; - lever = AddObject(OBJ_BLOODBOOK, *position); - } + + Object *lever = AddObject(type, *position); assert(lever != nullptr); + lever->InitializeQuestBook(affectedArea, leverid, msg); leverid++; } @@ -4244,7 +4240,7 @@ void InitObjects() break; } Quests[Q_BLIND]._qmsg = spId; - AddBookLever({ SetPiece.position, { SetPiece.size.width + 1, SetPiece.size.height + 1 } }, spId); + AddBookLever(OBJ_BLINDBOOK, { SetPiece.position, SetPiece.size + 1 }, spId); LoadMapObjects("Levels\\L2Data\\Blind2.DUN", SetPiece.position.megaToWorld()); } if (Quests[Q_BLOOD].IsAvailable()) { @@ -4270,7 +4266,7 @@ void InitObjects() break; } Quests[Q_BLOOD]._qmsg = spId; - AddBookLever({ { SetPiece.position + Displacement { 0, 3 } }, { 2, 4 } }, spId); + AddBookLever(OBJ_BLOODBOOK, { SetPiece.position + Displacement { 0, 3 }, { 2, 4 } }, spId); AddObject(OBJ_PEDISTAL, SetPiece.position.megaToWorld() + Displacement { 9, 16 }); } InitRndBarrels(); @@ -4303,7 +4299,7 @@ void InitObjects() break; } Quests[Q_WARLORD]._qmsg = spId; - AddBookLever(SetPiece, spId); + AddBookLever(OBJ_STEELTOME, SetPiece, spId); LoadMapObjects("Levels\\L4Data\\Warlord.DUN", SetPiece.position.megaToWorld()); } if (Quests[Q_BETRAYER].IsAvailable() && !gbIsMultiplayer)