]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Attempting a fix for funky ladders
authorMario <zacjardine@y7mail.com>
Fri, 3 Apr 2015 20:13:40 +0000 (07:13 +1100)
committerMario <zacjardine@y7mail.com>
Fri, 3 Apr 2015 20:13:40 +0000 (07:13 +1100)
qcsrc/client/progs.src
qcsrc/common/triggers/func/ladder.qc
qcsrc/common/triggers/triggers.qh
qcsrc/server/miscfunctions.qh
qcsrc/warpzonelib/common.qh
qcsrc/warpzonelib/util_server.qc

index e86190134181198b8fbf780ce5b02b6282b509fa..b158af4f5458831afb17b16d4f65860e1cc88e0a 100644 (file)
@@ -90,3 +90,4 @@ weapons/projectile.qc // TODO
 ../warpzonelib/client.qc
 ../warpzonelib/common.qc
 ../warpzonelib/mathlib.qc
+../warpzonelib/util_server.qc
index 762d1ef70198a66e1488fe5c4b2ea7485cf5ad5c..c24e696c67007aeb16985100e783516b30937d17 100644 (file)
@@ -25,6 +25,7 @@ float func_ladder_send(entity to, float sf)
        WriteString(MSG_ENTITY, self.classname);
        WriteByte(MSG_ENTITY, self.skin);
        WriteByte(MSG_ENTITY, self.speed);
+       WriteString(MSG_ENTITY, self.mdl);
 
        trigger_common_write(false);
 
@@ -33,11 +34,14 @@ float func_ladder_send(entity to, float sf)
 
 void func_ladder_link()
 {
-       //Net_LinkEntity(self, false, 0, func_ladder_send);
+       self.SendEntity = func_ladder_send;
+       self.SendFlags = 0xFFFFFF;
+       self.model = "null";
 }
 
 void spawnfunc_func_ladder()
 {
+       self.mdl = self.model;
        EXACTTRIGGER_INIT;
        self.touch = func_ladder_touch;
 
@@ -46,6 +50,7 @@ void spawnfunc_func_ladder()
 
 void spawnfunc_func_water()
 {
+       self.mdl = self.model;
        EXACTTRIGGER_INIT;
        self.touch = func_ladder_touch;
 
@@ -60,8 +65,10 @@ void ent_func_ladder()
        self.classname = strzone(ReadString());
        self.skin = ReadByte();
        self.speed = ReadByte();
+       self.model = strzone(ReadString());
 
        trigger_common_read(false);
+       self.mins = self.maxs = '0 0 0';
 
        self.solid = SOLID_TRIGGER;
        self.draw = trigger_draw_generic;
@@ -69,5 +76,8 @@ void ent_func_ladder()
        self.drawmask = MASK_NORMAL;
        self.move_time = time;
        self.entremove = trigger_remove_generic;
+
+       //precache_model(self.mdl);
+       EXACTTRIGGER_INIT;
 }
 #endif
index 8dd7618d30d4ec4bb9b01f380f0c107aa9aa9c17..f4035dc5fc252bacc093fb037c4ed97be3c1445c 100644 (file)
@@ -47,9 +47,6 @@ void SUB_UseTargets_PreventReuse();
 void trigger_common_read(bool withtarget);
 void trigger_remove_generic();
 
-float WarpZoneLib_ExactTrigger_Touch();
-#define EXACTTRIGGER_TOUCH if(WarpZoneLib_ExactTrigger_Touch()) return
-
 .float active;
 .string target;
 .string targetname;
index 272762be3b89786679171b26a03622549432eb0c..f38c86e5e17d9b431b5df60be55f0b74792a0e86 100644 (file)
@@ -409,10 +409,6 @@ const float SND_ATTENUATION = 2;
 const float SND_LARGEENTITY = 8;
 const float SND_LARGESOUND = 16;
 
-// WARNING: this kills the trace globals
-#define EXACTTRIGGER_TOUCH if(WarpZoneLib_ExactTrigger_Touch()) return
-#define EXACTTRIGGER_INIT  WarpZoneLib_ExactTrigger_Init()
-
 const float INITPRIO_FIRST                             = 0;
 const float INITPRIO_GAMETYPE                  = 0;
 const float INITPRIO_GAMETYPE_FALLBACK         = 1;
index 76a77ab0219b1b5103dc3c54151b5dfd4deba1ce..3e2b7c7c63eacae9b1dfd93c4dfc55feb77bef3c 100644 (file)
@@ -106,4 +106,11 @@ entity WarpZone_RefSys_SpawnSameRefSys(entity me); // spawn().R = me.R
 #endif
 float WarpZoneLib_MoveOutOfSolid(entity e);
 #define move_out_of_solid(e) WarpZoneLib_MoveOutOfSolid(e)
+
+float WarpZoneLib_ExactTrigger_Touch();
+void WarpZoneLib_ExactTrigger_Init();
+
+// WARNING: this kills the trace globals
+#define EXACTTRIGGER_TOUCH if(WarpZoneLib_ExactTrigger_Touch()) return
+#define EXACTTRIGGER_INIT  WarpZoneLib_ExactTrigger_Init()
 #endif
index 06ca72a6881c8a50bc544139766dc12835a2221a..36562541e12102dc409102db8c2cdf4b5dd01349 100644 (file)
@@ -26,7 +26,9 @@ void WarpZoneLib_ExactTrigger_Init()
        {
                mi = self.mins;
                ma = self.maxs;
+#ifdef SVQC
                precache_model(self.model);
+#endif
                setmodel(self, self.model);
                // let mapper-set mins/maxs override the model's bounds if set
                if(mi != '0 0 0' || ma != '0 0 0')