Browse Source

Use player by reference in OperateShrine

pull/4814/head
Anders Jenbo 4 years ago
parent
commit
b68fd1ff5e
  1. 271
      Source/objects.cpp

271
Source/objects.cpp

@ -2551,13 +2551,11 @@ void OperatePedistal(int pnum, int i)
} }
} }
void OperateShrineMysterious(int pnum) void OperateShrineMysterious(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
ModifyPlrStr(player, -1); ModifyPlrStr(player, -1);
ModifyPlrMag(player, -1); ModifyPlrMag(player, -1);
ModifyPlrDex(player, -1); ModifyPlrDex(player, -1);
@ -2585,13 +2583,11 @@ void OperateShrineMysterious(int pnum)
InitDiabloMsg(EMSG_SHRINE_MYSTERIOUS); InitDiabloMsg(EMSG_SHRINE_MYSTERIOUS);
} }
void OperateShrineHidden(int pnum) void OperateShrineHidden(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
int cnt = 0; int cnt = 0;
for (const auto &item : player.InvBody) { for (const auto &item : player.InvBody) {
if (!item.isEmpty()) if (!item.isEmpty())
@ -2634,13 +2630,11 @@ void OperateShrineHidden(int pnum)
InitDiabloMsg(EMSG_SHRINE_HIDDEN); InitDiabloMsg(EMSG_SHRINE_HIDDEN);
} }
void OperateShrineGloomy(int pnum) void OperateShrineGloomy(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
// Increment armor class by 2 and decrements max damage by 1. // Increment armor class by 2 and decrements max damage by 1.
for (Item &item : PlayerItemsRange(player)) { for (Item &item : PlayerItemsRange(player)) {
switch (item._itype) { switch (item._itype) {
@ -2665,18 +2659,16 @@ void OperateShrineGloomy(int pnum)
} }
} }
CalcPlrInv(Players[pnum], true); CalcPlrInv(player, true);
InitDiabloMsg(EMSG_SHRINE_GLOOMY); InitDiabloMsg(EMSG_SHRINE_GLOOMY);
} }
void OperateShrineWeird(int pnum) void OperateShrineWeird(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
if (!player.InvBody[INVLOC_HAND_LEFT].isEmpty() && player.InvBody[INVLOC_HAND_LEFT]._itype != ItemType::Shield) if (!player.InvBody[INVLOC_HAND_LEFT].isEmpty() && player.InvBody[INVLOC_HAND_LEFT]._itype != ItemType::Shield)
player.InvBody[INVLOC_HAND_LEFT]._iMaxDam++; player.InvBody[INVLOC_HAND_LEFT]._iMaxDam++;
if (!player.InvBody[INVLOC_HAND_RIGHT].isEmpty() && player.InvBody[INVLOC_HAND_RIGHT]._itype != ItemType::Shield) if (!player.InvBody[INVLOC_HAND_RIGHT].isEmpty() && player.InvBody[INVLOC_HAND_RIGHT]._itype != ItemType::Shield)
@ -2696,7 +2688,7 @@ void OperateShrineWeird(int pnum)
} }
} }
CalcPlrInv(Players[pnum], true); CalcPlrInv(player, true);
InitDiabloMsg(EMSG_SHRINE_WEIRD); InitDiabloMsg(EMSG_SHRINE_WEIRD);
} }
@ -2705,9 +2697,6 @@ void OperateShrineMagical(int pnum)
{ {
Player &player = Players[pnum]; Player &player = Players[pnum];
if (pnum != MyPlayerId)
return;
AddMissile( AddMissile(
player.position.tile, player.position.tile,
player.position.tile, player.position.tile,
@ -2718,15 +2707,18 @@ void OperateShrineMagical(int pnum)
0, 0,
2 * leveltype); 2 * leveltype);
if (&player != MyPlayer)
return;
InitDiabloMsg(EMSG_SHRINE_MAGICAL); InitDiabloMsg(EMSG_SHRINE_MAGICAL);
} }
void OperateShrineStone(int pnum) void OperateShrineStone(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
for (Item &item : PlayerItemsRange { Players[pnum] }) { for (Item &item : PlayerItemsRange { player }) {
if (item._itype == ItemType::Staff) if (item._itype == ItemType::Staff)
item._iCharges = item._iMaxCharges; item._iCharges = item._iMaxCharges;
} }
@ -2736,25 +2728,23 @@ void OperateShrineStone(int pnum)
InitDiabloMsg(EMSG_SHRINE_STONE); InitDiabloMsg(EMSG_SHRINE_STONE);
} }
void OperateShrineReligious(int pnum) void OperateShrineReligious(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
for (Item &item : PlayerItemsRange { Players[pnum] }) { for (Item &item : PlayerItemsRange { player }) {
item._iDurability = item._iMaxDur; item._iDurability = item._iMaxDur;
} }
InitDiabloMsg(EMSG_SHRINE_RELIGIOUS); InitDiabloMsg(EMSG_SHRINE_RELIGIOUS);
} }
void OperateShrineEnchanted(int pnum) void OperateShrineEnchanted(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
int cnt = 0; int cnt = 0;
uint64_t spell = 1; uint64_t spell = 1;
int maxSpells = gbIsHellfire ? MAX_SPELLS : 37; int maxSpells = gbIsHellfire ? MAX_SPELLS : 37;
@ -2786,7 +2776,7 @@ void OperateShrineEnchanted(int pnum)
InitDiabloMsg(EMSG_SHRINE_ENCHANTED); InitDiabloMsg(EMSG_SHRINE_ENCHANTED);
} }
void OperateShrineThaumaturgic(int pnum) void OperateShrineThaumaturgic(Player &player)
{ {
for (int j = 0; j < ActiveObjectCount; j++) { for (int j = 0; j < ActiveObjectCount; j++) {
int v1 = ActiveObjects[j]; int v1 = ActiveObjects[j];
@ -2798,19 +2788,17 @@ void OperateShrineThaumaturgic(int pnum)
} }
} }
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
InitDiabloMsg(EMSG_SHRINE_THAUMATURGIC); InitDiabloMsg(EMSG_SHRINE_THAUMATURGIC);
} }
void OperateShrineCostOfWisdom(int pnum, spell_id spellId, diablo_message message) void OperateShrineCostOfWisdom(Player &player, spell_id spellId, diablo_message message)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
player._pMemSpells |= GetSpellBitmask(spellId); player._pMemSpells |= GetSpellBitmask(spellId);
if (player._pSplLvl[spellId] < MAX_SPELL_LEVEL) if (player._pSplLvl[spellId] < MAX_SPELL_LEVEL)
@ -2853,7 +2841,7 @@ void OperateShrineCryptic(int pnum)
0, 0,
2 * leveltype); 2 * leveltype);
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
player._pMana = player._pMaxMana; player._pMana = player._pMaxMana;
@ -2864,12 +2852,12 @@ void OperateShrineCryptic(int pnum)
force_redraw = 255; force_redraw = 255;
} }
void OperateShrineEldritch(int pnum) void OperateShrineEldritch(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
for (Item &item : InventoryAndBeltPlayerItemsRange { Players[pnum] }) { for (Item &item : InventoryAndBeltPlayerItemsRange { player }) {
if (item._itype != ItemType::Misc) { if (item._itype != ItemType::Misc) {
continue; continue;
} }
@ -2890,13 +2878,11 @@ void OperateShrineEldritch(int pnum)
InitDiabloMsg(EMSG_SHRINE_ELDRITCH); InitDiabloMsg(EMSG_SHRINE_ELDRITCH);
} }
void OperateShrineEerie(int pnum) void OperateShrineEerie(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
ModifyPlrMag(player, 2); ModifyPlrMag(player, 2);
CheckStats(player); CheckStats(player);
CalcPlrInv(player, true); CalcPlrInv(player, true);
@ -2908,18 +2894,15 @@ void OperateShrineEerie(int pnum)
/** /**
* @brief Fully restores HP and Mana of the active player and spawns a pair of potions * @brief Fully restores HP and Mana of the active player and spawns a pair of potions
* in response to the player activating a Divine shrine * in response to the player activating a Divine shrine
* @param pnum The player that activated the shrine
* @param spawnPosition The map tile where the potions will be spawned * @param spawnPosition The map tile where the potions will be spawned
* @return false if the shrine was activated by another player in a multiplayer game and * @return false if the shrine was activated by another player in a multiplayer game and
* no changes were made by this instance, true otherwise. * no changes were made by this instance, true otherwise.
*/ */
void OperateShrineDivine(int pnum, Point spawnPosition) void OperateShrineDivine(Player &player, Point spawnPosition)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
if (currlevel < 4) { if (currlevel < 4) {
CreateTypeItem(spawnPosition, false, ItemType::Misc, IMISC_FULLMANA, false, true); CreateTypeItem(spawnPosition, false, ItemType::Misc, IMISC_FULLMANA, false, true);
CreateTypeItem(spawnPosition, false, ItemType::Misc, IMISC_FULLHEAL, false, true); CreateTypeItem(spawnPosition, false, ItemType::Misc, IMISC_FULLHEAL, false, true);
@ -2940,21 +2923,21 @@ void OperateShrineDivine(int pnum, Point spawnPosition)
void OperateShrineHoly(int pnum) void OperateShrineHoly(int pnum)
{ {
AddMissile(Players[pnum].position.tile, { 0, 0 }, Direction::South, MIS_RNDTELEPORT, TARGET_PLAYERS, pnum, 0, 2 * leveltype); Player &player = Players[pnum];
AddMissile(player.position.tile, { 0, 0 }, Direction::South, MIS_RNDTELEPORT, TARGET_PLAYERS, pnum, 0, 2 * leveltype);
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
InitDiabloMsg(EMSG_SHRINE_HOLY); InitDiabloMsg(EMSG_SHRINE_HOLY);
} }
void OperateShrineSpiritual(int pnum) void OperateShrineSpiritual(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
for (int8_t &itemIndex : player.InvGrid) { for (int8_t &itemIndex : player.InvGrid) {
if (itemIndex == 0) { if (itemIndex == 0) {
Item &goldItem = player.InvList[player._pNumInv]; Item &goldItem = player.InvList[player._pNumInv];
@ -2969,9 +2952,9 @@ void OperateShrineSpiritual(int pnum)
InitDiabloMsg(EMSG_SHRINE_SPIRITUAL); InitDiabloMsg(EMSG_SHRINE_SPIRITUAL);
} }
void OperateShrineSpooky(int pnum) void OperateShrineSpooky(Player &player)
{ {
if (pnum == MyPlayerId) { if (&player == MyPlayer) {
InitDiabloMsg(EMSG_SHRINE_SPOOKY1); InitDiabloMsg(EMSG_SHRINE_SPOOKY1);
return; return;
} }
@ -2988,13 +2971,11 @@ void OperateShrineSpooky(int pnum)
InitDiabloMsg(EMSG_SHRINE_SPOOKY2); InitDiabloMsg(EMSG_SHRINE_SPOOKY2);
} }
void OperateShrineAbandoned(int pnum) void OperateShrineAbandoned(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
ModifyPlrDex(player, 2); ModifyPlrDex(player, 2);
CheckStats(player); CheckStats(player);
CalcPlrInv(player, true); CalcPlrInv(player, true);
@ -3003,13 +2984,11 @@ void OperateShrineAbandoned(int pnum)
InitDiabloMsg(EMSG_SHRINE_ABANDONED); InitDiabloMsg(EMSG_SHRINE_ABANDONED);
} }
void OperateShrineCreepy(int pnum) void OperateShrineCreepy(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
ModifyPlrStr(player, 2); ModifyPlrStr(player, 2);
CheckStats(player); CheckStats(player);
CalcPlrInv(player, true); CalcPlrInv(player, true);
@ -3018,13 +2997,11 @@ void OperateShrineCreepy(int pnum)
InitDiabloMsg(EMSG_SHRINE_CREEPY); InitDiabloMsg(EMSG_SHRINE_CREEPY);
} }
void OperateShrineQuiet(int pnum) void OperateShrineQuiet(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
ModifyPlrVit(player, 2); ModifyPlrVit(player, 2);
CheckStats(player); CheckStats(player);
CalcPlrInv(player, true); CalcPlrInv(player, true);
@ -3033,9 +3010,9 @@ void OperateShrineQuiet(int pnum)
InitDiabloMsg(EMSG_SHRINE_QUIET); InitDiabloMsg(EMSG_SHRINE_QUIET);
} }
void OperateShrineSecluded(int pnum) void OperateShrineSecluded(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
for (int x = 0; x < DMAXX; x++) for (int x = 0; x < DMAXX; x++)
@ -3045,26 +3022,26 @@ void OperateShrineSecluded(int pnum)
InitDiabloMsg(EMSG_SHRINE_SECLUDED); InitDiabloMsg(EMSG_SHRINE_SECLUDED);
} }
void OperateShrineGlimmering(int pnum) void OperateShrineGlimmering(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
for (Item &item : PlayerItemsRange { Players[pnum] }) { for (Item &item : PlayerItemsRange { player }) {
if (item._iMagical != ITEM_QUALITY_NORMAL && !item._iIdentified) { if (item._iMagical != ITEM_QUALITY_NORMAL && !item._iIdentified) {
item._iIdentified = true; item._iIdentified = true;
} }
} }
CalcPlrInv(Players[pnum], true); CalcPlrInv(player, true);
force_redraw = 255; force_redraw = 255;
InitDiabloMsg(EMSG_SHRINE_GLIMMERING); InitDiabloMsg(EMSG_SHRINE_GLIMMERING);
} }
void OperateShrineTainted(int pnum) void OperateShrineTainted(Player &player)
{ {
if (pnum == MyPlayerId) { if (&player == MyPlayer) {
InitDiabloMsg(EMSG_SHRINE_TAINTED1); InitDiabloMsg(EMSG_SHRINE_TAINTED1);
return; return;
} }
@ -3076,15 +3053,15 @@ void OperateShrineTainted(int pnum)
int v3 = r == 2 ? 1 : -1; int v3 = r == 2 ? 1 : -1;
int v4 = r == 3 ? 1 : -1; int v4 = r == 3 ? 1 : -1;
Player &player = *MyPlayer; Player &myPlayer = *MyPlayer;
ModifyPlrStr(player, v1); ModifyPlrStr(myPlayer, v1);
ModifyPlrMag(player, v2); ModifyPlrMag(myPlayer, v2);
ModifyPlrDex(player, v3); ModifyPlrDex(myPlayer, v3);
ModifyPlrVit(player, v4); ModifyPlrVit(myPlayer, v4);
CheckStats(player); CheckStats(myPlayer);
CalcPlrInv(player, true); CalcPlrInv(myPlayer, true);
force_redraw = 255; force_redraw = 255;
InitDiabloMsg(EMSG_SHRINE_TAINTED2); InitDiabloMsg(EMSG_SHRINE_TAINTED2);
@ -3093,16 +3070,13 @@ void OperateShrineTainted(int pnum)
/** /**
* @brief Oily shrines increase the players primary stat(s) by a total of two, but spawn a * @brief Oily shrines increase the players primary stat(s) by a total of two, but spawn a
* firewall near the shrine that will spread towards the player * firewall near the shrine that will spread towards the player
* @param pnum The player that activated the shrine
* @param spawnPosition Start location for the firewall * @param spawnPosition Start location for the firewall
*/ */
void OperateShrineOily(int pnum, Point spawnPosition) void OperateShrineOily(Player &player, Point spawnPosition)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
switch (player._pClass) { switch (player._pClass) {
case HeroClass::Warrior: case HeroClass::Warrior:
ModifyPlrStr(player, 2); ModifyPlrStr(player, 2);
@ -3126,8 +3100,8 @@ void OperateShrineOily(int pnum, Point spawnPosition)
break; break;
} }
CheckStats(Players[pnum]); CheckStats(player);
CalcPlrInv(Players[pnum], true); CalcPlrInv(player, true);
force_redraw = 255; force_redraw = 255;
AddMissile( AddMissile(
@ -3143,13 +3117,11 @@ void OperateShrineOily(int pnum, Point spawnPosition)
InitDiabloMsg(EMSG_SHRINE_OILY); InitDiabloMsg(EMSG_SHRINE_OILY);
} }
void OperateShrineGlowing(int pnum) void OperateShrineGlowing(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
// Add 0-5 points to Magic (0.1% of the players XP) // Add 0-5 points to Magic (0.1% of the players XP)
ModifyPlrMag(player, static_cast<int>(std::min<uint32_t>(player._pExperience / 1000, 5))); ModifyPlrMag(player, static_cast<int>(std::min<uint32_t>(player._pExperience / 1000, 5)));
@ -3165,13 +3137,11 @@ void OperateShrineGlowing(int pnum)
InitDiabloMsg(EMSG_SHRINE_GLOWING); InitDiabloMsg(EMSG_SHRINE_GLOWING);
} }
void OperateShrineMendicant(int pnum) void OperateShrineMendicant(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
int gold = player._pGold / 2; int gold = player._pGold / 2;
AddPlrExperience(player, player._pLevel, gold); AddPlrExperience(player, player._pLevel, gold);
TakePlrsMoney(gold); TakePlrsMoney(gold);
@ -3183,16 +3153,13 @@ void OperateShrineMendicant(int pnum)
/** /**
* @brief Grants experience to the player based on their current level while also triggering a magic trap * @brief Grants experience to the player based on their current level while also triggering a magic trap
* @param pnum The player that activated the shrine
* @param spawnPosition The trap results in casting flash from this location targeting the player * @param spawnPosition The trap results in casting flash from this location targeting the player
*/ */
void OperateShrineSparkling(int pnum, Point spawnPosition) void OperateShrineSparkling(Player &player, Point spawnPosition)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
AddPlrExperience(player, player._pLevel, 1000 * currlevel); AddPlrExperience(player, player._pLevel, 1000 * currlevel);
AddMissile( AddMissile(
@ -3217,15 +3184,15 @@ void OperateShrineSparkling(int pnum, Point spawnPosition)
*/ */
void OperateShrineTown(int pnum, Point spawnPosition) void OperateShrineTown(int pnum, Point spawnPosition)
{ {
if (pnum != MyPlayerId) Player &player = Players[pnum];
return;
Player &myPlayer = *MyPlayer; if (&player != MyPlayer)
return;
AddMissile( AddMissile(
spawnPosition, spawnPosition,
myPlayer.position.tile, player.position.tile,
myPlayer._pdir, player._pdir,
MIS_TOWN, MIS_TOWN,
TARGET_PLAYERS, TARGET_PLAYERS,
pnum, pnum,
@ -3235,13 +3202,11 @@ void OperateShrineTown(int pnum, Point spawnPosition)
InitDiabloMsg(EMSG_SHRINE_TOWN); InitDiabloMsg(EMSG_SHRINE_TOWN);
} }
void OperateShrineShimmering(int pnum) void OperateShrineShimmering(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
player._pMana = player._pMaxMana; player._pMana = player._pMaxMana;
player._pManaBase = player._pMaxManaBase; player._pManaBase = player._pMaxManaBase;
@ -3250,13 +3215,11 @@ void OperateShrineShimmering(int pnum)
InitDiabloMsg(EMSG_SHRINE_SHIMMERING); InitDiabloMsg(EMSG_SHRINE_SHIMMERING);
} }
void OperateShrineSolar(int pnum) void OperateShrineSolar(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &player = Players[pnum];
time_t tm = time(nullptr); time_t tm = time(nullptr);
int hour = localtime(&tm)->tm_hour; int hour = localtime(&tm)->tm_hour;
if (hour >= 20 || hour < 4) { if (hour >= 20 || hour < 4) {
@ -3278,15 +3241,13 @@ void OperateShrineSolar(int pnum)
force_redraw = 255; force_redraw = 255;
} }
void OperateShrineMurphys(int pnum) void OperateShrineMurphys(Player &player)
{ {
if (pnum != MyPlayerId) if (&player != MyPlayer)
return; return;
Player &myPlayer = *MyPlayer;
bool broke = false; bool broke = false;
for (auto &item : myPlayer.InvBody) { for (auto &item : player.InvBody) {
if (!item.isEmpty() && GenerateRnd(3) == 0) { if (!item.isEmpty() && GenerateRnd(3) == 0) {
if (item._iDurability != DUR_INDESTRUCTIBLE) { if (item._iDurability != DUR_INDESTRUCTIBLE) {
if (item._iDurability > 0) { if (item._iDurability > 0) {
@ -3298,7 +3259,7 @@ void OperateShrineMurphys(int pnum)
} }
} }
if (!broke) { if (!broke) {
TakePlrsMoney(myPlayer._pGold / 3); TakePlrsMoney(player._pGold / 3);
} }
InitDiabloMsg(EMSG_SHRINE_MURPHYS); InitDiabloMsg(EMSG_SHRINE_MURPHYS);
@ -3324,110 +3285,112 @@ void OperateShrine(int pnum, int i, _sfx_id sType)
shrine._oAnimFlag = true; shrine._oAnimFlag = true;
shrine._oAnimDelay = 1; shrine._oAnimDelay = 1;
Player &player = Players[pnum];
switch (shrine._oVar1) { switch (shrine._oVar1) {
case ShrineMysterious: case ShrineMysterious:
OperateShrineMysterious(pnum); OperateShrineMysterious(player);
break; break;
case ShrineHidden: case ShrineHidden:
OperateShrineHidden(pnum); OperateShrineHidden(player);
break; break;
case ShrineGloomy: case ShrineGloomy:
OperateShrineGloomy(pnum); OperateShrineGloomy(player);
break; break;
case ShrineWeird: case ShrineWeird:
OperateShrineWeird(pnum); OperateShrineWeird(player);
break; break;
case ShrineMagical: case ShrineMagical:
case ShrineMagicaL2: case ShrineMagicaL2:
OperateShrineMagical(pnum); OperateShrineMagical(pnum);
break; break;
case ShrineStone: case ShrineStone:
OperateShrineStone(pnum); OperateShrineStone(player);
break; break;
case ShrineReligious: case ShrineReligious:
OperateShrineReligious(pnum); OperateShrineReligious(player);
break; break;
case ShrineEnchanted: case ShrineEnchanted:
OperateShrineEnchanted(pnum); OperateShrineEnchanted(player);
break; break;
case ShrineThaumaturgic: case ShrineThaumaturgic:
OperateShrineThaumaturgic(pnum); OperateShrineThaumaturgic(player);
break; break;
case ShrineFascinating: case ShrineFascinating:
OperateShrineCostOfWisdom(pnum, SPL_FIREBOLT, EMSG_SHRINE_FASCINATING); OperateShrineCostOfWisdom(player, SPL_FIREBOLT, EMSG_SHRINE_FASCINATING);
break; break;
case ShrineCryptic: case ShrineCryptic:
OperateShrineCryptic(pnum); OperateShrineCryptic(pnum);
break; break;
case ShrineEldritch: case ShrineEldritch:
OperateShrineEldritch(pnum); OperateShrineEldritch(player);
break; break;
case ShrineEerie: case ShrineEerie:
OperateShrineEerie(pnum); OperateShrineEerie(player);
break; break;
case ShrineDivine: case ShrineDivine:
OperateShrineDivine(pnum, shrine.position); OperateShrineDivine(player, shrine.position);
break; break;
case ShrineHoly: case ShrineHoly:
OperateShrineHoly(pnum); OperateShrineHoly(pnum);
break; break;
case ShrineSacred: case ShrineSacred:
OperateShrineCostOfWisdom(pnum, SPL_CBOLT, EMSG_SHRINE_SACRED); OperateShrineCostOfWisdom(player, SPL_CBOLT, EMSG_SHRINE_SACRED);
break; break;
case ShrineSpiritual: case ShrineSpiritual:
OperateShrineSpiritual(pnum); OperateShrineSpiritual(player);
break; break;
case ShrineSpooky: case ShrineSpooky:
OperateShrineSpooky(pnum); OperateShrineSpooky(player);
break; break;
case ShrineAbandoned: case ShrineAbandoned:
OperateShrineAbandoned(pnum); OperateShrineAbandoned(player);
break; break;
case ShrineCreepy: case ShrineCreepy:
OperateShrineCreepy(pnum); OperateShrineCreepy(player);
break; break;
case ShrineQuiet: case ShrineQuiet:
OperateShrineQuiet(pnum); OperateShrineQuiet(player);
break; break;
case ShrineSecluded: case ShrineSecluded:
OperateShrineSecluded(pnum); OperateShrineSecluded(player);
break; break;
case ShrineOrnate: case ShrineOrnate:
OperateShrineCostOfWisdom(pnum, SPL_HBOLT, EMSG_SHRINE_ORNATE); OperateShrineCostOfWisdom(player, SPL_HBOLT, EMSG_SHRINE_ORNATE);
break; break;
case ShrineGlimmering: case ShrineGlimmering:
OperateShrineGlimmering(pnum); OperateShrineGlimmering(player);
break; break;
case ShrineTainted: case ShrineTainted:
OperateShrineTainted(pnum); OperateShrineTainted(player);
break; break;
case ShrineOily: case ShrineOily:
OperateShrineOily(pnum, shrine.position); OperateShrineOily(player, shrine.position);
break; break;
case ShrineGlowing: case ShrineGlowing:
OperateShrineGlowing(pnum); OperateShrineGlowing(player);
break; break;
case ShrineMendicant: case ShrineMendicant:
OperateShrineMendicant(pnum); OperateShrineMendicant(player);
break; break;
case ShrineSparkling: case ShrineSparkling:
OperateShrineSparkling(pnum, shrine.position); OperateShrineSparkling(player, shrine.position);
break; break;
case ShrineTown: case ShrineTown:
OperateShrineTown(pnum, shrine.position); OperateShrineTown(pnum, shrine.position);
break; break;
case ShrineShimmering: case ShrineShimmering:
OperateShrineShimmering(pnum); OperateShrineShimmering(player);
break; break;
case ShrineSolar: case ShrineSolar:
OperateShrineSolar(pnum); OperateShrineSolar(player);
break; break;
case ShrineMurphys: case ShrineMurphys:
OperateShrineMurphys(pnum); OperateShrineMurphys(player);
break; break;
} }
if (pnum == MyPlayerId) if (&player == MyPlayer)
NetSendCmdParam2(false, CMD_PLROPOBJ, pnum, i); NetSendCmdParam2(false, CMD_PLROPOBJ, pnum, i);
} }

Loading…
Cancel
Save