Draw in response to EVENT_UI_DIALOG_DRAW, uncomment medlisp_update_screen call and use gr_box instead of gr_rect in some places. You can now see what you're doing
This commit is contained in:
parent
8b757570d5
commit
ea454664d0
|
@ -4,6 +4,7 @@ D1X-Rebirth Changelog
|
|||
--------
|
||||
arch/ogl/gr.c, arch/sdl/gr.c, ui/menubar.c: Draw the editor menubar properly - by drawing in response to EVENT_WINDOW_DRAW and initialising the screen canvas properly. The latter fixes a lot of other editor drawing issues as well
|
||||
2d/bitmap.c, arch/include/window.h, arch/sdl/gr.c, arch/sdl/window.c, include/gr.h: Update the canvas data pointers for all windows after changing the screen mode, so the main menu draws properly after leaving the editor
|
||||
arch/include/event.h, editor/centers.c, editor/curves.c, editor/ehostage.c, editor/eswitch.c, editor/med.c, editor/meddraw.c, editor/medrobot.c, editor/medwall.c, ui/dialog.c, ui/userbox.c: Draw in response to EVENT_UI_DIALOG_DRAW, uncomment medlisp_update_screen call and use gr_box instead of gr_rect in some places. You can now see what you're doing!
|
||||
|
||||
20120319
|
||||
--------
|
||||
|
|
|
@ -30,6 +30,7 @@ typedef enum event_type
|
|||
EVENT_NEWMENU_CHANGED, // an item had its value/text changed
|
||||
EVENT_NEWMENU_SELECTED, // user chose something - pressed enter/clicked on it
|
||||
|
||||
EVENT_UI_DIALOG_DRAW, // draw after the dialog stuff is drawn (e.g. spinning robots)
|
||||
EVENT_UI_GADGET_PRESSED, // user 'pressed' a gadget
|
||||
EVENT_UI_LISTBOX_MOVED,
|
||||
EVENT_UI_LISTBOX_SELECTED,
|
||||
|
|
|
@ -126,7 +126,6 @@ int centers_dialog_handler(UI_DIALOG *dlg, d_event *event, centers_dialog *c)
|
|||
int i;
|
||||
// int robot_flags;
|
||||
int keypress = 0;
|
||||
int redraw_window;
|
||||
int rval = 0;
|
||||
|
||||
Assert(MainWindow != NULL);
|
||||
|
@ -161,7 +160,6 @@ int centers_dialog_handler(UI_DIALOG *dlg, d_event *event, centers_dialog *c)
|
|||
// update the corresponding center.
|
||||
//------------------------------------------------------------
|
||||
|
||||
redraw_window=0;
|
||||
for ( i=0; i < MAX_CENTER_TYPES; i++ )
|
||||
{
|
||||
if ( GADGET_PRESSED(c->centerFlag[i]) )
|
||||
|
@ -171,7 +169,7 @@ int centers_dialog_handler(UI_DIALOG *dlg, d_event *event, centers_dialog *c)
|
|||
else if (Cursegp->special != i)
|
||||
{
|
||||
fuelcen_delete(Cursegp);
|
||||
redraw_window = 1;
|
||||
Update_flags |= UF_WORLD_CHANGED;
|
||||
fuelcen_activate( Cursegp, i );
|
||||
}
|
||||
rval = 1;
|
||||
|
@ -194,7 +192,8 @@ int centers_dialog_handler(UI_DIALOG *dlg, d_event *event, centers_dialog *c)
|
|||
// If anything changes in the ui system, redraw all the text that
|
||||
// identifies this wall.
|
||||
//------------------------------------------------------------
|
||||
if (redraw_window || (c->old_seg_num != Cursegp-Segments ) ) {
|
||||
if (event->type == EVENT_UI_DIALOG_DRAW)
|
||||
{
|
||||
// int i;
|
||||
// char temp_text[CENTER_STRING_LENGTH];
|
||||
|
||||
|
@ -207,9 +206,11 @@ int centers_dialog_handler(UI_DIALOG *dlg, d_event *event, centers_dialog *c)
|
|||
// Assert(Cursegp->special < MAX_CENTER_TYPES);
|
||||
// strncpy(temp_text, Center_names[Cursegp->special], strlen(Center_names[Cursegp->special]));
|
||||
// ui_dprintf_at( dlg, 12, 23, " Type: %s", temp_text );
|
||||
Update_flags |= UF_WORLD_CHANGED;
|
||||
}
|
||||
|
||||
if (c->old_seg_num != Cursegp-Segments)
|
||||
Update_flags |= UF_WORLD_CHANGED;
|
||||
|
||||
if (event->type == EVENT_WINDOW_CLOSE)
|
||||
{
|
||||
d_free(c);
|
||||
|
|
|
@ -116,9 +116,9 @@ void plot_parametric(vms_equation *coeffs, fix min_t, fix max_t, fix del_t) {
|
|||
fix t, dt;
|
||||
|
||||
gr_setcolor(15);
|
||||
gr_rect( 75, 40, 325, 290 );
|
||||
gr_rect( 75, 310, 325, 560 );
|
||||
gr_rect( 475, 310, 725, 560 );
|
||||
gr_box( 75, 40, 325, 290 );
|
||||
gr_box( 75, 310, 325, 560 );
|
||||
gr_box( 475, 310, 725, 560 );
|
||||
//gr_pal_fade_in( grd_curscreen->pal );
|
||||
|
||||
for (t=min_t;t<max_t-del_t;t+=del_t) {
|
||||
|
|
|
@ -447,41 +447,43 @@ int hostage_dialog_handler(UI_DIALOG *dlg, d_event *event, hostage_dialog *h)
|
|||
if ( CurrentHostageIndex > -1 )
|
||||
strcpy( Hostages[CurrentHostageIndex].text, h->hostageText->text );
|
||||
|
||||
//------------------------------------------------------------
|
||||
// A simple frame time counter for spinning the objects...
|
||||
//------------------------------------------------------------
|
||||
Temp = timer_query();
|
||||
DeltaTime = Temp - h->time;
|
||||
h->time = Temp;
|
||||
|
||||
//------------------------------------------------------------
|
||||
// Redraw the object in the little 64x64 box
|
||||
//------------------------------------------------------------
|
||||
if (CurrentHostageIndex > -1 ) {
|
||||
int vclip_num;
|
||||
if (event->type == EVENT_UI_DIALOG_DRAW)
|
||||
{
|
||||
// A simple frame time counter for spinning the objects...
|
||||
Temp = timer_query();
|
||||
DeltaTime = Temp - h->time;
|
||||
h->time = Temp;
|
||||
|
||||
vclip_num = Hostages[CurrentHostageIndex].vclip_num;
|
||||
if (CurrentHostageIndex > -1 ) {
|
||||
int vclip_num;
|
||||
|
||||
vclip_num = Hostages[CurrentHostageIndex].vclip_num;
|
||||
|
||||
Assert(vclip_num != -1);
|
||||
Assert(vclip_num != -1);
|
||||
|
||||
gr_set_current_canvas( h->hostageViewBox->canvas );
|
||||
gr_set_current_canvas( h->hostageViewBox->canvas );
|
||||
|
||||
if ( vclip_num > -1 ) {
|
||||
vclip_play( h, &Hostage_face_clip[vclip_num], DeltaTime );
|
||||
if ( vclip_num > -1 ) {
|
||||
vclip_play( h, &Hostage_face_clip[vclip_num], DeltaTime );
|
||||
} else {
|
||||
gr_clear_canvas( CGREY );
|
||||
}
|
||||
} else {
|
||||
// no hostage, so just blank out
|
||||
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 (ui_button_any_drawn || (LastHostageIndex != CurrentHostageIndex) ) {
|
||||
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 );
|
||||
|
@ -491,9 +493,11 @@ int hostage_dialog_handler(UI_DIALOG *dlg, d_event *event, hostage_dialog *h)
|
|||
//@@ui_dprintf_at( MainWindow, 10, 73, "Type: Sound: " );
|
||||
ui_dprintf_at( MainWindow, 10, 73, "Face: " );
|
||||
}
|
||||
Update_flags |= UF_WORLD_CHANGED;
|
||||
}
|
||||
|
||||
if (ui_button_any_drawn || (LastHostageIndex != CurrentHostageIndex))
|
||||
Update_flags |= UF_WORLD_CHANGED;
|
||||
|
||||
if (event->type == EVENT_WINDOW_CLOSE)
|
||||
{
|
||||
d_free(h);
|
||||
|
|
|
@ -446,35 +446,41 @@ int trigger_dialog_handler(UI_DIALOG *dlg, d_event *event, trigger_dialog *t)
|
|||
//------------------------------------------------------------
|
||||
// Draw the wall in the little 64x64 box
|
||||
//------------------------------------------------------------
|
||||
gr_set_current_canvas( t->wallViewBox->canvas );
|
||||
if (event->type == EVENT_UI_DIALOG_DRAW)
|
||||
{
|
||||
gr_set_current_canvas( t->wallViewBox->canvas );
|
||||
|
||||
if ((Markedsegp->sides[Markedside].wall_num == -1) || (Walls[Markedsegp->sides[Markedside].wall_num].trigger) == -1)
|
||||
gr_clear_canvas( CBLACK );
|
||||
else {
|
||||
if (Markedsegp->sides[Markedside].tmap_num2 > 0) {
|
||||
gr_ubitmap(0,0, texmerge_get_cached_bitmap( Markedsegp->sides[Markedside].tmap_num, Markedsegp->sides[Markedside].tmap_num2));
|
||||
} else {
|
||||
if (Markedsegp->sides[Markedside].tmap_num > 0) {
|
||||
PIGGY_PAGE_IN(Textures[Markedsegp->sides[Markedside].tmap_num]);
|
||||
gr_ubitmap(0,0, &GameBitmaps[Textures[Markedsegp->sides[Markedside].tmap_num].index]);
|
||||
} else
|
||||
gr_clear_canvas( CGREY );
|
||||
if ((Markedsegp->sides[Markedside].wall_num == -1) || (Walls[Markedsegp->sides[Markedside].wall_num].trigger) == -1)
|
||||
gr_clear_canvas( CBLACK );
|
||||
else {
|
||||
if (Markedsegp->sides[Markedside].tmap_num2 > 0) {
|
||||
gr_ubitmap(0,0, texmerge_get_cached_bitmap( Markedsegp->sides[Markedside].tmap_num, Markedsegp->sides[Markedside].tmap_num2));
|
||||
} else {
|
||||
if (Markedsegp->sides[Markedside].tmap_num > 0) {
|
||||
PIGGY_PAGE_IN(Textures[Markedsegp->sides[Markedside].tmap_num]);
|
||||
gr_ubitmap(0,0, &GameBitmaps[Textures[Markedsegp->sides[Markedside].tmap_num].index]);
|
||||
} else
|
||||
gr_clear_canvas( CGREY );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
// If anything changes in the ui system, redraw all the text that
|
||||
// identifies this robot.
|
||||
//------------------------------------------------------------
|
||||
if (ui_button_any_drawn || (t->old_trigger_num != trigger_num) ) {
|
||||
if (event->type == EVENT_UI_DIALOG_DRAW)
|
||||
{
|
||||
if ( Markedsegp->sides[Markedside].wall_num > -1 ) {
|
||||
ui_dprintf_at( MainWindow, 12, 6, "Trigger: %d ", trigger_num);
|
||||
} else {
|
||||
ui_dprintf_at( MainWindow, 12, 6, "Trigger: none ");
|
||||
}
|
||||
Update_flags |= UF_WORLD_CHANGED;
|
||||
}
|
||||
|
||||
if (ui_button_any_drawn || (t->old_trigger_num != trigger_num) )
|
||||
Update_flags |= UF_WORLD_CHANGED;
|
||||
|
||||
if (event->type == EVENT_WINDOW_CLOSE)
|
||||
{
|
||||
d_free(t);
|
||||
|
|
78
editor/med.c
78
editor/med.c
|
@ -164,7 +164,7 @@ void print_diagnostic( char message[DIAGNOSTIC_MESSAGE_MAX] ) {
|
|||
gr_rect( 4+w, 583, 799, 599 );
|
||||
}
|
||||
|
||||
static char status_line[DIAGNOSTIC_MESSAGE_MAX];
|
||||
static char status_line[DIAGNOSTIC_MESSAGE_MAX] = "";
|
||||
|
||||
struct tm Editor_status_last_time;
|
||||
|
||||
|
@ -176,8 +176,6 @@ void editor_status( const char *format, ... )
|
|||
vsprintf(status_line, format, ap);
|
||||
va_end(ap);
|
||||
|
||||
print_status_bar(status_line);
|
||||
|
||||
Editor_status_last_time = Editor_time_of_day;
|
||||
|
||||
}
|
||||
|
@ -199,13 +197,11 @@ void clear_editor_status(void)
|
|||
|
||||
if (cur_time > erase_time) {
|
||||
int i;
|
||||
char message[DIAGNOSTIC_MESSAGE_MAX];
|
||||
|
||||
for (i=0; i<DIAGNOSTIC_MESSAGE_MAX-1; i++)
|
||||
message[i] = ' ';
|
||||
status_line[i] = ' ';
|
||||
|
||||
message[i] = 0;
|
||||
print_status_bar(message);
|
||||
status_line[i] = 0;
|
||||
Editor_status_last_time.tm_hour = 99;
|
||||
}
|
||||
}
|
||||
|
@ -1112,38 +1108,44 @@ int editor_handler(UI_DIALOG *dlg, d_event *event, void *data)
|
|||
|
||||
// Update the windows
|
||||
|
||||
// Only update if there is no key waiting and we're not in
|
||||
// fast play mode.
|
||||
// if (!key_peekkey()) //-- && (MacroStatus != UI_STATUS_FASTPLAY))
|
||||
// medlisp_update_screen();
|
||||
|
||||
//do editor stuff
|
||||
check_wall_validity();
|
||||
Assert(Num_walls>=0);
|
||||
|
||||
if (Gameview_lockstep) {
|
||||
static segment *old_cursegp=NULL;
|
||||
static int old_curside=-1;
|
||||
|
||||
if (old_cursegp!=Cursegp || old_curside!=Curside) {
|
||||
SetPlayerFromCursegMinusOne();
|
||||
old_cursegp = Cursegp;
|
||||
old_curside = Curside;
|
||||
}
|
||||
}
|
||||
|
||||
if ( event_get_idle_seconds() > COMPRESS_INTERVAL )
|
||||
if (event->type == EVENT_UI_DIALOG_DRAW)
|
||||
{
|
||||
med_compress_mine();
|
||||
event_reset_idle_seconds();
|
||||
medlisp_update_screen();
|
||||
print_status_bar(status_line);
|
||||
return 1;
|
||||
}
|
||||
|
||||
//do editor stuff
|
||||
if (event->type == EVENT_IDLE)
|
||||
{
|
||||
check_wall_validity();
|
||||
Assert(Num_walls>=0);
|
||||
|
||||
if (Gameview_lockstep) {
|
||||
static segment *old_cursegp=NULL;
|
||||
static int old_curside=-1;
|
||||
|
||||
if (old_cursegp!=Cursegp || old_curside!=Curside) {
|
||||
SetPlayerFromCursegMinusOne();
|
||||
old_cursegp = Cursegp;
|
||||
old_curside = Curside;
|
||||
}
|
||||
}
|
||||
|
||||
if ( event_get_idle_seconds() > COMPRESS_INTERVAL )
|
||||
{
|
||||
med_compress_mine();
|
||||
event_reset_idle_seconds();
|
||||
}
|
||||
|
||||
// Commented out because it occupies about 25% of time in twirling the mine.
|
||||
// Removes some Asserts....
|
||||
// med_check_all_vertices();
|
||||
clear_editor_status(); // if enough time elapsed, clear editor status message
|
||||
TimedAutosave(mine_filename);
|
||||
set_editor_time_of_day();
|
||||
}
|
||||
|
||||
// Commented out because it occupies about 25% of time in twirling the mine.
|
||||
// Removes some Asserts....
|
||||
// med_check_all_vertices();
|
||||
clear_editor_status(); // if enough time elapsed, clear editor status message
|
||||
TimedAutosave(mine_filename);
|
||||
set_editor_time_of_day();
|
||||
gr_set_current_canvas( GameViewBox->canvas );
|
||||
|
||||
// Remove keys used for slew
|
||||
|
@ -1236,7 +1238,9 @@ int editor_handler(UI_DIALOG *dlg, d_event *event, void *data)
|
|||
current_view = new_cv;
|
||||
}
|
||||
|
||||
calc_frame_time();
|
||||
if (event->type == EVENT_UI_DIALOG_DRAW)
|
||||
calc_frame_time();
|
||||
|
||||
if (slew_frame(0)) { //do movement and check keys
|
||||
Update_flags |= UF_GAME_VIEW_CHANGED;
|
||||
if (Gameview_lockstep) {
|
||||
|
|
|
@ -800,8 +800,6 @@ void draw_world(grs_canvas *screen_canvas,editor_view *v,segment *mine_ptr,int d
|
|||
gr_set_current_canvas(screen_canvas);
|
||||
#endif
|
||||
|
||||
mouse_toggle_cursor(0);
|
||||
|
||||
//g3_set_points(Segment_points,Vertices);
|
||||
|
||||
viewer_position = v->ev_matrix.fvec;
|
||||
|
@ -906,9 +904,6 @@ void draw_world(grs_canvas *screen_canvas,editor_view *v,segment *mine_ptr,int d
|
|||
// }
|
||||
|
||||
#endif
|
||||
|
||||
mouse_toggle_cursor(1);
|
||||
|
||||
}
|
||||
|
||||
//find the segments that render at a given screen x,y
|
||||
|
|
|
@ -614,46 +614,50 @@ int robot_dialog_handler(UI_DIALOG *dlg, d_event *event, robot_dialog *r)
|
|||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
// A simple frame time counter for spinning the objects...
|
||||
//------------------------------------------------------------
|
||||
Temp = timer_query();
|
||||
DeltaTime = Temp - r->time;
|
||||
r->time = Temp;
|
||||
|
||||
//------------------------------------------------------------
|
||||
// Redraw the object in the little 64x64 box
|
||||
//------------------------------------------------------------
|
||||
if (Cur_object_index > -1 ) {
|
||||
object *obj = &Objects[Cur_object_index];
|
||||
if (event->type == EVENT_UI_DIALOG_DRAW)
|
||||
{
|
||||
// A simple frame time counter for spinning the objects...
|
||||
Temp = timer_query();
|
||||
DeltaTime = Temp - r->time;
|
||||
r->time = Temp;
|
||||
|
||||
gr_set_current_canvas( r->robotViewBox->canvas );
|
||||
draw_object_picture(obj->id, &r->angles, obj->type );
|
||||
r->angles.h += fixmul(0x1000, DeltaTime );
|
||||
} else {
|
||||
// no object, so just blank out
|
||||
gr_set_current_canvas( r->robotViewBox->canvas );
|
||||
gr_clear_canvas( CGREY );
|
||||
if (Cur_object_index > -1 ) {
|
||||
object *obj = &Objects[Cur_object_index];
|
||||
|
||||
// LocalObjectSelectNextInMine();
|
||||
gr_set_current_canvas( r->robotViewBox->canvas );
|
||||
draw_object_picture(obj->id, &r->angles, obj->type );
|
||||
r->angles.h += fixmul(0x1000, DeltaTime );
|
||||
} else {
|
||||
// no object, so just blank out
|
||||
gr_set_current_canvas( r->robotViewBox->canvas );
|
||||
gr_clear_canvas( CGREY );
|
||||
|
||||
// LocalObjectSelectNextInMine();
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
// Redraw the contained object in the other little box
|
||||
//------------------------------------------------------------
|
||||
if ((Cur_object_index > -1 ) && (Cur_goody_count > 0)) {
|
||||
gr_set_current_canvas( r->containsViewBox->canvas );
|
||||
if ( Cur_goody_id > -1 )
|
||||
draw_object_picture(Cur_goody_id, &r->goody_angles, Cur_goody_type);
|
||||
else
|
||||
if (event->type == EVENT_UI_DIALOG_DRAW)
|
||||
{
|
||||
if ((Cur_object_index > -1 ) && (Cur_goody_count > 0)) {
|
||||
gr_set_current_canvas( r->containsViewBox->canvas );
|
||||
if ( Cur_goody_id > -1 )
|
||||
draw_object_picture(Cur_goody_id, &r->goody_angles, Cur_goody_type);
|
||||
else
|
||||
gr_clear_canvas( CGREY );
|
||||
r->goody_angles.h += fixmul(0x1000, DeltaTime );
|
||||
} else {
|
||||
// no object, so just blank out
|
||||
gr_set_current_canvas( r->containsViewBox->canvas );
|
||||
gr_clear_canvas( CGREY );
|
||||
r->goody_angles.h += fixmul(0x1000, DeltaTime );
|
||||
} else {
|
||||
// no object, so just blank out
|
||||
gr_set_current_canvas( r->containsViewBox->canvas );
|
||||
gr_clear_canvas( CGREY );
|
||||
|
||||
// LocalObjectSelectNextInMine();
|
||||
// LocalObjectSelectNextInMine();
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
|
@ -661,7 +665,8 @@ int robot_dialog_handler(UI_DIALOG *dlg, d_event *event, robot_dialog *r)
|
|||
// identifies this robot.
|
||||
//------------------------------------------------------------
|
||||
|
||||
if (ui_button_any_drawn || (r->old_object != Cur_object_index) ) {
|
||||
if (event->type == EVENT_UI_DIALOG_DRAW)
|
||||
{
|
||||
int i;
|
||||
char type_text[STRING_LENGTH+1],id_text[STRING_LENGTH+1];
|
||||
|
||||
|
@ -723,9 +728,11 @@ int robot_dialog_handler(UI_DIALOG *dlg, d_event *event, robot_dialog *r)
|
|||
ui_dprintf_at( MainWindow, 12, 22, " Type: ? " );
|
||||
ui_dprintf_at( MainWindow, 12, 38, " Name: ________" );
|
||||
}
|
||||
Update_flags |= UF_WORLD_CHANGED;
|
||||
}
|
||||
|
||||
if (ui_button_any_drawn || (r->old_object != Cur_object_index) )
|
||||
Update_flags |= UF_WORLD_CHANGED;
|
||||
|
||||
if (event->type == EVENT_WINDOW_CLOSE)
|
||||
{
|
||||
d_free(r);
|
||||
|
|
|
@ -505,47 +505,49 @@ int wall_dialog_handler(UI_DIALOG *dlg, d_event *event, wall_dialog *wd)
|
|||
wd->doorFlag[i]->status = 1; // Tells ui to redraw button
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
// A simple frame time counter for animating the walls...
|
||||
//------------------------------------------------------------
|
||||
Temp = timer_query();
|
||||
DeltaTime = Temp - wd->time;
|
||||
|
||||
//------------------------------------------------------------
|
||||
// Draw the wall in the little 64x64 box
|
||||
//------------------------------------------------------------
|
||||
gr_set_current_canvas( wd->wallViewBox->canvas );
|
||||
if (Cursegp->sides[Curside].wall_num != -1) {
|
||||
type = Walls[Cursegp->sides[Curside].wall_num].type;
|
||||
if ((type == WALL_DOOR) || (type == WALL_BLASTABLE)) {
|
||||
if (DeltaTime > ((F1_0*200)/1000)) {
|
||||
wd->framenum++;
|
||||
wd->time = Temp;
|
||||
}
|
||||
if (wd->framenum >= WallAnims[Walls[Cursegp->sides[Curside].wall_num].clip_num].num_frames)
|
||||
wd->framenum=0;
|
||||
PIGGY_PAGE_IN(Textures[WallAnims[Walls[Cursegp->sides[Curside].wall_num].clip_num].frames[wd->framenum]]);
|
||||
gr_ubitmap(0,0, &GameBitmaps[Textures[WallAnims[Walls[Cursegp->sides[Curside].wall_num].clip_num].frames[wd->framenum]].index]);
|
||||
} else {
|
||||
if (type == WALL_OPEN)
|
||||
gr_clear_canvas( CBLACK );
|
||||
else {
|
||||
if (Cursegp->sides[Curside].tmap_num2 > 0)
|
||||
gr_ubitmap(0,0, texmerge_get_cached_bitmap( Cursegp->sides[Curside].tmap_num, Cursegp->sides[Curside].tmap_num2));
|
||||
else {
|
||||
PIGGY_PAGE_IN(Textures[Cursegp->sides[Curside].tmap_num]);
|
||||
gr_ubitmap(0,0, &GameBitmaps[Textures[Cursegp->sides[Curside].tmap_num].index]);
|
||||
if (event->type == EVENT_UI_DIALOG_DRAW)
|
||||
{
|
||||
// A simple frame time counter for animating the walls...
|
||||
Temp = timer_query();
|
||||
DeltaTime = Temp - wd->time;
|
||||
|
||||
gr_set_current_canvas( wd->wallViewBox->canvas );
|
||||
if (Cursegp->sides[Curside].wall_num != -1) {
|
||||
type = Walls[Cursegp->sides[Curside].wall_num].type;
|
||||
if ((type == WALL_DOOR) || (type == WALL_BLASTABLE)) {
|
||||
if (DeltaTime > ((F1_0*200)/1000)) {
|
||||
wd->framenum++;
|
||||
wd->time = Temp;
|
||||
}
|
||||
if (wd->framenum >= WallAnims[Walls[Cursegp->sides[Curside].wall_num].clip_num].num_frames)
|
||||
wd->framenum=0;
|
||||
PIGGY_PAGE_IN(Textures[WallAnims[Walls[Cursegp->sides[Curside].wall_num].clip_num].frames[wd->framenum]]);
|
||||
gr_ubitmap(0,0, &GameBitmaps[Textures[WallAnims[Walls[Cursegp->sides[Curside].wall_num].clip_num].frames[wd->framenum]].index]);
|
||||
} else {
|
||||
if (type == WALL_OPEN)
|
||||
gr_clear_canvas( CBLACK );
|
||||
else {
|
||||
if (Cursegp->sides[Curside].tmap_num2 > 0)
|
||||
gr_ubitmap(0,0, texmerge_get_cached_bitmap( Cursegp->sides[Curside].tmap_num, Cursegp->sides[Curside].tmap_num2));
|
||||
else {
|
||||
PIGGY_PAGE_IN(Textures[Cursegp->sides[Curside].tmap_num]);
|
||||
gr_ubitmap(0,0, &GameBitmaps[Textures[Cursegp->sides[Curside].tmap_num].index]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else
|
||||
gr_clear_canvas( CGREY );
|
||||
} else
|
||||
gr_clear_canvas( CGREY );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------
|
||||
// If anything changes in the ui system, redraw all the text that
|
||||
// identifies this wall.
|
||||
//------------------------------------------------------------
|
||||
if (ui_button_any_drawn || (wd->old_wall_num != Cursegp->sides[Curside].wall_num) ) {
|
||||
if (event->type == EVENT_UI_DIALOG_DRAW)
|
||||
{
|
||||
if ( Cursegp->sides[Curside].wall_num > -1 ) {
|
||||
ui_dprintf_at( MainWindow, 12, 6, "Wall: %d ", Cursegp->sides[Curside].wall_num);
|
||||
switch (Walls[Cursegp->sides[Curside].wall_num].type) {
|
||||
|
@ -583,9 +585,11 @@ int wall_dialog_handler(UI_DIALOG *dlg, d_event *event, wall_dialog *wd)
|
|||
ui_dprintf_at( MainWindow, 12, 40, " Clip: none ");
|
||||
ui_dprintf_at( MainWindow, 12, 57, " Trigger: none ");
|
||||
}
|
||||
Update_flags |= UF_WORLD_CHANGED;
|
||||
}
|
||||
|
||||
if (ui_button_any_drawn || (wd->old_wall_num != Cursegp->sides[Curside].wall_num) )
|
||||
Update_flags |= UF_WORLD_CHANGED;
|
||||
|
||||
if (event->type == EVENT_WINDOW_CLOSE)
|
||||
{
|
||||
d_free(wd);
|
||||
|
|
|
@ -176,8 +176,12 @@ int ui_dialog_handler(window *wind, d_event *event, UI_DIALOG *dlg)
|
|||
break;
|
||||
|
||||
case EVENT_WINDOW_DRAW:
|
||||
return ui_dialog_draw(dlg);
|
||||
{
|
||||
d_event event2 = { EVENT_UI_DIALOG_DRAW };
|
||||
rval = ui_dialog_draw(dlg);
|
||||
window_send_event(wind, &event2);
|
||||
break;
|
||||
}
|
||||
|
||||
case EVENT_WINDOW_CLOSE:
|
||||
//ui_close_dialog(dlg); // need to hide this function and make it not call window_close first
|
||||
|
@ -606,8 +610,5 @@ void ui_dprintf_at( UI_DIALOG * dlg, short x, short y, char * format, ... )
|
|||
|
||||
ui_dialog_set_current_canvas( dlg );
|
||||
|
||||
mouse_toggle_cursor(0);
|
||||
gr_string( x, y, buffer );
|
||||
mouse_toggle_cursor(1);
|
||||
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ void ui_draw_userbox( UI_DIALOG *dlg, UI_GADGET_USERBOX * userbox )
|
|||
else
|
||||
gr_setcolor( CBRIGHT );
|
||||
|
||||
gr_rect( -1, -1, userbox->width, userbox->height );
|
||||
gr_box( -1, -1, userbox->width, userbox->height );
|
||||
|
||||
mouse_toggle_cursor(1);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue