MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / osipf_PlayerValue

Function osipf_PlayerValue

Descent3/osiris_predefs.cpp:730–885  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

728}
729
730void 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;

Callers

nothing calls this directly

Calls 6

ObjGetFunction · 0.85
msafe_GetValueFunction · 0.85
msafe_CallFunctionFunction · 0.85
ThiefPlayerHasItemFunction · 0.85
ThiefStealItemFunction · 0.85
MultiSendStripPlayerFunction · 0.85

Tested by

no test coverage detected