]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/triggers/trigger/viewloc.qc
Merge branch 'terencehill/menu_languages' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / triggers / trigger / viewloc.qc
index de2d3aac287ef32783b120cd57a28ea49f0211aa..af67533a831fe4622afc39a7b519b369a92917cb 100644 (file)
@@ -1,11 +1,13 @@
 #if defined(CSQC)
 #elif defined(MENUQC)
 #elif defined(SVQC)
-       #include "../../../dpdefs/progsdefs.qh"
-    #include "../../../warpzonelib/util_server.qh"
+    #include "../../../lib/warpzone/util_server.qh"
     #include "../../../server/defs.qh"
 #endif
 
+REGISTER_NET_LINKED(ENT_CLIENT_VIEWLOC)
+REGISTER_NET_LINKED(ENT_CLIENT_VIEWLOC_TRIGGER)
+
 #ifdef SVQC
 
 void viewloc_think()
@@ -38,10 +40,10 @@ void viewloc_think()
        self.nextthink = time;
 }
 
-bool trigger_viewloc_send(entity to, int sf)
-{SELFPARAM();
+bool trigger_viewloc_send(entity this, entity to, int sf)
+{
        // CSQC doesn't need to know our origin (yet), as we're only available for referencing
-       WriteByte(MSG_ENTITY, ENT_CLIENT_VIEWLOC_TRIGGER);
+       WriteHeader(MSG_ENTITY, ENT_CLIENT_VIEWLOC_TRIGGER);
 
        WriteEntity(MSG_ENTITY, self.enemy);
        WriteEntity(MSG_ENTITY, self.goalentity);
@@ -80,8 +82,8 @@ void viewloc_init()
        self.nextthink = time;
 }
 
-void spawnfunc_trigger_viewlocation()
-{SELFPARAM();
+spawnfunc(trigger_viewlocation)
+{
        // we won't check target2 here yet, as it may not even need to exist
        if(self.target == "") { LOG_INFO("^1FAIL!\n"); remove(self); return; }
 
@@ -89,9 +91,9 @@ void spawnfunc_trigger_viewlocation()
        InitializeEntity(self, viewloc_init, INITPRIO_FINDTARGET);
 }
 
-bool viewloc_send(entity to, int sf)
-{SELFPARAM();
-       WriteByte(MSG_ENTITY, ENT_CLIENT_VIEWLOC);
+bool viewloc_send(entity this, entity to, int sf)
+{
+       WriteHeader(MSG_ENTITY, ENT_CLIENT_VIEWLOC);
 
        WriteByte(MSG_ENTITY, self.cnt);
 
@@ -114,21 +116,21 @@ void viewloc_link()
        Net_LinkEntity(self, false, 0, viewloc_send);
 }
 
-void spawnfunc_target_viewlocation_start()
-{SELFPARAM();
+spawnfunc(target_viewlocation_start)
+{
        self.classname = "target_viewlocation_start";
        self.cnt = 1;
        viewloc_link();
 }
-void spawnfunc_target_viewlocation_end()
-{SELFPARAM();
+spawnfunc(target_viewlocation_end)
+{
        self.classname = "target_viewlocation_end";
        self.cnt = 2;
        viewloc_link();
 }
 
 // compatibility
-void spawnfunc_target_viewlocation() { spawnfunc_target_viewlocation_start(); }
+spawnfunc(target_viewlocation) { spawnfunc_target_viewlocation_start(this); }
 
 #elif defined(CSQC)
 
@@ -138,8 +140,8 @@ void trigger_viewloc_updatelink()
        self.goalentity = findfloat(world, entnum, self.count);
 }
 
-void ent_viewloc_trigger()
-{SELFPARAM();
+NET_HANDLE(ENT_CLIENT_VIEWLOC_TRIGGER, bool isnew)
+{
        float point1 = ReadShort();
        float point2 = ReadShort();
 
@@ -149,6 +151,9 @@ void ent_viewloc_trigger()
        self.origin_x = ReadCoord();
        self.origin_y = ReadCoord();
        self.origin_z = ReadCoord();
+
+       return = true;
+
        setorigin(self, self.origin);
 
        self.cnt = point1;
@@ -161,8 +166,8 @@ void ent_viewloc_trigger()
        self.drawmask = MASK_NORMAL; // not so concerned, but better keep it alive
 }
 
-void ent_viewloc()
-{SELFPARAM();
+NET_HANDLE(ENT_CLIENT_VIEWLOC, bool isnew)
+{
        self.cnt = ReadByte();
 
        self.origin_x = ReadCoord();
@@ -174,6 +179,8 @@ void ent_viewloc()
        self.movedir_y = ReadCoord();
        self.movedir_z = ReadCoord();
 
+       return = true;
+
        self.classname = ((self.cnt == 2) ? "target_viewlocation_end" : "target_viewlocation_start");
        self.drawmask = MASK_NORMAL; // don't cull it
 }