| 728 | } |
| 729 | |
| 730 | void osipf_PlayerValue(int obj_handle, char op, char vhandle, void *ptr, int index) { |
| 731 | object *objp; |
| 732 | int id; |
| 733 | bool extract_info = true; |
| 734 | |
| 735 | if (vhandle == PLYV_I_STRIP_WEAPONS) { |
| 736 | // check to see if ptr is a -1, if so, don't extract info |
| 737 | if ((*(int *)ptr) == -1) |
| 738 | extract_info = false; |
| 739 | } |
| 740 | |
| 741 | if (extract_info) { |
| 742 | objp = ObjGet(obj_handle); |
| 743 | |
| 744 | if (!objp || (!(objp->type == OBJ_PLAYER || objp->type == OBJ_GHOST || objp->type == OBJ_OBSERVER))) { |
| 745 | mprintf(0, "Player Value: Illegal Object Passed\n"); |
| 746 | return; |
| 747 | } |
| 748 | |
| 749 | id = objp->id; |
| 750 | } |
| 751 | |
| 752 | switch (vhandle) { |
| 753 | case PLYV_I_FLAGS: { |
| 754 | if (op == VF_GET) { |
| 755 | *(int *)ptr = Players[id].flags; |
| 756 | } |
| 757 | } break; |
| 758 | case PLYV_F_ENERGY: |
| 759 | if (op == VF_GET) |
| 760 | *(float *)ptr = Players[id].energy; |
| 761 | else if (op == VF_SET) |
| 762 | Players[id].energy = *(float *)ptr; |
| 763 | break; |
| 764 | case PLYV_F_MOVEMENT_SCALAR: |
| 765 | if (op == VF_GET) |
| 766 | *(float *)ptr = Players[id].movement_scalar; |
| 767 | else if (op == VF_SET) |
| 768 | Players[id].movement_scalar = *(float *)ptr; |
| 769 | break; |
| 770 | case PLYV_F_RECHARGE_SCALAR: |
| 771 | if (op == VF_GET) |
| 772 | *(float *)ptr = Players[id].weapon_recharge_scalar; |
| 773 | else if (op == VF_SET) |
| 774 | Players[id].weapon_recharge_scalar = *(float *)ptr; |
| 775 | break; |
| 776 | case PLYV_F_WSPEED_SCALAR: |
| 777 | if (op == VF_GET) |
| 778 | *(float *)ptr = Players[id].weapon_speed_scalar; |
| 779 | else if (op == VF_SET) |
| 780 | Players[id].weapon_speed_scalar = *(float *)ptr; |
| 781 | break; |
| 782 | case PLYV_F_DAMAGE_SCALAR: |
| 783 | if (op == VF_GET) |
| 784 | *(float *)ptr = Players[id].damage_scalar; |
| 785 | else if (op == VF_SET) |
| 786 | Players[id].damage_scalar = *(float *)ptr; |
| 787 | break; |
nothing calls this directly
no test coverage detected