X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Ftriggers%2Ftrigger%2Fviewloc.qc;h=af67533a831fe4622afc39a7b519b369a92917cb;hb=317ec3eb27ada1c4668876e9499136125acb7984;hp=de2d3aac287ef32783b120cd57a28ea49f0211aa;hpb=8da45596c76bb645e864b4ec8ff5a3ee13bbf27c;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/triggers/trigger/viewloc.qc b/qcsrc/common/triggers/trigger/viewloc.qc index de2d3aac2..af67533a8 100644 --- a/qcsrc/common/triggers/trigger/viewloc.qc +++ b/qcsrc/common/triggers/trigger/viewloc.qc @@ -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 }