float keyDownNexuizCharmap(entity me, float key, float ascii, float shift) { switch(key) { case K_LEFTARROW: me.selectedCharacterCell = mod(me.selectedCharacterCell + 159, 160); return 1; case K_RIGHTARROW: me.selectedCharacterCell = mod(me.selectedCharacterCell + 1, 160); return 1; case K_UPARROW: me.selectedCharacterCell = mod(me.selectedCharacterCell + 144, 160); return 1; case K_DOWNARROW: me.selectedCharacterCell = mod(me.selectedCharacterCell + 16, 160); return 1; case K_HOME: me.selectedCharacterCell = 0; return 1; case K_END: me.selectedCharacterCell = 159; return 1; case K_SPACE: case K_ENTER: case K_INS: me.controlledTextbox.enterText(me.controlledTextbox, CharMap_CellToChar(me.selectedCharacterCell)); return 1; default: return me.controlledTextbox.keyDown(me.controlledTextbox, key, ascii, shift); } }
float NexuizCharmap_mouseRelease(entity me, vector coords) { if(!me.pressed) return 0; me.mouseMove(me, coords); if(me.selectedCharacterCell == me.previouslySelectedCharacterCell) me.controlledTextbox.enterText(me.controlledTextbox, CharMap_CellToChar(me.selectedCharacterCell)); me.pressed = 0; return 1; }