| 749 | */ |
| 750 | extern qboolean G_CheckPlayerDarkSide( void ); |
| 751 | static void Q3_SetObjective(const char *ObjEnum, int status) |
| 752 | { |
| 753 | int objectiveID; |
| 754 | gclient_t *client; |
| 755 | objectives_t *objective; |
| 756 | int *objectivesShown; |
| 757 | |
| 758 | client = &level.clients[0]; |
| 759 | |
| 760 | objectiveID = GetIDForString( objectiveTable, ObjEnum ); |
| 761 | objective = &client->sess.mission_objectives[objectiveID]; |
| 762 | objectivesShown = &client->sess.missionObjectivesShown; |
| 763 | |
| 764 | |
| 765 | switch (status) |
| 766 | { |
| 767 | case SET_OBJ_HIDE : |
| 768 | objective->display = (qboolean)(OBJECTIVE_HIDE != 0); |
| 769 | break; |
| 770 | case SET_OBJ_SHOW : |
| 771 | objective->display = (qboolean)(OBJECTIVE_SHOW != 0); |
| 772 | objectivesShown++; |
| 773 | missionInfo_Updated = qtrue; // Activate flashing text |
| 774 | break; |
| 775 | case SET_OBJ_PENDING : |
| 776 | objective->status = OBJECTIVE_STAT_PENDING; |
| 777 | if (objective->display != OBJECTIVE_HIDE) |
| 778 | { |
| 779 | objectivesShown++; |
| 780 | missionInfo_Updated = qtrue; // Activate flashing text |
| 781 | } |
| 782 | break; |
| 783 | case SET_OBJ_SUCCEEDED : |
| 784 | objective->status = OBJECTIVE_STAT_SUCCEEDED; |
| 785 | if (objective->display != OBJECTIVE_HIDE) |
| 786 | { |
| 787 | objectivesShown++; |
| 788 | missionInfo_Updated = qtrue; // Activate flashing text |
| 789 | } |
| 790 | break; |
| 791 | case SET_OBJ_FAILED : |
| 792 | objective->status = OBJECTIVE_STAT_FAILED; |
| 793 | if (objective->display != OBJECTIVE_HIDE) |
| 794 | { |
| 795 | objectivesShown++; |
| 796 | missionInfo_Updated = qtrue; // Activate flashing text |
| 797 | } |
| 798 | break; |
| 799 | } |
| 800 | |
| 801 | if ( objectiveID == LIGHTSIDE_OBJ |
| 802 | && status == SET_OBJ_FAILED ) |
| 803 | {//don't do this unless we just set that specific objective (just turned to the dark side) with this SET_OBJECTIVE command |
| 804 | G_CheckPlayerDarkSide(); |
| 805 | } |
| 806 | } |
| 807 | |
| 808 |
no test coverage detected