/* ================= UI_PlayRec_Callback ================= */ static void UI_PlayRec_Callback( void *self, int event ) { menuCommon_s *item = (menuCommon_s *)self; if( event != QM_ACTIVATED ) return; switch( item->id ) { case ID_PLAY: UI_PlayDemo_Menu(); break; case ID_RECORD: UI_RecDemo_Menu(); break; case ID_DONE: UI_PopMenu(); break; } }
/* ================= UI_RecDemo_Callback ================= */ static void UI_RecDemo_Callback( void *self, int event ) { menuCommon_s *item = (menuCommon_s *)self; if( event == QM_CHANGED ) { // never overwrite existing saves, because their names was never get collision if( strlen( uiRecDemo.demoName[uiRecDemo.demosList.curItem] ) == 0 || !CL_IsActive() || gpGlobals->demoplayback ) uiRecDemo.record.generic.flags |= QMF_GRAYED; else uiRecDemo.record.generic.flags &= ~QMF_GRAYED; if( strlen( uiRecDemo.delName[uiRecDemo.demosList.curItem] ) == 0 || !stricmp( gpGlobals->demoname, uiRecDemo.delName[uiRecDemo.demosList.curItem] )) uiRecDemo.remove.generic.flags |= QMF_GRAYED; else uiRecDemo.remove.generic.flags &= ~QMF_GRAYED; return; } if( event != QM_ACTIVATED ) return; switch( item->id ) { case ID_CANCEL: UI_PopMenu(); break; case ID_RECORD: if( gpGlobals->demorecording ) { CLIENT_COMMAND( FALSE, "stop" ); uiRecDemo.record.generic.name = "Record"; uiRecDemo.record.generic.statusText = "Record a new demo"; uiRecDemo.remove.generic.flags &= ~QMF_GRAYED; } else if( strlen( uiRecDemo.demoName[uiRecDemo.demosList.curItem] )) { char cmd[128]; sprintf( cmd, "demos/%s.bmp", uiRecDemo.demoName[uiRecDemo.demosList.curItem] ); PIC_Free( cmd ); sprintf( cmd, "record \"%s\"\n", uiRecDemo.demoName[uiRecDemo.demosList.curItem] ); CLIENT_COMMAND( FALSE, cmd ); UI_CloseMenu(); } break; case ID_NO: case ID_DELETE: UI_DeleteDialog(); break; case ID_YES: if( strlen( uiRecDemo.delName[uiRecDemo.demosList.curItem] )) { char cmd[128]; sprintf( cmd, "killdemo \"%s\"\n", uiRecDemo.delName[uiRecDemo.demosList.curItem] ); CLIENT_COMMAND( TRUE, cmd ); sprintf( cmd, "demos/%s.bmp", uiRecDemo.delName[uiRecDemo.demosList.curItem] ); PIC_Free( cmd ); // restarts the menu UI_PopMenu(); UI_RecDemo_Menu(); return; } UI_DeleteDialog(); break; } }