| 3087 | } |
| 3088 | |
| 3089 | void OperateShrine(Player &player, Object &shrine, _sfx_id sType) |
| 3090 | { |
| 3091 | if (shrine._oSelFlag == 0) |
| 3092 | return; |
| 3093 | |
| 3094 | if (DropGoldFlag) { |
| 3095 | CloseGoldDrop(); |
| 3096 | } |
| 3097 | |
| 3098 | SetRndSeed(shrine._oRndSeed); |
| 3099 | shrine._oSelFlag = 0; |
| 3100 | |
| 3101 | PlaySfxLoc(sType, shrine.position); |
| 3102 | shrine._oAnimFlag = true; |
| 3103 | shrine._oAnimDelay = 1; |
| 3104 | |
| 3105 | switch (shrine._oVar1) { |
| 3106 | case ShrineMysterious: |
| 3107 | OperateShrineMysterious(player); |
| 3108 | break; |
| 3109 | case ShrineHidden: |
| 3110 | OperateShrineHidden(player); |
| 3111 | break; |
| 3112 | case ShrineGloomy: |
| 3113 | OperateShrineGloomy(player); |
| 3114 | break; |
| 3115 | case ShrineWeird: |
| 3116 | OperateShrineWeird(player); |
| 3117 | break; |
| 3118 | case ShrineMagical: |
| 3119 | case ShrineMagicaL2: |
| 3120 | OperateShrineMagical(player); |
| 3121 | break; |
| 3122 | case ShrineStone: |
| 3123 | OperateShrineStone(player); |
| 3124 | break; |
| 3125 | case ShrineReligious: |
| 3126 | OperateShrineReligious(player); |
| 3127 | break; |
| 3128 | case ShrineEnchanted: |
| 3129 | OperateShrineEnchanted(player); |
| 3130 | break; |
| 3131 | case ShrineThaumaturgic: |
| 3132 | OperateShrineThaumaturgic(player); |
| 3133 | break; |
| 3134 | case ShrineFascinating: |
| 3135 | OperateShrineCostOfWisdom(player, SpellID::Firebolt, EMSG_SHRINE_FASCINATING); |
| 3136 | break; |
| 3137 | case ShrineCryptic: |
| 3138 | OperateShrineCryptic(player); |
| 3139 | break; |
| 3140 | case ShrineEldritch: |
| 3141 | OperateShrineEldritch(player); |
| 3142 | break; |
| 3143 | case ShrineEerie: |
| 3144 | OperateShrineEerie(player); |
| 3145 | break; |
| 3146 | case ShrineDivine: |
no test coverage detected