FS2_Open
Open source remastering of the Freespace 2 engine
waypoint.h
Go to the documentation of this file.
1 #include "globalincs/globals.h"
2 #include "globalincs/pstypes.h"
3 
4 #ifndef _WAYPOINT_H
5 #define _WAYPOINT_H
6 
7 //********************CLASSES********************
8 class waypoint_list;
9 
10 class waypoint
11 {
12  public:
13  waypoint();
14  waypoint(vec3d *pos, waypoint_list *parent_list);
15  ~waypoint();
16 
17  // accessors
18  vec3d *get_pos();
19  int get_objnum();
21 
22  // mutators
23  void set_pos(vec3d *pos);
24 
25  private:
26  vec3d m_position;
27  int objnum;
28  waypoint_list *m_parent_list;
29 
30  friend void waypoint_create_game_object(waypoint *wpt, int list_index, int wpt_index);
31 };
32 
34 {
35  public:
36  waypoint_list();
37  waypoint_list(const char *name);
39 
40  // accessors
41  char *get_name();
43 
44  // mutators
45  void set_name(const char *name);
46 
47  private:
48  char m_name[NAME_LENGTH];
49  SCP_vector<waypoint> waypoints;
50 };
51 
52 //********************GLOBALS********************
54 
55 // bah
56 extern const size_t INVALID_WAYPOINT_POSITION;
57 
58 //********************FUNCTIONS********************
59 void waypoint_parse_init();
61 
62 // Translate between object instance and list information
63 int calc_waypoint_instance(int waypoint_list_index, int waypoint_index);
64 void calc_waypoint_indexes(int waypoint_instance, int &waypoint_list_index, int &waypoint_index);
65 int calc_waypoint_list_index(int waypoint_instance);
66 int calc_waypoint_index(int waypoint_instance);
67 
68 // Creates initial waypoints after mission is loaded
70 
71 // Find a waypoint list with the specified name
73 
74 // Find a waypoint with the specified name (e.g. Path:1)
76 
77 // Find a waypoint with the matching object info
79 waypoint_list *find_waypoint_list_with_instance(int waypoint_instance, int *waypoint_index = NULL);
80 waypoint *find_waypoint_with_instance(int waypoint_instance);
81 
82 // Find something at the specified index
87 
88 // Find a name that doesn't conflict with any current waypoint list
89 void waypoint_find_unique_name(char *dest_name, int start_index);
90 
91 // Add a new list of waypoints. Called from mission parsing.
92 void waypoint_add_list(const char *name, SCP_vector<vec3d> &vec_list);
93 
94 // Attempts to create a waypoint with the specified instance (used to calculate list and index).
95 // Returns the object number, or -1 on failure. Used by scripting and FRED.
96 int waypoint_add(vec3d *pos, int waypoint_instance);
97 
98 // Removes a waypoint, including its entire list if it's the last waypoint remaining.
99 void waypoint_remove(waypoint *wpt);
100 
101 #endif //_WAYPOINT_H
int find_index_of_waypoint(waypoint *wpt)
char * get_name()
Definition: waypoint.cpp:84
void waypoint_find_unique_name(char *dest_name, int start_index)
Definition: waypoint.cpp:357
void waypoint_add_list(const char *name, SCP_vector< vec3d > &vec_list)
Definition: waypoint.cpp:374
GLuint index
Definition: Glext.h:5608
void waypoint_create_game_objects()
Definition: waypoint.cpp:146
Definition: pstypes.h:88
int calc_waypoint_index(int waypoint_instance)
Definition: waypoint.cpp:131
SCP_vector< waypoint > & get_waypoints()
Definition: waypoint.cpp:89
waypoint_list * find_waypoint_list_with_instance(int waypoint_instance, int *waypoint_index=NULL)
Definition: waypoint.cpp:254
waypoint * find_matching_waypoint(const char *name)
Definition: waypoint.cpp:179
waypoint_list * get_parent_list()
Definition: waypoint.cpp:56
waypoint_list * find_matching_waypoint_list(const char *name)
Definition: waypoint.cpp:164
void set_name(const char *name)
Definition: waypoint.cpp:94
void waypoint_remove(waypoint *wpt)
Definition: waypoint.cpp:466
vec3d * get_pos()
Definition: waypoint.cpp:46
friend void waypoint_create_game_object(waypoint *wpt, int list_index, int wpt_index)
Definition: waypoint.cpp:137
int find_index_of_waypoint_list(waypoint_list *wp_list)
Definition: waypoint.cpp:324
int waypoint_add(vec3d *pos, int waypoint_instance)
Definition: waypoint.cpp:401
waypoint * find_waypoint_with_instance(int waypoint_instance)
Definition: waypoint.cpp:279
SCP_list< waypoint_list > Waypoint_lists
Definition: waypoint.cpp:9
int calc_waypoint_list_index(int waypoint_instance)
Definition: waypoint.cpp:125
waypoint * find_waypoint_with_objnum(int objnum)
Definition: waypoint.cpp:234
void waypoint_level_close()
Definition: waypoint.cpp:106
waypoint()
Definition: waypoint.cpp:19
GLuint const GLchar * name
Definition: Glext.h:5608
const size_t INVALID_WAYPOINT_POSITION
Definition: waypoint.cpp:16
#define NAME_LENGTH
Definition: globals.h:15
waypoint_list * find_waypoint_list_at_index(int index)
Definition: waypoint.cpp:291
hull_check pos
Definition: lua.cpp:5050
void calc_waypoint_indexes(int waypoint_instance, int &waypoint_list_index, int &waypoint_index)
Definition: waypoint.cpp:118
void set_pos(vec3d *pos)
Definition: waypoint.cpp:61
int calc_waypoint_instance(int waypoint_list_index, int waypoint_index)
Definition: waypoint.cpp:111
int get_objnum()
Definition: waypoint.cpp:51
~waypoint()
Definition: waypoint.cpp:41
waypoint * find_waypoint_at_index(waypoint_list *list, int index)
Definition: waypoint.cpp:307
void waypoint_parse_init()
Definition: waypoint.cpp:101