/* =========== FS_FilenameCompare Ignore case and seprator char distinctions =========== */ qboolean FS_FilenameCompare( const char *s1, const char *s2 ) { int c1, c2; do { c1 = *s1++; c2 = *s2++; if ( Q_islower(c1) ) { c1 -= ('a' - 'A'); } if ( Q_islower(c2) ) { c2 -= ('a' - 'A'); } if ( c1 == '\\' || c1 == ':' ) { c1 = '/'; } if ( c2 == '\\' || c2 == ':' ) { c2 = '/'; } if (c1 != c2) { return -1; // strings not equal } } while (c1); return 0; // strings are equal }
/* ================== MenuField_Key ================== */ sfxHandle_t MenuField_Key( menufield_s* m, int* key ) { int keycode; keycode = *key; switch ( keycode ) { case K_KP_ENTER: case K_ENTER: case K_JOY1: case K_JOY2: case K_JOY3: case K_JOY4: case K_2JOY1: case K_2JOY2: case K_2JOY3: case K_2JOY4: case K_3JOY1: case K_3JOY2: case K_3JOY3: case K_3JOY4: case K_4JOY1: case K_4JOY2: case K_4JOY3: case K_4JOY4: // have enter go to next cursor point *key = K_TAB; break; case K_TAB: case K_KP_DOWNARROW: case K_DOWNARROW: case K_KP_UPARROW: case K_UPARROW: break; default: if ( keycode & K_CHAR_FLAG ) { keycode &= ~K_CHAR_FLAG; if ((m->generic.flags & QMF_UPPERCASE) && Q_islower( keycode )) keycode -= 'a' - 'A'; else if ((m->generic.flags & QMF_LOWERCASE) && Q_isupper( keycode )) keycode -= 'A' - 'a'; else if ((m->generic.flags & QMF_NUMBERSONLY) && Q_isalpha( keycode )) return (menu_buzz_sound); MField_CharEvent( &m->field, keycode); } else MField_KeyDownEvent( &m->field, keycode ); break; } return (0); }