static window_event_result hostage_dialog_handler(UI_DIALOG *dlg,const d_event &event, hostage_dialog *h) { switch(event.type) { case EVENT_WINDOW_CREATED: return hostage_dialog_created(dlg, h); case EVENT_WINDOW_CLOSE: std::default_delete<hostage_dialog>()(h); MainWindow = nullptr; return window_event_result::ignored; default: break; } int keypress = 0; if (event.type == EVENT_KEY_COMMAND) keypress = event_key_get(event); Assert(MainWindow != NULL); //------------------------------------------------------------ // Redraw the object in the little 64x64 box //------------------------------------------------------------ if (GADGET_PRESSED(h->quitButton.get()) || keypress==KEY_ESC) { return window_event_result::close; } return window_event_result::ignored; }
static window_event_result hostage_dialog_handler(UI_DIALOG *dlg,const d_event &event, hostage_dialog *h) { switch(event.type) { case EVENT_WINDOW_CREATED: return hostage_dialog_created(dlg, h); case EVENT_WINDOW_CLOSE: std::default_delete<hostage_dialog>()(h); MainWindow = nullptr; return window_event_result::ignored; default: break; } fix64 Temp; int keypress = 0; if (event.type == EVENT_KEY_COMMAND) keypress = event_key_get(event); Assert(MainWindow != NULL); SelectClosestHostage(); //------------------------------------------------------------ // Call the ui code.. //------------------------------------------------------------ ui_button_any_drawn = 0; //------------------------------------------------------------ // If we change objects, we need to reset the ui code for all // of the radio buttons that control the ai mode. Also makes // the current AI mode button be flagged as pressed down. //------------------------------------------------------------ //------------------------------------------------------------ // If any of the radio buttons that control the mode are set, then // update the cooresponding AI state. //------------------------------------------------------------ //------------------------------------------------------------ // Redraw the object in the little 64x64 box //------------------------------------------------------------ if (event.type == EVENT_UI_DIALOG_DRAW) { ui_dprintf_at( MainWindow, 10, 32,"&Message:" ); // A simple frame time counter for spinning the objects... Temp = timer_query(); h->time = Temp; if (CurrentHostageIndex > -1 ) { gr_set_current_canvas( h->hostageViewBox->canvas ); gr_clear_canvas( CGREY ); } else { // no hostage, so just blank out gr_set_current_canvas( h->hostageViewBox->canvas ); gr_clear_canvas( CGREY ); } } //------------------------------------------------------------ // If anything changes in the ui system, redraw all the text that // identifies this robot. //------------------------------------------------------------ if (event.type == EVENT_UI_DIALOG_DRAW) { if ( CurrentHostageIndex > -1 ) { ui_dprintf_at( MainWindow, 10, 15, "Hostage: %d Object: %d", CurrentHostageIndex, Hostages[CurrentHostageIndex].objnum ); //@@ui_dprintf_at( MainWindow, 10, 73, "Type: %d Sound: %d ", Hostages[CurrentHostageIndex].type, Hostages[CurrentHostageIndex].sound_num ); } else { ui_dprintf_at( MainWindow, 10, 15, "Hostage: none " ); //@@ui_dprintf_at( MainWindow, 10, 73, "Type: Sound: " ); ui_dprintf_at( MainWindow, 10, 73, "Face: " ); } } if (ui_button_any_drawn || (LastHostageIndex != CurrentHostageIndex)) Update_flags |= UF_WORLD_CHANGED; if (GADGET_PRESSED(h->quitButton.get()) || keypress==KEY_ESC) { return window_event_result::close; } LastHostageIndex = CurrentHostageIndex; return window_event_result::ignored; }