MCPcopy Create free account
hub / github.com/diasurgical/devilution / CheckQuests

Function CheckQuests

Source/quests.cpp:135–206  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

133}
134
135void CheckQuests()
136{
137#ifndef SPAWN
138 int i, rportx, rporty;
139
140 if (QuestStatus(QTYPE_VB) && gbMaxPlayers != 1 && quests[QTYPE_VB]._qvar1 == 2) {
141 AddObject(OBJ_ALTBOY, 2 * setpc_x + 20, 2 * setpc_y + 22);
142 quests[QTYPE_VB]._qvar1 = 3;
143 NetSendCmdQuest(TRUE, QTYPE_VB);
144 }
145
146 if (gbMaxPlayers != 1) {
147 return;
148 }
149
150 if (currlevel == quests[QTYPE_VB]._qlevel
151 && !setlevel
152 && quests[QTYPE_VB]._qvar1 >= 2
153 && (quests[QTYPE_VB]._qactive == 2 || quests[QTYPE_VB]._qactive == 3)
154 && (quests[QTYPE_VB]._qvar2 == 0 || quests[QTYPE_VB]._qvar2 == 2)) {
155 quests[QTYPE_VB]._qtx = 2 * quests[QTYPE_VB]._qtx + 16;
156 quests[QTYPE_VB]._qty = 2 * quests[QTYPE_VB]._qty + 16;
157 rportx = quests[QTYPE_VB]._qtx;
158 rporty = quests[QTYPE_VB]._qty;
159 AddMissile(rportx, rporty, rportx, rporty, 0, MIS_RPORTAL, 0, myplr, 0, 0);
160 quests[QTYPE_VB]._qvar2 = 1;
161 if (quests[QTYPE_VB]._qactive == 2) {
162 quests[QTYPE_VB]._qvar1 = 3;
163 }
164 }
165
166 if (quests[QTYPE_VB]._qactive == 3
167 && setlevel
168 && setlvlnum == SL_VILEBETRAYER
169 && quests[QTYPE_VB]._qvar2 == 4) {
170 rportx = 35;
171 rporty = 32;
172 AddMissile(rportx, rporty, rportx, rporty, 0, MIS_RPORTAL, 0, myplr, 0, 0);
173 quests[QTYPE_VB]._qvar2 = 3;
174 }
175
176 if (setlevel) {
177 if (setlvlnum == quests[QTYPE_PW]._qslvl
178 && quests[QTYPE_PW]._qactive != 1
179 && leveltype == quests[QTYPE_PW]._qlvltype
180 && nummonsters == 4
181 && quests[QTYPE_PW]._qactive != 3) {
182 quests[QTYPE_PW]._qactive = 3;
183 PlaySfxLoc(IS_QUESTDN, plr[myplr].WorldX, plr[myplr].WorldY);
184 LoadPalette("Levels\\L3Data\\L3pwater.pal");
185 WaterDone = 32;
186 }
187 if (WaterDone > 0) {
188 palette_update_quest_palette(WaterDone);
189 WaterDone--;
190 }
191 } else if (plr[myplr]._pmode == PM_STAND) {
192 for (i = 0; i < MAXQUESTS; i++) {

Callers 1

game_logicFunction · 0.85

Calls 8

QuestStatusFunction · 0.85
AddObjectFunction · 0.85
NetSendCmdQuestFunction · 0.85
AddMissileFunction · 0.85
PlaySfxLocFunction · 0.85
LoadPaletteFunction · 0.85
StartNewLvlFunction · 0.85

Tested by

no test coverage detected