mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-01-17 22:50:51 +00:00
Fixed some bugs related to comments and global variables. Updated zoom.gib
to work with the new GIB parser. It should be fully functional.
This commit is contained in:
parent
44e2fbaa87
commit
06e6c92da8
2 changed files with 51 additions and 31 deletions
|
@ -42,47 +42,58 @@ function "zoom.init" { // Initialize basic options
|
|||
set in_amp ${zoom.amp}
|
||||
}
|
||||
|
||||
zoom.init 1 90 1 90 1.15
|
||||
|
||||
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
|
||||
set fov ${zoom.fov}
|
||||
set in_amp ${zoom.amp}
|
||||
}
|
||||
}
|
||||
|
||||
alias zoom_in { // Replaced ID zoom function
|
||||
set zoom_zoomed 1
|
||||
zoom_adjust
|
||||
function "zoom.in" { // Replaced ID zoom function
|
||||
zoom.zoomed = 1
|
||||
zoom.adjust
|
||||
}
|
||||
|
||||
alias zoom_out { // Replaced ID zoom function
|
||||
set zoom_zoomed 0
|
||||
zoom_adjust
|
||||
function "zoom.out" { // Replaced ID zoom function
|
||||
zoom.zoomed = 0
|
||||
zoom.adjust
|
||||
}
|
||||
|
||||
alias zoom_toggle {
|
||||
toggle zoom_zoomed
|
||||
zoom_adjust
|
||||
function "zoom.toggle" {
|
||||
zoom.zoomed = (!${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
|
||||
function "zoom.increase" {
|
||||
ifnot ${zoom.zoomed} {
|
||||
return
|
||||
}
|
||||
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.mult = (${zoom.mult.step}*${zoom.mult})
|
||||
if (${zoom.mult} > ${zoom.mult.upper}) {
|
||||
zoom.mult = ${zoom.mult.upper}
|
||||
}
|
||||
zoom_adjust
|
||||
zoom.adjust
|
||||
}
|
||||
|
||||
function "zoom.decrease" {
|
||||
ifnot ${zoom.zoomed} return
|
||||
zoom.mult = (${zoom.mult}/(1 + ${zoom.mult.step}))
|
||||
if (${zoom.mult} < ${zoom.mult.lower}) {
|
||||
zoom.mult = ${zoom.mult.lower}
|
||||
}
|
||||
zoom.adjust
|
||||
}
|
||||
|
||||
export zoom.init
|
||||
export zoom.increase
|
||||
export zoom.decrease
|
||||
export zoom.in
|
||||
export zoom.out
|
||||
export zoom.toggle
|
||||
|
||||
|
|
|
@ -205,9 +205,10 @@ GIB_Parse_Extract_Line (struct cbuf_s *cbuf)
|
|||
break;
|
||||
else if (dstr->str[i] == '/' && dstr->str[i+1] == '/') {
|
||||
char *n;
|
||||
if ((n = strchr (dstr->str+i, '\n')))
|
||||
dstring_snip (dstr, i, n-dstr->str);
|
||||
else {
|
||||
if ((n = strchr (dstr->str+i, '\n'))) {
|
||||
dstring_snip (dstr, i, n-dstr->str-i);
|
||||
i--;
|
||||
} else {
|
||||
dstring_snip (dstr, i, strlen(dstr->str+i));
|
||||
break;
|
||||
}
|
||||
|
@ -451,10 +452,18 @@ void GIB_Parse_Execute_Line (cbuf_t *cbuf)
|
|||
else if ((f = GIB_Function_Find (args->argv[0]->str)))
|
||||
GIB_Function_Execute (f);
|
||||
else if (args->argc == 3 && !strcmp (args->argv[1]->str, "=")) {
|
||||
if (!GIB_Var_Get (cbuf, args->argv[0]->str) && GIB_Var_Get_R (gib_globals, args->argv[0]->str))
|
||||
GIB_Var_Set_R (gib_globals, args->argv[0]->str, args->argv[2]->str);
|
||||
// First, determine global versus local
|
||||
int glob = 0;
|
||||
char *c = 0;
|
||||
if ((c = strchr (args->argv[0]->str, '.'))) // Only check stem
|
||||
*c = 0;
|
||||
glob = (!GIB_Var_Get (cbuf, args->argv[0]->str) && GIB_Var_Get_R (gib_globals, args->argv[0]->str));
|
||||
if (c)
|
||||
*c = '.';
|
||||
if (glob)
|
||||
GIB_Var_Set_R (gib_globals, args->argv[0]->str, args->argv[2]->str); // Set the global
|
||||
else
|
||||
GIB_Var_Set (cbuf, args->argv[0]->str, args->argv[2]->str);
|
||||
GIB_Var_Set (cbuf, args->argv[0]->str, args->argv[2]->str); // Set the local
|
||||
} else
|
||||
Cmd_Command (cbuf->args);
|
||||
dstring_clearstr (cbuf->line);
|
||||
|
|
Loading…
Reference in a new issue