engine: client: refactor variable declarations

This commit is contained in:
Alibek Omarov
2026-05-20 23:24:36 +05:00
committed by a1batross
parent d49178d5b6
commit e8845fc404
52 changed files with 987 additions and 1670 deletions
+44 -91
View File
@@ -249,10 +249,7 @@ Dump config to file
*/
static qboolean Touch_DumpConfig( const char *name, const char *profilename )
{
file_t *f;
const touch_button_t *button;
f = FS_Open( name, "w", true );
file_t *f = FS_Open( name, "w", true );
if( !f )
{
@@ -299,7 +296,7 @@ static qboolean Touch_DumpConfig( const char *name, const char *profilename )
FS_Printf( f, "touch_removeall\n" );
FS_Printf( f, "touch_aspectratio %g\n", Touch_AspectRatio());
for( button = touch.list_user.first; button; button = button->next )
for( const touch_button_t *button = touch.list_user.first; button; button = button->next )
Touch_ExportButtonToConfig( f, button, false );
FS_Close( f );
@@ -347,9 +344,6 @@ export current touch configuration into profile
*/
static void Touch_ExportConfig_f( void )
{
const char *name;
string profilename;
if( Cmd_Argc() != 2 )
{
Con_Printf( S_USAGE "touch_exportconfig <name>\n" );
@@ -362,7 +356,8 @@ static void Touch_ExportConfig_f( void )
return;
}
name = Cmd_Argv( 1 );
const char *name = Cmd_Argv( 1 );
string profilename;
if( Q_strstr( name, "touch_presets/" ))
{
@@ -386,7 +381,6 @@ export current touch configuration into C code
*/
static void Touch_GenerateCode_f( void )
{
const touch_button_t *button;
rgba_t c = { 0 };
if( !touch.list_user.first )
@@ -395,11 +389,9 @@ static void Touch_GenerateCode_f( void )
return;
}
for( button = touch.list_user.first; button; button = button->next )
for( const touch_button_t *button = touch.list_user.first; button; button = button->next )
{
float aspect;
int flags = button->flags;
int round;
if( FBitSet( flags, TOUCH_FL_CLIENT ))
continue; // skip temporary buttons
@@ -410,7 +402,7 @@ static void Touch_GenerateCode_f( void )
if( FBitSet( flags, TOUCH_FL_DEF_HIDE ))
SetBits( flags, TOUCH_FL_HIDE );
aspect = ( button->y2 - button->y1 ) / (( button->x2 - button->x1 ) / Touch_AspectRatio( ));
float aspect = ( button->y2 - button->y1 ) / (( button->x2 - button->x1 ) / Touch_AspectRatio( ));
if( memcmp( c, button->color, sizeof( c )))
{
@@ -419,6 +411,7 @@ static void Touch_GenerateCode_f( void )
memcpy( c, button->color, sizeof( c ));
}
int round;
if( button->type == touch_command )
{
if( fabs( aspect - 1.0f ) < 0.001 )
@@ -438,22 +431,18 @@ static void Touch_GenerateCode_f( void )
static void Touch_RoundAll_f( void )
{
touch_button_t *button;
if( !touch_grid_enable.value )
return;
for( button = touch.list_user.first; button; button = button->next )
for( touch_button_t *button = touch.list_user.first; button; button = button->next )
IN_TouchCheckCoords( &button->x1, &button->y1, &button->x2, &button->y2 );
}
static void Touch_ListButtons_f( void )
{
touch_button_t *button;
Touch_InitConfig();
for( button = touch.list_user.first; button; button = button->next )
for( touch_button_t *button = touch.list_user.first; button; button = button->next )
{
Con_Printf( "%s %s %s %g %g %g %g %d %d %d %d %d\n",
button->name, button->texture, button->command,
@@ -483,9 +472,7 @@ static void Touch_Stroke_f( void )
static touch_button_t *Touch_FindNextNoPattern( touch_button_t *buttons, const char *name, qboolean privileged )
{
touch_button_t *b;
for( b = buttons; b; b = b->next )
for( touch_button_t *b = buttons; b; b = b->next )
{
if( !privileged && !FBitSet( b->flags, TOUCH_FL_UNPRIVILEGED ))
continue;
@@ -504,13 +491,12 @@ static touch_button_t *Touch_FindButtonNoPattern( touchbuttonlist_t *list, const
static touch_button_t *Touch_FindNext( touch_button_t *buttons, const char *name, qboolean privileged )
{
touch_button_t *b;
qboolean has_pattern = Q_strchr( name, '*' ) != NULL;
if( !has_pattern )
return Touch_FindNextNoPattern( buttons, name, privileged );
for( b = buttons; b; b = b->next )
for( touch_button_t *b = buttons; b; b = b->next )
{
if( !privileged && !FBitSet( b->flags, TOUCH_FL_UNPRIVILEGED ))
continue;
@@ -584,10 +570,9 @@ static void Touch_SetClientOnly_f( void )
static void Touch_RemoveButtonFromList( touchbuttonlist_t *list, const char *name, qboolean privileged )
{
touch_button_t *button;
IN_TouchEditClear();
touch_button_t *button;
while(( button = Touch_FindFirst( list, name, privileged )))
{
if( button->prev )
@@ -640,9 +625,7 @@ static void Touch_RemoveAll_f( void )
static void Touch_SetColor( touchbuttonlist_t *list, const char *name, byte *color, qboolean privileged )
{
touch_button_t *b;
for( b = Touch_FindFirst( list, name, privileged ); b != NULL; b = Touch_FindNext( b->next, name, privileged ))
for( touch_button_t *b = Touch_FindFirst( list, name, privileged ); b != NULL; b = Touch_FindNext( b->next, name, privileged ))
Vector4Copy( color, b->color );
}
@@ -677,9 +660,7 @@ static void Touch_SetCommand( touch_button_t *button, const char *command )
void Touch_HideButtons( const char *name, byte hide, qboolean privileged )
{
touch_button_t *b;
for( b = Touch_FindFirst( &touch.list_user, name, privileged ); b != NULL; b = Touch_FindNext( b->next, name, privileged ))
for( touch_button_t *b = Touch_FindFirst( &touch.list_user, name, privileged ); b != NULL; b = Touch_FindNext( b->next, name, privileged ))
{
if( hide )
SetBits( b->flags, TOUCH_FL_HIDE );
@@ -718,9 +699,7 @@ static void Touch_Show_f( void )
static void Touch_FadeButtons( touchbuttonlist_t *list, const char *name, float speed, float end, float start, qboolean privileged )
{
touch_button_t *b;
for( b = Touch_FindFirst( list, name, privileged ); b != NULL; b = Touch_FindNext( b->next, name, privileged ))
for( touch_button_t *b = Touch_FindFirst( list, name, privileged ); b != NULL; b = Touch_FindNext( b->next, name, privileged ))
{
if( start >= 0 )
b->fade = start;
@@ -855,8 +834,6 @@ static touch_button_t *Touch_AddButton( touchbuttonlist_t *list, const char *nam
void Touch_AddClientButton( const char *name, const char *texture, const char *command, float x1, float y1, float x2, float y2, byte *color, int round, float aspect, int flags )
{
touch_button_t *button;
if( !touch.initialized )
return;
@@ -865,15 +842,14 @@ void Touch_AddClientButton( const char *name, const char *texture, const char *c
if( round == round_aspect )
y2 = y1 + ( x2 - x1 ) / (Touch_AspectRatio()) * aspect;
button = Touch_AddButton( &touch.list_user, name, texture, command, x1, y1, x2, y2, color, true );
touch_button_t *button = Touch_AddButton( &touch.list_user, name, texture, command, x1, y1, x2, y2, color, true );
SetBits( button->flags, TOUCH_FL_CLIENT | TOUCH_FL_NOEDIT );
button->aspect = aspect;
}
static void Touch_LoadDefaults_f( void )
{
int i;
for( i = 0; i < g_DefaultButtonsLength; i++ )
for( int i = 0; i < g_DefaultButtonsLength; i++ )
{
touch_button_t *button;
float x1 = g_DefaultButtons[i].x1,
@@ -903,11 +879,9 @@ static void Touch_LoadDefaults_f( void )
// Add default button from client
void Touch_AddDefaultButton( const char *name, const char *texture, const char *command, float x1, float y1, float x2, float y2, byte *color, int round, float aspect, int flags )
{
touchdefaultbutton_t *b;
g_DefaultButtons = Mem_Realloc( touch.mempool, g_DefaultButtons, sizeof( *g_DefaultButtons ) * ( g_DefaultButtonsLength + 1 ));
b = &g_DefaultButtons[g_DefaultButtonsLength];
touchdefaultbutton_t *b = &g_DefaultButtons[g_DefaultButtonsLength];
Q_strncpy( b->name, name, sizeof( b->name ));
Q_strncpy( b->texture, texture, sizeof( b->texture ));
@@ -938,22 +912,18 @@ void Touch_ResetDefaultButtons( void )
static void Touch_AddButton_f( void )
{
rgba_t color = { 255, 255, 255, 255 };
touch_button_t *button = NULL;
const char *name, *command;
float x1 = 0.4f, y1 = 0.4f, x2 = 0.6f, y2 = 0.6f;
qboolean privileged = Cmd_CurrentCommandIsPrivileged();
string texture;
if( Cmd_Argc( ) < 4 )
{
Con_Printf( S_USAGE "touch_addbutton <name> <texture> <command> [<x1> <y1> <x2> <y2> [ r g b a ] ]\n" );
return;
}
name = Cmd_Argv( 1 );
const char *name = Cmd_Argv( 1 );
string texture;
Q_strncpy( texture, Cmd_Argv( 2 ), sizeof( texture ));
command = Cmd_Argv( 3 );
const char *command = Cmd_Argv( 3 );
float x1 = 0.4f, y1 = 0.4f, x2 = 0.6f, y2 = 0.6f;
rgba_t color = { 255, 255, 255, 255 };
// HACKHACK: old engine specifically used .tga for touch buttons
// and because new engine extras.pk3 don't have .tga textures
@@ -980,7 +950,8 @@ static void Touch_AddButton_f( void )
color[3] = Q_atoi( Cmd_Argv( 11 ));
}
button = Touch_AddButton( &touch.list_user, name, texture, command, x1, y1, x2, y2, color, privileged );
qboolean privileged = Cmd_CurrentCommandIsPrivileged();
touch_button_t *button = Touch_AddButton( &touch.list_user, name, texture, command, x1, y1, x2, y2, color, privileged );
if( Cmd_Argc( ) >= 13 )
SetBits( button->flags, Q_atoi( Cmd_Argv( 12 )));
@@ -1023,9 +994,7 @@ static void Touch_EnableEdit_f( void )
// convert coordinates to actual aspect ratio after it was updated
if( touch.config_aspect_ratio != touch.actual_aspect_ratio )
{
touch_button_t *button;
for( button = touch.list_user.first; button; button = button->next )
for( touch_button_t *button = touch.list_user.first; button; button = button->next )
{
button->y1 /= touch.actual_aspect_ratio / touch.config_aspect_ratio;
button->y2 /= touch.actual_aspect_ratio / touch.config_aspect_ratio;
@@ -1315,10 +1284,6 @@ static void IN_TouchCheckCoords( float *x1, float *y1, float *x2, float *y2 )
static float Touch_DrawCharacter( float x, float y, int number, float size )
{
float s1, s2, t1, t2, width, height;
int w, h;
wrect_t *prc;
if( !cls.creditsFont.valid )
return 0;
@@ -1328,16 +1293,17 @@ static float Touch_DrawCharacter( float x, float y, int number, float size )
if( !number )
return 0;
int w, h;
R_GetTextureParms( &w, &h, cls.creditsFont.hFontTexture );
prc = &cls.creditsFont.fontRc[number];
wrect_t *prc = &cls.creditsFont.fontRc[number];
s1 = prc->left / (float)w;
t1 = prc->top / (float)h;
s2 = prc->right / (float)w;
t2 = prc->bottom / (float)h;
float s1 = prc->left / (float)w;
float t1 = prc->top / (float)h;
float s2 = prc->right / (float)w;
float t2 = prc->bottom / (float)h;
width = ( prc->right - prc->left ) / 1024.0f * size;
height = ( prc->bottom - prc->top ) / 1024.0f * size;
float width = ( prc->right - prc->left ) / 1024.0f * size;
float height = ( prc->bottom - prc->top ) / 1024.0f * size;
ref.dllFuncs.R_DrawStretchPic( TO_SCRN_X( x ), TO_SCRN_Y( y ), TO_SCRN_X( width ), TO_SCRN_X( height ),
s1, t1, s2, t2, cls.creditsFont.hFontTexture );
@@ -1384,9 +1350,7 @@ static float Touch_DrawText( float x1, float y1, float x2, float y2, const char
static void Touch_DrawButtons( touchbuttonlist_t *list )
{
touch_button_t *b;
for( b = list->first; b; b = b->next )
for( touch_button_t *b = list->first; b; b = b->next )
{
if( Touch_IsVisible( b ))
{
@@ -1506,17 +1470,15 @@ void Touch_Draw( void )
if( touch.state >= state_edit && touch_grid_enable.value )
{
float x;
if( touch_in_menu.value )
ref.dllFuncs.FillRGBA( kRenderTransTexture, 0, 0, 1, 1, 32, 32, 32, 255 );
else
ref.dllFuncs.FillRGBA( kRenderTransTexture, 0, 0, 1, 1, 0, 0, 0, 112 );
for( x = 0.0f; x < 1.0f; x += GRID_X )
for( float x = 0.0f; x < 1.0f; x += GRID_X )
ref.dllFuncs.FillRGBA( kRenderTransTexture, TO_SCRN_X( x ), 0, 1, TO_SCRN_Y( 1 ), 0, 224, 224, 112 );
for( x = 0.0f; x < 1.0f; x += GRID_Y )
for( float x = 0.0f; x < 1.0f; x += GRID_Y )
ref.dllFuncs.FillRGBA( kRenderTransTexture, 0, TO_SCRN_Y( x ), TO_SCRN_X( 1 ), 1, 0, 224, 224, 112 );
}
@@ -1738,16 +1700,14 @@ static void Touch_Motion( int fingerID, float x, float y, float dx, float dy )
if( touch_nonlinear_look.value )
{
float dabs, dcos, dsin;
// save angle, modify only velocity
dabs = sqrt( dx * dx + dy * dy );
float dabs = sqrt( dx * dx + dy * dy );
if( dabs < 0.000001f )
return; // no motion, avoid division by zero
dcos = dx / dabs;
dsin = dy / dabs;
float dcos = dx / dabs;
float dsin = dy / dabs;
if( touch_exp_mult.value > 1 )
dabs = ( exp( dabs * touch_exp_mult.value ) - 1 ) / touch_exp_mult.value;
@@ -1771,14 +1731,13 @@ static void Touch_Motion( int fingerID, float x, float y, float dx, float dy )
static qboolean Touch_ButtonPress( touchbuttonlist_t *list, touchEventType type, int fingerID, float x, float y )
{
touch_button_t *button;
qboolean result = false;
if( type != event_down && type != event_up )
return false;
// run from end(front) to start(back)
for( button = list->last; button; button = button->prev )
for( touch_button_t *button = list->last; button; button = button->prev )
{
// skip invisible buttons
if( !Touch_IsVisible( button ))
@@ -1850,14 +1809,12 @@ static qboolean Touch_ButtonPress( touchbuttonlist_t *list, touchEventType type,
if( touch.look_finger == fingerID )
{
touch_button_t *newbutton;
// this is an error, try recover
touch.move_finger = touch.look_finger = -1;
// player touched touch_move with enabled look mode
// and same finger id. release all move triggers
for( newbutton = list->first; newbutton; newbutton = newbutton->next )
for( touch_button_t *newbutton = list->first; newbutton; newbutton = newbutton->next )
{
if( newbutton->type == touch_move || newbutton->type == touch_look )
newbutton->finger = -1;
@@ -1910,14 +1867,12 @@ static qboolean Touch_ButtonPress( touchbuttonlist_t *list, touchEventType type,
if( touch.move_finger == fingerID )
{
touch_button_t *newbutton;
// this is an error, try recover
touch.move_finger = touch.look_finger = -1;
// player touched touch_move with enabled look mode
// and same finger id. release all move triggers
for( newbutton = list->first; newbutton; newbutton = newbutton->next )
for( touch_button_t *newbutton = list->first; newbutton; newbutton = newbutton->next )
{
if( newbutton->type == touch_move || newbutton->type == touch_look )
newbutton->finger = -1;
@@ -1994,8 +1949,6 @@ static qboolean Touch_ButtonPress( touchbuttonlist_t *list, touchEventType type,
static qboolean Touch_ButtonEdit( touchEventType type, int fingerID, float x, float y )
{
touch_button_t *button;
// edit buttons are on y1
if( type == event_down )
{
@@ -2010,7 +1963,7 @@ static qboolean Touch_ButtonEdit( touchEventType type, int fingerID, float x, fl
}
// run from end(front) to start(back)
for( button = touch.list_user.last; button; button = button->prev )
for( touch_button_t *button = touch.list_user.last; button; button = button->prev )
{
if( type == event_down )
{