////////////////////////////////////////////////////////////////////////////
//
//  Crytek Engine Source File.
//  Copyright (C), Crytek Studios, 2002.
// -------------------------------------------------------------------------
//  File name:   cvars.h
//  Version:     v1.00
//  Created:     28/5/2001 by Vladimir Kajalin
//  Compilers:   Visual Studio.NET
//  Description: 
// -------------------------------------------------------------------------
//  History:
//
////////////////////////////////////////////////////////////////////////////

#ifndef _3DENGINE_CVARS_H_
#define _3DENGINE_CVARS_H_

// console variables
struct CVars : public Cry3DEngineBase
{
  CVars() 
  { Init(); }

  void Init();

  int 
		e_render,
		e_allow_cvars_serialization,
		e_shadows,
    e_shadows_from_terrain_in_all_lods,
    e_shadows_on_alpha_blended,
    e_shadows_debug,
    e_shadows_clouds,
		e_shadows_frustums,
		e_shadows_max_texture_size,
		e_shadows_water,
		e_shadows_occ_check,
		e_shadows_occ_cutCaster,
		e_fog,
		e_fogvolumes,
		e_detail_objects,
		e_detail_materials,
		e_detail_materials_debug,
    e_particles,
    e_particles_debug,
		e_particles_thread,
		e_particles_object_collisions,
		e_particles_receive_shadows,
		e_particles_preload,
		e_particles_quality,
    e_particles_lights,
		e_roads,
    e_decals,
    e_decals_allow_game_decals,
    e_decals_hit_cache,
		e_decals_merge,
		e_decals_clip,
		e_decals_precreate,
    e_vegetation_bending,
    e_force_detail_level_for_resolution,
    e_vegetation_static_instancing,
    e_vegetation_sphericalskinning,
    e_vegetation_wind,
    e_vegetation,
		e_vegetation_alpha_blend,
    e_vegetation_use_terrain_color,
    e_vegetation_sprites,
		e_wind,
		e_wind_areas,
    e_entities,
    e_sky_box,
		e_sky_type,
    e_terrain,
    e_terrain_occlusion_culling_version,
    e_terrain_occlusion_culling_debug,
    e_terrain_deformations,
    e_level_auto_precache_camera_jump_dist,
    e_terrain_bboxes,
    e_terrain_normal_map,
    e_water_ocean,
    e_water_ocean_fft,    
    e_water_ocean_soft_particles,
    e_water_ocean_bottom,
		e_debug_draw,
    e_terrain_occlusion_culling,
		e_terrain_occlusion_culling_max_steps,
		e_terrain_occlusion_culling_step_size,
    e_terrain_texture_debug,
		e_terrain_texture_streaming_debug,
    e_terrain_log,
    e_video_buffer_stats,
    e_sun,
		e_timedemo_frames,    
		e_cbuffer,
		e_cbuffer_version,
		e_cbuffer_hw,
		e_cbuffer_lc,
		e_cbuffer_clip_planes_num,
		e_cbuffer_tree_depth,
		e_cbuffer_tree_debug,
		e_cbuffer_debug,
		e_cbuffer_debug_freeze,
		e_cbuffer_draw_occluders,
		e_cbuffer_test_mode,
		e_cbuffer_lights_debug_side,	
		e_cbuffer_resolution,
		e_cbuffer_occluders_test_min_tris_num,
		e_cbuffer_lazy_test,
		e_cbuffer_max_add_render_mesh_time,
    e_cbuffer_terrain,
    e_cbuffer_terrain_lod_shift,
		e_dynamic_light,
		e_dynamic_light_frame_id_vis_test,
    e_dynamic_light_consistent_sort_order,
		e_hw_occlusion_culling_water,
		e_hw_occlusion_culling_objects,
		e_portals,
    e_portals_big_entities_fix,
		e_max_entity_lights,
		e_max_view_dst,
		e_water_volumes,
    e_water_waves,
    e_water_waves_tesselation_amount,
    e_water_tesselation_amount,
    e_water_tesselation_swath_width,
		e_bboxes,
		e_brushes,
    e_scene_merging,
		e_scene_merging_compact_vertices,
		e_scene_merging_max_tris_in_chunk,
		e_scene_merging_max_time_ms,
    e_scene_merging_show_onlymerged,
		e_scene_merging_min_merge_distance,
    e_stream_cgf,
    e_stream_for_physics,
    e_stream_for_visuals,
    e_stream_areas,
		e_scissor_debug,
    e_ccgf_load,
    e_ccgf_make_if_not_found,
    e_materials,
		e_on_demand_physics,
		e_ram_maps,
		e_ram_DumpDXF,
		e_sleep,
		e_obj,
		e_terrain_draw_this_sector_only,
		e_occlusion_volumes,
		e_precache_level,
		e_dissolve,
		e_voxel,
    e_voxel_fill_mode,
		e_voxel_build,
		e_voxel_debug,
		e_voxel_ao_radius,
		e_voxel_ao_scale,
		e_voxel_lods_num,
		e_voxel_make_shadows,
		e_voxel_make_physics,
		e_vegetation_node_level,
		e_recursion,
    e_recursion_occlusion_culling,
		e_proc_vegetation,
		e_proc_vegetation_max_view_distance,
		e_gsm_lods_num,
    e_gsm_cache_lod_offset,
		e_gsm_depth_bounds_debug,
		e_gsm_stats,
		e_gsm_view_space,
		e_clouds,
		e_vegetation_mem_sort_test,
		e_sky_quality,
		e_gsm_combined,
		e_debug_mask,
		e_obj_tree_min_node_size,
    e_obj_tree_max_node_size,
    e_deformable_objects,
		e_cull_veg_activation,
		e_screenshot,
		e_screenshot_width,
		e_screenshot_height,
		e_screenshot_quality,
		e_screenshot_min_slices,
		e_screenshot_debug,
		e_phys_foliage,
		e_ropes,
		e_lod_min,
		e_lod_max,
		e_lod_min_tris,
		e_lods,
		e_ambient_occlusion,
		e_obj_stats,
    e_obj_fast_register,
    e_terrain_ao,
    e_profile_level_loading,
		e_obj_quality;

  float 
    e_level_auto_precache_terrain_and_proc_veget,
    e_level_auto_precache_textures_and_shaders,
    e_recursion_view_dist_ratio,
    e_max_view_dst_spec_lerp,
    e_max_view_dst_full_dist_cam_height,
    e_voxel_rasterize_selected_brush,
		e_screenshot_map_center_x,
		e_screenshot_map_center_y,
		e_screenshot_map_size_x,
		e_screenshot_map_size_y,
		e_screenshot_map_camheight,
		e_cbuffer_bias,
    e_cbuffer_occluders_view_dist_ratio,
    e_cbuffer_occluders_lod_ratio,
    e_cbuffer_debug_draw_scale,
    e_cbuffer_terrain_elevation_shift,
    e_cbuffer_terrain_lod_ratio,
    e_cbuffer_terrain_max_distance,
    e_vegetation_sprites_min_distance,
    e_vegetation_sprites_distance_ratio,
    e_vegetation_sprites_distance_custom_ratio_min,
		e_lod_ratio,
		e_view_dist_ratio,
		e_view_dist_ratio_detail,
		e_view_dist_custom_ratio,
		e_view_dist_ratio_vegetation,
		e_view_dist_min,
		e_terrain_occlusion_culling_precision,
    e_terrain_occlusion_culling_precision_dist_ratio,
    e_terrain_occlusion_culling_step_size_delta,
    e_terrain_occlusion_culling_max_dist,
    e_occlusion_culling_view_dist_ratio,
    e_vegetation_min_size,
		e_terrain_lod_ratio,
		e_particles_lod,
		e_particles_min_draw_pixels,
		e_particles_max_emitter_draw_screen,
		e_debug_lights,
		e_shadows_cast_view_dist_ratio,
		e_decals_life_time_scale,
		e_decals_neighbor_max_life_time,
    e_decals_overlapping,
		e_decals_range,
		e_mesh_simplify,
		e_decals_wrap_around_min_size,
    e_shadows_slope_bias,
		e_gsm_range,
		e_gsm_range_step,
		e_gsm_cache,
		e_gsm_range_step_terrain,
    e_gsm_scatter_lod_dist,
		e_detail_materials_view_dist_z,
		e_detail_materials_view_dist_xy,
    e_sun_clipplane_range,
    e_sun_angle_snap_sec,
    e_sun_angle_snap_dot,
		e_sky_update_rate,
		e_occlusion_volumes_view_dist_ratio,
		e_foliage_stiffness,
		e_foliage_branches_stiffness,
		e_foliage_branches_damping,
		e_foliage_broken_branches_damping,
		e_foliage_branches_timeout,
		e_foliage_wind_activation_dist,
		e_terrain_lm_gen_threshold,
    e_terrain_texture_lod_ratio,
		e_stat_obj_merge,
		e_time_of_day,e_time_of_day_speed,
		e_default_material,
		e_on_demand_maxsize,
		e_dissolve_transition_time,
    e_dissolve_transition_threshold,
    e_cull_lights_per_triangle_min_obj_radius,
		e_phys_ocean_cell,
		e_joint_strength_scale,
		e_volobj_shadow_strength,
		e_phys_bullet_coll_dist;

	ICVar 
		* e_screenshot_file_format;
};
  
#endif // _3DENGINE_CVARS_H_
