rendered paste bodyint draw_view(struct view *view, struct mouse_state *mouse_state)
{
struct widget_level *widget_level;
struct widget_list *widget_list;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
widget_level = view->widget_level;
while(widget_level != NULL) {
widget_list = widget_level->widget_list;
while(widget_list != NULL) {
switch(widget_list->widget->widget_type) {
case WIDGET_MENU:
if(draw_menu((struct menu*) \
widget_list->widget) == ERROR)
return ERROR;
break;
case WIDGET_PANEL:
if(draw_panel((struct panel*) \
widget_list->widget) == ERROR)
return ERROR;
break;
case WIDGET_BUTTON:
if(draw_button((struct button*) \
widget_list->widget) == ERROR)
return ERROR;
break;
case WIDGET_BUTTONGRID:
if(draw_buttongrid((struct buttongrid*)\
widget_list->widget) == ERROR)
return ERROR;
break;
case WIDGET_LABEL:
if(draw_label((struct label*) \
widget_list->widget) == ERROR)
return ERROR;
break;
case WIDGET_SCROLLABLE:
if(draw_scrollable((struct scrollable*)\
widget_list->widget) == ERROR)
return ERROR;
break;
case WIDGET_MSGBOX:
if(draw_msgbox((struct msgbox*) \
widget_list->widget) == ERROR)
return ERROR;
break;
}
widget_list = widget_list->next_widget;
}
widget_level = widget_level->next_level;
}
if(view->game_state != NULL) {
if(draw_map(&(view->game_state->object_list->map)) == ERROR)
return ERROR;
draw_cube_map(&(view->game_state->object_list->map), \
&(view->game_state->textures));
if(view->game_state->build_object.type != NIL)
if(pinpoint_object_location(\
&(view->game_state->object_list->map), \
mouse_state, \
&(view->game_state->build_object)) == ERROR)
return ERROR;
draw_map_objects(&(view->game_state->object_list->map), \
&(view->game_state->textures), \
&(view->game_state->models));
draw_select_box(&(view->game_state->object_list->map), \
&(view->game_state->build_object), \
&(view->game_state->models), \
&(view->game_state->textures));
}
return REDRAW;
}