From d6a2b1811e24ee675f70a591a47d6ddb8557b767 Mon Sep 17 00:00:00 2001 From: Mircea Kitsune Date: Thu, 27 Oct 2011 15:47:35 +0300 Subject: [PATCH] First step in implementing object to object attachment. Only partly working and buggy so far --- qcsrc/server/mutators/sandbox.qc | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) 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)) -- 2.39.2