// zoom.rc // // zoom script for GIB in QuakeForge 0.5 // // Copyright (C) 2002 Brian Koropoff // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // // See the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to: // // Free Software Foundation, Inc. // 59 Temple Place - Suite 330 // Boston, MA 02111-1307, USA // // $Id$ global zoom function "zoom.init" { // Initialize basic options if ($argc != 6) { echo "Usage: $0 base_amp base_fov min_zoom max_zoom zoom_step" return } zoom.amp = $1 zoom.fov = $2 zoom.mult.lower = $3 zoom.mult = $3 zoom.mult.upper = $4 zoom.mult.step = $5 zoom.zoomed = 0 set fov ${zoom.fov} set in_amp ${zoom.amp} } function "zoom.adjust" { // Adjust fov and sensitivity to match zoom factor if ${zoom.zoomed} { set fov (${zoom.fov}/${zoom.mult}) set in_amp (${zoom.amp}/${zoom.mult}) return } else { set fov $zoom_base_fov set in_amp $zoom_base_amp } } alias zoom_in { // Replaced ID zoom function set zoom_zoomed 1 zoom_adjust } alias zoom_out { // Replaced ID zoom function set zoom_zoomed 0 zoom_adjust } alias zoom_toggle { toggle zoom_zoomed zoom_adjust } alias zoom_increase { if #{!$zoom_zoomed} return zoom_mult #{$zoom_mult + $zoom_mult_step*$zoom_mult} // Grow zoom exponentially if #{$zoom_mult>$zoom_mult_upper} { zoom_mult $zoom_mult_upper } zoom_adjust } alias zoom_decrease { if #{!$zoom_zoomed} return zoom_mult #{$zoom_mult/(1 + $zoom_mult_step)} if #{$zoom_mult < $zoom_mult_lower} { zoom_mult $zoom_mult_lower } zoom_adjust }