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

Function CheckQuestItem

Source/inv.cpp:1371–1449  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1369}
1370
1371void CheckQuestItem(int pnum)
1372{
1373 if (plr[pnum].HoldItem.IDidx == IDI_OPTAMULET)
1374 quests[QTYPE_BLIND]._qactive = 3;
1375 if (plr[pnum].HoldItem.IDidx == IDI_MUSHROOM && quests[QTYPE_BLKM]._qactive == 2 && quests[QTYPE_BLKM]._qvar1 == QS_MUSHSPAWNED) {
1376#ifndef SPAWN
1377 sfxdelay = 10;
1378 if (plr[pnum]._pClass == PC_WARRIOR) { // BUGFIX: Voice for this quest might be wrong in MP
1379 sfxdnum = PS_WARR95;
1380 } else if (plr[pnum]._pClass == PC_ROGUE) {
1381 sfxdnum = PS_ROGUE95;
1382 } else if (plr[pnum]._pClass == PC_SORCERER) {
1383 sfxdnum = PS_MAGE95;
1384 }
1385#endif
1386 quests[QTYPE_BLKM]._qvar1 = QS_MUSHPICKED;
1387 }
1388 if (plr[pnum].HoldItem.IDidx == IDI_ANVIL) {
1389 if (quests[QTYPE_ANVIL]._qactive == 1) {
1390 quests[QTYPE_ANVIL]._qactive = 2;
1391 quests[QTYPE_ANVIL]._qvar1 = 1;
1392 }
1393#ifndef SPAWN
1394 if (quests[QTYPE_ANVIL]._qlog == 1) {
1395 sfxdelay = 10;
1396 if (plr[myplr]._pClass == PC_WARRIOR) {
1397 sfxdnum = PS_WARR89;
1398 } else if (plr[myplr]._pClass == PC_ROGUE) {
1399 sfxdnum = PS_ROGUE89;
1400 } else if (plr[myplr]._pClass == PC_SORCERER) {
1401 sfxdnum = PS_MAGE89;
1402 }
1403 }
1404#endif
1405 }
1406#ifndef SPAWN
1407 if (plr[pnum].HoldItem.IDidx == IDI_GLDNELIX) {
1408 sfxdelay = 30;
1409 if (plr[myplr]._pClass == PC_WARRIOR) {
1410 sfxdnum = PS_WARR88;
1411 } else if (plr[myplr]._pClass == PC_ROGUE) {
1412 sfxdnum = PS_ROGUE88;
1413 } else if (plr[myplr]._pClass == PC_SORCERER) {
1414 sfxdnum = PS_MAGE88;
1415 }
1416 }
1417#endif
1418 if (plr[pnum].HoldItem.IDidx == IDI_ROCK) {
1419 if (quests[QTYPE_INFRA]._qactive == 1) {
1420 quests[QTYPE_INFRA]._qactive = 2;
1421 quests[QTYPE_INFRA]._qvar1 = 1;
1422 }
1423#ifndef SPAWN
1424 if (quests[QTYPE_INFRA]._qlog == 1) {
1425 sfxdelay = 10;
1426 if (plr[myplr]._pClass == PC_WARRIOR) {
1427 sfxdnum = PS_WARR87;
1428 } else if (plr[myplr]._pClass == PC_ROGUE) {

Callers 2

InvGetItemFunction · 0.85
AutoGetItemFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected