mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-01-19 07:51:43 +00:00
bye
This commit is contained in:
parent
d019080327
commit
a521e40c0e
5 changed files with 9 additions and 259 deletions
|
@ -210,9 +210,6 @@ typedef struct FSurfaceInfo FSurfaceInfo;
|
|||
enum hwdsetspecialstate
|
||||
{
|
||||
HWD_SET_MODEL_LIGHTING = 1,
|
||||
HWD_SET_FOG_MODE,
|
||||
HWD_SET_FOG_COLOR,
|
||||
HWD_SET_FOG_DENSITY,
|
||||
HWD_SET_SHADERS,
|
||||
HWD_SET_TEXTUREFILTERMODE,
|
||||
HWD_SET_TEXTUREANISOTROPICMODE,
|
||||
|
|
|
@ -69,9 +69,6 @@ void HWR_AddTransparentFloor(levelflat_t *levelflat, extrasubsector_t *xsub, boo
|
|||
void HWR_AddTransparentPolyobjectFloor(levelflat_t *levelflat, polyobj_t *polysector, boolean isceiling, fixed_t fixedheight,
|
||||
INT32 lightlevel, INT32 alpha, sector_t *FOFSector, FBITFIELD blend, extracolormap_t *planecolormap);
|
||||
|
||||
static void HWR_FoggingOn(void);
|
||||
static UINT32 atohex(const char *s);
|
||||
|
||||
boolean drawsky = true;
|
||||
|
||||
// ==========================================================================
|
||||
|
@ -153,8 +150,6 @@ static void HWR_SetTransformAiming(FTransform *trans);
|
|||
// Lighting
|
||||
// ==========================================================================
|
||||
|
||||
#define CALCLIGHT(x,y) ((float)(x)*((y)/255.0f))
|
||||
|
||||
void HWR_Lighting(FSurfaceInfo *Surface, INT32 light_level, extracolormap_t *colormap)
|
||||
{
|
||||
RGBA_t poly_color, tint_color, fade_color;
|
||||
|
@ -5742,14 +5737,6 @@ void HWR_RenderSkyboxView(INT32 viewnumber, player_t *player)
|
|||
//------------------------------------------------------------------------
|
||||
HWR_ClearView();
|
||||
|
||||
if (0)
|
||||
{ // I don't think this is ever used.
|
||||
if (cv_grfog.value)
|
||||
HWR_FoggingOn(); // First of all, turn it on, set the default user settings too
|
||||
else
|
||||
HWD.pfnSetSpecialState(HWD_SET_FOG_MODE, 0); // Turn it off
|
||||
}
|
||||
|
||||
if (drawsky)
|
||||
HWR_DrawSkyBackground(player);
|
||||
|
||||
|
@ -5841,10 +5828,6 @@ if (0)
|
|||
HWD.pfnSetTransform(NULL);
|
||||
HWD.pfnUnSetShader();
|
||||
|
||||
// put it off for menus etc
|
||||
if (cv_grfog.value)
|
||||
HWD.pfnSetSpecialState(HWD_SET_FOG_MODE, 0);
|
||||
|
||||
// Check for new console commands.
|
||||
NetUpdate();
|
||||
|
||||
|
@ -5955,14 +5938,6 @@ void HWR_RenderPlayerView(INT32 viewnumber, player_t *player)
|
|||
//------------------------------------------------------------------------
|
||||
HWR_ClearView(); // Clears the depth buffer and resets the view I believe
|
||||
|
||||
if (0)
|
||||
{ // I don't think this is ever used.
|
||||
if (cv_grfog.value)
|
||||
HWR_FoggingOn(); // First of all, turn it on, set the default user settings too
|
||||
else
|
||||
HWD.pfnSetSpecialState(HWD_SET_FOG_MODE, 0); // Turn it off
|
||||
}
|
||||
|
||||
if (!skybox && drawsky) // Don't draw the regular sky if there's a skybox
|
||||
HWR_DrawSkyBackground(player);
|
||||
|
||||
|
@ -6054,10 +6029,6 @@ if (0)
|
|||
HWD.pfnSetTransform(NULL);
|
||||
HWD.pfnUnSetShader();
|
||||
|
||||
// put it off for menus etc
|
||||
if (cv_grfog.value)
|
||||
HWD.pfnSetSpecialState(HWD_SET_FOG_MODE, 0);
|
||||
|
||||
HWR_DoPostProcessor(player);
|
||||
|
||||
// Check for new console commands.
|
||||
|
@ -6068,60 +6039,15 @@ if (0)
|
|||
HWD.pfnGClipRect(0, 0, vid.width, vid.height, NZCLIP_PLANE);
|
||||
}
|
||||
|
||||
// ==========================================================================
|
||||
// FOG
|
||||
// ==========================================================================
|
||||
|
||||
/// \author faB
|
||||
|
||||
static UINT32 atohex(const char *s)
|
||||
{
|
||||
INT32 iCol;
|
||||
const char *sCol;
|
||||
char cCol;
|
||||
INT32 i;
|
||||
|
||||
if (strlen(s)<6)
|
||||
return 0;
|
||||
|
||||
iCol = 0;
|
||||
sCol = s;
|
||||
for (i = 0; i < 6; i++, sCol++)
|
||||
{
|
||||
iCol <<= 4;
|
||||
cCol = *sCol;
|
||||
if (cCol >= '0' && cCol <= '9')
|
||||
iCol |= cCol - '0';
|
||||
else
|
||||
{
|
||||
if (cCol >= 'F')
|
||||
cCol -= 'a' - 'A';
|
||||
if (cCol >= 'A' && cCol <= 'F')
|
||||
iCol = iCol | (cCol - 'A' + 10);
|
||||
}
|
||||
}
|
||||
//CONS_Debug(DBG_RENDER, "col %x\n", iCol);
|
||||
return iCol;
|
||||
}
|
||||
|
||||
static void HWR_FoggingOn(void)
|
||||
{
|
||||
HWD.pfnSetSpecialState(HWD_SET_FOG_COLOR, atohex(cv_grfogcolor.string));
|
||||
HWD.pfnSetSpecialState(HWD_SET_FOG_DENSITY, cv_grfogdensity.value);
|
||||
HWD.pfnSetSpecialState(HWD_SET_FOG_MODE, 1);
|
||||
}
|
||||
|
||||
// ==========================================================================
|
||||
// 3D ENGINE COMMANDS
|
||||
// ==========================================================================
|
||||
|
||||
static CV_PossibleValue_t grsoftwarefog_cons_t[] = {{0, "Off"}, {1, "On"}, {2, "LightPlanes"}, {0, NULL}};
|
||||
static CV_PossibleValue_t grmodelinterpolation_cons_t[] = {{0, "Off"}, {1, "Sometimes"}, {2, "Always"}, {0, NULL}};
|
||||
static CV_PossibleValue_t grfakecontrast_cons_t[] = {{0, "Off"}, {1, "On"}, {2, "Smooth"}, {0, NULL}};
|
||||
|
||||
static void CV_grfiltermode_OnChange(void);
|
||||
static void CV_granisotropic_OnChange(void);
|
||||
static void CV_grfogdensity_OnChange(void);
|
||||
|
||||
static CV_PossibleValue_t grfiltermode_cons_t[]= {{HWD_SET_TEXTUREFILTER_POINTSAMPLED, "Nearest"},
|
||||
{HWD_SET_TEXTUREFILTER_BILINEAR, "Bilinear"}, {HWD_SET_TEXTUREFILTER_TRILINEAR, "Trilinear"},
|
||||
|
@ -6133,9 +6059,6 @@ CV_PossibleValue_t granisotropicmode_cons_t[] = {{1, "MIN"}, {16, "MAX"}, {0, NU
|
|||
|
||||
consvar_t cv_grshaders = {"gr_shaders", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_fovchange = {"gr_fovchange", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_grfog = {"gr_fog", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_grfogcolor = {"gr_fogcolor", "AAAAAA", CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_grsoftwarefog = {"gr_softwarefog", "Off", CV_SAVE, grsoftwarefog_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
||||
#ifdef ALAM_LIGHTING
|
||||
consvar_t cv_grdynamiclighting = {"gr_dynamiclighting", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
@ -6155,8 +6078,6 @@ consvar_t cv_grfakecontrast = {"gr_fakecontrast", "Smooth", CV_SAVE, grfakecontr
|
|||
consvar_t cv_grslopecontrast = {"gr_slopecontrast", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
||||
consvar_t cv_grrounddown = {"gr_rounddown", "Off", 0, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_grfogdensity = {"gr_fogdensity", "150", CV_CALL|CV_NOINIT, CV_Unsigned,
|
||||
CV_grfogdensity_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
||||
consvar_t cv_grfiltermode = {"gr_filtermode", "Nearest", CV_SAVE|CV_CALL, grfiltermode_cons_t,
|
||||
CV_grfiltermode_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
@ -6166,12 +6087,6 @@ consvar_t cv_granisotropicmode = {"gr_anisotropicmode", "1", CV_CALL, granisotro
|
|||
consvar_t cv_grcorrecttricks = {"gr_correcttricks", "Off", 0, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_grsolvetjoin = {"gr_solvetjoin", "On", 0, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
||||
static void CV_grfogdensity_OnChange(void)
|
||||
{
|
||||
if (rendermode == render_opengl)
|
||||
HWD.pfnSetSpecialState(HWD_SET_FOG_DENSITY, cv_grfogdensity.value);
|
||||
}
|
||||
|
||||
static void CV_grfiltermode_OnChange(void)
|
||||
{
|
||||
if (rendermode == render_opengl)
|
||||
|
@ -6189,11 +6104,6 @@ void HWR_AddCommands(void)
|
|||
{
|
||||
CV_RegisterVar(&cv_fovchange);
|
||||
|
||||
CV_RegisterVar(&cv_grfogdensity);
|
||||
CV_RegisterVar(&cv_grfogcolor);
|
||||
CV_RegisterVar(&cv_grfog);
|
||||
CV_RegisterVar(&cv_grsoftwarefog);
|
||||
|
||||
#ifdef ALAM_LIGHTING
|
||||
CV_RegisterVar(&cv_grstaticlighting);
|
||||
CV_RegisterVar(&cv_grdynamiclighting);
|
||||
|
@ -6268,7 +6178,6 @@ void HWR_Startup(void)
|
|||
void HWR_Switch(void)
|
||||
{
|
||||
// Set special states from CVARs
|
||||
HWD.pfnSetSpecialState(HWD_SET_FOG_DENSITY, cv_grfogdensity.value);
|
||||
HWD.pfnSetSpecialState(HWD_SET_TEXTUREFILTERMODE, cv_grfiltermode.value);
|
||||
HWD.pfnSetSpecialState(HWD_SET_TEXTUREANISOTROPICMODE, cv_granisotropicmode.value);
|
||||
}
|
||||
|
|
|
@ -84,10 +84,6 @@ extern consvar_t cv_grshaders;
|
|||
extern consvar_t cv_grmodels;
|
||||
extern consvar_t cv_grmodelinterpolation;
|
||||
extern consvar_t cv_grmodellighting;
|
||||
extern consvar_t cv_grfog;
|
||||
extern consvar_t cv_grfogcolor;
|
||||
extern consvar_t cv_grfogdensity;
|
||||
extern consvar_t cv_grsoftwarefog;
|
||||
extern consvar_t cv_grfiltermode;
|
||||
extern consvar_t cv_granisotropicmode;
|
||||
extern consvar_t cv_grcorrecttricks;
|
||||
|
|
|
@ -1206,10 +1206,7 @@ void SetStates(void)
|
|||
//pglEnable(GL_CULL_FACE);
|
||||
//pglCullFace(GL_FRONT);
|
||||
|
||||
//glFogi(GL_FOG_MODE, GL_EXP);
|
||||
//pglHint(GL_FOG_HINT, GL_FASTEST);
|
||||
//pglFogfv(GL_FOG_COLOR, fogcolor);
|
||||
//pglFogf(GL_FOG_DENSITY, 0.0005f);
|
||||
pglDisable(GL_FOG);
|
||||
|
||||
// Lighting for models
|
||||
#ifdef GL_LIGHT_MODEL_AMBIENT
|
||||
|
@ -2267,48 +2264,6 @@ EXPORT void HWRAPI(SetSpecialState) (hwdspecialstate_t IdState, INT32 Value)
|
|||
model_lighting = Value;
|
||||
break;
|
||||
|
||||
case HWD_SET_FOG_COLOR:
|
||||
{
|
||||
GLfloat fogcolor[4];
|
||||
|
||||
fogcolor[0] = byte2float[((Value>>16)&0xff)];
|
||||
fogcolor[1] = byte2float[((Value>>8)&0xff)];
|
||||
fogcolor[2] = byte2float[((Value)&0xff)];
|
||||
fogcolor[3] = 0x0;
|
||||
pglFogfv(GL_FOG_COLOR, fogcolor);
|
||||
break;
|
||||
}
|
||||
|
||||
case HWD_SET_FOG_DENSITY:
|
||||
pglFogf(GL_FOG_DENSITY, Value*1200/(500*1000000.0f));
|
||||
break;
|
||||
|
||||
case HWD_SET_FOG_MODE:
|
||||
if (Value)
|
||||
{
|
||||
pglEnable(GL_FOG);
|
||||
// experimental code
|
||||
/*
|
||||
switch (Value)
|
||||
{
|
||||
case 1:
|
||||
glFogi(GL_FOG_MODE, GL_LINEAR);
|
||||
pglFogf(GL_FOG_START, -1000.0f);
|
||||
pglFogf(GL_FOG_END, 2000.0f);
|
||||
break;
|
||||
case 2:
|
||||
glFogi(GL_FOG_MODE, GL_EXP);
|
||||
break;
|
||||
case 3:
|
||||
glFogi(GL_FOG_MODE, GL_EXP2);
|
||||
break;
|
||||
}
|
||||
*/
|
||||
}
|
||||
else
|
||||
pglDisable(GL_FOG);
|
||||
break;
|
||||
|
||||
case HWD_SET_SHADERS:
|
||||
switch (Value)
|
||||
{
|
||||
|
|
123
src/m_menu.c
123
src/m_menu.c
|
@ -313,7 +313,7 @@ static void M_ChangeControl(INT32 choice);
|
|||
menu_t OP_VideoOptionsDef, OP_VideoModeDef, OP_ColorOptionsDef;
|
||||
#ifdef HWRENDER
|
||||
static void M_OpenGLOptionsMenu(void);
|
||||
menu_t OP_OpenGLOptionsDef, OP_OpenGLFogDef;
|
||||
menu_t OP_OpenGLOptionsDef;
|
||||
#endif
|
||||
menu_t OP_SoundOptionsDef;
|
||||
menu_t OP_SoundAdvancedDef;
|
||||
|
@ -360,9 +360,6 @@ static void M_DrawVideoMode(void);
|
|||
static void M_DrawColorMenu(void);
|
||||
static void M_DrawScreenshotMenu(void);
|
||||
static void M_DrawMonitorToggles(void);
|
||||
#ifdef HWRENDER
|
||||
static void M_OGL_DrawFogMenu(void);
|
||||
#endif
|
||||
#ifndef NONET
|
||||
static void M_DrawScreenshotMenu(void);
|
||||
static void M_DrawConnectMenu(void);
|
||||
|
@ -387,9 +384,6 @@ static boolean M_CancelConnect(void);
|
|||
static void M_HandleConnectIP(INT32 choice);
|
||||
#endif
|
||||
static void M_HandleSetupMultiPlayer(INT32 choice);
|
||||
#ifdef HWRENDER
|
||||
static void M_HandleFogColor(INT32 choice);
|
||||
#endif
|
||||
static void M_HandleVideoMode(INT32 choice);
|
||||
|
||||
static void M_ResetCvars(void);
|
||||
|
@ -1404,13 +1398,12 @@ static menuitem_t OP_OpenGLOptionsMenu[] =
|
|||
{IT_STRING|IT_CVAR, NULL, "Texture filter", &cv_grfiltermode, 103},
|
||||
{IT_STRING|IT_CVAR, NULL, "Anisotropic", &cv_granisotropicmode, 113},
|
||||
|
||||
{IT_HEADER, NULL, "Miscellaneous", NULL, 132},
|
||||
{IT_SUBMENU|IT_STRING, NULL, "Fog...", &OP_OpenGLFogDef, 144},
|
||||
#ifdef ALAM_LIGHTING
|
||||
{IT_SUBMENU|IT_STRING, NULL, "Lighting...", &OP_OpenGLLightingDef, 154},
|
||||
{IT_HEADER, NULL, "Miscellaneous", NULL, 132},
|
||||
{IT_SUBMENU|IT_STRING, NULL, "Lighting...", &OP_OpenGLLightingDef, 144},
|
||||
#endif
|
||||
#if defined (_WINDOWS) && (!((defined (__unix__) && !defined (MSDOS)) || defined (UNIXCOMMON) || defined (HAVE_SDL)))
|
||||
{IT_STRING|IT_CVAR, NULL, "Fullscreen", &cv_fullscreen, 164},
|
||||
{IT_STRING|IT_CVAR, NULL, "Fullscreen", &cv_fullscreen, 154},
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -1422,15 +1415,8 @@ static menuitem_t OP_OpenGLLightingMenu[] =
|
|||
{IT_STRING|IT_CVAR, NULL, "Dynamic lighting", &cv_grdynamiclighting, 20},
|
||||
{IT_STRING|IT_CVAR, NULL, "Static lighting", &cv_grstaticlighting, 30},
|
||||
};
|
||||
#endif
|
||||
#endif // ALAM_LIGHTING
|
||||
|
||||
static menuitem_t OP_OpenGLFogMenu[] =
|
||||
{
|
||||
{IT_STRING|IT_CVAR, NULL, "Fog", &cv_grfog, 10},
|
||||
{IT_STRING|IT_KEYHANDLER, NULL, "Fog color", M_HandleFogColor, 20},
|
||||
{IT_STRING|IT_CVAR, NULL, "Fog density", &cv_grfogdensity, 30},
|
||||
{IT_STRING|IT_CVAR, NULL, "Software Fog",&cv_grsoftwarefog,40},
|
||||
};
|
||||
#endif
|
||||
|
||||
static menuitem_t OP_SoundOptionsMenu[] =
|
||||
|
@ -2154,20 +2140,9 @@ menu_t OP_OpenGLOptionsDef = DEFAULTMENUSTYLE(
|
|||
menu_t OP_OpenGLLightingDef = DEFAULTMENUSTYLE(
|
||||
MN_OP_MAIN + (MN_OP_VIDEO << 6) + (MN_OP_OPENGL << 12) + (MN_OP_OPENGL_LIGHTING << 18),
|
||||
"M_VIDEO", OP_OpenGLLightingMenu, &OP_OpenGLOptionsDef, 60, 40);
|
||||
#endif
|
||||
menu_t OP_OpenGLFogDef =
|
||||
{
|
||||
MN_OP_MAIN + (MN_OP_VIDEO << 6) + (MN_OP_OPENGL << 12) + (MN_OP_OPENGL_FOG << 18),
|
||||
"M_VIDEO",
|
||||
sizeof (OP_OpenGLFogMenu)/sizeof (menuitem_t),
|
||||
&OP_OpenGLOptionsDef,
|
||||
OP_OpenGLFogMenu,
|
||||
M_OGL_DrawFogMenu,
|
||||
60, 40,
|
||||
0,
|
||||
NULL
|
||||
};
|
||||
#endif
|
||||
#endif // ALAM_LIGHTING
|
||||
#endif // HWRENDER
|
||||
|
||||
menu_t OP_DataOptionsDef = DEFAULTMENUSTYLE(
|
||||
MN_OP_MAIN + (MN_OP_DATA << 6),
|
||||
"M_DATA", OP_DataOptionsMenu, &OP_MainDef, 60, 30);
|
||||
|
@ -12386,85 +12361,3 @@ static void M_QuitSRB2(INT32 choice)
|
|||
(void)choice;
|
||||
M_StartMessage(quitmsg[M_RandomKey(NUM_QUITMESSAGES)], M_QuitResponse, MM_YESNO);
|
||||
}
|
||||
|
||||
#ifdef HWRENDER
|
||||
// =====================================================================
|
||||
// OpenGL specific options
|
||||
// =====================================================================
|
||||
|
||||
#define FOG_COLOR_ITEM 1
|
||||
// ===================
|
||||
// M_OGL_DrawFogMenu()
|
||||
// ===================
|
||||
static void M_OGL_DrawFogMenu(void)
|
||||
{
|
||||
INT32 mx, my;
|
||||
|
||||
mx = currentMenu->x;
|
||||
my = currentMenu->y;
|
||||
M_DrawGenericMenu(); // use generic drawer for cursor, items and title
|
||||
V_DrawString(BASEVIDWIDTH - mx - V_StringWidth(cv_grfogcolor.string, 0),
|
||||
my + currentMenu->menuitems[FOG_COLOR_ITEM].alphaKey, V_YELLOWMAP, cv_grfogcolor.string);
|
||||
// blink cursor on FOG_COLOR_ITEM if selected
|
||||
if (itemOn == FOG_COLOR_ITEM && skullAnimCounter < 4)
|
||||
V_DrawCharacter(BASEVIDWIDTH - mx,
|
||||
my + currentMenu->menuitems[FOG_COLOR_ITEM].alphaKey, '_' | 0x80,false);
|
||||
}
|
||||
|
||||
//===================
|
||||
// M_HandleFogColor()
|
||||
//===================
|
||||
static void M_HandleFogColor(INT32 choice)
|
||||
{
|
||||
size_t i, l;
|
||||
char temp[8];
|
||||
boolean exitmenu = false; // exit to previous menu and send name change
|
||||
|
||||
switch (choice)
|
||||
{
|
||||
case KEY_DOWNARROW:
|
||||
S_StartSound(NULL, sfx_menu1);
|
||||
itemOn++;
|
||||
break;
|
||||
|
||||
case KEY_UPARROW:
|
||||
S_StartSound(NULL, sfx_menu1);
|
||||
itemOn--;
|
||||
break;
|
||||
|
||||
case KEY_ESCAPE:
|
||||
exitmenu = true;
|
||||
break;
|
||||
|
||||
case KEY_BACKSPACE:
|
||||
S_StartSound(NULL, sfx_menu1);
|
||||
strcpy(temp, cv_grfogcolor.string);
|
||||
strcpy(cv_grfogcolor.zstring, "000000");
|
||||
l = strlen(temp)-1;
|
||||
for (i = 0; i < l; i++)
|
||||
cv_grfogcolor.zstring[i + 6 - l] = temp[i];
|
||||
break;
|
||||
|
||||
default:
|
||||
if ((choice >= '0' && choice <= '9') || (choice >= 'a' && choice <= 'f')
|
||||
|| (choice >= 'A' && choice <= 'F'))
|
||||
{
|
||||
S_StartSound(NULL, sfx_menu1);
|
||||
strcpy(temp, cv_grfogcolor.string);
|
||||
strcpy(cv_grfogcolor.zstring, "000000");
|
||||
l = strlen(temp);
|
||||
for (i = 0; i < l; i++)
|
||||
cv_grfogcolor.zstring[5 - i] = temp[l - i];
|
||||
cv_grfogcolor.zstring[5] = (char)choice;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (exitmenu)
|
||||
{
|
||||
if (currentMenu->prevMenu)
|
||||
M_SetupNextMenu(currentMenu->prevMenu);
|
||||
else
|
||||
M_ClearMenus(true);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue