Browse Source

♻️ Leverage 'Point' struct on 'SpawnUnique'

pull/2099/head
Juliano Leal Goncalves 5 years ago committed by Anders Jenbo
parent
commit
b04047ba4d
  1. 8
      Source/items.cpp
  2. 2
      Source/items.h
  3. 2
      Source/monster.cpp
  4. 4
      Source/objects.cpp
  5. 10
      Source/towners.cpp

8
Source/items.cpp

@ -2446,13 +2446,13 @@ void GetUniqueItem(int i, _unique_items uid)
items[i]._iCreateInfo |= CF_UNIQUE;
}
void SpawnUnique(_unique_items uid, int x, int y)
void SpawnUnique(_unique_items uid, Point position)
{
if (numitems >= MAXITEMS)
return;
int ii = AllocateItem();
GetSuperItemSpace({ x, y }, ii);
GetSuperItemSpace(position, ii);
int curlv = items_get_currlevel();
int idx = 0;
@ -2535,7 +2535,7 @@ void SpawnItem(int m, Point position, bool sendmsg)
if (monster[m]._uniqtype || ((monster[m].MData->mTreasure & 0x8000) && gbIsMultiplayer)) {
idx = RndUItem(m);
if (idx < 0) {
SpawnUnique((_unique_items) - (idx + 1), position.x, position.y);
SpawnUnique((_unique_items) - (idx + 1), position);
return;
}
onlygood = true;
@ -2547,7 +2547,7 @@ void SpawnItem(int m, Point position, bool sendmsg)
idx--;
onlygood = false;
} else {
SpawnUnique((_unique_items) - (idx + 1), position.x, position.y);
SpawnUnique((_unique_items) - (idx + 1), position);
return;
}
} else {

2
Source/items.h

@ -414,7 +414,7 @@ void SaveItemPower(int i, item_effect_type power, int param1, int param2, int mi
void GetItemPower(int i, int minlvl, int maxlvl, affix_item_type flgs, bool onlygood);
void SetupItem(int i);
int RndItem(int m);
void SpawnUnique(_unique_items uid, int x, int y);
void SpawnUnique(_unique_items uid, Point position);
void SpawnItem(int m, Point position, bool sendmsg);
void CreateRndItem(Point position, bool onlygood, bool sendmsg, bool delta);
void CreateRndUseful(Point position, bool sendmsg);

2
Source/monster.cpp

@ -2453,7 +2453,7 @@ bool M_DoTalk(int i)
quests[Q_VEIL]._qlog = true;
}
if (monster[i].mtalkmsg == TEXT_VEIL11 && !(monster[i]._mFlags & MFLAG_QUEST_COMPLETE)) {
SpawnUnique(UITEM_STEELVEIL, monster[i].position.tile.x + 1, monster[i].position.tile.y + 1);
SpawnUnique(UITEM_STEELVEIL, monster[i].position.tile + DIR_S);
monster[i]._mFlags |= MFLAG_QUEST_COMPLETE;
}
}

4
Source/objects.cpp

@ -3018,7 +3018,7 @@ void OperateBookLever(int pnum, int i)
if (object[i]._otype != OBJ_BLOODBOOK)
ObjChangeMap(object[i]._oVar1, object[i]._oVar2, object[i]._oVar3, object[i]._oVar4);
if (object[i]._otype == OBJ_BLINDBOOK) {
SpawnUnique(UITEM_OPTAMULET, x + 5, y + 5);
SpawnUnique(UITEM_OPTAMULET, Point { x, y } + Point { 5, 5 });
tren = TransVal;
TransVal = 9;
DRLG_MRectTrans(object[i]._oVar1, object[i]._oVar2, object[i]._oVar3, object[i]._oVar4);
@ -3316,7 +3316,7 @@ void OperatePedistal(int pnum, int i)
PlaySfxLoc(LS_BLODSTAR, object[i].position.x, object[i].position.y);
ObjChangeMap(object[i]._oVar1, object[i]._oVar2, object[i]._oVar3, object[i]._oVar4);
LoadMapObjs("Levels\\L2Data\\Blood2.DUN", 2 * setpc_x, 2 * setpc_y);
SpawnUnique(UITEM_ARMOFVAL, 2 * setpc_x + 25, 2 * setpc_y + 19);
SpawnUnique(UITEM_ARMOFVAL, Point { setpc_x, setpc_y } * 2 + Point { 25, 19 });
object[i]._oSelFlag = 0;
}
}

10
Source/towners.cpp

@ -359,7 +359,7 @@ void TalkToBarOwner(PlayerStruct &player, TownerStruct &barOwner)
quests[Q_LTBANNER]._qactive = QUEST_DONE;
quests[Q_LTBANNER]._qvar1 = 3;
player.RemoveInvItem(i);
SpawnUnique(UITEM_HARCREST, barOwner.position.x, barOwner.position.y + 1);
SpawnUnique(UITEM_HARCREST, barOwner.position + DIR_SW);
InitQTextMsg(TEXT_BANNER3);
return;
}
@ -405,7 +405,7 @@ void TalkToBlackSmith(PlayerStruct &player, TownerStruct &blackSmith)
if (quests[Q_ROCK]._qvar2 == 1 && player.HasItem(IDI_ROCK, &i)) {
quests[Q_ROCK]._qactive = QUEST_DONE;
player.RemoveInvItem(i);
SpawnUnique(UITEM_INFRARING, blackSmith.position.x, blackSmith.position.y + 1);
SpawnUnique(UITEM_INFRARING, blackSmith.position + DIR_SW);
InitQTextMsg(TEXT_INFRA7);
return;
}
@ -426,7 +426,7 @@ void TalkToBlackSmith(PlayerStruct &player, TownerStruct &blackSmith)
if (quests[Q_ANVIL]._qvar2 == 1 && player.HasItem(IDI_ANVIL, &i)) {
quests[Q_ANVIL]._qactive = QUEST_DONE;
player.RemoveInvItem(i);
SpawnUnique(UITEM_GRISWOLD, blackSmith.position.x, blackSmith.position.y + 1);
SpawnUnique(UITEM_GRISWOLD, blackSmith.position + DIR_SW);
InitQTextMsg(TEXT_ANVIL7);
return;
}
@ -520,7 +520,7 @@ void TalkToHealer(PlayerStruct &player, TownerStruct &healer)
if (quests[Q_PWATER]._qactive == QUEST_DONE && quests[Q_PWATER]._qvar1 != 2) {
quests[Q_PWATER]._qvar1 = 2;
InitQTextMsg(TEXT_POISON5);
SpawnUnique(UITEM_TRING, healer.position.x, healer.position.y + 1);
SpawnUnique(UITEM_TRING, healer.position + DIR_SW);
return;
}
}
@ -670,7 +670,7 @@ void TalkToCowFarmer(PlayerStruct &player, TownerStruct &cowFarmer)
}
if (player.HasItem(IDI_BROWNSUIT, &i)) {
SpawnUnique(UITEM_BOVINE, cowFarmer.position.x + 1, cowFarmer.position.y);
SpawnUnique(UITEM_BOVINE, cowFarmer.position + DIR_SE);
player.RemoveInvItem(i);
InitQTextMsg(TEXT_JERSEY8);
quests[Q_JERSEY]._qactive = QUEST_DONE;

Loading…
Cancel
Save