+void ClientCommand_physics(float request, float argc)
+{
+ switch(request)
+ {
+ case CMD_REQUEST_COMMAND:
+ {
+ string command = strtolower(argv(1));
+
+ if(!autocvar_g_physics_clientselect)
+ {
+ sprint(self, "Client physics selection is currently disabled.\n");
+ return;
+ }
+
+ if(command == "list" || command == "help")
+ {
+ sprint(self, strcat("Available physics sets: \n\n", autocvar_g_physics_clientselect_options, " default\n"));
+ return;
+ }
+
+ if(Physics_Valid(command) || command == "default")
+ {
+ stuffcmd(self, strcat("\nseta cl_physics ", command, "\nsendcvar cl_physics\n"));
+ sprint(self, strcat("^2Physics set successfully changed to ^3", command, "\n"));
+ return;
+ }
+ }
+
+ default:
+ sprint(self, strcat("Current physics set: ^3", self.cvar_cl_physics, "\n"));
+ case CMD_REQUEST_USAGE:
+ {
+ sprint(self, "\nUsage:^3 cmd physics <physics>\n");
+ sprint(self, " See 'cmd physics list' for available physics sets.\n");
+ sprint(self, " Argument 'default' resets to standard physics.\n");
+ return;
+ }
+ }
+}
+