51f262efa0
- uimainmenu: removed the temporary keyboard test entry now that the keyboard has a real caller. - uiselectsave: picking an empty save slot now opens the keyboard to name it (localized title "Enter game save file name"), writes the named slot to disk (mirroring the existing delete-confirm write pattern), and on a write failure opens the new fatal error overlay. - uikeyboardopen_t gains a title override (NULL keeps the default "ENTER YOUR TEXT"). - New ui/overlay/uifatalerror: a minimal fullscreen, non-dismissible overlay (message + QUIT button, back disabled) for unrecoverable errors - a nicer alternative to a raw assert crash. Draws above everything else in the UI element list. - New CUTSCENE_ITEM_TYPE_KEYBOARD cutscene item: opens the keyboard with an embedded uikeyboardopen_t, blocks the cutscene until it closes, then caches the entered text via a new general-purpose cutscenesystem_t.textCache (CUTSCENE_TEXT_CACHE_MAX, with get/set accessors) mirroring the existing entity/area/text-mini id caching pattern.