Fixed up zoom.rc, renamed it to zoom.gib. Made alias with only one

argument print the contents of that alias.  Added the sleep command,
which works like wait but pauses for a certain number of seconds.
This commit is contained in:
Brian Koropoff 2002-05-11 06:09:50 +00:00
parent 69894d96c4
commit 6d37a9e48a
3 changed files with 68 additions and 33 deletions

View file

@ -23,74 +23,74 @@
// Boston, MA 02111-1307, USA // Boston, MA 02111-1307, USA
set zoom_version {$Id$} set zoom_version {$Id$}
set zoom_base_sensitivity 10 set zoom_base_amp 1
set zoom_base_fov 90 set zoom_base_fov 90
set zoom_mult 1.25 set zoom_mult 1.25
set zoom_zoomed 0 set zoom_zoomed 0
set zoom_mult_lower 1.25 set zoom_mult_lower 1.25
set zoom_mult_upper 90 // This is more or less the hard limit set zoom_mult_upper 90 // This is more or less the hard limit
set zoom_mult_step .25; set zoom_mult_step .25
alias zoom_init { // Initialize basic options alias zoom_init { // Initialize basic options
if #{$argn != 6} { if #{$argn != 6} {
echo "Usage: $0 base_sensitivity base_fov min_zoom max_zoom zoom_step"; echo "Usage: $0 base_sensitivity base_fov min_zoom max_zoom zoom_step"
return; return
} }
set zoom_base_sensitivity $1; set zoom_base_amp $1
set zoom_base_fov $2 set zoom_base_fov $2
set zoom_mult_lower $3; set zoom_mult_lower $3
set zoom_mult $3; set zoom_mult $3
set zoom_mult_upper $4; set zoom_mult_upper $4
set zoom_mult_step $5; set zoom_mult_step $5
} }
alias zoom_mult { // "Accessor" for zoom_mult alias zoom_mult { // "Accessor" for zoom_mult
if #{!$1} return; // Prevent division by zero if #{!$1} return // Prevent division by zero
set zoom_mult $1; set zoom_mult $1
} }
alias zoom_adjust { // Adjust fov and sensitivity to match zoom factor alias zoom_adjust { // Adjust fov and sensitivity to match zoom factor
if $zoom_zoomed { if $zoom_zoomed {
set fov #{$zoom_base_fov/$zoom_mult}; set fov #{$zoom_base_fov/$zoom_mult}
set in_mouse_amp #{$zoom_base_sensitivity/$zoom_mult}; set in_mouse_amp #{$zoom_base_amp/$zoom_mult}
return; return
} else { } else {
set fov $zoom_base_fov; set fov $zoom_base_fov
set in_mouse_amp $zoom_base_sensitivity; set in_mouse_amp $zoom_base_amp
}; }
} }
alias zoom_in { // Replaced ID zoom function alias zoom_in { // Replaced ID zoom function
set zoom_zoomed 1; set zoom_zoomed 1
zoom_adjust; zoom_adjust
} }
alias zoom_out { // Replaced ID zoom function alias zoom_out { // Replaced ID zoom function
set zoom_zoomed 0; set zoom_zoomed 0
zoom_adjust; zoom_adjust
} }
alias zoom_toggle { alias zoom_toggle {
toggle zoom_zoomed; toggle zoom_zoomed
zoom_adjust; zoom_adjust
} }
alias zoom_increase { alias zoom_increase {
if #{!$zoom_zoomed} return; if #{!$zoom_zoomed} return
zoom_mult #{$zoom_mult + $zoom_mult_step*$zoom_mult}; zoom_mult #{$zoom_mult + $zoom_mult_step*$zoom_mult} // Grow zoom exponentially
if #{$zoom_mult>$zoom_mult_upper} { if #{$zoom_mult>$zoom_mult_upper} {
zoom_mult $zoom_mult_upper; zoom_mult $zoom_mult_upper
}; }
zoom_adjust; zoom_adjust
} }
alias zoom_decrease { alias zoom_decrease {
if #{!$zoom_zoomed} return; if #{!$zoom_zoomed} return
zoom_mult #{$zoom_mult/(1 + $zoom_mult_step)}; zoom_mult #{$zoom_mult/(1 + $zoom_mult_step)}
if #{$zoom_mult < $zoom_mult_lower} { if #{$zoom_mult < $zoom_mult_lower} {
zoom_mult $zoom_mult_lower; zoom_mult $zoom_mult_lower
}; }
zoom_adjust; zoom_adjust
} }

View file

@ -70,6 +70,10 @@ typedef struct cmd_buffer_s {
unsigned int loop; // Buffer loops itself. If true, value signifies number of loops done so far unsigned int loop; // Buffer loops itself. If true, value signifies number of loops done so far
qboolean embedded; // Buffer exists to evaluate embedded command qboolean embedded; // Buffer exists to evaluate embedded command
// Sleep data
double timeleft;
double lasttime;
// Execution position // Execution position
enum { enum {
cmd_ready, // Ready to read a command cmd_ready, // Ready to read a command

View file

@ -451,9 +451,20 @@ Cbuf_ExecuteBuffer (cmd_buffer_t *buffer)
cmd_buffer_t *temp = cmd_activebuffer; // save old context cmd_buffer_t *temp = cmd_activebuffer; // save old context
int ret; int ret;
if (buffer->timeleft) {
double newtime = Sys_DoubleTime ();
buffer->timeleft -= newtime - buffer->lasttime;
buffer->lasttime = newtime;
if (buffer->timeleft < 0.0)
buffer->timeleft = 0.0;
}
if (buffer->timeleft)
return;
cmd_activebuffer = buffer; cmd_activebuffer = buffer;
buffer->wait = false; buffer->wait = false;
buffer->again = false; buffer->again = false;
while (1) { while (1) {
if (!strlen(buffer->buffer->str) && buffer->position == cmd_ready) { if (!strlen(buffer->buffer->str) && buffer->position == cmd_ready) {
if (buffer->loop) { if (buffer->loop) {
@ -1893,6 +1904,11 @@ Cmd_Alias_f (void)
s = Cmd_Argv (1); s = Cmd_Argv (1);
// if the alias already exists, reuse it // if the alias already exists, reuse it
alias = (cmdalias_t *) Hash_Find (cmd_alias_hash, s); alias = (cmdalias_t *) Hash_Find (cmd_alias_hash, s);
if (Cmd_Argc () == 2) {
if (alias)
Sys_Printf("alias \"%s\" {%s}\n", alias->name, alias->value);
return;
}
if (alias) { if (alias) {
free ((char *) alias->value); free ((char *) alias->value);
} else { } else {
@ -1964,6 +1980,20 @@ Cmd_Wait_f (void)
cur->wait = true; cur->wait = true;
} }
/* Pauses execution for a certain number of seconds */
void
Cmd_Sleep_f (void)
{
if (Cmd_Argc() != 2) {
Cmd_Error ("sleep: invalid number of arguments.\n");
return;
}
cmd_activebuffer->timeleft = (double)atof(Cmd_Argv(1));
cmd_activebuffer->lasttime = Sys_DoubleTime ();
Cmd_Wait_f ();
return;
}
/* Prints a list of available commands */ /* Prints a list of available commands */
void void
Cmd_CmdList_f (void) Cmd_CmdList_f (void)
@ -2319,6 +2349,7 @@ Cmd_Init (void)
"seperate each command with a semi-colon."); "seperate each command with a semi-colon.");
Cmd_AddCommand ("unalias", Cmd_UnAlias_f, "Remove the selected alias"); Cmd_AddCommand ("unalias", Cmd_UnAlias_f, "Remove the selected alias");
Cmd_AddCommand ("wait", Cmd_Wait_f, "Wait a game tic"); Cmd_AddCommand ("wait", Cmd_Wait_f, "Wait a game tic");
Cmd_AddCommand ("sleep", Cmd_Sleep_f, "Sleep for $1 seconds");
Cmd_AddCommand ("cmdlist", Cmd_CmdList_f, "List all commands"); Cmd_AddCommand ("cmdlist", Cmd_CmdList_f, "List all commands");
Cmd_AddCommand ("help", Cmd_Help_f, "Display help for a command or " Cmd_AddCommand ("help", Cmd_Help_f, "Display help for a command or "
"variable"); "variable");