FS2_Open
Open source remastering of the Freespace 2 engine
jumpnode.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) Volition, Inc. 1999. All rights reserved.
3  *
4  * All source code herein is the property of Volition, Inc. You may not sell
5  * or otherwise commercially exploit the source or things you created based on the
6  * source.
7  *
8 */
9 
10 
11 
12 #ifndef __JUMPNODE_H__
13 #define __JUMPNODE_H__
14 
15 #include <stdlib.h>
16 
17 #include "globalincs/globals.h"
18 #include "graphics/2d.h"
19 
20 struct vec3d;
21 class object;
22 
23 class draw_list;
24 
25 //Jump node flags
26 #define JN_USE_DISPLAY_COLOR (1<<0) //Use display_color instead of HUD color
27 #define JN_SHOW_POLYS (1<<1) //Display model normally, rather than as wireframe
28 #define JN_HIDE (1<<2) //Hides a jump node
29 #define JN_SPECIAL_MODEL (1<<3) //If non-default model
30 
31 class CJumpNode
32 {
33 private:
34  char m_name[NAME_LENGTH];
35  float m_radius;
36 
37  int m_modelnum;
38  int m_objnum; // objnum of this jump node
39 
40  int m_flags;
41  color m_display_color; // Color node will be shown in (Default:0/255/0/255)
42  vec3d m_pos;
43 
44  CJumpNode(const CJumpNode&);
45  CJumpNode& operator=(const CJumpNode&);
46 public:
47  //Constructors
48  CJumpNode();
49  CJumpNode(vec3d *position);
50  CJumpNode(CJumpNode&& other);
51 
52  CJumpNode& operator=(CJumpNode&&);
53 
54  //Destructor
55  ~CJumpNode();
56 
57  //Getting
58  char *GetName();
59  int GetModelNumber();
60  int GetSCPObjectNumber();
61  object *GetSCPObject();
62  color GetColor();
63  vec3d *GetPosition();
64 
65  //Setting
66  void SetAlphaColor(int r, int g, int b, int alpha);
67  void SetModel(char *model_name, bool show_polys=false);
68  void SetName(const char *new_name);
69  void SetVisibility(bool enabled);
70 
71  //Query
72  bool IsHidden();
73  bool IsColored();
74  bool IsSpecialModel();
75 
76  //Rendering
77  void RenderDEPRECATED(vec3d *pos, vec3d *view_pos = NULL);
78  void Render(vec3d *pos, vec3d *view_pos = NULL);
79  void Render(draw_list *scene, vec3d *pos, vec3d *view_pos = NULL);
80 };
81 
82 //-----Globals------
84 
85 //-----Functions-----
86 CJumpNode *jumpnode_get_by_name(const char *name);
88 
89 void jumpnode_render_all();
91 
92 #endif
void RenderDEPRECATED(vec3d *pos, vec3d *view_pos=NULL)
Definition: jumpnode.cpp:291
void Render(vec3d *pos, vec3d *view_pos=NULL)
Definition: jumpnode.cpp:347
Definition: pstypes.h:88
Definition: 2d.h:95
bool IsHidden()
Definition: jumpnode.cpp:261
void jumpnode_render_all()
Definition: jumpnode.cpp:473
object * objp
Definition: lua.cpp:3105
int GetSCPObjectNumber()
Definition: jumpnode.cpp:133
vec3d view_pos
Definition: fredrender.cpp:103
bool IsColored()
Definition: jumpnode.cpp:272
int GetModelNumber()
Definition: jumpnode.cpp:125
GLdouble GLdouble GLdouble r
Definition: Glext.h:5337
void SetModel(char *model_name, bool show_polys=false)
Definition: jumpnode.cpp:190
vec3d * GetPosition()
Definition: jumpnode.cpp:158
GLboolean GLboolean g
Definition: Glext.h:5781
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition: Glext.h:7307
object * GetSCPObject()
Definition: jumpnode.cpp:141
bool IsSpecialModel()
Definition: jumpnode.cpp:280
void SetVisibility(bool enabled)
Definition: jumpnode.cpp:241
SCP_list< CJumpNode > Jump_nodes
Definition: jumpnode.cpp:16
Definition: object.h:141
GLuint const GLchar * name
Definition: Glext.h:5608
GLboolean GLboolean GLboolean b
Definition: Glext.h:5781
void SetName(const char *new_name)
Definition: jumpnode.cpp:224
#define NAME_LENGTH
Definition: globals.h:15
CJumpNode * jumpnode_get_by_name(const char *name)
Definition: jumpnode.cpp:429
hull_check pos
Definition: lua.cpp:5050
void SetAlphaColor(int r, int g, int b, int alpha)
Definition: jumpnode.cpp:173
void jumpnode_level_close()
Definition: jumpnode.cpp:485
char * GetName()
Definition: jumpnode.cpp:117
GLclampf GLclampf GLclampf alpha
Definition: Glext.h:5177
CJumpNode * jumpnode_get_which_in(object *objp)
Definition: jumpnode.cpp:448
~CJumpNode()
Definition: jumpnode.cpp:99
color GetColor()
Definition: jumpnode.cpp:150