* @param pnum player index * @param rid target player index */
| 191 | * @param rid target player index |
| 192 | */ |
| 193 | void DoResurrect(int pnum, int rid) |
| 194 | { |
| 195 | int hp; |
| 196 | |
| 197 | if ((char)rid != -1) { |
| 198 | AddMissile(plr[rid].WorldX, plr[rid].WorldY, plr[rid].WorldX, plr[rid].WorldY, 0, MIS_RESURRECTBEAM, 0, pnum, 0, 0); |
| 199 | } |
| 200 | |
| 201 | if (pnum == myplr) { |
| 202 | NewCursor(CURSOR_HAND); |
| 203 | } |
| 204 | |
| 205 | if ((char)rid != -1 && plr[rid]._pHitPoints == 0) { |
| 206 | if (rid == myplr) { |
| 207 | deathflag = FALSE; |
| 208 | gamemenu_off(); |
| 209 | drawhpflag = TRUE; |
| 210 | drawmanaflag = TRUE; |
| 211 | } |
| 212 | |
| 213 | ClrPlrPath(rid); |
| 214 | plr[rid].destAction = ACTION_NONE; |
| 215 | plr[rid]._pInvincible = FALSE; |
| 216 | PlacePlayer(rid); |
| 217 | |
| 218 | hp = 640; |
| 219 | if (plr[rid]._pMaxHPBase < 640) { |
| 220 | hp = plr[rid]._pMaxHPBase; |
| 221 | } |
| 222 | SetPlayerHitPoints(rid, hp); |
| 223 | |
| 224 | plr[rid]._pHPBase = plr[rid]._pHitPoints + (plr[rid]._pMaxHPBase - plr[rid]._pMaxHP); |
| 225 | plr[rid]._pMana = 0; |
| 226 | plr[rid]._pManaBase = plr[rid]._pMana + (plr[rid]._pMaxManaBase - plr[rid]._pMaxMana); |
| 227 | |
| 228 | CalcPlrInv(rid, TRUE); |
| 229 | |
| 230 | if (plr[rid].plrlevel == currlevel) { |
| 231 | StartStand(rid, plr[rid]._pdir); |
| 232 | } else { |
| 233 | plr[rid]._pmode = PM_STAND; |
| 234 | } |
| 235 | } |
| 236 | } |
| 237 | |
| 238 | void DoHealOther(int pnum, int rid) |
| 239 | { |
no test coverage detected