From: Mircea Kitsune Date: Mon, 24 Oct 2011 22:04:06 +0000 (+0300) Subject: Allow grabbing to be used for sandbox objects, even when sv_cheats is disabled. The... X-Git-Tag: xonotic-v0.6.0~35^2~18^2~200 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=9fafdd1b51432d0831802b52fbf082369b513558;p=xonotic%2Fxonotic-data.pk3dir.git Allow grabbing to be used for sandbox objects, even when sv_cheats is disabled. The changes to the grabbing code will need to be reviewed a bit, but should work fine. --- diff --git a/qcsrc/server/mutators/sandbox.qc b/qcsrc/server/mutators/sandbox.qc index 73701a922..91fd4dd79 100644 --- a/qcsrc/server/mutators/sandbox.qc +++ b/qcsrc/server/mutators/sandbox.qc @@ -102,9 +102,26 @@ MUTATOR_HOOKFUNCTION(sandbox_PlayerCommand) return FALSE; } +MUTATOR_HOOKFUNCTION(sandbox_PlayerPreThink) +{ + // if the player is close enough to their own object and facing it, they can grab it + + if(autocvar_sv_cheats) + return FALSE; // cheats already allow dragging all objects + + WarpZone_TraceLine(self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * autocvar_g_sandbox_editor_distance_edit, MOVE_NORMAL, self); + if(trace_ent.classname == "object") + if(Drag(trace_ent)) // executes the dragging + if(autocvar_g_sandbox_info) + print(strcat(self.netname, " grabbed an object at origin ", vtos(trace_ent.origin), "\n")); + + return FALSE; +} + MUTATOR_DEFINITION(sandbox) { MUTATOR_HOOK(SV_ParseClientCommand, sandbox_PlayerCommand, CBC_ORDER_ANY); + MUTATOR_HOOK(PlayerPreThink, sandbox_PlayerPreThink, CBC_ORDER_ANY); return 0; }