]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
First step in implementing object to object attachment. Only partly working and buggy...
authorMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Thu, 27 Oct 2011 12:47:35 +0000 (15:47 +0300)
committerMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Thu, 27 Oct 2011 12:47:35 +0000 (15:47 +0300)
qcsrc/server/mutators/sandbox.qc

index b8f30c42c8722c12d66477d191f7e4f50a9a8113..09d8b504559d1c8177066f4cb145409b25f80267 100644 (file)
@@ -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))