From: Mircea Kitsune Date: Tue, 25 Oct 2011 12:13:59 +0000 (+0300) Subject: Use a single string to copy and paste object properties (listing each setting), inste... X-Git-Tag: xonotic-v0.6.0~35^2~18^2~178 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=5cbbbc54572f86fb933692f9839a31b82c6ca9a9;p=xonotic%2Fxonotic-data.pk3dir.git Use a single string to copy and paste object properties (listing each setting), instead of multiple floats and strings. This introduces a new bug: After pasting the object, the clipboard empties, due to string unzoning. --- diff --git a/qcsrc/server/mutators/sandbox.qc b/qcsrc/server/mutators/sandbox.qc index ca1d96029..65fa4e0c4 100644 --- a/qcsrc/server/mutators/sandbox.qc +++ b/qcsrc/server/mutators/sandbox.qc @@ -1,5 +1,4 @@ -.string clipboard_model; -.float clipboard_movetype; +.string object_clipboard; entity sandbox_EditObject() { @@ -132,10 +131,7 @@ MUTATOR_HOOKFUNCTION(sandbox_PlayerCommand) e = sandbox_EditObject(); // you can only copy objects you can edit, so this works if(e != world) { - // -------- COPY PROPERTIES -------- - self.clipboard_model = e.model; - self.clipboard_movetype = e.movetype; - // -------- COPY PROPERTIES -------- + self.object_clipboard = strzone(strcat(e.model, " ", ftos(e.movetype))); print_to(self, "Object copied to clipboard"); return TRUE; @@ -148,18 +144,19 @@ MUTATOR_HOOKFUNCTION(sandbox_PlayerCommand) { // spawns a new object using the properties in the player's clipboard - if(self.clipboard_model == "") // no object in clipboard + if(self.object_clipboard == "") // no object in clipboard { print_to(self, "WARNING: No object in clipboard. You must copy an object before you can paste it"); return TRUE; } e = sandbox_SpawnObject(); + tokenize_console(self.object_clipboard); + strunzone(self.object_clipboard); + self.object_clipboard = string_null; - // -------- PASTE PROPERTIES -------- - setmodel(e, self.clipboard_model); - e.movetype = self.clipboard_movetype; - // -------- PASTE PROPERTIES -------- + setmodel(e, argv(0)); + e.movetype = stof(argv(1)); print_to(self, "Object pasted"); if(autocvar_g_sandbox_info)