Index: code/jumpnode/jumpnode.cpp
===================================================================
--- code/jumpnode/jumpnode.cpp	(revision 8302)
+++ code/jumpnode/jumpnode.cpp	(working copy)
@@ -18,41 +18,60 @@
 SCP_list<jump_node> Jump_nodes;
 
 /**
- * Constructor for jump_node object
+ * Constructor for jump_node object, default
  */
-jump_node::jump_node(vec3d *pos)
+jump_node::jump_node() : m_radius(0.0f), m_modelnum(-1), m_objnum(-1), m_flags(0)
 {	
-	Assert(pos != NULL);
+    gr_init_alphacolor(&m_display_color, 0, 255, 0, 255);
+
+	m_name[0] = '\0';
 	
-	this->m_radius = 0.0f;
-	this->m_modelnum = -1;
-	this->m_objnum = -1;
-	this->m_flags = 0;
-	gr_init_alphacolor(&this->m_display_color, 0, 255, 0, 255);
+    pos.xyz.x = 0.0f;
+	pos.xyz.y = 0.0f;
+	pos.xyz.z = 0.0f;
+}
+
+/**
+ * Constructor for jump_node object, with world position argument
+ */
+jump_node::jump_node(vec3d *position) : m_radius(0.0f), m_modelnum(-1), m_objnum(-1), m_flags(0)
+{	
+	Assert(position != NULL);
 	
-	// Set name
-	sprintf(this->m_name, XSTR( "Jump Node %d", 632), Jump_nodes.size());
+	gr_init_alphacolor(&m_display_color, 0, 255, 0, 255);
 	
-	// Set model
-	this->m_modelnum = model_load(NOX("subspacenode.pof"), 0, NULL, 0);
-	if (this->m_modelnum < 0)
-		Warning(LOCATION, "Could not load default model for %s", this->m_name);
+	// Set m_name
+	sprintf(m_name, XSTR( "Jump Node %d", 632), Jump_nodes.size());
+	
+	// Set m_modelnum and m_radius
+	m_modelnum = model_load(NOX("subspacenode.pof"), 0, NULL, 0);
+	if (m_modelnum == -1)
+		Warning(LOCATION, "Could not load default model for %s", m_name);
 	else
-		this->m_radius = model_get_radius(this->m_modelnum);
+		m_radius = model_get_radius(m_modelnum);
 	
+    pos.xyz.x = position->xyz.x;
+	pos.xyz.y = position->xyz.y;
+	pos.xyz.z = position->xyz.z;
+    
 	// Create the object
-	this->m_objnum = obj_create(OBJ_JUMP_NODE, -1, -1, NULL, pos, this->m_radius, OF_RENDERS);
+	m_objnum = obj_create(OBJ_JUMP_NODE, -1, -1, NULL, &pos, m_radius, OF_RENDERS);
 }
 
+/**
+ * Destructor for jump_node object
+ */
 jump_node::~jump_node()
 {
 	model_unload(m_modelnum);
 	obj_delete(m_objnum);
 }
 
-color jump_node::get_color()
+// Accessor functions for private variables
+
+char *jump_node::get_name_ptr()
 {
-	return m_display_color;
+	return m_name;
 }
 
 int jump_node::get_modelnum()
@@ -67,14 +86,10 @@
 
 object *jump_node::get_obj()
 {
-	return &Objects[m_objnum];
+	Assert(m_objnum != -1);
+    return &Objects[m_objnum];
 }
 
-char *jump_node::get_name_ptr()
-{
-	return m_name;
-}
-
 bool jump_node::is_hidden()
 {
 	if(m_flags & JN_HIDE)
@@ -93,6 +108,18 @@
 	return ((m_flags & JN_SPECIAL_MODEL) != 0);
 }
 
+color jump_node::get_color()
+{
+	return m_display_color;
+}
+
+vec3d *jump_node::get_pos()
+{
+	return &pos;
+}
+
+// Settor functions for private variables
+
 void jump_node::set_alphacolor(int r, int g, int b, int alpha)
 {
 	CLAMP(r, 0, 255);
@@ -141,7 +168,7 @@
 void jump_node::set_name(char *new_name)
 {
 	Assert(new_name != NULL);
-	
+	Assert(jumpnode_get_by_name(new_name) == NULL);
 	strcpy_s(m_name, new_name);
 }
 
@@ -172,6 +199,7 @@
 void jump_node::render(vec3d *pos, vec3d *view_pos)
 {
 	Assert(pos != NULL);
+    // Assert(view_pos != NULL);
 	
 	if(m_flags & JN_HIDE)
 		return;
Index: code/jumpnode/jumpnode.h
===================================================================
--- code/jumpnode/jumpnode.h	(revision 8302)
+++ code/jumpnode/jumpnode.h	(working copy)
@@ -28,6 +28,7 @@
 
 class jump_node
 {
+private:
 	char m_name[NAME_LENGTH];
 	float m_radius;
 
@@ -36,20 +37,25 @@
 
 	int m_flags;
 	color m_display_color;			// Color node will be shown in (Default:0/255/0/255)
+    vec3d pos;
 public:
-	//Construction
-	jump_node(vec3d *pos);
+	//Constructors
+    jump_node();
+	jump_node(vec3d *position);
+    
+    //Destructor
 	~jump_node();
 	
 	//Getting
-	color get_color();
+    char *get_name_ptr();
 	int get_modelnum();
 	int get_objnum();
 	object *get_obj();
-	char *get_name_ptr();
 	bool is_hidden();
 	bool is_colored();
 	bool is_special_model();
+    color get_color();
+    vec3d *get_pos();
 
 	//Setting
 	void set_alphacolor(int r, int g, int b, int alpha);
