// this function will be called when the state of cheat item changed void onCheatItemChanged(int id, int enable) { if (current_menu == BASE && id == 0) activate_menu(); else change_state(get_real_id(id)); }
void menupage_display_line(menupage_t *page, const int line) { int i = 0; char message[LP_MAX_WORD] = ""; int item_id = line + page->current_posn - page->current_line; menuitem_t *item = get_item(page, item_id); if (item) { if (page->ordering && item_grabbed && get_item_id(page, item_id) == get_item_id(page, page->current_posn)) message[i++] = '>'; else if (page->highlight && page->highlighted_item == get_real_id(page, item_id)) message[i++] = '*'; else message[i++] = ' '; if (page->show_id) { sprintf(message + i, "%X:", item->id); i += 2; } if (item->action) message[i++] = '!'; if (item->display) item->display(item, &message[i], MENU_WIDTH - i); } menu_set_text(line, message); }
menuitem_t *get_item(menupage_t *page, int item_pos) { const int item_id = get_real_id(page, item_pos); return (item_id < page->items.size) ? &page->items.data[item_id] : NULL; }