k_gui_icon_board,
k_gui_icon_world,
k_gui_icon_rift,
+ k_gui_icon_rift_run,
+ k_gui_icon_friend,
k_gui_icon_count,
};
struct icon_call {
enum gui_icon icon;
v4f location;
+ v4f colour;
+ int colour_changed;
}
icon_draw_buffer[32];
u32 icon_draw_count;
+ v4f cur_icon_colour;
+ int colour_changed;
char location[64];
f64 location_time;
mdl_submesh *icons[ k_gui_icon_count ];
}
-static gui;
+static gui = {.cur_icon_colour = {1.0f,1.0f,1.0f,1.0f},.colour_changed=1};
static
void gui_helper_action( const char *bindstr, const char *text ){
helper->text = text;
}
-static
-void gui_draw(void)
-{
+static void gui_draw(void){
if( v3_dist2(localplayer.rb.co,gui.trick_co) > 2.0f ){
gui.trick_type = k_guitrick_type_none;
}
m4x3_identity( mmdl );
shader_model_font_uMdl( mmdl );
- shader_model_font_uColour( (v4f){1.0f,1.0f,1.0f,1.0f} );
glActiveTexture( GL_TEXTURE0 );
glBindTexture( GL_TEXTURE_2D, gui.icons_texture );
shader_model_font_uTexMain( 0 );
for( u32 i=0; i<gui.icon_draw_count; i++ ){
struct icon_call *call = &gui.icon_draw_buffer[i];
+
+ if( call->colour_changed )
+ shader_model_font_uColour( call->colour );
+
shader_model_font_uOffset( call->location );
mdl_submesh *sm = gui.icons[ call->icon ];
gui.helper_count = 0;
}
-static
-int gui_location_print_ccmd( int argc, const char *argv[] ){
+static int gui_location_print_ccmd( int argc, const char *argv[] ){
if( argc > 0 ){
char new_loc[64];
vg_str str;
call->location[1] = co[1] * (f32)vg.window_y;
call->location[2] = 0.0f;
call->location[3] = size * (f32)vg.window_x;
+
+ v4_copy( gui.cur_icon_colour, call->colour );
+ call->colour_changed = gui.colour_changed;
+ gui.colour_changed = 0;
+}
+
+static void gui_icon_setcolour( v4f colour ){
+ gui.colour_changed = 1;
+ v4_copy( colour, gui.cur_icon_colour );
}
static mdl_submesh *gui_find_icon( const char *name ){
gui.icons[ k_gui_icon_board ] = gui_find_icon( "icon_board" );
gui.icons[ k_gui_icon_world ] = gui_find_icon( "icon_world" );
gui.icons[ k_gui_icon_rift ] = gui_find_icon( "icon_rift" );
+ gui.icons[ k_gui_icon_rift_run ] = gui_find_icon( "icon_rift_run" );
+ gui.icons[ k_gui_icon_friend ] = gui_find_icon( "icon_friend" );
vg_linear_clear( vg_mem.scratch );
if( !mdl_arrcount( &gui.model_icons.textures ) )