MCPcopy Create free account
hub / github.com/JACoders/OpenJK / Q3_SetObjective

Function Q3_SetObjective

code/game/Q3_Interface.cpp:751–806  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

749*/
750extern qboolean G_CheckPlayerDarkSide( void );
751static 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

Callers 1

SetMethod · 0.70

Calls 2

G_CheckPlayerDarkSideFunction · 0.85
GetIDForStringFunction · 0.50

Tested by

no test coverage detected