mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-11 18:50:46 +00:00
Menu stuff
git-svn-id: https://svn.eduke32.com/eduke32@6650 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
7be5abbe37
commit
8094104f0b
2 changed files with 45 additions and 18 deletions
|
@ -237,7 +237,7 @@ static MenuEntryFormat_t MEF_Null = { 0, 0, 0 };
|
|||
static MenuEntryFormat_t MEF_MainMenu = { 4<<16, 0, 0 };
|
||||
static MenuEntryFormat_t MEF_OptionsMenu = { 7<<16, 0, 0 };
|
||||
static MenuEntryFormat_t MEF_CenterMenu = { 7<<16, 0, 0 };
|
||||
static MenuEntryFormat_t MEF_BigOptions_Apply = { 4<<16, 16<<16, -(244<<16) };
|
||||
static MenuEntryFormat_t MEF_BigOptions_Apply = { 4<<16, 16<<16, -(260<<16) };
|
||||
static MenuEntryFormat_t MEF_BigOptionsRt = { 4<<16, 0, -(260<<16) };
|
||||
#if defined USE_OPENGL || !defined EDUKE32_ANDROID_MENU
|
||||
static MenuEntryFormat_t MEF_SmallOptions = { 1<<16, 0, 216<<16 };
|
||||
|
@ -583,7 +583,7 @@ static MenuEntry_t ME_SCREENSETUP_CROSSHAIRSIZE = MAKE_MENUENTRY( s_Scale, &MF_R
|
|||
|
||||
static int32_t vpsize;
|
||||
static MenuRangeInt32_t MEO_SCREENSETUP_SCREENSIZE = MAKE_MENURANGE( &vpsize, &MF_Redfont, 0, 0, 0, 1, EnforceIntervals );
|
||||
static MenuEntry_t ME_SCREENSETUP_SCREENSIZE = MAKE_MENUENTRY( "Screen size:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SCREENSETUP_SCREENSIZE, RangeInt32 );
|
||||
static MenuEntry_t ME_SCREENSETUP_SCREENSIZE = MAKE_MENUENTRY( "Status bar:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SCREENSETUP_SCREENSIZE, RangeInt32 );
|
||||
static MenuRangeInt32_t MEO_SCREENSETUP_TEXTSIZE = MAKE_MENURANGE( &ud.textscale, &MF_Redfont, 100, 400, 0, 16, 2 );
|
||||
static MenuEntry_t ME_SCREENSETUP_TEXTSIZE = MAKE_MENUENTRY( s_Scale, &MF_Redfont, &MEF_BigOptions_Apply, &MEO_SCREENSETUP_TEXTSIZE, RangeInt32 );
|
||||
static MenuOption_t MEO_SCREENSETUP_LEVELSTATS = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &ud.levelstats);
|
||||
|
@ -1109,13 +1109,10 @@ static MenuEntry_t *MEL_COLCORR[] = {
|
|||
};
|
||||
|
||||
static MenuEntry_t *MEL_SCREENSETUP[] = {
|
||||
#ifndef EDUKE32_SIMPLE_MENU
|
||||
&ME_SCREENSETUP_SCREENSIZE,
|
||||
#endif
|
||||
|
||||
#ifdef EDUKE32_ANDROID_MENU
|
||||
&ME_SCREENSETUP_STATUSBARONTOP,
|
||||
#endif
|
||||
&ME_SCREENSETUP_SCREENSIZE,
|
||||
&ME_SCREENSETUP_SBARSIZE,
|
||||
|
||||
&ME_SCREENSETUP_CROSSHAIR,
|
||||
|
@ -1879,7 +1876,7 @@ static void Menu_Pre(MenuID_t cm)
|
|||
!(ud.statusbarflags & STATUSBAR_NOOVERLAY) +
|
||||
!(ud.statusbarflags & STATUSBAR_NOFULL) +
|
||||
!(ud.statusbarflags & STATUSBAR_NOSHRINK) * 14;
|
||||
MEO_SCREENSETUP_SCREENSIZE.min = MEO_SCREENSETUP_SCREENSIZE.steps - 1;
|
||||
MEO_SCREENSETUP_SCREENSIZE.max = MEO_SCREENSETUP_SCREENSIZE.steps - 1;
|
||||
MenuEntry_DisableOnCondition(&ME_SCREENSETUP_SCREENSIZE, (MEO_SCREENSETUP_SCREENSIZE.steps < 2));
|
||||
|
||||
vpsize = !(ud.statusbarflags & STATUSBAR_NONONE) +
|
||||
|
@ -4433,7 +4430,8 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
if (entry == NULL)
|
||||
continue;
|
||||
|
||||
int32_t x = menu->format->pos.x + entry->getIndent();
|
||||
int32_t const indent = entry->getIndent();
|
||||
int32_t x = menu->format->pos.x;
|
||||
|
||||
uint8_t status = 0;
|
||||
if (e == menu->currentEntry)
|
||||
|
@ -4453,7 +4451,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
|
||||
vec2_t textsize;
|
||||
if (dodraw)
|
||||
textsize = Menu_Text(origin.x + x, y_internal, entry->font, entry->name, status, ydim_upper, ydim_lower);
|
||||
textsize = Menu_Text(origin.x + x + indent, y_internal, entry->font, entry->name, status, ydim_upper, ydim_lower);
|
||||
|
||||
if (entry->format->width < 0)
|
||||
status |= MT_XRight;
|
||||
|
@ -4466,7 +4464,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
Menu_DrawCursorRight(origin.x + (MENU_MARGIN_CENTER<<16) - entry->font->cursorCenterPosition, y_internal, entry->font->cursorScale);
|
||||
}
|
||||
else
|
||||
Menu_DrawCursorLeft(origin.x + x - entry->font->cursorLeftPosition, y_internal, entry->font->cursorScale);
|
||||
Menu_DrawCursorLeft(origin.x + x + indent - entry->font->cursorLeftPosition, y_internal, entry->font->cursorScale);
|
||||
}
|
||||
|
||||
if (entry->name != nullptr && entry->name[0] != '\0')
|
||||
|
@ -4477,7 +4475,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
|
|||
|
||||
if (dodraw)
|
||||
{
|
||||
const int32_t mousex = origin.x + entry->format->width == 0 ? x - textsize.x/2 : x;
|
||||
const int32_t mousex = origin.x + indent + entry->format->width == 0 ? x - textsize.x/2 : x;
|
||||
const int32_t mousey = origin.y + y_upper + y - menu->scrollPos;
|
||||
int32_t mousewidth = entry->format->width == 0 ? textsize.x : klabs(entry->format->width);
|
||||
|
||||
|
@ -6702,7 +6700,28 @@ void M_DisplayMenus(void)
|
|||
int32_t a = VM_OnEventWithReturn(EVENT_DISPLAYCURSOR, g_player[screenpeek].ps->i, screenpeek, CROSSHAIR);
|
||||
|
||||
if ((unsigned) a < MAXTILES)
|
||||
rotatesprite_fs_alpha(m_mousepos.x, m_mousepos.y, 65536, 0, a, 0, CROSSHAIR_PAL, 2|1, MOUSEALPHA);
|
||||
{
|
||||
vec2_t cursorpos = m_mousepos;
|
||||
int32_t z = 65536;
|
||||
uint8_t p = CROSSHAIR_PAL;
|
||||
uint32_t o = 1|2;
|
||||
|
||||
auto const oyxaspect = yxaspect;
|
||||
if (KXDWN)
|
||||
{
|
||||
setaspect(viewingrange, 65536);
|
||||
cursorpos.x = scale(cursorpos.x - (320<<15), ydim << 2, xdim * 3) + (320<<15);
|
||||
cursorpos.y = scale(cursorpos.y - (200<<15), (ydim << 2) * 6, (xdim * 3) * 5) + (200<<15);
|
||||
z = scale(65536, ydim << 2, xdim * 3);
|
||||
p = 0;
|
||||
o |= 1024;
|
||||
}
|
||||
|
||||
rotatesprite_fs_alpha(cursorpos.x, cursorpos.y, z, 0, a, 0, p, o, MOUSEALPHA);
|
||||
|
||||
if (KXDWN)
|
||||
setaspect(viewingrange, oyxaspect);
|
||||
}
|
||||
}
|
||||
else
|
||||
mousepressstate = Mouse_Idle;
|
||||
|
|
|
@ -99,7 +99,7 @@ void G_GetCrosshairColor(void)
|
|||
// use the brightest color in the original 8-bit tile
|
||||
int32_t bri = 0, j = 0, i;
|
||||
int32_t ii;
|
||||
char *ptr = (char *) waloff[CROSSHAIR];
|
||||
char const *ptr = (char const *) waloff[CROSSHAIR];
|
||||
|
||||
if (DefaultCrosshairColors.f)
|
||||
return;
|
||||
|
@ -107,7 +107,7 @@ void G_GetCrosshairColor(void)
|
|||
if (waloff[CROSSHAIR] == 0)
|
||||
{
|
||||
loadtile(CROSSHAIR);
|
||||
ptr = (char *) waloff[CROSSHAIR];
|
||||
ptr = (char const *) waloff[CROSSHAIR];
|
||||
}
|
||||
|
||||
ii = tilesiz[CROSSHAIR].x * tilesiz[CROSSHAIR].y;
|
||||
|
@ -131,6 +131,9 @@ void G_GetCrosshairColor(void)
|
|||
|
||||
void G_SetCrosshairColor(int32_t r, int32_t g, int32_t b)
|
||||
{
|
||||
if (KXDWN)
|
||||
return;
|
||||
|
||||
int32_t i, ii;
|
||||
|
||||
if (g_crosshairSum == r+(g<<8)+(b<<16)) return;
|
||||
|
@ -1161,7 +1164,7 @@ void G_DisplayRest(int32_t smoothratio)
|
|||
if (a == 0)
|
||||
a = CROSSHAIR;
|
||||
|
||||
vec2_t crosshairpos = { 160<<16, 100<<16 };
|
||||
vec2_t crosshairpos = { (160<<16) - (g_player[myconnectindex].ps->look_ang<<15), 100<<16 };
|
||||
|
||||
uint8_t crosshair_pal = CROSSHAIR_PAL;
|
||||
uint32_t crosshair_o = 1|2;
|
||||
|
@ -1171,18 +1174,23 @@ void G_DisplayRest(int32_t smoothratio)
|
|||
|
||||
if (KXDWN)
|
||||
{
|
||||
crosshair_scale >>= 1;
|
||||
crosshairpos.x = scale(crosshairpos.x - (320<<15), ydim << 2, xdim * 3) + (320<<15);
|
||||
// crosshairpos.y = scale(crosshairpos.y - (200<<15), (ydim << 2) * 6, (xdim * 3) * 5) + (200<<15); // no-op for constant centering
|
||||
crosshair_scale = scale(crosshair_scale, ydim << 2, xdim * 3) >> 1;
|
||||
crosshair_pal = 0;
|
||||
crosshair_o |= 1024;
|
||||
setaspect(viewingrange, 65536);
|
||||
}
|
||||
|
||||
rotatesprite_win(crosshairpos.x-(g_player[myconnectindex].ps->look_ang<<15), crosshairpos.y, crosshair_scale,
|
||||
0, a, 0, crosshair_pal, crosshair_o);
|
||||
rotatesprite_win(crosshairpos.x, crosshairpos.y, crosshair_scale, 0, a, 0, crosshair_pal, crosshair_o);
|
||||
|
||||
#ifdef GEKKO
|
||||
if ((g_player[myconnectindex].ps->gm&MODE_MENU) == 0 && readmouseabsxy(&crosshairpos, &mouseabs))
|
||||
{
|
||||
crosshairpos.x = scale(crosshairpos.x - (320<<15), ydim << 2, xdim * 3) + (320<<15);
|
||||
crosshairpos.y = scale(crosshairpos.y - (200<<15), (ydim << 2) * 6, (xdim * 3) * 5) + (200<<15);
|
||||
rotatesprite_win(crosshairpos.x, crosshairpos.y, crosshair_scale, 0, a, 0, crosshair_pal, crosshair_o);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (KXDWN)
|
||||
|
|
Loading…
Reference in a new issue