Merge pull request #300 from Bobbar/port_crosshair_alpha

Crosshair Alpha Proof of Concept
This commit is contained in:
fgsfds authored and GitHub committed 2023-12-22 12:25:36 +01:00
commit a82ac025da
9 files changed
+259

No files matched your search

+158
View File
@@ -945,6 +945,156 @@ static MenuItemHandlerResult menuhandlerCrosshairSway(s32 operation, struct menu
return 0;
}
static MenuItemHandlerResult menuhandlerCrosshair_R(s32 operation, struct menuitem* item, union handlerdata* data)
{
switch (operation) {
case MENUOP_GETSLIDER:
data->slider.value = (g_PlayerExtCfg[g_ExtMenuPlayer].crosshaircolour >> 24) & 0xFF;
break;
case MENUOP_SET:
u32 newColor = g_PlayerExtCfg[g_ExtMenuPlayer].crosshaircolour & 0xFFFFFF | data->slider.value << 24;
g_PlayerExtCfg[g_ExtMenuPlayer].crosshaircolour = newColor;
break;
}
return 0;
}
static MenuItemHandlerResult menuhandlerCrosshair_G(s32 operation, struct menuitem* item, union handlerdata* data)
{
switch (operation) {
case MENUOP_GETSLIDER:
data->slider.value = (g_PlayerExtCfg[g_ExtMenuPlayer].crosshaircolour >> 16) & 0xFF;
break;
case MENUOP_SET:
u32 newColor = g_PlayerExtCfg[g_ExtMenuPlayer].crosshaircolour & 0xFF00FFFF | data->slider.value << 16;
g_PlayerExtCfg[g_ExtMenuPlayer].crosshaircolour = newColor;
break;
}
return 0;
}
static MenuItemHandlerResult menuhandlerCrosshair_B(s32 operation, struct menuitem* item, union handlerdata* data)
{
switch (operation) {
case MENUOP_GETSLIDER:
data->slider.value = (g_PlayerExtCfg[g_ExtMenuPlayer].crosshaircolour >> 8) & 0xFF;
break;
case MENUOP_SET:
u32 newColor = g_PlayerExtCfg[g_ExtMenuPlayer].crosshaircolour & 0xFFFF00FF | data->slider.value << 8;
g_PlayerExtCfg[g_ExtMenuPlayer].crosshaircolour = newColor;
break;
}
return 0;
}
static MenuItemHandlerResult menuhandlerCrosshair_A(s32 operation, struct menuitem* item, union handlerdata* data)
{
switch (operation) {
case MENUOP_GETSLIDER:
data->slider.value = g_PlayerExtCfg[g_ExtMenuPlayer].crosshaircolour & 0xFF;
break;
case MENUOP_SET:
u32 newColor = g_PlayerExtCfg[g_ExtMenuPlayer].crosshaircolour & 0xFFFFFF00 | data->slider.value;
g_PlayerExtCfg[g_ExtMenuPlayer].crosshaircolour = newColor;
break;
}
return 0;
}
static MenuItemHandlerResult menuhandlerCrosshairColorPreview(s32 operation, struct menuitem* item, union handlerdata* data)
{
if (operation == MENUOP_GETCOLOUR) {
data->label.colour1 = g_PlayerExtCfg[g_ExtMenuPlayer].crosshaircolour;
}
return 0;
}
struct menuitem g_ExtendedGameCrosshairColourMenuItems[] = {
{
MENUITEMTYPE_SLIDER,
0,
MENUITEMFLAG_LITERAL_TEXT | MENUITEMFLAG_SLIDER_WIDE,
(uintptr_t)"Red",
255,
menuhandlerCrosshair_R,
},
{
MENUITEMTYPE_SLIDER,
0,
MENUITEMFLAG_LITERAL_TEXT | MENUITEMFLAG_SLIDER_WIDE,
(uintptr_t)"Green",
255,
menuhandlerCrosshair_G,
},
{
MENUITEMTYPE_SLIDER,
0,
MENUITEMFLAG_LITERAL_TEXT | MENUITEMFLAG_SLIDER_WIDE,
(uintptr_t)"Blue",
255,
menuhandlerCrosshair_B,
},
{
MENUITEMTYPE_SLIDER,
0,
MENUITEMFLAG_LITERAL_TEXT | MENUITEMFLAG_SLIDER_WIDE,
(uintptr_t)"Alpha",
255,
menuhandlerCrosshair_A,
},
{
MENUITEMTYPE_SEPARATOR,
0,
0,
0,
0,
NULL,
},
{
MENUITEMTYPE_COLORBOX,
0,
0,
0,
0,
menuhandlerCrosshairColorPreview,
},
{
MENUITEMTYPE_SEPARATOR,
0,
0,
0,
0,
NULL,
},
{
MENUITEMTYPE_SELECTABLE,
0,
MENUITEMFLAG_SELECTABLE_CLOSESDIALOG,
L_OPTIONS_213, // "Back"
0,
NULL,
},
{ MENUITEMTYPE_END },
};
struct menudialogdef g_ExtendedGameCrosshairColourMenuDialog = {
MENUDIALOGTYPE_DEFAULT,
(uintptr_t)"Crosshair Colour",
g_ExtendedGameCrosshairColourMenuItems,
NULL,
MENUDIALOGFLAG_LITERAL_TEXT,
NULL,
};
struct menuitem g_ExtendedGameMenuItems[] = {
{
MENUITEMTYPE_DROPDOWN,
@@ -970,6 +1120,14 @@ struct menuitem g_ExtendedGameMenuItems[] = {
20,
menuhandlerCrosshairSway,
},
{
MENUITEMTYPE_SELECTABLE,
0,
MENUITEMFLAG_LITERAL_TEXT | MENUITEMFLAG_SELECTABLE_OPENSDIALOG,
(uintptr_t)"Crosshair Colour\n",
0,
(void*)&g_ExtendedGameCrosshairColourMenuDialog,
},
{
MENUITEMTYPE_SEPARATOR,
0,