mirror of
https://github.com/RaySollium99/libpicofe.git
synced 2025-09-07 07:38:04 -04:00
fix type usage for endianess in menu handling
This commit is contained in:
parent
5d636caaaf
commit
62128bad6d
1 changed files with 8 additions and 20 deletions
28
menu.c
28
menu.c
|
@ -494,24 +494,12 @@ static int me_count(const menu_entry *ent)
|
||||||
|
|
||||||
static unsigned int me_read_onoff(const menu_entry *ent)
|
static unsigned int me_read_onoff(const menu_entry *ent)
|
||||||
{
|
{
|
||||||
// guess var size based on mask to avoid reading too much
|
return *(unsigned int *)ent->var & ent->mask;
|
||||||
if (ent->mask & 0xffff0000)
|
|
||||||
return *(unsigned int *)ent->var & ent->mask;
|
|
||||||
else if (ent->mask & 0xff00)
|
|
||||||
return *(unsigned short *)ent->var & ent->mask;
|
|
||||||
else
|
|
||||||
return *(unsigned char *)ent->var & ent->mask;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void me_toggle_onoff(menu_entry *ent)
|
static void me_toggle_onoff(menu_entry *ent)
|
||||||
{
|
{
|
||||||
// guess var size based on mask to avoid reading too much
|
*(unsigned int *)ent->var ^= ent->mask;
|
||||||
if (ent->mask & 0xffff0000)
|
|
||||||
*(unsigned int *)ent->var ^= ent->mask;
|
|
||||||
else if (ent->mask & 0xff00)
|
|
||||||
*(unsigned short *)ent->var ^= ent->mask;
|
|
||||||
else
|
|
||||||
*(unsigned char *)ent->var ^= ent->mask;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void me_draw(const menu_entry *entries, int sel, void (*draw_more)(void))
|
static void me_draw(const menu_entry *entries, int sel, void (*draw_more)(void))
|
||||||
|
@ -645,7 +633,7 @@ static void me_draw(const menu_entry *entries, int sel, void (*draw_more)(void))
|
||||||
offs += (10 - len - 2) * me_mfont_w;
|
offs += (10 - len - 2) * me_mfont_w;
|
||||||
if (offs < leftname_end)
|
if (offs < leftname_end)
|
||||||
offs = leftname_end;
|
offs = leftname_end;
|
||||||
if (i == *(unsigned char *)ent->var) {
|
if (i == *(int *)ent->var) {
|
||||||
text_out16(offs, y, "%s", names[i]);
|
text_out16(offs, y, "%s", names[i]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -710,11 +698,11 @@ static int me_process(menu_entry *entry, int is_next, int is_lr)
|
||||||
names = (const char **)entry->data;
|
names = (const char **)entry->data;
|
||||||
for (c = 0; names[c] != NULL; c++)
|
for (c = 0; names[c] != NULL; c++)
|
||||||
;
|
;
|
||||||
*(signed char *)entry->var += is_next ? 1 : -1;
|
*(int *)entry->var += is_next ? 1 : -1;
|
||||||
if (*(signed char *)entry->var < 0)
|
if (*(int *)entry->var < 0)
|
||||||
*(signed char *)entry->var = 0;
|
*(int *)entry->var = 0;
|
||||||
if (*(signed char *)entry->var >= c)
|
if (*(int *)entry->var >= c)
|
||||||
*(signed char *)entry->var = c - 1;
|
*(int *)entry->var = c - 1;
|
||||||
return 1;
|
return 1;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue