#include "project.h" static int computer_old_locked[N_COMPUTER + 1]; static int computer_old_active[N_COMPUTER + 1]; static int computer_old_console[N_COMPUTER + 1]; static int console_old_locked[N_CONSOLE + 1]; static int console_old_active[N_CONSOLE + 1]; static int console_old_computer[N_CONSOLE + 1]; void status_draw_computer (int computer, int locked, int console, int active, int force) { int x = (computer - 1) * 45; int y = 5; x += 2; if (force || (computer_old_locked[computer] != locked)) { if (locked != -1) computer_old_locked[computer] = locked; else locked = computer_old_locked[computer]; lcd_box (x, y, x + 44, y + 44, locked ? 255 : 0, locked ? 0 : 255, locked ? 127 : 0); } if (force || (computer_old_console[computer] != console)) { if (console != -1) computer_old_console[computer] = console; else console = computer_old_console[computer]; lcd_ss (console ? console : 10, x + 17, y + 11, 11, 22); } if (force || (computer_old_active[computer] != active)) { if (active != -1) computer_old_active[computer] = active; else active = computer_old_active[computer]; lcd_box (x + 5, y + 5, x + 9, y + 9, active ? 255 : 0, active ? 255 : 0, active ? 255 : 0); } } void status_draw_console (int console, int locked, int computer, int active, int force) { int x = (console - 1) * 106; int y = 100; if (force || (console_old_locked[console] != locked)) { if (locked != -1) console_old_locked[console] = locked; else locked = console_old_locked[console]; lcd_box (x, y, x + 105, y + 105, locked ? 255 : 0, locked ? 0 : 255, locked ? 127 : 0); } if (force || (console_old_computer[console] != computer)) { if (computer != -1) console_old_computer[console] = computer; else computer = console_old_computer[console]; lcd_ss (computer ? computer : 10, x + 35, y + 20, 30, 60); } if (force || (console_old_active[console] != active)) { if (active != -1) console_old_active[console] = active; else active = console_old_active[console]; lcd_box (x + 5, y + 5, x + 9, y + 9, active ? 255 : 0, active ? 255 : 0, active ? 255 : 0); } } void status_init (void) { int i; lcd_open (); lcd_on (); memset (computer_old_locked, 0xff, sizeof (computer_old_locked)); memset (computer_old_active, 0xff, sizeof (computer_old_active)); memset (computer_old_console, 0xff, sizeof (computer_old_console)); for (i = 1; i <= N_COMPUTER; ++i) { status_draw_computer (i, 0, 0, 0, 0); } memset (console_old_locked, 0xff, sizeof (console_old_locked)); memset (console_old_active, 0xff, sizeof (console_old_active)); memset (console_old_computer, 0xff, sizeof (console_old_computer)); for (i = 1; i <= N_CONSOLE; ++i) { status_draw_console (i, 0, 0, 0, 0); } } void status_reset (void) { int i; lcd_close (); lcd_open (); lcd_on (); for (i = 1; i <= N_COMPUTER; ++i) { status_draw_computer (i, -1, -1, -1, 0); } for (i = 1; i <= N_CONSOLE; ++i) { status_draw_console (i, -1, -1, -1, 0); } }