From: Mircea Kitsune Date: Thu, 27 Oct 2011 12:47:35 +0000 (+0300) Subject: First step in implementing object to object attachment. Only partly working and buggy... X-Git-Tag: xonotic-v0.6.0~35^2~18^2~125 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=d6a2b1811e24ee675f70a591a47d6ddb8557b767;p=xonotic%2Fxonotic-data.pk3dir.git First step in implementing object to object attachment. Only partly working and buggy so far --- diff --git a/qcsrc/server/mutators/sandbox.qc b/qcsrc/server/mutators/sandbox.qc index b8f30c42c..09d8b5045 100644 --- a/qcsrc/server/mutators/sandbox.qc +++ b/qcsrc/server/mutators/sandbox.qc @@ -1,4 +1,5 @@ .string object_clipboard; +.entity object_attach; .float material; const float MATERIAL_NONE = 0; @@ -277,6 +278,37 @@ MUTATOR_HOOKFUNCTION(sandbox_PlayerCommand) return TRUE; + // ---------------- COMMAND: ATTACH OBJECT ---------------- + case "attach_object": + switch(argv(2)) + { + case "get": + // select e as the object as meant to be attached + e = sandbox_EditObject_Get(); + if(e != world) + self.object_attach = e; + return TRUE; + case "set": + // attaches the previously selected object to e + e = sandbox_EditObject_Get(); + if(e != world) + { + setattachment(self.object_attach, e, argv(3)); + self.object_attach.owner = e; + } + return TRUE; + case "remove": + // removes e if it was attached + e = sandbox_EditObject_Get(); + if(e != world) + { + setattachment(e, world, ""); + e.owner = world; + } + return TRUE; + } + return TRUE; + // ---------------- COMMAND: EDIT OBJECT ---------------- case "edit_object": if(!argv(2) || !argv(3))