Merge branch 'ryzomcore' into feature/merge_ryzomcore170417

Conflicts:
	.gitignore
	README.md
	code/CMakeLists.txt
	code/CMakeModules/ConfigureChecks.cmake
	code/CMakeModules/Find3dsMaxSDK.cmake
	code/CMakeModules/FindCustomMFC.cmake
	code/CMakeModules/FindMSVC.cmake
	code/CMakeModules/FindMercurial.cmake
	code/CMakeModules/FindWindowsSDK.cmake
	code/CMakeModules/PCHSupport.cmake
	code/CMakeModules/nel.cmake
	code/nel/CMakeLists.txt
	code/nel/include/nel/3d/animatable.h
	code/nel/include/nel/3d/animated_lightmap.h
	code/nel/include/nel/3d/animation_set_user.h
	code/nel/include/nel/3d/async_file_manager_3d.h
	code/nel/include/nel/3d/async_texture_manager.h
	code/nel/include/nel/3d/camera_col.h
	code/nel/include/nel/3d/cloud_scape_user.h
	code/nel/include/nel/3d/cluster.h
	code/nel/include/nel/3d/coarse_mesh_manager.h
	code/nel/include/nel/3d/fasthls_modifier.h
	code/nel/include/nel/3d/gpu_program_params.h
	code/nel/include/nel/3d/ig_surface_light_build.h
	code/nel/include/nel/3d/landscape.h
	code/nel/include/nel/3d/material.h
	code/nel/include/nel/3d/matrix_3x4.h
	code/nel/include/nel/3d/meshvp_wind_tree.h
	code/nel/include/nel/3d/particle_system.h
	code/nel/include/nel/3d/particle_system_manager.h
	code/nel/include/nel/3d/particle_system_process.h
	code/nel/include/nel/3d/portal.h
	code/nel/include/nel/3d/ps_attrib_maker_bin_op_inline.h
	code/nel/include/nel/3d/ps_attrib_maker_helper.h
	code/nel/include/nel/3d/ps_attrib_maker_template.h
	code/nel/include/nel/3d/ps_emitter.h
	code/nel/include/nel/3d/ps_located.h
	code/nel/include/nel/3d/ps_mesh.h
	code/nel/include/nel/3d/ps_zone.h
	code/nel/include/nel/3d/quad_grid.h
	code/nel/include/nel/3d/ray_mesh.h
	code/nel/include/nel/3d/render_trav.h
	code/nel/include/nel/3d/seg_remanence_shape.h
	code/nel/include/nel/3d/shadow_map.h
	code/nel/include/nel/3d/shadow_map_manager.h
	code/nel/include/nel/3d/shadow_skin.h
	code/nel/include/nel/3d/stereo_hmd.h
	code/nel/include/nel/3d/target_anim_ctrl.h
	code/nel/include/nel/3d/texture_emboss.h
	code/nel/include/nel/3d/tile_bank.h
	code/nel/include/nel/3d/u_transform.h
	code/nel/include/nel/3d/vegetable_light_ex.h
	code/nel/include/nel/3d/vertex_buffer_heap.h
	code/nel/include/nel/3d/water_env_map.h
	code/nel/include/nel/3d/water_height_map.h
	code/nel/include/nel/georges/form.h
	code/nel/include/nel/georges/form_dfn.h
	code/nel/include/nel/georges/form_elm.h
	code/nel/include/nel/georges/form_loader.h
	code/nel/include/nel/georges/header.h
	code/nel/include/nel/georges/load_form.h
	code/nel/include/nel/georges/type.h
	code/nel/include/nel/georges/u_form_elm.h
	code/nel/include/nel/georges/u_form_loader.h
	code/nel/include/nel/gui/group_html.h
	code/nel/include/nel/gui/group_menu.h
	code/nel/include/nel/gui/group_paragraph.h
	code/nel/include/nel/gui/group_table.h
	code/nel/include/nel/gui/interface_parser.h
	code/nel/include/nel/gui/interface_property.h
	code/nel/include/nel/gui/lua_helper.h
	code/nel/include/nel/gui/view_link.h
	code/nel/include/nel/gui/view_pointer_base.h
	code/nel/include/nel/gui/widget_manager.h
	code/nel/include/nel/ligo/ligo_config.h
	code/nel/include/nel/ligo/primitive.h
	code/nel/include/nel/misc/app_context.h
	code/nel/include/nel/misc/big_file.h
	code/nel/include/nel/misc/bitmap.h
	code/nel/include/nel/misc/block_memory.h
	code/nel/include/nel/misc/cdb_leaf.h
	code/nel/include/nel/misc/co_task.h
	code/nel/include/nel/misc/common.h
	code/nel/include/nel/misc/contiguous_block_allocator.h
	code/nel/include/nel/misc/debug.h
	code/nel/include/nel/misc/fixed_size_allocator.h
	code/nel/include/nel/misc/heap_memory.h
	code/nel/include/nel/misc/i_xml.h
	code/nel/include/nel/misc/mouse_smoother.h
	code/nel/include/nel/misc/o_xml.h
	code/nel/include/nel/misc/object_arena_allocator.h
	code/nel/include/nel/misc/path.h
	code/nel/include/nel/misc/pool_memory.h
	code/nel/include/nel/misc/resource_ptr.h
	code/nel/include/nel/misc/resource_ptr_inline.h
	code/nel/include/nel/misc/sha1.h
	code/nel/include/nel/misc/smart_ptr.h
	code/nel/include/nel/misc/smart_ptr_inline.h
	code/nel/include/nel/misc/stream.h
	code/nel/include/nel/misc/string_common.h
	code/nel/include/nel/misc/timeout_assertion_thread.h
	code/nel/include/nel/misc/types_nl.h
	code/nel/include/nel/misc/win_tray.h
	code/nel/include/nel/net/buf_client.h
	code/nel/include/nel/net/buf_server.h
	code/nel/include/nel/net/buf_sock.h
	code/nel/include/nel/net/message_recorder.h
	code/nel/include/nel/net/module_gateway.h
	code/nel/include/nel/net/pacs_client.h
	code/nel/include/nel/net/service.h
	code/nel/include/nel/net/sock.h
	code/nel/include/nel/net/unitime.h
	code/nel/include/nel/pacs/move_container.h
	code/nel/src/3d/anim_ctrl.cpp
	code/nel/src/3d/anim_detail_trav.cpp
	code/nel/src/3d/animatable.cpp
	code/nel/src/3d/animated_lightmap.cpp
	code/nel/src/3d/animated_material.cpp
	code/nel/src/3d/animated_morph.cpp
	code/nel/src/3d/animated_value.cpp
	code/nel/src/3d/animation.cpp
	code/nel/src/3d/animation_optimizer.cpp
	code/nel/src/3d/animation_playlist.cpp
	code/nel/src/3d/animation_set.cpp
	code/nel/src/3d/animation_set_user.cpp
	code/nel/src/3d/animation_time.cpp
	code/nel/src/3d/async_file_manager_3d.cpp
	code/nel/src/3d/async_texture_block.cpp
	code/nel/src/3d/async_texture_manager.cpp
	code/nel/src/3d/bezier_patch.cpp
	code/nel/src/3d/bloom_effect.cpp
	code/nel/src/3d/bone.cpp
	code/nel/src/3d/camera.cpp
	code/nel/src/3d/camera_col.cpp
	code/nel/src/3d/channel_mixer.cpp
	code/nel/src/3d/clip_trav.cpp
	code/nel/src/3d/cloud.cpp
	code/nel/src/3d/cloud_scape.cpp
	code/nel/src/3d/cloud_scape_user.cpp
	code/nel/src/3d/cluster.cpp
	code/nel/src/3d/coarse_mesh_build.cpp
	code/nel/src/3d/coarse_mesh_manager.cpp
	code/nel/src/3d/computed_string.cpp
	code/nel/src/3d/cube_grid.cpp
	code/nel/src/3d/cube_map_builder.cpp
	code/nel/src/3d/debug_vb.cpp
	code/nel/src/3d/deform_2d.cpp
	code/nel/src/3d/driver.cpp
	code/nel/src/3d/driver/direct3d/driver_direct3d.cpp
	code/nel/src/3d/driver/direct3d/driver_direct3d_material.cpp
	code/nel/src/3d/driver/direct3d/driver_direct3d_shader.cpp
	code/nel/src/3d/driver/direct3d/driver_direct3d_texture.cpp
	code/nel/src/3d/driver/direct3d/driver_direct3d_vertex_program.cpp
	code/nel/src/3d/driver/direct3d/stddirect3d.h
	code/nel/src/3d/driver/opengl/driver_opengl.cpp
	code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp
	code/nel/src/3d/driver/opengl/driver_opengl_inputs.cpp
	code/nel/src/3d/driver/opengl/driver_opengl_light.cpp
	code/nel/src/3d/driver/opengl/driver_opengl_material.cpp
	code/nel/src/3d/driver/opengl/driver_opengl_matrix.cpp
	code/nel/src/3d/driver/opengl/driver_opengl_pixel_program.cpp
	code/nel/src/3d/driver/opengl/driver_opengl_states.cpp
	code/nel/src/3d/driver/opengl/driver_opengl_texture.cpp
	code/nel/src/3d/driver/opengl/driver_opengl_uniform.cpp
	code/nel/src/3d/driver/opengl/driver_opengl_vertex.cpp
	code/nel/src/3d/driver/opengl/driver_opengl_vertex_buffer_hard.cpp
	code/nel/src/3d/driver/opengl/driver_opengl_vertex_buffer_hard.h
	code/nel/src/3d/driver/opengl/driver_opengl_vertex_program.cpp
	code/nel/src/3d/driver/opengl/driver_opengl_window.cpp
	code/nel/src/3d/driver/opengl/resources.rc
	code/nel/src/3d/driver/opengl/stdopengl.h
	code/nel/src/3d/driver/opengl/unix_event_emitter.cpp
	code/nel/src/3d/driver_user.cpp
	code/nel/src/3d/driver_user2.cpp
	code/nel/src/3d/dru.cpp
	code/nel/src/3d/event_mouse_listener.cpp
	code/nel/src/3d/fast_ptr_list.cpp
	code/nel/src/3d/fasthls_modifier.cpp
	code/nel/src/3d/flare_model.cpp
	code/nel/src/3d/flare_shape.cpp
	code/nel/src/3d/font_generator.cpp
	code/nel/src/3d/font_manager.cpp
	code/nel/src/3d/frustum.cpp
	code/nel/src/3d/fxaa.cpp
	code/nel/src/3d/geometry_program.cpp
	code/nel/src/3d/gpu_program_params.cpp
	code/nel/src/3d/heat_haze.cpp
	code/nel/src/3d/height_map.cpp
	code/nel/src/3d/hls_color_texture.cpp
	code/nel/src/3d/hls_texture_bank.cpp
	code/nel/src/3d/hls_texture_manager.cpp
	code/nel/src/3d/hrc_trav.cpp
	code/nel/src/3d/ig_surface_light.cpp
	code/nel/src/3d/ig_surface_light_build.cpp
	code/nel/src/3d/index_buffer.cpp
	code/nel/src/3d/init_3d.cpp
	code/nel/src/3d/instance_group_user.cpp
	code/nel/src/3d/instance_lighter.cpp
	code/nel/src/3d/key.cpp
	code/nel/src/3d/landscape.cpp
	code/nel/src/3d/landscape_collision_grid.cpp
	code/nel/src/3d/landscape_def.cpp
	code/nel/src/3d/landscape_face_vector_manager.cpp
	code/nel/src/3d/landscape_model.cpp
	code/nel/src/3d/landscape_profile.cpp
	code/nel/src/3d/landscape_user.cpp
	code/nel/src/3d/landscape_vegetable_block.cpp
	code/nel/src/3d/landscapeig_manager.cpp
	code/nel/src/3d/landscapevb_allocator.cpp
	code/nel/src/3d/landscapevb_info.cpp
	code/nel/src/3d/light.cpp
	code/nel/src/3d/light_contribution.cpp
	code/nel/src/3d/light_influence_interpolator.cpp
	code/nel/src/3d/light_trav.cpp
	code/nel/src/3d/light_user.cpp
	code/nel/src/3d/lighting_manager.cpp
	code/nel/src/3d/load_balancing_trav.cpp
	code/nel/src/3d/lod_character_builder.cpp
	code/nel/src/3d/lod_character_instance.cpp
	code/nel/src/3d/lod_character_manager.cpp
	code/nel/src/3d/lod_character_shape.cpp
	code/nel/src/3d/lod_character_shape_bank.cpp
	code/nel/src/3d/lod_character_texture.cpp
	code/nel/src/3d/logic_info.cpp
	code/nel/src/3d/material.cpp
	code/nel/src/3d/matrix_3x4.cpp
	code/nel/src/3d/mesh.cpp
	code/nel/src/3d/mesh_base.cpp
	code/nel/src/3d/mesh_base_instance.cpp
	code/nel/src/3d/mesh_blender.cpp
	code/nel/src/3d/mesh_block_manager.cpp
	code/nel/src/3d/mesh_geom.cpp
	code/nel/src/3d/mesh_instance.cpp
	code/nel/src/3d/mesh_morpher.cpp
	code/nel/src/3d/mesh_mrm.cpp
	code/nel/src/3d/mesh_mrm_instance.cpp
	code/nel/src/3d/mesh_mrm_skin_template.cpp
	code/nel/src/3d/mesh_mrm_skinned.cpp
	code/nel/src/3d/mesh_mrm_skinned_instance.cpp
	code/nel/src/3d/mesh_mrm_skinned_template.cpp
	code/nel/src/3d/mesh_multi_lod.cpp
	code/nel/src/3d/mesh_multi_lod_instance.cpp
	code/nel/src/3d/mesh_vertex_program.cpp
	code/nel/src/3d/meshvp_per_pixel_light.cpp
	code/nel/src/3d/meshvp_wind_tree.cpp
	code/nel/src/3d/mini_col.cpp
	code/nel/src/3d/motion_blur.cpp
	code/nel/src/3d/mrm_builder.cpp
	code/nel/src/3d/mrm_internal.cpp
	code/nel/src/3d/mrm_level_detail.cpp
	code/nel/src/3d/mrm_mesh.cpp
	code/nel/src/3d/mrm_parameters.cpp
	code/nel/src/3d/nelu.cpp
	code/nel/src/3d/noise_3d.cpp
	code/nel/src/3d/packed_world.cpp
	code/nel/src/3d/packed_zone.cpp
	code/nel/src/3d/particle_system.cpp
	code/nel/src/3d/particle_system_manager.cpp
	code/nel/src/3d/particle_system_model.cpp
	code/nel/src/3d/particle_system_process.cpp
	code/nel/src/3d/particle_system_shape.cpp
	code/nel/src/3d/particle_system_sound_user.cpp
	code/nel/src/3d/patch.cpp
	code/nel/src/3d/patch_lightmap.cpp
	code/nel/src/3d/patch_noise.cpp
	code/nel/src/3d/patch_rdr_pass.cpp
	code/nel/src/3d/patch_render.cpp
	code/nel/src/3d/patch_vegetable.cpp
	code/nel/src/3d/patchdlm_context.cpp
	code/nel/src/3d/patchuv_locator.cpp
	code/nel/src/3d/pixel_program.cpp
	code/nel/src/3d/play_list_manager.cpp
	code/nel/src/3d/play_list_manager_user.cpp
	code/nel/src/3d/play_list_user.cpp
	code/nel/src/3d/point_light.cpp
	code/nel/src/3d/point_light_model.cpp
	code/nel/src/3d/point_light_named.cpp
	code/nel/src/3d/point_light_named_array.cpp
	code/nel/src/3d/portal.cpp
	code/nel/src/3d/primitive_profile.cpp
	code/nel/src/3d/program.cpp
	code/nel/src/3d/ps_allocator.cpp
	code/nel/src/3d/ps_attrib_maker_bin_op.cpp
	code/nel/src/3d/ps_attrib_maker_helper.cpp
	code/nel/src/3d/ps_attrib_maker_template.cpp
	code/nel/src/3d/ps_color.cpp
	code/nel/src/3d/ps_dot.cpp
	code/nel/src/3d/ps_emitter.cpp
	code/nel/src/3d/ps_face.cpp
	code/nel/src/3d/ps_face_look_at.cpp
	code/nel/src/3d/ps_fan_light.cpp
	code/nel/src/3d/ps_float.cpp
	code/nel/src/3d/ps_force.cpp
	code/nel/src/3d/ps_int.cpp
	code/nel/src/3d/ps_light.cpp
	code/nel/src/3d/ps_located.cpp
	code/nel/src/3d/ps_mesh.cpp
	code/nel/src/3d/ps_particle.cpp
	code/nel/src/3d/ps_particle2.cpp
	code/nel/src/3d/ps_particle_basic.cpp
	code/nel/src/3d/ps_plane_basis_maker.cpp
	code/nel/src/3d/ps_quad.cpp
	code/nel/src/3d/ps_register_attribs.cpp
	code/nel/src/3d/ps_register_emitters.cpp
	code/nel/src/3d/ps_register_forces.cpp
	code/nel/src/3d/ps_register_particles.cpp
	code/nel/src/3d/ps_register_zones.cpp
	code/nel/src/3d/ps_ribbon.cpp
	code/nel/src/3d/ps_ribbon_base.cpp
	code/nel/src/3d/ps_ribbon_look_at.cpp
	code/nel/src/3d/ps_shockwave.cpp
	code/nel/src/3d/ps_sound.cpp
	code/nel/src/3d/ps_tail_dot.cpp
	code/nel/src/3d/ps_util.cpp
	code/nel/src/3d/ps_zone.cpp
	code/nel/src/3d/ptr_set.cpp
	code/nel/src/3d/quad_effect.cpp
	code/nel/src/3d/quad_grid.cpp
	code/nel/src/3d/quad_grid_clip_cluster.cpp
	code/nel/src/3d/quad_grid_clip_manager.cpp
	code/nel/src/3d/radix_sort.cpp
	code/nel/src/3d/raw_skin.cpp
	code/nel/src/3d/raw_skinned.cpp
	code/nel/src/3d/ray_mesh.cpp
	code/nel/src/3d/register_3d.cpp
	code/nel/src/3d/render_target_manager.cpp
	code/nel/src/3d/render_trav.cpp
	code/nel/src/3d/root_model.cpp
	code/nel/src/3d/scene.cpp
	code/nel/src/3d/scene_group.cpp
	code/nel/src/3d/scene_user.cpp
	code/nel/src/3d/scissor.cpp
	code/nel/src/3d/seg_remanence.cpp
	code/nel/src/3d/seg_remanence_shape.cpp
	code/nel/src/3d/shadow_map.cpp
	code/nel/src/3d/shadow_map_manager.cpp
	code/nel/src/3d/shadow_poly_receiver.cpp
	code/nel/src/3d/shadow_skin.cpp
	code/nel/src/3d/shape.cpp
	code/nel/src/3d/shape_bank.cpp
	code/nel/src/3d/shape_bank_user.cpp
	code/nel/src/3d/shape_info.cpp
	code/nel/src/3d/shifted_triangle_cache.cpp
	code/nel/src/3d/skeleton_model.cpp
	code/nel/src/3d/skeleton_shape.cpp
	code/nel/src/3d/skeleton_spawn_script.cpp
	code/nel/src/3d/skeleton_weight.cpp
	code/nel/src/3d/static_quad_grid.cpp
	code/nel/src/3d/std3d.h
	code/nel/src/3d/stereo_debugger.cpp
	code/nel/src/3d/stereo_display.cpp
	code/nel/src/3d/stereo_hmd.cpp
	code/nel/src/3d/stereo_libvr.cpp
	code/nel/src/3d/stereo_ovr.cpp
	code/nel/src/3d/stereo_ovr_04.cpp
	code/nel/src/3d/stereo_ovr_fp.cpp
	code/nel/src/3d/stripifier.cpp
	code/nel/src/3d/surface_light_grid.cpp
	code/nel/src/3d/tangent_space_build.cpp
	code/nel/src/3d/target_anim_ctrl.cpp
	code/nel/src/3d/tess_block.cpp
	code/nel/src/3d/tess_face_priority_list.cpp
	code/nel/src/3d/tess_list.cpp
	code/nel/src/3d/tessellation.cpp
	code/nel/src/3d/text_context.cpp
	code/nel/src/3d/text_context_user.cpp
	code/nel/src/3d/texture.cpp
	code/nel/src/3d/texture_blank.cpp
	code/nel/src/3d/texture_blend.cpp
	code/nel/src/3d/texture_bloom.cpp
	code/nel/src/3d/texture_bump.cpp
	code/nel/src/3d/texture_cube.cpp
	code/nel/src/3d/texture_dlm.cpp
	code/nel/src/3d/texture_emboss.cpp
	code/nel/src/3d/texture_far.cpp
	code/nel/src/3d/texture_file.cpp
	code/nel/src/3d/texture_font.cpp
	code/nel/src/3d/texture_grouped.cpp
	code/nel/src/3d/texture_mem.cpp
	code/nel/src/3d/texture_multi_file.cpp
	code/nel/src/3d/texture_near.cpp
	code/nel/src/3d/texture_user.cpp
	code/nel/src/3d/tile_bank.cpp
	code/nel/src/3d/tile_color.cpp
	code/nel/src/3d/tile_element.cpp
	code/nel/src/3d/tile_far_bank.cpp
	code/nel/src/3d/tile_light_influence.cpp
	code/nel/src/3d/tile_lumel.cpp
	code/nel/src/3d/tile_noise_map.cpp
	code/nel/src/3d/tile_vegetable_desc.cpp
	code/nel/src/3d/track.cpp
	code/nel/src/3d/track_keyframer.cpp
	code/nel/src/3d/track_sampled_common.cpp
	code/nel/src/3d/track_sampled_quat.cpp
	code/nel/src/3d/track_sampled_quat_small_header.cpp
	code/nel/src/3d/track_sampled_vector.cpp
	code/nel/src/3d/transform.cpp
	code/nel/src/3d/transform_shape.cpp
	code/nel/src/3d/transformable.cpp
	code/nel/src/3d/trav_scene.cpp
	code/nel/src/3d/u_bone.cpp
	code/nel/src/3d/u_camera.cpp
	code/nel/src/3d/u_instance.cpp
	code/nel/src/3d/u_instance_material.cpp
	code/nel/src/3d/u_material.cpp
	code/nel/src/3d/u_particle_system_instance.cpp
	code/nel/src/3d/u_point_light.cpp
	code/nel/src/3d/u_shape.cpp
	code/nel/src/3d/u_skeleton.cpp
	code/nel/src/3d/u_transform.cpp
	code/nel/src/3d/u_transformable.cpp
	code/nel/src/3d/u_visual_collision_mesh.cpp
	code/nel/src/3d/u_water.cpp
	code/nel/src/3d/vegetable.cpp
	code/nel/src/3d/vegetable_blend_layer_model.cpp
	code/nel/src/3d/vegetable_clip_block.cpp
	code/nel/src/3d/vegetable_def.cpp
	code/nel/src/3d/vegetable_instance_group.cpp
	code/nel/src/3d/vegetable_light_ex.cpp
	code/nel/src/3d/vegetable_manager.cpp
	code/nel/src/3d/vegetable_quadrant.cpp
	code/nel/src/3d/vegetable_shape.cpp
	code/nel/src/3d/vegetable_sort_block.cpp
	code/nel/src/3d/vegetable_uv8.cpp
	code/nel/src/3d/vegetablevb_allocator.cpp
	code/nel/src/3d/vertex_buffer.cpp
	code/nel/src/3d/vertex_buffer_heap.cpp
	code/nel/src/3d/vertex_program.cpp
	code/nel/src/3d/vertex_program_parse.cpp
	code/nel/src/3d/vertex_stream_manager.cpp
	code/nel/src/3d/viewport.cpp
	code/nel/src/3d/visual_collision_entity.cpp
	code/nel/src/3d/visual_collision_entity_user.cpp
	code/nel/src/3d/visual_collision_manager.cpp
	code/nel/src/3d/visual_collision_manager_user.cpp
	code/nel/src/3d/visual_collision_mesh.cpp
	code/nel/src/3d/water_env_map.cpp
	code/nel/src/3d/water_env_map_user.cpp
	code/nel/src/3d/water_height_map.cpp
	code/nel/src/3d/water_model.cpp
	code/nel/src/3d/water_pool_manager.cpp
	code/nel/src/3d/water_shape.cpp
	code/nel/src/3d/zone.cpp
	code/nel/src/3d/zone_corner_smoother.cpp
	code/nel/src/3d/zone_lighter.cpp
	code/nel/src/3d/zone_manager.cpp
	code/nel/src/3d/zone_search.cpp
	code/nel/src/3d/zone_smoother.cpp
	code/nel/src/3d/zone_symmetrisation.cpp
	code/nel/src/3d/zone_tgt_smoother.cpp
	code/nel/src/georges/form.cpp
	code/nel/src/georges/form_dfn.cpp
	code/nel/src/georges/form_elm.cpp
	code/nel/src/georges/form_loader.cpp
	code/nel/src/georges/header.cpp
	code/nel/src/georges/load_form.cpp
	code/nel/src/georges/type.cpp
	code/nel/src/gui/action_handler.cpp
	code/nel/src/gui/ctrl_base.cpp
	code/nel/src/gui/ctrl_base_button.cpp
	code/nel/src/gui/ctrl_button.cpp
	code/nel/src/gui/ctrl_col_pick.cpp
	code/nel/src/gui/ctrl_draggable.cpp
	code/nel/src/gui/ctrl_polygon.cpp
	code/nel/src/gui/ctrl_quad.cpp
	code/nel/src/gui/ctrl_scroll.cpp
	code/nel/src/gui/ctrl_scroll_base.cpp
	code/nel/src/gui/ctrl_sheet_selection.cpp
	code/nel/src/gui/ctrl_text_button.cpp
	code/nel/src/gui/ctrl_tooltip.cpp
	code/nel/src/gui/db_manager.cpp
	code/nel/src/gui/dbgroup_combo_box.cpp
	code/nel/src/gui/dbgroup_select_number.cpp
	code/nel/src/gui/dbview_bar.cpp
	code/nel/src/gui/dbview_bar3.cpp
	code/nel/src/gui/dbview_digit.cpp
	code/nel/src/gui/dbview_number.cpp
	code/nel/src/gui/dbview_quantity.cpp
	code/nel/src/gui/event_descriptor.cpp
	code/nel/src/gui/event_listener.cpp
	code/nel/src/gui/group_container.cpp
	code/nel/src/gui/group_container_base.cpp
	code/nel/src/gui/group_editbox.cpp
	code/nel/src/gui/group_editbox_base.cpp
	code/nel/src/gui/group_editbox_decor.cpp
	code/nel/src/gui/group_frame.cpp
	code/nel/src/gui/group_header.cpp
	code/nel/src/gui/group_html.cpp
	code/nel/src/gui/group_html_parser.cpp
	code/nel/src/gui/group_list.cpp
	code/nel/src/gui/group_menu.cpp
	code/nel/src/gui/group_modal.cpp
	code/nel/src/gui/group_paragraph.cpp
	code/nel/src/gui/group_scrolltext.cpp
	code/nel/src/gui/group_submenu_base.cpp
	code/nel/src/gui/group_tab.cpp
	code/nel/src/gui/group_table.cpp
	code/nel/src/gui/group_tree.cpp
	code/nel/src/gui/group_wheel.cpp
	code/nel/src/gui/input_handler.cpp
	code/nel/src/gui/interface_anim.cpp
	code/nel/src/gui/interface_element.cpp
	code/nel/src/gui/interface_expr.cpp
	code/nel/src/gui/interface_expr_node.cpp
	code/nel/src/gui/interface_expr_user_fct.cpp
	code/nel/src/gui/interface_factory.cpp
	code/nel/src/gui/interface_group.cpp
	code/nel/src/gui/interface_link.cpp
	code/nel/src/gui/interface_options.cpp
	code/nel/src/gui/interface_parser.cpp
	code/nel/src/gui/interface_property.cpp
	code/nel/src/gui/libwww.cpp
	code/nel/src/gui/libwww_types.cpp
	code/nel/src/gui/link_hack.cpp
	code/nel/src/gui/lua_helper.cpp
	code/nel/src/gui/lua_ihm.cpp
	code/nel/src/gui/lua_manager.cpp
	code/nel/src/gui/lua_object.cpp
	code/nel/src/gui/parser.cpp
	code/nel/src/gui/proc.cpp
	code/nel/src/gui/reflect.cpp
	code/nel/src/gui/reflect_register.cpp
	code/nel/src/gui/root_group.cpp
	code/nel/src/gui/stdpch.h
	code/nel/src/gui/string_case.cpp
	code/nel/src/gui/url_parser.cpp
	code/nel/src/gui/view_base.cpp
	code/nel/src/gui/view_bitmap.cpp
	code/nel/src/gui/view_bitmap_combo.cpp
	code/nel/src/gui/view_link.cpp
	code/nel/src/gui/view_pointer.cpp
	code/nel/src/gui/view_pointer_base.cpp
	code/nel/src/gui/view_polygon.cpp
	code/nel/src/gui/view_quad.cpp
	code/nel/src/gui/view_renderer.cpp
	code/nel/src/gui/view_text.cpp
	code/nel/src/gui/view_text_formated.cpp
	code/nel/src/gui/view_text_id.cpp
	code/nel/src/gui/view_text_id_formated.cpp
	code/nel/src/gui/widget_manager.cpp
	code/nel/src/ligo/ligo_config.cpp
	code/nel/src/ligo/ligo_error.cpp
	code/nel/src/ligo/ligo_error.h
	code/nel/src/ligo/ligo_material.cpp
	code/nel/src/ligo/ligo_material.h
	code/nel/src/ligo/primitive.cpp
	code/nel/src/ligo/primitive_class.cpp
	code/nel/src/ligo/stdligo.h
	code/nel/src/ligo/transition.cpp
	code/nel/src/ligo/transition.h
	code/nel/src/ligo/zone_bank.cpp
	code/nel/src/ligo/zone_edge.cpp
	code/nel/src/ligo/zone_edge.h
	code/nel/src/ligo/zone_template.cpp
	code/nel/src/ligo/zone_template.h
	code/nel/src/logic/logic_condition.cpp
	code/nel/src/logic/stdlogic.h
	code/nel/src/misc/CMakeLists.txt
	code/nel/src/misc/app_context.cpp
	code/nel/src/misc/big_file.cpp
	code/nel/src/misc/bitmap.cpp
	code/nel/src/misc/bitmap_gif.cpp
	code/nel/src/misc/bitmap_png.cpp
	code/nel/src/misc/cdb.cpp
	code/nel/src/misc/cdb_bank_handler.cpp
	code/nel/src/misc/cdb_branch.cpp
	code/nel/src/misc/cdb_branch_observing_handler.cpp
	code/nel/src/misc/cdb_check_sum.cpp
	code/nel/src/misc/cdb_leaf.cpp
	code/nel/src/misc/cdb_manager.cpp
	code/nel/src/misc/check_fpu.cpp
	code/nel/src/misc/co_task.cpp
	code/nel/src/misc/command.cpp
	code/nel/src/misc/common.cpp
	code/nel/src/misc/config_file/cf_gramatical.cpp
	code/nel/src/misc/config_file/cf_lexical.cpp
	code/nel/src/misc/contiguous_block_allocator.cpp
	code/nel/src/misc/debug.cpp
	code/nel/src/misc/displayer.cpp
	code/nel/src/misc/dynloadlib.cpp
	code/nel/src/misc/eid_translator.cpp
	code/nel/src/misc/eval_num_expr.cpp
	code/nel/src/misc/event_emitter.cpp
	code/nel/src/misc/file.cpp
	code/nel/src/misc/fixed_size_allocator.cpp
	code/nel/src/misc/geom_ext.cpp
	code/nel/src/misc/heap_memory.cpp
	code/nel/src/misc/hierarchical_timer.cpp
	code/nel/src/misc/i_xml.cpp
	code/nel/src/misc/inter_window_msg_queue.cpp
	code/nel/src/misc/log.cpp
	code/nel/src/misc/mem_displayer.cpp
	code/nel/src/misc/o_xml.cpp
	code/nel/src/misc/object_arena_allocator.cpp
	code/nel/src/misc/object_vector.cpp
	code/nel/src/misc/p_thread.cpp
	code/nel/src/misc/path.cpp
	code/nel/src/misc/polygon.cpp
	code/nel/src/misc/quad.cpp
	code/nel/src/misc/rgba.cpp
	code/nel/src/misc/smart_ptr.cpp
	code/nel/src/misc/stdmisc.h
	code/nel/src/misc/stl_block_allocator.cpp
	code/nel/src/misc/stl_block_list.cpp
	code/nel/src/misc/stop_watch.cpp
	code/nel/src/misc/string_common.cpp
	code/nel/src/misc/string_id_array.cpp
	code/nel/src/misc/string_mapper.cpp
	code/nel/src/misc/system_info.cpp
	code/nel/src/misc/task_manager.cpp
	code/nel/src/misc/uv.cpp
	code/nel/src/misc/value_smoother.cpp
	code/nel/src/misc/vector_2d.cpp
	code/nel/src/misc/vector_h.cpp
	code/nel/src/misc/win_displayer.cpp
	code/nel/src/misc/win_tray.cpp
	code/nel/src/misc/words_dictionary.cpp
	code/nel/src/misc/xml_auto_ptr.cpp
	code/nel/src/net/admin.cpp
	code/nel/src/net/buf_sock.cpp
	code/nel/src/net/email.cpp
	code/nel/src/net/login_client.cpp
	code/nel/src/net/login_server.cpp
	code/nel/src/net/message_recorder.cpp
	code/nel/src/net/module.cpp
	code/nel/src/net/module_common.cpp
	code/nel/src/net/module_gateway.cpp
	code/nel/src/net/module_gateway_transport.cpp
	code/nel/src/net/module_local_gateway.cpp
	code/nel/src/net/module_manager.cpp
	code/nel/src/net/naming_client.cpp
	code/nel/src/net/service.cpp
	code/nel/src/net/sock.cpp
	code/nel/src/net/udp_sim_sock.cpp
	code/nel/src/net/unified_network.cpp
	code/nel/src/net/varpath.cpp
	code/nel/src/pacs/build_indoor.cpp
	code/nel/src/pacs/edge_quad.cpp
	code/nel/src/pacs/global_retriever.cpp
	code/nel/src/pacs/move_container.cpp
	code/nel/src/pacs/move_primitive.cpp
	code/nel/src/pacs/primitive_block_pacs.cpp
	code/nel/src/pacs/primitive_world_image.cpp
	code/nel/src/pipeline/database_config.cpp
	code/nel/src/pipeline/project_config.cpp
	code/nel/src/sound/audio_mixer_user.cpp
	code/nel/src/sound/context_sound.cpp
	code/nel/src/sound/driver/dsound/sound_driver_dsound.cpp
	code/nel/src/sound/driver/openal/stdopenal.h
	code/nel/src/sound/driver/sound_driver.cpp
	code/nel/src/sound/driver/xaudio2/stdxaudio2.h
	code/nel/src/sound/group_controller.cpp
	code/nel/src/sound/sample_bank_manager.cpp
	code/nel/src/sound/sound.cpp
	code/nel/src/sound/sound_bank.cpp
	code/nel/tools/3d/CMakeLists.txt
	code/nel/tools/3d/build_far_bank/build_far_bank.cpp
	code/nel/tools/3d/cluster_viewer/view_cs.cpp
	code/nel/tools/3d/ig_lighter/ig_lighter.cpp
	code/nel/tools/3d/lightmap_optimizer/main.cpp
	code/nel/tools/3d/ligo/plugin_max/CMakeLists.txt
	code/nel/tools/3d/ligo/plugin_max/ligoscript.txt
	code/nel/tools/3d/ligo/plugin_max/max_to_ligo.cpp
	code/nel/tools/3d/ligo/plugin_max/max_to_ligo.h
	code/nel/tools/3d/ligo/plugin_max/script.cpp
	code/nel/tools/3d/object_viewer/about_dialog.cpp
	code/nel/tools/3d/object_viewer/animation_dlg.cpp
	code/nel/tools/3d/object_viewer/animation_dlg.h
	code/nel/tools/3d/object_viewer/animation_set_dlg.cpp
	code/nel/tools/3d/object_viewer/attrib_dlg.cpp
	code/nel/tools/3d/object_viewer/bin_op_dlg.h
	code/nel/tools/3d/object_viewer/bound_checker.h
	code/nel/tools/3d/object_viewer/choose_name.cpp
	code/nel/tools/3d/object_viewer/choose_name.h
	code/nel/tools/3d/object_viewer/choose_pool_id.cpp
	code/nel/tools/3d/object_viewer/create_file_dlg.cpp
	code/nel/tools/3d/object_viewer/direction_attr.cpp
	code/nel/tools/3d/object_viewer/dup_ps.cpp
	code/nel/tools/3d/object_viewer/edit_ex.cpp
	code/nel/tools/3d/object_viewer/edit_ex.h
	code/nel/tools/3d/object_viewer/edit_morph_mesh_dlg.cpp
	code/nel/tools/3d/object_viewer/edit_ps_sound.cpp
	code/nel/tools/3d/object_viewer/editable_range.cpp
	code/nel/tools/3d/object_viewer/editable_range.h
	code/nel/tools/3d/object_viewer/emitter_dlg.cpp
	code/nel/tools/3d/object_viewer/global_wind_dlg.cpp
	code/nel/tools/3d/object_viewer/lb_extern_id_dlg.cpp
	code/nel/tools/3d/object_viewer/located_bindable_dialog.cpp
	code/nel/tools/3d/object_viewer/located_properties.cpp
	code/nel/tools/3d/object_viewer/located_target_dlg.cpp
	code/nel/tools/3d/object_viewer/main_frame.cpp
	code/nel/tools/3d/object_viewer/mesh_dlg.cpp
	code/nel/tools/3d/object_viewer/multi_tex_dlg.cpp
	code/nel/tools/3d/object_viewer/object_viewer.cpp
	code/nel/tools/3d/object_viewer/object_viewer.h
	code/nel/tools/3d/object_viewer/object_viewer_interface.h
	code/nel/tools/3d/object_viewer/particle_dlg.cpp
	code/nel/tools/3d/object_viewer/particle_system_edit.cpp
	code/nel/tools/3d/object_viewer/particle_tree_ctrl.cpp
	code/nel/tools/3d/object_viewer/particle_tree_ctrl.h
	code/nel/tools/3d/object_viewer/particle_workspace.cpp
	code/nel/tools/3d/object_viewer/pick_sound.cpp
	code/nel/tools/3d/object_viewer/precomputed_rotations_dlg.cpp
	code/nel/tools/3d/object_viewer/ps_mover_dlg.cpp
	code/nel/tools/3d/object_viewer/range_selector.cpp
	code/nel/tools/3d/object_viewer/scheme_bank_dlg.cpp
	code/nel/tools/3d/object_viewer/select_string.cpp
	code/nel/tools/3d/object_viewer/select_string.h
	code/nel/tools/3d/object_viewer/skeleton_scale_dlg.cpp
	code/nel/tools/3d/object_viewer/slot_dlg.cpp
	code/nel/tools/3d/object_viewer/snapshot_tool_dlg.cpp
	code/nel/tools/3d/object_viewer/snapshot_tool_dlg.h
	code/nel/tools/3d/object_viewer/sound_anim_dlg.cpp
	code/nel/tools/3d/object_viewer/sound_anim_view.cpp
	code/nel/tools/3d/object_viewer/sound_system.cpp
	code/nel/tools/3d/object_viewer/start_stop_particle_system.cpp
	code/nel/tools/3d/object_viewer/texture_anim_dlg.cpp
	code/nel/tools/3d/object_viewer/texture_chooser.cpp
	code/nel/tools/3d/object_viewer/value_gradient_dlg.cpp
	code/nel/tools/3d/object_viewer/vegetable_copy_dlg.cpp
	code/nel/tools/3d/object_viewer/vegetable_density_page.cpp
	code/nel/tools/3d/object_viewer/vegetable_dlg.cpp
	code/nel/tools/3d/object_viewer/vegetable_dlg.h
	code/nel/tools/3d/object_viewer/vegetable_edit_tools.cpp
	code/nel/tools/3d/object_viewer/vegetable_list_box.cpp
	code/nel/tools/3d/object_viewer/vegetable_list_color.cpp
	code/nel/tools/3d/object_viewer/vegetable_noise_value_dlg.cpp
	code/nel/tools/3d/object_viewer/vegetable_select_dlg.cpp
	code/nel/tools/3d/object_viewer/vegetable_wind_dlg.cpp
	code/nel/tools/3d/object_viewer/water_pool_editor.cpp
	code/nel/tools/3d/object_viewer_exe/object_viewer_exe.cpp
	code/nel/tools/3d/object_viewer_widget/src/object_viewer_widget.cpp
	code/nel/tools/3d/plugin_max/nel_3dsmax_shared/CMakeLists.txt
	code/nel/tools/3d/plugin_max/nel_export/CMakeLists.txt
	code/nel/tools/3d/plugin_max/nel_export/nel_export.cpp
	code/nel/tools/3d/plugin_max/nel_export/nel_export.h
	code/nel/tools/3d/plugin_max/nel_export/nel_export_collision.cpp
	code/nel/tools/3d/plugin_max/nel_export/nel_export_export.cpp
	code/nel/tools/3d/plugin_max/nel_export/nel_export_filetools.cpp
	code/nel/tools/3d/plugin_max/nel_export/nel_export_node_properties.cpp
	code/nel/tools/3d/plugin_max/nel_export/nel_export_scene.cpp
	code/nel/tools/3d/plugin_max/nel_export/nel_export_script.cpp
	code/nel/tools/3d/plugin_max/nel_export/nel_export_swt.cpp
	code/nel/tools/3d/plugin_max/nel_export/nel_export_view.cpp
	code/nel/tools/3d/plugin_max/nel_export/nel_export_zone.cpp
	code/nel/tools/3d/plugin_max/nel_export/progress.cpp
	code/nel/tools/3d/plugin_max/nel_export/std_afx.h
	code/nel/tools/3d/plugin_max/nel_mesh_lib/CMakeLists.txt
	code/nel/tools/3d/plugin_max/nel_mesh_lib/calc_lm.cpp
	code/nel/tools/3d/plugin_max/nel_mesh_lib/calc_lm_rt.cpp
	code/nel/tools/3d/plugin_max/nel_mesh_lib/export_anim.cpp
	code/nel/tools/3d/plugin_max/nel_mesh_lib/export_collision.cpp
	code/nel/tools/3d/plugin_max/nel_mesh_lib/export_material.cpp
	code/nel/tools/3d/plugin_max/nel_mesh_lib/export_mesh.cpp
	code/nel/tools/3d/plugin_max/nel_mesh_lib/export_mesh_interface.cpp
	code/nel/tools/3d/plugin_max/nel_mesh_lib/export_misc.cpp
	code/nel/tools/3d/plugin_max/nel_mesh_lib/export_nel.h
	code/nel/tools/3d/plugin_max/nel_mesh_lib/export_particle_system.cpp
	code/nel/tools/3d/plugin_max/nel_mesh_lib/export_radial_normal.cpp
	code/nel/tools/3d/plugin_max/nel_mesh_lib/export_remanence.cpp
	code/nel/tools/3d/plugin_max/nel_mesh_lib/export_scene.cpp
	code/nel/tools/3d/plugin_max/nel_mesh_lib/export_script.cpp
	code/nel/tools/3d/plugin_max/nel_mesh_lib/export_skinning.cpp
	code/nel/tools/3d/plugin_max/nel_patch_converter/CMakeLists.txt
	code/nel/tools/3d/plugin_max/nel_patch_converter/PO2RPO.h
	code/nel/tools/3d/plugin_max/nel_patch_converter/nel_patch_converter.cpp
	code/nel/tools/3d/plugin_max/nel_patch_converter/rykolscript.txt
	code/nel/tools/3d/plugin_max/nel_patch_converter/script.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/CMakeLists.txt
	code/nel/tools/3d/plugin_max/nel_patch_edit/editpat.h
	code/nel/tools/3d/plugin_max/nel_patch_edit/np.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_edit_patch_mod.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_epm_add_patches.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_epm_attach.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_epm_bevel.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_epm_del.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_epm_detach.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_epm_extrude.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_epm_material.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_epm_remember.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_epm_selection.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_epm_subdivide.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_epm_tess.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_gui_bind.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_main.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_mods.cpp
	code/nel/tools/3d/plugin_max/nel_patch_edit/np_rollup.cpp
	code/nel/tools/3d/plugin_max/nel_patch_lib/CMakeLists.txt
	code/nel/tools/3d/plugin_max/nel_patch_lib/nel_patch_mesh.cpp
	code/nel/tools/3d/plugin_max/nel_patch_lib/nel_patch_mesh.h
	code/nel/tools/3d/plugin_max/nel_patch_lib/rpo.cpp
	code/nel/tools/3d/plugin_max/nel_patch_lib/rpo.h
	code/nel/tools/3d/plugin_max/nel_patch_lib/rpo2nel.cpp
	code/nel/tools/3d/plugin_max/nel_patch_paint/CMakeLists.txt
	code/nel/tools/3d/plugin_max/nel_patch_paint/DllEntry.cpp
	code/nel/tools/3d/plugin_max/nel_patch_paint/nel_patch_paint.h
	code/nel/tools/3d/plugin_max/nel_patch_paint/paint.cpp
	code/nel/tools/3d/plugin_max/nel_patch_paint/paint_main.cpp
	code/nel/tools/3d/plugin_max/nel_patch_paint/paint_ui.cpp
	code/nel/tools/3d/plugin_max/nel_patch_paint/paint_vcolor.cpp
	code/nel/tools/3d/plugin_max/nel_patch_paint/paint_vcolor.h
	code/nel/tools/3d/plugin_max/nel_vertex_tree_paint/CMakeLists.txt
	code/nel/tools/3d/plugin_max/nel_vertex_tree_paint/Paint.cpp
	code/nel/tools/3d/plugin_max/nel_vertex_tree_paint/vertex_tree_paint.cpp
	code/nel/tools/3d/plugin_max/nel_vertex_tree_paint/vertex_tree_paint.h
	code/nel/tools/3d/plugin_max/scripts/nel_assets_png_batched.ms
	code/nel/tools/3d/plugin_max/scripts/nel_assets_ps_batched.ms
	code/nel/tools/3d/plugin_max/scripts/nel_assets_resave.ms
	code/nel/tools/3d/plugin_max/scripts/nel_assets_resave_hard.ms
	code/nel/tools/3d/plugin_max/scripts/nel_batched_mergesave.ms
	code/nel/tools/3d/plugin_max/tile_utility/CMakeLists.txt
	code/nel/tools/3d/plugin_max/tile_utility/rgbadd.cpp
	code/nel/tools/3d/plugin_max/tile_utility/tile_utility.cpp
	code/nel/tools/3d/shape2obj/main.cpp
	code/nel/tools/3d/shapes_exporter/main.cpp
	code/nel/tools/3d/tga_2_dds/tga2dds.cpp
	code/nel/tools/3d/tile_edit/Browse.cpp
	code/nel/tools/3d/tile_edit/Browse.h
	code/nel/tools/3d/tile_edit/SelectionTerritoire.cpp
	code/nel/tools/3d/tile_edit/View.cpp
	code/nel/tools/3d/tile_edit/choose_veget_set.cpp
	code/nel/tools/3d/tile_edit_qt/browser_model.cpp
	code/nel/tools/3d/tile_edit_qt/tile_browser_dlg.cpp
	code/nel/tools/3d/tile_edit_qt/tile_edit_dlg.cpp
	code/nel/tools/3d/zone_check_bind/zone_check_bind.cpp
	code/nel/tools/3d/zone_dependencies/zone_dependencies.cpp
	code/nel/tools/3d/zone_lighter/zone_lighter.cpp
	code/nel/tools/3d/zviewer/zviewer.cpp
	code/nel/tools/build_gamedata/generators/max_exporter_scripts/shape.ms
	code/nel/tools/build_gamedata/generators/tagged_max_exporter_template/export_footer.ms
	code/nel/tools/build_gamedata/processes/anim/maxscript/anim_export.ms
	code/nel/tools/build_gamedata/processes/clodbank/maxscript/clod_export.ms
	code/nel/tools/build_gamedata/processes/ig/maxscript/ig_export.ms
	code/nel/tools/build_gamedata/processes/pacs_prim/maxscript/pacs_prim_export.ms
	code/nel/tools/build_gamedata/processes/rbank/maxscript/cmb_export.ms
	code/nel/tools/build_gamedata/processes/shape/maxscript/shape_export.ms
	code/nel/tools/build_gamedata/processes/veget/maxscript/veget_export.ms
	code/nel/tools/georges/georges2csv/georges2csv.cpp
	code/nel/tools/logic/logic_editor_dll/Condition.cpp
	code/nel/tools/logic/logic_editor_dll/ConditionPage.cpp
	code/nel/tools/logic/logic_editor_dll/ConditionsView.cpp
	code/nel/tools/logic/logic_editor_dll/Counter.cpp
	code/nel/tools/logic/logic_editor_dll/CounterPage.cpp
	code/nel/tools/logic/logic_editor_dll/EditorFormView.cpp
	code/nel/tools/logic/logic_editor_dll/MainFrm.cpp
	code/nel/tools/logic/logic_editor_dll/MainFrm.h
	code/nel/tools/logic/logic_editor_dll/State.cpp
	code/nel/tools/logic/logic_editor_dll/StatePage.cpp
	code/nel/tools/logic/logic_editor_dll/StatesView.cpp
	code/nel/tools/logic/logic_editor_dll/VariablePage.cpp
	code/nel/tools/logic/logic_editor_dll/logic_editor.cpp
	code/nel/tools/logic/logic_editor_dll/logic_editor.h
	code/nel/tools/logic/logic_editor_dll/logic_editorDoc.cpp
	code/nel/tools/logic/logic_editor_dll/logic_editorDoc.h
	code/nel/tools/logic/logic_editor_dll/logic_editor_interface.h
	code/nel/tools/misc/bnp_make/main.cpp
	code/nel/tools/misc/branch_patcher/branch_patcherDlg.cpp
	code/nel/tools/misc/crash_report/crash_report_widget.ui
	code/nel/tools/misc/data_mirror/data_mirror.cpp
	code/nel/tools/misc/data_mirror/data_mirrorDlg.cpp
	code/nel/tools/misc/log_analyser/FilterDialog.cpp
	code/nel/tools/misc/log_analyser/PlugInSelector.cpp
	code/nel/tools/misc/log_analyser/StdAfx.h
	code/nel/tools/misc/log_analyser/ViewDialog.cpp
	code/nel/tools/misc/log_analyser/log_analyserDlg.cpp
	code/nel/tools/misc/make_sheet_id/make_sheet_id.cpp
	code/nel/tools/misc/words_dic/words_dicDlg.cpp
	code/nel/tools/nel_unit_test/nel_unit_test.cpp
	code/nel/tools/nel_unit_test/ut_ligo.h
	code/nel/tools/nel_unit_test/ut_misc.h
	code/nel/tools/nel_unit_test/ut_net.h
	code/nel/tools/pacs/build_rbank/build_surf.cpp
	code/ryzom/client/CMakeLists.txt
	code/ryzom/client/client_default.cfg
	code/ryzom/client/data/gamedev/fd.cmd
	code/ryzom/client/data/gamedev/fd2.cmd
	code/ryzom/client/data/gamedev/fd3.cmd
	code/ryzom/client/data/gamedev/interfaces_v3/actions.xml
	code/ryzom/client/data/gamedev/interfaces_v3/bg_downloader.xml
	code/ryzom/client/data/gamedev/interfaces_v3/bot_chat_v4.xml
	code/ryzom/client/data/gamedev/interfaces_v3/commands.xml
	code/ryzom/client/data/gamedev/interfaces_v3/config.xml
	code/ryzom/client/data/gamedev/interfaces_v3/game_config.xml
	code/ryzom/client/data/gamedev/interfaces_v3/guild.xml
	code/ryzom/client/data/gamedev/interfaces_v3/help.xml
	code/ryzom/client/data/gamedev/interfaces_v3/hierarchy.xml
	code/ryzom/client/data/gamedev/interfaces_v3/info_player.lua
	code/ryzom/client/data/gamedev/interfaces_v3/info_player.xml
	code/ryzom/client/data/gamedev/interfaces_v3/interaction.lua
	code/ryzom/client/data/gamedev/interfaces_v3/interaction.xml
	code/ryzom/client/data/gamedev/interfaces_v3/login_config.xml
	code/ryzom/client/data/gamedev/interfaces_v3/login_main.xml
	code/ryzom/client/data/gamedev/interfaces_v3/login_widgets.xml
	code/ryzom/client/data/gamedev/interfaces_v3/macros.xml
	code/ryzom/client/data/gamedev/interfaces_v3/map.xml
	code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua
	code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml
	code/ryzom/client/data/gamedev/interfaces_v3/out_v2_config.xml
	code/ryzom/client/data/gamedev/interfaces_v3/out_v2_hierarchy.xml
	code/ryzom/client/data/gamedev/interfaces_v3/out_v2_select.xml
	code/ryzom/client/data/gamedev/interfaces_v3/outgame_career.xml
	code/ryzom/client/data/gamedev/interfaces_v3/outgame_config.xml
	code/ryzom/client/data/gamedev/interfaces_v3/outgame_summary.xml
	code/ryzom/client/data/gamedev/interfaces_v3/phrase.xml
	code/ryzom/client/data/gamedev/interfaces_v3/player.lua
	code/ryzom/client/data/gamedev/interfaces_v3/player.xml
	code/ryzom/client/data/gamedev/interfaces_v3/player_trade.xml
	code/ryzom/client/data/gamedev/interfaces_v3/reset.xml
	code/ryzom/client/data/gamedev/interfaces_v3/webig_widgets.xml
	code/ryzom/client/data/gamedev/interfaces_v3/widgets.xml
	code/ryzom/client/data/gamedev/pa.cmd
	code/ryzom/client/data/gamedev/steed.cmd
	code/ryzom/client/data/gamedev/team.cmd
	code/ryzom/client/data/gamedev/texture_extra.txt
	code/ryzom/client/macosx/upgd_nl.sh
	code/ryzom/client/src/CMakeLists.txt
	code/ryzom/client/src/actions.cpp
	code/ryzom/client/src/bg_downloader_access.cpp
	code/ryzom/client/src/browse_faq.cpp
	code/ryzom/client/src/bug_report/bug_reportDlg.cpp
	code/ryzom/client/src/character_cl.cpp
	code/ryzom/client/src/character_cl.h
	code/ryzom/client/src/client.cpp
	code/ryzom/client/src/client.rc
	code/ryzom/client/src/client_cfg.cpp
	code/ryzom/client/src/client_cfg.h
	code/ryzom/client/src/client_chat_manager.cpp
	code/ryzom/client/src/client_sheets/animation_set_list_sheet.cpp
	code/ryzom/client/src/client_sheets/animation_set_list_sheet.h
	code/ryzom/client/src/client_sheets/item_fx_sheet.cpp
	code/ryzom/client/src/client_sheets/item_sheet.cpp
	code/ryzom/client/src/client_sheets/mission_sheet.cpp
	code/ryzom/client/src/client_sheets/outpost_building_sheet.cpp
	code/ryzom/client/src/client_sheets/pact_sheet.cpp
	code/ryzom/client/src/client_sheets/pact_sheet.h
	code/ryzom/client/src/client_sheets/race_stats_sheet.cpp
	code/ryzom/client/src/client_sheets/sky_object_sheet.cpp
	code/ryzom/client/src/client_sheets/unblock_titles_sheet.cpp
	code/ryzom/client/src/commands.cpp
	code/ryzom/client/src/connection.cpp
	code/ryzom/client/src/contextual_cursor.cpp
	code/ryzom/client/src/continent_manager.cpp
	code/ryzom/client/src/continent_manager_build.h
	code/ryzom/client/src/cursor_functions.cpp
	code/ryzom/client/src/decal.cpp
	code/ryzom/client/src/door_manager.cpp
	code/ryzom/client/src/entities.cpp
	code/ryzom/client/src/entities.h
	code/ryzom/client/src/entity_cl.cpp
	code/ryzom/client/src/entity_cl.h
	code/ryzom/client/src/events_listener.cpp
	code/ryzom/client/src/far_tp.cpp
	code/ryzom/client/src/forage_source_cl.cpp
	code/ryzom/client/src/fx_cl.cpp
	code/ryzom/client/src/ground_fx_manager.cpp
	code/ryzom/client/src/init.cpp
	code/ryzom/client/src/init_main_loop.cpp
	code/ryzom/client/src/input.cpp
	code/ryzom/client/src/interface_v3/action_handler_debug.cpp
	code/ryzom/client/src/interface_v3/action_handler_game.cpp
	code/ryzom/client/src/interface_v3/action_handler_help.cpp
	code/ryzom/client/src/interface_v3/action_handler_item.cpp
	code/ryzom/client/src/interface_v3/action_handler_misc.cpp
	code/ryzom/client/src/interface_v3/action_handler_phrase.cpp
	code/ryzom/client/src/interface_v3/bar_manager.cpp
	code/ryzom/client/src/interface_v3/bar_manager.h
	code/ryzom/client/src/interface_v3/character_3d.cpp
	code/ryzom/client/src/interface_v3/chat_displayer.h
	code/ryzom/client/src/interface_v3/chat_text_manager.cpp
	code/ryzom/client/src/interface_v3/chat_text_manager.h
	code/ryzom/client/src/interface_v3/chat_window.cpp
	code/ryzom/client/src/interface_v3/dbctrl_sheet.cpp
	code/ryzom/client/src/interface_v3/dbctrl_sheet.h
	code/ryzom/client/src/interface_v3/group_html_cs.cpp
	code/ryzom/client/src/interface_v3/group_html_webig.cpp
	code/ryzom/client/src/interface_v3/group_in_scene_bubble.cpp
	code/ryzom/client/src/interface_v3/group_in_scene_user_info.cpp
	code/ryzom/client/src/interface_v3/group_in_scene_user_info.h
	code/ryzom/client/src/interface_v3/group_map.cpp
	code/ryzom/client/src/interface_v3/guild_manager.cpp
	code/ryzom/client/src/interface_v3/input_handler_manager.h
	code/ryzom/client/src/interface_v3/interface_3d_scene.cpp
	code/ryzom/client/src/interface_v3/interface_ddx.cpp
	code/ryzom/client/src/interface_v3/interface_expr_user_fct_game.cpp
	code/ryzom/client/src/interface_v3/interface_manager.cpp
	code/ryzom/client/src/interface_v3/interface_observer.h
	code/ryzom/client/src/interface_v3/item_consumable_effect.cpp
	code/ryzom/client/src/interface_v3/item_special_effect.cpp
	code/ryzom/client/src/interface_v3/lua_ihm_ryzom.cpp
	code/ryzom/client/src/interface_v3/lua_ihm_ryzom.h
	code/ryzom/client/src/interface_v3/macrocmd_key.cpp
	code/ryzom/client/src/interface_v3/macrocmd_manager.cpp
	code/ryzom/client/src/interface_v3/music_player.cpp
	code/ryzom/client/src/interface_v3/people_interraction.cpp
	code/ryzom/client/src/interface_v3/people_list.cpp
	code/ryzom/client/src/interface_v3/sbrick_manager.cpp
	code/ryzom/client/src/interface_v3/sbrick_manager.h
	code/ryzom/client/src/interface_v3/sphrase_manager.cpp
	code/ryzom/client/src/interface_v3/sphrase_manager.h
	code/ryzom/client/src/interface_v3/view_radar.cpp
	code/ryzom/client/src/login.cpp
	code/ryzom/client/src/login_patch.cpp
	code/ryzom/client/src/login_patch.h
	code/ryzom/client/src/login_progress_post_thread.cpp
	code/ryzom/client/src/login_xdelta.cpp
	code/ryzom/client/src/main_loop.cpp
	code/ryzom/client/src/micro_life_manager.cpp
	code/ryzom/client/src/misc.cpp
	code/ryzom/client/src/misc.h
	code/ryzom/client/src/net_manager.cpp
	code/ryzom/client/src/network_connection.cpp
	code/ryzom/client/src/network_connection.h
	code/ryzom/client/src/npc_icon.cpp
	code/ryzom/client/src/pacs_client.cpp
	code/ryzom/client/src/permanent_ban.cpp
	code/ryzom/client/src/player_cl.cpp
	code/ryzom/client/src/player_r2_cl.cpp
	code/ryzom/client/src/r2/auto_group.cpp
	code/ryzom/client/src/r2/dmc/action_historic.cpp
	code/ryzom/client/src/r2/dmc/client_edition_module.cpp
	code/ryzom/client/src/r2/dmc/client_edition_module.h
	code/ryzom/client/src/r2/dmc/dmc.cpp
	code/ryzom/client/src/r2/dmc/property_accessor.cpp
	code/ryzom/client/src/r2/editor.cpp
	code/ryzom/client/src/r2/editor.h
	code/ryzom/client/src/r2/instance_map_deco.cpp
	code/ryzom/client/src/r2/tool.cpp
	code/ryzom/client/src/r2/tool.h
	code/ryzom/client/src/r2/tool_choose_pos.cpp
	code/ryzom/client/src/r2/tool_create_entity.cpp
	code/ryzom/client/src/r2/tool_pick.cpp
	code/ryzom/client/src/r2/tool_select_move.cpp
	code/ryzom/client/src/release.cpp
	code/ryzom/client/src/rosace.cpp
	code/ryzom/client/src/ryzom.ico
	code/ryzom/client/src/session_browser.cpp
	code/ryzom/client/src/seven_zip/7zArcIn.cpp
	code/ryzom/client/src/seven_zip/7zMain.cpp
	code/ryzom/client/src/seven_zip/7zVersion.h
	code/ryzom/client/src/seven_zip/Aes.cpp
	code/ryzom/client/src/seven_zip/CpuArch.h
	code/ryzom/client/src/seven_zip/Lzma86Dec.cpp
	code/ryzom/client/src/seven_zip/Lzma86Enc.cpp
	code/ryzom/client/src/seven_zip/LzmaDec.cpp
	code/ryzom/client/src/seven_zip/LzmaEnc.cpp
	code/ryzom/client/src/seven_zip/Ppmd7.cpp
	code/ryzom/client/src/seven_zip/seven_zip.cpp
	code/ryzom/client/src/sheet_manager.cpp
	code/ryzom/client/src/sky.cpp
	code/ryzom/client/src/steam_client.cpp
	code/ryzom/client/src/string_manager_client.cpp
	code/ryzom/client/src/user_agent.cpp
	code/ryzom/client/src/user_entity.cpp
	code/ryzom/client/unix/CMakeLists.txt
	code/ryzom/client/unix/upgd_nl.sh
	code/ryzom/common/CMakeLists.txt
	code/ryzom/common/data_common/database.xml
	code/ryzom/common/data_common/landscape_col_prim_pacs_list.txt
	code/ryzom/common/data_common/msg.xml
	code/ryzom/common/data_common/r2/IslandScreenshots.cfg
	code/ryzom/common/data_common/r2/r2_islands.xml
	code/ryzom/common/data_common/r2/r2_ui_property_sheet.lua
	code/ryzom/common/data_common/visual_slot.tab
	code/ryzom/common/data_leveldesign/leveldesign/world_editor_files/world_editor_classes.xml
	code/ryzom/common/src/game_share/ai_wrapper.h
	code/ryzom/common/src/game_share/bg_downloader_msg.cpp
	code/ryzom/common/src/game_share/bg_downloader_msg.h
	code/ryzom/common/src/game_share/brick_families.cpp
	code/ryzom/common/src/game_share/brick_families.h
	code/ryzom/common/src/game_share/brick_flags.cpp
	code/ryzom/common/src/game_share/brick_flags.h
	code/ryzom/common/src/game_share/characteristics.cpp
	code/ryzom/common/src/game_share/characteristics.h
	code/ryzom/common/src/game_share/cst_loader.cpp
	code/ryzom/common/src/game_share/dms.cpp
	code/ryzom/common/src/game_share/effect_families.cpp
	code/ryzom/common/src/game_share/effect_families.h
	code/ryzom/common/src/game_share/inventories.h
	code/ryzom/common/src/game_share/item_infos.cpp
	code/ryzom/common/src/game_share/item_infos.h
	code/ryzom/common/src/game_share/light_cycle.cpp
	code/ryzom/common/src/game_share/login_registry.cpp
	code/ryzom/common/src/game_share/login_registry.h
	code/ryzom/common/src/game_share/magic_fx.cpp
	code/ryzom/common/src/game_share/magic_fx.h
	code/ryzom/common/src/game_share/mainland_summary.h
	code/ryzom/common/src/game_share/mirror_prop_value.h
	code/ryzom/common/src/game_share/mirrored_data_set.cpp
	code/ryzom/common/src/game_share/mode_and_behaviour.cpp
	code/ryzom/common/src/game_share/mode_and_behaviour.h
	code/ryzom/common/src/game_share/msg_ais_egs_gen.cpp
	code/ryzom/common/src/game_share/msg_client_server.h
	code/ryzom/common/src/game_share/object.cpp
	code/ryzom/common/src/game_share/persistent_data.h
	code/ryzom/common/src/game_share/persistent_data_inline.h
	code/ryzom/common/src/game_share/persistent_data_template.h
	code/ryzom/common/src/game_share/persistent_data_tree.cpp
	code/ryzom/common/src/game_share/power_types.cpp
	code/ryzom/common/src/game_share/power_types.h
	code/ryzom/common/src/game_share/ring_access.cpp
	code/ryzom/common/src/game_share/ring_session_manager_itf.h
	code/ryzom/common/src/game_share/ryzom_mirror_properties.cpp
	code/ryzom/common/src/game_share/ryzom_mirror_properties.h
	code/ryzom/common/src/game_share/ryzom_version.h
	code/ryzom/common/src/game_share/scenario.cpp
	code/ryzom/common/src/game_share/scenario_entry_points.cpp
	code/ryzom/common/src/game_share/scores.cpp
	code/ryzom/common/src/game_share/scores.h
	code/ryzom/common/src/game_share/season_file_ext.cpp
	code/ryzom/common/src/game_share/seeds.cpp
	code/ryzom/common/src/game_share/server_animation_module.cpp
	code/ryzom/common/src/game_share/server_edition_module.cpp
	code/ryzom/common/src/game_share/server_edition_module.h
	code/ryzom/common/src/game_share/simlag.cpp
	code/ryzom/common/src/game_share/string_mgr_module.cpp
	code/ryzom/common/src/game_share/time_weather_season/static_light_cycle.cpp
	code/ryzom/common/src/game_share/time_weather_season/time_and_season.cpp
	code/ryzom/common/src/game_share/time_weather_season/time_and_season.h
	code/ryzom/common/src/game_share/user_connection_mgr.cpp
	code/ryzom/common/src/game_share/utils.h
	code/ryzom/server/data_shard/egs/client_commands_privileges.txt
	code/ryzom/server/entities_game_service.cfg
	code/ryzom/server/entities_game_service_default.cfg
	code/ryzom/server/input_output_service.cfg
	code/ryzom/server/input_output_service_default.cfg
	code/ryzom/server/logger_service.cfg
	code/ryzom/server/session_browser_server.cfg
	code/ryzom/server/shard_unifier_service.cfg
	code/ryzom/server/src/admin_modules/admin_modules_itf.h
	code/ryzom/server/src/ags_test/command_event_manager.cpp
	code/ryzom/server/src/ags_test/move_grid.h
	code/ryzom/server/src/ai_service/ai.cpp
	code/ryzom/server/src/ai_service/ai.h
	code/ryzom/server/src/ai_service/ai_bot.cpp
	code/ryzom/server/src/ai_service/ai_bot.h
	code/ryzom/server/src/ai_service/ai_bot_fauna.cpp
	code/ryzom/server/src/ai_service/ai_bot_npc.cpp
	code/ryzom/server/src/ai_service/ai_bot_npc.h
	code/ryzom/server/src/ai_service/ai_entity_physical.h
	code/ryzom/server/src/ai_service/ai_entity_physical_inline.h
	code/ryzom/server/src/ai_service/ai_generic_fight.cpp
	code/ryzom/server/src/ai_service/ai_generic_fight_helpers.cpp
	code/ryzom/server/src/ai_service/ai_grp_fauna.cpp
	code/ryzom/server/src/ai_service/ai_grp_npc.cpp
	code/ryzom/server/src/ai_service/ai_grp_npc.h
	code/ryzom/server/src/ai_service/ai_mgr_fauna.cpp
	code/ryzom/server/src/ai_service/ai_place.cpp
	code/ryzom/server/src/ai_service/ai_player.cpp
	code/ryzom/server/src/ai_service/ai_profile_npc.cpp
	code/ryzom/server/src/ai_service/ai_script_comp.cpp
	code/ryzom/server/src/ai_service/commands.cpp
	code/ryzom/server/src/ai_service/continent.cpp
	code/ryzom/server/src/ai_service/family_profile_tribe.cpp
	code/ryzom/server/src/ai_service/generic_logic_action.cpp
	code/ryzom/server/src/ai_service/messages.cpp
	code/ryzom/server/src/ai_service/mirrors.cpp
	code/ryzom/server/src/ai_service/nf_grp.cpp
	code/ryzom/server/src/ai_service/nf_grp_npc.cpp
	code/ryzom/server/src/ai_service/script_compiler.cpp
	code/ryzom/server/src/ai_service/script_compiler_native_func.cpp
	code/ryzom/server/src/ai_service/sheets.cpp
	code/ryzom/server/src/ai_share/16x16_layer.h
	code/ryzom/server/src/ai_share/ai_event_report.cpp
	code/ryzom/server/src/ai_share/ai_event_report.h
	code/ryzom/server/src/ai_share/ai_types.h
	code/ryzom/server/src/ai_share/ai_wrapper_server.cpp
	code/ryzom/server/src/ai_share/world_map.cpp
	code/ryzom/server/src/ai_share/world_map.h
	code/ryzom/server/src/entities_game_service/admin.cpp
	code/ryzom/server/src/entities_game_service/building_manager/building_physical.cpp
	code/ryzom/server/src/entities_game_service/cdb_group.h
	code/ryzom/server/src/entities_game_service/common_shard_callbacks.cpp
	code/ryzom/server/src/entities_game_service/creature_manager/creature.cpp
	code/ryzom/server/src/entities_game_service/creature_manager/creature_manager.cpp
	code/ryzom/server/src/entities_game_service/creature_manager/creature_manager.h
	code/ryzom/server/src/entities_game_service/database_plr.cpp
	code/ryzom/server/src/entities_game_service/database_plr.h
	code/ryzom/server/src/entities_game_service/deposit.cpp
	code/ryzom/server/src/entities_game_service/egs_mirror.cpp
	code/ryzom/server/src/entities_game_service/egs_sheets/egs_static_ai_action.cpp
	code/ryzom/server/src/entities_game_service/egs_sheets/egs_static_ai_action.h
	code/ryzom/server/src/entities_game_service/egs_sheets/egs_static_brick.cpp
	code/ryzom/server/src/entities_game_service/egs_sheets/egs_static_brick.cpp.h
	code/ryzom/server/src/entities_game_service/egs_sheets/egs_static_brick.h
	code/ryzom/server/src/entities_game_service/egs_sheets/egs_static_game_item.cpp
	code/ryzom/server/src/entities_game_service/egs_sheets/egs_static_game_item.h
	code/ryzom/server/src/entities_game_service/egs_sheets/egs_static_game_sheet.cpp
	code/ryzom/server/src/entities_game_service/egs_sheets/egs_static_game_sheet.h
	code/ryzom/server/src/entities_game_service/egs_sheets/egs_static_harvestable.cpp
	code/ryzom/server/src/entities_game_service/egs_sheets/egs_static_outpost.cpp
	code/ryzom/server/src/entities_game_service/egs_sheets/egs_static_rolemaster_phrase.cpp
	code/ryzom/server/src/entities_game_service/egs_variables.cpp
	code/ryzom/server/src/entities_game_service/egs_variables.h
	code/ryzom/server/src/entities_game_service/entities_game_service.cpp
	code/ryzom/server/src/entities_game_service/entity_manager/entity_base.cpp
	code/ryzom/server/src/entities_game_service/entity_manager/entity_base.h
	code/ryzom/server/src/entities_game_service/entity_manager/entity_callbacks.cpp
	code/ryzom/server/src/entities_game_service/entity_manager/entity_manager.cpp
	code/ryzom/server/src/entities_game_service/forage_progress.cpp
	code/ryzom/server/src/entities_game_service/forage_progress.h
	code/ryzom/server/src/entities_game_service/game_item_manager/game_item.cpp
	code/ryzom/server/src/entities_game_service/game_item_manager/game_item.h
	code/ryzom/server/src/entities_game_service/harvest_source.cpp
	code/ryzom/server/src/entities_game_service/harvest_source.h
	code/ryzom/server/src/entities_game_service/mission_manager/mission_item.cpp
	code/ryzom/server/src/entities_game_service/mission_manager/mission_log.h
	code/ryzom/server/src/entities_game_service/mission_manager/missions_commands.cpp
	code/ryzom/server/src/entities_game_service/outpost_manager/outpost.h
	code/ryzom/server/src/entities_game_service/outpost_manager/outpost_building.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/area_effect.h
	code/ryzom/server/src/entities_game_service/phrase_manager/aura_regen_effect.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/aura_regen_effect.h
	code/ryzom/server/src/entities_game_service/phrase_manager/bleed_effect.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/bleed_effect.h
	code/ryzom/server/src/entities_game_service/phrase_manager/combat_action_bleed.h
	code/ryzom/server/src/entities_game_service/phrase_manager/combat_action_special_damage.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/combat_bleed_effect.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/combat_bleed_effect.h
	code/ryzom/server/src/entities_game_service/phrase_manager/combat_phrase.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/combat_phrase.h
	code/ryzom/server/src/entities_game_service/phrase_manager/damage_aura_effect.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/damage_aura_effect.h
	code/ryzom/server/src/entities_game_service/phrase_manager/faber_action.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/faber_phrase.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/faber_phrase.h
	code/ryzom/server/src/entities_game_service/phrase_manager/fg_extraction_phrase.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/fg_prospection_phrase.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/forage_phrase.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/forage_phrase.h
	code/ryzom/server/src/entities_game_service/phrase_manager/harvest_phrase.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/harvest_phrase.h
	code/ryzom/server/src/entities_game_service/phrase_manager/magic_action_affect_stat.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/magic_action_ai_hot.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/magic_action_attack.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/magic_action_attack.h
	code/ryzom/server/src/entities_game_service/phrase_manager/magic_action_debuff.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/magic_action_dot.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/magic_action_heal.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/magic_action_hot.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/magic_action_negative_effect.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/magic_phrase.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/magic_phrase.h
	code/ryzom/server/src/entities_game_service/phrase_manager/nolink_dot_effect.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/nolink_hot_effect.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/phrase_utilities_functions.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/phrase_utilities_functions.h
	code/ryzom/server/src/entities_game_service/phrase_manager/s_link_effect_dot.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/s_link_effect_dot.h
	code/ryzom/server/src/entities_game_service/phrase_manager/s_link_effect_hot.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/s_link_effect_hot.h
	code/ryzom/server/src/entities_game_service/phrase_manager/special_power_balance.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/special_power_balance.h
	code/ryzom/server/src/entities_game_service/phrase_manager/special_power_basic_aura.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/special_power_dot.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/special_power_enchant_weapon.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/special_power_heal.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/special_power_heal.h
	code/ryzom/server/src/entities_game_service/phrase_manager/special_power_phrase.cpp
	code/ryzom/server/src/entities_game_service/phrase_manager/toxic_cloud.cpp
	code/ryzom/server/src/entities_game_service/player_manager/admin_properties.cpp
	code/ryzom/server/src/entities_game_service/player_manager/character.cpp
	code/ryzom/server/src/entities_game_service/player_manager/character.h
	code/ryzom/server/src/entities_game_service/player_manager/character_inventory_manipulation.cpp
	code/ryzom/server/src/entities_game_service/player_manager/character_tick_update_timer_event.h
	code/ryzom/server/src/entities_game_service/player_manager/character_version_adapter.cpp
	code/ryzom/server/src/entities_game_service/player_manager/persistent_player_data.cpp
	code/ryzom/server/src/entities_game_service/player_manager/player_manager.cpp
	code/ryzom/server/src/entities_game_service/progression/progression_common.h
	code/ryzom/server/src/entities_game_service/progression/progression_pve.cpp
	code/ryzom/server/src/entities_game_service/progression/progression_pve.h
	code/ryzom/server/src/entities_game_service/progression/progression_pvp.cpp
	code/ryzom/server/src/entities_game_service/progression/progression_pvp.h
	code/ryzom/server/src/entities_game_service/pvp_manager/pvp_base.h
	code/ryzom/server/src/entities_game_service/pvp_manager/pvp_faction_reward_manager/pvp_faction_reward_manager.cpp
	code/ryzom/server/src/entities_game_service/pvp_manager/pvp_faction_reward_manager/totem_base.cpp
	code/ryzom/server/src/entities_game_service/pvp_manager/pvp_faction_reward_manager/totem_base.h
	code/ryzom/server/src/entities_game_service/pvp_manager/pvp_faction_reward_manager/totem_effect.cpp
	code/ryzom/server/src/entities_game_service/pvp_manager/pvp_manager.cpp
	code/ryzom/server/src/entities_game_service/pvp_manager/pvp_manager_2.cpp
	code/ryzom/server/src/entities_game_service/team_manager/team.cpp
	code/ryzom/server/src/entity_view_service/move_grid.h
	code/ryzom/server/src/frontend_service/distance_prioritizer.cpp
	code/ryzom/server/src/frontend_service/vision_provider.cpp
	code/ryzom/server/src/general_utilities_service/stat_character.cpp
	code/ryzom/server/src/general_utilities_service/stat_character.h
	code/ryzom/server/src/general_utilities_service/stat_user_char_info_extractors.cpp
	code/ryzom/server/src/gpm_service/cell.h
	code/ryzom/server/src/gpm_service/move_grid.h
	code/ryzom/server/src/gpm_service/world_entity.cpp
	code/ryzom/server/src/gpm_service/world_entity.h
	code/ryzom/server/src/input_output_service/chat_manager.cpp
	code/ryzom/server/src/input_output_service/string_manager_parser.cpp
	code/ryzom/server/src/logger_service/log_query.cpp
	code/ryzom/server/src/logger_service/log_query.h
	code/ryzom/server/src/mail_forum_service/hof_generator.cpp
	code/ryzom/server/src/monitor_service/client.cpp
	code/ryzom/server/src/monitor_service/client.h
	code/ryzom/server/src/monitor_service/mirrors.cpp
	code/ryzom/server/src/monitor_service/mirrors.h
	code/ryzom/server/src/pd_lib/pd_messages.h
	code/ryzom/server/src/pd_support_service/stat_character.cpp
	code/ryzom/server/src/pd_support_service/stat_character.h
	code/ryzom/server/src/pd_support_service/stat_user_char_info_extractors.cpp
	code/ryzom/server/src/persistant_data_service/pds_database.cpp
	code/ryzom/server/src/persistant_data_service/pds_database.h
	code/ryzom/server/src/persistant_data_service/pds_table.h
	code/ryzom/server/src/persistant_data_service/pds_table_inline.h
	code/ryzom/server/src/sabrina/combat_phrase.cpp
	code/ryzom/server/src/sabrina/combat_phrase.h
	code/ryzom/server/src/sabrina/faber_phrase.cpp
	code/ryzom/server/src/sabrina/faber_phrase.h
	code/ryzom/server/src/sabrina/harvest_phrase.cpp
	code/ryzom/server/src/sabrina/harvest_phrase.h
	code/ryzom/server/src/sabrina/magic_action_affect_stat.cpp
	code/ryzom/server/src/sabrina/magic_action_attack.cpp
	code/ryzom/server/src/sabrina/magic_action_debuff.cpp
	code/ryzom/server/src/sabrina/magic_action_dot.cpp
	code/ryzom/server/src/sabrina/magic_action_heal.cpp
	code/ryzom/server/src/sabrina/magic_action_hot.cpp
	code/ryzom/server/src/sabrina/magic_action_negative_effect.cpp
	code/ryzom/server/src/sabrina/magic_phrase.cpp
	code/ryzom/server/src/sabrina/magic_phrase.h
	code/ryzom/server/src/sabrina/phrase_utilities_functions.cpp
	code/ryzom/server/src/sabrina/phrase_utilities_functions.h
	code/ryzom/server/src/sabrina/s_link_effect_dot.cpp
	code/ryzom/server/src/sabrina/s_link_effect_dot.h
	code/ryzom/server/src/sabrina/s_link_effect_hot.cpp
	code/ryzom/server/src/sabrina/s_link_effect_hot.h
	code/ryzom/server/src/sabrina/sabrina_actor.h
	code/ryzom/server/src/sabrina/sabrina_actor_creature.cpp
	code/ryzom/server/src/sabrina/sabrina_actor_player.cpp
	code/ryzom/server/src/sabrina/sabrina_enum.h
	code/ryzom/server/src/server_share/continent_container.cpp
	code/ryzom/server/src/server_share/login_service_itf.h
	code/ryzom/server/src/server_share/mail_forum_itf.h
	code/ryzom/server/src/server_share/msg_ai_service.cpp
	code/ryzom/server/src/server_share/msg_ai_service.h
	code/ryzom/server/src/server_share/mysql_wrapper.cpp
	code/ryzom/server/src/server_share/mysql_wrapper.h
	code/ryzom/server/src/server_share/testing_tool_structures.h
	code/ryzom/server/src/session_browser_server/session_browser_server.cpp
	code/ryzom/server/src/shard_unifier_service/character_sync.cpp
	code/ryzom/server/src/shard_unifier_service/database_mapping.cpp
	code/ryzom/server/src/shard_unifier_service/login_service.cpp
	code/ryzom/server/src/shard_unifier_service/mail_forum_notfier_fwd.cpp
	code/ryzom/server/src/shard_unifier_service/name_manager.cpp
	code/ryzom/server/src/shard_unifier_service/ring_session_manager.cpp
	code/ryzom/server/src/simulation_service/simulated_dmc.cpp
	code/ryzom/server/src/simulation_service/simulated_ring_session_manager.cpp
	code/ryzom/server/src/testing_tool_service/testing_tool_service.cpp
	code/ryzom/server/src/testing_tool_service/testing_tool_service.h
	code/ryzom/tools/client/client_config_qt/CMakeLists.txt
	code/ryzom/tools/client/client_config_qt/src/client_config_dialog.cpp
	code/ryzom/tools/client/client_patcher/CMakeLists.txt
	code/ryzom/tools/client/ryzom_installer/res/ryzom_installer.ini
	code/ryzom/tools/client/ryzom_installer/src/configfile.cpp
	code/ryzom/tools/client/ryzom_installer/src/configfile.h
	code/ryzom/tools/client/ryzom_installer/src/downloader.cpp
	code/ryzom/tools/client/ryzom_installer/src/filesextractor.cpp
	code/ryzom/tools/client/ryzom_installer/src/installdialog.cpp
	code/ryzom/tools/client/ryzom_installer/src/main.cpp
	code/ryzom/tools/client/ryzom_installer/src/migratedialog.cpp
	code/ryzom/tools/client/ryzom_installer/src/operationdialog.cpp
	code/ryzom/tools/client/ryzom_installer/src/operationdialog.h
	code/ryzom/tools/client/ryzom_installer/src/profilesdialog.cpp
	code/ryzom/tools/client/ryzom_installer/src/utils.cpp
	code/ryzom/tools/client/ryzom_installer/src/utils.h
	code/ryzom/tools/client/ryzom_installer/translations/ryzom_installer_de.ts
	code/ryzom/tools/client/ryzom_installer/translations/ryzom_installer_es.ts
	code/ryzom/tools/client/ryzom_installer/translations/ryzom_installer_fr.ts
	code/ryzom/tools/client/ryzom_installer/translations/ryzom_installer_ru.ts
	code/ryzom/tools/leveldesign/alias_synchronizer/alias_synchronizer.cpp
	code/ryzom/tools/leveldesign/csv_transform/csv_transform.cpp
	code/ryzom/tools/leveldesign/export/export.cpp
	code/ryzom/tools/leveldesign/georges_dll/action.cpp
	code/ryzom/tools/leveldesign/georges_dll/action.h
	code/ryzom/tools/leveldesign/georges_dll/base_dialog.cpp
	code/ryzom/tools/leveldesign/georges_dll/base_dialog.h
	code/ryzom/tools/leveldesign/georges_dll/color_wnd.cpp
	code/ryzom/tools/leveldesign/georges_dll/dfn_dialog.cpp
	code/ryzom/tools/leveldesign/georges_dll/edit_list_ctrl.cpp
	code/ryzom/tools/leveldesign/georges_dll/edit_list_ctrl.h
	code/ryzom/tools/leveldesign/georges_dll/file_browser_dialog.cpp
	code/ryzom/tools/leveldesign/georges_dll/file_tree_view.cpp
	code/ryzom/tools/leveldesign/georges_dll/form_dialog.cpp
	code/ryzom/tools/leveldesign/georges_dll/georges_edit.cpp
	code/ryzom/tools/leveldesign/georges_dll/georges_edit.h
	code/ryzom/tools/leveldesign/georges_dll/georges_edit_doc.cpp
	code/ryzom/tools/leveldesign/georges_dll/georges_edit_view.cpp
	code/ryzom/tools/leveldesign/georges_dll/georges_implementation.cpp
	code/ryzom/tools/leveldesign/georges_dll/icon_wnd.cpp
	code/ryzom/tools/leveldesign/georges_dll/imagelist_ex.cpp
	code/ryzom/tools/leveldesign/georges_dll/left_view.cpp
	code/ryzom/tools/leveldesign/georges_dll/memory_combo_box.cpp
	code/ryzom/tools/leveldesign/georges_dll/memory_combo_box.h
	code/ryzom/tools/leveldesign/georges_dll/plugin_interface.h
	code/ryzom/tools/leveldesign/georges_dll/stdafx.h
	code/ryzom/tools/leveldesign/georges_dll/type_dialog.cpp
	code/ryzom/tools/leveldesign/georges_plugin_sound/PageSimple.cpp
	code/ryzom/tools/leveldesign/georges_plugin_sound/georges_plugin_sound.cpp
	code/ryzom/tools/leveldesign/georges_plugin_sound/sound_plugin.cpp
	code/ryzom/tools/leveldesign/mission_compiler_fe/mission_compiler_fe.cpp
	code/ryzom/tools/leveldesign/mission_compiler_fe/mission_compiler_feDlg.cpp
	code/ryzom/tools/leveldesign/mission_compiler_lib/main.cpp
	code/ryzom/tools/leveldesign/mission_compiler_lib/mission_compiler.cpp
	code/ryzom/tools/leveldesign/mission_compiler_lib/mission_compiler.h
	code/ryzom/tools/leveldesign/mission_compiler_lib/step_content.cpp
	code/ryzom/tools/leveldesign/mission_compiler_lib/steps.cpp
	code/ryzom/tools/leveldesign/mp_generator/main.cpp
	code/ryzom/tools/leveldesign/named_items_2_csv/named_items_2_csv.cpp
	code/ryzom/tools/leveldesign/prim_export/main.cpp
	code/ryzom/tools/leveldesign/variable_parser/lua_helper.h
	code/ryzom/tools/leveldesign/world_editor/land_export_lib/export.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/action.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/action.h
	code/ryzom/tools/leveldesign/world_editor/world_editor/builder_zone.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/builder_zone.h
	code/ryzom/tools/leveldesign/world_editor/world_editor/builder_zone_region.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/dialog_properties.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/display.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/editor_primitive.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/editor_primitive.h
	code/ryzom/tools/leveldesign/world_editor/world_editor/export_dlg.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/external_editor.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/file_dialog_ex.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/find_primitive_dlg.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/generate_dlg.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/imagelist_ex.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/main_frm.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/main_frm.h
	code/ryzom/tools/leveldesign/world_editor/world_editor/my_list_box.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/name_dlg.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/pacs.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/plugin_interface.h
	code/ryzom/tools/leveldesign/world_editor/world_editor/primitive_configuration_dlg.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/project_settings.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/resource.h
	code/ryzom/tools/leveldesign/world_editor/world_editor/tools_logic.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/tools_logic.h
	code/ryzom/tools/leveldesign/world_editor/world_editor/tools_zone.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/type_manager_dlg.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/type_sel_dlg.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/world_editor.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/world_editor.h
	code/ryzom/tools/leveldesign/world_editor/world_editor/world_editor_doc.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor/world_editor_doc.h
	code/ryzom/tools/leveldesign/world_editor/world_editor_fauna_graph_plugin/plugin.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor_graph_plugin/graph_plugin.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor_graph_plugin/world_editor_graph_plugin_dlg.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor_shard_monitor_plugin/DialogFlags.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor_shard_monitor_plugin/entity_display_info.h
	code/ryzom/tools/leveldesign/world_editor/world_editor_shard_monitor_plugin/memory_combo_box.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor_shard_monitor_plugin/memory_combo_box.h
	code/ryzom/tools/leveldesign/world_editor/world_editor_shard_monitor_plugin/plugin.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor_shard_monitor_plugin/plugin.h
	code/ryzom/tools/leveldesign/world_editor/world_editor_sound_plugin/DialogFlags.cpp
	code/ryzom/tools/leveldesign/world_editor/world_editor_sound_plugin/sound_plugin.cpp
	code/ryzom/tools/pd_parser/parser.cpp
	code/ryzom/tools/pd_parser/templatizer.cpp
	code/ryzom/tools/scripts/linux/utilities
	code/ryzom/tools/sheets_packer/sheets_packer.cfg
	code/ryzom/tools/stats_scan/character_scan_job.cpp
	code/ryzom/tools/translation/translated/bodypart_words_de.txt
	code/ryzom/tools/translation/translated/bodypart_words_en.txt
	code/ryzom/tools/translation/translated/bodypart_words_es.txt
	code/ryzom/tools/translation/translated/bodypart_words_fr.txt
	code/ryzom/tools/translation/translated/bodypart_words_ru.txt
	code/ryzom/tools/translation/translated/bodypart_words_wk.txt
	code/ryzom/tools/translation/translated/career_words_de.txt
	code/ryzom/tools/translation/translated/career_words_en.txt
	code/ryzom/tools/translation/translated/career_words_es.txt
	code/ryzom/tools/translation/translated/career_words_fr.txt
	code/ryzom/tools/translation/translated/career_words_ru.txt
	code/ryzom/tools/translation/translated/career_words_wk.txt
	code/ryzom/tools/translation/translated/characteristic_words_de.txt
	code/ryzom/tools/translation/translated/characteristic_words_en.txt
	code/ryzom/tools/translation/translated/characteristic_words_es.txt
	code/ryzom/tools/translation/translated/characteristic_words_fr.txt
	code/ryzom/tools/translation/translated/characteristic_words_ru.txt
	code/ryzom/tools/translation/translated/characteristic_words_wk.txt
	code/ryzom/tools/translation/translated/classificationtype_words_de.txt
	code/ryzom/tools/translation/translated/classificationtype_words_en.txt
	code/ryzom/tools/translation/translated/classificationtype_words_es.txt
	code/ryzom/tools/translation/translated/classificationtype_words_fr.txt
	code/ryzom/tools/translation/translated/classificationtype_words_ru.txt
	code/ryzom/tools/translation/translated/classificationtype_words_wk.txt
	code/ryzom/tools/translation/translated/creature_words_de.txt
	code/ryzom/tools/translation/translated/creature_words_en.txt
	code/ryzom/tools/translation/translated/creature_words_es.txt
	code/ryzom/tools/translation/translated/creature_words_fr.txt
	code/ryzom/tools/translation/translated/creature_words_ru.txt
	code/ryzom/tools/translation/translated/creature_words_wk.txt
	code/ryzom/tools/translation/translated/damagetype_words_de.txt
	code/ryzom/tools/translation/translated/damagetype_words_en.txt
	code/ryzom/tools/translation/translated/damagetype_words_es.txt
	code/ryzom/tools/translation/translated/damagetype_words_fr.txt
	code/ryzom/tools/translation/translated/damagetype_words_ru.txt
	code/ryzom/tools/translation/translated/damagetype_words_wk.txt
	code/ryzom/tools/translation/translated/de.uxt
	code/ryzom/tools/translation/translated/ecosystem_words_de.txt
	code/ryzom/tools/translation/translated/ecosystem_words_en.txt
	code/ryzom/tools/translation/translated/ecosystem_words_es.txt
	code/ryzom/tools/translation/translated/ecosystem_words_fr.txt
	code/ryzom/tools/translation/translated/ecosystem_words_ru.txt
	code/ryzom/tools/translation/translated/ecosystem_words_wk.txt
	code/ryzom/tools/translation/translated/en.uxt
	code/ryzom/tools/translation/translated/es.uxt
	code/ryzom/tools/translation/translated/faction_words_de.txt
	code/ryzom/tools/translation/translated/faction_words_en.txt
	code/ryzom/tools/translation/translated/faction_words_es.txt
	code/ryzom/tools/translation/translated/faction_words_fr.txt
	code/ryzom/tools/translation/translated/faction_words_ru.txt
	code/ryzom/tools/translation/translated/faction_words_wk.txt
	code/ryzom/tools/translation/translated/fr.uxt
	code/ryzom/tools/translation/translated/item_words_de.txt
	code/ryzom/tools/translation/translated/item_words_en.txt
	code/ryzom/tools/translation/translated/item_words_es.txt
	code/ryzom/tools/translation/translated/item_words_fr.txt
	code/ryzom/tools/translation/translated/item_words_ru.txt
	code/ryzom/tools/translation/translated/item_words_wk.txt
	code/ryzom/tools/translation/translated/job_words_de.txt
	code/ryzom/tools/translation/translated/job_words_en.txt
	code/ryzom/tools/translation/translated/job_words_es.txt
	code/ryzom/tools/translation/translated/job_words_fr.txt
	code/ryzom/tools/translation/translated/job_words_ru.txt
	code/ryzom/tools/translation/translated/job_words_wk.txt
	code/ryzom/tools/translation/translated/outpost_words_de.txt
	code/ryzom/tools/translation/translated/outpost_words_en.txt
	code/ryzom/tools/translation/translated/outpost_words_es.txt
	code/ryzom/tools/translation/translated/outpost_words_fr.txt
	code/ryzom/tools/translation/translated/outpost_words_ru.txt
	code/ryzom/tools/translation/translated/outpost_words_wk.txt
	code/ryzom/tools/translation/translated/place_words_de.txt
	code/ryzom/tools/translation/translated/place_words_en.txt
	code/ryzom/tools/translation/translated/place_words_es.txt
	code/ryzom/tools/translation/translated/place_words_fr.txt
	code/ryzom/tools/translation/translated/place_words_ru.txt
	code/ryzom/tools/translation/translated/place_words_wk.txt
	code/ryzom/tools/translation/translated/powertype_words_de.txt
	code/ryzom/tools/translation/translated/powertype_words_en.txt
	code/ryzom/tools/translation/translated/powertype_words_es.txt
	code/ryzom/tools/translation/translated/powertype_words_fr.txt
	code/ryzom/tools/translation/translated/powertype_words_ru.txt
	code/ryzom/tools/translation/translated/powertype_words_wk.txt
	code/ryzom/tools/translation/translated/race_words_de.txt
	code/ryzom/tools/translation/translated/race_words_en.txt
	code/ryzom/tools/translation/translated/race_words_es.txt
	code/ryzom/tools/translation/translated/race_words_fr.txt
	code/ryzom/tools/translation/translated/race_words_ru.txt
	code/ryzom/tools/translation/translated/race_words_wk.txt
	code/ryzom/tools/translation/translated/sbrick_words_de.txt
	code/ryzom/tools/translation/translated/sbrick_words_en.txt
	code/ryzom/tools/translation/translated/sbrick_words_es.txt
	code/ryzom/tools/translation/translated/sbrick_words_fr.txt
	code/ryzom/tools/translation/translated/sbrick_words_ru.txt
	code/ryzom/tools/translation/translated/sbrick_words_wk.txt
	code/ryzom/tools/translation/translated/score_words_de.txt
	code/ryzom/tools/translation/translated/score_words_en.txt
	code/ryzom/tools/translation/translated/score_words_es.txt
	code/ryzom/tools/translation/translated/score_words_fr.txt
	code/ryzom/tools/translation/translated/score_words_ru.txt
	code/ryzom/tools/translation/translated/score_words_wk.txt
	code/ryzom/tools/translation/translated/skill_words_de.txt
	code/ryzom/tools/translation/translated/skill_words_en.txt
	code/ryzom/tools/translation/translated/skill_words_es.txt
	code/ryzom/tools/translation/translated/skill_words_fr.txt
	code/ryzom/tools/translation/translated/skill_words_ru.txt
	code/ryzom/tools/translation/translated/skill_words_wk.txt
	code/ryzom/tools/translation/translated/sphrase_words_de.txt
	code/ryzom/tools/translation/translated/sphrase_words_en.txt
	code/ryzom/tools/translation/translated/sphrase_words_es.txt
	code/ryzom/tools/translation/translated/sphrase_words_fr.txt
	code/ryzom/tools/translation/translated/sphrase_words_ru.txt
	code/ryzom/tools/translation/translated/sphrase_words_wk.txt
	code/ryzom/tools/translation/translated/title_words_de.txt
	code/ryzom/tools/translation/translated/title_words_en.txt
	code/ryzom/tools/translation/translated/title_words_es.txt
	code/ryzom/tools/translation/translated/title_words_fr.txt
	code/ryzom/tools/translation/translated/title_words_ru.txt
	code/ryzom/tools/translation/translated/title_words_wk.txt
	code/ryzom/tools/translation/translated/wk.uxt
	code/ryzom/tools/translation/work/wk.uxt
	code/ryzom/tools/translation_tools/main.cpp
	code/studio/src/plugins/mission_compiler/mission_compiler_main_window.cpp
	code/studio/src/plugins/object_viewer/particle_system/dup_ps.cpp
	code/studio/src/plugins/object_viewer/particle_system/particle_editor.cpp
	code/studio/src/plugins/object_viewer/particle_system/particle_node.cpp
	code/studio/src/plugins/object_viewer/particle_system/particle_workspace_dialog.h
	code/web/docs/admin/shard_restart/Hd36.xml
	code/web/docs/ams/doxygen/Doxyfile
	code/web/docs/ams/doxygen/img/db.png
	code/web/docs/ams/doxygen/img/info.jpg
	code/web/docs/ams/doxygen/img/info.psd
	code/web/docs/ams/doxygen/info.php
	code/web/docs/ams/doxygen/logo.png
	code/web/private_php/ams/autoload/.plugincache.php.swp
	code/web/private_php/ams/autoload/assigned.php
	code/web/private_php/ams/autoload/dblayer.php
	code/web/private_php/ams/autoload/forwarded.php
	code/web/private_php/ams/autoload/gui_elements.php
	code/web/private_php/ams/autoload/helpers.php
	code/web/private_php/ams/autoload/in_support_group.php
	code/web/private_php/ams/autoload/mail_handler.php
	code/web/private_php/ams/autoload/mycrypt.php
	code/web/private_php/ams/autoload/pagination.php
	code/web/private_php/ams/autoload/plugincache.php
	code/web/private_php/ams/autoload/querycache.php
	code/web/private_php/ams/autoload/rest_api.php
	code/web/private_php/ams/autoload/support_group.php
	code/web/private_php/ams/autoload/sync.php
	code/web/private_php/ams/autoload/ticket.php
	code/web/private_php/ams/autoload/ticket_category.php
	code/web/private_php/ams/autoload/ticket_content.php
	code/web/private_php/ams/autoload/ticket_info.php
	code/web/private_php/ams/autoload/ticket_log.php
	code/web/private_php/ams/autoload/ticket_queue.php
	code/web/private_php/ams/autoload/ticket_queue_handler.php
	code/web/private_php/ams/autoload/ticket_reply.php
	code/web/private_php/ams/autoload/ticket_user.php
	code/web/private_php/ams/autoload/users.php
	code/web/private_php/ams/configs/ams_lib.conf
	code/web/private_php/ams/configs/ingame_layout.ini
	code/web/private_php/ams/img/info/client.png
	code/web/private_php/ams/img/info/connect.png
	code/web/private_php/ams/img/info/cpuid.png
	code/web/private_php/ams/img/info/ht.png
	code/web/private_php/ams/img/info/local.png
	code/web/private_php/ams/img/info/mask.png
	code/web/private_php/ams/img/info/memory.png
	code/web/private_php/ams/img/info/nel.png
	code/web/private_php/ams/img/info/os.png
	code/web/private_php/ams/img/info/patch.png
	code/web/private_php/ams/img/info/position.png
	code/web/private_php/ams/img/info/processor.png
	code/web/private_php/ams/img/info/server.png
	code/web/private_php/ams/img/info/shard.png
	code/web/private_php/ams/img/info/user.png
	code/web/private_php/ams/img/info/view.png
	code/web/private_php/ams/ingame_templates/createticket.tpl
	code/web/private_php/ams/ingame_templates/dashboard.tpl
	code/web/private_php/ams/ingame_templates/index.tpl
	code/web/private_php/ams/ingame_templates/layout.tpl
	code/web/private_php/ams/ingame_templates/layout_admin.tpl
	code/web/private_php/ams/ingame_templates/layout_mod.tpl
	code/web/private_php/ams/ingame_templates/layout_user.tpl
	code/web/private_php/ams/ingame_templates/login.tpl
	code/web/private_php/ams/ingame_templates/register.tpl
	code/web/private_php/ams/ingame_templates/settings.tpl
	code/web/private_php/ams/ingame_templates/sgroup_list.tpl
	code/web/private_php/ams/ingame_templates/show_queue.tpl
	code/web/private_php/ams/ingame_templates/show_reply.tpl
	code/web/private_php/ams/ingame_templates/show_sgroup.tpl
	code/web/private_php/ams/ingame_templates/show_ticket.tpl
	code/web/private_php/ams/ingame_templates/show_ticket_info.tpl
	code/web/private_php/ams/ingame_templates/show_ticket_log.tpl
	code/web/private_php/ams/ingame_templates/show_user.tpl
	code/web/private_php/ams/ingame_templates/userlist.tpl
	code/web/private_php/ams/libinclude.php
	code/web/private_php/ams/mail/placeholder
	code/web/private_php/ams/plugins/API_key_management/.info
	code/web/private_php/ams/plugins/API_key_management/API_key_management.php
	code/web/private_php/ams/plugins/API_key_management/generate_key.php
	code/web/private_php/ams/plugins/API_key_management/templates/gen_key.tpl
	code/web/private_php/ams/plugins/API_key_management/templates/index.tpl
	code/web/private_php/ams/plugins/Achievements/.info
	code/web/private_php/ams/plugins/Achievements/Achievements.php
	code/web/private_php/ams/plugins/Achievements/templates/index.tpl
	code/web/private_php/ams/plugins/Domain_Management/.info
	code/web/private_php/ams/plugins/Domain_Management/Domain_Management.php
	code/web/private_php/ams/plugins/Domain_Management/templates/index.tpl
	code/web/private_php/ams/plugins/cacheresource.apc.php
	code/web/private_php/ams/plugins/cacheresource.memcache.php
	code/web/private_php/ams/plugins/cacheresource.mysql.php
	code/web/private_php/ams/plugins/doxygen_plugin_management.php
	code/web/private_php/ams/plugins/resource.extendsall.php
	code/web/private_php/ams/plugins/resource.mysql.php
	code/web/private_php/ams/plugins/resource.mysqls.php
	code/web/private_php/ams/smarty/README
	code/web/private_php/ams/smarty/SMARTY_2_BC_NOTES.txt
	code/web/private_php/ams/smarty/SMARTY_3.0_BC_NOTES.txt
	code/web/private_php/ams/smarty/SMARTY_3.1_NOTES.txt
	code/web/private_php/ams/smarty/change_log.txt
	code/web/private_php/ams/smarty/libs/Smarty.class.php
	code/web/private_php/ams/smarty/libs/SmartyBC.class.php
	code/web/private_php/ams/smarty/libs/debug.tpl
	code/web/private_php/ams/smarty/libs/plugins/block.textformat.php
	code/web/private_php/ams/smarty/libs/plugins/function.counter.php
	code/web/private_php/ams/smarty/libs/plugins/function.cycle.php
	code/web/private_php/ams/smarty/libs/plugins/function.fetch.php
	code/web/private_php/ams/smarty/libs/plugins/function.html_checkboxes.php
	code/web/private_php/ams/smarty/libs/plugins/function.html_image.php
	code/web/private_php/ams/smarty/libs/plugins/function.html_options.php
	code/web/private_php/ams/smarty/libs/plugins/function.html_radios.php
	code/web/private_php/ams/smarty/libs/plugins/function.html_select_date.php
	code/web/private_php/ams/smarty/libs/plugins/function.html_select_time.php
	code/web/private_php/ams/smarty/libs/plugins/function.html_table.php
	code/web/private_php/ams/smarty/libs/plugins/function.mailto.php
	code/web/private_php/ams/smarty/libs/plugins/function.math.php
	code/web/private_php/ams/smarty/libs/plugins/modifier.capitalize.php
	code/web/private_php/ams/smarty/libs/plugins/modifier.date_format.php
	code/web/private_php/ams/smarty/libs/plugins/modifier.debug_print_var.php
	code/web/private_php/ams/smarty/libs/plugins/modifier.escape.php
	code/web/private_php/ams/smarty/libs/plugins/modifier.regex_replace.php
	code/web/private_php/ams/smarty/libs/plugins/modifier.replace.php
	code/web/private_php/ams/smarty/libs/plugins/modifier.spacify.php
	code/web/private_php/ams/smarty/libs/plugins/modifier.truncate.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.cat.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.count_characters.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.count_paragraphs.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.count_sentences.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.count_words.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.default.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.escape.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.from_charset.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.indent.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.lower.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.noprint.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.string_format.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.strip.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.strip_tags.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.to_charset.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.unescape.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.upper.php
	code/web/private_php/ams/smarty/libs/plugins/modifiercompiler.wordwrap.php
	code/web/private_php/ams/smarty/libs/plugins/outputfilter.trimwhitespace.php
	code/web/private_php/ams/smarty/libs/plugins/shared.escape_special_chars.php
	code/web/private_php/ams/smarty/libs/plugins/shared.literal_compiler_param.php
	code/web/private_php/ams/smarty/libs/plugins/shared.make_timestamp.php
	code/web/private_php/ams/smarty/libs/plugins/shared.mb_str_replace.php
	code/web/private_php/ams/smarty/libs/plugins/shared.mb_unicode.php
	code/web/private_php/ams/smarty/libs/plugins/shared.mb_wordwrap.php
	code/web/private_php/ams/smarty/libs/plugins/variablefilter.htmlspecialchars.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_cacheresource.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_cacheresource_custom.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_cacheresource_keyvaluestore.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_config_source.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_cacheresource_file.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_append.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_assign.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_block.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_break.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_call.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_capture.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_config_load.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_continue.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_debug.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_eval.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_extends.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_for.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_foreach.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_function.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_if.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_include.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_include_php.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_insert.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_ldelim.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_nocache.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_private_block_plugin.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_private_function_plugin.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_private_modifier.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_private_object_block_function.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_private_object_function.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_private_registered_block.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_private_special_variable.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_rdelim.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_section.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_setfilter.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compile_while.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_compilebase.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_config.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_config_file_compiler.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_configfilelexer.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_configfileparser.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_data.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_debug.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_filter_handler.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_function_call_handler.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_get_include_path.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_nocache_insert.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_parsetree.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_resource_eval.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_resource_extends.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_resource_file.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_resource_php.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_resource_registered.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_resource_stream.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_resource_string.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_template.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_templatebase.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_templatelexer.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_templateparser.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_utility.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_internal_write_file.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_resource.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_resource_custom.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_resource_recompiled.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_resource_uncompiled.php
	code/web/private_php/ams/smarty/libs/sysplugins/smarty_security.php
	code/web/private_php/ams/tmp/placeholder
	code/web/private_php/ams/translations/en.ini
	code/web/private_php/ams/translations/fr.ini
	code/web/private_php/setup/config/config.php
	code/web/private_php/setup/config/config_user.php
	code/web/private_php/setup/sql/nel_00001.sql
	code/web/private_php/setup/sql/nel_00002.sql
	code/web/private_php/setup/sql/nel_00003.sql
	code/web/private_php/setup/sql/nel_00004.sql
	code/web/private_php/setup/sql/nel_ams_00001.sql
	code/web/private_php/setup/sql/nel_ams_00002.sql
	code/web/private_php/setup/sql/nel_ams_lib_00001.sql
	code/web/private_php/setup/sql/nel_ams_lib_00002.sql
	code/web/private_php/setup/sql/nel_ams_lib_00003.sql
	code/web/private_php/setup/sql/nel_ams_lib_00004.sql
	code/web/private_php/setup/sql/nel_ams_lib_00005.sql
	code/web/private_php/setup/sql/nel_ams_lib_00006.sql
	code/web/private_php/setup/sql/nel_ams_lib_00007.sql
	code/web/private_php/setup/sql/nel_tool_00001.sql
	code/web/private_php/setup/sql/nel_tool_00002.sql
	code/web/private_php/setup/sql/ring_domain_00001.sql
	code/web/private_php/setup/sql/webig_00001.sql
	code/web/public_php/admin/common.php
	code/web/public_php/admin/config.php
	code/web/public_php/admin/crons/cron_harddisk.php
	code/web/public_php/admin/crons/index.html
	code/web/public_php/admin/functions_auth.php
	code/web/public_php/admin/functions_mysql.php
	code/web/public_php/admin/functions_mysqli.php
	code/web/public_php/admin/functions_tool_main.php
	code/web/public_php/admin/graphs_output/placeholder
	code/web/public_php/admin/index.php
	code/web/public_php/admin/jpgraph/jpgraph_gantt.php
	code/web/public_php/admin/jpgraph/jpgraph_pie.php
	code/web/public_php/admin/nel/nel_message.php
	code/web/public_php/admin/scripts/index.html
	code/web/public_php/admin/smarty/Config_File.class.php
	code/web/public_php/admin/smarty/Smarty.class.php
	code/web/public_php/admin/smarty/Smarty_Compiler.class.php
	code/web/public_php/admin/smarty/debug.tpl
	code/web/public_php/admin/smarty/internals/core.create_dir_structure.php
	code/web/public_php/admin/smarty/internals/core.display_debug_console.php
	code/web/public_php/admin/smarty/internals/core.is_secure.php
	code/web/public_php/admin/smarty/internals/core.is_trusted.php
	code/web/public_php/admin/smarty/internals/core.process_cached_inserts.php
	code/web/public_php/admin/smarty/internals/core.process_compiled_include.php
	code/web/public_php/admin/smarty/internals/core.read_cache_file.php
	code/web/public_php/admin/smarty/internals/core.rmdir.php
	code/web/public_php/admin/smarty/internals/core.write_cache_file.php
	code/web/public_php/admin/smarty/internals/core.write_compiled_include.php
	code/web/public_php/admin/smarty/internals/core.write_file.php
	code/web/public_php/admin/smarty/plugins/block.textformat.php
	code/web/public_php/admin/smarty/plugins/compiler.assign.php
	code/web/public_php/admin/smarty/plugins/function.assign_debug_info.php
	code/web/public_php/admin/smarty/plugins/function.config_load.php
	code/web/public_php/admin/smarty/plugins/function.counter.php
	code/web/public_php/admin/smarty/plugins/function.cycle.php
	code/web/public_php/admin/smarty/plugins/function.eval.php
	code/web/public_php/admin/smarty/plugins/function.fetch.php
	code/web/public_php/admin/smarty/plugins/function.html_image.php
	code/web/public_php/admin/smarty/plugins/function.html_options.php
	code/web/public_php/admin/smarty/plugins/function.html_radios.php
	code/web/public_php/admin/smarty/plugins/function.html_select_date.php
	code/web/public_php/admin/smarty/plugins/function.html_select_time.php
	code/web/public_php/admin/smarty/plugins/function.html_table.php
	code/web/public_php/admin/smarty/plugins/function.mailto.php
	code/web/public_php/admin/smarty/plugins/function.math.php
	code/web/public_php/admin/smarty/plugins/function.popup.php
	code/web/public_php/admin/smarty/plugins/function.popup_init.php
	code/web/public_php/admin/smarty/plugins/modifier.capitalize.php
	code/web/public_php/admin/smarty/plugins/modifier.count_characters.php
	code/web/public_php/admin/smarty/plugins/modifier.count_paragraphs.php
	code/web/public_php/admin/smarty/plugins/modifier.count_sentences.php
	code/web/public_php/admin/smarty/plugins/modifier.count_words.php
	code/web/public_php/admin/smarty/plugins/modifier.date_format.php
	code/web/public_php/admin/smarty/plugins/modifier.debug_print_var.php
	code/web/public_php/admin/smarty/plugins/modifier.default.php
	code/web/public_php/admin/smarty/plugins/modifier.escape.php
	code/web/public_php/admin/smarty/plugins/modifier.indent.php
	code/web/public_php/admin/smarty/plugins/modifier.lower.php
	code/web/public_php/admin/smarty/plugins/modifier.regex_replace.php
	code/web/public_php/admin/smarty/plugins/modifier.replace.php
	code/web/public_php/admin/smarty/plugins/modifier.spacify.php
	code/web/public_php/admin/smarty/plugins/modifier.string_format.php
	code/web/public_php/admin/smarty/plugins/modifier.strip_tags.php
	code/web/public_php/admin/smarty/plugins/modifier.truncate.php
	code/web/public_php/admin/smarty/plugins/modifier.upper.php
	code/web/public_php/admin/smarty/plugins/modifier.wordwrap.php
	code/web/public_php/admin/smarty/plugins/outputfilter.trimwhitespace.php
	code/web/public_php/admin/smarty/plugins/shared.escape_special_chars.php
	code/web/public_php/admin/smarty/plugins/shared.make_timestamp.php
	code/web/public_php/admin/templates/default/index.tpl
	code/web/public_php/admin/templates/default/index_login.tpl
	code/web/public_php/admin/templates/default/tool_actions.tpl
	code/web/public_php/admin/templates/default/tool_administration_applications.tpl
	code/web/public_php/admin/templates/default/tool_administration_domains.tpl
	code/web/public_php/admin/templates/default/tool_administration_groups.tpl
	code/web/public_php/admin/templates/default/tool_administration_logs.tpl
	code/web/public_php/admin/templates/default/tool_administration_restarts.tpl
	code/web/public_php/admin/templates/default/tool_administration_shards.tpl
	code/web/public_php/admin/templates/default/tool_administration_users.tpl
	code/web/public_php/admin/templates/default/tool_graphs.tpl
	code/web/public_php/admin/templates/default/tool_graphs_ccu.tpl
	code/web/public_php/admin/templates/default/tool_graphs_hires.tpl
	code/web/public_php/admin/templates/default/tool_graphs_tech.tpl
	code/web/public_php/admin/templates/default/tool_notes.tpl
	code/web/public_php/admin/templates/default_c/placeholder
	code/web/public_php/admin/tool_administration.php
	code/web/public_php/admin/tool_graphs.php
	code/web/public_php/admin/tool_guild_locator.php
	code/web/public_php/admin/tool_player_locator.php
	code/web/public_php/admin/tool_preferences.php
	code/web/public_php/ams/autoload/webusers.php
	code/web/public_php/ams/cache/placeholder
	code/web/public_php/ams/configs/ams_lib.conf
	code/web/public_php/ams/cron/mail_cron.php
	code/web/public_php/ams/cron/sync_cron.php
	code/web/public_php/ams/css/animate.min.css
	code/web/public_php/ams/css/bootstrap-cerulean.css
	code/web/public_php/ams/css/bootstrap-cerulean.min.css
	code/web/public_php/ams/css/bootstrap-classic.css
	code/web/public_php/ams/css/bootstrap-classic.min.css
	code/web/public_php/ams/css/bootstrap-cyborg.css
	code/web/public_php/ams/css/bootstrap-cyborg.min.css
	code/web/public_php/ams/css/bootstrap-darkly.min.css
	code/web/public_php/ams/css/bootstrap-journal.css
	code/web/public_php/ams/css/bootstrap-lumen.min.css
	code/web/public_php/ams/css/bootstrap-redy.css
	code/web/public_php/ams/css/bootstrap-responsive.css
	code/web/public_php/ams/css/bootstrap-responsive.min.css
	code/web/public_php/ams/css/bootstrap-simplex.css
	code/web/public_php/ams/css/bootstrap-simplex.min.css
	code/web/public_php/ams/css/bootstrap-slate.css
	code/web/public_php/ams/css/bootstrap-slate.min.css
	code/web/public_php/ams/css/bootstrap-spacelab.css
	code/web/public_php/ams/css/bootstrap-spacelab.min.css
	code/web/public_php/ams/css/bootstrap-united.css
	code/web/public_php/ams/css/bootstrap-united.min.css
	code/web/public_php/ams/css/charisma-app.css
	code/web/public_php/ams/css/chosen.css
	code/web/public_php/ams/css/colorbox.css
	code/web/public_php/ams/css/custom.css
	code/web/public_php/ams/css/elfinder.min.css
	code/web/public_php/ams/css/elfinder.theme.css
	code/web/public_php/ams/css/fullcalendar.css
	code/web/public_php/ams/css/fullcalendar.print.css
	code/web/public_php/ams/css/jquery-ui-1.8.21.custom.css
	code/web/public_php/ams/css/jquery.cleditor.css
	code/web/public_php/ams/css/jquery.iphone.toggle.css
	code/web/public_php/ams/css/jquery.noty.css
	code/web/public_php/ams/css/noty_theme_default.css
	code/web/public_php/ams/css/opa-icons.css
	code/web/public_php/ams/css/uniform.default.css
	code/web/public_php/ams/css/uploadify.css
	code/web/public_php/ams/doc/assets/images/html_structure.png
	code/web/public_php/ams/doc/assets/images/image_1.png
	code/web/public_php/ams/doc/css/documenter_style.css
	code/web/public_php/ams/doc/css/img/info.png
	code/web/public_php/ams/doc/css/img/pre_bg.png
	code/web/public_php/ams/doc/css/img/warning.png
	code/web/public_php/ams/doc/favicon.ico
	code/web/public_php/ams/doc/index.html
	code/web/public_php/ams/doc/js/jquery.1.6.4.js
	code/web/public_php/ams/doc/js/jquery.easing.js
	code/web/public_php/ams/doc/js/jquery.scrollTo-1.4.2-min.js
	code/web/public_php/ams/doc/js/script.js
	code/web/public_php/ams/files/.htaccess
	code/web/public_php/ams/files/index.html
	code/web/public_php/ams/fonts/glyphicons-halflings-regular.eot
	code/web/public_php/ams/fonts/glyphicons-halflings-regular.svg
	code/web/public_php/ams/fonts/glyphicons-halflings-regular.ttf
	code/web/public_php/ams/fonts/glyphicons-halflings-regular.woff
	code/web/public_php/ams/func/activate_plugin.php
	code/web/public_php/ams/func/add_sgroup.php
	code/web/public_php/ams/func/add_user.php
	code/web/public_php/ams/func/add_user_to_sgroup.php
	code/web/public_php/ams/func/change_info.php
	code/web/public_php/ams/func/change_mail.php
	code/web/public_php/ams/func/change_password.php
	code/web/public_php/ams/func/change_receivemail.php
	code/web/public_php/ams/func/create_ticket.php
	code/web/public_php/ams/func/deactivate_plugin.php
	code/web/public_php/ams/func/delete_plugin.php
	code/web/public_php/ams/func/forgot_password.php
	code/web/public_php/ams/func/install_plugin.php
	code/web/public_php/ams/func/login.php
	code/web/public_php/ams/func/modify_email_of_sgroup.php
	code/web/public_php/ams/func/reply_on_ticket.php
	code/web/public_php/ams/func/reset_password.php
	code/web/public_php/ams/func/update_plugin.php
	code/web/public_php/ams/func/upload.php
	code/web/public_php/ams/func/userRegistration.php
	code/web/public_php/ams/img/ajax-loaders/ajax-loader-1.gif
	code/web/public_php/ams/img/ajax-loaders/ajax-loader-2.gif
	code/web/public_php/ams/img/ajax-loaders/ajax-loader-3.gif
	code/web/public_php/ams/img/ajax-loaders/ajax-loader-4.gif
	code/web/public_php/ams/img/ajax-loaders/ajax-loader-5.gif
	code/web/public_php/ams/img/ajax-loaders/ajax-loader-6.gif
	code/web/public_php/ams/img/ajax-loaders/ajax-loader-7.gif
	code/web/public_php/ams/img/ajax-loaders/ajax-loader-8.gif
	code/web/public_php/ams/img/arrows-active.png
	code/web/public_php/ams/img/arrows-normal.png
	code/web/public_php/ams/img/bg-input-focus.png
	code/web/public_php/ams/img/bg-input.png
	code/web/public_php/ams/img/border.png
	code/web/public_php/ams/img/buttons.gif
	code/web/public_php/ams/img/cancel-off.png
	code/web/public_php/ams/img/cancel-on.png
	code/web/public_php/ams/img/chosen-sprite.png
	code/web/public_php/ams/img/controls.png
	code/web/public_php/ams/img/crop.gif
	code/web/public_php/ams/img/dialogs.png
	code/web/public_php/ams/img/en.png
	code/web/public_php/ams/img/error_bg.png
	code/web/public_php/ams/img/favicon.ico
	code/web/public_php/ams/img/fr.png
	code/web/public_php/ams/img/glyphicons-halflings-white.png
	code/web/public_php/ams/img/glyphicons-halflings.png
	code/web/public_php/ams/img/icons-big.png
	code/web/public_php/ams/img/icons-small.png
	code/web/public_php/ams/img/info/client.png
	code/web/public_php/ams/img/info/connect.png
	code/web/public_php/ams/img/info/cpuid.png
	code/web/public_php/ams/img/info/ht.png
	code/web/public_php/ams/img/info/local.png
	code/web/public_php/ams/img/info/mask.png
	code/web/public_php/ams/img/info/memory.png
	code/web/public_php/ams/img/info/nel.png
	code/web/public_php/ams/img/info/os.png
	code/web/public_php/ams/img/info/patch.png
	code/web/public_php/ams/img/info/position.png
	code/web/public_php/ams/img/info/processor.png
	code/web/public_php/ams/img/info/server.png
	code/web/public_php/ams/img/info/shard.png
	code/web/public_php/ams/img/info/user.png
	code/web/public_php/ams/img/info/view.png
	code/web/public_php/ams/img/iphone-style-checkboxes/off.png
	code/web/public_php/ams/img/iphone-style-checkboxes/on.png
	code/web/public_php/ams/img/iphone-style-checkboxes/slider.png
	code/web/public_php/ams/img/iphone-style-checkboxes/slider_center.png
	code/web/public_php/ams/img/iphone-style-checkboxes/slider_left.png
	code/web/public_php/ams/img/iphone-style-checkboxes/slider_right.png
	code/web/public_php/ams/img/loading.gif
	code/web/public_php/ams/img/loading_background.png
	code/web/public_php/ams/img/logo.png
	code/web/public_php/ams/img/logo20.png
	code/web/public_php/ams/img/mainlogo.png
	code/web/public_php/ams/img/opa-icons-black16.png
	code/web/public_php/ams/img/opa-icons-black32.png
	code/web/public_php/ams/img/opa-icons-blue16.png
	code/web/public_php/ams/img/opa-icons-blue32.png
	code/web/public_php/ams/img/opa-icons-color16.png
	code/web/public_php/ams/img/opa-icons-color32.png
	code/web/public_php/ams/img/opa-icons-darkgray16.png
	code/web/public_php/ams/img/opa-icons-darkgray32.png
	code/web/public_php/ams/img/opa-icons-gray16.png
	code/web/public_php/ams/img/opa-icons-gray32.png
	code/web/public_php/ams/img/opa-icons-green16.png
	code/web/public_php/ams/img/opa-icons-green32.png
	code/web/public_php/ams/img/opa-icons-orange16.png
	code/web/public_php/ams/img/opa-icons-orange32.png
	code/web/public_php/ams/img/opa-icons-red16.png
	code/web/public_php/ams/img/opa-icons-red32.png
	code/web/public_php/ams/img/opa-icons-white16.png
	code/web/public_php/ams/img/opa-icons-white32.png
	code/web/public_php/ams/img/progress.gif
	code/web/public_php/ams/img/qrcode.png
	code/web/public_php/ams/img/qrcode136.png
	code/web/public_php/ams/img/quicklook-bg.png
	code/web/public_php/ams/img/quicklook-icons.png
	code/web/public_php/ams/img/resize.png
	code/web/public_php/ams/img/ryzomcore.png
	code/web/public_php/ams/img/ryzomcore_166_62.png
	code/web/public_php/ams/img/ryzomlogo.psd
	code/web/public_php/ams/img/ryzomtop.png
	code/web/public_php/ams/img/spinner-mini.gif
	code/web/public_php/ams/img/sprite.png
	code/web/public_php/ams/img/star-half.png
	code/web/public_php/ams/img/star-off.png
	code/web/public_php/ams/img/star-on.png
	code/web/public_php/ams/img/thumb.png
	code/web/public_php/ams/img/toolbar.gif
	code/web/public_php/ams/img/toolbar.png
	code/web/public_php/ams/img/ui-bg_flat_0_aaaaaa_40x100.png
	code/web/public_php/ams/img/ui-bg_flat_75_ffffff_40x100.png
	code/web/public_php/ams/img/ui-bg_glass_55_fbf9ee_1x400.png
	code/web/public_php/ams/img/ui-bg_glass_65_ffffff_1x400.png
	code/web/public_php/ams/img/ui-bg_glass_75_dadada_1x400.png
	code/web/public_php/ams/img/ui-bg_glass_75_e6e6e6_1x400.png
	code/web/public_php/ams/img/ui-bg_glass_95_fef1ec_1x400.png
	code/web/public_php/ams/img/ui-bg_highlight-soft_75_cccccc_1x100.png
	code/web/public_php/ams/img/ui-icons_222222_256x240.png
	code/web/public_php/ams/img/ui-icons_2e83ff_256x240.png
	code/web/public_php/ams/img/ui-icons_454545_256x240.png
	code/web/public_php/ams/img/ui-icons_888888_256x240.png
	code/web/public_php/ams/img/ui-icons_cd0a0a_256x240.png
	code/web/public_php/ams/img/uploadify-cancel.png
	code/web/public_php/ams/inc/change_permission.php
	code/web/public_php/ams/inc/createticket.php
	code/web/public_php/ams/inc/dashboard.php
	code/web/public_php/ams/inc/error.php
	code/web/public_php/ams/inc/forgot_password.php
	code/web/public_php/ams/inc/login.php
	code/web/public_php/ams/inc/logout.php
	code/web/public_php/ams/inc/plugins.php
	code/web/public_php/ams/inc/plugins_update.php
	code/web/public_php/ams/inc/register.php
	code/web/public_php/ams/inc/reset_password.php
	code/web/public_php/ams/inc/settings.php
	code/web/public_php/ams/inc/sgroup_list.php
	code/web/public_php/ams/inc/show_queue.php
	code/web/public_php/ams/inc/show_reply.php
	code/web/public_php/ams/inc/show_sgroup.php
	code/web/public_php/ams/inc/show_ticket.php
	code/web/public_php/ams/inc/show_ticket_info.php
	code/web/public_php/ams/inc/show_ticket_log.php
	code/web/public_php/ams/inc/show_user.php
	code/web/public_php/ams/inc/syncing.php
	code/web/public_php/ams/inc/userlist.php
	code/web/public_php/ams/index.php
	code/web/public_php/ams/js/bootstrap-alert.js
	code/web/public_php/ams/js/bootstrap-button.js
	code/web/public_php/ams/js/bootstrap-carousel.js
	code/web/public_php/ams/js/bootstrap-collapse.js
	code/web/public_php/ams/js/bootstrap-dropdown.js
	code/web/public_php/ams/js/bootstrap-modal.js
	code/web/public_php/ams/js/bootstrap-popover.js
	code/web/public_php/ams/js/bootstrap-scrollspy.js
	code/web/public_php/ams/js/bootstrap-tab.js
	code/web/public_php/ams/js/bootstrap-toggle.js
	code/web/public_php/ams/js/bootstrap-tooltip.js
	code/web/public_php/ams/js/bootstrap-tour.js
	code/web/public_php/ams/js/bootstrap-transition.js
	code/web/public_php/ams/js/bootstrap-typeahead.js
	code/web/public_php/ams/js/charisma.js
	code/web/public_php/ams/js/custom.js
	code/web/public_php/ams/js/excanvas.js
	code/web/public_php/ams/js/fullcalendar.min.js
	code/web/public_php/ams/js/help.js
	code/web/public_php/ams/js/init-chart.js
	code/web/public_php/ams/js/jquery-1.7.2.min.js
	code/web/public_php/ams/js/jquery-ui-1.8.21.custom.min.js
	code/web/public_php/ams/js/jquery.autogrow-textarea.js
	code/web/public_php/ams/js/jquery.chosen.min.js
	code/web/public_php/ams/js/jquery.cleditor.min.js
	code/web/public_php/ams/js/jquery.colorbox.min.js
	code/web/public_php/ams/js/jquery.cookie.js
	code/web/public_php/ams/js/jquery.dataTables.min.js
	code/web/public_php/ams/js/jquery.elfinder.min.js
	code/web/public_php/ams/js/jquery.flot.min.js
	code/web/public_php/ams/js/jquery.flot.pie.min.js
	code/web/public_php/ams/js/jquery.flot.resize.min.js
	code/web/public_php/ams/js/jquery.flot.stack.js
	code/web/public_php/ams/js/jquery.history.js
	code/web/public_php/ams/js/jquery.iphone.toggle.js
	code/web/public_php/ams/js/jquery.js
	code/web/public_php/ams/js/jquery.min.js
	code/web/public_php/ams/js/jquery.noty.js
	code/web/public_php/ams/js/jquery.raty.min.js
	code/web/public_php/ams/js/jquery.uniform.min.js
	code/web/public_php/ams/js/jquery.uploadify-3.1.js
	code/web/public_php/ams/js/jquery.uploadify-3.1.min.js
	code/web/public_php/ams/js/masonry.pkgd.min.js
	code/web/public_php/ams/misc/check-exists.php
	code/web/public_php/ams/misc/elfinder-connector/MySQLStorage.sql
	code/web/public_php/ams/misc/elfinder-connector/connector.php
	code/web/public_php/ams/misc/elfinder-connector/elFinder.class.php
	code/web/public_php/ams/misc/elfinder-connector/elFinderConnector.class.php
	code/web/public_php/ams/misc/elfinder-connector/elFinderVolumeDriver.class.php
	code/web/public_php/ams/misc/elfinder-connector/elFinderVolumeLocalFileSystem.class.php
	code/web/public_php/ams/misc/elfinder-connector/elFinderVolumeMySQL.class.php
	code/web/public_php/ams/misc/elfinder-connector/mime.types
	code/web/public_php/ams/misc/uploadify.php
	code/web/public_php/ams/misc/uploadify.swf
	code/web/public_php/ams/sql/DBScheme.png
	code/web/public_php/ams/sql/db.sql
	code/web/public_php/ams/sql/importusers.php
	code/web/public_php/ams/sql/ticketsql.sql
	code/web/public_php/ams/sql/ticketsystemmodel.mwb
	code/web/public_php/ams/templates/README.md
	code/web/public_php/ams/templates/createticket.tpl
	code/web/public_php/ams/templates/dashboard.tpl
	code/web/public_php/ams/templates/error.tpl
	code/web/public_php/ams/templates/forgot_password.tpl
	code/web/public_php/ams/templates/homebackup.tpl
	code/web/public_php/ams/templates/install.tpl
	code/web/public_php/ams/templates/install_plugin.tpl
	code/web/public_php/ams/templates/layout.tpl
	code/web/public_php/ams/templates/layout_admin.tpl
	code/web/public_php/ams/templates/layout_mod.tpl
	code/web/public_php/ams/templates/layout_plugin.tpl
	code/web/public_php/ams/templates/layout_user.tpl
	code/web/public_php/ams/templates/license.txt
	code/web/public_php/ams/templates/login.tpl
	code/web/public_php/ams/templates/logout.tpl
	code/web/public_php/ams/templates/plugins.tpl
	code/web/public_php/ams/templates/plugins_update.tpl
	code/web/public_php/ams/templates/register.tpl
	code/web/public_php/ams/templates/register_feedback.tpl
	code/web/public_php/ams/templates/reset_password.tpl
	code/web/public_php/ams/templates/reset_success.tpl
	code/web/public_php/ams/templates/settings.tpl
	code/web/public_php/ams/templates/sgroup_list.tpl
	code/web/public_php/ams/templates/show_queue.tpl
	code/web/public_php/ams/templates/show_reply.tpl
	code/web/public_php/ams/templates/show_sgroup.tpl
	code/web/public_php/ams/templates/show_ticket.tpl
	code/web/public_php/ams/templates/show_ticket_info.tpl
	code/web/public_php/ams/templates/show_ticket_log.tpl
	code/web/public_php/ams/templates/show_user.tpl
	code/web/public_php/ams/templates/syncing.tpl
	code/web/public_php/ams/templates/userlist.tpl
	code/web/public_php/ams/templates_c/placeholder
	code/web/public_php/api/client/auth.php
	code/web/public_php/api/client/config.php.default
	code/web/public_php/api/client/time.php
	code/web/public_php/api/client/user.php
	code/web/public_php/api/client/utils.php
	code/web/public_php/api/common/actionPage.php
	code/web/public_php/api/common/auth.php
	code/web/public_php/api/common/bbCode.php
	code/web/public_php/api/common/config.php.default
	code/web/public_php/api/common/db_defs.php
	code/web/public_php/api/common/db_lib.php
	code/web/public_php/api/common/dfm.php
	code/web/public_php/api/common/logger.php
	code/web/public_php/api/common/render.php
	code/web/public_php/api/common/ryform.php
	code/web/public_php/api/common/ryformBases.php
	code/web/public_php/api/common/time.php
	code/web/public_php/api/common/user.php
	code/web/public_php/api/common/utils.php
	code/web/public_php/api/common/xml_utils.php
	code/web/public_php/api/data/css/ryzom_iphone.css
	code/web/public_php/api/data/css/ryzom_ui.css
	code/web/public_php/api/data/css/skin_b.gif
	code/web/public_php/api/data/css/skin_bl.gif
	code/web/public_php/api/data/css/skin_blank.png
	code/web/public_php/api/data/css/skin_blank_inner.png
	code/web/public_php/api/data/css/skin_br.gif
	code/web/public_php/api/data/css/skin_header_l.gif
	code/web/public_php/api/data/css/skin_header_m.gif
	code/web/public_php/api/data/css/skin_header_r.gif
	code/web/public_php/api/data/css/skin_l.gif
	code/web/public_php/api/data/css/skin_r.gif
	code/web/public_php/api/data/css/skin_t.gif
	code/web/public_php/api/data/css/skin_tl.gif
	code/web/public_php/api/data/css/skin_tr.gif
	code/web/public_php/api/data/icons/add_app.png
	code/web/public_php/api/data/icons/edit.png
	code/web/public_php/api/data/icons/edit_16.png
	code/web/public_php/api/data/icons/no_action.png
	code/web/public_php/api/data/icons/spe_com.png
	code/web/public_php/api/data/img/backgrounds/parchemin.png
	code/web/public_php/api/data/img/bg.jpg
	code/web/public_php/api/data/img/bordure.png
	code/web/public_php/api/data/img/lang/de.png
	code/web/public_php/api/data/img/lang/en.png
	code/web/public_php/api/data/img/lang/es.png
	code/web/public_php/api/data/img/lang/fr.png
	code/web/public_php/api/data/img/lang/ru.png
	code/web/public_php/api/data/img/logo.gif
	code/web/public_php/api/data/js/combobox.js
	code/web/public_php/api/data/js/jquery-1.7.1.js
	code/web/public_php/api/data/js/tab.js
	code/web/public_php/api/data/ryzom/guild_png/.htaccess
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_00_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_00_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_01_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_01_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_02_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_02_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_03_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_03_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_04_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_04_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_05_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_05_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_06_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_06_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_07_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_07_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_08_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_08_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_09_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_09_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_10_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_10_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_11_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_11_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_12_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_12_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_13_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_13_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_14_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_b_14_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_00_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_00_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_01_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_01_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_02_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_02_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_03_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_03_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_04_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_04_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_05_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_05_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_06_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_06_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_07_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_07_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_08_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_08_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_09_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_09_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_10_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_10_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_11_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_11_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_12_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_12_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_13_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_13_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_14_1.png
	code/web/public_php/api/data/ryzom/guild_png/guild_back_s_14_2.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_00.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_01.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_02.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_03.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_04.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_05.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_06.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_07.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_08.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_09.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_10.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_11.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_12.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_13.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_14.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_15.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_16.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_17.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_18.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_19.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_20.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_21.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_22.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_23.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_24.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_25.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_26.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_27.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_28.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_29.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_30.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_31.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_32.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_33.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_34.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_35.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_36.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_37.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_38.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_39.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_40.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_41.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_42.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_b_43.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_00.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_01.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_02.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_03.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_04.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_05.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_06.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_07.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_08.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_09.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_10.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_11.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_12.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_13.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_14.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_15.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_16.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_17.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_18.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_19.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_20.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_21.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_22.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_23.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_24.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_25.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_26.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_27.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_28.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_29.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_30.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_31.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_32.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_33.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_34.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_35.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_36.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_37.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_38.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_39.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_40.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_41.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_42.png
	code/web/public_php/api/data/ryzom/guild_png/guild_symbol_s_43.png
	code/web/public_php/api/data/ryzom/interface/1h_over.png
	code/web/public_php/api/data/ryzom/interface/2h_over.png
	code/web/public_php/api/data/ryzom/interface/am_logo.png
	code/web/public_php/api/data/ryzom/interface/ar_armpad.png
	code/web/public_php/api/data/ryzom/interface/ar_armpad_mask.png
	code/web/public_php/api/data/ryzom/interface/ar_botte.png
	code/web/public_php/api/data/ryzom/interface/ar_botte_mask.png
	code/web/public_php/api/data/ryzom/interface/ar_gilet.png
	code/web/public_php/api/data/ryzom/interface/ar_gilet_mask.png
	code/web/public_php/api/data/ryzom/interface/ar_hand.png
	code/web/public_php/api/data/ryzom/interface/ar_hand_mask.png
	code/web/public_php/api/data/ryzom/interface/ar_helmet.png
	code/web/public_php/api/data/ryzom/interface/ar_helmet_mask.png
	code/web/public_php/api/data/ryzom/interface/ar_pantabotte.png
	code/web/public_php/api/data/ryzom/interface/ar_pantabotte_mask.png
	code/web/public_php/api/data/ryzom/interface/asc_exit.png
	code/web/public_php/api/data/ryzom/interface/asc_rolemastercraft.png
	code/web/public_php/api/data/ryzom/interface/asc_rolemasterfight.png
	code/web/public_php/api/data/ryzom/interface/asc_rolemasterharvest.png
	code/web/public_php/api/data/ryzom/interface/asc_rolemastermagic.png
	code/web/public_php/api/data/ryzom/interface/asc_unknown.png
	code/web/public_php/api/data/ryzom/interface/bg_downloader.png
	code/web/public_php/api/data/ryzom/interface/bg_empty.png
	code/web/public_php/api/data/ryzom/interface/bk_aura.png
	code/web/public_php/api/data/ryzom/interface/bk_conso.png
	code/web/public_php/api/data/ryzom/interface/bk_consommable.png
	code/web/public_php/api/data/ryzom/interface/bk_fyros.png
	code/web/public_php/api/data/ryzom/interface/bk_fyros_brick.png
	code/web/public_php/api/data/ryzom/interface/bk_generic.png
	code/web/public_php/api/data/ryzom/interface/bk_generic_brick.png
	code/web/public_php/api/data/ryzom/interface/bk_goo.png
	code/web/public_php/api/data/ryzom/interface/bk_guild.png
	code/web/public_php/api/data/ryzom/interface/bk_horde.png
	code/web/public_php/api/data/ryzom/interface/bk_kami.png
	code/web/public_php/api/data/ryzom/interface/bk_karavan.png
	code/web/public_php/api/data/ryzom/interface/bk_magie_noire_brick.png
	code/web/public_php/api/data/ryzom/interface/bk_matis.png
	code/web/public_php/api/data/ryzom/interface/bk_matis_brick.png
	code/web/public_php/api/data/ryzom/interface/bk_mission.png
	code/web/public_php/api/data/ryzom/interface/bk_mission2.png
	code/web/public_php/api/data/ryzom/interface/bk_outpost.png
	code/web/public_php/api/data/ryzom/interface/bk_outpost_brick.png
	code/web/public_php/api/data/ryzom/interface/bk_power.png
	code/web/public_php/api/data/ryzom/interface/bk_primes.png
	code/web/public_php/api/data/ryzom/interface/bk_service.png
	code/web/public_php/api/data/ryzom/interface/bk_training.png
	code/web/public_php/api/data/ryzom/interface/bk_tryker.png
	code/web/public_php/api/data/ryzom/interface/bk_tryker_brick.png
	code/web/public_php/api/data/ryzom/interface/bk_zorai.png
	code/web/public_php/api/data/ryzom/interface/bk_zorai_brick.png
	code/web/public_php/api/data/ryzom/interface/brick_default.png
	code/web/public_php/api/data/ryzom/interface/building_state_24x24.png
	code/web/public_php/api/data/ryzom/interface/cb_main_nue.png
	code/web/public_php/api/data/ryzom/interface/ch_back.png
	code/web/public_php/api/data/ryzom/interface/charge.png
	code/web/public_php/api/data/ryzom/interface/clef.png
	code/web/public_php/api/data/ryzom/interface/conso_branche.png
	code/web/public_php/api/data/ryzom/interface/conso_branche_mask.png
	code/web/public_php/api/data/ryzom/interface/conso_fleur.png
	code/web/public_php/api/data/ryzom/interface/conso_fleur_mask.png
	code/web/public_php/api/data/ryzom/interface/conso_grappe.png
	code/web/public_php/api/data/ryzom/interface/conso_grappe_mask.png
	code/web/public_php/api/data/ryzom/interface/conso_nectar.png
	code/web/public_php/api/data/ryzom/interface/conso_nectar_mask.png
	code/web/public_php/api/data/ryzom/interface/construction.png
	code/web/public_php/api/data/ryzom/interface/cp_back.png
	code/web/public_php/api/data/ryzom/interface/cp_over_break.png
	code/web/public_php/api/data/ryzom/interface/cp_over_less.png
	code/web/public_php/api/data/ryzom/interface/cp_over_more.png
	code/web/public_php/api/data/ryzom/interface/cp_over_opening.png
	code/web/public_php/api/data/ryzom/interface/cp_over_opening_2.png
	code/web/public_php/api/data/ryzom/interface/cristal_ammo.png
	code/web/public_php/api/data/ryzom/interface/cristal_generic.png
	code/web/public_php/api/data/ryzom/interface/cristal_spell.png
	code/web/public_php/api/data/ryzom/interface/ef_back.png
	code/web/public_php/api/data/ryzom/interface/ef_over_break.png
	code/web/public_php/api/data/ryzom/interface/ef_over_less.png
	code/web/public_php/api/data/ryzom/interface/ef_over_more.png
	code/web/public_php/api/data/ryzom/interface/fo_back.png
	code/web/public_php/api/data/ryzom/interface/fo_over.png
	code/web/public_php/api/data/ryzom/interface/fp_ammo.png
	code/web/public_php/api/data/ryzom/interface/fp_armor.png
	code/web/public_php/api/data/ryzom/interface/fp_building.png
	code/web/public_php/api/data/ryzom/interface/fp_jewel.png
	code/web/public_php/api/data/ryzom/interface/fp_melee.png
	code/web/public_php/api/data/ryzom/interface/fp_over.png
	code/web/public_php/api/data/ryzom/interface/fp_range.png
	code/web/public_php/api/data/ryzom/interface/fp_shield.png
	code/web/public_php/api/data/ryzom/interface/fp_tools.png
	code/web/public_php/api/data/ryzom/interface/ge_mission_outpost_townhall.png
	code/web/public_php/api/data/ryzom/interface/ico_absorb_damage.png
	code/web/public_php/api/data/ryzom/interface/ico_accurate.png
	code/web/public_php/api/data/ryzom/interface/ico_acid.png
	code/web/public_php/api/data/ryzom/interface/ico_aim.png
	code/web/public_php/api/data/ryzom/interface/ico_aim_bird_wings.png
	code/web/public_php/api/data/ryzom/interface/ico_aim_flying_kitin_abdomen.png
	code/web/public_php/api/data/ryzom/interface/ico_aim_homin_arms.png
	code/web/public_php/api/data/ryzom/interface/ico_aim_homin_chest.png
	code/web/public_php/api/data/ryzom/interface/ico_aim_homin_feet.png
	code/web/public_php/api/data/ryzom/interface/ico_aim_homin_feint.png
	code/web/public_php/api/data/ryzom/interface/ico_aim_homin_hands.png
	code/web/public_php/api/data/ryzom/interface/ico_aim_homin_head.png
	code/web/public_php/api/data/ryzom/interface/ico_aim_homin_legs.png
	code/web/public_php/api/data/ryzom/interface/ico_aim_kitin_head.png
	code/web/public_php/api/data/ryzom/interface/ico_amande.png
	code/web/public_php/api/data/ryzom/interface/ico_ammo_bullet.png
	code/web/public_php/api/data/ryzom/interface/ico_ammo_jacket.png
	code/web/public_php/api/data/ryzom/interface/ico_angle.png
	code/web/public_php/api/data/ryzom/interface/ico_anti_magic_shield.png
	code/web/public_php/api/data/ryzom/interface/ico_armor.png
	code/web/public_php/api/data/ryzom/interface/ico_armor_clip.png
	code/web/public_php/api/data/ryzom/interface/ico_armor_heavy.png
	code/web/public_php/api/data/ryzom/interface/ico_armor_kitin.png
	code/web/public_php/api/data/ryzom/interface/ico_armor_light.png
	code/web/public_php/api/data/ryzom/interface/ico_armor_medium.png
	code/web/public_php/api/data/ryzom/interface/ico_armor_penalty.png
	code/web/public_php/api/data/ryzom/interface/ico_armor_shell.png
	code/web/public_php/api/data/ryzom/interface/ico_atys.png
	code/web/public_php/api/data/ryzom/interface/ico_atysian.png
	code/web/public_php/api/data/ryzom/interface/ico_balance_hp.png
	code/web/public_php/api/data/ryzom/interface/ico_barrel.png
	code/web/public_php/api/data/ryzom/interface/ico_bash.png
	code/web/public_php/api/data/ryzom/interface/ico_berserk.png
	code/web/public_php/api/data/ryzom/interface/ico_blade.png
	code/web/public_php/api/data/ryzom/interface/ico_bleeding.png
	code/web/public_php/api/data/ryzom/interface/ico_blind.png
	code/web/public_php/api/data/ryzom/interface/ico_blunt.png
	code/web/public_php/api/data/ryzom/interface/ico_bomb.png
	code/web/public_php/api/data/ryzom/interface/ico_cataliseur_xp.png
	code/web/public_php/api/data/ryzom/interface/ico_celestial.png
	code/web/public_php/api/data/ryzom/interface/ico_circular_attack.png
	code/web/public_php/api/data/ryzom/interface/ico_clothes.png
	code/web/public_php/api/data/ryzom/interface/ico_cold.png
	code/web/public_php/api/data/ryzom/interface/ico_concentration.png
	code/web/public_php/api/data/ryzom/interface/ico_consommable_over.png
	code/web/public_php/api/data/ryzom/interface/ico_constitution.png
	code/web/public_php/api/data/ryzom/interface/ico_counterweight.png
	code/web/public_php/api/data/ryzom/interface/ico_craft_buff.png
	code/web/public_php/api/data/ryzom/interface/ico_create_sapload.png
	code/web/public_php/api/data/ryzom/interface/ico_curse.png
	code/web/public_php/api/data/ryzom/interface/ico_debuff.png
	code/web/public_php/api/data/ryzom/interface/ico_debuff_resist.png
	code/web/public_php/api/data/ryzom/interface/ico_debuff_skill.png
	code/web/public_php/api/data/ryzom/interface/ico_desert.png
	code/web/public_php/api/data/ryzom/interface/ico_dexterity.png
	code/web/public_php/api/data/ryzom/interface/ico_disarm.png
	code/web/public_php/api/data/ryzom/interface/ico_dodge.png
	code/web/public_php/api/data/ryzom/interface/ico_dot.png
	code/web/public_php/api/data/ryzom/interface/ico_durability.png
	code/web/public_php/api/data/ryzom/interface/ico_electric.png
	code/web/public_php/api/data/ryzom/interface/ico_explosif.png
	code/web/public_php/api/data/ryzom/interface/ico_extracting.png
	code/web/public_php/api/data/ryzom/interface/ico_fear.png
	code/web/public_php/api/data/ryzom/interface/ico_feint.png
	code/web/public_php/api/data/ryzom/interface/ico_fire.png
	code/web/public_php/api/data/ryzom/interface/ico_firing_pin.png
	code/web/public_php/api/data/ryzom/interface/ico_fleur_carac_1.png
	code/web/public_php/api/data/ryzom/interface/ico_fleur_carac_1_mask.png
	code/web/public_php/api/data/ryzom/interface/ico_fleur_carac_2.png
	code/web/public_php/api/data/ryzom/interface/ico_fleur_carac_2_mask.png
	code/web/public_php/api/data/ryzom/interface/ico_fleur_carac_3.png
	code/web/public_php/api/data/ryzom/interface/ico_fleur_carac_3_mask.png
	code/web/public_php/api/data/ryzom/interface/ico_focus.png
	code/web/public_php/api/data/ryzom/interface/ico_forage_buff.png
	code/web/public_php/api/data/ryzom/interface/ico_forbid_item.png
	code/web/public_php/api/data/ryzom/interface/ico_forest.png
	code/web/public_php/api/data/ryzom/interface/ico_foreuse.png
	code/web/public_php/api/data/ryzom/interface/ico_gardening.png
	code/web/public_php/api/data/ryzom/interface/ico_gentle.png
	code/web/public_php/api/data/ryzom/interface/ico_goo.png
	code/web/public_php/api/data/ryzom/interface/ico_gripp.png
	code/web/public_php/api/data/ryzom/interface/ico_haircolor.png
	code/web/public_php/api/data/ryzom/interface/ico_haircut.png
	code/web/public_php/api/data/ryzom/interface/ico_hammer.png
	code/web/public_php/api/data/ryzom/interface/ico_harmful.png
	code/web/public_php/api/data/ryzom/interface/ico_hatred.png
	code/web/public_php/api/data/ryzom/interface/ico_heal.png
	code/web/public_php/api/data/ryzom/interface/ico_hit_rate.png
	code/web/public_php/api/data/ryzom/interface/ico_incapacity.png
	code/web/public_php/api/data/ryzom/interface/ico_intelligence.png
	code/web/public_php/api/data/ryzom/interface/ico_interrupt.png
	code/web/public_php/api/data/ryzom/interface/ico_invulnerability.png
	code/web/public_php/api/data/ryzom/interface/ico_jewel_stone.png
	code/web/public_php/api/data/ryzom/interface/ico_jewel_stone_support.png
	code/web/public_php/api/data/ryzom/interface/ico_jungle.png
	code/web/public_php/api/data/ryzom/interface/ico_lacustre.png
	code/web/public_php/api/data/ryzom/interface/ico_landmark_bonus.png
	code/web/public_php/api/data/ryzom/interface/ico_level.png
	code/web/public_php/api/data/ryzom/interface/ico_lining.png
	code/web/public_php/api/data/ryzom/interface/ico_location.png
	code/web/public_php/api/data/ryzom/interface/ico_madness.png
	code/web/public_php/api/data/ryzom/interface/ico_magic.png
	code/web/public_php/api/data/ryzom/interface/ico_magic_action_buff.png
	code/web/public_php/api/data/ryzom/interface/ico_magic_focus.png
	code/web/public_php/api/data/ryzom/interface/ico_magic_target_buff.png
	code/web/public_php/api/data/ryzom/interface/ico_melee_action_buff.png
	code/web/public_php/api/data/ryzom/interface/ico_melee_target_buff.png
	code/web/public_php/api/data/ryzom/interface/ico_mental.png
	code/web/public_php/api/data/ryzom/interface/ico_metabolism.png
	code/web/public_php/api/data/ryzom/interface/ico_mezz.png
	code/web/public_php/api/data/ryzom/interface/ico_misfortune.png
	code/web/public_php/api/data/ryzom/interface/ico_mission_art_fyros.png
	code/web/public_php/api/data/ryzom/interface/ico_mission_art_matis.png
	code/web/public_php/api/data/ryzom/interface/ico_mission_art_tryker.png
	code/web/public_php/api/data/ryzom/interface/ico_mission_art_zorai.png
	code/web/public_php/api/data/ryzom/interface/ico_mission_barrel.png
	code/web/public_php/api/data/ryzom/interface/ico_mission_bottle.png
	code/web/public_php/api/data/ryzom/interface/ico_mission_casket.png
	code/web/public_php/api/data/ryzom/interface/ico_mission_medicine.png
	code/web/public_php/api/data/ryzom/interface/ico_mission_message.png
	code/web/public_php/api/data/ryzom/interface/ico_mission_package.png
	code/web/public_php/api/data/ryzom/interface/ico_mission_pot.png
	code/web/public_php/api/data/ryzom/interface/ico_mission_purse.png
	code/web/public_php/api/data/ryzom/interface/ico_move.png
	code/web/public_php/api/data/ryzom/interface/ico_multi_fight.png
	code/web/public_php/api/data/ryzom/interface/ico_multiple_spots.png
	code/web/public_php/api/data/ryzom/interface/ico_noix.png
	code/web/public_php/api/data/ryzom/interface/ico_opening_hit.png
	code/web/public_php/api/data/ryzom/interface/ico_over_autumn.png
	code/web/public_php/api/data/ryzom/interface/ico_over_degenerated.png
	code/web/public_php/api/data/ryzom/interface/ico_over_fauna.png
	code/web/public_php/api/data/ryzom/interface/ico_over_flora.png
	code/web/public_php/api/data/ryzom/interface/ico_over_hit_arms.png
	code/web/public_php/api/data/ryzom/interface/ico_over_hit_chest.png
	code/web/public_php/api/data/ryzom/interface/ico_over_hit_feet.png
	code/web/public_php/api/data/ryzom/interface/ico_over_hit_feet_hands.png
	code/web/public_php/api/data/ryzom/interface/ico_over_hit_feet_head.png
	code/web/public_php/api/data/ryzom/interface/ico_over_hit_feet_x2.png
	code/web/public_php/api/data/ryzom/interface/ico_over_hit_feint_x3.png
	code/web/public_php/api/data/ryzom/interface/ico_over_hit_hands.png
	code/web/public_php/api/data/ryzom/interface/ico_over_hit_hands_chest.png
	code/web/public_php/api/data/ryzom/interface/ico_over_hit_hands_head.png
	code/web/public_php/api/data/ryzom/interface/ico_over_hit_head.png
	code/web/public_php/api/data/ryzom/interface/ico_over_hit_head_x3.png
	code/web/public_php/api/data/ryzom/interface/ico_over_hit_legs.png
	code/web/public_php/api/data/ryzom/interface/ico_over_homin.png
	code/web/public_php/api/data/ryzom/interface/ico_over_kitin.png
	code/web/public_php/api/data/ryzom/interface/ico_over_magic.png
	code/web/public_php/api/data/ryzom/interface/ico_over_melee.png
	code/web/public_php/api/data/ryzom/interface/ico_over_racial.png
	code/web/public_php/api/data/ryzom/interface/ico_over_range.png
	code/web/public_php/api/data/ryzom/interface/ico_over_special.png
	code/web/public_php/api/data/ryzom/interface/ico_over_spring.png
	code/web/public_php/api/data/ryzom/interface/ico_over_summer.png
	code/web/public_php/api/data/ryzom/interface/ico_over_winter.png
	code/web/public_php/api/data/ryzom/interface/ico_parry.png
	code/web/public_php/api/data/ryzom/interface/ico_piercing.png
	code/web/public_php/api/data/ryzom/interface/ico_pointe.png
	code/web/public_php/api/data/ryzom/interface/ico_poison.png
	code/web/public_php/api/data/ryzom/interface/ico_power.png
	code/web/public_php/api/data/ryzom/interface/ico_preservation.png
	code/web/public_php/api/data/ryzom/interface/ico_primal.png
	code/web/public_php/api/data/ryzom/interface/ico_prime_roots.png
	code/web/public_php/api/data/ryzom/interface/ico_private.png
	code/web/public_php/api/data/ryzom/interface/ico_prospecting.png
	code/web/public_php/api/data/ryzom/interface/ico_quality.png
	code/web/public_php/api/data/ryzom/interface/ico_racine.png
	code/web/public_php/api/data/ryzom/interface/ico_range.png
	code/web/public_php/api/data/ryzom/interface/ico_range_action_buff.png
	code/web/public_php/api/data/ryzom/interface/ico_range_target_buff.png
	code/web/public_php/api/data/ryzom/interface/ico_ricochet.png
	code/web/public_php/api/data/ryzom/interface/ico_root.png
	code/web/public_php/api/data/ryzom/interface/ico_rot.png
	code/web/public_php/api/data/ryzom/interface/ico_safe.png
	code/web/public_php/api/data/ryzom/interface/ico_sap.png
	code/web/public_php/api/data/ryzom/interface/ico_self_damage.png
	code/web/public_php/api/data/ryzom/interface/ico_shaft.png
	code/web/public_php/api/data/ryzom/interface/ico_shield_buff.png
	code/web/public_php/api/data/ryzom/interface/ico_shield_up.png
	code/web/public_php/api/data/ryzom/interface/ico_shielding.png
	code/web/public_php/api/data/ryzom/interface/ico_shockwave.png
	code/web/public_php/api/data/ryzom/interface/ico_sickness.png
	code/web/public_php/api/data/ryzom/interface/ico_slashing.png
	code/web/public_php/api/data/ryzom/interface/ico_slow.png
	code/web/public_php/api/data/ryzom/interface/ico_soft_spot.png
	code/web/public_php/api/data/ryzom/interface/ico_source_knowledge.png
	code/web/public_php/api/data/ryzom/interface/ico_source_time.png
	code/web/public_php/api/data/ryzom/interface/ico_speed.png
	code/web/public_php/api/data/ryzom/interface/ico_speeding_up.png
	code/web/public_php/api/data/ryzom/interface/ico_spell_break.png
	code/web/public_php/api/data/ryzom/interface/ico_spores.png
	code/web/public_php/api/data/ryzom/interface/ico_spray.png
	code/web/public_php/api/data/ryzom/interface/ico_spying.png
	code/web/public_php/api/data/ryzom/interface/ico_stamina.png
	code/web/public_php/api/data/ryzom/interface/ico_strength.png
	code/web/public_php/api/data/ryzom/interface/ico_stuffing.png
	code/web/public_php/api/data/ryzom/interface/ico_stunn.png
	code/web/public_php/api/data/ryzom/interface/ico_task_craft.png
	code/web/public_php/api/data/ryzom/interface/ico_task_done.png
	code/web/public_php/api/data/ryzom/interface/ico_task_failed.png
	code/web/public_php/api/data/ryzom/interface/ico_task_fight.png
	code/web/public_php/api/data/ryzom/interface/ico_task_forage.png
	code/web/public_php/api/data/ryzom/interface/ico_task_generic.png
	code/web/public_php/api/data/ryzom/interface/ico_task_generic_quart.png
	code/web/public_php/api/data/ryzom/interface/ico_task_guild.png
	code/web/public_php/api/data/ryzom/interface/ico_task_rite.png
	code/web/public_php/api/data/ryzom/interface/ico_task_travel.png
	code/web/public_php/api/data/ryzom/interface/ico_tatoo.png
	code/web/public_php/api/data/ryzom/interface/ico_taunt.png
	code/web/public_php/api/data/ryzom/interface/ico_time.png
	code/web/public_php/api/data/ryzom/interface/ico_time_bonus.png
	code/web/public_php/api/data/ryzom/interface/ico_tourbe.png
	code/web/public_php/api/data/ryzom/interface/ico_trigger.png
	code/web/public_php/api/data/ryzom/interface/ico_umbrella.png
	code/web/public_php/api/data/ryzom/interface/ico_use_enchantement.png
	code/web/public_php/api/data/ryzom/interface/ico_vampire.png
	code/web/public_php/api/data/ryzom/interface/ico_visibility.png
	code/web/public_php/api/data/ryzom/interface/ico_war_cry.png
	code/web/public_php/api/data/ryzom/interface/ico_weight.png
	code/web/public_php/api/data/ryzom/interface/ico_wellbalanced.png
	code/web/public_php/api/data/ryzom/interface/ico_will.png
	code/web/public_php/api/data/ryzom/interface/ico_windding.png
	code/web/public_php/api/data/ryzom/interface/ico_wisdom.png
	code/web/public_php/api/data/ryzom/interface/improved_tool.png
	code/web/public_php/api/data/ryzom/interface/item_default.png
	code/web/public_php/api/data/ryzom/interface/item_plan_over.png
	code/web/public_php/api/data/ryzom/interface/lucky_flower.png
	code/web/public_php/api/data/ryzom/interface/mail.png
	code/web/public_php/api/data/ryzom/interface/mektoub_pack.png
	code/web/public_php/api/data/ryzom/interface/mektoub_steed.png
	code/web/public_php/api/data/ryzom/interface/mf_back.png
	code/web/public_php/api/data/ryzom/interface/mf_over.png
	code/web/public_php/api/data/ryzom/interface/mg_glove.png
	code/web/public_php/api/data/ryzom/interface/mission_icon_0.png
	code/web/public_php/api/data/ryzom/interface/mission_icon_1.png
	code/web/public_php/api/data/ryzom/interface/mission_icon_2.png
	code/web/public_php/api/data/ryzom/interface/mission_icon_3.png
	code/web/public_php/api/data/ryzom/interface/mp3.png
	code/web/public_php/api/data/ryzom/interface/mp_amber.png
	code/web/public_php/api/data/ryzom/interface/mp_back_curative.png
	code/web/public_php/api/data/ryzom/interface/mp_back_offensive.png
	code/web/public_php/api/data/ryzom/interface/mp_back_selfonly.png
	code/web/public_php/api/data/ryzom/interface/mp_bark.png
	code/web/public_php/api/data/ryzom/interface/mp_batiment_brique.png
	code/web/public_php/api/data/ryzom/interface/mp_batiment_colonne.png
	code/web/public_php/api/data/ryzom/interface/mp_batiment_colonne_justice.png
	code/web/public_php/api/data/ryzom/interface/mp_batiment_comble.png
	code/web/public_php/api/data/ryzom/interface/mp_batiment_noyau_maduk.png
	code/web/public_php/api/data/ryzom/interface/mp_batiment_ornement.png
	code/web/public_php/api/data/ryzom/interface/mp_batiment_revetement.png
	code/web/public_php/api/data/ryzom/interface/mp_batiment_socle.png
	code/web/public_php/api/data/ryzom/interface/mp_batiment_statue.png
	code/web/public_php/api/data/ryzom/interface/mp_beak.png
	code/web/public_php/api/data/ryzom/interface/mp_blood.png
	code/web/public_php/api/data/ryzom/interface/mp_bone.png
	code/web/public_php/api/data/ryzom/interface/mp_bud.png
	code/web/public_php/api/data/ryzom/interface/mp_buterfly_blue.png
	code/web/public_php/api/data/ryzom/interface/mp_buterfly_cocoon.png
	code/web/public_php/api/data/ryzom/interface/mp_cereal.png
	code/web/public_php/api/data/ryzom/interface/mp_claw.png
	code/web/public_php/api/data/ryzom/interface/mp_dandelion.png
	code/web/public_php/api/data/ryzom/interface/mp_dry
	code/web/public_php/api/data/ryzom/interface/mp_dry wood.png
	code/web/public_php/api/data/ryzom/interface/mp_dry.png
	code/web/public_php/api/data/ryzom/interface/mp_dry_wood.png
	code/web/public_php/api/data/ryzom/interface/mp_dust.png
	code/web/public_php/api/data/ryzom/interface/mp_egg.png
	code/web/public_php/api/data/ryzom/interface/mp_eyes.png
	code/web/public_php/api/data/ryzom/interface/mp_fang.png
	code/web/public_php/api/data/ryzom/interface/mp_fiber.png
	code/web/public_php/api/data/ryzom/interface/mp_filament.png
	code/web/public_php/api/data/ryzom/interface/mp_firefly_abdomen.png
	code/web/public_php/api/data/ryzom/interface/mp_fish_scale.png
	code/web/public_php/api/data/ryzom/interface/mp_flowers.png
	code/web/public_php/api/data/ryzom/interface/mp_fresh_loose_soil.png
	code/web/public_php/api/data/ryzom/interface/mp_fruit.png
	code/web/public_php/api/data/ryzom/interface/mp_generic.png
	code/web/public_php/api/data/ryzom/interface/mp_generic_colorize.png
	code/web/public_php/api/data/ryzom/interface/mp_gomme.png
	code/web/public_php/api/data/ryzom/interface/mp_goo_residue.png
	code/web/public_php/api/data/ryzom/interface/mp_hairs.png
	code/web/public_php/api/data/ryzom/interface/mp_hoof.png
	code/web/public_php/api/data/ryzom/interface/mp_horn.png
	code/web/public_php/api/data/ryzom/interface/mp_horney.png
	code/web/public_php/api/data/ryzom/interface/mp_insect_fossil.png
	code/web/public_php/api/data/ryzom/interface/mp_kitin_flesh.png
	code/web/public_php/api/data/ryzom/interface/mp_kitin_secretion.png
	code/web/public_php/api/data/ryzom/interface/mp_kitinshell.png
	code/web/public_php/api/data/ryzom/interface/mp_larva.png
	code/web/public_php/api/data/ryzom/interface/mp_leaf.png
	code/web/public_php/api/data/ryzom/interface/mp_leather.png
	code/web/public_php/api/data/ryzom/interface/mp_liane.png
	code/web/public_php/api/data/ryzom/interface/mp_lichen.png
	code/web/public_php/api/data/ryzom/interface/mp_ligament.png
	code/web/public_php/api/data/ryzom/interface/mp_mandible.png
	code/web/public_php/api/data/ryzom/interface/mp_meat.png
	code/web/public_php/api/data/ryzom/interface/mp_moss.png
	code/web/public_php/api/data/ryzom/interface/mp_mushroom.png
	code/web/public_php/api/data/ryzom/interface/mp_nail.png
	code/web/public_php/api/data/ryzom/interface/mp_oil.png
	code/web/public_php/api/data/ryzom/interface/mp_over_link.png
	code/web/public_php/api/data/ryzom/interface/mp_parasite.png
	code/web/public_php/api/data/ryzom/interface/mp_pearl.png
	code/web/public_php/api/data/ryzom/interface/mp_pelvis.png
	code/web/public_php/api/data/ryzom/interface/mp_pigment.png
	code/web/public_php/api/data/ryzom/interface/mp_pistil.png
	code/web/public_php/api/data/ryzom/interface/mp_plant_fossil.png
	code/web/public_php/api/data/ryzom/interface/mp_pollen.png
	code/web/public_php/api/data/ryzom/interface/mp_resin.png
	code/web/public_php/api/data/ryzom/interface/mp_ronce.png
	code/web/public_php/api/data/ryzom/interface/mp_rostrum.png
	code/web/public_php/api/data/ryzom/interface/mp_sap.png
	code/web/public_php/api/data/ryzom/interface/mp_sawdust.png
	code/web/public_php/api/data/ryzom/interface/mp_seed.png
	code/web/public_php/api/data/ryzom/interface/mp_shell.png
	code/web/public_php/api/data/ryzom/interface/mp_silk_worm.png
	code/web/public_php/api/data/ryzom/interface/mp_skin.png
	code/web/public_php/api/data/ryzom/interface/mp_skull.png
	code/web/public_php/api/data/ryzom/interface/mp_spiders_web.png
	code/web/public_php/api/data/ryzom/interface/mp_spine.png
	code/web/public_php/api/data/ryzom/interface/mp_stem.png
	code/web/public_php/api/data/ryzom/interface/mp_sting.png
	code/web/public_php/api/data/ryzom/interface/mp_straw.png
	code/web/public_php/api/data/ryzom/interface/mp_suc.png
	code/web/public_php/api/data/ryzom/interface/mp_tail.png
	code/web/public_php/api/data/ryzom/interface/mp_tooth.png
	code/web/public_php/api/data/ryzom/interface/mp_trunk.png
	code/web/public_php/api/data/ryzom/interface/mp_whiskers.png
	code/web/public_php/api/data/ryzom/interface/mp_wing.png
	code/web/public_php/api/data/ryzom/interface/mp_wood.png
	code/web/public_php/api/data/ryzom/interface/mp_wood_node.png
	code/web/public_php/api/data/ryzom/interface/mw_2h_axe.png
	code/web/public_php/api/data/ryzom/interface/mw_2h_lance.png
	code/web/public_php/api/data/ryzom/interface/mw_2h_mace.png
	code/web/public_php/api/data/ryzom/interface/mw_2h_sword.png
	code/web/public_php/api/data/ryzom/interface/mw_axe.png
	code/web/public_php/api/data/ryzom/interface/mw_dagger.png
	code/web/public_php/api/data/ryzom/interface/mw_lance.png
	code/web/public_php/api/data/ryzom/interface/mw_mace.png
	code/web/public_php/api/data/ryzom/interface/mw_staff.png
	code/web/public_php/api/data/ryzom/interface/mw_sword.png
	code/web/public_php/api/data/ryzom/interface/no_action.png
	code/web/public_php/api/data/ryzom/interface/num_slash.png
	code/web/public_php/api/data/ryzom/interface/op_back.png
	code/web/public_php/api/data/ryzom/interface/op_over_break.png
	code/web/public_php/api/data/ryzom/interface/op_over_less.png
	code/web/public_php/api/data/ryzom/interface/op_over_more.png
	code/web/public_php/api/data/ryzom/interface/pa_anklet.png
	code/web/public_php/api/data/ryzom/interface/pa_back.png
	code/web/public_php/api/data/ryzom/interface/pa_bracelet.png
	code/web/public_php/api/data/ryzom/interface/pa_diadem.png
	code/web/public_php/api/data/ryzom/interface/pa_earring.png
	code/web/public_php/api/data/ryzom/interface/pa_over_break.png
	code/web/public_php/api/data/ryzom/interface/pa_over_less.png
	code/web/public_php/api/data/ryzom/interface/pa_over_more.png
	code/web/public_php/api/data/ryzom/interface/pa_pendant.png
	code/web/public_php/api/data/ryzom/interface/pa_ring.png
	code/web/public_php/api/data/ryzom/interface/profile.png
	code/web/public_php/api/data/ryzom/interface/protect_amber.png
	code/web/public_php/api/data/ryzom/interface/pvp_ally_0.png
	code/web/public_php/api/data/ryzom/interface/pvp_ally_1.png
	code/web/public_php/api/data/ryzom/interface/pvp_ally_2.png
	code/web/public_php/api/data/ryzom/interface/pvp_ally_3.png
	code/web/public_php/api/data/ryzom/interface/pvp_ally_4.png
	code/web/public_php/api/data/ryzom/interface/pvp_ally_6.png
	code/web/public_php/api/data/ryzom/interface/pvp_ally_primas.png
	code/web/public_php/api/data/ryzom/interface/pvp_ally_ranger.png
	code/web/public_php/api/data/ryzom/interface/pvp_aura.png
	code/web/public_php/api/data/ryzom/interface/pvp_aura_mask.png
	code/web/public_php/api/data/ryzom/interface/pvp_boost.png
	code/web/public_php/api/data/ryzom/interface/pvp_boost_mask.png
	code/web/public_php/api/data/ryzom/interface/pvp_enemy_0.png
	code/web/public_php/api/data/ryzom/interface/pvp_enemy_1.png
	code/web/public_php/api/data/ryzom/interface/pvp_enemy_2.png
	code/web/public_php/api/data/ryzom/interface/pvp_enemy_3.png
	code/web/public_php/api/data/ryzom/interface/pvp_enemy_4.png
	code/web/public_php/api/data/ryzom/interface/pvp_enemy_6.png
	code/web/public_php/api/data/ryzom/interface/pvp_enemy_marauder.png
	code/web/public_php/api/data/ryzom/interface/pvp_enemy_trytonist.png
	code/web/public_php/api/data/ryzom/interface/pw_4.png
	code/web/public_php/api/data/ryzom/interface/pw_5.png
	code/web/public_php/api/data/ryzom/interface/pw_6.png
	code/web/public_php/api/data/ryzom/interface/pw_7.png
	code/web/public_php/api/data/ryzom/interface/pw_heavy.png
	code/web/public_php/api/data/ryzom/interface/pw_light.png
	code/web/public_php/api/data/ryzom/interface/pw_medium.png
	code/web/public_php/api/data/ryzom/interface/quest_coeur.png
	code/web/public_php/api/data/ryzom/interface/quest_foie.png
	code/web/public_php/api/data/ryzom/interface/quest_jeton.png
	code/web/public_php/api/data/ryzom/interface/quest_langue.png
	code/web/public_php/api/data/ryzom/interface/quest_louche.png
	code/web/public_php/api/data/ryzom/interface/quest_oreille.png
	code/web/public_php/api/data/ryzom/interface/quest_patte.png
	code/web/public_php/api/data/ryzom/interface/quest_poils.png
	code/web/public_php/api/data/ryzom/interface/quest_queue.png
	code/web/public_php/api/data/ryzom/interface/quest_ticket.png
	code/web/public_php/api/data/ryzom/interface/r2_live.png
	code/web/public_php/api/data/ryzom/interface/r2_live_over.png
	code/web/public_php/api/data/ryzom/interface/r2_live_pushed.png
	code/web/public_php/api/data/ryzom/interface/r2_palette_entities.png
	code/web/public_php/api/data/ryzom/interface/requirement.png
	code/web/public_php/api/data/ryzom/interface/rm_f.png
	code/web/public_php/api/data/ryzom/interface/rm_f_upgrade.png
	code/web/public_php/api/data/ryzom/interface/rm_h.png
	code/web/public_php/api/data/ryzom/interface/rm_h_upgrade.png
	code/web/public_php/api/data/ryzom/interface/rm_m.png
	code/web/public_php/api/data/ryzom/interface/rm_m_upgrade.png
	code/web/public_php/api/data/ryzom/interface/rm_r.png
	code/web/public_php/api/data/ryzom/interface/rm_r_upgrade.png
	code/web/public_php/api/data/ryzom/interface/rpjob_200.png
	code/web/public_php/api/data/ryzom/interface/rpjob_201.png
	code/web/public_php/api/data/ryzom/interface/rpjob_202.png
	code/web/public_php/api/data/ryzom/interface/rpjob_203.png
	code/web/public_php/api/data/ryzom/interface/rpjob_204.png
	code/web/public_php/api/data/ryzom/interface/rpjob_205.png
	code/web/public_php/api/data/ryzom/interface/rpjob_206.png
	code/web/public_php/api/data/ryzom/interface/rpjob_207.png
	code/web/public_php/api/data/ryzom/interface/rpjob_advanced.png
	code/web/public_php/api/data/ryzom/interface/rpjob_elementary.png
	code/web/public_php/api/data/ryzom/interface/rpjob_roleplay.png
	code/web/public_php/api/data/ryzom/interface/rpjob_task.png
	code/web/public_php/api/data/ryzom/interface/rpjob_task_certificats.png
	code/web/public_php/api/data/ryzom/interface/rpjob_task_convert.png
	code/web/public_php/api/data/ryzom/interface/rpjob_task_elementary.png
	code/web/public_php/api/data/ryzom/interface/rpjob_task_generic.png
	code/web/public_php/api/data/ryzom/interface/rpjob_task_upgrade.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_200_a.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_200_b.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_200_c.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_201_a.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_201_b.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_201_c.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_202_a.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_202_b.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_202_c.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_203_a.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_203_b.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_203_c.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_204_a.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_204_b.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_204_c.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_205_a.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_205_b.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_205_c.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_206_a.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_206_b.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_206_c.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_207_a.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_207_b.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_207_c.png
	code/web/public_php/api/data/ryzom/interface/rpjobitem_certifications.png
	code/web/public_php/api/data/ryzom/interface/rw_autolaunch.png
	code/web/public_php/api/data/ryzom/interface/rw_bowgun.png
	code/web/public_php/api/data/ryzom/interface/rw_grenade.png
	code/web/public_php/api/data/ryzom/interface/rw_harpoongun.png
	code/web/public_php/api/data/ryzom/interface/rw_launcher.png
	code/web/public_php/api/data/ryzom/interface/rw_pistol.png
	code/web/public_php/api/data/ryzom/interface/rw_pistolarc.png
	code/web/public_php/api/data/ryzom/interface/rw_rifle.png
	code/web/public_php/api/data/ryzom/interface/sapload.png
	code/web/public_php/api/data/ryzom/interface/sh_buckler.png
	code/web/public_php/api/data/ryzom/interface/sh_large_shield.png
	code/web/public_php/api/data/ryzom/interface/small_task_craft.png
	code/web/public_php/api/data/ryzom/interface/small_task_done.png
	code/web/public_php/api/data/ryzom/interface/small_task_failed.png
	code/web/public_php/api/data/ryzom/interface/small_task_fight.png
	code/web/public_php/api/data/ryzom/interface/small_task_forage.png
	code/web/public_php/api/data/ryzom/interface/small_task_generic.png
	code/web/public_php/api/data/ryzom/interface/small_task_guild.png
	code/web/public_php/api/data/ryzom/interface/small_task_rite.png
	code/web/public_php/api/data/ryzom/interface/small_task_travel.png
	code/web/public_php/api/data/ryzom/interface/spe_beast.png
	code/web/public_php/api/data/ryzom/interface/spe_com.png
	code/web/public_php/api/data/ryzom/interface/spe_inventory.png
	code/web/public_php/api/data/ryzom/interface/spe_labs.png
	code/web/public_php/api/data/ryzom/interface/spe_memory.png
	code/web/public_php/api/data/ryzom/interface/spe_options.png
	code/web/public_php/api/data/ryzom/interface/spe_status.png
	code/web/public_php/api/data/ryzom/interface/stimulating_water.png
	code/web/public_php/api/data/ryzom/interface/tb_action_attack.png
	code/web/public_php/api/data/ryzom/interface/tb_action_config.png
	code/web/public_php/api/data/ryzom/interface/tb_action_disband.png
	code/web/public_php/api/data/ryzom/interface/tb_action_disengage.png
	code/web/public_php/api/data/ryzom/interface/tb_action_extract.png
	code/web/public_php/api/data/ryzom/interface/tb_action_invite.png
	code/web/public_php/api/data/ryzom/interface/tb_action_kick.png
	code/web/public_php/api/data/ryzom/interface/tb_action_move.png
	code/web/public_php/api/data/ryzom/interface/tb_action_run.png
	code/web/public_php/api/data/ryzom/interface/tb_action_sit.png
	code/web/public_php/api/data/ryzom/interface/tb_action_stand.png
	code/web/public_php/api/data/ryzom/interface/tb_action_stop.png
	code/web/public_php/api/data/ryzom/interface/tb_action_talk.png
	code/web/public_php/api/data/ryzom/interface/tb_action_walk.png
	code/web/public_php/api/data/ryzom/interface/tb_animals.png
	code/web/public_php/api/data/ryzom/interface/tb_config.png
	code/web/public_php/api/data/ryzom/interface/tb_connection.png
	code/web/public_php/api/data/ryzom/interface/tb_contacts.png
	code/web/public_php/api/data/ryzom/interface/tb_desk_1.png
	code/web/public_php/api/data/ryzom/interface/tb_desk_2.png
	code/web/public_php/api/data/ryzom/interface/tb_desk_3.png
	code/web/public_php/api/data/ryzom/interface/tb_desk_4.png
	code/web/public_php/api/data/ryzom/interface/tb_faction.png
	code/web/public_php/api/data/ryzom/interface/tb_forum.png
	code/web/public_php/api/data/ryzom/interface/tb_guild.png
	code/web/public_php/api/data/ryzom/interface/tb_help2.png
	code/web/public_php/api/data/ryzom/interface/tb_keys.png
	code/web/public_php/api/data/ryzom/interface/tb_macros.png
	code/web/public_php/api/data/ryzom/interface/tb_mail.png
	code/web/public_php/api/data/ryzom/interface/tb_mode.png
	code/web/public_php/api/data/ryzom/interface/tb_mode_dodge.png
	code/web/public_php/api/data/ryzom/interface/tb_mode_parry.png
	code/web/public_php/api/data/ryzom/interface/tb_over.png
	code/web/public_php/api/data/ryzom/interface/tb_support.png
	code/web/public_php/api/data/ryzom/interface/tb_team.png
	code/web/public_php/api/data/ryzom/interface/tb_windows.png
	code/web/public_php/api/data/ryzom/interface/tetekitin.png
	code/web/public_php/api/data/ryzom/interface/to_ammo.png
	code/web/public_php/api/data/ryzom/interface/to_armor.png
	code/web/public_php/api/data/ryzom/interface/to_cooking_pot.png
	code/web/public_php/api/data/ryzom/interface/to_fishing_rod.png
	code/web/public_php/api/data/ryzom/interface/to_forage.png
	code/web/public_php/api/data/ryzom/interface/to_hammer.png
	code/web/public_php/api/data/ryzom/interface/to_jewelry_hammer.png
	code/web/public_php/api/data/ryzom/interface/to_jewels.png
	code/web/public_php/api/data/ryzom/interface/to_leathercutter.png
	code/web/public_php/api/data/ryzom/interface/to_melee.png
	code/web/public_php/api/data/ryzom/interface/to_needle.png
	code/web/public_php/api/data/ryzom/interface/to_pestle.png
	code/web/public_php/api/data/ryzom/interface/to_range.png
	code/web/public_php/api/data/ryzom/interface/to_searake.png
	code/web/public_php/api/data/ryzom/interface/to_spade.png
	code/web/public_php/api/data/ryzom/interface/to_stick.png
	code/web/public_php/api/data/ryzom/interface/to_tunneling_knife.png
	code/web/public_php/api/data/ryzom/interface/to_whip.png
	code/web/public_php/api/data/ryzom/interface/to_wrench.png
	code/web/public_php/api/data/ryzom/interface/tp_caravane.png
	code/web/public_php/api/data/ryzom/interface/tp_kami.png
	code/web/public_php/api/data/ryzom/interface/us_back_0.png
	code/web/public_php/api/data/ryzom/interface/us_back_1.png
	code/web/public_php/api/data/ryzom/interface/us_back_2.png
	code/web/public_php/api/data/ryzom/interface/us_back_3.png
	code/web/public_php/api/data/ryzom/interface/us_back_4.png
	code/web/public_php/api/data/ryzom/interface/us_back_5.png
	code/web/public_php/api/data/ryzom/interface/us_back_6.png
	code/web/public_php/api/data/ryzom/interface/us_back_7.png
	code/web/public_php/api/data/ryzom/interface/us_back_8.png
	code/web/public_php/api/data/ryzom/interface/us_back_9.png
	code/web/public_php/api/data/ryzom/interface/us_ico_0.png
	code/web/public_php/api/data/ryzom/interface/us_ico_1.png
	code/web/public_php/api/data/ryzom/interface/us_ico_2.png
	code/web/public_php/api/data/ryzom/interface/us_ico_3.png
	code/web/public_php/api/data/ryzom/interface/us_ico_4.png
	code/web/public_php/api/data/ryzom/interface/us_ico_5.png
	code/web/public_php/api/data/ryzom/interface/us_ico_6.png
	code/web/public_php/api/data/ryzom/interface/us_ico_7.png
	code/web/public_php/api/data/ryzom/interface/us_ico_8.png
	code/web/public_php/api/data/ryzom/interface/us_ico_9.png
	code/web/public_php/api/data/ryzom/interface/us_over_0.png
	code/web/public_php/api/data/ryzom/interface/us_over_1.png
	code/web/public_php/api/data/ryzom/interface/us_over_2.png
	code/web/public_php/api/data/ryzom/interface/us_over_3.png
	code/web/public_php/api/data/ryzom/interface/us_over_4.png
	code/web/public_php/api/data/ryzom/interface/w_am_logo.png
	code/web/public_php/api/data/ryzom/interface/w_leader.png
	code/web/public_php/api/data/ryzom/interface/w_major.png
	code/web/public_php/api/data/ryzom/interface/w_pa_anklet.png
	code/web/public_php/api/data/ryzom/interface/w_pa_bracelet.png
	code/web/public_php/api/data/ryzom/interface/w_pa_diadem.png
	code/web/public_php/api/data/ryzom/interface/w_pa_earring.png
	code/web/public_php/api/data/ryzom/interface/w_pa_pendant.png
	code/web/public_php/api/data/ryzom/interface/w_pa_ring.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_id0.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_id1.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_id2.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_id3.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_id4.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_id5.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_id6.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_id7.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_id8.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_id9.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_shift_id0.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_shift_id1.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_shift_id2.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_shift_id3.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_shift_id4.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_shift_id5.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_shift_id6.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_shift_id7.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_shift_id8.png
	code/web/public_php/api/data/ryzom/interface/w_slot_shortcut_shift_id9.png
	code/web/public_php/api/data/ryzom/interface/xp_cat_green.png
	code/web/public_php/api/data/ryzom/items_db.php
	code/web/public_php/api/data/ryzom/ryShapesPs.php
	code/web/public_php/api/data/ryzom/sbrick_db.php
	code/web/public_php/api/index.php
	code/web/public_php/api/player_auth.php
	code/web/public_php/api/ryzom_api.php
	code/web/public_php/api/server/auth.php
	code/web/public_php/api/server/config.php.default
	code/web/public_php/api/server/guilds.php
	code/web/public_php/api/server/hmagic.php
	code/web/public_php/api/server/item_icon.php
	code/web/public_php/api/server/scripts/achievement_script/AchWebParser.php
	code/web/public_php/api/server/scripts/achievement_script/_test/char_346.xml
	code/web/public_php/api/server/scripts/achievement_script/_test/diff_class.php
	code/web/public_php/api/server/scripts/achievement_script/_test/diff_test.php
	code/web/public_php/api/server/scripts/achievement_script/_test/old_char_346.xml
	code/web/public_php/api/server/scripts/achievement_script/class/Atom_class.php
	code/web/public_php/api/server/scripts/achievement_script/class/Callback_class.php
	code/web/public_php/api/server/scripts/achievement_script/class/DataDispatcher_class.php
	code/web/public_php/api/server/scripts/achievement_script/class/DataSourceHandler_class.php
	code/web/public_php/api/server/scripts/achievement_script/class/Entity_abstract.php
	code/web/public_php/api/server/scripts/achievement_script/class/Logfile_class.php
	code/web/public_php/api/server/scripts/achievement_script/class/SourceDriver_abstract.php
	code/web/public_php/api/server/scripts/achievement_script/class/Stats_class.php
	code/web/public_php/api/server/scripts/achievement_script/class/ValueCache_class.php
	code/web/public_php/api/server/scripts/achievement_script/class/XMLfile_class.php
	code/web/public_php/api/server/scripts/achievement_script/class/XMLgenerator_class.php
	code/web/public_php/api/server/scripts/achievement_script/class/XMLnode_class.php
	code/web/public_php/api/server/scripts/achievement_script/class/mySQL_class.php
	code/web/public_php/api/server/scripts/achievement_script/conf.php
	code/web/public_php/api/server/scripts/achievement_script/include/functions_inc.php
	code/web/public_php/api/server/scripts/achievement_script/launch_parse_new_xml.sh
	code/web/public_php/api/server/scripts/achievement_script/log/_logDefaultDir_
	code/web/public_php/api/server/scripts/achievement_script/log/xml_tmp/_xml_tmp_dir
	code/web/public_php/api/server/scripts/achievement_script/parse_new_xml.sh
	code/web/public_php/api/server/scripts/achievement_script/script/_scriptDir
	code/web/public_php/api/server/scripts/achievement_script/script/item_grade_script.php
	code/web/public_php/api/server/scripts/achievement_script/script/places/continents.php
	code/web/public_php/api/server/scripts/achievement_script/script/places/global.php
	code/web/public_php/api/server/scripts/achievement_script/script/statsdb.php
	code/web/public_php/api/server/scripts/achievement_script/source/BillingSummary/BillingSummary_class.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/PDRtoXMLdriver_class.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/DeathPenalty_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/FactionPoints_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/Fame_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/FriendOf_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/Friend_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/Friendlist_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/Gear_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/Item_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/LastLogStats_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/MissionList_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/Mission_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/PermanentMod_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/Pet_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/PhysCharacs_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/PhysScores_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/Position_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/RespawnPoints_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/SkillList_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/SkillPoints_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/Skill_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/SpentSkillPoints_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/TPlist_entity.php
	code/web/public_php/api/server/scripts/achievement_script/source/PDRtoXMLdriver/entity/Title_entity.php
	code/web/public_php/api/server/scripts/achievement_script/xmldef/debug.php
	code/web/public_php/api/server/scripts/achievement_script/xmldef/faction.php
	code/web/public_php/api/server/scripts/achievement_script/xmldef/fame.php
	code/web/public_php/api/server/scripts/achievement_script/xmldef/inventory.php
	code/web/public_php/api/server/scripts/achievement_script/xmldef/knowledge.php
	code/web/public_php/api/server/scripts/achievement_script/xmldef/logs.php
	code/web/public_php/api/server/scripts/achievement_script/xmldef/missions.php
	code/web/public_php/api/server/scripts/achievement_script/xmldef/public.php
	code/web/public_php/api/server/scripts/achievement_script/xmldef/shop.php
	code/web/public_php/api/server/scripts/achievement_script/xmldef/skills.php
	code/web/public_php/api/server/scripts/achievement_script/xmldef/social.php
	code/web/public_php/api/server/scripts/achievement_script/xmldef/stats.php
	code/web/public_php/api/server/scripts/create_guilds_xml.php
	code/web/public_php/api/server/scripts/generate_guild_icon.sh
	code/web/public_php/api/server/scripts/get_guilds_xml.sh
	code/web/public_php/api/server/time.php
	code/web/public_php/api/server/user.php
	code/web/public_php/api/server/utils.php
	code/web/public_php/api/time.php
	code/web/public_php/app/app_achievements/_API/ach_progress.php
	code/web/public_php/app/app_achievements/_API/ach_struct.php
	code/web/public_php/app/app_achievements/_API/class/mySQL_class.php
	code/web/public_php/app/app_achievements/_API/conf.php
	code/web/public_php/app/app_achievements/_doc/Class_scheme.dia
	code/web/public_php/app/app_achievements/_doc/Class_scheme.png
	code/web/public_php/app/app_achievements/_doc/ER & Class Schema.pdf
	code/web/public_php/app/app_achievements/_doc/ER_scheme.dia
	code/web/public_php/app/app_achievements/_doc/ER_scheme.png
	code/web/public_php/app/app_achievements/_doc/Ryzom Player Achievements.pdf
	code/web/public_php/app/app_achievements/_doc/devshot_001.jpg
	code/web/public_php/app/app_achievements/_doc/devshot_002.jpg
	code/web/public_php/app/app_achievements/_doc/devshot_003.jpg
	code/web/public_php/app/app_achievements/_doc/devshot_004.jpg
	code/web/public_php/app/app_achievements/_doc/structure_app_achievements.sql
	code/web/public_php/app/app_achievements/class/AVLTree_class.php
	code/web/public_php/app/app_achievements/class/AchAchievement_class.php
	code/web/public_php/app/app_achievements/class/AchCategory_class.php
	code/web/public_php/app/app_achievements/class/AchList_abstract.php
	code/web/public_php/app/app_achievements/class/AchMenuNode_class.php
	code/web/public_php/app/app_achievements/class/AchMenu_class.php
	code/web/public_php/app/app_achievements/class/AchObjective_class.php
	code/web/public_php/app/app_achievements/class/AchSummary_class.php
	code/web/public_php/app/app_achievements/class/AchTask_class.php
	code/web/public_php/app/app_achievements/class/DLL_class.php
	code/web/public_php/app/app_achievements/class/InDev_trait.php
	code/web/public_php/app/app_achievements/class/NodeIterator_class.php
	code/web/public_php/app/app_achievements/class/Node_abstract.php
	code/web/public_php/app/app_achievements/class/Parentum_abstract.php
	code/web/public_php/app/app_achievements/class/RyzomUser_class.php
	code/web/public_php/app/app_achievements/class/Tieable_inter.php
	code/web/public_php/app/app_achievements/conf.php
	code/web/public_php/app/app_achievements/favicon.ico
	code/web/public_php/app/app_achievements/favicon.png
	code/web/public_php/app/app_achievements/fb/base_facebook.php
	code/web/public_php/app/app_achievements/fb/facebook.php
	code/web/public_php/app/app_achievements/fb/fb_ca_chain_bundle.crt
	code/web/public_php/app/app_achievements/include/ach_render_common.php
	code/web/public_php/app/app_achievements/include/ach_render_ig.php
	code/web/public_php/app/app_achievements/include/ach_render_web.php
	code/web/public_php/app/app_achievements/index.php
	code/web/public_php/app/app_achievements/lang.php
	code/web/public_php/app/app_achievements/pic/ach_news.png
	code/web/public_php/app/app_achievements/pic/bar_done_b.png
	code/web/public_php/app/app_achievements/pic/bar_done_bg.png
	code/web/public_php/app/app_achievements/pic/bar_done_bl.png
	code/web/public_php/app/app_achievements/pic/bar_done_br.png
	code/web/public_php/app/app_achievements/pic/bar_done_l.png
	code/web/public_php/app/app_achievements/pic/bar_done_r.png
	code/web/public_php/app/app_achievements/pic/bar_done_u.png
	code/web/public_php/app/app_achievements/pic/bar_done_ul.png
	code/web/public_php/app/app_achievements/pic/bar_done_ur.png
	code/web/public_php/app/app_achievements/pic/bar_pending_b.png
	code/web/public_php/app/app_achievements/pic/bar_pending_bl.png
	code/web/public_php/app/app_achievements/pic/bar_pending_br.png
	code/web/public_php/app/app_achievements/pic/bar_pending_l.png
	code/web/public_php/app/app_achievements/pic/bar_pending_r.png
	code/web/public_php/app/app_achievements/pic/bar_pending_u.png
	code/web/public_php/app/app_achievements/pic/bar_pending_ul.png
	code/web/public_php/app/app_achievements/pic/bar_pending_ur.png
	code/web/public_php/app/app_achievements/pic/check.png
	code/web/public_php/app/app_achievements/pic/f-connect.png
	code/web/public_php/app/app_achievements/pic/facebook-logo.png
	code/web/public_php/app/app_achievements/pic/icon/grey/small/test.png
	code/web/public_php/app/app_achievements/pic/icon/grey/test.png
	code/web/public_php/app/app_achievements/pic/icon/small/test.png
	code/web/public_php/app/app_achievements/pic/icon/test.png
	code/web/public_php/app/app_achievements/pic/menu/ig_summary.png
	code/web/public_php/app/app_achievements/pic/menu/ig_test.png
	code/web/public_php/app/app_achievements/pic/menu/summary.png
	code/web/public_php/app/app_achievements/pic/menu/test.png
	code/web/public_php/app/app_achievements/pic/menu_space.png
	code/web/public_php/app/app_achievements/pic/pending.png
	code/web/public_php/app/app_achievements/pic/star_done.png
	code/web/public_php/app/app_achievements/pic/yubo_done.png
	code/web/public_php/app/app_achievements/pic/yubo_done_small.png
	code/web/public_php/app/app_achievements/pic/yubo_pending.png
	code/web/public_php/app/app_achievements_admin/_doc/ADM_scheme.dia
	code/web/public_php/app/app_achievements_admin/_doc/ADM_scheme.png
	code/web/public_php/app/app_achievements_admin/class/ADM_inter.php
	code/web/public_php/app/app_achievements_admin/class/AdmAchievement_class.php
	code/web/public_php/app/app_achievements_admin/class/AdmAtom_class.php
	code/web/public_php/app/app_achievements_admin/class/AdmCategory_class.php
	code/web/public_php/app/app_achievements_admin/class/AdmDispatcher_trait.php
	code/web/public_php/app/app_achievements_admin/class/AdmMenuNode_class.php
	code/web/public_php/app/app_achievements_admin/class/AdmMenu_class.php
	code/web/public_php/app/app_achievements_admin/class/AdmObjective_class.php
	code/web/public_php/app/app_achievements_admin/class/AdmTask_class.php
	code/web/public_php/app/app_achievements_admin/class/CSRAchievement_class.php
	code/web/public_php/app/app_achievements_admin/class/CSRAtom_class.php
	code/web/public_php/app/app_achievements_admin/class/CSRCategory_class.php
	code/web/public_php/app/app_achievements_admin/class/CSRDispatcher_trait.php
	code/web/public_php/app/app_achievements_admin/class/CSRObjective_class.php
	code/web/public_php/app/app_achievements_admin/class/CSRTask_class.php
	code/web/public_php/app/app_achievements_admin/class/CSR_inter.php
	code/web/public_php/app/app_achievements_admin/class/RyzomAdmin_class.php
	code/web/public_php/app/app_achievements_admin/class/mySQL_class.php
	code/web/public_php/app/app_achievements_admin/conf.php
	code/web/public_php/app/app_achievements_admin/favicon.png
	code/web/public_php/app/app_achievements_admin/include/adm_render_ach.php
	code/web/public_php/app/app_achievements_admin/include/adm_render_atom.php
	code/web/public_php/app/app_achievements_admin/include/adm_render_csr.php
	code/web/public_php/app/app_achievements_admin/include/adm_render_lang.php
	code/web/public_php/app/app_achievements_admin/include/adm_render_menu.php
	code/web/public_php/app/app_achievements_admin/include/adm_render_stats.php
	code/web/public_php/app/app_achievements_admin/index.php
	code/web/public_php/app/app_achievements_admin/lang.php
	code/web/public_php/app/app_achievements_admin/pic/b_drop.png
	code/web/public_php/app/app_achievements_admin/pic/b_insrow.png
	code/web/public_php/app/app_achievements_admin/pic/b_tblops.png
	code/web/public_php/app/app_achievements_admin/pic/green.gif
	code/web/public_php/app/app_achievements_admin/pic/icon_edit.gif
	code/web/public_php/app/app_achievements_admin/pic/red.gif
	code/web/public_php/app/app_test/create.sql
	code/web/public_php/app/app_test/favicon.png
	code/web/public_php/app/app_test/index.php
	code/web/public_php/app/app_test/lang.php
	code/web/public_php/app/config.php.default
	code/web/public_php/app/index.php
	code/web/public_php/app/lang.php
	code/web/public_php/crash_report/config.inc.php
	code/web/public_php/crash_report/log.inc.php
	code/web/public_php/crash_report/submit.php
	code/web/public_php/index.php
	code/web/public_php/login/client_install.php
	code/web/public_php/login/config.php
	code/web/public_php/login/login_translations.php
	code/web/public_php/login/logs/placeholder
	code/web/public_php/login/r2_login.php
	code/web/public_php/ring/edit_session.php
	code/web/public_php/ring/invite_pioneer.php
	code/web/public_php/ring/join_shard.php
	code/web/public_php/ring/session_tools.php
	code/web/public_php/setup/auth.php
	code/web/public_php/setup/css/bootstrap-theme.css
	code/web/public_php/setup/css/bootstrap-theme.css.map
	code/web/public_php/setup/css/bootstrap-theme.min.css
	code/web/public_php/setup/css/bootstrap.css
	code/web/public_php/setup/css/bootstrap.css.map
	code/web/public_php/setup/css/bootstrap.min.css
	code/web/public_php/setup/database.php
	code/web/public_php/setup/fonts/glyphicons-halflings-regular.eot
	code/web/public_php/setup/fonts/glyphicons-halflings-regular.svg
	code/web/public_php/setup/fonts/glyphicons-halflings-regular.ttf
	code/web/public_php/setup/fonts/glyphicons-halflings-regular.woff
	code/web/public_php/setup/footer.php
	code/web/public_php/setup/header.php
	code/web/public_php/setup/img/agplv3-88x31.png
	code/web/public_php/setup/index.php
	code/web/public_php/setup/install.php
	code/web/public_php/setup/js/bootstrap.js
	code/web/public_php/setup/js/bootstrap.min.js
	code/web/public_php/setup/template.htm
	code/web/public_php/setup/upgrade.php
	code/web/public_php/setup/version.php
	code/web/public_php/tools/domain_info.php
	code/web/public_php/tools/nel_message.php
	code/web/public_php/tools/validate_cookie.php
	code/web/public_php/webtt/.gitignore
	code/web/public_php/webtt/.htaccess
	code/web/public_php/webtt/CakePHP_README
	code/web/public_php/webtt/app/.htaccess
	code/web/public_php/webtt/app/config/acl.ini.php
	code/web/public_php/webtt/app/config/bootstrap.php
	code/web/public_php/webtt/app/config/core.php
	code/web/public_php/webtt/app/config/database.php
	code/web/public_php/webtt/app/config/database.php.default
	code/web/public_php/webtt/app/config/routes.php
	code/web/public_php/webtt/app/config/schema/db_acl.php
	code/web/public_php/webtt/app/config/schema/i18n.php
	code/web/public_php/webtt/app/config/schema/sessions.php
	code/web/public_php/webtt/app/controllers/app_controller.php
	code/web/public_php/webtt/app/controllers/comments_controller.php
	code/web/public_php/webtt/app/controllers/components/empty
	code/web/public_php/webtt/app/controllers/components/path_resolver.php
	code/web/public_php/webtt/app/controllers/file_identifiers_controller.php
	code/web/public_php/webtt/app/controllers/identifier_columns_controller.php
	code/web/public_php/webtt/app/controllers/identifiers_controller.php
	code/web/public_php/webtt/app/controllers/imported_translation_files_controller.php
	code/web/public_php/webtt/app/controllers/languages_controller.php
	code/web/public_php/webtt/app/controllers/pages_controller.php
	code/web/public_php/webtt/app/controllers/raw_files_controller.php
	code/web/public_php/webtt/app/controllers/translation_files_controller.php
	code/web/public_php/webtt/app/controllers/translations_controller.php
	code/web/public_php/webtt/app/controllers/users_controller.php
	code/web/public_php/webtt/app/controllers/votes_controller.php
	code/web/public_php/webtt/app/index.php
	code/web/public_php/webtt/app/libs/empty
	code/web/public_php/webtt/app/locale/eng/LC_MESSAGES/empty
	code/web/public_php/webtt/app/models/app_model.php
	code/web/public_php/webtt/app/models/behaviors/empty
	code/web/public_php/webtt/app/models/behaviors/null.php
	code/web/public_php/webtt/app/models/comment.php
	code/web/public_php/webtt/app/models/datasources/empty
	code/web/public_php/webtt/app/models/datasources/raw_files_source.php
	code/web/public_php/webtt/app/models/file_identifier.php
	code/web/public_php/webtt/app/models/identifier.php
	code/web/public_php/webtt/app/models/identifier_column.php
	code/web/public_php/webtt/app/models/imported_translation_file.php
	code/web/public_php/webtt/app/models/language.php
	code/web/public_php/webtt/app/models/raw_file.php
	code/web/public_php/webtt/app/models/translation.php
	code/web/public_php/webtt/app/models/translation_file.php
	code/web/public_php/webtt/app/models/user.php
	code/web/public_php/webtt/app/models/vote.php
	code/web/public_php/webtt/app/plugins/empty
	code/web/public_php/webtt/app/tests/cases/behaviors/empty
	code/web/public_php/webtt/app/tests/cases/components/empty
	code/web/public_php/webtt/app/tests/cases/controllers/empty
	code/web/public_php/webtt/app/tests/cases/helpers/empty
	code/web/public_php/webtt/app/tests/cases/models/empty
	code/web/public_php/webtt/app/tests/fixtures/empty
	code/web/public_php/webtt/app/tests/groups/empty
	code/web/public_php/webtt/app/tmp/cache/models/empty
	code/web/public_php/webtt/app/tmp/cache/persistent/empty
	code/web/public_php/webtt/app/tmp/cache/views/empty
	code/web/public_php/webtt/app/tmp/logs/empty
	code/web/public_php/webtt/app/tmp/sessions/empty
	code/web/public_php/webtt/app/tmp/tests/empty
	code/web/public_php/webtt/app/vendors/PhraseParser.php
	code/web/public_php/webtt/app/vendors/SheetParser.php
	code/web/public_php/webtt/app/vendors/StringParser.php
	code/web/public_php/webtt/app/vendors/shells/tasks/empty
	code/web/public_php/webtt/app/vendors/shells/templates/960grid/views/form.ctp
	code/web/public_php/webtt/app/vendors/shells/templates/960grid/views/home.ctp
	code/web/public_php/webtt/app/vendors/shells/templates/960grid/views/index.ctp
	code/web/public_php/webtt/app/vendors/shells/templates/960grid/views/view.ctp
	code/web/public_php/webtt/app/vendors/shells/templates/empty
	code/web/public_php/webtt/app/vendors/shells/templates/webtt/views/form.ctp
	code/web/public_php/webtt/app/vendors/shells/templates/webtt/views/home.ctp
	code/web/public_php/webtt/app/vendors/shells/templates/webtt/views/index.ctp
	code/web/public_php/webtt/app/vendors/shells/templates/webtt/views/view.ctp
	code/web/public_php/webtt/app/views/comments/add.ctp
	code/web/public_php/webtt/app/views/comments/admin_add.ctp
	code/web/public_php/webtt/app/views/comments/admin_edit.ctp
	code/web/public_php/webtt/app/views/comments/admin_index.ctp
	code/web/public_php/webtt/app/views/comments/admin_view.ctp
	code/web/public_php/webtt/app/views/comments/edit.ctp
	code/web/public_php/webtt/app/views/comments/index.ctp
	code/web/public_php/webtt/app/views/comments/view.ctp
	code/web/public_php/webtt/app/views/elements/email/html/empty
	code/web/public_php/webtt/app/views/elements/email/html/registration.ctp
	code/web/public_php/webtt/app/views/elements/email/text/empty
	code/web/public_php/webtt/app/views/elements/email/text/registration.ctp
	code/web/public_php/webtt/app/views/elements/empty
	code/web/public_php/webtt/app/views/elements/neighbours.ctp
	code/web/public_php/webtt/app/views/errors/empty
	code/web/public_php/webtt/app/views/file_identifiers/add.ctp
	code/web/public_php/webtt/app/views/file_identifiers/admin_add.ctp
	code/web/public_php/webtt/app/views/file_identifiers/admin_edit.ctp
	code/web/public_php/webtt/app/views/file_identifiers/admin_index.ctp
	code/web/public_php/webtt/app/views/file_identifiers/admin_view.ctp
	code/web/public_php/webtt/app/views/file_identifiers/edit.ctp
	code/web/public_php/webtt/app/views/file_identifiers/index.ctp
	code/web/public_php/webtt/app/views/file_identifiers/view.ctp
	code/web/public_php/webtt/app/views/helpers/empty
	code/web/public_php/webtt/app/views/identifier_columns/admin_index.ctp
	code/web/public_php/webtt/app/views/identifier_columns/admin_view.ctp
	code/web/public_php/webtt/app/views/identifier_columns/index.ctp
	code/web/public_php/webtt/app/views/identifier_columns/view.ctp
	code/web/public_php/webtt/app/views/identifiers/add.ctp
	code/web/public_php/webtt/app/views/identifiers/admin_add.ctp
	code/web/public_php/webtt/app/views/identifiers/admin_edit.ctp
	code/web/public_php/webtt/app/views/identifiers/admin_index.ctp
	code/web/public_php/webtt/app/views/identifiers/admin_view.ctp
	code/web/public_php/webtt/app/views/identifiers/edit.ctp
	code/web/public_php/webtt/app/views/identifiers/index.ctp
	code/web/public_php/webtt/app/views/identifiers/view.ctp
	code/web/public_php/webtt/app/views/imported_translation_files/admin_add.ctp
	code/web/public_php/webtt/app/views/imported_translation_files/admin_edit.ctp
	code/web/public_php/webtt/app/views/imported_translation_files/admin_index.ctp
	code/web/public_php/webtt/app/views/imported_translation_files/admin_view.ctp
	code/web/public_php/webtt/app/views/imported_translation_files/index.ctp
	code/web/public_php/webtt/app/views/imported_translation_files/view.ctp
	code/web/public_php/webtt/app/views/languages/add.ctp
	code/web/public_php/webtt/app/views/languages/admin_add.ctp
	code/web/public_php/webtt/app/views/languages/admin_edit.ctp
	code/web/public_php/webtt/app/views/languages/admin_index.ctp
	code/web/public_php/webtt/app/views/languages/admin_view.ctp
	code/web/public_php/webtt/app/views/languages/edit.ctp
	code/web/public_php/webtt/app/views/languages/index.ctp
	code/web/public_php/webtt/app/views/languages/view.ctp
	code/web/public_php/webtt/app/views/layouts/admin.ctp
	code/web/public_php/webtt/app/views/layouts/default.ctp
	code/web/public_php/webtt/app/views/layouts/default_debug.ctp
	code/web/public_php/webtt/app/views/layouts/email/html/default.ctp
	code/web/public_php/webtt/app/views/layouts/email/text/default.ctp
	code/web/public_php/webtt/app/views/layouts/js/empty
	code/web/public_php/webtt/app/views/layouts/new.ctp
	code/web/public_php/webtt/app/views/layouts/rss/empty
	code/web/public_php/webtt/app/views/layouts/xml/empty
	code/web/public_php/webtt/app/views/pages/admin/home.ctp
	code/web/public_php/webtt/app/views/pages/home.ctp
	code/web/public_php/webtt/app/views/raw_files/admin_index.ctp
	code/web/public_php/webtt/app/views/raw_files/admin_view.ctp
	code/web/public_php/webtt/app/views/raw_files/index.ctp
	code/web/public_php/webtt/app/views/raw_files/listdir.ctp
	code/web/public_php/webtt/app/views/raw_files/view.ctp
	code/web/public_php/webtt/app/views/scaffolds/edit.ctp
	code/web/public_php/webtt/app/views/scaffolds/empty
	code/web/public_php/webtt/app/views/scaffolds/index.ctp
	code/web/public_php/webtt/app/views/scaffolds/view.ctp
	code/web/public_php/webtt/app/views/translation_files/admin_index.ctp
	code/web/public_php/webtt/app/views/translation_files/admin_view.ctp
	code/web/public_php/webtt/app/views/translation_files/index.ctp
	code/web/public_php/webtt/app/views/translation_files/view.ctp
	code/web/public_php/webtt/app/views/translations/add.ctp
	code/web/public_php/webtt/app/views/translations/admin_add.ctp
	code/web/public_php/webtt/app/views/translations/admin_edit.ctp
	code/web/public_php/webtt/app/views/translations/admin_index.ctp
	code/web/public_php/webtt/app/views/translations/admin_view.ctp
	code/web/public_php/webtt/app/views/translations/edit.ctp
	code/web/public_php/webtt/app/views/translations/index.ctp
	code/web/public_php/webtt/app/views/translations/view.ctp
	code/web/public_php/webtt/app/views/users/admin_add.ctp
	code/web/public_php/webtt/app/views/users/admin_edit.ctp
	code/web/public_php/webtt/app/views/users/admin_index.ctp
	code/web/public_php/webtt/app/views/users/admin_view.ctp
	code/web/public_php/webtt/app/views/users/index.ctp
	code/web/public_php/webtt/app/views/users/login.ctp
	code/web/public_php/webtt/app/views/users/register.ctp
	code/web/public_php/webtt/app/views/users/view.ctp
	code/web/public_php/webtt/app/views/votes/add.ctp
	code/web/public_php/webtt/app/views/votes/admin_add.ctp
	code/web/public_php/webtt/app/views/votes/admin_edit.ctp
	code/web/public_php/webtt/app/views/votes/admin_index.ctp
	code/web/public_php/webtt/app/views/votes/admin_view.ctp
	code/web/public_php/webtt/app/views/votes/edit.ctp
	code/web/public_php/webtt/app/views/votes/index.ctp
	code/web/public_php/webtt/app/views/votes/view.ctp
	code/web/public_php/webtt/app/webroot/.htaccess
	code/web/public_php/webtt/app/webroot/css.php
	code/web/public_php/webtt/app/webroot/css/960.css
	code/web/public_php/webtt/app/webroot/css/cake.generic.css
	code/web/public_php/webtt/app/webroot/css/grid.css
	code/web/public_php/webtt/app/webroot/css/ie.css
	code/web/public_php/webtt/app/webroot/css/ie6.css
	code/web/public_php/webtt/app/webroot/css/labelWidth.css
	code/web/public_php/webtt/app/webroot/css/layout.css
	code/web/public_php/webtt/app/webroot/css/nav.css
	code/web/public_php/webtt/app/webroot/css/reset.css
	code/web/public_php/webtt/app/webroot/css/text.css
	code/web/public_php/webtt/app/webroot/favicon.ico
	code/web/public_php/webtt/app/webroot/files/empty
	code/web/public_php/webtt/app/webroot/img/cake.icon.png
	code/web/public_php/webtt/app/webroot/img/cake.power.gif
	code/web/public_php/webtt/app/webroot/img/switch_minus.gif
	code/web/public_php/webtt/app/webroot/img/switch_plus.gif
	code/web/public_php/webtt/app/webroot/index.php
	code/web/public_php/webtt/app/webroot/js/empty
	code/web/public_php/webtt/app/webroot/js/jquery-1.3.2.min.js
	code/web/public_php/webtt/app/webroot/js/jquery-fluid16.js
	code/web/public_php/webtt/app/webroot/js/jquery-ui.js
	code/web/public_php/webtt/app/webroot/test.php
	code/web/public_php/webtt/app/webroot/testfiles/raw_testfile.csv
	code/web/public_php/webtt/app/webroot/testfiles/testdir/ugatestindir.csv
	code/web/public_php/webtt/app/webroot/testfiles/ugabla.csv
	code/web/public_php/webtt/cake/LICENSE.txt
	code/web/public_php/webtt/cake/VERSION.txt
	code/web/public_php/webtt/cake/basics.php
	code/web/public_php/webtt/cake/bootstrap.php
	code/web/public_php/webtt/cake/config/config.php
	code/web/public_php/webtt/cake/config/paths.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/0080_00ff.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/0100_017f.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/0180_024F.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/0250_02af.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/0370_03ff.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/0400_04ff.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/0500_052f.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/0530_058f.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/1e00_1eff.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/1f00_1fff.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/2100_214f.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/2150_218f.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/2460_24ff.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/2c00_2c5f.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/2c60_2c7f.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/2c80_2cff.php
	code/web/public_php/webtt/cake/config/unicode/casefolding/ff00_ffef.php
	code/web/public_php/webtt/cake/console/cake
	code/web/public_php/webtt/cake/console/cake.bat
	code/web/public_php/webtt/cake/console/cake.php
	code/web/public_php/webtt/cake/console/error.php
	code/web/public_php/webtt/cake/console/libs/acl.php
	code/web/public_php/webtt/cake/console/libs/api.php
	code/web/public_php/webtt/cake/console/libs/bake.php
	code/web/public_php/webtt/cake/console/libs/console.php
	code/web/public_php/webtt/cake/console/libs/i18n.php
	code/web/public_php/webtt/cake/console/libs/schema.php
	code/web/public_php/webtt/cake/console/libs/shell.php
	code/web/public_php/webtt/cake/console/libs/tasks/bake.php
	code/web/public_php/webtt/cake/console/libs/tasks/controller.php
	code/web/public_php/webtt/cake/console/libs/tasks/db_config.php
	code/web/public_php/webtt/cake/console/libs/tasks/extract.php
	code/web/public_php/webtt/cake/console/libs/tasks/fixture.php
	code/web/public_php/webtt/cake/console/libs/tasks/model.php
	code/web/public_php/webtt/cake/console/libs/tasks/plugin.php
	code/web/public_php/webtt/cake/console/libs/tasks/project.php
	code/web/public_php/webtt/cake/console/libs/tasks/template.php
	code/web/public_php/webtt/cake/console/libs/tasks/test.php
	code/web/public_php/webtt/cake/console/libs/tasks/view.php
	code/web/public_php/webtt/cake/console/libs/testsuite.php
	code/web/public_php/webtt/cake/console/templates/default/actions/controller_actions.ctp
	code/web/public_php/webtt/cake/console/templates/default/classes/controller.ctp
	code/web/public_php/webtt/cake/console/templates/default/classes/fixture.ctp
	code/web/public_php/webtt/cake/console/templates/default/classes/model.ctp
	code/web/public_php/webtt/cake/console/templates/default/classes/test.ctp
	code/web/public_php/webtt/cake/console/templates/default/views/form.ctp
	code/web/public_php/webtt/cake/console/templates/default/views/home.ctp
	code/web/public_php/webtt/cake/console/templates/default/views/index.ctp
	code/web/public_php/webtt/cake/console/templates/default/views/view.ctp
	code/web/public_php/webtt/cake/console/templates/skel/.htaccess
	code/web/public_php/webtt/cake/console/templates/skel/app_controller.php
	code/web/public_php/webtt/cake/console/templates/skel/app_helper.php
	code/web/public_php/webtt/cake/console/templates/skel/app_model.php
	code/web/public_php/webtt/cake/console/templates/skel/config/acl.ini.php
	code/web/public_php/webtt/cake/console/templates/skel/config/bootstrap.php
	code/web/public_php/webtt/cake/console/templates/skel/config/core.php
	code/web/public_php/webtt/cake/console/templates/skel/config/database.php.default
	code/web/public_php/webtt/cake/console/templates/skel/config/routes.php
	code/web/public_php/webtt/cake/console/templates/skel/config/schema/db_acl.php
	code/web/public_php/webtt/cake/console/templates/skel/config/schema/db_acl.sql
	code/web/public_php/webtt/cake/console/templates/skel/config/schema/i18n.php
	code/web/public_php/webtt/cake/console/templates/skel/config/schema/i18n.sql
	code/web/public_php/webtt/cake/console/templates/skel/config/schema/sessions.php
	code/web/public_php/webtt/cake/console/templates/skel/config/schema/sessions.sql
	code/web/public_php/webtt/cake/console/templates/skel/controllers/components/empty
	code/web/public_php/webtt/cake/console/templates/skel/controllers/pages_controller.php
	code/web/public_php/webtt/cake/console/templates/skel/index.php
	code/web/public_php/webtt/cake/console/templates/skel/libs/empty
	code/web/public_php/webtt/cake/console/templates/skel/locale/eng/LC_MESSAGES/empty
	code/web/public_php/webtt/cake/console/templates/skel/models/behaviors/empty
	code/web/public_php/webtt/cake/console/templates/skel/models/datasources/empty
	code/web/public_php/webtt/cake/console/templates/skel/plugins/empty
	code/web/public_php/webtt/cake/console/templates/skel/tests/cases/behaviors/empty
	code/web/public_php/webtt/cake/console/templates/skel/tests/cases/components/empty
	code/web/public_php/webtt/cake/console/templates/skel/tests/cases/controllers/empty
	code/web/public_php/webtt/cake/console/templates/skel/tests/cases/datasources/empty
	code/web/public_php/webtt/cake/console/templates/skel/tests/cases/helpers/empty
	code/web/public_php/webtt/cake/console/templates/skel/tests/cases/models/empty
	code/web/public_php/webtt/cake/console/templates/skel/tests/cases/shells/empty
	code/web/public_php/webtt/cake/console/templates/skel/tests/fixtures/empty
	code/web/public_php/webtt/cake/console/templates/skel/tests/groups/empty
	code/web/public_php/webtt/cake/console/templates/skel/tmp/cache/models/empty
	code/web/public_php/webtt/cake/console/templates/skel/tmp/cache/persistent/empty
	code/web/public_php/webtt/cake/console/templates/skel/tmp/cache/views/empty
	code/web/public_php/webtt/cake/console/templates/skel/tmp/logs/empty
	code/web/public_php/webtt/cake/console/templates/skel/tmp/sessions/empty
	code/web/public_php/webtt/cake/console/templates/skel/tmp/tests/empty
	code/web/public_php/webtt/cake/console/templates/skel/vendors/shells/tasks/empty
	code/web/public_php/webtt/cake/console/templates/skel/views/elements/email/html/default.ctp
	code/web/public_php/webtt/cake/console/templates/skel/views/elements/email/text/default.ctp
	code/web/public_php/webtt/cake/console/templates/skel/views/elements/empty
	code/web/public_php/webtt/cake/console/templates/skel/views/errors/empty
	code/web/public_php/webtt/cake/console/templates/skel/views/helpers/empty
	code/web/public_php/webtt/cake/console/templates/skel/views/layouts/ajax.ctp
	code/web/public_php/webtt/cake/console/templates/skel/views/layouts/default.ctp
	code/web/public_php/webtt/cake/console/templates/skel/views/layouts/email/html/default.ctp
	code/web/public_php/webtt/cake/console/templates/skel/views/layouts/email/text/default.ctp
	code/web/public_php/webtt/cake/console/templates/skel/views/layouts/flash.ctp
	code/web/public_php/webtt/cake/console/templates/skel/views/layouts/js/default.ctp
	code/web/public_php/webtt/cake/console/templates/skel/views/layouts/rss/default.ctp
	code/web/public_php/webtt/cake/console/templates/skel/views/layouts/xml/default.ctp
	code/web/public_php/webtt/cake/console/templates/skel/views/pages/empty
	code/web/public_php/webtt/cake/console/templates/skel/views/scaffolds/empty
	code/web/public_php/webtt/cake/console/templates/skel/webroot/.htaccess
	code/web/public_php/webtt/cake/console/templates/skel/webroot/css.php
	code/web/public_php/webtt/cake/console/templates/skel/webroot/css/cake.generic.css
	code/web/public_php/webtt/cake/console/templates/skel/webroot/favicon.ico
	code/web/public_php/webtt/cake/console/templates/skel/webroot/img/cake.icon.png
	code/web/public_php/webtt/cake/console/templates/skel/webroot/img/cake.power.gif
	code/web/public_php/webtt/cake/console/templates/skel/webroot/index.php
	code/web/public_php/webtt/cake/console/templates/skel/webroot/js/empty
	code/web/public_php/webtt/cake/console/templates/skel/webroot/test.php
	code/web/public_php/webtt/cake/dispatcher.php
	code/web/public_php/webtt/cake/libs/cache.php
	code/web/public_php/webtt/cake/libs/cache/apc.php
	code/web/public_php/webtt/cake/libs/cache/file.php
	code/web/public_php/webtt/cake/libs/cache/memcache.php
	code/web/public_php/webtt/cake/libs/cache/xcache.php
	code/web/public_php/webtt/cake/libs/cake_log.php
	code/web/public_php/webtt/cake/libs/cake_session.php
	code/web/public_php/webtt/cake/libs/cake_socket.php
	code/web/public_php/webtt/cake/libs/class_registry.php
	code/web/public_php/webtt/cake/libs/configure.php
	code/web/public_php/webtt/cake/libs/controller/app_controller.php
	code/web/public_php/webtt/cake/libs/controller/component.php
	code/web/public_php/webtt/cake/libs/controller/components/acl.php
	code/web/public_php/webtt/cake/libs/controller/components/auth.php
	code/web/public_php/webtt/cake/libs/controller/components/cookie.php
	code/web/public_php/webtt/cake/libs/controller/components/email.php
	code/web/public_php/webtt/cake/libs/controller/components/request_handler.php
	code/web/public_php/webtt/cake/libs/controller/components/security.php
	code/web/public_php/webtt/cake/libs/controller/components/session.php
	code/web/public_php/webtt/cake/libs/controller/controller.php
	code/web/public_php/webtt/cake/libs/controller/pages_controller.php
	code/web/public_php/webtt/cake/libs/controller/scaffold.php
	code/web/public_php/webtt/cake/libs/debugger.php
	code/web/public_php/webtt/cake/libs/error.php
	code/web/public_php/webtt/cake/libs/file.php
	code/web/public_php/webtt/cake/libs/folder.php
	code/web/public_php/webtt/cake/libs/http_socket.php
	code/web/public_php/webtt/cake/libs/i18n.php
	code/web/public_php/webtt/cake/libs/inflector.php
	code/web/public_php/webtt/cake/libs/l10n.php
	code/web/public_php/webtt/cake/libs/log/file_log.php
	code/web/public_php/webtt/cake/libs/magic_db.php
	code/web/public_php/webtt/cake/libs/model/app_model.php
	code/web/public_php/webtt/cake/libs/model/behaviors/acl.php
	code/web/public_php/webtt/cake/libs/model/behaviors/containable.php
	code/web/public_php/webtt/cake/libs/model/behaviors/translate.php
	code/web/public_php/webtt/cake/libs/model/behaviors/tree.php
	code/web/public_php/webtt/cake/libs/model/cake_schema.php
	code/web/public_php/webtt/cake/libs/model/connection_manager.php
	code/web/public_php/webtt/cake/libs/model/datasources/datasource.php
	code/web/public_php/webtt/cake/libs/model/datasources/dbo/dbo_mssql.php
	code/web/public_php/webtt/cake/libs/model/datasources/dbo/dbo_mysql.php
	code/web/public_php/webtt/cake/libs/model/datasources/dbo/dbo_mysqli.php
	code/web/public_php/webtt/cake/libs/model/datasources/dbo/dbo_oracle.php
	code/web/public_php/webtt/cake/libs/model/datasources/dbo/dbo_postgres.php
	code/web/public_php/webtt/cake/libs/model/datasources/dbo/dbo_sqlite.php
	code/web/public_php/webtt/cake/libs/model/datasources/dbo_source.php
	code/web/public_php/webtt/cake/libs/model/db_acl.php
	code/web/public_php/webtt/cake/libs/model/model.php
	code/web/public_php/webtt/cake/libs/model/model_behavior.php
	code/web/public_php/webtt/cake/libs/multibyte.php
	code/web/public_php/webtt/cake/libs/object.php
	code/web/public_php/webtt/cake/libs/overloadable.php
	code/web/public_php/webtt/cake/libs/overloadable_php4.php
	code/web/public_php/webtt/cake/libs/overloadable_php5.php
	code/web/public_php/webtt/cake/libs/router.php
	code/web/public_php/webtt/cake/libs/sanitize.php
	code/web/public_php/webtt/cake/libs/security.php
	code/web/public_php/webtt/cake/libs/set.php
	code/web/public_php/webtt/cake/libs/string.php
	code/web/public_php/webtt/cake/libs/validation.php
	code/web/public_php/webtt/cake/libs/view/elements/email/html/default.ctp
	code/web/public_php/webtt/cake/libs/view/elements/email/text/default.ctp
	code/web/public_php/webtt/cake/libs/view/elements/sql_dump.ctp
	code/web/public_php/webtt/cake/libs/view/errors/error404.ctp
	code/web/public_php/webtt/cake/libs/view/errors/error500.ctp
	code/web/public_php/webtt/cake/libs/view/errors/missing_action.ctp
	code/web/public_php/webtt/cake/libs/view/errors/missing_behavior_class.ctp
	code/web/public_php/webtt/cake/libs/view/errors/missing_behavior_file.ctp
	code/web/public_php/webtt/cake/libs/view/errors/missing_component_class.ctp
	code/web/public_php/webtt/cake/libs/view/errors/missing_component_file.ctp
	code/web/public_php/webtt/cake/libs/view/errors/missing_connection.ctp
	code/web/public_php/webtt/cake/libs/view/errors/missing_controller.ctp
	code/web/public_php/webtt/cake/libs/view/errors/missing_helper_class.ctp
	code/web/public_php/webtt/cake/libs/view/errors/missing_helper_file.ctp
	code/web/public_php/webtt/cake/libs/view/errors/missing_layout.ctp
	code/web/public_php/webtt/cake/libs/view/errors/missing_model.ctp
	code/web/public_php/webtt/cake/libs/view/errors/missing_scaffolddb.ctp
	code/web/public_php/webtt/cake/libs/view/errors/missing_table.ctp
	code/web/public_php/webtt/cake/libs/view/errors/missing_view.ctp
	code/web/public_php/webtt/cake/libs/view/errors/private_action.ctp
	code/web/public_php/webtt/cake/libs/view/errors/scaffold_error.ctp
	code/web/public_php/webtt/cake/libs/view/helper.php
	code/web/public_php/webtt/cake/libs/view/helpers/ajax.php
	code/web/public_php/webtt/cake/libs/view/helpers/app_helper.php
	code/web/public_php/webtt/cake/libs/view/helpers/cache.php
	code/web/public_php/webtt/cake/libs/view/helpers/form.php
	code/web/public_php/webtt/cake/libs/view/helpers/html.php
	code/web/public_php/webtt/cake/libs/view/helpers/javascript.php
	code/web/public_php/webtt/cake/libs/view/helpers/jquery_engine.php
	code/web/public_php/webtt/cake/libs/view/helpers/js.php
	code/web/public_php/webtt/cake/libs/view/helpers/mootools_engine.php
	code/web/public_php/webtt/cake/libs/view/helpers/number.php
	code/web/public_php/webtt/cake/libs/view/helpers/paginator.php
	code/web/public_php/webtt/cake/libs/view/helpers/prototype_engine.php
	code/web/public_php/webtt/cake/libs/view/helpers/rss.php
	code/web/public_php/webtt/cake/libs/view/helpers/session.php
	code/web/public_php/webtt/cake/libs/view/helpers/text.php
	code/web/public_php/webtt/cake/libs/view/helpers/time.php
	code/web/public_php/webtt/cake/libs/view/helpers/xml.php
	code/web/public_php/webtt/cake/libs/view/layouts/ajax.ctp
	code/web/public_php/webtt/cake/libs/view/layouts/default.ctp
	code/web/public_php/webtt/cake/libs/view/layouts/email/html/default.ctp
	code/web/public_php/webtt/cake/libs/view/layouts/email/text/default.ctp
	code/web/public_php/webtt/cake/libs/view/layouts/flash.ctp
	code/web/public_php/webtt/cake/libs/view/layouts/js/default.ctp
	code/web/public_php/webtt/cake/libs/view/layouts/rss/default.ctp
	code/web/public_php/webtt/cake/libs/view/layouts/xml/default.ctp
	code/web/public_php/webtt/cake/libs/view/media.php
	code/web/public_php/webtt/cake/libs/view/pages/home.ctp
	code/web/public_php/webtt/cake/libs/view/scaffolds/edit.ctp
	code/web/public_php/webtt/cake/libs/view/scaffolds/index.ctp
	code/web/public_php/webtt/cake/libs/view/scaffolds/view.ctp
	code/web/public_php/webtt/cake/libs/view/theme.php
	code/web/public_php/webtt/cake/libs/view/view.php
	code/web/public_php/webtt/cake/libs/xml.php
	code/web/public_php/webtt/cake/tests/cases/basics.test.php
	code/web/public_php/webtt/cake/tests/cases/console/cake.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/acl.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/api.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/bake.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/schema.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/shell.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/tasks/controller.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/tasks/db_config.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/tasks/extract.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/tasks/fixture.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/tasks/model.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/tasks/plugin.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/tasks/project.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/tasks/template.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/tasks/test.test.php
	code/web/public_php/webtt/cake/tests/cases/console/libs/tasks/view.test.php
	code/web/public_php/webtt/cake/tests/cases/dispatcher.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/cache.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/cache/apc.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/cache/file.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/cache/memcache.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/cache/xcache.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/cake_log.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/cake_session.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/cake_socket.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/cake_test_case.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/cake_test_fixture.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/class_registry.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/code_coverage_manager.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/configure.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/controller/component.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/controller/components/acl.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/controller/components/auth.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/controller/components/cookie.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/controller/components/email.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/controller/components/request_handler.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/controller/components/security.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/controller/components/session.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/controller/controller.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/controller/controller_merge_vars.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/controller/pages_controller.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/controller/scaffold.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/debugger.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/error.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/file.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/folder.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/http_socket.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/i18n.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/inflector.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/l10n.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/log/file_log.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/magic_db.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/behaviors/acl.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/behaviors/containable.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/behaviors/translate.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/behaviors/tree.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/cake_schema.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/connection_manager.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/datasources/dbo/dbo_mssql.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/datasources/dbo/dbo_mysql.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/datasources/dbo/dbo_mysqli.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/datasources/dbo/dbo_oracle.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/datasources/dbo/dbo_postgres.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/datasources/dbo/dbo_sqlite.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/datasources/dbo_source.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/db_acl.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/model.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/model_behavior.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/model_delete.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/model_integration.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/model_read.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/model_validation.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/model_write.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/model/models.php
	code/web/public_php/webtt/cake/tests/cases/libs/multibyte.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/object.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/overloadable.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/router.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/sanitize.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/security.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/set.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/string.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/test_manager.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/validation.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helper.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/ajax.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/cache.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/form.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/html.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/javascript.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/jquery_engine.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/js.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/mootools_engine.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/number.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/paginator.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/prototype_engine.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/rss.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/session.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/text.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/time.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/helpers/xml.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/media.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/theme.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/view/view.test.php
	code/web/public_php/webtt/cake/tests/cases/libs/xml.test.php
	code/web/public_php/webtt/cake/tests/fixtures/account_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/aco_action_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/aco_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/aco_two_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/ad_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/advertisement_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/after_tree_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/another_article_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/apple_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/aro_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/aro_two_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/aros_aco_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/aros_aco_two_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/article_featured_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/article_featureds_tags_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/article_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/articles_tag_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/attachment_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/auth_user_custom_field_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/auth_user_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/author_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/basket_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/bid_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/binary_test_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/book_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/cache_test_model_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/callback_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/campaign_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/category_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/category_thread_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/cd_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/comment_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/content_account_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/content_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/counter_cache_post_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/counter_cache_post_nonstandard_primary_key_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/counter_cache_user_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/counter_cache_user_nonstandard_primary_key_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/data_test_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/datatype_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/dependency_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/device_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/device_type_category_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/device_type_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/document_directory_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/document_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/exterior_type_category_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/feature_set_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/featured_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/film_file_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/flag_tree_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/fruit_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/fruits_uuid_tag_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/group_update_all_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/home_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/image_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/item_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/items_portfolio_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/join_a_b_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/join_a_c_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/join_a_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/join_b_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/join_c_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/join_thing_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/message_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/my_categories_my_products_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/my_categories_my_users_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/my_category_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/my_product_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/my_user_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/node_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/number_tree_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/number_tree_two_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/numeric_article_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/overall_favorite_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/person_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/portfolio_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/post_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/posts_tag_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/primary_model_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/product_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/product_update_all_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/project_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/sample_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/secondary_model_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/session_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/something_else_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/something_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/stories_tag_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/story_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/syfile_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/tag_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/test_plugin_article_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/test_plugin_comment_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/the_paper_monkies_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/thread_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/translate_article_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/translate_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/translate_table_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/translate_with_prefix_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/translated_article_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/translated_item_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/unconventional_tree_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/underscore_field_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/user_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/uuid_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/uuid_tag_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/uuid_tree_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/uuiditem_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/uuiditems_uuidportfolio_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/uuiditems_uuidportfolio_numericid_fixture.php
	code/web/public_php/webtt/cake/tests/fixtures/uuidportfolio_fixture.php
	code/web/public_php/webtt/cake/tests/groups/acl.group.php
	code/web/public_php/webtt/cake/tests/groups/bake.group.php
	code/web/public_php/webtt/cake/tests/groups/behaviors.group.php
	code/web/public_php/webtt/cake/tests/groups/cache.group.php
	code/web/public_php/webtt/cake/tests/groups/components.group.php
	code/web/public_php/webtt/cake/tests/groups/configure.group.php
	code/web/public_php/webtt/cake/tests/groups/console.group.php
	code/web/public_php/webtt/cake/tests/groups/controller.group.php
	code/web/public_php/webtt/cake/tests/groups/database.group.php
	code/web/public_php/webtt/cake/tests/groups/helpers.group.php
	code/web/public_php/webtt/cake/tests/groups/i18n.group.php
	code/web/public_php/webtt/cake/tests/groups/javascript.group.php
	code/web/public_php/webtt/cake/tests/groups/lib.group.php
	code/web/public_php/webtt/cake/tests/groups/model.group.php
	code/web/public_php/webtt/cake/tests/groups/no_cross_contamination.group.php
	code/web/public_php/webtt/cake/tests/groups/routing_system.group.php
	code/web/public_php/webtt/cake/tests/groups/socket.group.php
	code/web/public_php/webtt/cake/tests/groups/test_suite.group.php
	code/web/public_php/webtt/cake/tests/groups/view.group.php
	code/web/public_php/webtt/cake/tests/groups/xml.group.php
	code/web/public_php/webtt/cake/tests/lib/cake_test_case.php
	code/web/public_php/webtt/cake/tests/lib/cake_test_fixture.php
	code/web/public_php/webtt/cake/tests/lib/cake_test_model.php
	code/web/public_php/webtt/cake/tests/lib/cake_test_suite_dispatcher.php
	code/web/public_php/webtt/cake/tests/lib/cake_web_test_case.php
	code/web/public_php/webtt/cake/tests/lib/code_coverage_manager.php
	code/web/public_php/webtt/cake/tests/lib/reporter/cake_base_reporter.php
	code/web/public_php/webtt/cake/tests/lib/reporter/cake_cli_reporter.php
	code/web/public_php/webtt/cake/tests/lib/reporter/cake_html_reporter.php
	code/web/public_php/webtt/cake/tests/lib/reporter/cake_text_reporter.php
	code/web/public_php/webtt/cake/tests/lib/templates/footer.php
	code/web/public_php/webtt/cake/tests/lib/templates/header.php
	code/web/public_php/webtt/cake/tests/lib/templates/menu.php
	code/web/public_php/webtt/cake/tests/lib/templates/simpletest.php
	code/web/public_php/webtt/cake/tests/lib/templates/xdebug.php
	code/web/public_php/webtt/cake/tests/lib/test_manager.php
	code/web/public_php/webtt/cake/tests/test_app/config/acl.ini.php
	code/web/public_php/webtt/cake/tests/test_app/controllers/components/empty
	code/web/public_php/webtt/cake/tests/test_app/controllers/tests_apps_controller.php
	code/web/public_php/webtt/cake/tests/test_app/controllers/tests_apps_posts_controller.php
	code/web/public_php/webtt/cake/tests/test_app/libs/cache/test_app_cache.php
	code/web/public_php/webtt/cake/tests/test_app/libs/library.php
	code/web/public_php/webtt/cake/tests/test_app/libs/log/test_app_log.php
	code/web/public_php/webtt/cake/tests/test_app/locale/cache_test_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/cache_test_po/LC_MESSAGES/dom1.po
	code/web/public_php/webtt/cake/tests/test_app/locale/cache_test_po/LC_MESSAGES/dom2.po
	code/web/public_php/webtt/cake/tests/test_app/locale/ja_jp/LC_TIME
	code/web/public_php/webtt/cake/tests/test_app/locale/po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/po/LC_MONETARY/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/po/LC_TIME
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_0_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_0_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_0_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_0_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_10_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_10_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_10_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_10_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_11_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_11_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_11_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_11_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_12_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_12_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_12_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_12_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_13_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_13_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_13_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_13_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_14_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_14_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_14_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_14_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_1_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_1_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_1_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_1_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_2_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_2_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_2_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_2_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_3_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_3_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_3_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_3_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_4_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_4_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_4_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_4_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_5_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_5_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_5_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_5_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_6_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_6_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_6_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_6_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_7_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_7_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_7_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_7_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_8_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_8_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_8_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_8_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_9_mo/LC_MESSAGES/core.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_9_mo/LC_MESSAGES/default.mo
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_9_po/LC_MESSAGES/core.po
	code/web/public_php/webtt/cake/tests/test_app/locale/rule_9_po/LC_MESSAGES/default.po
	code/web/public_php/webtt/cake/tests/test_app/locale/time_test/LC_TIME
	code/web/public_php/webtt/cake/tests/test_app/models/behaviors/empty
	code/web/public_php/webtt/cake/tests/test_app/models/behaviors/persister_one_behavior.php
	code/web/public_php/webtt/cake/tests/test_app/models/behaviors/persister_two_behavior.php
	code/web/public_php/webtt/cake/tests/test_app/models/comment.php
	code/web/public_php/webtt/cake/tests/test_app/models/datasources/test2_other_source.php
	code/web/public_php/webtt/cake/tests/test_app/models/datasources/test2_source.php
	code/web/public_php/webtt/cake/tests/test_app/models/persister_one.php
	code/web/public_php/webtt/cake/tests/test_app/models/persister_two.php
	code/web/public_php/webtt/cake/tests/test_app/models/post.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/plugin_js/webroot/js/one/plugin_one.js
	code/web/public_php/webtt/cake/tests/test_app/plugins/plugin_js/webroot/js/plugin_js.js
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/config/load.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/config/more.load.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/config/schema/schema.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/controllers/components/other_component.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/controllers/components/plugins_component.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/controllers/components/test_plugin_component.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/controllers/components/test_plugin_other_component.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/controllers/test_plugin_controller.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/controllers/tests_controller.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/libs/cache/test_plugin_cache.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/libs/log/test_plugin_log.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/libs/test_plugin_library.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/locale/po/LC_MESSAGES/test_plugin.po
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/locale/po/LC_MONETARY/test_plugin.po
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/models/behaviors/test_plugin_persister_one.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/models/behaviors/test_plugin_persister_two.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/models/datasources/dbo/dbo_dummy.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/models/datasources/test_other_source.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/models/datasources/test_source.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/models/test_plugin_auth_user.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/models/test_plugin_authors.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/models/test_plugin_comment.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/models/test_plugin_post.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/test_plugin_app_controller.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/test_plugin_app_model.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/vendors/sample/sample_plugin.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/vendors/shells/example.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/vendors/shells/tasks/empty
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/vendors/shells/templates/empty
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/vendors/welcome.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/views/elements/plugin_element.ctp
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/views/elements/test_plugin_element.ctp
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/views/helpers/other_helper.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/views/helpers/plugged_helper.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/views/helpers/test_plugin_app.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/views/layouts/default.ctp
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/views/tests/index.ctp
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/views/tests/scaffold.edit.ctp
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/webroot/css/test_plugin_asset.css
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/webroot/css/theme_one.htc
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/webroot/css/unknown.extension
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/webroot/flash/plugin_test.swf
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/webroot/img/cake.icon.gif
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/webroot/js/test_plugin/test.js
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/webroot/pdfs/plugin_test.pdf
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin/webroot/root.js
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin_two/vendors/shells/example.php
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin_two/vendors/shells/tasks/empty
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin_two/vendors/shells/templates/empty
	code/web/public_php/webtt/cake/tests/test_app/plugins/test_plugin_two/vendors/shells/welcome.php
	code/web/public_php/webtt/cake/tests/test_app/tmp/dir_map
	code/web/public_php/webtt/cake/tests/test_app/vendors/Test/MyTest.php
	code/web/public_php/webtt/cake/tests/test_app/vendors/Test/hello.php
	code/web/public_php/webtt/cake/tests/test_app/vendors/css/test_asset.css
	code/web/public_php/webtt/cake/tests/test_app/vendors/img/test.jpg
	code/web/public_php/webtt/cake/tests/test_app/vendors/sample/configure_test_vendor_sample.php
	code/web/public_php/webtt/cake/tests/test_app/vendors/shells/sample.php
	code/web/public_php/webtt/cake/tests/test_app/vendors/shells/tasks/empty
	code/web/public_php/webtt/cake/tests/test_app/vendors/somename/some.name.php
	code/web/public_php/webtt/cake/tests/test_app/vendors/welcome.php
	code/web/public_php/webtt/cake/tests/test_app/views/elements/email/html/custom.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/elements/email/html/default.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/elements/email/html/nested_element.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/elements/email/text/custom.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/elements/email/text/default.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/elements/email/text/wide.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/elements/empty
	code/web/public_php/webtt/cake/tests/test_app/views/elements/html_call.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/elements/nocache/contains_nocache.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/elements/nocache/plain.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/elements/nocache/sub1.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/elements/nocache/sub2.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/elements/session_helper.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/elements/test_element.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/elements/type_check.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/errors/empty
	code/web/public_php/webtt/cake/tests/test_app/views/helpers/banana.php
	code/web/public_php/webtt/cake/tests/test_app/views/helpers/empty
	code/web/public_php/webtt/cake/tests/test_app/views/layouts/ajax.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/layouts/ajax2.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/layouts/cache_empty_sections.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/layouts/cache_layout.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/layouts/default.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/layouts/email/html/default.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/layouts/email/html/thin.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/layouts/email/text/default.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/layouts/flash.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/layouts/js/default.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/layouts/multi_cache.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/layouts/rss/default.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/layouts/xml/default.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/pages/empty
	code/web/public_php/webtt/cake/tests/test_app/views/pages/extract.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/pages/home.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/posts/cache_empty_sections.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/posts/cache_form.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/posts/helper_overwrite.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/posts/index.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/posts/multiple_nocache.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/posts/nocache_multiple_element.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/posts/scaffold.edit.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/posts/sequencial_nocache.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/posts/test_nocache_tags.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/scaffolds/empty
	code/web/public_php/webtt/cake/tests/test_app/views/tests_apps/index.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/themed/test_theme/elements/test_element.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/themed/test_theme/layouts/default.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/themed/test_theme/plugins/test_plugin/layouts/plugin_default.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/themed/test_theme/plugins/test_plugin/tests/index.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/themed/test_theme/posts/index.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/themed/test_theme/posts/scaffold.index.ctp
	code/web/public_php/webtt/cake/tests/test_app/views/themed/test_theme/webroot/css/test_asset.css
	code/web/public_php/webtt/cake/tests/test_app/views/themed/test_theme/webroot/css/theme_webroot.css
	code/web/public_php/webtt/cake/tests/test_app/views/themed/test_theme/webroot/flash/theme_test.swf
	code/web/public_php/webtt/cake/tests/test_app/views/themed/test_theme/webroot/img/cake.power.gif
	code/web/public_php/webtt/cake/tests/test_app/views/themed/test_theme/webroot/img/test.jpg
	code/web/public_php/webtt/cake/tests/test_app/views/themed/test_theme/webroot/js/one/theme_one.js
	code/web/public_php/webtt/cake/tests/test_app/views/themed/test_theme/webroot/js/theme.js
	code/web/public_php/webtt/cake/tests/test_app/views/themed/test_theme/webroot/pdfs/theme_test.pdf
	code/web/public_php/webtt/cake/tests/test_app/webroot/theme/test_theme/css/theme_webroot.css
	code/web/public_php/webtt/cake/tests/test_app/webroot/theme/test_theme/css/webroot_test.css
	code/web/public_php/webtt/cake/tests/test_app/webroot/theme/test_theme/img/cake.power.gif
	code/web/public_php/webtt/cake/tests/test_app/webroot/theme/test_theme/img/test.jpg
	code/web/public_php/webtt/docs/INSTALL
	code/web/public_php/webtt/docs/db/CakePHP_Associations
	code/web/public_php/webtt/docs/db/erd.png
	code/web/public_php/webtt/docs/db/webtt2.db
	code/web/public_php/webtt/index.php
	code/web/public_php/webtt/plugins/debug_kit/.gitignore
	code/web/public_php/webtt/plugins/debug_kit/README.mdown
	code/web/public_php/webtt/plugins/debug_kit/build.py
	code/web/public_php/webtt/plugins/debug_kit/controllers/components/toolbar.php
	code/web/public_php/webtt/plugins/debug_kit/controllers/toolbar_access_controller.php
	code/web/public_php/webtt/plugins/debug_kit/debug_kit_app_controller.php
	code/web/public_php/webtt/plugins/debug_kit/debug_kit_app_model.php
	code/web/public_php/webtt/plugins/debug_kit/locale/debug_kit.pot
	code/web/public_php/webtt/plugins/debug_kit/locale/eng/LC_MESSAGES/debug_kit.po
	code/web/public_php/webtt/plugins/debug_kit/locale/spa/LC_MESSAGES/debug_kit.po
	code/web/public_php/webtt/plugins/debug_kit/models/behaviors/timed.php
	code/web/public_php/webtt/plugins/debug_kit/models/toolbar_access.php
	code/web/public_php/webtt/plugins/debug_kit/tests/cases/behaviors/timed.test.php
	code/web/public_php/webtt/plugins/debug_kit/tests/cases/controllers/components/toolbar.test.php
	code/web/public_php/webtt/plugins/debug_kit/tests/cases/models/toolbar_access.test.php
	code/web/public_php/webtt/plugins/debug_kit/tests/cases/test_objects.php
	code/web/public_php/webtt/plugins/debug_kit/tests/cases/vendors/debug_kit_debugger.test.php
	code/web/public_php/webtt/plugins/debug_kit/tests/cases/vendors/fire_cake.test.php
	code/web/public_php/webtt/plugins/debug_kit/tests/cases/views/debug.test.php
	code/web/public_php/webtt/plugins/debug_kit/tests/cases/views/helpers/fire_php_toolbar.test.php
	code/web/public_php/webtt/plugins/debug_kit/tests/cases/views/helpers/html_toolbar.test.php
	code/web/public_php/webtt/plugins/debug_kit/tests/cases/views/helpers/toolbar.test.php
	code/web/public_php/webtt/plugins/debug_kit/tests/groups/view_group.group.php
	code/web/public_php/webtt/plugins/debug_kit/tests/test_app/controllers/debug_kit_test_controller.php
	code/web/public_php/webtt/plugins/debug_kit/tests/test_app/vendors/test_panel.php
	code/web/public_php/webtt/plugins/debug_kit/tests/test_app/views/debug_kit_test/request_action_render.ctp
	code/web/public_php/webtt/plugins/debug_kit/vendors/debug_kit_debugger.php
	code/web/public_php/webtt/plugins/debug_kit/vendors/fire_cake.php
	code/web/public_php/webtt/plugins/debug_kit/vendors/shells/benchmark.php
	code/web/public_php/webtt/plugins/debug_kit/vendors/shells/whitespace.php
	code/web/public_php/webtt/plugins/debug_kit/views/debug.php
	code/web/public_php/webtt/plugins/debug_kit/views/elements/debug_toolbar.ctp
	code/web/public_php/webtt/plugins/debug_kit/views/elements/history_panel.ctp
	code/web/public_php/webtt/plugins/debug_kit/views/elements/log_panel.ctp
	code/web/public_php/webtt/plugins/debug_kit/views/elements/request_panel.ctp
	code/web/public_php/webtt/plugins/debug_kit/views/elements/session_panel.ctp
	code/web/public_php/webtt/plugins/debug_kit/views/elements/sql_log_panel.ctp
	code/web/public_php/webtt/plugins/debug_kit/views/elements/timer_panel.ctp
	code/web/public_php/webtt/plugins/debug_kit/views/elements/variables_panel.ctp
	code/web/public_php/webtt/plugins/debug_kit/views/helpers/fire_php_toolbar.php
	code/web/public_php/webtt/plugins/debug_kit/views/helpers/html_toolbar.php
	code/web/public_php/webtt/plugins/debug_kit/views/helpers/simple_graph.php
	code/web/public_php/webtt/plugins/debug_kit/views/helpers/toolbar.php
	code/web/public_php/webtt/plugins/debug_kit/views/toolbar_access/history_state.ctp
	code/web/public_php/webtt/plugins/debug_kit/views/toolbar_access/sql_explain.ctp
	code/web/public_php/webtt/plugins/debug_kit/webroot/css/debug_toolbar.css
	code/web/public_php/webtt/plugins/debug_kit/webroot/img/cake.icon.png
	code/web/public_php/webtt/plugins/debug_kit/webroot/js/js_debug_toolbar.js
	code/web/public_php/webtt/plugins/empty
	code/web/public_php/webtt/vendors/shells/tasks/empty
	code/web/public_php/webtt/vendors/shells/templates/empty
	code/web/public_php/webtt/vendors/simpletest/HELP_MY_TESTS_DONT_WORK_ANYMORE
	code/web/public_php/webtt/vendors/simpletest/LICENSE
	code/web/public_php/webtt/vendors/simpletest/README
	code/web/public_php/webtt/vendors/simpletest/VERSION
	code/web/public_php/webtt/vendors/simpletest/authentication.php
	code/web/public_php/webtt/vendors/simpletest/autorun.php
	code/web/public_php/webtt/vendors/simpletest/browser.php
	code/web/public_php/webtt/vendors/simpletest/collector.php
	code/web/public_php/webtt/vendors/simpletest/compatibility.php
	code/web/public_php/webtt/vendors/simpletest/cookies.php
	code/web/public_php/webtt/vendors/simpletest/default_reporter.php
	code/web/public_php/webtt/vendors/simpletest/detached.php
	code/web/public_php/webtt/vendors/simpletest/docs/en/authentication_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/en/browser_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/en/docs.css
	code/web/public_php/webtt/vendors/simpletest/docs/en/expectation_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/en/form_testing_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/en/group_test_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/en/index.html
	code/web/public_php/webtt/vendors/simpletest/docs/en/mock_objects_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/en/overview.html
	code/web/public_php/webtt/vendors/simpletest/docs/en/partial_mocks_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/en/reporter_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/en/unit_test_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/en/web_tester_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/fr/authentication_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/fr/browser_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/fr/docs.css
	code/web/public_php/webtt/vendors/simpletest/docs/fr/expectation_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/fr/form_testing_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/fr/group_test_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/fr/index.html
	code/web/public_php/webtt/vendors/simpletest/docs/fr/mock_objects_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/fr/overview.html
	code/web/public_php/webtt/vendors/simpletest/docs/fr/partial_mocks_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/fr/reporter_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/fr/unit_test_documentation.html
	code/web/public_php/webtt/vendors/simpletest/docs/fr/web_tester_documentation.html
	code/web/public_php/webtt/vendors/simpletest/dumper.php
	code/web/public_php/webtt/vendors/simpletest/eclipse.php
	code/web/public_php/webtt/vendors/simpletest/encoding.php
	code/web/public_php/webtt/vendors/simpletest/errors.php
	code/web/public_php/webtt/vendors/simpletest/exceptions.php
	code/web/public_php/webtt/vendors/simpletest/expectation.php
	code/web/public_php/webtt/vendors/simpletest/extensions/pear_test_case.php
	code/web/public_php/webtt/vendors/simpletest/extensions/testdox.php
	code/web/public_php/webtt/vendors/simpletest/extensions/testdox/test.php
	code/web/public_php/webtt/vendors/simpletest/form.php
	code/web/public_php/webtt/vendors/simpletest/frames.php
	code/web/public_php/webtt/vendors/simpletest/http.php
	code/web/public_php/webtt/vendors/simpletest/invoker.php
	code/web/public_php/webtt/vendors/simpletest/mock_objects.php
	code/web/public_php/webtt/vendors/simpletest/page.php
	code/web/public_php/webtt/vendors/simpletest/php_parser.php
	code/web/public_php/webtt/vendors/simpletest/reflection_php4.php
	code/web/public_php/webtt/vendors/simpletest/reflection_php5.php
	code/web/public_php/webtt/vendors/simpletest/remote.php
	code/web/public_php/webtt/vendors/simpletest/reporter.php
	code/web/public_php/webtt/vendors/simpletest/scorer.php
	code/web/public_php/webtt/vendors/simpletest/selector.php
	code/web/public_php/webtt/vendors/simpletest/shell_tester.php
	code/web/public_php/webtt/vendors/simpletest/simpletest.php
	code/web/public_php/webtt/vendors/simpletest/socket.php
	code/web/public_php/webtt/vendors/simpletest/tag.php
	code/web/public_php/webtt/vendors/simpletest/test_case.php
	code/web/public_php/webtt/vendors/simpletest/tidy_parser.php
	code/web/public_php/webtt/vendors/simpletest/unit_tester.php
	code/web/public_php/webtt/vendors/simpletest/url.php
	code/web/public_php/webtt/vendors/simpletest/user_agent.php
	code/web/public_php/webtt/vendors/simpletest/web_tester.php
	code/web/public_php/webtt/vendors/simpletest/xml.php
This commit is contained in:
deed 2017-03-20 17:43:51 +01:00
commit 71d62b544b
2537 changed files with 209172 additions and 170043 deletions

8
.gitignore vendored
View file

@ -162,13 +162,6 @@ build/*
install/* install/*
build_vc* build_vc*
code/nel/tools/build_gamedata/configuration/buildsite.py code/nel/tools/build_gamedata/configuration/buildsite.py
code/build_mac
code/build_linux32
code/build_linux64
code/build_windows32
code/build_windows64
code/build_server
code/build_nel_tools
# Linux nel compile # Linux nel compile
code/nel/build/nel-config code/nel/build/nel-config
@ -245,7 +238,6 @@ code/ryzom/tools/server/ryzom_ams/old
#tools and external dir's #tools and external dir's
external external
external_vc14
external_stlport external_stlport
nel_tools* nel_tools*
ryzom_tools* ryzom_tools*

28
.hgeol Normal file
View file

@ -0,0 +1,28 @@
[patterns]
**.h = native
**.cpp = native
**/database.xml = BIN
**/msg.xml = BIN
**.txt = native
**.xml = native
**.layout = native
**.looknfeel = native
**.imageset = native
**.font = native
**.scheme = native
**.tpl = native
**.xsd = native
**.dox = native
**.py = native
**.lua = native
**.pkg = native
[repository]
native = LF

265
.hgignore Normal file
View file

@ -0,0 +1,265 @@
syntax: glob
# Various build directories
bin
obj
Debug
Release
ReleaseDebug
DebugFast
ReleaseDebugStatic
DebugFastStatic
# Test and application directories
screenshots
release
test
Temp
# NeL cache
*.packed_sheets
# Ryzom save
save_shard
last_loaded_char.bin
*.binprim
*.string_cache
graphs_output
default_c
# Windows compile
*.exe
*.dll
*.lib
*.obj
# Linux compile
*.a
*.la
*.lo
*.Po
*.Plo
*.o
*.so
*.so.*
*_debug
*.pc
*.gch
# Mac OS X compile
*.dylib
# Log dump files
report_refused
report_failed
exception_catched
*.stat
*.log
log.txt
# Max plugin extensions
*.dlx
*.dlm
*.dlu
# makeall build
.mode_static
# cmake build files & directories
CMakeFiles
CMakeCache.txt
cmake_install.cmake
CTestTestfile.cmake
CPackConfig.cmake
CPackSourceConfig.cmake
.libs
# Linux garbage
Makefile*
aclocal.m4
config.guess
config.sub
configure
depcomp
config.h.in
nelconfig.h.in
install-sh
ltmain.sh
missing
ylwrap
*.mk
# Visual Studio garbage
*.opensdf
UpgradeLog*.XML
_UpgradeReport_Files
BuildLog.htm
mt.dep
ipch
*.suo
*.ncb
*.user
*.ilk
*.pdb
*.aps
*.exp
*.idb
*.sdf
# Mac OS X garbage
.DS_Store
# Ryzom server garbage
aes_alias_name.cfg
aes_nagios_report.txt
aes_state.txt
*.launch_ctrl
*.state
*.start_count
# Vim and kwrite cache
*~
# Kdevelop4 garbage
*.kdev4
.kdev4
# intellij project folder
.idea/
# Python cache
*.pyd
*.pyc
# Qt compiler
moc_*.cpp
*.moc
# Misc garbage
*.rej
*.orig
*.cachefile
*.cache
*.patch
*.7z
3rdParty
.svn
thumbs.db
Thumbs.db
*.tpl.php
.SyncID
.SyncIgnore
.SyncArchive
# build
code/nel/build/*
code/nelns/build/*
code/snowballs/build/*
code/ryzom/build/*
code/build/*
code/build-2010/*
build/*
install/*
build_vc*
code/nel/tools/build_gamedata/configuration/buildsite.py
# Linux nel compile
code/nel/build/nel-config
code/nel/config.status
code/nel/include/nelconfig.h
code/nel/include/stamp-h1
code/nel/libtool
code/nel/nel-config
code/nel/samples/3d/cluster_viewer/cluster_viewer
code/nel/samples/3d/font/font
code/nel/samples/georges/georges
code/nel/samples/misc/command/command
code/nel/samples/misc/configfile/configfile
code/nel/samples/misc/debug/debug
code/nel/samples/misc/i18n/i18n
code/nel/samples/misc/log/log
code/nel/samples/misc/strings/strings
code/nel/samples/net/chat/chatclient
code/nel/samples/net/chat/chatserver
code/nel/samples/net/login_system/nls_frontend_service
code/nel/samples/net/login_system/nls_login_client
code/nel/samples/net/udp/udp_bench_client
code/nel/samples/net/udp/udp_bench_service
code/nel/samples/pacs/pacs_sample
code/nel/tools/3d/build_coarse_mesh/build_coarse_mesh
code/nel/tools/3d/build_far_bank/build_far_bank
code/nel/tools/3d/build_smallbank/build_smallbank
code/nel/tools/3d/ig_lighter/ig_lighter
code/nel/tools/3d/zone_dependencies/zone_dependencies
code/nel/tools/3d/zone_ig_lighter/zone_ig_lighter
code/nel/tools/3d/zone_lighter/zone_lighter
code/nel/tools/3d/zone_welder/zone_welder
code/nel/tools/misc/bnp_make/bnp_make
code/nel/tools/misc/disp_sheet_id/disp_sheet_id
code/nel/tools/misc/make_sheet_id/make_sheet_id
code/nel/tools/misc/xml_packer/xml_packer
code/nel/tools/pacs/build_ig_boxes/build_ig_boxes
code/nel/tools/pacs/build_indoor_rbank/build_indoor_rbank
code/nel/tools/pacs/build_rbank/build_rbank
code/ryzom/common/data_leveldesign/leveldesign/game_element/xp_table/skills.skill_tree
code/ryzom/common/data_leveldesign/leveldesign/game_element/xp_table/xptable.xp_table
code/ryzom/tools/server/sql/ryzom_admin_default_data.sql
# Linux server compile
code/ryzom/server/src/entities_game_service/entities_game_service
code/ryzom/server/src/frontend_service/frontend_service
code/ryzom/server/src/gpm_service/gpm_service
code/ryzom/server/src/input_output_service/input_output_service
code/ryzom/server/src/mirror_service/mirror_service
code/ryzom/server/src/ryzom_admin_service/ryzom_admin_service
code/ryzom/server/src/ryzom_naming_service/ryzom_naming_service
code/ryzom/server/src/ryzom_welcome_service/ryzom_welcome_service
code/ryzom/server/src/tick_service/tick_service
# WebTT temp dir
code/ryzom/tools/server/www/webtt/app/tmp
# AMS ignore
code/web/public_php/ams/is_installed
code/web/docs/ams/html
code/web/public_php/ams/templates_c
code/ryzom/tools/server/ryzom_ams/drupal
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/autoload
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/configs
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/cron
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/img
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/plugins
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/smarty
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/translations
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/libinclude.php
code/ryzom/tools/server/ryzom_ams/old
#tools and external dir's
external
external_stlport
nel_tools*
ryzom_tools*
#Dumps
*.dmp
code/nel/tools/build_gamedata/processes/ai_wmap/ai_build_wmap.cfg
code/nel/tools/build_gamedata/processes/sheets/sheets_packer.cfg
code/nel/tools/build_gamedata/processes/rbank/build_rbank.cfg
code/nel/tools/build_gamedata/processes/zone/debug_zone_dependencies.cfg
code/web/public_php/config.php
code/web/public_php/is_installed
code/web/public_php/ams/files
code/web/public_php/db_version_lib
code/web/public_php/db_version_shard
code/web/public_php/db_version_tool
code/web/public_php/db_version_web
code/web/public_php/role_service
code/web/public_php/role_support
code/web/public_php/role_domain
code/web/public_php/db_version_ring
code/web/public_php/config_user.php
code/nel/tools/build_gamedata/processes/pz/build_world_packed_col.cfg
code/nel/tools/build_gamedata/processes/cartographer/island_screenshots.cfg

48
.travis.yml Normal file
View file

@ -0,0 +1,48 @@
sudo: false
language: cpp
compiler:
- gcc
os:
- linux
matrix:
fast_finish: true
env:
- CMAKE_CONFIGURE_OPTIONS="-DWITH_NEL_TESTS=OFF -DWITH_LUA51=ON"
- CMAKE_CONFIGURE_OPTIONS="-DCPPTEST_LIBRARY_DEBUG:STRING=/usr/lib/libcpptest.so"
CMAKE_BUILD_OPTIONS="--target nel_unit_test -- -j 2"
RUN="build/bin/nel_unit_test"
addons:
apt:
packages:
- liblua5.1-dev
- libluabind-dev
- libcpptest-dev
- libogg-dev
- libvorbis-dev
- libopenal-dev
- libgif-dev
- libfreetype6-dev
- libxml2-dev
before_script:
- mkdir build
- cmake --version
- cmake -Hcode -Bbuild $CMAKE_CONFIGURE_OPTIONS
- cat build/CMakeCache.txt
script:
- cmake --build build $CMAKE_BUILD_OPTIONS
- $RUN
notifications:
irc:
channels:
- $NOTIFICATION_IRC_CHANNEL
template:
- "%{repository}#%{build_number} (%{branch} - %{commit} : %{author}): %{message}"
- "Description : %{commit_message}"
- "Change view : %{compare_url}"
- "Build details : %{build_url}"

View file

@ -63,10 +63,9 @@ SET(NL_VERSION_PATCH 0)
SET(YEAR "2004-${CURRENT_YEAR}") SET(YEAR "2004-${CURRENT_YEAR}")
SET(AUTHOR "Winch Gate and The Ryzom Core Community") SET(AUTHOR "Winch Gate and The Ryzom Core Community")
SET(RYZOM_VERSION_MAJOR 2) SET(RYZOM_VERSION_MAJOR 3)
SET(RYZOM_VERSION_MINOR 9) SET(RYZOM_VERSION_MINOR 1)
SET(RYZOM_VERSION_PATCH 0) SET(RYZOM_VERSION_PATCH 0)
SET(REVISION 0)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Redirect output files # Redirect output files

View file

@ -18,6 +18,7 @@ FIND_PATH(MAXSDK_DIR
PATHS PATHS
"$ENV{ADSK_3DSMAX_SDK_2012}/maxsdk" "$ENV{ADSK_3DSMAX_SDK_2012}/maxsdk"
"$ENV{3DSMAX_2011_SDK_PATH}/maxsdk" "$ENV{3DSMAX_2011_SDK_PATH}/maxsdk"
"$ENV{PROGRAMFILES}/Autodesk/3ds Max 2017 SDK/maxsdk"
"$ENV{PROGRAMFILES}/Autodesk/3ds Max 2010 SDK/maxsdk" "$ENV{PROGRAMFILES}/Autodesk/3ds Max 2010 SDK/maxsdk"
"$ENV{PROGRAMFILES}/Autodesk/3ds Max 2009 SDK/maxsdk" "$ENV{PROGRAMFILES}/Autodesk/3ds Max 2009 SDK/maxsdk"
"$ENV{PROGRAMFILES}/Autodesk/3ds Max 2008 SDK/maxsdk" "$ENV{PROGRAMFILES}/Autodesk/3ds Max 2008 SDK/maxsdk"
@ -36,7 +37,7 @@ FIND_PATH(MAXSDK_CS_INCLUDE_DIR bipexp.h
) )
IF(TARGET_X64) IF(TARGET_X64)
SET(MAXSDK_LIBRARY_DIRS ${MAXSDK_DIR}/x64/lib) SET(MAXSDK_LIBRARY_DIRS ${MAXSDK_DIR}/x64/lib ${MAXSDK_DIR}/lib/x64/Release)
ELSE() ELSE()
SET(MAXSDK_LIBRARY_DIRS ${MAXSDK_DIR}/lib) SET(MAXSDK_LIBRARY_DIRS ${MAXSDK_DIR}/lib)
ENDIF() ENDIF()
@ -75,6 +76,24 @@ if(MAXSDK_FOUND)
${MAXSDK_PARAMBLK2_LIBRARY} ${MAXSDK_PARAMBLK2_LIBRARY}
${MAXSDK_BMM_LIBRARY}) ${MAXSDK_BMM_LIBRARY})
# parse maxversion.h to determine SDK version
IF(EXISTS "${MAXSDK_DIR}/include/maxversion.h")
FILE(STRINGS "${MAXSDK_DIR}/include/maxversion.h" LINES REGEX "#define MAX_PRODUCT_YEAR_NUMBER ([0-9]+)")
STRING(REGEX REPLACE ".+MAX_PRODUCT_YEAR_NUMBER ([0-9]+)" "\\1" MAXSDK_VERSION "${LINES}")
UNSET(LINES)
ELSE()
SET(MAXSDK_VERSION "Unknown")
ENDIF()
MESSAGE(STATUS "Found 3dsmax version ${MAXSDK_VERSION} in ${MAXSDK_DIR}")
# 3ds Max 2013 and later are always Unicode
IF(MAXSDK_VERSION VERSION_GREATER 2012)
SET(MAXSDK_DEFINITIONS -DUNICODE -D_UNICODE)
ELSE()
SET(MAXSDK_DEFINITIONS)
ENDIF()
ELSE() ELSE()
set(MAXSDK_LIBRARIES) set(MAXSDK_LIBRARIES)
ENDIF() ENDIF()

View file

@ -41,7 +41,7 @@ IF(MFC_FOUND)
LINK_DIRECTORIES(${MFC_LIBRARY_DIR}) LINK_DIRECTORIES(${MFC_LIBRARY_DIR})
# Set definitions for using MFC in DLL # Set definitions for using MFC in DLL
SET(MFC_DEFINITIONS -D_AFXDLL) SET(MFC_DEFINITIONS -D_AFXDLL -DUNICODE -D_UNICODE)
# Set CMake flag to use MFC DLL # Set CMake flag to use MFC DLL
SET(CMAKE_MFC_FLAG 2) SET(CMAKE_MFC_FLAG 2)

View file

@ -0,0 +1,54 @@
# - Locate MFC libraries
# This module defines
# MFC_FOUND, if false, do not try to link to MFC
# MFC_LIBRARY_DIR, where to find libraries
# MFC_INCLUDE_DIR, where to find headers
IF(CustomMFC_FIND_REQUIRED)
SET(MFC_FIND_REQUIRED TRUE)
ENDIF()
IF(NOT MFC_DIR)
# If MFC have been found, remember their directory
IF(VC_DIR)
SET(MFC_STANDARD_DIR "${VC_DIR}/atlmfc")
ENDIF()
FIND_PATH(MFC_DIR
include/afxwin.h
HINTS
${MFC_STANDARD_DIR}
)
ENDIF()
# Display an error message if MFC are not found, MFC_FOUND is updated
# User will be able to update MFC_DIR to the correct directory
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(MFC DEFAULT_MSG MFC_DIR)
IF(MFC_FOUND)
SET(MFC_INCLUDE_DIR "${MFC_DIR}/include")
INCLUDE_DIRECTORIES(${MFC_INCLUDE_DIR})
# Using 32 or 64 bits libraries
IF(TARGET_X64)
SET(MFC_LIBRARY_DIR "${MFC_DIR}/lib/amd64")
ELSE()
SET(MFC_LIBRARY_DIR "${MFC_DIR}/lib")
ENDIF()
# Add MFC libraries directory to default library path
LINK_DIRECTORIES(${MFC_LIBRARY_DIR})
# Set definitions for using MFC in DLL
<<<<<<< HEAD
SET(MFC_DEFINITIONS -D_AFXDLL)
=======
SET(MFC_DEFINITIONS -D_AFXDLL -DUNICODE -D_UNICODE)
>>>>>>> ryzomcore
# Set CMake flag to use MFC DLL
SET(CMAKE_MFC_FLAG 2)
ENDIF()
# TODO: create a macro which set MFC_DEFINITIONS, MFC_LIBRARY_DIR and MFC_INCLUDE_DIR for a project

View file

@ -0,0 +1,50 @@
# - Locate MFC libraries
# This module defines
# MFC_FOUND, if false, do not try to link to MFC
# MFC_LIBRARY_DIR, where to find libraries
# MFC_INCLUDE_DIR, where to find headers
IF(CustomMFC_FIND_REQUIRED)
SET(MFC_FIND_REQUIRED TRUE)
ENDIF()
IF(NOT MFC_DIR)
# If MFC have been found, remember their directory
IF(VC_DIR)
SET(MFC_STANDARD_DIR "${VC_DIR}/atlmfc")
ENDIF()
FIND_PATH(MFC_DIR
include/afxwin.h
HINTS
${MFC_STANDARD_DIR}
)
ENDIF()
# Display an error message if MFC are not found, MFC_FOUND is updated
# User will be able to update MFC_DIR to the correct directory
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(MFC DEFAULT_MSG MFC_DIR)
IF(MFC_FOUND)
SET(MFC_INCLUDE_DIR "${MFC_DIR}/include")
INCLUDE_DIRECTORIES(${MFC_INCLUDE_DIR})
# Using 32 or 64 bits libraries
IF(TARGET_X64)
SET(MFC_LIBRARY_DIR "${MFC_DIR}/lib/amd64")
ELSE()
SET(MFC_LIBRARY_DIR "${MFC_DIR}/lib")
ENDIF()
# Add MFC libraries directory to default library path
LINK_DIRECTORIES(${MFC_LIBRARY_DIR})
# Set definitions for using MFC in DLL
SET(MFC_DEFINITIONS -D_AFXDLL)
# Set CMake flag to use MFC DLL
SET(CMAKE_MFC_FLAG 2)
ENDIF()
# TODO: create a macro which set MFC_DEFINITIONS, MFC_LIBRARY_DIR and MFC_INCLUDE_DIR for a project

View file

@ -0,0 +1,50 @@
# - Locate MFC libraries
# This module defines
# MFC_FOUND, if false, do not try to link to MFC
# MFC_LIBRARY_DIR, where to find libraries
# MFC_INCLUDE_DIR, where to find headers
IF(CustomMFC_FIND_REQUIRED)
SET(MFC_FIND_REQUIRED TRUE)
ENDIF()
IF(NOT MFC_DIR)
# If MFC have been found, remember their directory
IF(VC_DIR)
SET(MFC_STANDARD_DIR "${VC_DIR}/atlmfc")
ENDIF()
FIND_PATH(MFC_DIR
include/afxwin.h
HINTS
${MFC_STANDARD_DIR}
)
ENDIF()
# Display an error message if MFC are not found, MFC_FOUND is updated
# User will be able to update MFC_DIR to the correct directory
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(MFC DEFAULT_MSG MFC_DIR)
IF(MFC_FOUND)
SET(MFC_INCLUDE_DIR "${MFC_DIR}/include")
INCLUDE_DIRECTORIES(${MFC_INCLUDE_DIR})
# Using 32 or 64 bits libraries
IF(TARGET_X64)
SET(MFC_LIBRARY_DIR "${MFC_DIR}/lib/amd64")
ELSE()
SET(MFC_LIBRARY_DIR "${MFC_DIR}/lib")
ENDIF()
# Add MFC libraries directory to default library path
LINK_DIRECTORIES(${MFC_LIBRARY_DIR})
# Set definitions for using MFC in DLL
SET(MFC_DEFINITIONS -D_AFXDLL -DUNICODE -D_UNICODE)
# Set CMake flag to use MFC DLL
SET(CMAKE_MFC_FLAG 2)
ENDIF()
# TODO: create a macro which set MFC_DEFINITIONS, MFC_LIBRARY_DIR and MFC_INCLUDE_DIR for a project

View file

@ -55,7 +55,15 @@ MACRO(DETECT_EXPRESS_VERSION _VERSION)
ENDIF() ENDIF()
ENDMACRO() ENDMACRO()
IF(MSVC12) IF(MSVC14)
DETECT_VC_VERSION("14.0")
SET(MSVC_TOOLSET "140")
IF(NOT MSVC14_REDIST_DIR)
# If you have VC++ 2015 Express, put x64/Microsoft.VC140.CRT/*.dll in ${EXTERNAL_PATH}/redist
SET(MSVC14_REDIST_DIR "${EXTERNAL_PATH}/redist")
ENDIF()
ELSEIF(MSVC12)
DETECT_VC_VERSION("12.0") DETECT_VC_VERSION("12.0")
SET(MSVC_TOOLSET "120") SET(MSVC_TOOLSET "120")
@ -98,7 +106,7 @@ IF(NOT VC_DIR)
ELSE() ELSE()
SET(_COMPILER ${CMAKE_C_COMPILER}) SET(_COMPILER ${CMAKE_C_COMPILER})
ENDIF() ENDIF()
STRING(REGEX REPLACE "/bin/.+" "" VC_DIR ${_COMPILER}) STRING(REGEX REPLACE "/(bin|BIN|Bin)/.+" "" VC_DIR ${_COMPILER})
ENDIF() ENDIF()
SET(VC_INCLUDE_DIR "${VC_DIR}/include") SET(VC_INCLUDE_DIR "${VC_DIR}/include")

View file

@ -65,7 +65,7 @@ IF(Mercurial_HG_EXECUTABLE)
"\\1" Mercurial_VERSION_HG "${Mercurial_VERSION_HG}") "\\1" Mercurial_VERSION_HG "${Mercurial_VERSION_HG}")
MACRO(Mercurial_WC_INFO dir prefix) MACRO(Mercurial_WC_INFO dir prefix)
EXECUTE_PROCESS(COMMAND ${Mercurial_HG_EXECUTABLE} tip --template "{rev};{node};{tags};{author}" EXECUTE_PROCESS(COMMAND ${Mercurial_HG_EXECUTABLE} log -r . --template "{rev};{node};{tags};{author}"
WORKING_DIRECTORY ${dir} WORKING_DIRECTORY ${dir}
OUTPUT_VARIABLE ${prefix}_WC_INFO OUTPUT_VARIABLE ${prefix}_WC_INFO
ERROR_VARIABLE Mercurial_hg_info_error ERROR_VARIABLE Mercurial_hg_info_error
@ -73,7 +73,7 @@ IF(Mercurial_HG_EXECUTABLE)
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
IF(NOT ${Mercurial_hg_info_result} EQUAL 0) IF(NOT ${Mercurial_hg_info_result} EQUAL 0)
MESSAGE(SEND_ERROR "Command \"${Mercurial_HG_EXECUTABLE} tip\" failed with output:\n${Mercurial_hg_info_error}") MESSAGE(SEND_ERROR "Command \"${Mercurial_HG_EXECUTABLE} log\" failed with output:\n${Mercurial_hg_info_error}")
ELSE() ELSE()
LIST(LENGTH ${prefix}_WC_INFO _COUNT) LIST(LENGTH ${prefix}_WC_INFO _COUNT)
IF(_COUNT EQUAL 4) IF(_COUNT EQUAL 4)

View file

@ -255,8 +255,19 @@ MACRO(USE_CURRENT_WINSDK)
SET(WINSDK_VERSION "6.0A") SET(WINSDK_VERSION "6.0A")
ENDIF() ENDIF()
ELSEIF(MSVC80) ELSEIF(MSVC80)
IF(NOT MSVC_EXPRESS) SET(WINSDK_MSVC80_COMPATIBLES "7.1" "7.1A" "7.0" "7.0A" "6.1" "6.0" "6.0A" "5.2A")
# TODO: fix this version
# look for each Windows SDK supported by VC++ 2005 (7.1 is the latest)
FOREACH(_VERSION ${WINSDK_DETECTED_VERSIONS})
# look if this version of Windows SDK is installed
LIST(FIND WINSDK_MSVC80_COMPATIBLES ${_VERSION} _FOUND)
IF(NOT _FOUND EQUAL -1)
SET(WINSDK_VERSION "${_VERSION}")
BREAK()
ENDIF()
ENDFOREACH()
IF(NOT MSVC_EXPRESS AND NOT WINSDK_VERSION)
SET(WINSDK_VERSION "5.2A") SET(WINSDK_VERSION "5.2A")
ENDIF() ENDIF()
ELSE() ELSE()
@ -441,8 +452,8 @@ IF(WINSDK_INCLUDE_DIR)
SET(CMAKE_LIBRARY_PATH ${WINSDK_LIBRARY_DIR} ${CMAKE_LIBRARY_PATH}) SET(CMAKE_LIBRARY_PATH ${WINSDK_LIBRARY_DIR} ${CMAKE_LIBRARY_PATH})
# Fix for using Windows SDK 7.1 with Visual C++ 2012 # Fix for using Windows SDK 7.1 with Visual C++ 2012, 2013 and 2015
IF(WINSDK_VERSION STREQUAL "7.1" AND MSVC11) IF(WINSDK_VERSION STREQUAL "7.1" AND (MSVC11 OR MSVC12 OR MSVC14))
ADD_DEFINITIONS(-D_USING_V110_SDK71_) ADD_DEFINITIONS(-D_USING_V110_SDK71_)
ENDIF() ENDIF()
ELSE() ELSE()

View file

@ -27,6 +27,16 @@ ELSE()
ENDIF() ENDIF()
ENDIF() ENDIF()
MACRO(APPEND_DEFINITION _NAME _VAL)
IF(CMAKE_VERSION VERSION_LESS "2.8.12")
# don't support logical expressions, append definition
LIST(APPEND ${_NAME} "-D${_VAL}")
ELSE()
# support logical expressions, use them
LIST(APPEND ${_NAME} "$<$<BOOL:${_VAL}>:-D$<JOIN:${_VAL},-D>>")
ENDIF()
ENDMACRO()
# Set PCH_FLAGS for common flags, PCH_ARCH_XXX_FLAGS for specific archs flags and PCH_ARCHS for archs # Set PCH_FLAGS for common flags, PCH_ARCH_XXX_FLAGS for specific archs flags and PCH_ARCHS for archs
MACRO(PCH_SET_COMPILE_FLAGS _target) MACRO(PCH_SET_COMPILE_FLAGS _target)
SET(PCH_FLAGS) SET(PCH_FLAGS)
@ -77,28 +87,28 @@ MACRO(PCH_SET_COMPILE_FLAGS _target)
GET_DIRECTORY_PROPERTY(DEFINITIONS COMPILE_DEFINITIONS) GET_DIRECTORY_PROPERTY(DEFINITIONS COMPILE_DEFINITIONS)
IF(DEFINITIONS) IF(DEFINITIONS)
FOREACH(item ${DEFINITIONS}) FOREACH(item ${DEFINITIONS})
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>") APPEND_DEFINITION(GLOBAL_DEFINITIONS ${item})
ENDFOREACH() ENDFOREACH()
ENDIF() ENDIF()
GET_DIRECTORY_PROPERTY(DEFINITIONS COMPILE_DEFINITIONS_${_UPPER_BUILD}) GET_DIRECTORY_PROPERTY(DEFINITIONS COMPILE_DEFINITIONS_${_UPPER_BUILD})
IF(DEFINITIONS) IF(DEFINITIONS)
FOREACH(item ${DEFINITIONS}) FOREACH(item ${DEFINITIONS})
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>") APPEND_DEFINITION(GLOBAL_DEFINITIONS ${item})
ENDFOREACH() ENDFOREACH()
ENDIF() ENDIF()
GET_DIRECTORY_PROPERTY(DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS) GET_DIRECTORY_PROPERTY(DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS)
IF(DEFINITIONS) IF(DEFINITIONS)
FOREACH(item ${DEFINITIONS}) FOREACH(item ${DEFINITIONS})
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>") APPEND_DEFINITION(GLOBAL_DEFINITIONS ${item})
ENDFOREACH() ENDFOREACH()
ENDIF() ENDIF()
GET_DIRECTORY_PROPERTY(DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS_${_UPPER_BUILD}) GET_DIRECTORY_PROPERTY(DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS_${_UPPER_BUILD})
IF(DEFINITIONS) IF(DEFINITIONS)
FOREACH(item ${DEFINITIONS}) FOREACH(item ${DEFINITIONS})
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>") APPEND_DEFINITION(GLOBAL_DEFINITIONS ${item})
ENDFOREACH() ENDFOREACH()
ENDIF() ENDIF()
@ -122,14 +132,14 @@ MACRO(PCH_SET_COMPILE_FLAGS _target)
GET_TARGET_PROPERTY(DEFINITIONS ${_target} COMPILE_DEFINITIONS) GET_TARGET_PROPERTY(DEFINITIONS ${_target} COMPILE_DEFINITIONS)
IF(DEFINITIONS) IF(DEFINITIONS)
FOREACH(item ${DEFINITIONS}) FOREACH(item ${DEFINITIONS})
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>") APPEND_DEFINITION(GLOBAL_DEFINITIONS ${item})
ENDFOREACH() ENDFOREACH()
ENDIF() ENDIF()
GET_TARGET_PROPERTY(DEFINITIONS ${_target} COMPILE_DEFINITIONS_${_UPPER_BUILD}) GET_TARGET_PROPERTY(DEFINITIONS ${_target} COMPILE_DEFINITIONS_${_UPPER_BUILD})
IF(DEFINITIONS) IF(DEFINITIONS)
FOREACH(item ${DEFINITIONS}) FOREACH(item ${DEFINITIONS})
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>") APPEND_DEFINITION(GLOBAL_DEFINITIONS ${item})
ENDFOREACH() ENDFOREACH()
ENDIF() ENDIF()
@ -151,7 +161,7 @@ MACRO(PCH_SET_COMPILE_FLAGS _target)
IF(_DEFINITIONS) IF(_DEFINITIONS)
FOREACH(item ${_DEFINITIONS}) FOREACH(item ${_DEFINITIONS})
LIST(APPEND GLOBAL_DEFINITIONS "$<$<BOOL:${item}>:-D$<JOIN:${item},-D>>") APPEND_DEFINITION(GLOBAL_DEFINITIONS ${item})
ENDFOREACH() ENDFOREACH()
ENDIF() ENDIF()
ENDIF() ENDIF()
@ -176,10 +186,23 @@ MACRO(PCH_SET_COMPILE_FLAGS _target)
ENDIF() ENDIF()
IF(CMAKE_VERSION VERSION_LESS "3.3.0") IF(CMAKE_VERSION VERSION_LESS "3.3.0")
GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS) GET_DIRECTORY_PROPERTY(_DIRECTORY_FLAGS DEFINITIONS)
GET_DIRECTORY_PROPERTY(_directory_definitions DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITIONS)
LIST(APPEND _FLAGS ${_directory_flags}) IF(_DIRECTORY_FLAGS)
LIST(APPEND _FLAGS ${_directory_definitions}) SEPARATE_ARGUMENTS(_DIRECTORY_FLAGS)
FOREACH(item ${_DIRECTORY_FLAGS})
LIST(APPEND _FLAGS "${item}")
ENDFOREACH()
ENDIF()
GET_DIRECTORY_PROPERTY(_DIRECTORY_DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITIONS)
IF(_DIRECTORY_DEFINITIONS)
SEPARATE_ARGUMENTS(_DIRECTORY_DEFINITIONS)
FOREACH(item ${_DIRECTORY_DEFINITIONS})
LIST(APPEND _FLAGS "${item}")
ENDFOREACH()
ENDIF()
ENDIF() ENDIF()
# Format definitions # Format definitions
@ -282,8 +305,9 @@ MACRO(PCH_SET_COMPILE_COMMAND _inputcpp _compile_FLAGS)
ENDIF() ENDIF()
IF(MSVC) IF(MSVC)
GET_PDB_FILENAME(PDB_FILE ${_PCH_current_target}) GET_PDB_FILENAME(_PDB_FILE ${_PCH_current_target})
SET(PCH_COMMAND ${CMAKE_CXX_COMPILER} ${pchsupport_compiler_cxx_arg1} ${_compile_FLAGS} /Yc /Fp"${PCH_OUTPUT}" ${_inputcpp} /Fd"${PDB_FILE}" /c /Fo"${PCH_OUTPUT}.obj") SET(PCH_COMMAND ${CMAKE_CXX_COMPILER} ${pchsupport_compiler_cxx_arg1} ${_compile_FLAGS} /Yc /Fp"${PCH_OUTPUT}" ${_inputcpp} /Fd"${_PDB_FILE}" /c /Fo"${PCH_OUTPUT}.obj")
# Ninja PCH Support # Ninja PCH Support
# http://public.kitware.com/pipermail/cmake-developers/2012-March/003653.html # http://public.kitware.com/pipermail/cmake-developers/2012-March/003653.html
SET_SOURCE_FILES_PROPERTIES(${_inputcpp} PROPERTIES OBJECT_OUTPUTS "${PCH_OUTPUT}.obj") SET_SOURCE_FILES_PROPERTIES(${_inputcpp} PROPERTIES OBJECT_OUTPUTS "${PCH_OUTPUT}.obj")

View file

@ -367,7 +367,11 @@ ENDMACRO(NL_SETUP_SNOWBALLS_DEFAULT_OPTIONS)
MACRO(ADD_PLATFORM_FLAGS _FLAGS) MACRO(ADD_PLATFORM_FLAGS _FLAGS)
SET(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} ${_FLAGS}") SET(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} ${_FLAGS}")
SET(PLATFORM_CXXFLAGS "${PLATFORM_CXXFLAGS} ${_FLAGS}") SET(PLATFORM_CXXFLAGS "${PLATFORM_CXXFLAGS} ${_FLAGS}")
ENDMACRO(ADD_PLATFORM_FLAGS) ENDMACRO()
MACRO(ADD_PLATFORM_LINKFLAGS _FLAGS)
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} ${_FLAGS}")
ENDMACRO()
MACRO(NL_SETUP_BUILD) MACRO(NL_SETUP_BUILD)
@ -390,9 +394,13 @@ MACRO(NL_SETUP_BUILD)
ENDIF() ENDIF()
ENDIF() ENDIF()
IF(CMAKE_CXX_LIBRARY_ARCHITECTURE)
SET(HOST_CPU ${CMAKE_CXX_LIBRARY_ARCHITECTURE})
ELSE()
SET(HOST_CPU ${CMAKE_HOST_SYSTEM_PROCESSOR}) SET(HOST_CPU ${CMAKE_HOST_SYSTEM_PROCESSOR})
ENDIF()
IF(HOST_CPU MATCHES "(amd|AMD)64") IF(HOST_CPU MATCHES "(amd|AMD|x86_)64")
SET(HOST_CPU "x86_64") SET(HOST_CPU "x86_64")
ELSEIF(HOST_CPU MATCHES "i.86") ELSEIF(HOST_CPU MATCHES "i.86")
SET(HOST_CPU "x86") SET(HOST_CPU "x86")
@ -402,10 +410,10 @@ MACRO(NL_SETUP_BUILD)
# If not specified, use the same CPU as host # If not specified, use the same CPU as host
IF(NOT TARGET_CPU) IF(NOT TARGET_CPU)
SET(TARGET_CPU ${CMAKE_SYSTEM_PROCESSOR}) SET(TARGET_CPU ${HOST_CPU})
ENDIF() ENDIF()
IF(TARGET_CPU MATCHES "(amd|AMD)64") IF(TARGET_CPU MATCHES "(amd|AMD|x86_)64")
SET(TARGET_CPU "x86_64") SET(TARGET_CPU "x86_64")
ELSEIF(TARGET_CPU MATCHES "i.86") ELSEIF(TARGET_CPU MATCHES "i.86")
SET(TARGET_CPU "x86") SET(TARGET_CPU "x86")
@ -413,7 +421,7 @@ MACRO(NL_SETUP_BUILD)
IF(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") IF(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
SET(CLANG ON) SET(CLANG ON)
MESSAGE(STATUS "Using Clang compiler") MESSAGE(STATUS "Using Clang ${CMAKE_CXX_COMPILER_VERSION} compiler")
ENDIF() ENDIF()
IF(CMAKE_GENERATOR MATCHES "Xcode") IF(CMAKE_GENERATOR MATCHES "Xcode")
@ -426,6 +434,11 @@ MACRO(NL_SETUP_BUILD)
MESSAGE(STATUS "Generating NMake project") MESSAGE(STATUS "Generating NMake project")
ENDIF() ENDIF()
IF(CMAKE_GENERATOR MATCHES "Ninja")
SET(NINJA ON)
MESSAGE(STATUS "Generating Ninja project")
ENDIF()
# If target and host CPU are the same # If target and host CPU are the same
IF("${HOST_CPU}" STREQUAL "${TARGET_CPU}" AND NOT CMAKE_CROSSCOMPILING) IF("${HOST_CPU}" STREQUAL "${TARGET_CPU}" AND NOT CMAKE_CROSSCOMPILING)
# x86-compatible CPU # x86-compatible CPU
@ -474,6 +487,9 @@ MACRO(NL_SETUP_BUILD)
SET(TARGET_X86 1) SET(TARGET_X86 1)
ELSEIF(TARGET_CPU STREQUAL "x86") ELSEIF(TARGET_CPU STREQUAL "x86")
SET(TARGET_X86 1) SET(TARGET_X86 1)
ELSEIF(TARGET_CPU STREQUAL "arm64")
SET(TARGET_ARM 1)
SET(TARGET_ARM64 1)
ELSEIF(TARGET_CPU STREQUAL "armv7s") ELSEIF(TARGET_CPU STREQUAL "armv7s")
SET(TARGET_ARM 1) SET(TARGET_ARM 1)
SET(TARGET_ARMV7S 1) SET(TARGET_ARMV7S 1)
@ -493,6 +509,10 @@ MACRO(NL_SETUP_BUILD)
ENDIF() ENDIF()
IF(TARGET_ARM) IF(TARGET_ARM)
IF(TARGET_ARM64)
ADD_PLATFORM_FLAGS("-DHAVE_ARM64")
ENDIF()
IF(TARGET_ARMV7S) IF(TARGET_ARMV7S)
ADD_PLATFORM_FLAGS("-DHAVE_ARMV7S") ADD_PLATFORM_FLAGS("-DHAVE_ARMV7S")
ENDIF() ENDIF()
@ -541,10 +561,6 @@ MACRO(NL_SETUP_BUILD)
ENDIF() ENDIF()
IF(MSVC) IF(MSVC)
IF(MSVC_VERSION EQUAL "1700" AND NOT MSVC11)
SET(MSVC11 ON)
ENDIF()
# Ignore default include paths # Ignore default include paths
ADD_PLATFORM_FLAGS("/X") ADD_PLATFORM_FLAGS("/X")
@ -555,31 +571,31 @@ MACRO(NL_SETUP_BUILD)
# without inlining it's unusable, use custom optimizations again # without inlining it's unusable, use custom optimizations again
SET(DEBUG_CFLAGS "/Od /Ob1 /GF- ${DEBUG_CFLAGS}") SET(DEBUG_CFLAGS "/Od /Ob1 /GF- ${DEBUG_CFLAGS}")
ELSEIF(MSVC12) ELSEIF(MSVC12)
ADD_PLATFORM_FLAGS("/Gy- /MP /Zm1000") ADD_PLATFORM_FLAGS("/Gy-")
# /Ox is working with VC++ 2013, but custom optimizations don't exist # /Ox is working with VC++ 2013, but custom optimizations don't exist
SET(RELEASE_CFLAGS "/Ox /GF /GS- ${RELEASE_CFLAGS}") SET(RELEASE_CFLAGS "/Ox /GF /GS- ${RELEASE_CFLAGS}")
# without inlining it's unusable, use custom optimizations again # without inlining it's unusable, use custom optimizations again
SET(DEBUG_CFLAGS "/Od /Ob1 /GF- ${DEBUG_CFLAGS}") SET(DEBUG_CFLAGS "/Od /Ob1 /GF- ${DEBUG_CFLAGS}")
ELSEIF(MSVC11) ELSEIF(MSVC11)
ADD_PLATFORM_FLAGS("/Gy- /MP /Zm1000") ADD_PLATFORM_FLAGS("/Gy-")
# /Ox is working with VC++ 2012, but custom optimizations don't exist # /Ox is working with VC++ 2012, but custom optimizations don't exist
SET(RELEASE_CFLAGS "/Ox /GF /GS- ${RELEASE_CFLAGS}") SET(RELEASE_CFLAGS "/Ox /GF /GS- ${RELEASE_CFLAGS}")
# without inlining it's unusable, use custom optimizations again # without inlining it's unusable, use custom optimizations again
SET(DEBUG_CFLAGS "/Od /Ob1 /GF- ${DEBUG_CFLAGS}") SET(DEBUG_CFLAGS "/Od /Ob1 /GF- ${DEBUG_CFLAGS}")
ELSEIF(MSVC10) ELSEIF(MSVC10)
ADD_PLATFORM_FLAGS("/Gy- /MP /Zm1000") ADD_PLATFORM_FLAGS("/Gy-")
# /Ox is working with VC++ 2010, but custom optimizations don't exist # /Ox is working with VC++ 2010, but custom optimizations don't exist
SET(RELEASE_CFLAGS "/Ox /GF /GS- ${RELEASE_CFLAGS}") SET(RELEASE_CFLAGS "/Ox /GF /GS- ${RELEASE_CFLAGS}")
# without inlining it's unusable, use custom optimizations again # without inlining it's unusable, use custom optimizations again
SET(DEBUG_CFLAGS "/Od /Ob1 /GF- ${DEBUG_CFLAGS}") SET(DEBUG_CFLAGS "/Od /Ob1 /GF- ${DEBUG_CFLAGS}")
ELSEIF(MSVC90) ELSEIF(MSVC90)
ADD_PLATFORM_FLAGS("/Gy- /MP /Zm1000") ADD_PLATFORM_FLAGS("/Gy-")
# don't use a /O[012x] flag if you want custom optimizations # don't use a /O[012x] flag if you want custom optimizations
SET(RELEASE_CFLAGS "/Ob2 /Oi /Ot /Oy /GT /GF /GS- ${RELEASE_CFLAGS}") SET(RELEASE_CFLAGS "/Ob2 /Oi /Ot /Oy /GT /GF /GS- ${RELEASE_CFLAGS}")
# without inlining it's unusable, use custom optimizations again # without inlining it's unusable, use custom optimizations again
SET(DEBUG_CFLAGS "/Ob1 /GF- ${DEBUG_CFLAGS}") SET(DEBUG_CFLAGS "/Ob1 /GF- ${DEBUG_CFLAGS}")
ELSEIF(MSVC80) ELSEIF(MSVC80)
ADD_PLATFORM_FLAGS("/Gy- /Wp64 /Zm1000") ADD_PLATFORM_FLAGS("/Gy- /Wp64")
# don't use a /O[012x] flag if you want custom optimizations # don't use a /O[012x] flag if you want custom optimizations
SET(RELEASE_CFLAGS "/Ox /GF /GS- ${RELEASE_CFLAGS}") SET(RELEASE_CFLAGS "/Ox /GF /GS- ${RELEASE_CFLAGS}")
# without inlining it's unusable, use custom optimizations again # without inlining it's unusable, use custom optimizations again
@ -588,16 +604,19 @@ MACRO(NL_SETUP_BUILD)
MESSAGE(FATAL_ERROR "Can't determine compiler version ${MSVC_VERSION}") MESSAGE(FATAL_ERROR "Can't determine compiler version ${MSVC_VERSION}")
ENDIF() ENDIF()
ADD_PLATFORM_FLAGS("/D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /DWIN32 /D_WINDOWS /wd4250") ADD_PLATFORM_FLAGS("/D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_WARNINGS /D_SCL_SECURE_NO_WARNINGS /D_WIN32 /DWIN32 /D_WINDOWS /wd4250")
# huge PCH
ADD_PLATFORM_FLAGS("/Zm1000")
IF(TARGET_X64) IF(TARGET_X64)
# Fix a bug with Intellisense # Fix a bug with Intellisense
ADD_PLATFORM_FLAGS("/D_WIN64") ADD_PLATFORM_FLAGS("/D_WIN64")
# Fix a compilation error for some big C++ files # Fix a compilation error for some big C++ files
SET(RELEASE_CFLAGS "${RELEASE_CFLAGS} /bigobj") ADD_PLATFORM_FLAGS("/bigobj")
ELSE() ELSE()
# Allows 32 bits applications to use 3 GB of RAM # Allows 32 bits applications to use 3 GB of RAM
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /LARGEADDRESSAWARE") ADD_PLATFORM_LINKFLAGS("/LARGEADDRESSAWARE")
ENDIF() ENDIF()
# Exceptions are only set for C++ # Exceptions are only set for C++
@ -780,7 +799,7 @@ MACRO(NL_SETUP_BUILD)
ADD_PLATFORM_FLAGS("${XARCH}-isysroot${CMAKE_IOS_SYSROOT}") ADD_PLATFORM_FLAGS("${XARCH}-isysroot${CMAKE_IOS_SYSROOT}")
ADD_PLATFORM_FLAGS("${XARCH}-miphoneos-version-min=${IOS_VERSION}") ADD_PLATFORM_FLAGS("${XARCH}-miphoneos-version-min=${IOS_VERSION}")
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} ${XARCH}-Wl,-iphoneos_version_min,${IOS_VERSION}") ADD_PLATFORM_LINKFLAGS("${XARCH}-Wl,-iphoneos_version_min,${IOS_VERSION}")
ENDIF() ENDIF()
IF(TARGET_ARMV7) IF(TARGET_ARMV7)
@ -790,7 +809,7 @@ MACRO(NL_SETUP_BUILD)
ADD_PLATFORM_FLAGS("${XARCH}-isysroot${CMAKE_IOS_SYSROOT}") ADD_PLATFORM_FLAGS("${XARCH}-isysroot${CMAKE_IOS_SYSROOT}")
ADD_PLATFORM_FLAGS("${XARCH}-miphoneos-version-min=${IOS_VERSION}") ADD_PLATFORM_FLAGS("${XARCH}-miphoneos-version-min=${IOS_VERSION}")
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} ${XARCH}-Wl,-iphoneos_version_min,${IOS_VERSION}") ADD_PLATFORM_LINKFLAGS("${XARCH}-Wl,-iphoneos_version_min,${IOS_VERSION}")
ENDIF() ENDIF()
IF(TARGET_ARMV6) IF(TARGET_ARMV6)
@ -800,7 +819,7 @@ MACRO(NL_SETUP_BUILD)
ADD_PLATFORM_FLAGS("${XARCH}-isysroot${CMAKE_IOS_SYSROOT}") ADD_PLATFORM_FLAGS("${XARCH}-isysroot${CMAKE_IOS_SYSROOT}")
ADD_PLATFORM_FLAGS("${XARCH}-miphoneos-version-min=${IOS_VERSION}") ADD_PLATFORM_FLAGS("${XARCH}-miphoneos-version-min=${IOS_VERSION}")
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} ${XARCH}-Wl,-iphoneos_version_min,${IOS_VERSION}") ADD_PLATFORM_LINKFLAGS("${XARCH}-Wl,-iphoneos_version_min,${IOS_VERSION}")
ENDIF() ENDIF()
ENDIF() ENDIF()
@ -812,20 +831,27 @@ MACRO(NL_SETUP_BUILD)
ADD_PLATFORM_FLAGS("${XARCH}-isysroot${CMAKE_IOS_SIMULATOR_SYSROOT}") ADD_PLATFORM_FLAGS("${XARCH}-isysroot${CMAKE_IOS_SIMULATOR_SYSROOT}")
ADD_PLATFORM_FLAGS("${XARCH}-mios-simulator-version-min=${IOS_VERSION}") ADD_PLATFORM_FLAGS("${XARCH}-mios-simulator-version-min=${IOS_VERSION}")
IF(CMAKE_OSX_DEPLOYMENT_TARGET) IF(CMAKE_OSX_DEPLOYMENT_TARGET)
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} ${XARCH}-Wl,-macosx_version_min,${CMAKE_OSX_DEPLOYMENT_TARGET}") ADD_PLATFORM_LINKFLAGS("${XARCH}-Wl,-macosx_version_min,${CMAKE_OSX_DEPLOYMENT_TARGET}")
ENDIF() ENDIF()
ENDIF() ENDIF()
ELSE() ELSE()
# Always force -mmacosx-version-min to override environement variable # Always force -mmacosx-version-min to override environement variable
IF(CMAKE_OSX_DEPLOYMENT_TARGET) IF(CMAKE_OSX_DEPLOYMENT_TARGET)
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,-macosx_version_min,${CMAKE_OSX_DEPLOYMENT_TARGET}") IF(CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS "10.7")
MESSAGE(FATAL_ERROR "Minimum target for OS X is 10.7 but you're using ${CMAKE_OSX_DEPLOYMENT_TARGET}")
ENDIF()
ADD_PLATFORM_LINKFLAGS("-Wl,-macosx_version_min,${CMAKE_OSX_DEPLOYMENT_TARGET}")
ENDIF() ENDIF()
ENDIF() ENDIF()
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,-headerpad_max_install_names") # use libc++ under OX X to be able to use new C++ features (and else it'll use GCC 4.2.1 STL)
# minimum target is now OS X 10.7
SET(PLATFORM_CXXFLAGS "${PLATFORM_CXXFLAGS} -stdlib=libc++")
ADD_PLATFORM_LINKFLAGS("-Wl,-headerpad_max_install_names")
IF(HAVE_FLAG_SEARCH_PATHS_FIRST) IF(HAVE_FLAG_SEARCH_PATHS_FIRST)
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,-search_paths_first") ADD_PLATFORM_LINKFLAGS("-Wl,-search_paths_first")
ENDIF() ENDIF()
ENDIF() ENDIF()
ELSE() ELSE()
@ -838,7 +864,13 @@ MACRO(NL_SETUP_BUILD)
ENDIF() ENDIF()
ENDIF() ENDIF()
ADD_PLATFORM_FLAGS("-D_REENTRANT -fno-strict-aliasing") # use c++0x standard to use std::unique_ptr and std::shared_ptr
SET(PLATFORM_CXXFLAGS "${PLATFORM_CXXFLAGS} -std=c++0x")
ADD_PLATFORM_FLAGS("-D_REENTRANT")
# hardening
ADD_PLATFORM_FLAGS("-D_FORTIFY_SOURCE=2")
IF(NOT WITH_LOW_MEMORY) IF(NOT WITH_LOW_MEMORY)
ADD_PLATFORM_FLAGS("-pipe") ADD_PLATFORM_FLAGS("-pipe")
@ -849,7 +881,19 @@ MACRO(NL_SETUP_BUILD)
ENDIF() ENDIF()
IF(WITH_WARNINGS) IF(WITH_WARNINGS)
ADD_PLATFORM_FLAGS("-Wall -W -Wpointer-arith -Wsign-compare -Wno-deprecated-declarations -Wno-multichar -Wno-unused") ADD_PLATFORM_FLAGS("-Wall")
ELSE()
# Check wrong formats in printf-like functions
ADD_PLATFORM_FLAGS("-Wformat -Werror=format-security")
ENDIF()
# never display these warnings because they are minor
ADD_PLATFORM_FLAGS("-Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-value")
IF(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "6.0.0")
ADD_PLATFORM_FLAGS("-Wno-unused-local-typedefs")
ELSEIF(CLANG)
ADD_PLATFORM_FLAGS("-Wno-unused-private-field -Wno-unused-local-typedef")
ENDIF() ENDIF()
IF(ANDROID) IF(ANDROID)
@ -859,37 +903,33 @@ MACRO(NL_SETUP_BUILD)
ADD_PLATFORM_FLAGS("-Wa,--noexecstack") ADD_PLATFORM_FLAGS("-Wa,--noexecstack")
IF(TARGET_ARM) IF(TARGET_ARM)
ADD_PLATFORM_FLAGS("-fpic -fstack-protector") ADD_PLATFORM_FLAGS("-fpic")
ADD_PLATFORM_FLAGS("-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__") ADD_PLATFORM_FLAGS("-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__")
IF(TARGET_ARMV7) IF(TARGET_ARMV7)
ADD_PLATFORM_FLAGS("-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16") ADD_PLATFORM_FLAGS("-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16")
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -march=armv7-a -Wl,--fix-cortex-a8") ADD_PLATFORM_LINKFLAGS("-march=armv7-a -Wl,--fix-cortex-a8")
ELSEIF(TARGET_ARMV5) ELSEIF(TARGET_ARMV5)
ADD_PLATFORM_FLAGS("-march=armv5te -mtune=xscale -msoft-float") ADD_PLATFORM_FLAGS("-march=armv5te -mtune=xscale -msoft-float")
ENDIF() ENDIF()
SET(TARGET_THUMB ON) SET(TARGET_THUMB ON)
IF(TARGET_THUMB) IF(TARGET_THUMB)
ADD_PLATFORM_FLAGS("-mthumb -fno-strict-aliasing -finline-limit=64") ADD_PLATFORM_FLAGS("-mthumb -finline-limit=64")
SET(DEBUG_CFLAGS "${DEBUG_CFLAGS} -marm") SET(DEBUG_CFLAGS "${DEBUG_CFLAGS} -marm")
ELSE() ELSE()
ADD_PLATFORM_FLAGS("-funswitch-loops -finline-limit=300") ADD_PLATFORM_FLAGS("-funswitch-loops -finline-limit=300")
SET(DEBUG_CFLAGS "${DEBUG_CFLAGS} -fno-strict-aliasing")
SET(RELEASE_CFLAGS "${RELEASE_CFLAGS} -fstrict-aliasing")
ENDIF() ENDIF()
ELSEIF(TARGET_X86) ELSEIF(TARGET_X86)
# Optimizations for Intel Atom # Optimizations for Intel Atom
ADD_PLATFORM_FLAGS("-march=i686 -mtune=atom -mstackrealign -msse3 -mfpmath=sse -m32 -flto -ffast-math -funroll-loops") ADD_PLATFORM_FLAGS("-march=i686 -mtune=atom -mstackrealign -msse3 -mfpmath=sse -m32 -flto -ffast-math -funroll-loops")
ADD_PLATFORM_FLAGS("-fstack-protector -funswitch-loops -finline-limit=300") ADD_PLATFORM_FLAGS("-funswitch-loops -finline-limit=300")
SET(RELEASE_CFLAGS "${RELEASE_CFLAGS} -fstrict-aliasing")
SET(DEBUG_CFLAGS "${DEBUG_CFLAGS} -fno-strict-aliasing")
ELSEIF(TARGET_MIPS) ELSEIF(TARGET_MIPS)
ADD_PLATFORM_FLAGS("-fpic -finline-functions -fmessage-length=0 -fno-inline-functions-called-once -fgcse-after-reload -frerun-cse-after-loop -frename-registers -fno-strict-aliasing") ADD_PLATFORM_FLAGS("-fpic -finline-functions -fmessage-length=0 -fno-inline-functions-called-once -fgcse-after-reload -frerun-cse-after-loop -frename-registers")
SET(RELEASE_CFLAGS "${RELEASE_CFLAGS} -funswitch-loops -finline-limit=300") SET(RELEASE_CFLAGS "${RELEASE_CFLAGS} -funswitch-loops -finline-limit=300")
ENDIF() ENDIF()
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now") ADD_PLATFORM_LINKFLAGS("-Wl,-z,noexecstack")
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -L${PLATFORM_ROOT}/usr/lib") ADD_PLATFORM_LINKFLAGS("-L${PLATFORM_ROOT}/usr/lib")
ENDIF() ENDIF()
IF(APPLE) IF(APPLE)
@ -897,14 +937,30 @@ MACRO(NL_SETUP_BUILD)
ENDIF() ENDIF()
# Fix "relocation R_X86_64_32 against.." error on x64 platforms # Fix "relocation R_X86_64_32 against.." error on x64 platforms
IF(TARGET_X64 AND WITH_STATIC AND NOT WITH_STATIC_DRIVERS AND NOT MINGW) IF(NOT MINGW)
ADD_PLATFORM_FLAGS("-fPIC") ADD_PLATFORM_FLAGS("-fPIC")
ENDIF() ENDIF()
SET(PLATFORM_CXXFLAGS "${PLATFORM_CXXFLAGS} -ftemplate-depth-48") SET(PLATFORM_CXXFLAGS "${PLATFORM_CXXFLAGS} -ftemplate-depth-48")
# hardening
ADD_PLATFORM_FLAGS("-fstack-protector --param=ssp-buffer-size=4")
# If -fstack-protector or -fstack-protector-all enabled, enable too new warnings and fix possible link problems
IF(WITH_WARNINGS)
ADD_PLATFORM_FLAGS("-Wstack-protector")
ENDIF()
# Fix undefined reference to `__stack_chk_fail' error
ADD_PLATFORM_LINKFLAGS("-lc")
IF(NOT APPLE) IF(NOT APPLE)
SET(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Wl,--no-undefined -Wl,--as-needed") ADD_PLATFORM_LINKFLAGS("-Wl,--no-undefined -Wl,--as-needed")
ENDIF()
IF(NOT APPLE)
# hardening
ADD_PLATFORM_LINKFLAGS("-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now")
ENDIF() ENDIF()
IF(WITH_SYMBOLS) IF(WITH_SYMBOLS)
@ -920,7 +976,7 @@ MACRO(NL_SETUP_BUILD)
SET(NL_DEBUG_CFLAGS "-g -DNL_DEBUG -D_DEBUG ${NL_DEBUG_CFLAGS}") SET(NL_DEBUG_CFLAGS "-g -DNL_DEBUG -D_DEBUG ${NL_DEBUG_CFLAGS}")
SET(NL_RELEASE_CFLAGS "-DNL_RELEASE -DNDEBUG -O3 ${NL_RELEASE_CFLAGS}") SET(NL_RELEASE_CFLAGS "-DNL_RELEASE -DNDEBUG -O3 ${NL_RELEASE_CFLAGS}")
ENDIF() ENDIF()
ENDMACRO(NL_SETUP_BUILD) ENDMACRO()
MACRO(NL_SETUP_BUILD_FLAGS) MACRO(NL_SETUP_BUILD_FLAGS)
SET(CMAKE_C_FLAGS ${PLATFORM_CFLAGS} CACHE STRING "" FORCE) SET(CMAKE_C_FLAGS ${PLATFORM_CFLAGS} CACHE STRING "" FORCE)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,3 @@
PROJECT(NeL CXX C)
IF(WITH_STATIC_DRIVERS) IF(WITH_STATIC_DRIVERS)
ADD_DEFINITIONS(-DNL_STATIC) ADD_DEFINITIONS(-DNL_STATIC)
ENDIF() ENDIF()
@ -17,7 +15,6 @@ IF(WITH_3D)
IF(WITH_NEL_CEGUI) IF(WITH_NEL_CEGUI)
FIND_PACKAGE(CEGUI) FIND_PACKAGE(CEGUI)
ENDIF() ENDIF()
ENDIF() ENDIF()
IF(WITH_SOUND) IF(WITH_SOUND)

View file

@ -19,6 +19,8 @@
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
#include "nel/misc/bit_set.h" #include "nel/misc/bit_set.h"
#include "nel/misc/smart_ptr.h"
#include <string> #include <string>
#include <vector> #include <vector>
#include <map> #include <map>

View file

@ -21,13 +21,17 @@
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
#include "nel/misc/smart_ptr.h" #include "nel/misc/smart_ptr.h"
#include "nel/3d/animatable.h" #include "nel/3d/animatable.h"
#include "nel/3d/track.h" #include "nel/3d/track.h"
#include <map> #include <map>
namespace NL3D namespace NL3D
{ {
class CScene;
// *************************************************************************** // ***************************************************************************
/** /**
* An animated lightmap * An animated lightmap

View file

@ -93,7 +93,7 @@ public:
uint addAnimation (const char* fileName, const char* animName, bool displayMissingFileWarning = true) uint addAnimation (const char* fileName, const char* animName, bool displayMissingFileWarning = true)
{ {
// Allocate an animation // Allocate an animation
std::auto_ptr<CAnimation> anim (new CAnimation); CUniquePtr<CAnimation> anim (new CAnimation);
// Read it // Read it
NLMISC::CIFile file; NLMISC::CIFile file;
@ -130,7 +130,7 @@ public:
virtual uint addSkeletonWeight (const char* fileName, const char* skelName) virtual uint addSkeletonWeight (const char* fileName, const char* skelName)
{ {
// Allocate an animation // Allocate an animation
std::auto_ptr<CSkeletonWeight> skeletonWeight (new CSkeletonWeight); CUniquePtr<CSkeletonWeight> skeletonWeight (new CSkeletonWeight);
// Read it // Read it
NLMISC::CIFile file; NLMISC::CIFile file;

View file

@ -88,7 +88,7 @@ private:
public: public:
std::string MeshName; std::string MeshName;
public: public:
CMeshLoad (const std::string &meshName, IShape **ppShp, IDriver *pDriver, const CVector &position, uint selectedTexture); CMeshLoad (const std::string &meshName, IShape **ppShp, IDriver *pDriver, const NLMISC::CVector &position, uint selectedTexture);
void run (void); void run (void);
void getName (std::string &result) const; void getName (std::string &result) const;
}; };
@ -122,7 +122,7 @@ private:
CTextureFile *TextureFile; CTextureFile *TextureFile;
bool *Signal; bool *Signal;
public: public:
CTextureLoad(CTextureFile *textureFile, bool *psgn, const CVector &position) CTextureLoad(CTextureFile *textureFile, bool *psgn, const NLMISC::CVector &position)
: TextureFile(textureFile), Signal(psgn) : TextureFile(textureFile), Signal(psgn)
{ {
Position = position; Position = position;

View file

@ -152,7 +152,7 @@ private:
struct CTextureLodToSort struct CTextureLodToSort
{ {
CTextureLod *Lod; CTextureLod *Lod;
CVector Position; NLMISC::CVector Position;
bool operator<(const CTextureLodToSort &other) const bool operator<(const CTextureLodToSort &other) const
{ {
return Lod->Weight<other.Lod->Weight; return Lod->Weight<other.Lod->Weight;

View file

@ -20,6 +20,7 @@
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
#include "nel/misc/vector.h" #include "nel/misc/vector.h"
#include "nel/misc/plane.h" #include "nel/misc/plane.h"
#include "nel/misc/aabbox.h"
namespace NL3D { namespace NL3D {
@ -39,16 +40,16 @@ public:
/** build the camera collision as a cone or a cylinder /** build the camera collision as a cone or a cylinder
*/ */
void build(const CVector &start, const CVector &end, float radius, bool cone); void build(const NLMISC::CVector &start, const NLMISC::CVector &end, float radius, bool cone);
/** build the camera collision as a simple ray /** build the camera collision as a simple ray
*/ */
void buildRay(const CVector &start, const CVector &end); void buildRay(const NLMISC::CVector &start, const NLMISC::CVector &end);
/** compute the intersection of the Camera Volume against the triangle, and minimize /** compute the intersection of the Camera Volume against the triangle, and minimize
* minDist (actual square of distance) with min sqr distance of the poly. * minDist (actual square of distance) with min sqr distance of the poly.
*/ */
void minimizeDistanceAgainstTri(const CVector &p0, const CVector &p1, const CVector &p2, float &sqrMinDist); void minimizeDistanceAgainstTri(const NLMISC::CVector &p0, const NLMISC::CVector &p1, const NLMISC::CVector &p2, float &sqrMinDist);
/** Compute into this the camera collision 'other' mul by 'matrix' /** Compute into this the camera collision 'other' mul by 'matrix'
* NB: for cone Radius, suppose uniform scale, else will have strange result (a uniform scale is deduced) * NB: for cone Radius, suppose uniform scale, else will have strange result (a uniform scale is deduced)
@ -69,9 +70,9 @@ private:
enum {MaxNPlanes=6}; enum {MaxNPlanes=6};
// The start of the camera raycast // The start of the camera raycast
CVector _Start; NLMISC::CVector _Start;
// The end of the camera raycast // The end of the camera raycast
CVector _End; NLMISC::CVector _End;
// The radius (at end only if cone) // The radius (at end only if cone)
float _Radius; float _Radius;
// cone or cylinder? // cone or cylinder?
@ -83,8 +84,8 @@ private:
NLMISC::CAABBox _BBox; NLMISC::CAABBox _BBox;
// Temp Data for minimizeDistanceAgainstTri // Temp Data for minimizeDistanceAgainstTri
CVector _ArrayIn[3+MaxNPlanes]; NLMISC::CVector _ArrayIn[3+MaxNPlanes];
CVector _ArrayOut[3+MaxNPlanes]; NLMISC::CVector _ArrayOut[3+MaxNPlanes];
// The pyramid representing the camera collision volume. Nb: local to start for precision problems // The pyramid representing the camera collision volume. Nb: local to start for precision problems
NLMISC::CPlane _Pyramid[MaxNPlanes]; NLMISC::CPlane _Pyramid[MaxNPlanes];
@ -97,10 +98,10 @@ private:
float _MaxRadiusProj; float _MaxRadiusProj;
float _OODeltaRadiusProj; float _OODeltaRadiusProj;
float _RayLen; float _RayLen;
CVector _RayNorm; NLMISC::CVector _RayNorm;
// simpler method for simple ray // simpler method for simple ray
void intersectRay(const CVector &p0, const CVector &p1, const CVector &p2, float &sqrMinDist); void intersectRay(const NLMISC::CVector &p0, const NLMISC::CVector &p1, const NLMISC::CVector &p2, float &sqrMinDist);
}; };

View file

@ -22,6 +22,7 @@ namespace NL3D
class UDriver; class UDriver;
class UCamera; class UCamera;
class CCloudScape; class CCloudScape;
class CScene;
/// implementation of UWaterInstance methods /// implementation of UWaterInstance methods
class CCloudScapeUser : public UCloudScape class CCloudScapeUser : public UCloudScape

View file

@ -120,7 +120,7 @@ public:
void setWorldMatrix (const NLMISC::CMatrix &WM); void setWorldMatrix (const NLMISC::CMatrix &WM);
bool isRoot() { return _LocalVolume.size() == 0; } bool isRoot() { return _LocalVolume.empty(); }
//\name Sound related. //\name Sound related.
//@{ //@{

View file

@ -84,7 +84,7 @@ public:
void setTextureFile (const char* file); void setTextureFile (const char* file);
/** /**
* Add a coarse mesh in the manager. If an error occured, it returns CantAddCoarseMesh. * Add a coarse mesh in the manager. If an error occurred, it returns CantAddCoarseMesh.
* \param vBuffer the VertexBuffer pre-transformed / Colored. Size MUST be numVertices*NL3D_COARSEMESH_VERTEX_FORMAT_MGR * \param vBuffer the VertexBuffer pre-transformed / Colored. Size MUST be numVertices*NL3D_COARSEMESH_VERTEX_FORMAT_MGR
* \param indexBuffer containing triangles that will be inserted. * \param indexBuffer containing triangles that will be inserted.
* \return false if the mesh can't be added to this pass BECAUSE OF TOO MANY VERTICES or TOO MANY PRIMITIVES reason * \return false if the mesh can't be added to this pass BECAUSE OF TOO MANY VERTICES or TOO MANY PRIMITIVES reason

View file

@ -48,7 +48,7 @@ public:
static void releaseInstance(); static void releaseInstance();
/// convert a HLS (0..255) to a RGBA. /// convert a HLS (0..255) to a RGBA.
CRGBA convert(uint H, uint L, uint S); NLMISC::CRGBA convert(uint H, uint L, uint S);
/// convert a RGBA bitmap into another RGBA, with HLS decal (0..255, -255..+255, -255..+255). /// convert a RGBA bitmap into another RGBA, with HLS decal (0..255, -255..+255, -255..+255).
void convertRGBABitmap(NLMISC::CBitmap &dst, const NLMISC::CBitmap &src, uint8 dh, sint dl, sint ds); void convertRGBABitmap(NLMISC::CBitmap &dst, const NLMISC::CBitmap &src, uint8 dh, sint dl, sint ds);
@ -75,7 +75,7 @@ private:
uint8 H,L,S,A; uint8 H,L,S,A;
}; };
CRGBA _HueTable[HueTableSize]; NLMISC::CRGBA _HueTable[HueTableSize];
CHLSA _Color16ToHLS[65536]; CHLSA _Color16ToHLS[65536];
/// Constructor /// Constructor

View file

@ -27,7 +27,8 @@
#ifndef NL3D_GPU_PROGRAM_PARAMS_H #ifndef NL3D_GPU_PROGRAM_PARAMS_H
#define NL3D_GPU_PROGRAM_PARAMS_H #define NL3D_GPU_PROGRAM_PARAMS_H
#include <nel/misc/types_nl.h>
#include "nel/misc/types_nl.h"
// STL includes // STL includes
#include <map> #include <map>
@ -167,7 +168,7 @@ private:
std::map<std::string, size_t> m_MapName; // map from name to offset std::map<std::string, size_t> m_MapName; // map from name to offset
size_t m_First; size_t m_First;
size_t m_Last; size_t m_Last;
static const size_t s_End = -1; static const size_t s_End;
}; /* class CGPUProgramParams */ }; /* class CGPUProgramParams */

View file

@ -26,6 +26,7 @@
namespace NL3D namespace NL3D
{ {
class CInstanceGroup;
// *************************************************************************** // ***************************************************************************
/** /**
@ -106,14 +107,14 @@ public:
public: public:
/// Debug: build a colored Grid mesh of SunContribution. /// Debug: build a colored Grid mesh of SunContribution.
void buildSunDebugMesh(CMesh::CMeshBuild &meshBuild, CMeshBase::CMeshBaseBuild &meshBaseBuild, const CVector &deltaPos=CVector::Null); void buildSunDebugMesh(CMesh::CMeshBuild &meshBuild, CMeshBase::CMeshBaseBuild &meshBaseBuild, const NLMISC::CVector &deltaPos= NLMISC::CVector::Null);
/// Debug: build a colored Grid mesh of PointLight. R= pointLight1 id. G= PointLight2 id. B= The multiplier used to show Ids. /// Debug: build a colored Grid mesh of PointLight. R= pointLight1 id. G= PointLight2 id. B= The multiplier used to show Ids.
void buildPLDebugMesh(CMesh::CMeshBuild &meshBuild, CMeshBase::CMeshBaseBuild &meshBaseBuild, const CVector &deltaPos, const CInstanceGroup &igOut); void buildPLDebugMesh(CMesh::CMeshBuild &meshBuild, CMeshBase::CMeshBaseBuild &meshBaseBuild, const NLMISC::CVector &deltaPos, const CInstanceGroup &igOut);
private: private:
void addDebugMeshFaces(CMesh::CMeshBuild &meshBuild, CSurface &surface, uint vId0, void addDebugMeshFaces(CMesh::CMeshBuild &meshBuild, CSurface &surface, uint vId0,
const std::vector<CRGBA> &colors); const std::vector<NLMISC::CRGBA> &colors);
}; };

View file

@ -716,7 +716,7 @@ private:
bool _RefineMode; bool _RefineMode;
float _FarTransition; float _FarTransition;
uint _TileMaxSubdivision; uint _TileMaxSubdivision;
// For VertexProgram. true if change has occured in threshold since the last render(). // For VertexProgram. true if change has occurred in threshold since the last render().
float _VPThresholdChange; float _VPThresholdChange;
/// \name VertexBuffer mgt. /// \name VertexBuffer mgt.

View file

@ -692,7 +692,7 @@ private:
{ {
NLMISC::CMatrix TexMat[IDRV_MAT_MAXTEXTURES]; NLMISC::CMatrix TexMat[IDRV_MAT_MAXTEXTURES];
}; };
std::auto_ptr<CUserTexMat> _TexUserMat; // user texture matrix CUniquePtr<CUserTexMat> _TexUserMat; // user texture matrix
public: public:
// Private. For Driver only. // Private. For Driver only.

View file

@ -47,7 +47,7 @@ public:
float a31, a32, a33, a34; float a31, a32, a33, a34;
// Copy from a matrix. // Copy from a matrix.
void set(const CMatrix &mat) void set(const NLMISC::CMatrix &mat)
{ {
const float *m =mat.get(); const float *m =mat.get();
a11= m[0]; a12= m[4]; a13= m[8] ; a14= m[12]; a11= m[0]; a12= m[4]; a13= m[8] ; a14= m[12];
@ -57,14 +57,14 @@ public:
// mulSetvector. NB: in should be different as v!! (else don't work). // mulSetvector. NB: in should be different as v!! (else don't work).
void mulSetVector(const CVector &in, CVector &out) void mulSetVector(const NLMISC::CVector &in, NLMISC::CVector &out)
{ {
out.x= (a11*in.x + a12*in.y + a13*in.z); out.x= (a11*in.x + a12*in.y + a13*in.z);
out.y= (a21*in.x + a22*in.y + a23*in.z); out.y= (a21*in.x + a22*in.y + a23*in.z);
out.z= (a31*in.x + a32*in.y + a33*in.z); out.z= (a31*in.x + a32*in.y + a33*in.z);
} }
// mulSetpoint. NB: in should be different as v!! (else don't work). // mulSetpoint. NB: in should be different as v!! (else don't work).
void mulSetPoint(const CVector &in, CVector &out) void mulSetPoint(const NLMISC::CVector &in, NLMISC::CVector &out)
{ {
out.x= (a11*in.x + a12*in.y + a13*in.z + a14); out.x= (a11*in.x + a12*in.y + a13*in.z + a14);
out.y= (a21*in.x + a22*in.y + a23*in.z + a24); out.y= (a21*in.x + a22*in.y + a23*in.z + a24);
@ -73,14 +73,14 @@ public:
// mulSetvector. NB: in should be different as v!! (else don't work). // mulSetvector. NB: in should be different as v!! (else don't work).
void mulSetVector(const CVector &in, float scale, CVector &out) void mulSetVector(const NLMISC::CVector &in, float scale, NLMISC::CVector &out)
{ {
out.x= (a11*in.x + a12*in.y + a13*in.z) * scale; out.x= (a11*in.x + a12*in.y + a13*in.z) * scale;
out.y= (a21*in.x + a22*in.y + a23*in.z) * scale; out.y= (a21*in.x + a22*in.y + a23*in.z) * scale;
out.z= (a31*in.x + a32*in.y + a33*in.z) * scale; out.z= (a31*in.x + a32*in.y + a33*in.z) * scale;
} }
// mulSetpoint. NB: in should be different as v!! (else don't work). // mulSetpoint. NB: in should be different as v!! (else don't work).
void mulSetPoint(const CVector &in, float scale, CVector &out) void mulSetPoint(const NLMISC::CVector &in, float scale, NLMISC::CVector &out)
{ {
out.x= (a11*in.x + a12*in.y + a13*in.z + a14) * scale; out.x= (a11*in.x + a12*in.y + a13*in.z + a14) * scale;
out.y= (a21*in.x + a22*in.y + a23*in.z + a24) * scale; out.y= (a21*in.x + a22*in.y + a23*in.z + a24) * scale;
@ -89,14 +89,14 @@ public:
// mulAddvector. NB: in should be different as v!! (else don't work). // mulAddvector. NB: in should be different as v!! (else don't work).
void mulAddVector(const CVector &in, float scale, CVector &out) void mulAddVector(const NLMISC::CVector &in, float scale, NLMISC::CVector &out)
{ {
out.x+= (a11*in.x + a12*in.y + a13*in.z) * scale; out.x+= (a11*in.x + a12*in.y + a13*in.z) * scale;
out.y+= (a21*in.x + a22*in.y + a23*in.z) * scale; out.y+= (a21*in.x + a22*in.y + a23*in.z) * scale;
out.z+= (a31*in.x + a32*in.y + a33*in.z) * scale; out.z+= (a31*in.x + a32*in.y + a33*in.z) * scale;
} }
// mulAddpoint. NB: in should be different as v!! (else don't work). // mulAddpoint. NB: in should be different as v!! (else don't work).
void mulAddPoint(const CVector &in, float scale, CVector &out) void mulAddPoint(const NLMISC::CVector &in, float scale, NLMISC::CVector &out)
{ {
out.x+= (a11*in.x + a12*in.y + a13*in.z + a14) * scale; out.x+= (a11*in.x + a12*in.y + a13*in.z + a14) * scale;
out.y+= (a21*in.x + a22*in.y + a23*in.z + a24) * scale; out.y+= (a21*in.x + a22*in.y + a23*in.z + a24) * scale;

View file

@ -124,7 +124,7 @@ private:
double _LastSceneTime; double _LastSceneTime;
// maximum amplitude vector for each level. Stored in mesh because same for all instances. // maximum amplitude vector for each level. Stored in mesh because same for all instances.
CVector _MaxDeltaPos[HrcDepth]; NLMISC::CVector _MaxDeltaPos[HrcDepth];
float _MaxVertexMove; float _MaxVertexMove;
// MBR Cache // MBR Cache

View file

@ -841,7 +841,7 @@ public:
/// return true when there are still emitters in the system /// return true when there are still emitters in the system
bool hasEmitters(void) const; bool hasEmitters() const;
/// return true when there are still particles /// return true when there are still particles
bool hasParticles() const; bool hasParticles() const;

View file

@ -87,7 +87,7 @@ private:
{ {
public: public:
CParticleSystemModel *Model; CParticleSystemModel *Model;
CMatrix OldAncestorMatOrRelPos; // last matrix of ancestor skeleton or relative matrix of ps to its ancestor (see flag below) NLMISC::CMatrix OldAncestorMatOrRelPos; // last matrix of ancestor skeleton or relative matrix of ps to its ancestor (see flag below)
bool IsRelMatrix; // gives usage of the field OldAncestorMatOrRelPos bool IsRelMatrix; // gives usage of the field OldAncestorMatOrRelPos
bool HasAncestorSkeleton; // has the system an ancestor skeleton ? bool HasAncestorSkeleton; // has the system an ancestor skeleton ?
public: public:

View file

@ -163,10 +163,10 @@ class CParticleSystemProcess : public NLMISC::IStreamable
virtual void setMatrixMode(TPSMatrixMode matrixMode); virtual void setMatrixMode(TPSMatrixMode matrixMode);
/// tells whether there are alive entities / particles in the system /// tells whether there are alive entities / particles in the system
virtual bool hasParticles(void) const { return false ; } virtual bool hasParticles() const { return false ; }
/// tells whether there are alive emitters / particles in the system /// tells whether there are alive emitters / particles in the system
virtual bool hasEmitters(void) const { return false ; } virtual bool hasEmitters() const { return false ; }
/// max number of faces wanted by this process (for load balancing) /// max number of faces wanted by this process (for load balancing)

View file

@ -92,9 +92,9 @@ public:
void setWorldMatrix (const NLMISC::CMatrix &WM); void setWorldMatrix (const NLMISC::CMatrix &WM);
void setName (std::string &name) { _Name = name; } void setName (const std::string &name) { _Name = name; }
std::string getName () { return _Name; } std::string getName () const { return _Name; }
void open (bool opened) { _Opened = opened; } void open (bool opened) { _Opened = opened; }
bool isOpened () { return _Opened; } bool isOpened () { return _Opened; }

View file

@ -282,7 +282,7 @@ inline float CPSAttribMakerBinOp<float>::getMaxValue(void) const
template <class T> template <class T>
inline CPSAttribMakerBinOp<T>::CPSAttribMakerBinOp(const CPSAttribMakerBinOp &other) : CPSAttribMaker<T>(other) // parent copy ctor inline CPSAttribMakerBinOp<T>::CPSAttribMakerBinOp(const CPSAttribMakerBinOp &other) : CPSAttribMaker<T>(other) // parent copy ctor
{ {
std::auto_ptr<CPSAttribMaker<T> > a0(NLMISC::safe_cast<CPSAttribMaker<T> *>(other._Arg[0]->clone())) CUniquePtr<CPSAttribMaker<T> > a0(NLMISC::safe_cast<CPSAttribMaker<T> *>(other._Arg[0]->clone()))
, a1(NLMISC::safe_cast<CPSAttribMaker<T> *>(other._Arg[1]->clone())); , a1(NLMISC::safe_cast<CPSAttribMaker<T> *>(other._Arg[1]->clone()));
this->_Op = other._Op; this->_Op = other._Op;
this->_Size = other._Size; this->_Size = other._Size;

View file

@ -1463,7 +1463,7 @@ public:
CPSAttribMakerMemoryBase(const CPSAttribMakerMemoryBase &src) : CPSAttribMaker<T>(src) // parent copy ctor CPSAttribMakerMemoryBase(const CPSAttribMakerMemoryBase &src) : CPSAttribMaker<T>(src) // parent copy ctor
{ {
nlassert(src._Scheme); nlassert(src._Scheme);
std::auto_ptr<CPSAttribMaker<T> > s(NLMISC::safe_cast<CPSAttribMaker<T> *>(src._Scheme->clone())); CUniquePtr<CPSAttribMaker<T> > s(NLMISC::safe_cast<CPSAttribMaker<T> *>(src._Scheme->clone()));
this->_T = src._T; this->_T = src._T;
this->_DefaultValue = src._DefaultValue; this->_DefaultValue = src._DefaultValue;
this->_Scheme = s.release(); this->_Scheme = s.release();

View file

@ -24,6 +24,8 @@
#include "nel/misc/rgba.h" #include "nel/misc/rgba.h"
#include "nel/misc/traits_nl.h" #include "nel/misc/traits_nl.h"
#include <iterator>
namespace NL3D { namespace NL3D {
/* /*
@ -480,7 +482,11 @@ void CPSValueGradientFunc<T>::setValuesUnpacked(const T *valueTab, uint32 numVal
_MaxValue = _MinValue = valueTab[0]; _MaxValue = _MinValue = valueTab[0];
_NbValues = (numValues - 1) * nbStages; _NbValues = (numValues - 1) * nbStages;
_Tab.resize(_NbValues + 1); _Tab.resize(_NbValues + 1);
#ifdef NL_COMP_VC14
std::copy(valueTab, valueTab + _NbValues + 1, stdext::make_checked_array_iterator(&_Tab[0], _Tab.size()));
#else
std::copy(valueTab, valueTab + _NbValues + 1, &_Tab[0]); std::copy(valueTab, valueTab + _NbValues + 1, &_Tab[0]);
#endif
} }

View file

@ -51,14 +51,14 @@ public:
//@} //@}
/// Return this bindable type /// Return this bindable type
uint32 getType(void) const { return PSEmitter; } uint32 getType() const { return PSEmitter; }
/// Return priority for emitters /// Return priority for emitters
virtual uint32 getPriority(void) const { return 500; } virtual uint32 getPriority() const { return 500; }
/// Return true if this located bindable derived class holds alive emitters /// Return true if this located bindable derived class holds alive emitters
virtual bool hasEmitters(void) { nlassert(_Owner); return _Owner->getSize() != 0; } virtual bool hasEmitters() const { nlassert(_Owner); return _Owner->getSize() != 0; }
virtual void step(TPSProcessPass pass); virtual void step(TPSProcessPass pass);
@ -76,7 +76,7 @@ public:
/// Display the emitter in edition mode /// Display the emitter in edition mode
virtual void showTool(void); virtual void showTool();
/** Set the type of located to be emitted. The default is NULL which mean that no emission will occur /** Set the type of located to be emitted. The default is NULL which mean that no emission will occur
* \return true if the operation could be performed. It can fail when this cause the system the system to last forever, * \return true if the operation could be performed. It can fail when this cause the system the system to last forever,
@ -90,9 +90,9 @@ public:
virtual void notifyTargetRemoved(CPSLocated *ptr); virtual void notifyTargetRemoved(CPSLocated *ptr);
/// Get emitted type. /// Get emitted type.
CPSLocated *getEmittedType(void) { return _EmittedType; } CPSLocated *getEmittedType() { return _EmittedType; }
/// Get const ptr on emitted type /// Get const ptr on emitted type
const CPSLocated *getEmittedType(void) const { return _EmittedType; } const CPSLocated *getEmittedType() const { return _EmittedType; }
/** The type of emission. /** The type of emission.
@ -336,7 +336,7 @@ protected:
* should not be called directly. Call CPSLocated::resize instead * should not be called directly. Call CPSLocated::resize instead
*/ */
virtual void resize(uint32 size); virtual void resize(uint32 size);
virtual void bounceOccured(uint32 index, TAnimationTime timeToNextSimStep); virtual void bounceOccurred(uint32 index, TAnimationTime timeToNextSimStep);
void updateMaxCountVect(); void updateMaxCountVect();

View file

@ -66,14 +66,14 @@ class CParticleSystem;
/// This structure helps to perform the collision step, by telling which collisionner is the nearest if there are several candidate /// This structure helps to perform the collision step, by telling which collisionner is the nearest if there are several candidate
/// a distance of -1 indicates that no collisions occured /// a distance of -1 indicates that no collisions occurred
struct CPSCollisionInfo struct CPSCollisionInfo
{ {
CPSCollisionInfo *Next; CPSCollisionInfo *Next;
float Dist; // Distance to the nearest collider, or -1 if not collision occured float Dist; // Distance to the nearest collider, or -1 if not collision occurred
NLMISC::CVector NewPos; NLMISC::CVector NewPos;
NLMISC::CVector NewSpeed; // The speed of particle after a collision occured. After the updated of collision it is swapped with the post-collision speed NLMISC::CVector NewSpeed; // The speed of particle after a collision occurred. After the updated of collision it is swapped with the post-collision speed
CPSZone *CollisionZone; // The zone on which the bounce occured, can be useful to check the behaviour in case of collision CPSZone *CollisionZone; // The zone on which the bounce occurred, can be useful to check the behaviour in case of collision
uint32 Index; uint32 Index;
CPSCollisionInfo() CPSCollisionInfo()
{ {
@ -449,14 +449,14 @@ public:
void setName(const std::string &name) { _Name = name; } void setName(const std::string &name) { _Name = name; }
/// get the located bindable name (edition purpose) /// get the located bindable name (edition purpose)
std::string getName(void) const { return _Name; } std::string getName() const { return _Name; }
/// tells whether there are alive entities / particles in the system /// tells whether there are alive entities / particles in the system
virtual bool hasParticles(void) const; virtual bool hasParticles() const;
/// tells whether there are alive emitters / particles in the system /// tells whether there are alive emitters / particles in the system
virtual bool hasEmitters(void) const; virtual bool hasEmitters() const;
/** Enable the to force LOD degradation. This will suppress instances immediately, (during the motion pass) so that /** Enable the to force LOD degradation. This will suppress instances immediately, (during the motion pass) so that
* there won't be more than maxNbInstance * dist / maxDist instances. This may not be desirable * there won't be more than maxNbInstance * dist / maxDist instances. This may not be desirable
@ -468,7 +468,7 @@ public:
/** Test whether LOD degradation was activated /** Test whether LOD degradation was activated
* \see forceLODDegradation() * \see forceLODDegradation()
*/ */
bool hasLODDegradation(void) const { return _LODDegradation; } bool hasLODDegradation() const { return _LODDegradation; }
/// for the CPSLocated to reevaluate the max number of faces it may need /// for the CPSLocated to reevaluate the max number of faces it may need
@ -853,11 +853,11 @@ public:
*/ */
void setLOD(TPSLod lod) { _LOD = lod; } void setLOD(TPSLod lod) { _LOD = lod; }
/// get the valid lods for that object /// get the valid lods for that object
TPSLod getLOD(void) const { return _LOD; } TPSLod getLOD() const { return _LOD; }
/// tells whether there are alive entities / particles /// tells whether there are alive entities / particles
virtual bool hasParticles(void) const { return false; } virtual bool hasParticles() const { return false; }
/// tells whether there are alive emitters /// tells whether there are alive emitters
virtual bool hasEmitters(void) const { return false; } virtual bool hasEmitters() const { return false; }
/** set the extern ID of this located bindable. 0 means no extern access. The map of ID-locatedBindable. Is in th /** set the extern ID of this located bindable. 0 means no extern access. The map of ID-locatedBindable. Is in th
* particle system, so this located bindable must have been attached to a particle system, otherwise an assertion is raised * particle system, so this located bindable must have been attached to a particle system, otherwise an assertion is raised
*/ */
@ -906,10 +906,10 @@ protected:
*/ */
virtual void resize(uint32 size) = 0; virtual void resize(uint32 size) = 0;
/** a bounce occured, so some action could be done. The default behaviour does nothing /** a bounce occurred, so some action could be done. The default behaviour does nothing
* \param index the index of the element that bounced * \param index the index of the element that bounced
*/ */
virtual void bounceOccured(uint32 /* index */, TAnimationTime /* timeToNextsimStep */) {} virtual void bounceOccurred(uint32 /* index */, TAnimationTime /* timeToNextsimStep */) {}
/** show an drawing to represent the object, and in red if it is selected /** show an drawing to represent the object, and in red if it is selected
* \param tab : a table of 2 * nbSeg vector. only the x and y coordinates are used * \param tab : a table of 2 * nbSeg vector. only the x and y coordinates are used

View file

@ -590,7 +590,7 @@ protected:
void serial(NLMISC::IStream &f) throw(NLMISC::EStream); void serial(NLMISC::IStream &f) throw(NLMISC::EStream);
}; };
typedef std::auto_ptr<CGlobalTexAnims> PGlobalTexAnims; typedef CUniquePtr<CGlobalTexAnims> PGlobalTexAnims;
PGlobalTexAnims _GlobalTexAnims; PGlobalTexAnims _GlobalTexAnims;
float _GlobalAnimDate; float _GlobalAnimDate;

View file

@ -120,7 +120,7 @@ protected:
/** /**
* This set speed of a located so that it looks like bouncing on a surface * This set speed of a located so that it looks like bouncing on a surface
* \param locatedIndex the index * \param locatedIndex the index
* \param bouncePoint the position where the collision occured * \param bouncePoint the position where the collision occurred
* \param surfNormal the normal of the surface at the collision point (this must be a unit vector) * \param surfNormal the normal of the surface at the collision point (this must be a unit vector)
* \elasticity 1 = full bounce, 0 = no bounce (contact) * \elasticity 1 = full bounce, 0 = no bounce (contact)
* \ellapsedTime the time ellapsed * \ellapsedTime the time ellapsed

View file

@ -654,7 +654,7 @@ template<class T> typename CQuadGrid<T>::CIterator CQuadGrid<T>::erase(typename
if(!ptr->Selected) if(!ptr->Selected)
next= NULL; next= NULL;
// delete the object. // delete the object.
_NodeBlockMemory.free(ptr); _NodeBlockMemory.freeBlock(ptr);
return CIterator((CNode*)next); return CIterator((CNode*)next);

View file

@ -53,7 +53,7 @@ public:
public: public:
// Simple Definition of a mesh used to test against Ray // Simple Definition of a mesh used to test against Ray
std::vector<CVector> Vertices; std::vector<NLMISC::CVector> Vertices;
std::vector<uint32> Triangles; std::vector<uint32> Triangles;
/// Empty? /// Empty?

View file

@ -28,6 +28,8 @@
#include "nel/3d/shadow_map_manager.h" #include "nel/3d/shadow_map_manager.h"
#include "nel/3d/u_scene.h" #include "nel/3d/u_scene.h"
#include "nel/3d/vertex_program.h" #include "nel/3d/vertex_program.h"
#include "nel/3d/transform.h"
#include <vector> #include <vector>

View file

@ -22,7 +22,7 @@
#include "nel/misc/smart_ptr.h" #include "nel/misc/smart_ptr.h"
#include "nel/misc/vector.h" #include "nel/misc/vector.h"
#include "nel/misc/aabbox.h" #include "nel/misc/aabbox.h"
#include "nel/misc/class_id.h"
#include "nel/3d/texture.h" #include "nel/3d/texture.h"
#include "nel/3d/shape.h" #include "nel/3d/shape.h"

View file

@ -51,7 +51,7 @@ public:
* The usage of this matrix is for UV projection: XYZ= WorldProjectionMatrix * UVW. * The usage of this matrix is for UV projection: XYZ= WorldProjectionMatrix * UVW.
* NB: Vj (ie for W) is mapped such that Vp means NearClip of the shadow and Vp+Vj means FarClip of the shadow * NB: Vj (ie for W) is mapped such that Vp means NearClip of the shadow and Vp+Vj means FarClip of the shadow
*/ */
CMatrix LocalProjectionMatrix; NLMISC::CMatrix LocalProjectionMatrix;
/** Computed at shadow casting time. They are clipping planes used to clip receivers (mirror of the OBB). /** Computed at shadow casting time. They are clipping planes used to clip receivers (mirror of the OBB).
* Receivers may use them to clip sub received parts (as they which) * Receivers may use them to clip sub received parts (as they which)
@ -63,7 +63,7 @@ public:
/** Computed at shadow casting time. This is the LocalPos Bouding Box containing the shadow (AxisAligned). /** Computed at shadow casting time. This is the LocalPos Bouding Box containing the shadow (AxisAligned).
* \see generateClipInfoFromMatrix() * \see generateClipInfoFromMatrix()
*/ */
CAABBox LocalBoundingBox; NLMISC::CAABBox LocalBoundingBox;
// Filled by ShadowMapManager. This is the Last Frame Id we had update the texture. // Filled by ShadowMapManager. This is the Last Frame Id we had update the texture.
@ -114,13 +114,13 @@ public:
* driver->setupModelMatrix(localPosMatrix); * driver->setupModelMatrix(localPosMatrix);
* Then render his mesh. * Then render his mesh.
*/ */
void buildCasterCameraMatrix(const CVector &lightDir, const CMatrix &localPosMatrix, const CAABBox &bbShape, CMatrix &cameraMatrix); void buildCasterCameraMatrix(const NLMISC::CVector &lightDir, const NLMISC::CMatrix &localPosMatrix, const NLMISC::CAABBox &bbShape, NLMISC::CMatrix &cameraMatrix);
/** From the Camera matrix computed with buildCasterCameraMatrix, compute the LocalProjectionMatrix, which modify the /** From the Camera matrix computed with buildCasterCameraMatrix, compute the LocalProjectionMatrix, which modify the
* J axis according to backPoint and Shadow Depth. * J axis according to backPoint and Shadow Depth.
* NB: automatically calls the buildClipInfoFromMatrix() method * NB: automatically calls the buildClipInfoFromMatrix() method
*/ */
void buildProjectionInfos(const CMatrix &cameraMatrix, const CVector &backPoint, float shadowMaxDepth); void buildProjectionInfos(const NLMISC::CMatrix &cameraMatrix, const NLMISC::CVector &backPoint, float shadowMaxDepth);
/** The ShadowMap Caster can call this method after setting LocalProjectionMatrix. It computes auto the /** The ShadowMap Caster can call this method after setting LocalProjectionMatrix. It computes auto the
* LocalClipPlanes and LocalBoundingBox from it. NB: don't use it if you use buildProjectionInfos(). * LocalClipPlanes and LocalBoundingBox from it. NB: don't use it if you use buildProjectionInfos().
@ -158,13 +158,13 @@ class CShadowMapProjector
{ {
public: public:
CShadowMapProjector(); CShadowMapProjector();
void setWorldSpaceTextMat(const CMatrix &ws); void setWorldSpaceTextMat(const NLMISC::CMatrix &ws);
void applyToMaterial(const CMatrix &receiverWorldMatrix, CMaterial &material); void applyToMaterial(const NLMISC::CMatrix &receiverWorldMatrix, CMaterial &material);
private: private:
CMatrix _WsTextMat; NLMISC::CMatrix _WsTextMat;
CMatrix _XYZToUWVMatrix; NLMISC::CMatrix _XYZToUWVMatrix;
CMatrix _XYZToWUVMatrix; NLMISC::CMatrix _XYZToWUVMatrix;
}; };

View file

@ -30,6 +30,7 @@ namespace NL3D {
class CTransform; class CTransform;
class CScene;
// *************************************************************************** // ***************************************************************************

View file

@ -33,7 +33,7 @@ namespace NL3D
class CShadowVertex class CShadowVertex
{ {
public: public:
CVector Vertex; NLMISC::CVector Vertex;
uint32 MatrixId; uint32 MatrixId;
void serial(NLMISC::IStream &f) void serial(NLMISC::IStream &f)
{ {
@ -82,7 +82,7 @@ public:
* if don't intersect, dist2D="nearest distance to the ray", and distZ=0 * if don't intersect, dist2D="nearest distance to the ray", and distZ=0
* \param computeDist2D if false and don't intersect, then return dist2D=FLT_MAX, and distZ=0 * \param computeDist2D if false and don't intersect, then return dist2D=FLT_MAX, and distZ=0
*/ */
bool getRayIntersection(const CMatrix &toRaySpace, class CSkeletonModel &skeleton, bool getRayIntersection(const NLMISC::CMatrix &toRaySpace, class CSkeletonModel &skeleton,
const std::vector<uint32> &matrixInfluences, float &dist2D, float &distZ, bool computeDist2D); const std::vector<uint32> &matrixInfluences, float &dist2D, float &distZ, bool computeDist2D);
private: private:

View file

@ -54,7 +54,7 @@ public:
virtual NLMISC::CQuat getOrientation() const = 0; virtual NLMISC::CQuat getOrientation() const = 0;
/// Set the GUI reference /// Set the GUI reference
virtual void setInterfaceMatrix(const NL3D::CMatrix &matrix) = 0; virtual void setInterfaceMatrix(const NLMISC::CMatrix &matrix) = 0;
/// Get GUI center (1 = width, 1 = height, 0 = center) /// Get GUI center (1 = width, 1 = height, 0 = center)
virtual void getInterface2DShift(uint cid, float &x, float &y, float distance) const = 0; virtual void getInterface2DShift(uint cid, float &x, float &y, float distance) const = 0;

View file

@ -49,11 +49,11 @@ public:
/// \name Target and Direction specific /// \name Target and Direction specific
// @{ // @{
/// For TargetMode, the world Position of the target. /// For TargetMode, the world Position of the target.
CVector WorldTarget; NLMISC::CVector WorldTarget;
/// For TargetMode only, the Pos of eyes relative to the bone controlled. Default to (0,0,0) /// For TargetMode only, the Pos of eyes relative to the bone controlled. Default to (0,0,0)
CVector EyePos; NLMISC::CVector EyePos;
/// For DirectionMode, the WorldRotation to apply to the bone. NB: modified in execute() if TargetMode /// For DirectionMode, the WorldRotation to apply to the bone. NB: modified in execute() if TargetMode
CQuat CurrentWorldDirection; NLMISC::CQuat CurrentWorldDirection;
// @} // @}
/// \name Common /// \name Common
@ -63,7 +63,7 @@ public:
*/ */
bool Enabled; bool Enabled;
/// This give The World Orientation when the Mesh is in bind Pos (default to "LookBack"). /// This give The World Orientation when the Mesh is in bind Pos (default to "LookBack").
CQuat DefaultWorldDirection; NLMISC::CQuat DefaultWorldDirection;
/// The Maximum angle of rotation that can be performed between the Default Direction and Current Direction. Default to Pi/3 /// The Maximum angle of rotation that can be performed between the Default Direction and Current Direction. Default to Pi/3
float MaxAngle; float MaxAngle;
/// The Maximum Angular Velocity the ctrl can perform. Default to 2*Pi per second. /// The Maximum Angular Velocity the ctrl can perform. Default to 2*Pi per second.
@ -83,13 +83,13 @@ public:
private: private:
/// The last rotation computed (in LocalSkeleton Space). Used to smooth transition /// The last rotation computed (in LocalSkeleton Space). Used to smooth transition
CQuat _LastLSRotation; NLMISC::CQuat _LastLSRotation;
/// This tells that a Enable/Disable transition is in progress. /// This tells that a Enable/Disable transition is in progress.
bool _LastEnabled; bool _LastEnabled;
bool _EnableToDisableTransition; bool _EnableToDisableTransition;
CQuat getCurrentLSRotationFromBone(CSkeletonModel *model, CBone *bone); NLMISC::CQuat getCurrentLSRotationFromBone(CSkeletonModel *model, CBone *bone);
}; };

View file

@ -54,16 +54,16 @@ public:
bool isSharingEnabled() const { return !_DisableSharing; } bool isSharingEnabled() const { return !_DisableSharing; }
// set the ambiant/ diffuse color to be added to the embossed texture // set the ambiant/ diffuse color to be added to the embossed texture
void setAmbient(CRGBA ambient) { _Ambient = ambient; touch(); } void setAmbient(NLMISC::CRGBA ambient) { _Ambient = ambient; touch(); }
void setDiffuse(CRGBA diffuse) { _Diffuse = diffuse; touch(); } void setDiffuse(NLMISC::CRGBA diffuse) { _Diffuse = diffuse; touch(); }
// Set the direction of light (usually should be normalized). The bitmap is in the x,y plane // Set the direction of light (usually should be normalized). The bitmap is in the x,y plane
void setLightDir(const NLMISC::CVector &lightDir) { _LightDir = lightDir; touch(); } void setLightDir(const NLMISC::CVector &lightDir) { _LightDir = lightDir; touch(); }
// set a factor for the slope // set a factor for the slope
void setSlopeFactor(float factor) { _SlopeFactor = factor; touch(); } void setSlopeFactor(float factor) { _SlopeFactor = factor; touch(); }
// //
CRGBA getAmbient() const { return _Ambient; } NLMISC::CRGBA getAmbient() const { return _Ambient; }
CRGBA getDiffuse() const { return _Diffuse; } NLMISC::CRGBA getDiffuse() const { return _Diffuse; }
const CVector &getLightDir() const { return _LightDir; } const NLMISC::CVector &getLightDir() const { return _LightDir; }
float getSlopeFactor() const { return _SlopeFactor; } float getSlopeFactor() const { return _SlopeFactor; }
@ -75,8 +75,8 @@ protected:
// inherited from ITexture. Generate this bumpmap pixels // inherited from ITexture. Generate this bumpmap pixels
virtual void doGenerate(bool async = false); virtual void doGenerate(bool async = false);
NLMISC::CSmartPtr<ITexture> _HeightMap; NLMISC::CSmartPtr<ITexture> _HeightMap;
CRGBA _Ambient; NLMISC::CRGBA _Ambient;
CRGBA _Diffuse; NLMISC::CRGBA _Diffuse;
NLMISC::CVector _LightDir; NLMISC::CVector _LightDir;
bool _DisableSharing; bool _DisableSharing;
float _SlopeFactor; float _SlopeFactor;

View file

@ -140,7 +140,7 @@ public:
private: private:
void clearTile (CTile::TBitmap type); void clearTile (CTile::TBitmap type);
void free () void freeBlock ()
{ {
nlassert ((_Flags&=NL3D_CTILE_FREE_FLAG)==0); nlassert ((_Flags&=NL3D_CTILE_FREE_FLAG)==0);
_Flags|=NL3D_CTILE_FREE_FLAG; _Flags|=NL3D_CTILE_FREE_FLAG;

View file

@ -32,6 +32,7 @@ using NLMISC::CQuat;
class ILogicInfo; class ILogicInfo;
class CCluster; class CCluster;
class ITransformable;
// *************************************************************************** // ***************************************************************************
/** /**

View file

@ -48,7 +48,7 @@ public:
/// PointLights. Used at CVegetableManager::updateLighting() to get current colors of pointLights. /// PointLights. Used at CVegetableManager::updateLighting() to get current colors of pointLights.
CPointLightNamed *PointLight[MaxNumLight]; CPointLightNamed *PointLight[MaxNumLight];
/// Direction of the light. the direction to the instance should be precomputed. /// Direction of the light. the direction to the instance should be precomputed.
CVector Direction[MaxNumLight]; NLMISC::CVector Direction[MaxNumLight];
/// Factor to be multiplied by color of the light. Actually it is the attenuation factor. /// Factor to be multiplied by color of the light. Actually it is the attenuation factor.
uint PointLightFactor[MaxNumLight]; uint PointLightFactor[MaxNumLight];

View file

@ -69,7 +69,7 @@ public:
bool allocate(uint numVertices, uint &indexStart); bool allocate(uint numVertices, uint &indexStart);
/// free a subset of the VB. nlstop if subset not found... /// free a subset of the VB. nlstop if subset not found...
void free(uint indexStart); void freeBlock(uint indexStart);
// @} // @}

View file

@ -21,6 +21,7 @@
// //
#include "nel/3d/texture_cube.h" #include "nel/3d/texture_cube.h"
#include "nel/3d/texture_blank.h" #include "nel/3d/texture_blank.h"
#include "nel/3d/animation_time.h"
namespace NL3D namespace NL3D

View file

@ -79,7 +79,7 @@ public:
/** Set the userPos (relative to the height map coordinates). This is needed because a height map can't be used with large surface (such as a sea). /** Set the userPos (relative to the height map coordinates). This is needed because a height map can't be used with large surface (such as a sea).
* As a consequence, the height map is only valid below the user (e.g from user.x - 0.5 * size to user.x + 0.5 *size). * As a consequence, the height map is only valid below the user (e.g from user.x - 0.5 * size to user.x + 0.5 *size).
* When setPos is called, and if a move has occured, new area of the height field are set to 0 * When setPos is called, and if a move has occurred, new area of the height field are set to 0
* The pos set will be taken in account when buffers have been swapped (e.g when the propagation time as ellapsed) * The pos set will be taken in account when buffers have been swapped (e.g when the propagation time as ellapsed)
*/ */
void setUserPos(sint x, sint y); void setUserPos(sint x, sint y);

View file

@ -22,7 +22,7 @@
#include "form_elm.h" #include "form_elm.h"
#include "header.h" #include "header.h"
extern bool convertFormFile (const char *oldFileName, const char *newFileName); extern bool convertFormFile (const std::string &oldFileName, const std::string &newFileName);
namespace NLGEORGES namespace NLGEORGES
{ {
@ -35,7 +35,7 @@ class UFormElm;
class CForm : public UForm class CForm : public UForm
{ {
friend class CFormLoader; friend class CFormLoader;
friend bool convertFormFile (const char *oldFileName, const char *newFileName); friend bool convertFormFile (const std::string &oldFileName, const std::string &newFileName);
public: public:
enum { HeldElementCount = 4 }; enum { HeldElementCount = 4 };
@ -73,12 +73,12 @@ public:
// ** IO functions // ** IO functions
// Set the filename before saving the form // Set the filename before saving the form
void write (xmlDocPtr doc, const char *filename); void write (xmlDocPtr doc, const std::string &filename);
// ** Parent access // ** Parent access
// Insert parent before parent indexed "before". // Insert parent before parent indexed "before".
bool insertParent (uint before, const char *filename, CForm *parent); bool insertParent (uint before, const std::string &filename, CForm *parent);
// Remove a parent from parent list // Remove a parent from parent list
void removeParent (uint parent); void removeParent (uint parent);
@ -97,7 +97,7 @@ public:
const std::string &getFilename () const; const std::string &getFilename () const;
// Error handling // Error handling
void warning (bool exception, const char *function, const char *format, ... ) const; void warning (bool exception, const std::string &function, const char *format, ... ) const;
private: private:
@ -114,7 +114,7 @@ private:
// CFormLoader call it // CFormLoader call it
// Set the filename before reading the form // Set the filename before reading the form
void read (xmlNodePtr node, CFormLoader &loader, CFormDfn *dfn, const char *filename); void read (xmlNodePtr node, CFormLoader &loader, CFormDfn *dfn, const std::string &filename);
// Called by read // Called by read
void readParent (const char *parent, CFormLoader &loader); void readParent (const char *parent, CFormLoader &loader);

View file

@ -24,7 +24,7 @@
#include "header.h" #include "header.h"
#include "type.h" #include "type.h"
bool convertDfnFile (const char *oldFileName, const char *newFileName); bool convertDfnFile (const std::string &oldFileName, const std::string &newFileName);
namespace NLGEORGES namespace NLGEORGES
{ {
@ -41,7 +41,7 @@ class CFormDfn : public UFormDfn
friend class CFormElm; friend class CFormElm;
friend class CFormLoader; friend class CFormLoader;
friend class CFormElmStruct; friend class CFormElmStruct;
friend bool convertDfnFile (const char *oldFileName, const char *newFileName); friend bool convertDfnFile (const std::string &oldFileName, const std::string &newFileName);
public: public:
// Default cstr // Default cstr
@ -60,7 +60,7 @@ public:
friend class CFormElm; friend class CFormElm;
friend class CFormDfn; friend class CFormDfn;
friend class CFormElmStruct; friend class CFormElmStruct;
friend bool convertDfnFile (const char *oldFileName, const char *newFileName); friend bool convertDfnFile (const std::string &oldFileName, const std::string &newFileName);
public: public:
CEntry () CEntry ()
@ -85,12 +85,12 @@ public:
TEntryType getType () const; TEntryType getType () const;
// Set as a type // Set as a type
void setType (CFormLoader &loader, const char *filename); void setType (CFormLoader &loader, const std::string &filename);
void setType (TEntryType type); void setType (TEntryType type);
// Set as a dfn // Set as a dfn
void setDfn (CFormLoader &loader, const char *filename); void setDfn (CFormLoader &loader, const std::string &filename);
// Set as a dfn pointer // Set as a dfn pointer
void setDfnPointer (); void setDfnPointer ();
@ -99,7 +99,7 @@ public:
const std::string &getName () const; const std::string &getName () const;
// Set element Name // Set element Name
void setName (const char *name); void setName (const std::string &name);
// Get the filename // Get the filename
const std::string &getFilename() const; const std::string &getFilename() const;
@ -108,16 +108,16 @@ public:
const std::string &getFilenameExt() const; const std::string &getFilenameExt() const;
// Set the filename // Set the filename
void setFilename (const char *def); void setFilename (const std::string &def);
// Set the filename extension // Set the filename extension
void setFilenameExt (const char *ext); void setFilenameExt (const std::string &ext);
// Get default value // Get default value
const std::string &getDefault () const; const std::string &getDefault () const;
// Set default value // Set default value
void setDefault (const char *def); void setDefault (const std::string &def);
// Set array flag // Set array flag
void setArrayFlag (bool flag); void setArrayFlag (bool flag);
@ -167,7 +167,7 @@ public:
void removeEntry( uint idx ); void removeEntry( uint idx );
// ** IO functions // ** IO functions
void write (xmlDocPtr root, const char *filename); void write (xmlDocPtr root, const std::string &filename);
// Count parent DFN // Count parent DFN
uint countParentDfn (uint32 round=0) const; uint countParentDfn (uint32 round=0) const;
@ -185,7 +185,7 @@ public:
void setNumParent (uint size); void setNumParent (uint size);
// Set a parent // Set a parent
void setParent (uint parent, CFormLoader &loader, const char *filename); void setParent (uint parent, CFormLoader &loader, const std::string &filename);
// Get a parent // Get a parent
CFormDfn *getParent (uint parent) const; CFormDfn *getParent (uint parent) const;
@ -232,7 +232,7 @@ public:
CFileHeader Header; CFileHeader Header;
// Error handling // Error handling
void warning (bool exception, const char *function, const char *format, ... ) const; void warning (bool exception, const std::string &function, const char *format, ... ) const;
private: private:
// The parents array // The parents array
@ -249,7 +249,7 @@ private:
private: private:
// Read method called by the form loader // Read method called by the form loader
void read (xmlNodePtr doc, CFormLoader &loader, bool forceLoad, const char *filename); void read (xmlNodePtr doc, CFormLoader &loader, bool forceLoad, const std::string &filename);
}; };
} // NLGEORGES } // NLGEORGES

View file

@ -62,30 +62,30 @@ public:
virtual void getFormName (std::string &result, const CFormElm *child=NULL) const = 0; virtual void getFormName (std::string &result, const CFormElm *child=NULL) const = 0;
// From UFormElm // From UFormElm
virtual bool getNodeByName (const UFormElm **result, const char *name, TWhereIsNode *where, bool verbose, uint32 round=0) const; virtual bool getNodeByName (const UFormElm **result, const std::string &name, TWhereIsNode *where, bool verbose, uint32 round=0) const;
virtual bool getNodeByName (UFormElm **result, const char *name, TWhereIsNode *where, bool verbose, uint32 round=0); virtual bool getNodeByName (UFormElm **result, const std::string &name, TWhereIsNode *where, bool verbose, uint32 round=0);
virtual bool getValueByName (std::string &result, const char *name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const; virtual bool getValueByName (std::string &result, const std::string &name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const;
virtual bool getValueByName (sint8 &result, const char *name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const; virtual bool getValueByName (sint8 &result, const std::string &name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const;
virtual bool getValueByName (uint8 &result, const char *name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const; virtual bool getValueByName (uint8 &result, const std::string &name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const;
virtual bool getValueByName (sint16 &result, const char *name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const; virtual bool getValueByName (sint16 &result, const std::string &name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const;
virtual bool getValueByName (uint16 &result, const char *name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const; virtual bool getValueByName (uint16 &result, const std::string &name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const;
virtual bool getValueByName (sint32 &result, const char *name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const; virtual bool getValueByName (sint32 &result, const std::string &name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const;
virtual bool getValueByName (uint32 &result, const char *name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const; virtual bool getValueByName (uint32 &result, const std::string &name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const;
virtual bool getValueByName (float &result, const char *name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const; virtual bool getValueByName (float &result, const std::string &name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const;
virtual bool getValueByName (double &result, const char *name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const; virtual bool getValueByName (double &result, const std::string &name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const;
virtual bool getValueByName (bool &result, const char *name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const; virtual bool getValueByName (bool &result, const std::string &name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const;
virtual bool getValueByName (NLMISC::CRGBA &result, const char *name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const; virtual bool getValueByName (NLMISC::CRGBA &result, const std::string &name, TEval evaluate, TWhereIsValue *where, uint32 round=0) const;
virtual bool setValueByName (const char *value, const char *name, bool *created); virtual bool setValueByName (const std::string &value, const std::string &name, bool *created);
virtual bool setValueByName (sint8 value, const char *name, bool *created); virtual bool setValueByName (sint8 value, const std::string &name, bool *created);
virtual bool setValueByName (uint8 value, const char *name, bool *created); virtual bool setValueByName (uint8 value, const std::string &name, bool *created);
virtual bool setValueByName (sint16 value, const char *name, bool *created); virtual bool setValueByName (sint16 value, const std::string &name, bool *created);
virtual bool setValueByName (uint16 value, const char *name, bool *created); virtual bool setValueByName (uint16 value, const std::string &name, bool *created);
virtual bool setValueByName (sint32 value, const char *name, bool *created); virtual bool setValueByName (sint32 value, const std::string &name, bool *created);
virtual bool setValueByName (uint32 value, const char *name, bool *created); virtual bool setValueByName (uint32 value, const std::string &name, bool *created);
virtual bool setValueByName (float value, const char *name, bool *created); virtual bool setValueByName (float value, const std::string &name, bool *created);
virtual bool setValueByName (double value, const char *name, bool *created); virtual bool setValueByName (double value, const std::string &name, bool *created);
virtual bool setValueByName (bool value, const char *name, bool *created); virtual bool setValueByName (bool value, const std::string &name, bool *created);
virtual bool setValueByName (NLMISC::CRGBA value, const char *name, bool *created); virtual bool setValueByName (NLMISC::CRGBA value, const std::string &name, bool *created);
virtual UFormElm *getParent () const; virtual UFormElm *getParent () const;
virtual const CType *getType (); virtual const CType *getType ();
virtual bool isArray () const; virtual bool isArray () const;
@ -127,16 +127,16 @@ public:
// ** Convert functions // ** Convert functions
inline bool convertValue (sint8 &result, const char *value) const; inline bool convertValue (sint8 &result, const std::string &value) const;
inline bool convertValue (uint8 &result, const char *value) const; inline bool convertValue (uint8 &result, const std::string &value) const;
inline bool convertValue (sint16 &result, const char *value) const; inline bool convertValue (sint16 &result, const std::string &value) const;
inline bool convertValue (uint16 &result, const char *value) const; inline bool convertValue (uint16 &result, const std::string &value) const;
inline bool convertValue (sint32 &result, const char *value) const; inline bool convertValue (sint32 &result, const std::string &value) const;
inline bool convertValue (uint32 &result, const char *value) const; inline bool convertValue (uint32 &result, const std::string &value) const;
inline bool convertValue (float &result, const char *value) const; inline bool convertValue (float &result, const std::string &value) const;
inline bool convertValue (double &result, const char *value) const; inline bool convertValue (double &result, const std::string &value) const;
inline bool convertValue (bool &result, const char *value) const; inline bool convertValue (bool &result, const std::string &value) const;
inline bool convertValue (NLMISC::CRGBA &result, const char *value) const; inline bool convertValue (NLMISC::CRGBA &result, const std::string &value) const;
// ** Get dependencies // ** Get dependencies
virtual void getDependencies (std::set<std::string> &dependencies) const = 0; virtual void getDependencies (std::set<std::string> &dependencies) const = 0;
@ -144,7 +144,7 @@ public:
// ** Internal node access // ** Internal node access
// Create a node by name. If the node already exists, return it // Create a node by name. If the node already exists, return it
bool createNodeByName (const char *name, const CFormDfn **parentDfn, uint &indexDfn, bool createNodeByName (const std::string &, const CFormDfn **parentDfn, uint &indexDfn,
const CFormDfn **nodeDfn, const CType **nodeType, const CFormDfn **nodeDfn, const CType **nodeType,
CFormElm **node, UFormDfn::TEntryType &type, CFormElm **node, UFormDfn::TEntryType &type,
bool &array, bool &created); bool &array, bool &created);
@ -153,13 +153,13 @@ public:
* Delete a node by name. If the node already exists, return it * Delete a node by name. If the node already exists, return it
*Delete its parent if not used *Delete its parent if not used
*/ */
bool deleteNodeByName (const char *name, const CFormDfn **parentDfn, uint &indexDfn, bool deleteNodeByName (const std::string &name, const CFormDfn **parentDfn, uint &indexDfn,
const CFormDfn **nodeDfn, const CType **nodeType, const CFormDfn **nodeDfn, const CType **nodeType,
CFormElm **node, UFormDfn::TEntryType &type, CFormElm **node, UFormDfn::TEntryType &type,
bool &array); bool &array);
// Search for a node by name // Search for a node by name
bool getNodeByName (const char *name, const CFormDfn **parentDfn, uint &indexDfn, bool getNodeByName (const std::string &name, const CFormDfn **parentDfn, uint &indexDfn,
const CFormDfn **nodeDfn, const CType **nodeType, const CFormDfn **nodeDfn, const CType **nodeType,
CFormElm **node, UFormDfn::TEntryType &type, CFormElm **node, UFormDfn::TEntryType &type,
bool &array, bool &parentVDfnArray, bool verbose, uint32 round) const; bool &array, bool &parentVDfnArray, bool verbose, uint32 round) const;
@ -168,7 +168,7 @@ public:
* Insert an array node by name * Insert an array node by name
* The index asked must be < the size of the array. * The index asked must be < the size of the array.
*/ */
bool arrayInsertNodeByName (const char *name, const CFormDfn **parentDfn, uint &indexDfn, bool arrayInsertNodeByName (const std::string &name, const CFormDfn **parentDfn, uint &indexDfn,
const CFormDfn **nodeDfn, const CType **nodeType, const CFormDfn **nodeDfn, const CType **nodeType,
CFormElm **node, UFormDfn::TEntryType &type, CFormElm **node, UFormDfn::TEntryType &type,
bool &array, bool verbose, uint arrayIndex) const; bool &array, bool verbose, uint arrayIndex) const;
@ -177,7 +177,7 @@ public:
* Delete an array node by name * Delete an array node by name
* The index asked must be < the size of the array. * The index asked must be < the size of the array.
*/ */
bool arrayDeleteNodeByName (const char *name, const CFormDfn **parentDfn, uint &indexDfn, bool arrayDeleteNodeByName (const std::string &name, const CFormDfn **parentDfn, uint &indexDfn,
const CFormDfn **nodeDfn, const CType **nodeType, const CFormDfn **nodeDfn, const CType **nodeType,
CFormElm **node, UFormDfn::TEntryType &type, CFormElm **node, UFormDfn::TEntryType &type,
bool &array, bool verbose, uint arrayIndex) const; bool &array, bool verbose, uint arrayIndex) const;
@ -199,7 +199,7 @@ protected:
* Then, else (*parentDfn / indexDfn ) or *node must be defined. * Then, else (*parentDfn / indexDfn ) or *node must be defined.
* Other values are for result only. * Other values are for result only.
*/ */
static bool getInternalNodeByName (CForm *form, const char *name, const CFormDfn **parentDfn, uint &indexDfn, static bool getInternalNodeByName (CForm *form, const std::string &name, const CFormDfn **parentDfn, uint &indexDfn,
const CFormDfn **nodeDfn, const CType **nodeType, const CFormDfn **nodeDfn, const CType **nodeType,
CFormElm **node, UFormDfn::TEntryType &type, CFormElm **node, UFormDfn::TEntryType &type,
bool &array, TNodeAction action, bool &created, bool &parentVDfnArray, bool verbose, uint32 round); bool &array, TNodeAction action, bool &created, bool &parentVDfnArray, bool verbose, uint32 round);
@ -215,7 +215,7 @@ public:
static const char* tokenize (const char *name, std::string &str, uint &errorIndex, uint &code); static const char* tokenize (const char *name, std::string &str, uint &errorIndex, uint &code);
// ** IO functions // ** IO functions
virtual xmlNodePtr write (xmlNodePtr node, const CForm *form, const char *structName = NULL, bool forceWrite = false) const = 0; virtual xmlNodePtr write (xmlNodePtr node, const CForm *form, const std::string &structName = "", bool forceWrite = false) const = 0;
protected: protected:
@ -235,8 +235,8 @@ protected:
uint32 Round; uint32 Round;
// Error handling // Error handling
static void warning (bool exception, const char *formName, const char *formFileName, const char *function, const char *format, ... ); static void warning (bool exception, const std::string &formName, const std::string &formFileName, const std::string &function, const char *format, ... );
virtual void warning (bool exception, const char *function, const char *format, ... ) const; virtual void warning (bool exception, const std::string &function, const char *format, ... ) const;
private: private:
// Tokens // Tokens
@ -298,7 +298,7 @@ public:
// From CFormElm // From CFormElm
bool isUsed (const CForm *form) const; bool isUsed (const CForm *form) const;
xmlNodePtr write (xmlNodePtr node, const CForm *form, const char *structName, bool forceWrite = false) const; xmlNodePtr write (xmlNodePtr node, const CForm *form, const std::string &structName, bool forceWrite = false) const;
void unlink (CFormElm *child); void unlink (CFormElm *child);
void getFormName (std::string &result, const CFormElm *child) const; void getFormName (std::string &result, const CFormElm *child) const;
void getDependencies (std::set<std::string> &dependencies) const; void getDependencies (std::set<std::string> &dependencies) const;
@ -310,7 +310,7 @@ public:
std::vector<CFormElmStructElm> Elements; std::vector<CFormElmStructElm> Elements;
// Error handling // Error handling
virtual void warning (bool exception, const char *function, const char *format, ... ) const; virtual void warning (bool exception, const std::string &function, const char *format, ... ) const;
}; };
/** /**
@ -332,13 +332,13 @@ public:
// From CFormElm // From CFormElm
bool isUsed (const CForm *form) const; bool isUsed (const CForm *form) const;
xmlNodePtr write (xmlNodePtr node, const CForm *form, const char *structName, bool forceWrite = false) const; xmlNodePtr write (xmlNodePtr node, const CForm *form, const std::string &structName, bool forceWrite = false) const;
// Call by CFormLoader // Call by CFormLoader
void read (xmlNodePtr node, CFormLoader &loader, CForm *form); void read (xmlNodePtr node, CFormLoader &loader, CForm *form);
// Error handling // Error handling
virtual void warning (bool exception, const char *function, const char *format, ... ) const; virtual void warning (bool exception, const std::string &function, const char *format, ... ) const;
}; };
/** /**
@ -377,7 +377,7 @@ public:
bool getArrayValue (NLMISC::CRGBA &result, uint arrayIndex, TEval evaluate, TWhereIsValue *where) const; bool getArrayValue (NLMISC::CRGBA &result, uint arrayIndex, TEval evaluate, TWhereIsValue *where) const;
// From CFormElm // From CFormElm
xmlNodePtr write (xmlNodePtr node, const CForm *form, const char *structName, bool forceWrite = false) const; xmlNodePtr write (xmlNodePtr node, const CForm *form, const std::string &structName, bool forceWrite = false) const;
bool setParent (CFormElm *parent); bool setParent (CFormElm *parent);
void unlink (CFormElm *child); void unlink (CFormElm *child);
bool isUsed (const CForm *form) const; bool isUsed (const CForm *form) const;
@ -406,7 +406,7 @@ public:
std::vector<CElement> Elements; std::vector<CElement> Elements;
// Error handling // Error handling
virtual void warning (bool exception, const char *function, const char *format, ... ) const; virtual void warning (bool exception, const std::string &function, const char *format, ... ) const;
}; };
/** /**
@ -429,7 +429,7 @@ public:
const CType *Type; const CType *Type;
// From CFormElm // From CFormElm
xmlNodePtr write (xmlNodePtr node, const CForm *form, const char *structName, bool forceWrite = false) const; xmlNodePtr write (xmlNodePtr node, const CForm *form, const std::string &structName, bool forceWrite = false) const;
bool setParent (CFormElm *parent); bool setParent (CFormElm *parent);
void getFormName (std::string &result, const CFormElm *child) const; void getFormName (std::string &result, const CFormElm *child) const;
void getDependencies (std::set<std::string> &dependencies) const; void getDependencies (std::set<std::string> &dependencies) const;
@ -453,7 +453,7 @@ public:
bool getValue (NLMISC::CRGBA &result, TEval evaluate) const; bool getValue (NLMISC::CRGBA &result, TEval evaluate) const;
// Set the value, the elt been used // Set the value, the elt been used
void setValue (const char *value); void setValue (const std::string &value);
// Get the raw value. Does not care about any parent or default values // Get the raw value. Does not care about any parent or default values
void getValue (std::string &result) const; void getValue (std::string &result) const;
@ -463,14 +463,14 @@ private:
std::string Value; std::string Value;
// Error handling // Error handling
virtual void warning (bool exception, const char *function, const char *format, ... ) const; virtual void warning (bool exception, const std::string &function, const char *format, ... ) const;
}; };
// *************************************************************************** // ***************************************************************************
// CFormElm inlines // CFormElm inlines
// *************************************************************************** // ***************************************************************************
inline bool CFormElm::convertValue (sint8 &result, const char *value) const inline bool CFormElm::convertValue (sint8 &result, const std::string &value) const
{ {
float tmp; float tmp;
if (NLMISC::fromString(value, tmp)) if (NLMISC::fromString(value, tmp))
@ -482,14 +482,14 @@ inline bool CFormElm::convertValue (sint8 &result, const char *value) const
else else
{ {
// Error message // Error message
warning (false, "convertValue", "Can't convert the string \"%s\" in sint8.", value); warning (false, "convertValue", "Can't convert the string \"%s\" in sint8.", value.c_str());
} }
return false; return false;
} }
// *************************************************************************** // ***************************************************************************
inline bool CFormElm::convertValue (uint8 &result, const char *value) const inline bool CFormElm::convertValue (uint8 &result, const std::string &value) const
{ {
float tmp; float tmp;
if (NLMISC::fromString(value, tmp)) if (NLMISC::fromString(value, tmp))
@ -501,14 +501,14 @@ inline bool CFormElm::convertValue (uint8 &result, const char *value) const
else else
{ {
// Error message // Error message
warning (false, "convertValue", "Can't convert the string \"%s\" in uint8.", value); warning (false, "convertValue", "Can't convert the string \"%s\" in uint8.", value.c_str());
} }
return false; return false;
} }
// *************************************************************************** // ***************************************************************************
inline bool CFormElm::convertValue (sint16 &result, const char *value) const inline bool CFormElm::convertValue (sint16 &result, const std::string &value) const
{ {
float tmp; float tmp;
if (NLMISC::fromString(value, tmp)) if (NLMISC::fromString(value, tmp))
@ -520,14 +520,14 @@ inline bool CFormElm::convertValue (sint16 &result, const char *value) const
else else
{ {
// Error message // Error message
warning (false, "convertValue", "Can't convert the string \"%s\" in sint16.", value); warning (false, "convertValue", "Can't convert the string \"%s\" in sint16.", value.c_str());
} }
return false; return false;
} }
// *************************************************************************** // ***************************************************************************
inline bool CFormElm::convertValue (uint16 &result, const char *value) const inline bool CFormElm::convertValue (uint16 &result, const std::string &value) const
{ {
float tmp; float tmp;
if (NLMISC::fromString(value, tmp)) if (NLMISC::fromString(value, tmp))
@ -539,14 +539,14 @@ inline bool CFormElm::convertValue (uint16 &result, const char *value) const
else else
{ {
// Error message // Error message
warning (false, "convertValue", "Can't convert the string \"%s\" in uint16.", value); warning (false, "convertValue", "Can't convert the string \"%s\" in uint16.", value.c_str());
} }
return false; return false;
} }
// *************************************************************************** // ***************************************************************************
inline bool CFormElm::convertValue (sint32 &result, const char *value) const inline bool CFormElm::convertValue (sint32 &result, const std::string &value) const
{ {
float tmp; float tmp;
if (NLMISC::fromString(value, tmp)) if (NLMISC::fromString(value, tmp))
@ -558,14 +558,14 @@ inline bool CFormElm::convertValue (sint32 &result, const char *value) const
else else
{ {
// Error message // Error message
warning (false, "convertValue", "Can't convert the string \"%s\" in sint32.", value); warning (false, "convertValue", "Can't convert the string \"%s\" in sint32.", value.c_str());
} }
return false; return false;
} }
// *************************************************************************** // ***************************************************************************
inline bool CFormElm::convertValue (uint32 &result, const char *value) const inline bool CFormElm::convertValue (uint32 &result, const std::string &value) const
{ {
float tmp; float tmp;
if (NLMISC::fromString(value, tmp)) if (NLMISC::fromString(value, tmp))
@ -577,14 +577,14 @@ inline bool CFormElm::convertValue (uint32 &result, const char *value) const
else else
{ {
// Error message // Error message
warning (false, "convertValue", "Can't convert the string \"%s\" in uint32.", value); warning (false, "convertValue", "Can't convert the string \"%s\" in uint32.", value.c_str());
} }
return false; return false;
} }
// *************************************************************************** // ***************************************************************************
inline bool CFormElm::convertValue (float &result, const char *value) const inline bool CFormElm::convertValue (float &result, const std::string &value) const
{ {
if (NLMISC::fromString(value, result)) if (NLMISC::fromString(value, result))
{ {
@ -593,16 +593,16 @@ inline bool CFormElm::convertValue (float &result, const char *value) const
else else
{ {
// Error message // Error message
warning (false, "convertValue", "Can't convert the string \"%s\" in float.", value); warning (false, "convertValue", "Can't convert the string \"%s\" in float.", value.c_str());
} }
return false; return false;
} }
// *************************************************************************** // ***************************************************************************
inline bool CFormElm::convertValue (double &result, const char *value) const inline bool CFormElm::convertValue (double &result, const std::string &value) const
{ {
float tmp; double tmp;
if (NLMISC::fromString(value, tmp)) if (NLMISC::fromString(value, tmp))
{ {
result = tmp; result = tmp;
@ -611,14 +611,14 @@ inline bool CFormElm::convertValue (double &result, const char *value) const
else else
{ {
// Error message // Error message
warning (false, "convertValue", "Can't convert the string \"%s\" in double.", value); warning (false, "convertValue", "Can't convert the string \"%s\" in double.", value.c_str());
} }
return false; return false;
} }
// *************************************************************************** // ***************************************************************************
inline bool CFormElm::convertValue (bool &result, const char *value) const inline bool CFormElm::convertValue (bool &result, const std::string &value) const
{ {
int tmp; int tmp;
if (NLMISC::fromString(value, tmp)) if (NLMISC::fromString(value, tmp))
@ -628,7 +628,7 @@ inline bool CFormElm::convertValue (bool &result, const char *value) const
} }
else else
{ {
std::string temp = NLMISC::toLower(std::string(value)); std::string temp = NLMISC::toLower(value);
if (strcmp (temp.c_str (), "true") == 0) if (strcmp (temp.c_str (), "true") == 0)
{ {
result = true; result = true;
@ -642,17 +642,17 @@ inline bool CFormElm::convertValue (bool &result, const char *value) const
} }
// Error message // Error message
warning (false, "convertValue", "Can't convert the string \"%s\" in boolean.", value); warning (false, "convertValue", "Can't convert the string \"%s\" in boolean.", value.c_str());
return false; return false;
} }
// *************************************************************************** // ***************************************************************************
inline bool CFormElm::convertValue (NLMISC::CRGBA &result, const char *value) const inline bool CFormElm::convertValue (NLMISC::CRGBA &result, const std::string &value) const
{ {
float r, g, b; float r, g, b;
if (sscanf (value, "%f,%f,%f", &r, &g, &b) == 3) if (sscanf (value.c_str(), "%f,%f,%f", &r, &g, &b) == 3)
{ {
NLMISC::clamp (r, 0.f, 255.f); NLMISC::clamp (r, 0.f, 255.f);
NLMISC::clamp (g, 0.f, 255.f); NLMISC::clamp (g, 0.f, 255.f);
@ -664,7 +664,7 @@ inline bool CFormElm::convertValue (NLMISC::CRGBA &result, const char *value) co
} }
// Error message // Error message
warning (false, "convertValue", "Can't convert the string \"%s\" in RGB color.", value); warning (false, "convertValue", "Can't convert the string \"%s\" in RGB color.", value.c_str());
return false; return false;
} }

View file

@ -42,18 +42,18 @@ class CFormLoader : public UFormLoader
public: public:
virtual ~CFormLoader(); virtual ~CFormLoader();
// From UFormLoader // From UFormLoader
UForm *loadForm (const char *filename); UForm *loadForm (const std::string &filename);
UFormDfn *loadFormDfn (const char *filename); UFormDfn *loadFormDfn (const std::string &filename);
UType *loadFormType (const char *filename); UType *loadFormType (const std::string &filename);
// Load type and formDfn // Load type and formDfn
CType *loadType (const char *filename); CType *loadType (const std::string &filename);
CFormDfn *loadFormDfn (const char *filename, bool forceLoad); CFormDfn *loadFormDfn (const std::string &filename, bool forceLoad);
private: private:
// Error handling // Error handling
virtual void warning (bool exception, const char *function, const char *format, ... ) const; virtual void warning (bool exception, const std::string &function, const char *format, ... ) const;
typedef std::map<std::string, NLMISC::CRefPtr<CType> > TTypeMap; typedef std::map<std::string, NLMISC::CRefPtr<CType> > TTypeMap;
typedef std::map<std::string, NLMISC::CRefPtr<CFormDfn> > TFormDfnMap; typedef std::map<std::string, NLMISC::CRefPtr<CFormDfn> > TFormDfnMap;

View file

@ -44,10 +44,10 @@ public:
}; };
/// Add a log /// Add a log
void addLog (const char *log); void addLog(const std::string &log);
/// Set the comment /// Set the comment
void setComments (const char *comments); void setComments (const std::string &comments);
/// Major version number /// Major version number
uint32 MajorVersion; uint32 MajorVersion;
@ -72,7 +72,7 @@ public:
static const char *getStateString (TState state); static const char *getStateString (TState state);
// Error handling // Error handling
void warning (bool exception, const char *function, const char *format, ... ) const; void warning (bool exception, const std::string &function, const char *format, ... ) const;
}; };
} // NLGEORGES } // NLGEORGES

View file

@ -385,7 +385,7 @@ void loadForm (const std::vector<std::string> &sheetFilters, const std::string &
} }
} }
if(NeededToRecompute.size() > 0) if(!NeededToRecompute.empty())
nlinfo ("%d seconds to recompute %d sheets", (uint32)(NLMISC::CTime::getLocalTime()-start)/1000, NeededToRecompute.size()); nlinfo ("%d seconds to recompute %d sheets", (uint32)(NLMISC::CTime::getLocalTime()-start)/1000, NeededToRecompute.size());
// free the georges loader if necessary // free the georges loader if necessary
@ -748,7 +748,7 @@ void loadForm2(const std::vector<std::string> &sheetFilters, const std::string &
} }
} }
if(NeededToRecompute.size() > 0) if(!NeededToRecompute.empty())
nlinfo ("%d seconds to recompute %d sheets", (uint32)(NLMISC::CTime::getLocalTime()-start)/1000, NeededToRecompute.size()); nlinfo ("%d seconds to recompute %d sheets", (uint32)(NLMISC::CTime::getLocalTime()-start)/1000, NeededToRecompute.size());
// free the georges loader if necessary // free the georges loader if necessary
@ -1304,7 +1304,7 @@ void loadFormNoPackedSheet (const std::vector<std::string> &sheetFilters, std::m
} }
} }
if(NeededToRecompute.size() > 0) if(!NeededToRecompute.empty())
nlinfo ("%d seconds to recompute %d sheets", (uint32)(NLMISC::CTime::getLocalTime()-start)/1000, NeededToRecompute.size()); nlinfo ("%d seconds to recompute %d sheets", (uint32)(NLMISC::CTime::getLocalTime()-start)/1000, NeededToRecompute.size());
// free the georges loader if necessary // free the georges loader if necessary
@ -1393,7 +1393,7 @@ void loadFormNoPackedSheet2 (const std::vector<std::string> &sheetFilters, std::
} }
} }
if(NeededToRecompute.size() > 0) if(!NeededToRecompute.empty())
nlinfo ("%d seconds to recompute %d sheets", (uint32)(NLMISC::CTime::getLocalTime()-start)/1000, NeededToRecompute.size()); nlinfo ("%d seconds to recompute %d sheets", (uint32)(NLMISC::CTime::getLocalTime()-start)/1000, NeededToRecompute.size());
// free the georges loader if necessary // free the georges loader if necessary

View file

@ -80,7 +80,7 @@ public:
// Evaluate a node // Evaluate a node
bool getValue (std::string &result, const class CForm *form, const class CFormElmAtom *node, const class CFormDfn &parentDfn, bool getValue (std::string &result, const class CForm *form, const class CFormElmAtom *node, const class CFormDfn &parentDfn,
uint parentIndex, UFormElm::TEval evaluate, uint32 *where, uint32 round, const char *formName) const; uint parentIndex, UFormElm::TEval evaluate, uint32 *where, uint32 round, const std::string &formName) const;
// Definitions // Definitions
class CDefinition class CDefinition
@ -114,8 +114,8 @@ public:
private: private:
// Error handling // Error handling
virtual void warning (bool exception, const char *formName, const char *formFilename, const char *function, const char *format, ... ) const; virtual void warning (bool exception, const std::string &formName, const std::string &formFilename, const std::string &function, const char *format, ... ) const;
virtual void warning2 (bool exception, const char *function, const char *format, ... ) const; virtual void warning2 (bool exception, const std::string &function, const char *format, ... ) const;
// Type names // Type names
static const char *TypeNames[]; static const char *TypeNames[];

View file

@ -78,8 +78,8 @@ public:
* "position.x" : get the element named x in the struct named position * "position.x" : get the element named x in the struct named position
* "entities[2].color" : get the node named color in the second element of the entities array * "entities[2].color" : get the node named color in the second element of the entities array
*/ */
virtual bool getNodeByName (const UFormElm **result, const char *name, TWhereIsNode *where = NULL, bool reserved=true, uint32 round=0) const = 0; virtual bool getNodeByName (const UFormElm **result, const std::string &name, TWhereIsNode *where = NULL, bool reserved=true, uint32 round=0) const = 0;
virtual bool getNodeByName (UFormElm **result, const char *name, TWhereIsNode *where = NULL, bool reserved=true, uint32 round=0) = 0; virtual bool getNodeByName (UFormElm **result, const std::string &name, TWhereIsNode *where = NULL, bool reserved=true, uint32 round=0) = 0;
/// Where a value has been found /// Where a value has been found
@ -104,19 +104,19 @@ public:
* \return true if the result has been filled, false if the value has not been found or the cast has failed or the evaluation has failed. * \return true if the result has been filled, false if the value has not been found or the cast has failed or the evaluation has failed.
* \see getNodeByName () * \see getNodeByName ()
*/ */
virtual bool getValueByName (std::string &result, const char *namename, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0; virtual bool getValueByName (std::string &result, const std::string &name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0;
virtual bool getValueByName (sint8 &result, const char *name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0; virtual bool getValueByName (sint8 &result, const std::string &name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0;
virtual bool getValueByName (uint8 &result, const char *name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0; virtual bool getValueByName (uint8 &result, const std::string &name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0;
virtual bool getValueByName (sint16 &result, const char *name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0; virtual bool getValueByName (sint16 &result, const std::string &name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0;
virtual bool getValueByName (uint16 &result, const char *name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0; virtual bool getValueByName (uint16 &result, const std::string &name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0;
virtual bool getValueByName (sint32 &result, const char *name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0; virtual bool getValueByName (sint32 &result, const std::string &name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0;
virtual bool getValueByName (uint32 &result, const char *name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0; virtual bool getValueByName (uint32 &result, const std::string &name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0;
virtual bool getValueByName (float &result, const char *name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0; virtual bool getValueByName (float &result, const std::string &name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0;
virtual bool getValueByName (double &result, const char *name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0; virtual bool getValueByName (double &result, const std::string &name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0;
virtual bool getValueByName (bool &result, const char *name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0; virtual bool getValueByName (bool &result, const std::string &name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0;
/// Warning, only R, G and B members are filled, not A. /// Warning, only R, G and B members are filled, not A.
virtual bool getValueByName (NLMISC::CRGBA &result, const char *name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0; virtual bool getValueByName (NLMISC::CRGBA &result, const std::string &name, TEval evaluate = Eval, TWhereIsValue *where = NULL, uint32 round=0) const = 0;
/** /**
* Set a form value with its name. If the node doesn't exist, it is created. * Set a form value with its name. If the node doesn't exist, it is created.
@ -129,17 +129,17 @@ public:
* true if the value has been created, false it the value has been filled. * true if the value has been created, false it the value has been filled.
* \return true if the value has been set, false if the value has not been found or hasn't been created. * \return true if the value has been set, false if the value has not been found or hasn't been created.
*/ */
virtual bool setValueByName (const char *value, const char *name, bool *created = NULL) = 0; virtual bool setValueByName (const std::string &value, const std::string &name, bool *created = NULL) = 0;
virtual bool setValueByName (sint8 value, const char *name, bool *created = NULL) = 0; virtual bool setValueByName (sint8 value, const std::string &name, bool *created = NULL) = 0;
virtual bool setValueByName (uint8 value, const char *name, bool *created = NULL) = 0; virtual bool setValueByName (uint8 value, const std::string &name, bool *created = NULL) = 0;
virtual bool setValueByName (sint16 value, const char *name, bool *created = NULL) = 0; virtual bool setValueByName (sint16 value, const std::string &name, bool *created = NULL) = 0;
virtual bool setValueByName (uint16 value, const char *name, bool *created = NULL) = 0; virtual bool setValueByName (uint16 value, const std::string &name, bool *created = NULL) = 0;
virtual bool setValueByName (sint32 value, const char *name, bool *created = NULL) = 0; virtual bool setValueByName (sint32 value, const std::string &name, bool *created = NULL) = 0;
virtual bool setValueByName (uint32 value, const char *name, bool *created = NULL) = 0; virtual bool setValueByName (uint32 value, const std::string &name, bool *created = NULL) = 0;
virtual bool setValueByName (float value, const char *name, bool *created = NULL) = 0; virtual bool setValueByName (float value, const std::string &name, bool *created = NULL) = 0;
virtual bool setValueByName (double value, const char *name, bool *created = NULL) = 0; virtual bool setValueByName (double value, const std::string &name, bool *created = NULL) = 0;
virtual bool setValueByName (bool value, const char *name, bool *created = NULL) = 0; virtual bool setValueByName (bool value, const std::string &name, bool *created = NULL) = 0;
virtual bool setValueByName (NLMISC::CRGBA value, const char *name, bool *created = NULL) = 0; virtual bool setValueByName (NLMISC::CRGBA value, const std::string &name, bool *created = NULL) = 0;
// ** Array element methods // ** Array element methods
@ -224,6 +224,9 @@ public:
// ** Atom element methods // ** Atom element methods
/// Returns the type of the atom. NULL otherwise.
virtual const class UType *getType () = 0;
/// Returns the type of the atom. NULL otherwise. /// Returns the type of the atom. NULL otherwise.
virtual const class UType *getType () = 0; virtual const class UType *getType () = 0;

View file

@ -43,19 +43,19 @@ public:
* *
* The pointer on the form must be held in a CSmartPtr<UForm>. Returns NULL if the form can't be loaded. * The pointer on the form must be held in a CSmartPtr<UForm>. Returns NULL if the form can't be loaded.
*/ */
virtual UForm *loadForm (const char *filename) = 0; virtual UForm *loadForm (const std::string &filename) = 0;
/** Load a DFN, use NMISC::CPath to find the file. /** Load a DFN, use NMISC::CPath to find the file.
* *
* The pointer on the form must be held in a CSmartPtr<UFormDfn>. Returns NULL if the DFN can't be loaded. * The pointer on the form must be held in a CSmartPtr<UFormDfn>. Returns NULL if the DFN can't be loaded.
*/ */
virtual UFormDfn *loadFormDfn (const char *filename) = 0; virtual UFormDfn *loadFormDfn (const std::string &filename) = 0;
/** Load a type, use NMISC::CPath to find the file. /** Load a type, use NMISC::CPath to find the file.
* *
* The pointer on the form must be held in a CSmartPtr<UType>. Returns NULL if the type can't be loaded. * The pointer on the form must be held in a CSmartPtr<UType>. Returns NULL if the type can't be loaded.
*/ */
virtual UType *loadFormType (const char *filename) = 0; virtual UType *loadFormType (const std::string &filename) = 0;
/// Create a form loader /// Create a form loader
static UFormLoader *createLoader (); static UFormLoader *createLoader ();

View file

@ -321,7 +321,7 @@ namespace NLGUI
// \name internal methods // \name internal methods
// Add a group in the current parent group // Add a group in the current parent group
void addGroup (CInterfaceGroup *group, uint beginSpace); void addHtmlGroup (CInterfaceGroup *group, uint beginSpace);
// Get the current parent group // Get the current parent group
CInterfaceGroup *getCurrentGroup(); CInterfaceGroup *getCurrentGroup();

View file

@ -191,6 +191,7 @@ namespace NLGUI
int luaGetLineFromId(CLuaState &ls); int luaGetLineFromId(CLuaState &ls);
int luaIsSeparator(CLuaState &ls); int luaIsSeparator(CLuaState &ls);
int luaAddLine(CLuaState &ls); int luaAddLine(CLuaState &ls);
int luaAddIconLine(CLuaState &ls);
int luaAddLineAtIndex(CLuaState &ls); int luaAddLineAtIndex(CLuaState &ls);
int luaAddSeparator(CLuaState &ls); int luaAddSeparator(CLuaState &ls);
int luaAddSeparatorAtIndex(CLuaState &ls); int luaAddSeparatorAtIndex(CLuaState &ls);
@ -210,6 +211,7 @@ namespace NLGUI
REFLECT_LUA_METHOD("addSubMenu", luaAddSubMenu); REFLECT_LUA_METHOD("addSubMenu", luaAddSubMenu);
REFLECT_LUA_METHOD("isSeparator", luaIsSeparator); REFLECT_LUA_METHOD("isSeparator", luaIsSeparator);
REFLECT_LUA_METHOD("addLine", luaAddLine); // name, ah, ah_params, id REFLECT_LUA_METHOD("addLine", luaAddLine); // name, ah, ah_params, id
REFLECT_LUA_METHOD("addIconLine", luaAddIconLine); // name, ah, ah_params, id, texture
REFLECT_LUA_METHOD("addLineAtIndex", luaAddLineAtIndex); // index, name, ah, ah_params, id REFLECT_LUA_METHOD("addLineAtIndex", luaAddLineAtIndex); // index, name, ah, ah_params, id
REFLECT_LUA_METHOD("addSeparator", luaAddSeparator); REFLECT_LUA_METHOD("addSeparator", luaAddSeparator);
REFLECT_LUA_METHOD("addSeparatorAtIndex", luaAddSeparatorAtIndex); REFLECT_LUA_METHOD("addSeparatorAtIndex", luaAddSeparatorAtIndex);
@ -278,6 +280,7 @@ namespace NLGUI
*/ */
CGroupSubMenu *cloneMenu(CGroupSubMenu *appendToMenu, CGroupMenu *newFather, CInterfaceGroup *initGroup = NULL) const; CGroupSubMenu *cloneMenu(CGroupSubMenu *appendToMenu, CGroupMenu *newFather, CInterfaceGroup *initGroup = NULL) const;
void initOptions(CInterfaceGroup *parent); void initOptions(CInterfaceGroup *parent);
CViewBitmap *createIcon(CInterfaceElement *parentPos, const std::string &texture);
CViewBitmap *createCheckBox(bool checked); CViewBitmap *createCheckBox(bool checked);
CViewBitmap *createRightArrow(CInterfaceElement *parentPos, bool center); CViewBitmap *createRightArrow(CInterfaceElement *parentPos, bool center);
}; };

View file

@ -206,12 +206,6 @@ namespace NLGUI
invalidateContent(); invalidateContent();
} }
// Set the HTML group used for links
void setBrowseGroup (CInterfaceElement *group)
{
_BrowseGroup = group;
}
/// \from CInterfaceElement /// \from CInterfaceElement
void onInvalidateContent(); void onInvalidateContent();
sint32 getMaxUsedW() const; sint32 getMaxUsedW() const;
@ -293,9 +287,6 @@ namespace NLGUI
// The links // The links
std::vector<CLink> _Links; std::vector<CLink> _Links;
// The HTML group used
CInterfaceElement *_BrowseGroup;
private: private:
std::string _HardText; std::string _HardText;
uint32 _TextId; uint32 _TextId;

View file

@ -64,7 +64,7 @@ namespace NLGUI
xmlNodePtr serialize( xmlNodePtr parentNode, const char *type ) const; xmlNodePtr serialize( xmlNodePtr parentNode, const char *type ) const;
// to be called by CGroupTable // to be called by CGroupTable
bool parse (xmlNodePtr cur, CInterfaceGroup * parentGroup, uint columnIndex, uint rowIndex); bool parseCell (xmlNodePtr cur, CInterfaceGroup * parentGroup, uint columnIndex, uint rowIndex);
// If the cell is a new line. This is the first <td> after a <tr> // If the cell is a new line. This is the first <td> after a <tr>
bool NewLine; bool NewLine;

View file

@ -208,7 +208,7 @@ namespace NLGUI
CInterfaceGroup *createGroupInstance(const std::string &templateName, const std::string &parentID, const std::pair<std::string, std::string> *templateParams, uint numParams, bool updateLinks = true); CInterfaceGroup *createGroupInstance(const std::string &templateName, const std::string &parentID, const std::pair<std::string, std::string> *templateParams, uint numParams, bool updateLinks = true);
CInterfaceGroup *createGroupInstance(const std::string &templateName, const std::string &parentID, std::vector<std::pair<std::string, std::string> > &templateParams, bool updateLinks = true) CInterfaceGroup *createGroupInstance(const std::string &templateName, const std::string &parentID, std::vector<std::pair<std::string, std::string> > &templateParams, bool updateLinks = true)
{ {
if (templateParams.size() > 0) if (!templateParams.empty())
return createGroupInstance(templateName, parentID, &templateParams[0], (uint)templateParams.size(), updateLinks); return createGroupInstance(templateName, parentID, &templateParams[0], (uint)templateParams.size(), updateLinks);
else else
return createGroupInstance(templateName, parentID, NULL, 0, updateLinks); return createGroupInstance(templateName, parentID, NULL, 0, updateLinks);
@ -222,7 +222,7 @@ namespace NLGUI
CInterfaceElement *createUIElement(const std::string &templateName, const std::string &parentID, const std::pair<std::string,std::string> *templateParams, uint numParams, bool updateLinks /* = true */); CInterfaceElement *createUIElement(const std::string &templateName, const std::string &parentID, const std::pair<std::string,std::string> *templateParams, uint numParams, bool updateLinks /* = true */);
CInterfaceElement *createUIElement(const std::string &templateName, const std::string &parentID, std::vector<std::pair<std::string, std::string> > &templateParams, bool updateLinks = true) CInterfaceElement *createUIElement(const std::string &templateName, const std::string &parentID, std::vector<std::pair<std::string, std::string> > &templateParams, bool updateLinks = true)
{ {
if (templateParams.size() > 0) if (!templateParams.empty())
return createUIElement(templateName, parentID, &templateParams[0], (uint)templateParams.size(), updateLinks); return createUIElement(templateName, parentID, &templateParams[0], (uint)templateParams.size(), updateLinks);
else else
return createUIElement(templateName, parentID, NULL, 0, updateLinks); return createUIElement(templateName, parentID, NULL, 0, updateLinks);

View file

@ -72,8 +72,8 @@ namespace NLGUI
bool link( NLMISC::CCDBNodeBranch *dbNode, const std::string &leafId, NLMISC::CCDBNodeLeaf *defaultLeaf = NULL ); bool link( NLMISC::CCDBNodeBranch *dbNode, const std::string &leafId, NLMISC::CCDBNodeLeaf *defaultLeaf = NULL );
/// float operations /// float operations
void setDouble (double value) {setSInt64((sint64&) value);} void setDouble(double value);
double getDouble () const {sint64 i = getSInt64(); return (double &) i; } double getDouble() const;
void readDouble (const char* value, const std::string& id); void readDouble (const char* value, const std::string& id);
/// sint32 operations /// sint32 operations

View file

@ -90,7 +90,7 @@ namespace NLGUI
virtual std::string luaWhat() const throw() {return NLMISC::toString("LUAError: %s", what());} virtual std::string luaWhat() const throw() {return NLMISC::toString("LUAError: %s", what());}
}; };
// A parse error occured // A parse error occurred
class ELuaParseError : public ELuaError class ELuaParseError : public ELuaError
{ {
public: public:
@ -117,7 +117,7 @@ namespace NLGUI
std::string _Reason; std::string _Reason;
}; };
// A execution error occured // A execution error occurred
class ELuaExecuteError : public ELuaError class ELuaExecuteError : public ELuaError
{ {
public: public:
@ -128,7 +128,7 @@ namespace NLGUI
virtual std::string luaWhat() const throw() {return NLMISC::toString("ELuaExecuteError: %s", what());} virtual std::string luaWhat() const throw() {return NLMISC::toString("ELuaExecuteError: %s", what());}
}; };
// A bad cast occured when using lua_checkcast // A bad cast occurred when using lua_checkcast
class ELuaBadCast : public ELuaError class ELuaBadCast : public ELuaError
{ {
public: public:

View file

@ -50,10 +50,21 @@ namespace NLGUI
void setHTMLView( CGroupHTML *html); void setHTMLView( CGroupHTML *html);
bool getMouseOverShape(std::string &texName, uint8 &rot, NLMISC::CRGBA &col); bool getMouseOverShape(std::string &texName, uint8 &rot, NLMISC::CRGBA &col);
void setActionOnLeftClick(const std::string &actionHandler) { _AHOnLeftClick = actionHandler; };
void setParamsOnLeftClick(const std::string &actionParams) { _AHOnLeftClickParams = actionParams; };
const std::string &getActionOnLeftClick() const { return _AHOnLeftClick; }
const std::string &getParamsOnLeftClick() const { return _AHOnLeftClickParams; }
protected: protected:
// The main HTML group // The main HTML group
CGroupHTML *HTML; CGroupHTML *HTML;
// Left mouse click action
// Don't use CStringShared as URLs change past values would be permanently remembered.
std::string _AHOnLeftClick;
std::string _AHOnLeftClickParams;
}; };
} }

View file

@ -38,14 +38,17 @@ namespace NLGUI
void resetPointerPos (); void resetPointerPos ();
void setPointerDown (bool pd); void setPointerDown (bool pd);
void setPointerMiddleDown (bool pd);
void setPointerRightDown (bool pd);
void setPointerDownString (const std::string &s); void setPointerDownString (const std::string &s);
void getPointerPos (sint32 &x, sint32 &y); void getPointerPos (sint32 &x, sint32 &y);
void getPointerDispPos (sint32 &x, sint32 &y); void getPointerDispPos (sint32 &x, sint32 &y);
void getPointerOldPos (sint32 &x, sint32 &y); void getPointerOldPos (sint32 &x, sint32 &y);
void getPointerDownPos (sint32 &x, sint32 &y); bool getPointerDown (sint32 &x, sint32 &y);
bool getPointerDown (); bool getPointerMiddleDown (sint32 &x, sint32 &y);
bool getPointerRightDown (sint32 &x, sint32 &y);
std::string getPointerDownString (); std::string getPointerDownString ();
bool getPointerDrag (); bool getPointerDrag ();
@ -70,6 +73,12 @@ namespace NLGUI
bool _PointerDown; // Is the pointer down ? bool _PointerDown; // Is the pointer down ?
sint32 _PointerDownX; // Pointer down position sint32 _PointerDownX; // Pointer down position
sint32 _PointerDownY; sint32 _PointerDownY;
bool _PointerMiddleDown; // Is the middle pointer down ?
sint32 _PointerMiddleDownX; // Pointer middle down position
sint32 _PointerMiddleDownY;
bool _PointerRightDown; // Is the right pointer down ?
sint32 _PointerRightDownX; // Pointer right down position
sint32 _PointerRightDownY;
std::string _PointerDownString; // What is under the pointer at the down position std::string _PointerDownString; // What is under the pointer at the down position
bool _PointerDrag; // Is the pointer down and we have moved ? bool _PointerDrag; // Is the pointer down and we have moved ?
bool _PointerVisible; // Is the pointer visible or hidden ? bool _PointerVisible; // Is the pointer visible or hidden ?

View file

@ -502,7 +502,7 @@ namespace NLGUI
const CEventDescriptorKey& getLastKeyEvent() const{ return lastKeyEvent; } const CEventDescriptorKey& getLastKeyEvent() const{ return lastKeyEvent; }
IParser* getParser() const{ return parser; } IParser* getParser() const{ return _Parser; }
/// Retrieves the Id of the currently selected widgets /// Retrieves the Id of the currently selected widgets
void getEditorSelection( std::vector< std::string > &selection ); void getEditorSelection( std::vector< std::string > &selection );
@ -536,7 +536,7 @@ namespace NLGUI
CWidgetManager(); CWidgetManager();
~CWidgetManager(); ~CWidgetManager();
IParser *parser; IParser *_Parser;
static CWidgetManager *instance; static CWidgetManager *instance;
std::vector< SMasterGroup > _MasterGroups; std::vector< SMasterGroup > _MasterGroups;

View file

@ -49,13 +49,13 @@ public:
* This file will try to open the file ligo class description file (XML) using the LigoClass as file name. * This file will try to open the file ligo class description file (XML) using the LigoClass as file name.
* It will try first to load directly the file and then to lookup the file in NLMISC::CPath. * It will try first to load directly the file and then to lookup the file in NLMISC::CPath.
*/ */
bool readConfigFile (const char *fileName, bool parsePrimitiveComboContent); bool readConfigFile (const std::string &fileName, bool parsePrimitiveComboContent);
/** /**
* This file will read the file ligo class description file (XML) using the LigoClass as file name. * This file will read the file ligo class description file (XML) using the LigoClass as file name.
* It will try first to load directly the file and then to lookup the file in NLMISC::CPath. * It will try first to load directly the file and then to lookup the file in NLMISC::CPath.
*/ */
bool readPrimitiveClass (const char *fileName, bool parsePrimitiveComboContent); bool readPrimitiveClass (const std::string &fileName, bool parsePrimitiveComboContent);
bool reloadIndexFile(const std::string &indexFileName = std::string()); bool reloadIndexFile(const std::string &indexFileName = std::string());
@ -100,14 +100,14 @@ public:
/// Build a standard human readable alias string /// Build a standard human readable alias string
std::string aliasToString(uint32 fullAlias); std::string aliasToString(uint32 fullAlias);
/// Read a standard human readable alias string /// Read a standard human readable alias string
uint32 aliasFromString(std::string fullAlias); uint32 aliasFromString(const std::string &fullAlias);
// Get a primitive class // Get a primitive class
const CPrimitiveClass *getPrimitiveClass (const NLLIGO::IPrimitive &primitive) const; const CPrimitiveClass *getPrimitiveClass (const NLLIGO::IPrimitive &primitive) const;
// Get a primitive class // Get a primitive class
const CPrimitiveClass *getPrimitiveClass (const char *className) const; const CPrimitiveClass *getPrimitiveClass (const std::string &className) const;
// Get the primitive color // Get the primitive color
NLMISC::CRGBA getPrimitiveColor (const NLLIGO::IPrimitive &primitive); NLMISC::CRGBA getPrimitiveColor (const NLLIGO::IPrimitive &primitive);
@ -134,10 +134,10 @@ public:
bool canBeRoot (const NLLIGO::IPrimitive &primitive); bool canBeRoot (const NLLIGO::IPrimitive &primitive);
// Read a property from an XML file // Read a property from an XML file
bool getPropertyString (std::string &result, const char *filename, xmlNodePtr xmlNode, const char *propName); bool getPropertyString (std::string &result, const std::string &filename, xmlNodePtr xmlNode, const std::string &propName);
// Output error message // Output error message
void syntaxError (const char *filename, xmlNodePtr xmlNode, const char *format, ...); void syntaxError (const std::string &filename, xmlNodePtr xmlNode, const char *format, ...);
virtual void errorMessage (const char *format, ... ); virtual void errorMessage (const char *format, ... );
// Access to the config string // Access to the config string
@ -157,7 +157,7 @@ public:
private: private:
// Init primitive class manager // Init primitive class manager
bool initPrimitiveClass (const char *filename); bool initPrimitiveClass (const std::string &ilename);
// The primitive class manager // The primitive class manager
std::map<std::string, CPrimitiveClass> _PrimitiveClasses; std::map<std::string, CPrimitiveClass> _PrimitiveClasses;

View file

@ -18,7 +18,7 @@
#define NL_MATERIAL_LIGO_H #define NL_MATERIAL_LIGO_H
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
#include "zone_template.h" #include "nel/ligo/zone_template.h"
// NeL include // NeL include
//#include "3d/zone.h" //#include "3d/zone.h"

View file

@ -83,9 +83,8 @@ class CPropertyString : public IProperty
{ {
public: public:
CPropertyString () {} CPropertyString () {}
CPropertyString (const char *str);
CPropertyString (const std::string &str); CPropertyString (const std::string &str);
CPropertyString (const char *str, bool _default); CPropertyString (const std::string &str, bool _default);
virtual ~CPropertyString () {} virtual ~CPropertyString () {}
std::string String; std::string String;
@ -287,42 +286,42 @@ public:
* If the property already exist, the method does nothing and returns false. * If the property already exist, the method does nothing and returns false.
* The pointer will be deleted by the primitive using the ::delete operator. * The pointer will be deleted by the primitive using the ::delete operator.
**/ **/
bool addPropertyByName (const char *property_name, IProperty *result); bool addPropertyByName (const std::string &property_name, IProperty *result);
/** /**
* Get a property with its name * Get a property with its name
**/ **/
bool getPropertyByName (const char *property_name, const IProperty *&result) const; bool getPropertyByName (const std::string &property_name, const IProperty *&result) const;
/** /**
* Get a property with its name * Get a property with its name
**/ **/
bool getPropertyByName (const char *property_name, IProperty *&result) const; bool getPropertyByName (const std::string &property_name, IProperty *&result) const;
/** /**
* Get a string property with its name. Return false if the property is not found or is not a string property. * Get a string property with its name. Return false if the property is not found or is not a string property.
**/ **/
bool getPropertyByName (const char *property_name, std::string *&result) const; bool getPropertyByName (const std::string &property_name, std::string *&result) const;
/** /**
* Get a string array property with its name. Return false if the property is not found or is not a string array property. * Get a string array property with its name. Return false if the property is not found or is not a string array property.
**/ **/
bool getPropertyByName (const char *property_name, std::vector<std::string> *&result) const; bool getPropertyByName (const std::string &property_name, std::vector<std::string> *&result) const;
/** /**
* Get a string property with its name. Return false if the property is not found or is not a string property. * Get a string property with its name. Return false if the property is not found or is not a string property.
**/ **/
bool getPropertyByName (const char *property_name, std::string &result) const; bool getPropertyByName (const std::string &property_name, std::string &result) const;
/** /**
* Get a string array property with its name. Return false if the property is not found or is not a string array property. * Get a string array property with its name. Return false if the property is not found or is not a string array property.
**/ **/
bool getPropertyByName (const char *property_name, const std::vector<std::string> *&result) const; bool getPropertyByName (const std::string &property_name, const std::vector<std::string> *&result) const;
/** /**
* Get a color property with its name. Return false if the property is not found or is not a string array property. * Get a color property with its name. Return false if the property is not found or is not a string array property.
**/ **/
bool getPropertyByName (const char *property_name, NLMISC::CRGBA &result) const; bool getPropertyByName (const std::string &property_name, NLMISC::CRGBA &result) const;
/** /**
* Remove a property * Remove a property
@ -333,7 +332,7 @@ public:
/** /**
* Remove a property by its name * Remove a property by its name
**/ **/
bool removePropertyByName (const char *property_name); bool removePropertyByName (const std::string &property_name);
/** /**
* Remove all the properties * Remove all the properties
@ -347,10 +346,10 @@ public:
void initDefaultValues (CLigoConfig &config); void initDefaultValues (CLigoConfig &config);
// Read the primitive, calls initDefaultValue (CLigoConfig &config) // Read the primitive, calls initDefaultValue (CLigoConfig &config)
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config); virtual bool read (xmlNodePtr xmlNode, const std::string &property_name, uint version, CLigoConfig &config);
// Write the primitive // Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const; virtual void write (xmlNodePtr xmlNode, const std::string &property_name) const;
// Get the vertices // Get the vertices
virtual uint getNumVector () const = 0; virtual uint getNumVector () const = 0;
@ -435,7 +434,7 @@ protected:
virtual CPrimVector *getPrimVector (); virtual CPrimVector *getPrimVector ();
// Read the primitive // Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config); virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
// \name From IPrimitive // \name From IPrimitive
virtual IPrimitive *copy () const; virtual IPrimitive *copy () const;
@ -474,10 +473,10 @@ protected:
virtual CPrimVector *getPrimVector (); virtual CPrimVector *getPrimVector ();
// Read the primitive // Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config); virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
// Write the primitive // Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const; virtual void write (xmlNodePtr xmlNode, const std::string &filename) const;
// \name From IPrimitive // \name From IPrimitive
virtual IPrimitive *copy () const; virtual IPrimitive *copy () const;
@ -509,10 +508,10 @@ protected:
virtual CPrimVector *getPrimVector (); virtual CPrimVector *getPrimVector ();
// Read the primitive // Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config); virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
// Write the primitive // Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const; virtual void write (xmlNodePtr xmlNode, const std::string &filename) const;
// \name From IPrimitive // \name From IPrimitive
virtual IPrimitive *copy () const; virtual IPrimitive *copy () const;
@ -568,10 +567,10 @@ protected:
virtual CPrimVector *getPrimVector (); virtual CPrimVector *getPrimVector ();
// Read the primitive // Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config); virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
// Write the primitive // Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const; virtual void write (xmlNodePtr xmlNode, const std::string &filename) const;
// \name From IPrimitive // \name From IPrimitive
virtual IPrimitive *copy () const; virtual IPrimitive *copy () const;
@ -632,9 +631,9 @@ public:
uint32 getFullAlias() const; uint32 getFullAlias() const;
// Read the primitive // Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config); virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
// Write the primitive // Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const; virtual void write (xmlNodePtr xmlNode, const std::string &filename) const;
// Create a copy of this primitive // Create a copy of this primitive
virtual IPrimitive *copy () const; virtual IPrimitive *copy () const;
// serial for binary save // serial for binary save
@ -686,13 +685,13 @@ public:
void convert (const CPrimRegion &region); void convert (const CPrimRegion &region);
// Read the primitive // Read the primitive
bool read (xmlNodePtr xmlNode, const char *filename, CLigoConfig &config); bool read (xmlNodePtr xmlNode, const std::string &filename, CLigoConfig &config);
// Write the primitive // Write the primitive
void write (xmlDocPtr xmlNode, const char *filename) const; void write (xmlDocPtr xmlNode, const std::string &filename) const;
// Write the primitive // Write the primitive
void write (xmlNodePtr root, const char *filename) const; void write (xmlNodePtr root, const std::string &filename) const;
// serial the primitive. Used for binary files. // serial the primitive. Used for binary files.
void serial(NLMISC::IStream &f); void serial(NLMISC::IStream &f);

View file

@ -0,0 +1,875 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef __PRIMITIVE_H__
#define __PRIMITIVE_H__
#include "nel/misc/vector.h"
#include "nel/misc/rgba.h"
// Forward declarations for libxml2
typedef struct _xmlNode xmlNode;
typedef xmlNode *xmlNodePtr;
typedef struct _xmlDoc xmlDoc;
typedef xmlDoc *xmlDocPtr;
#include <vector>
namespace NLLIGO
{
#ifdef NL_DEBUG
# define NLLIGO_DEBUG
#endif
/**
* Ligo primitives are used to add logical geometrical gameplay information.
* Ligo primitives are NODES, POINTS, PATHES or ZONES.
* Ligo primitives have a CLASS.
*
* The primitive class defines the properties attached to the primitive
* The primitive class are defined in the XML file specified in the LigoClass field of the CLigoConfig class.
*/
class CPrimitives;
class CLigoConfig;
// ***************************************************************************
void Register ();
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
*/
class IProperty : public NLMISC::IStreamable
{
public:
IProperty ()
{
Default = false;
}
// This property is set to default
bool Default;
// Force class to be polymorphic
virtual void foo () const = 0;
};
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
* This is a simple string
*/
class CPropertyString : public IProperty
{
public:
CPropertyString () {}
<<<<<<< HEAD
CPropertyString (const char *str);
CPropertyString (const std::string &str);
CPropertyString (const char *str, bool _default);
=======
CPropertyString (const std::string &str);
CPropertyString (const std::string &str, bool _default);
>>>>>>> ryzomcore
virtual ~CPropertyString () {}
std::string String;
NLMISC_DECLARE_CLASS (CPropertyString)
virtual void serial(NLMISC::IStream &f)
{
f.serial(Default);
f.serial(String);
}
// Force class to be polymorphic
virtual void foo () const {}
};
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
* This is a string array
*/
class CPropertyStringArray : public IProperty
{
public:
CPropertyStringArray () {}
virtual ~CPropertyStringArray () {}
CPropertyStringArray (const std::vector<std::string> &stringArray);
CPropertyStringArray (const std::vector<std::string> &stringArray, bool _default);
std::vector<std::string> StringArray;
NLMISC_DECLARE_CLASS (CPropertyStringArray)
virtual void serial(NLMISC::IStream &f)
{
f.serial(Default);
f.serialCont(StringArray);
}
// Force class to be polymorphic
virtual void foo () const {}
};
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
* This is a string array
*/
class CPropertyColor : public IProperty
{
public:
NLMISC::CRGBA Color;
NLMISC_DECLARE_CLASS (CPropertyColor)
virtual void serial(NLMISC::IStream &f)
{
f.serial(Default);
f.serial(Color);
}
// Force class to be polymorphic
virtual void foo () const {}
// ctors
CPropertyColor() {}
CPropertyColor(NLMISC::CRGBA col) : Color(col) {}
};
// ***************************************************************************
class CPrimVector : public NLMISC::CVector
{
public:
CPrimVector ()
{
Selected = false;
}
CPrimVector (const NLMISC::CVector &v)
{
CVector::operator= (v);
Selected = false;
}
void serial(NLMISC::IStream &f)
{
CVector::serial(f);
f.serial(Selected);
}
bool Selected;
};
// ***************************************************************************
/*
* This class is the base class for ligo primitive.
*
* Provide access to common properties.
* Provide access to the primitive hierachy
*/
class IPrimitive : public NLMISC::IStreamable
{
friend class CPrimitives;
public:
// Deprecated
// std::string Layer;
// Deprecated
// std::string Name;
// Expended in the tree view
// bool Expanded;
enum
{
NotAnArray,
AtTheEnd = 0xffffffff,
};
/// \name Hierarchy
IPrimitive ();
virtual ~IPrimitive ();
IPrimitive (const IPrimitive &node);
virtual void operator= (const IPrimitive &node);
/** Get the children primitive count */
uint getNumChildren () const
{
return (uint)_Children.size ();
}
/** Get a child primitive */
bool getChild (const IPrimitive *&result, uint childId) const;
/** Get a child primitive */
bool getChild (IPrimitive *&result, uint childId);
/** Get the parent primitive */
IPrimitive *getParent ()
{
return _Parent;
}
const IPrimitive *getParent () const
{
return _Parent;
}
/** Get the primitive relative to this and the given path */
const IPrimitive *getPrimitive (const std::string &absoluteOrRelativePath) const;
/** Get the id of the child, return 0xffffffff if not found */
bool getChildId (uint &childId, const IPrimitive *child) const;
/** Remove and delete a child primitive */
bool removeChild (IPrimitive *child);
/** Remove and delete a child primitive */
bool removeChild (uint childId);
/// Remove the child primitive from the children list, don't delete it
bool unlinkChild(IPrimitive *child);
/** Remove and delete all children primitives */
void removeChildren ();
/**
* Insert a child primitive before the index.
* The pointer will be deleted by the parent primitive using the ::delete operator.
* return false if the index is invalid
*/
bool insertChild (IPrimitive *primitive, uint index = AtTheEnd);
/// \name Properties
/**
* Get a num properties
**/
uint getNumProperty () const;
/**
* Get a properties by its index
* This method (iterate a list) is slower than getPropertyByName (look up in a map).
**/
bool getProperty (uint index, std::string &property_name, const IProperty *&result) const;
/**
* Get a properties by its index
* This method (iterate a list) is slower than getPropertyByName (look up in a map).
**/
bool getProperty (uint index, std::string &property_name, IProperty *&result);
/** Check the existence of a named property */
bool checkProperty(const std::string &property_name) const;
/**
* Add a property
* If the property already exist, the method does nothing and returns false.
* The pointer will be deleted by the primitive using the ::delete operator.
**/
<<<<<<< HEAD
bool addPropertyByName (const char *property_name, IProperty *result);
=======
bool addPropertyByName (const std::string &property_name, IProperty *result);
>>>>>>> ryzomcore
/**
* Get a property with its name
**/
<<<<<<< HEAD
bool getPropertyByName (const char *property_name, const IProperty *&result) const;
=======
bool getPropertyByName (const std::string &property_name, const IProperty *&result) const;
>>>>>>> ryzomcore
/**
* Get a property with its name
**/
<<<<<<< HEAD
bool getPropertyByName (const char *property_name, IProperty *&result) const;
=======
bool getPropertyByName (const std::string &property_name, IProperty *&result) const;
>>>>>>> ryzomcore
/**
* Get a string property with its name. Return false if the property is not found or is not a string property.
**/
<<<<<<< HEAD
bool getPropertyByName (const char *property_name, std::string *&result) const;
=======
bool getPropertyByName (const std::string &property_name, std::string *&result) const;
>>>>>>> ryzomcore
/**
* Get a string array property with its name. Return false if the property is not found or is not a string array property.
**/
<<<<<<< HEAD
bool getPropertyByName (const char *property_name, std::vector<std::string> *&result) const;
=======
bool getPropertyByName (const std::string &property_name, std::vector<std::string> *&result) const;
>>>>>>> ryzomcore
/**
* Get a string property with its name. Return false if the property is not found or is not a string property.
**/
<<<<<<< HEAD
bool getPropertyByName (const char *property_name, std::string &result) const;
=======
bool getPropertyByName (const std::string &property_name, std::string &result) const;
>>>>>>> ryzomcore
/**
* Get a string array property with its name. Return false if the property is not found or is not a string array property.
**/
<<<<<<< HEAD
bool getPropertyByName (const char *property_name, const std::vector<std::string> *&result) const;
=======
bool getPropertyByName (const std::string &property_name, const std::vector<std::string> *&result) const;
>>>>>>> ryzomcore
/**
* Get a color property with its name. Return false if the property is not found or is not a string array property.
**/
<<<<<<< HEAD
bool getPropertyByName (const char *property_name, NLMISC::CRGBA &result) const;
=======
bool getPropertyByName (const std::string &property_name, NLMISC::CRGBA &result) const;
>>>>>>> ryzomcore
/**
* Remove a property
* This is method (iterate a list) is slower than removePropertyByName (look up in a map).
**/
bool removeProperty (uint index);
/**
* Remove a property by its name
**/
<<<<<<< HEAD
bool removePropertyByName (const char *property_name);
=======
bool removePropertyByName (const std::string &property_name);
>>>>>>> ryzomcore
/**
* Remove all the properties
**/
void removeProperties ();
/* Init default primitive's parameters
*
* This method will add all the properties declared in the primitive class and create default properties.
*/
void initDefaultValues (CLigoConfig &config);
// Read the primitive, calls initDefaultValue (CLigoConfig &config)
<<<<<<< HEAD
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
=======
virtual bool read (xmlNodePtr xmlNode, const std::string &property_name, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const std::string &property_name) const;
>>>>>>> ryzomcore
// Get the vertices
virtual uint getNumVector () const = 0;
virtual const CPrimVector *getPrimVector () const = 0;
virtual CPrimVector *getPrimVector () = 0;
// Make a copy
virtual IPrimitive *copy () const = 0;
// used for fast binary save/load (exploitation mode)
void serial(NLMISC::IStream &f);
// shortcut to getPropertyByName("name", ret); return ret;
std::string getName() const;
const std::string &getUnparsedProperties() const;
void setUnparsedProperties(const std::string &unparsedProperties) const;
private:
// callback called just after the node is attach under a parent
virtual void onLinkToParent() {}
// callback called just before the node is removed from it's parent
virtual void onUnlinkFromParent() {}
/// Callback called just after an ancestor is linked
virtual void onBranchLink() {}
/// Callback called just before an ancestor is unlinked
virtual void onBranchUnlink() {}
/// Callback called when the primitive is updated, giving a chance to track the primitive's modifications during the loading
virtual void onModifyPrimitive(CPrimitives &/* primitives */) const {}
// internal recusive call
void branchLink();
void branchUnlink();
// Update child Id
void updateChildId (uint index);
// Child id
uint32 _ChildId;
// Parent
IPrimitive *_Parent;
// Children
std::vector<IPrimitive*> _Children;
// Single properties
std::map<std::string, IProperty*> _Properties;
// Editor specific properties (unparsed)
mutable std::string _UnparsedProperties;
#ifdef NLLIGO_DEBUG
std::string _DebugClassName;
std::string _DebugPrimitiveName;
#endif
};
// ***************************************************************************
// Simple primitive node
class CPrimNode : public IPrimitive
{
public:
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimNode)
protected:
// void operator= (const CPrimNode &node);
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
<<<<<<< HEAD
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
=======
virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
>>>>>>> ryzomcore
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
class CPrimPoint : public IPrimitive
{
public:
CPrimPoint ()
{
Angle = 0;
}
CPrimVector Point;
float Angle; // Angle on OZ, CCW
public:
void serial (NLMISC::IStream &f);
// void operator= (const CPrimPoint &node);
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimPoint);
protected:
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
<<<<<<< HEAD
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
=======
virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const std::string &filename) const;
>>>>>>> ryzomcore
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
class CPrimPath : public IPrimitive
{
public:
std::vector<CPrimVector> VPoints;
public:
void serial (NLMISC::IStream &f);
// void operator= (const CPrimPath &node);
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimPath);
protected:
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
<<<<<<< HEAD
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
=======
virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const std::string &filename) const;
>>>>>>> ryzomcore
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
class CPrimZone : public IPrimitive
{
public:
std::vector<CPrimVector> VPoints;
static float getSegmentDist(const NLMISC::CVector v, const NLMISC::CVector &p1, const NLMISC::CVector &p2, NLMISC::CVector &nearPos);
public:
bool contains (const NLMISC::CVector &v) const { return CPrimZone::contains(v, VPoints); }
bool contains(const NLMISC::CVector &v, float &distance, NLMISC::CVector &nearPos, bool isPath) const { return CPrimZone::contains(v, VPoints, distance, nearPos, isPath); }
// void operator= (const CPrimZone &node);
void serial (NLMISC::IStream &f);
// Returns true if the vector v is inside of the patatoid
static bool contains (const NLMISC::CVector &v, const std::vector<NLMISC::CVector> &points);
// Returns true if the vector v is inside of the patatoid and set the distance of the nearest segment and the position of the nearest point.
static bool contains (const NLMISC::CVector &v, const std::vector<NLMISC::CVector> &points, float &distance, NLMISC::CVector &nearPos, bool isPath);
// Returns true if the vector v is inside of the patatoid
static bool contains (const NLMISC::CVector &v, const std::vector<CPrimVector> &points);
// Returns true if the vector v is inside of the patatoid and set the distance of the nearest segment and the position of the nearest point.
static bool contains (const NLMISC::CVector &v, const std::vector<CPrimVector> &points, float &distance, NLMISC::CVector &nearPos, bool isPath);
/// Returns the barycenter of the zone (warning, it may be outside of the zone if it is not convex). Returns CVector::Null if there is no vertex.
NLMISC::CVector getBarycentre() const;
/// Returns the smallest axis-aligned box containing the zone (z is always set to 0)
void getAABox( NLMISC::CVector& cornerMin, NLMISC::CVector& cornerMax ) const;
/// Return the area of the axis-aligned box containing the zone
float getAreaOfAABox() const;
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimZone);
protected:
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
<<<<<<< HEAD
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
=======
virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const std::string &filename) const;
>>>>>>> ryzomcore
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
/** This primitive type is used to handle unique alias across a primitive file.
* Usage of this primitive imply the setting of the appropriate 'ligo context'
* before reading or copy/pasting alias.
*/
class CPrimAlias : public IPrimitive
{
friend class CPrimitives;
/// The 'dynamic' part of the alias
uint32 _Alias;
/// The primitive container
class CPrimitives *_Container;
// Needed overloads (not used)
virtual uint getNumVector () const
{
return 0;
};
virtual const CPrimVector *getPrimVector () const
{
return NULL;
}
virtual CPrimVector *getPrimVector ()
{
return NULL;
}
virtual void onBranchLink();
// callback called just before the node is removed from it's parent
virtual void onBranchUnlink();
void regenAlias();
public:
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimAlias);
// private default constructor
CPrimAlias();
// copy constructor needed
CPrimAlias(const CPrimAlias &other);
~CPrimAlias();
// return the dynamic part of the alias
uint32 getAlias() const;
// Return the full alias, merge of the static and dynamic part
uint32 getFullAlias() const;
// Read the primitive
<<<<<<< HEAD
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
=======
virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const std::string &filename) const;
>>>>>>> ryzomcore
// Create a copy of this primitive
virtual IPrimitive *copy () const;
// serial for binary save
virtual void serial (NLMISC::IStream &f);
};
// ***************************************************************************
/*
This class is deprecated.
*/
class CPrimRegion
{
public:
std::string Name;
std::vector<CPrimPoint> VPoints;
std::vector<CPrimZone> VZones;
std::vector<CPrimPath> VPaths;
std::vector<bool> VHidePoints;
std::vector<bool> VHideZones;
std::vector<bool> VHidePaths;
public:
void serial (NLMISC::IStream &f);
};
// ***************************************************************************
/**
* This class is a ligo primitives set
*/
class CPrimitives
{
public:
CPrimitives ();
CPrimitives (const CPrimitives &other);
~CPrimitives ();
// Operator copy
CPrimitives& operator= (const CPrimitives &other);
// Convert from old format to the new one
void convert (const CPrimRegion &region);
// Read the primitive
<<<<<<< HEAD
bool read (xmlNodePtr xmlNode, const char *filename, CLigoConfig &config);
// Write the primitive
void write (xmlDocPtr xmlNode, const char *filename) const;
// Write the primitive
void write (xmlNodePtr root, const char *filename) const;
=======
bool read (xmlNodePtr xmlNode, const std::string &filename, CLigoConfig &config);
// Write the primitive
void write (xmlDocPtr xmlNode, const std::string &filename) const;
// Write the primitive
void write (xmlNodePtr root, const std::string &filename) const;
>>>>>>> ryzomcore
// serial the primitive. Used for binary files.
void serial(NLMISC::IStream &f);
// Root primitive hierarchy
CPrimNode *RootNode;
// get the static alias part for this primitive
uint32 getAliasStaticPart();
// set the static alias part for this primitive
void setAliasStaticPart(uint32 staticPart);
// Build an alias by combining the static and dynamic part
uint32 buildFullAlias(uint32 dynamicPart);
// Generate a new unique alias (dynamic part only)
uint32 genAlias(IPrimitive *prim, uint32 preferedAlias = 0);
// Reserve an alias and store it in the used alias list (dynamic part only)
// void reserveAlias(uint32 dynamicAlias);
// Remove an alias from the list of alias in use (dynamic part only)
void releaseAlias(IPrimitive *prim, uint32 dynamicAlias);
// Force the assignation of the specified alias to the primitive. If another primitive
// already hold the alias, this other primitive is assigned a new alias.
void forceAlias(CPrimAlias *prim, uint32 alias);
// get the last generated alias value (for debug only)
uint32 getLastGeneratedAlias();
// Return the primitive indexed by the given alias (ie, it doesn't return the alias primitive, but its first parent)
IPrimitive *getPrimitiveByAlias(uint32 primAlias);
// Build the complete list of indexed primitive (ie all primitive that have a primalias child)
void buildPrimitiveWithAliasList(std::map<uint32, IPrimitive*> &result);
private:
// Conversion internal methods
void convertAddPrimitive (IPrimitive *child, const IPrimitive *prim, bool hidden);
void convertPrimitive (const IPrimitive *prim, bool hidden);
/// Optional context information
CLigoConfig *_LigoConfig;
/// Static part alias mapping (can be 0 if no mapping is defined)
uint32 _AliasStaticPart;
/// Last generated Alias, used to compute the next alias
uint32 _LastGeneratedAlias;
/// List of alias in use in the primitive (dynamic part only)
std::map<uint32, IPrimitive*> _AliasInUse;
// Store the filename
// This allows to retrieve the static alias when reloading from binary file
std::string _Filename;
};
// ***************************************************************************
/** Singleton to manage special loading feature related to
* unique alias assignment
*/
class CPrimitiveContext
{
static CPrimitiveContext *_Instance;
// private ctor
CPrimitiveContext();
public:
// get the singleton reference
static CPrimitiveContext &instance()
{
if (!_Instance)
{
_Instance = new CPrimitiveContext;
}
return *_Instance;
}
/// The current ligo configuration file.
CLigoConfig *CurrentLigoConfig;
/// The current primitives container.
CPrimitives *CurrentPrimitive;
};
} // namespace NLLIGO
#endif // __PRIMITIVE_H__

View file

@ -0,0 +1,781 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef __PRIMITIVE_H__
#define __PRIMITIVE_H__
#include "nel/misc/vector.h"
#include "nel/misc/rgba.h"
// Include from libxml2
#include <libxml/parser.h>
#include <vector>
namespace NLLIGO
{
#ifdef NL_DEBUG
# define NLLIGO_DEBUG
#endif
/**
* Ligo primitives are used to add logical geometrical gameplay informations.
* Ligo primitives are NODES, POINTS, PATHES or ZONES.
* Ligo primitives have a CLASS.
*
* The primitive class defines the properties attached to the primitive
* The primitive class are defined in the XML file specified in the LigoClass field of the CLigoConfig class.
*/
class CPrimitives;
class CLigoConfig;
// ***************************************************************************
void Register ();
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
*/
class IProperty : public NLMISC::IStreamable
{
public:
IProperty ()
{
Default = false;
}
// This property is set to default
bool Default;
// Force class to be polymorphic
virtual void foo () const = 0;
};
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
* This is a simple string
*/
class CPropertyString : public IProperty
{
public:
CPropertyString () {}
CPropertyString (const char *str);
CPropertyString (const std::string &str);
CPropertyString (const char *str, bool _default);
virtual ~CPropertyString () {}
std::string String;
NLMISC_DECLARE_CLASS (CPropertyString)
virtual void serial(NLMISC::IStream &f)
{
f.serial(Default);
f.serial(String);
}
// Force class to be polymorphic
virtual void foo () const {}
};
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
* This is a string array
*/
class CPropertyStringArray : public IProperty
{
public:
CPropertyStringArray () {}
virtual ~CPropertyStringArray () {}
CPropertyStringArray (const std::vector<std::string> &stringArray);
CPropertyStringArray (const std::vector<std::string> &stringArray, bool _default);
std::vector<std::string> StringArray;
NLMISC_DECLARE_CLASS (CPropertyStringArray)
virtual void serial(NLMISC::IStream &f)
{
f.serial(Default);
f.serialCont(StringArray);
}
// Force class to be polymorphic
virtual void foo () const {}
};
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
* This is a string array
*/
class CPropertyColor : public IProperty
{
public:
NLMISC::CRGBA Color;
NLMISC_DECLARE_CLASS (CPropertyColor)
virtual void serial(NLMISC::IStream &f)
{
f.serial(Default);
f.serial(Color);
}
// Force class to be polymorphic
virtual void foo () const {}
// ctors
CPropertyColor() {}
CPropertyColor(NLMISC::CRGBA col) : Color(col) {}
};
// ***************************************************************************
class CPrimVector : public NLMISC::CVector
{
public:
CPrimVector ()
{
Selected = false;
}
CPrimVector (const NLMISC::CVector &v)
{
CVector::operator= (v);
Selected = false;
}
void serial(NLMISC::IStream &f)
{
CVector::serial(f);
f.serial(Selected);
}
bool Selected;
};
// ***************************************************************************
/*
* This class is the base class for ligo primitive.
*
* Provide access to common properties.
* Provide access to the primitive hierachy
*/
class IPrimitive : public NLMISC::IStreamable
{
friend class CPrimitives;
public:
// Deprecated
// std::string Layer;
// Deprecated
// std::string Name;
// Expended in the tree view
// bool Expanded;
enum
{
NotAnArray,
AtTheEnd = 0xffffffff,
};
/// \name Hierarchy
IPrimitive ();
virtual ~IPrimitive ();
IPrimitive (const IPrimitive &node);
virtual void operator= (const IPrimitive &node);
/** Get the children primitive count */
uint getNumChildren () const
{
return _Children.size ();
}
/** Get a child primitive */
bool getChild (const IPrimitive *&result, uint childId) const;
/** Get a child primitive */
bool getChild (IPrimitive *&result, uint childId);
/** Get the parent primitive */
IPrimitive *getParent ()
{
return _Parent;
}
const IPrimitive *getParent () const
{
return _Parent;
}
/** Get the primitive relative to this and the given path */
const IPrimitive *getPrimitive (const std::string &absoluteOrRelativePath) const;
/** Get the id of the child, return 0xffffffff if not found */
bool getChildId (uint &childId, const IPrimitive *child) const;
/** Remove and delete a child primitive */
bool removeChild (IPrimitive *child);
/** Remove and delete a child primitive */
bool removeChild (uint childId);
/// Remove the child primitive from the children list, don't delete it
bool unlinkChild(IPrimitive *child);
/** Remove and delete all children primitives */
void removeChildren ();
/**
* Insert a child primitive before the index.
* The pointer will be deleted by the parent primitive using the ::delete operator.
* return false if the index is invalid
*/
bool insertChild (IPrimitive *primitive, uint index = AtTheEnd);
/// \name Properties
/**
* Get a num properties
**/
uint getNumProperty () const;
/**
* Get a properties by its index
* This method (iterate a list) is slower than getPropertyByName (look up in a map).
**/
bool getProperty (uint index, std::string &property_name, const IProperty *&result) const;
/**
* Get a properties by its index
* This method (iterate a list) is slower than getPropertyByName (look up in a map).
**/
bool getProperty (uint index, std::string &property_name, IProperty *&result);
/** Check the existence of a named property */
bool checkProperty(const std::string &property_name) const;
/**
* Add a property
* If the property already exist, the method does nothing and returns false.
* The pointer will be deleted by the primitive using the ::delete operator.
**/
bool addPropertyByName (const char *property_name, IProperty *result);
/**
* Get a property with its name
**/
bool getPropertyByName (const char *property_name, const IProperty *&result) const;
/**
* Get a property with its name
**/
bool getPropertyByName (const char *property_name, IProperty *&result) const;
/**
* Get a string property with its name. Return false if the property is not found or is not a string property.
**/
bool getPropertyByName (const char *property_name, std::string *&result) const;
/**
* Get a string array property with its name. Return false if the property is not found or is not a string array property.
**/
bool getPropertyByName (const char *property_name, std::vector<std::string> *&result) const;
/**
* Get a string property with its name. Return false if the property is not found or is not a string property.
**/
bool getPropertyByName (const char *property_name, std::string &result) const;
/**
* Get a string array property with its name. Return false if the property is not found or is not a string array property.
**/
bool getPropertyByName (const char *property_name, const std::vector<std::string> *&result) const;
/**
* Get a color property with its name. Return false if the property is not found or is not a string array property.
**/
bool getPropertyByName (const char *property_name, NLMISC::CRGBA &result) const;
/**
* Remove a property
* This is method (iterate a list) is slower than removePropertyByName (look up in a map).
**/
bool removeProperty (uint index);
/**
* Remove a property by its name
**/
bool removePropertyByName (const char *property_name);
/**
* Remove all the properties
**/
void removeProperties ();
/* Init default primitive's parameters
*
* This method will add all the properties declared in the primitive class and create default properties.
*/
void initDefaultValues (CLigoConfig &config);
// Read the primitive, calls initDefaultValue (CLigoConfig &config)
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
// Get the vertices
virtual uint getNumVector () const = 0;
virtual const CPrimVector *getPrimVector () const = 0;
virtual CPrimVector *getPrimVector () = 0;
// Make a copy
virtual IPrimitive *copy () const = 0;
// used for fast binary save/load (exploitation mode)
void serial(NLMISC::IStream &f);
// shortcut to getPropertyByName("name", ret); return ret;
std::string getName() const;
const std::string &getUnparsedProperties() const;
void setUnparsedProperties(const std::string &unparsedProperties) const;
private:
// callback called just after the node is attach under a parent
virtual void onLinkToParent() {}
// callback called just before the node is removed from it's parent
virtual void onUnlinkFromParent() {}
/// Callback called just after an ancestor is linked
virtual void onBranchLink() {}
/// Callback called just before an ancestor is unlinked
virtual void onBranchUnlink() {}
/// Callback called when the primitive is updated, giving a chance to track the primitive's modifications during the loading
virtual void onModifyPrimitive(CPrimitives &/* primitives */) const {}
// internal recusive call
void branchLink();
void branchUnlink();
// Update child Id
void updateChildId (uint index);
// Child id
uint32 _ChildId;
// Parent
IPrimitive *_Parent;
// Children
std::vector<IPrimitive*> _Children;
// Single properties
std::map<std::string, IProperty*> _Properties;
// Editor specific properties (unparsed)
mutable std::string _UnparsedProperties;
#ifdef NLLIGO_DEBUG
std::string _DebugClassName;
std::string _DebugPrimitiveName;
#endif
};
// ***************************************************************************
// Simple primitive node
class CPrimNode : public IPrimitive
{
public:
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimNode)
protected:
// void operator= (const CPrimNode &node);
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
class CPrimPoint : public IPrimitive
{
public:
CPrimPoint ()
{
Angle = 0;
}
CPrimVector Point;
float Angle; // Angle on OZ, CCW
public:
void serial (NLMISC::IStream &f);
// void operator= (const CPrimPoint &node);
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimPoint);
protected:
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
class CPrimPath : public IPrimitive
{
public:
std::vector<CPrimVector> VPoints;
public:
void serial (NLMISC::IStream &f);
// void operator= (const CPrimPath &node);
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimPath);
protected:
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
class CPrimZone : public IPrimitive
{
public:
std::vector<CPrimVector> VPoints;
static float getSegmentDist(const NLMISC::CVector v, const NLMISC::CVector &p1, const NLMISC::CVector &p2, NLMISC::CVector &nearPos);
public:
bool contains (const NLMISC::CVector &v) const { return CPrimZone::contains(v, VPoints); }
bool contains(const NLMISC::CVector &v, float &distance, NLMISC::CVector &nearPos, bool isPath) const { return CPrimZone::contains(v, VPoints, distance, nearPos, isPath); }
// void operator= (const CPrimZone &node);
void serial (NLMISC::IStream &f);
// Returns true if the vector v is inside of the patatoid
static bool contains (const NLMISC::CVector &v, const std::vector<NLMISC::CVector> &points);
// Returns true if the vector v is inside of the patatoid and set the distance of the nearest segment and the position of the nearest point.
static bool contains (const NLMISC::CVector &v, const std::vector<NLMISC::CVector> &points, float &distance, NLMISC::CVector &nearPos, bool isPath);
// Returns true if the vector v is inside of the patatoid
static bool contains (const NLMISC::CVector &v, const std::vector<CPrimVector> &points);
// Returns true if the vector v is inside of the patatoid and set the distance of the nearest segment and the position of the nearest point.
static bool contains (const NLMISC::CVector &v, const std::vector<CPrimVector> &points, float &distance, NLMISC::CVector &nearPos, bool isPath);
/// Returns the barycenter of the zone (warning, it may be outside of the zone if it is not convex). Returns CVector::Null if there is no vertex.
NLMISC::CVector getBarycentre() const;
/// Returns the smallest axis-aligned box containing the zone (z is always set to 0)
void getAABox( NLMISC::CVector& cornerMin, NLMISC::CVector& cornerMax ) const;
/// Return the area of the axis-aligned box containing the zone
float getAreaOfAABox() const;
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimZone);
protected:
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
/** This primitive type is used to handle unique alias across a primitive file.
* Usage of this primitive imply the setting of the appropriate 'ligo context'
* before reading or copy/pasting alias.
*/
class CPrimAlias : public IPrimitive
{
friend class CPrimitives;
/// The 'dynamic' part of the alias
uint32 _Alias;
/// The primitive container
class CPrimitives *_Container;
// Needed overloads (not used)
virtual uint getNumVector () const
{
return 0;
};
virtual const CPrimVector *getPrimVector () const
{
return NULL;
}
virtual CPrimVector *getPrimVector ()
{
return NULL;
}
virtual void onBranchLink();
// callback called just before the node is removed from it's parent
virtual void onBranchUnlink();
void regenAlias();
public:
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimAlias);
// private default constructor
CPrimAlias();
// copy constructor needed
CPrimAlias(const CPrimAlias &other);
~CPrimAlias();
// return the dynamic part of the alias
uint32 getAlias() const;
// Return the full alias, merge of the static and dynamic part
uint32 getFullAlias() const;
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
// Create a copy of this primitive
virtual IPrimitive *copy () const;
// serial for binary save
virtual void serial (NLMISC::IStream &f);
};
// ***************************************************************************
/*
This class is deprecated.
*/
class CPrimRegion
{
public:
std::string Name;
std::vector<CPrimPoint> VPoints;
std::vector<CPrimZone> VZones;
std::vector<CPrimPath> VPaths;
std::vector<bool> VHidePoints;
std::vector<bool> VHideZones;
std::vector<bool> VHidePaths;
public:
void serial (NLMISC::IStream &f);
};
// ***************************************************************************
/**
* This class is a ligo primitives set
*/
class CPrimitives
{
public:
CPrimitives ();
CPrimitives (const CPrimitives &other);
~CPrimitives ();
// Operator copy
CPrimitives& operator= (const CPrimitives &other);
// Convert from old format to the new one
void convert (const CPrimRegion &region);
// Read the primitive
bool read (xmlNodePtr xmlNode, const char *filename, CLigoConfig &config);
// Write the primitive
void write (xmlDocPtr xmlNode, const char *filename) const;
// Write the primitive
void write (xmlNodePtr root, const char *filename) const;
// serial the primitive. Used for binary files.
void serial(NLMISC::IStream &f);
// Root primitive hierarchy
CPrimNode *RootNode;
// get the static alias part for this primitive
uint32 getAliasStaticPart();
// set the static alias part for this primitive
void setAliasStaticPart(uint32 staticPart);
// Build an alias by combining the static and dynamic part
uint32 buildFullAlias(uint32 dynamicPart);
// Generate a new unique alias (dynamic part only)
uint32 genAlias(IPrimitive *prim, uint32 preferedAlias = 0);
// Reserve an alias and store it in the used alias list (dynamic part only)
// void reserveAlias(uint32 dynamicAlias);
// Remove an alias from the list of alias in use (dynamic part only)
void releaseAlias(IPrimitive *prim, uint32 dynamicAlias);
// Force the assignation of the specified alias the the primitive. If another primitive
// already hold the alias, this other primitive is assigned a new alias.
void forceAlias(CPrimAlias *prim, uint32 alias);
// get the last generated alias value (for debug only)
uint32 getLastGeneratedAlias();
// Return the primitive indexed by the given alias (ie, it doesn't return the alias primitive, but its first parent)
IPrimitive *getPrimitiveByAlias(uint32 primAlias);
// Build the complete list of indexed primitive (ie all primitive that have a primalias child)
void buildPrimitiveWithAliasList(std::map<uint32, IPrimitive*> &result);
private:
// Conversion internal methods
void convertAddPrimitive (IPrimitive *child, const IPrimitive *prim, bool hidden);
void convertPrimitive (const IPrimitive *prim, bool hidden);
/// Optional context information
CLigoConfig *_LigoConfig;
/// Static part alias mapping (can be 0 if no mapping is defined)
uint32 _AliasStaticPart;
/// Last generated Alias, used to compute the next alias
uint32 _LastGeneratedAlias;
/// List of alias in use in the primitive (dynamic part only)
std::map<uint32, IPrimitive*> _AliasInUse;
// Store the filename
// This allows to retrieve the static alias when reloading from binary file
std::string _Filename;
};
// ***************************************************************************
/** Singleton to manage special loading feature related to
* unique alias assignment
*/
class CPrimitiveContext
{
static CPrimitiveContext *_Instance;
// private ctor
CPrimitiveContext();
public:
// get the singleton reference
static CPrimitiveContext &instance()
{
if (!_Instance)
{
_Instance = new CPrimitiveContext;
}
return *_Instance;
}
/// The current ligo configuration file.
CLigoConfig *CurrentLigoConfig;
/// The current primitives container.
CPrimitives *CurrentPrimitive;
};
} // namespace NLLIGO
#endif // __PRIMITIVE_H__

View file

@ -0,0 +1,786 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef __PRIMITIVE_H__
#define __PRIMITIVE_H__
#include "nel/misc/vector.h"
#include "nel/misc/rgba.h"
// Forward declarations for libxml2
typedef struct _xmlNode xmlNode;
typedef xmlNode *xmlNodePtr;
typedef struct _xmlDoc xmlDoc;
typedef xmlDoc *xmlDocPtr;
#include <vector>
namespace NLLIGO
{
#ifdef NL_DEBUG
# define NLLIGO_DEBUG
#endif
/**
* Ligo primitives are used to add logical geometrical gameplay information.
* Ligo primitives are NODES, POINTS, PATHES or ZONES.
* Ligo primitives have a CLASS.
*
* The primitive class defines the properties attached to the primitive
* The primitive class are defined in the XML file specified in the LigoClass field of the CLigoConfig class.
*/
class CPrimitives;
class CLigoConfig;
// ***************************************************************************
void Register ();
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
*/
class IProperty : public NLMISC::IStreamable
{
public:
IProperty ()
{
Default = false;
}
// This property is set to default
bool Default;
// Force class to be polymorphic
virtual void foo () const = 0;
};
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
* This is a simple string
*/
class CPropertyString : public IProperty
{
public:
CPropertyString () {}
CPropertyString (const char *str);
CPropertyString (const std::string &str);
CPropertyString (const char *str, bool _default);
virtual ~CPropertyString () {}
std::string String;
NLMISC_DECLARE_CLASS (CPropertyString)
virtual void serial(NLMISC::IStream &f)
{
f.serial(Default);
f.serial(String);
}
// Force class to be polymorphic
virtual void foo () const {}
};
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
* This is a string array
*/
class CPropertyStringArray : public IProperty
{
public:
CPropertyStringArray () {}
virtual ~CPropertyStringArray () {}
CPropertyStringArray (const std::vector<std::string> &stringArray);
CPropertyStringArray (const std::vector<std::string> &stringArray, bool _default);
std::vector<std::string> StringArray;
NLMISC_DECLARE_CLASS (CPropertyStringArray)
virtual void serial(NLMISC::IStream &f)
{
f.serial(Default);
f.serialCont(StringArray);
}
// Force class to be polymorphic
virtual void foo () const {}
};
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
* This is a string array
*/
class CPropertyColor : public IProperty
{
public:
NLMISC::CRGBA Color;
NLMISC_DECLARE_CLASS (CPropertyColor)
virtual void serial(NLMISC::IStream &f)
{
f.serial(Default);
f.serial(Color);
}
// Force class to be polymorphic
virtual void foo () const {}
// ctors
CPropertyColor() {}
CPropertyColor(NLMISC::CRGBA col) : Color(col) {}
};
// ***************************************************************************
class CPrimVector : public NLMISC::CVector
{
public:
CPrimVector ()
{
Selected = false;
}
CPrimVector (const NLMISC::CVector &v)
{
CVector::operator= (v);
Selected = false;
}
void serial(NLMISC::IStream &f)
{
CVector::serial(f);
f.serial(Selected);
}
bool Selected;
};
// ***************************************************************************
/*
* This class is the base class for ligo primitive.
*
* Provide access to common properties.
* Provide access to the primitive hierachy
*/
class IPrimitive : public NLMISC::IStreamable
{
friend class CPrimitives;
public:
// Deprecated
// std::string Layer;
// Deprecated
// std::string Name;
// Expended in the tree view
// bool Expanded;
enum
{
NotAnArray,
AtTheEnd = 0xffffffff,
};
/// \name Hierarchy
IPrimitive ();
virtual ~IPrimitive ();
IPrimitive (const IPrimitive &node);
virtual void operator= (const IPrimitive &node);
/** Get the children primitive count */
uint getNumChildren () const
{
return (uint)_Children.size ();
}
/** Get a child primitive */
bool getChild (const IPrimitive *&result, uint childId) const;
/** Get a child primitive */
bool getChild (IPrimitive *&result, uint childId);
/** Get the parent primitive */
IPrimitive *getParent ()
{
return _Parent;
}
const IPrimitive *getParent () const
{
return _Parent;
}
/** Get the primitive relative to this and the given path */
const IPrimitive *getPrimitive (const std::string &absoluteOrRelativePath) const;
/** Get the id of the child, return 0xffffffff if not found */
bool getChildId (uint &childId, const IPrimitive *child) const;
/** Remove and delete a child primitive */
bool removeChild (IPrimitive *child);
/** Remove and delete a child primitive */
bool removeChild (uint childId);
/// Remove the child primitive from the children list, don't delete it
bool unlinkChild(IPrimitive *child);
/** Remove and delete all children primitives */
void removeChildren ();
/**
* Insert a child primitive before the index.
* The pointer will be deleted by the parent primitive using the ::delete operator.
* return false if the index is invalid
*/
bool insertChild (IPrimitive *primitive, uint index = AtTheEnd);
/// \name Properties
/**
* Get a num properties
**/
uint getNumProperty () const;
/**
* Get a properties by its index
* This method (iterate a list) is slower than getPropertyByName (look up in a map).
**/
bool getProperty (uint index, std::string &property_name, const IProperty *&result) const;
/**
* Get a properties by its index
* This method (iterate a list) is slower than getPropertyByName (look up in a map).
**/
bool getProperty (uint index, std::string &property_name, IProperty *&result);
/** Check the existence of a named property */
bool checkProperty(const std::string &property_name) const;
/**
* Add a property
* If the property already exist, the method does nothing and returns false.
* The pointer will be deleted by the primitive using the ::delete operator.
**/
bool addPropertyByName (const char *property_name, IProperty *result);
/**
* Get a property with its name
**/
bool getPropertyByName (const char *property_name, const IProperty *&result) const;
/**
* Get a property with its name
**/
bool getPropertyByName (const char *property_name, IProperty *&result) const;
/**
* Get a string property with its name. Return false if the property is not found or is not a string property.
**/
bool getPropertyByName (const char *property_name, std::string *&result) const;
/**
* Get a string array property with its name. Return false if the property is not found or is not a string array property.
**/
bool getPropertyByName (const char *property_name, std::vector<std::string> *&result) const;
/**
* Get a string property with its name. Return false if the property is not found or is not a string property.
**/
bool getPropertyByName (const char *property_name, std::string &result) const;
/**
* Get a string array property with its name. Return false if the property is not found or is not a string array property.
**/
bool getPropertyByName (const char *property_name, const std::vector<std::string> *&result) const;
/**
* Get a color property with its name. Return false if the property is not found or is not a string array property.
**/
bool getPropertyByName (const char *property_name, NLMISC::CRGBA &result) const;
/**
* Remove a property
* This is method (iterate a list) is slower than removePropertyByName (look up in a map).
**/
bool removeProperty (uint index);
/**
* Remove a property by its name
**/
bool removePropertyByName (const char *property_name);
/**
* Remove all the properties
**/
void removeProperties ();
/* Init default primitive's parameters
*
* This method will add all the properties declared in the primitive class and create default properties.
*/
void initDefaultValues (CLigoConfig &config);
// Read the primitive, calls initDefaultValue (CLigoConfig &config)
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
// Get the vertices
virtual uint getNumVector () const = 0;
virtual const CPrimVector *getPrimVector () const = 0;
virtual CPrimVector *getPrimVector () = 0;
// Make a copy
virtual IPrimitive *copy () const = 0;
// used for fast binary save/load (exploitation mode)
void serial(NLMISC::IStream &f);
// shortcut to getPropertyByName("name", ret); return ret;
std::string getName() const;
const std::string &getUnparsedProperties() const;
void setUnparsedProperties(const std::string &unparsedProperties) const;
private:
// callback called just after the node is attach under a parent
virtual void onLinkToParent() {}
// callback called just before the node is removed from it's parent
virtual void onUnlinkFromParent() {}
/// Callback called just after an ancestor is linked
virtual void onBranchLink() {}
/// Callback called just before an ancestor is unlinked
virtual void onBranchUnlink() {}
/// Callback called when the primitive is updated, giving a chance to track the primitive's modifications during the loading
virtual void onModifyPrimitive(CPrimitives &/* primitives */) const {}
// internal recusive call
void branchLink();
void branchUnlink();
// Update child Id
void updateChildId (uint index);
// Child id
uint32 _ChildId;
// Parent
IPrimitive *_Parent;
// Children
std::vector<IPrimitive*> _Children;
// Single properties
std::map<std::string, IProperty*> _Properties;
// Editor specific properties (unparsed)
mutable std::string _UnparsedProperties;
#ifdef NLLIGO_DEBUG
std::string _DebugClassName;
std::string _DebugPrimitiveName;
#endif
};
// ***************************************************************************
// Simple primitive node
class CPrimNode : public IPrimitive
{
public:
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimNode)
protected:
// void operator= (const CPrimNode &node);
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
class CPrimPoint : public IPrimitive
{
public:
CPrimPoint ()
{
Angle = 0;
}
CPrimVector Point;
float Angle; // Angle on OZ, CCW
public:
void serial (NLMISC::IStream &f);
// void operator= (const CPrimPoint &node);
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimPoint);
protected:
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
class CPrimPath : public IPrimitive
{
public:
std::vector<CPrimVector> VPoints;
public:
void serial (NLMISC::IStream &f);
// void operator= (const CPrimPath &node);
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimPath);
protected:
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
class CPrimZone : public IPrimitive
{
public:
std::vector<CPrimVector> VPoints;
static float getSegmentDist(const NLMISC::CVector v, const NLMISC::CVector &p1, const NLMISC::CVector &p2, NLMISC::CVector &nearPos);
public:
bool contains (const NLMISC::CVector &v) const { return CPrimZone::contains(v, VPoints); }
bool contains(const NLMISC::CVector &v, float &distance, NLMISC::CVector &nearPos, bool isPath) const { return CPrimZone::contains(v, VPoints, distance, nearPos, isPath); }
// void operator= (const CPrimZone &node);
void serial (NLMISC::IStream &f);
// Returns true if the vector v is inside of the patatoid
static bool contains (const NLMISC::CVector &v, const std::vector<NLMISC::CVector> &points);
// Returns true if the vector v is inside of the patatoid and set the distance of the nearest segment and the position of the nearest point.
static bool contains (const NLMISC::CVector &v, const std::vector<NLMISC::CVector> &points, float &distance, NLMISC::CVector &nearPos, bool isPath);
// Returns true if the vector v is inside of the patatoid
static bool contains (const NLMISC::CVector &v, const std::vector<CPrimVector> &points);
// Returns true if the vector v is inside of the patatoid and set the distance of the nearest segment and the position of the nearest point.
static bool contains (const NLMISC::CVector &v, const std::vector<CPrimVector> &points, float &distance, NLMISC::CVector &nearPos, bool isPath);
/// Returns the barycenter of the zone (warning, it may be outside of the zone if it is not convex). Returns CVector::Null if there is no vertex.
NLMISC::CVector getBarycentre() const;
/// Returns the smallest axis-aligned box containing the zone (z is always set to 0)
void getAABox( NLMISC::CVector& cornerMin, NLMISC::CVector& cornerMax ) const;
/// Return the area of the axis-aligned box containing the zone
float getAreaOfAABox() const;
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimZone);
protected:
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
/** This primitive type is used to handle unique alias across a primitive file.
* Usage of this primitive imply the setting of the appropriate 'ligo context'
* before reading or copy/pasting alias.
*/
class CPrimAlias : public IPrimitive
{
friend class CPrimitives;
/// The 'dynamic' part of the alias
uint32 _Alias;
/// The primitive container
class CPrimitives *_Container;
// Needed overloads (not used)
virtual uint getNumVector () const
{
return 0;
};
virtual const CPrimVector *getPrimVector () const
{
return NULL;
}
virtual CPrimVector *getPrimVector ()
{
return NULL;
}
virtual void onBranchLink();
// callback called just before the node is removed from it's parent
virtual void onBranchUnlink();
void regenAlias();
public:
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimAlias);
// private default constructor
CPrimAlias();
// copy constructor needed
CPrimAlias(const CPrimAlias &other);
~CPrimAlias();
// return the dynamic part of the alias
uint32 getAlias() const;
// Return the full alias, merge of the static and dynamic part
uint32 getFullAlias() const;
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const char *filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const char *filename) const;
// Create a copy of this primitive
virtual IPrimitive *copy () const;
// serial for binary save
virtual void serial (NLMISC::IStream &f);
};
// ***************************************************************************
/*
This class is deprecated.
*/
class CPrimRegion
{
public:
std::string Name;
std::vector<CPrimPoint> VPoints;
std::vector<CPrimZone> VZones;
std::vector<CPrimPath> VPaths;
std::vector<bool> VHidePoints;
std::vector<bool> VHideZones;
std::vector<bool> VHidePaths;
public:
void serial (NLMISC::IStream &f);
};
// ***************************************************************************
/**
* This class is a ligo primitives set
*/
class CPrimitives
{
public:
CPrimitives ();
CPrimitives (const CPrimitives &other);
~CPrimitives ();
// Operator copy
CPrimitives& operator= (const CPrimitives &other);
// Convert from old format to the new one
void convert (const CPrimRegion &region);
// Read the primitive
bool read (xmlNodePtr xmlNode, const char *filename, CLigoConfig &config);
// Write the primitive
void write (xmlDocPtr xmlNode, const char *filename) const;
// Write the primitive
void write (xmlNodePtr root, const char *filename) const;
// serial the primitive. Used for binary files.
void serial(NLMISC::IStream &f);
// Root primitive hierarchy
CPrimNode *RootNode;
// get the static alias part for this primitive
uint32 getAliasStaticPart();
// set the static alias part for this primitive
void setAliasStaticPart(uint32 staticPart);
// Build an alias by combining the static and dynamic part
uint32 buildFullAlias(uint32 dynamicPart);
// Generate a new unique alias (dynamic part only)
uint32 genAlias(IPrimitive *prim, uint32 preferedAlias = 0);
// Reserve an alias and store it in the used alias list (dynamic part only)
// void reserveAlias(uint32 dynamicAlias);
// Remove an alias from the list of alias in use (dynamic part only)
void releaseAlias(IPrimitive *prim, uint32 dynamicAlias);
// Force the assignation of the specified alias to the primitive. If another primitive
// already hold the alias, this other primitive is assigned a new alias.
void forceAlias(CPrimAlias *prim, uint32 alias);
// get the last generated alias value (for debug only)
uint32 getLastGeneratedAlias();
// Return the primitive indexed by the given alias (ie, it doesn't return the alias primitive, but its first parent)
IPrimitive *getPrimitiveByAlias(uint32 primAlias);
// Build the complete list of indexed primitive (ie all primitive that have a primalias child)
void buildPrimitiveWithAliasList(std::map<uint32, IPrimitive*> &result);
private:
// Conversion internal methods
void convertAddPrimitive (IPrimitive *child, const IPrimitive *prim, bool hidden);
void convertPrimitive (const IPrimitive *prim, bool hidden);
/// Optional context information
CLigoConfig *_LigoConfig;
/// Static part alias mapping (can be 0 if no mapping is defined)
uint32 _AliasStaticPart;
/// Last generated Alias, used to compute the next alias
uint32 _LastGeneratedAlias;
/// List of alias in use in the primitive (dynamic part only)
std::map<uint32, IPrimitive*> _AliasInUse;
// Store the filename
// This allows to retrieve the static alias when reloading from binary file
std::string _Filename;
};
// ***************************************************************************
/** Singleton to manage special loading feature related to
* unique alias assignment
*/
class CPrimitiveContext
{
static CPrimitiveContext *_Instance;
// private ctor
CPrimitiveContext();
public:
// get the singleton reference
static CPrimitiveContext &instance()
{
if (!_Instance)
{
_Instance = new CPrimitiveContext;
}
return *_Instance;
}
/// The current ligo configuration file.
CLigoConfig *CurrentLigoConfig;
/// The current primitives container.
CPrimitives *CurrentPrimitive;
};
} // namespace NLLIGO
#endif // __PRIMITIVE_H__

View file

@ -0,0 +1,785 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef __PRIMITIVE_H__
#define __PRIMITIVE_H__
#include "nel/misc/vector.h"
#include "nel/misc/rgba.h"
// Forward declarations for libxml2
typedef struct _xmlNode xmlNode;
typedef xmlNode *xmlNodePtr;
typedef struct _xmlDoc xmlDoc;
typedef xmlDoc *xmlDocPtr;
#include <vector>
namespace NLLIGO
{
#ifdef NL_DEBUG
# define NLLIGO_DEBUG
#endif
/**
* Ligo primitives are used to add logical geometrical gameplay information.
* Ligo primitives are NODES, POINTS, PATHES or ZONES.
* Ligo primitives have a CLASS.
*
* The primitive class defines the properties attached to the primitive
* The primitive class are defined in the XML file specified in the LigoClass field of the CLigoConfig class.
*/
class CPrimitives;
class CLigoConfig;
// ***************************************************************************
void Register ();
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
*/
class IProperty : public NLMISC::IStreamable
{
public:
IProperty ()
{
Default = false;
}
// This property is set to default
bool Default;
// Force class to be polymorphic
virtual void foo () const = 0;
};
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
* This is a simple string
*/
class CPropertyString : public IProperty
{
public:
CPropertyString () {}
CPropertyString (const std::string &str);
CPropertyString (const std::string &str, bool _default);
virtual ~CPropertyString () {}
std::string String;
NLMISC_DECLARE_CLASS (CPropertyString)
virtual void serial(NLMISC::IStream &f)
{
f.serial(Default);
f.serial(String);
}
// Force class to be polymorphic
virtual void foo () const {}
};
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
* This is a string array
*/
class CPropertyStringArray : public IProperty
{
public:
CPropertyStringArray () {}
virtual ~CPropertyStringArray () {}
CPropertyStringArray (const std::vector<std::string> &stringArray);
CPropertyStringArray (const std::vector<std::string> &stringArray, bool _default);
std::vector<std::string> StringArray;
NLMISC_DECLARE_CLASS (CPropertyStringArray)
virtual void serial(NLMISC::IStream &f)
{
f.serial(Default);
f.serialCont(StringArray);
}
// Force class to be polymorphic
virtual void foo () const {}
};
// ***************************************************************************
/*
* This class is a property class for ligo primitive.
* This is a string array
*/
class CPropertyColor : public IProperty
{
public:
NLMISC::CRGBA Color;
NLMISC_DECLARE_CLASS (CPropertyColor)
virtual void serial(NLMISC::IStream &f)
{
f.serial(Default);
f.serial(Color);
}
// Force class to be polymorphic
virtual void foo () const {}
// ctors
CPropertyColor() {}
CPropertyColor(NLMISC::CRGBA col) : Color(col) {}
};
// ***************************************************************************
class CPrimVector : public NLMISC::CVector
{
public:
CPrimVector ()
{
Selected = false;
}
CPrimVector (const NLMISC::CVector &v)
{
CVector::operator= (v);
Selected = false;
}
void serial(NLMISC::IStream &f)
{
CVector::serial(f);
f.serial(Selected);
}
bool Selected;
};
// ***************************************************************************
/*
* This class is the base class for ligo primitive.
*
* Provide access to common properties.
* Provide access to the primitive hierachy
*/
class IPrimitive : public NLMISC::IStreamable
{
friend class CPrimitives;
public:
// Deprecated
// std::string Layer;
// Deprecated
// std::string Name;
// Expended in the tree view
// bool Expanded;
enum
{
NotAnArray,
AtTheEnd = 0xffffffff,
};
/// \name Hierarchy
IPrimitive ();
virtual ~IPrimitive ();
IPrimitive (const IPrimitive &node);
virtual void operator= (const IPrimitive &node);
/** Get the children primitive count */
uint getNumChildren () const
{
return (uint)_Children.size ();
}
/** Get a child primitive */
bool getChild (const IPrimitive *&result, uint childId) const;
/** Get a child primitive */
bool getChild (IPrimitive *&result, uint childId);
/** Get the parent primitive */
IPrimitive *getParent ()
{
return _Parent;
}
const IPrimitive *getParent () const
{
return _Parent;
}
/** Get the primitive relative to this and the given path */
const IPrimitive *getPrimitive (const std::string &absoluteOrRelativePath) const;
/** Get the id of the child, return 0xffffffff if not found */
bool getChildId (uint &childId, const IPrimitive *child) const;
/** Remove and delete a child primitive */
bool removeChild (IPrimitive *child);
/** Remove and delete a child primitive */
bool removeChild (uint childId);
/// Remove the child primitive from the children list, don't delete it
bool unlinkChild(IPrimitive *child);
/** Remove and delete all children primitives */
void removeChildren ();
/**
* Insert a child primitive before the index.
* The pointer will be deleted by the parent primitive using the ::delete operator.
* return false if the index is invalid
*/
bool insertChild (IPrimitive *primitive, uint index = AtTheEnd);
/// \name Properties
/**
* Get a num properties
**/
uint getNumProperty () const;
/**
* Get a properties by its index
* This method (iterate a list) is slower than getPropertyByName (look up in a map).
**/
bool getProperty (uint index, std::string &property_name, const IProperty *&result) const;
/**
* Get a properties by its index
* This method (iterate a list) is slower than getPropertyByName (look up in a map).
**/
bool getProperty (uint index, std::string &property_name, IProperty *&result);
/** Check the existence of a named property */
bool checkProperty(const std::string &property_name) const;
/**
* Add a property
* If the property already exist, the method does nothing and returns false.
* The pointer will be deleted by the primitive using the ::delete operator.
**/
bool addPropertyByName (const std::string &property_name, IProperty *result);
/**
* Get a property with its name
**/
bool getPropertyByName (const std::string &property_name, const IProperty *&result) const;
/**
* Get a property with its name
**/
bool getPropertyByName (const std::string &property_name, IProperty *&result) const;
/**
* Get a string property with its name. Return false if the property is not found or is not a string property.
**/
bool getPropertyByName (const std::string &property_name, std::string *&result) const;
/**
* Get a string array property with its name. Return false if the property is not found or is not a string array property.
**/
bool getPropertyByName (const std::string &property_name, std::vector<std::string> *&result) const;
/**
* Get a string property with its name. Return false if the property is not found or is not a string property.
**/
bool getPropertyByName (const std::string &property_name, std::string &result) const;
/**
* Get a string array property with its name. Return false if the property is not found or is not a string array property.
**/
bool getPropertyByName (const std::string &property_name, const std::vector<std::string> *&result) const;
/**
* Get a color property with its name. Return false if the property is not found or is not a string array property.
**/
bool getPropertyByName (const std::string &property_name, NLMISC::CRGBA &result) const;
/**
* Remove a property
* This is method (iterate a list) is slower than removePropertyByName (look up in a map).
**/
bool removeProperty (uint index);
/**
* Remove a property by its name
**/
bool removePropertyByName (const std::string &property_name);
/**
* Remove all the properties
**/
void removeProperties ();
/* Init default primitive's parameters
*
* This method will add all the properties declared in the primitive class and create default properties.
*/
void initDefaultValues (CLigoConfig &config);
// Read the primitive, calls initDefaultValue (CLigoConfig &config)
virtual bool read (xmlNodePtr xmlNode, const std::string &property_name, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const std::string &property_name) const;
// Get the vertices
virtual uint getNumVector () const = 0;
virtual const CPrimVector *getPrimVector () const = 0;
virtual CPrimVector *getPrimVector () = 0;
// Make a copy
virtual IPrimitive *copy () const = 0;
// used for fast binary save/load (exploitation mode)
void serial(NLMISC::IStream &f);
// shortcut to getPropertyByName("name", ret); return ret;
std::string getName() const;
const std::string &getUnparsedProperties() const;
void setUnparsedProperties(const std::string &unparsedProperties) const;
private:
// callback called just after the node is attach under a parent
virtual void onLinkToParent() {}
// callback called just before the node is removed from it's parent
virtual void onUnlinkFromParent() {}
/// Callback called just after an ancestor is linked
virtual void onBranchLink() {}
/// Callback called just before an ancestor is unlinked
virtual void onBranchUnlink() {}
/// Callback called when the primitive is updated, giving a chance to track the primitive's modifications during the loading
virtual void onModifyPrimitive(CPrimitives &/* primitives */) const {}
// internal recusive call
void branchLink();
void branchUnlink();
// Update child Id
void updateChildId (uint index);
// Child id
uint32 _ChildId;
// Parent
IPrimitive *_Parent;
// Children
std::vector<IPrimitive*> _Children;
// Single properties
std::map<std::string, IProperty*> _Properties;
// Editor specific properties (unparsed)
mutable std::string _UnparsedProperties;
#ifdef NLLIGO_DEBUG
std::string _DebugClassName;
std::string _DebugPrimitiveName;
#endif
};
// ***************************************************************************
// Simple primitive node
class CPrimNode : public IPrimitive
{
public:
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimNode)
protected:
// void operator= (const CPrimNode &node);
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
class CPrimPoint : public IPrimitive
{
public:
CPrimPoint ()
{
Angle = 0;
}
CPrimVector Point;
float Angle; // Angle on OZ, CCW
public:
void serial (NLMISC::IStream &f);
// void operator= (const CPrimPoint &node);
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimPoint);
protected:
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const std::string &filename) const;
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
class CPrimPath : public IPrimitive
{
public:
std::vector<CPrimVector> VPoints;
public:
void serial (NLMISC::IStream &f);
// void operator= (const CPrimPath &node);
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimPath);
protected:
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const std::string &filename) const;
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
class CPrimZone : public IPrimitive
{
public:
std::vector<CPrimVector> VPoints;
static float getSegmentDist(const NLMISC::CVector v, const NLMISC::CVector &p1, const NLMISC::CVector &p2, NLMISC::CVector &nearPos);
public:
bool contains (const NLMISC::CVector &v) const { return CPrimZone::contains(v, VPoints); }
bool contains(const NLMISC::CVector &v, float &distance, NLMISC::CVector &nearPos, bool isPath) const { return CPrimZone::contains(v, VPoints, distance, nearPos, isPath); }
// void operator= (const CPrimZone &node);
void serial (NLMISC::IStream &f);
// Returns true if the vector v is inside of the patatoid
static bool contains (const NLMISC::CVector &v, const std::vector<NLMISC::CVector> &points);
// Returns true if the vector v is inside of the patatoid and set the distance of the nearest segment and the position of the nearest point.
static bool contains (const NLMISC::CVector &v, const std::vector<NLMISC::CVector> &points, float &distance, NLMISC::CVector &nearPos, bool isPath);
// Returns true if the vector v is inside of the patatoid
static bool contains (const NLMISC::CVector &v, const std::vector<CPrimVector> &points);
// Returns true if the vector v is inside of the patatoid and set the distance of the nearest segment and the position of the nearest point.
static bool contains (const NLMISC::CVector &v, const std::vector<CPrimVector> &points, float &distance, NLMISC::CVector &nearPos, bool isPath);
/// Returns the barycenter of the zone (warning, it may be outside of the zone if it is not convex). Returns CVector::Null if there is no vertex.
NLMISC::CVector getBarycentre() const;
/// Returns the smallest axis-aligned box containing the zone (z is always set to 0)
void getAABox( NLMISC::CVector& cornerMin, NLMISC::CVector& cornerMax ) const;
/// Return the area of the axis-aligned box containing the zone
float getAreaOfAABox() const;
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimZone);
protected:
// Get the vertices
virtual uint getNumVector () const;
virtual const CPrimVector *getPrimVector () const;
virtual CPrimVector *getPrimVector ();
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const std::string &filename) const;
// \name From IPrimitive
virtual IPrimitive *copy () const;
};
// ***************************************************************************
/** This primitive type is used to handle unique alias across a primitive file.
* Usage of this primitive imply the setting of the appropriate 'ligo context'
* before reading or copy/pasting alias.
*/
class CPrimAlias : public IPrimitive
{
friend class CPrimitives;
/// The 'dynamic' part of the alias
uint32 _Alias;
/// The primitive container
class CPrimitives *_Container;
// Needed overloads (not used)
virtual uint getNumVector () const
{
return 0;
};
virtual const CPrimVector *getPrimVector () const
{
return NULL;
}
virtual CPrimVector *getPrimVector ()
{
return NULL;
}
virtual void onBranchLink();
// callback called just before the node is removed from it's parent
virtual void onBranchUnlink();
void regenAlias();
public:
// \name From IClassable
NLMISC_DECLARE_CLASS (CPrimAlias);
// private default constructor
CPrimAlias();
// copy constructor needed
CPrimAlias(const CPrimAlias &other);
~CPrimAlias();
// return the dynamic part of the alias
uint32 getAlias() const;
// Return the full alias, merge of the static and dynamic part
uint32 getFullAlias() const;
// Read the primitive
virtual bool read (xmlNodePtr xmlNode, const std::string &filename, uint version, CLigoConfig &config);
// Write the primitive
virtual void write (xmlNodePtr xmlNode, const std::string &filename) const;
// Create a copy of this primitive
virtual IPrimitive *copy () const;
// serial for binary save
virtual void serial (NLMISC::IStream &f);
};
// ***************************************************************************
/*
This class is deprecated.
*/
class CPrimRegion
{
public:
std::string Name;
std::vector<CPrimPoint> VPoints;
std::vector<CPrimZone> VZones;
std::vector<CPrimPath> VPaths;
std::vector<bool> VHidePoints;
std::vector<bool> VHideZones;
std::vector<bool> VHidePaths;
public:
void serial (NLMISC::IStream &f);
};
// ***************************************************************************
/**
* This class is a ligo primitives set
*/
class CPrimitives
{
public:
CPrimitives ();
CPrimitives (const CPrimitives &other);
~CPrimitives ();
// Operator copy
CPrimitives& operator= (const CPrimitives &other);
// Convert from old format to the new one
void convert (const CPrimRegion &region);
// Read the primitive
bool read (xmlNodePtr xmlNode, const std::string &filename, CLigoConfig &config);
// Write the primitive
void write (xmlDocPtr xmlNode, const std::string &filename) const;
// Write the primitive
void write (xmlNodePtr root, const std::string &filename) const;
// serial the primitive. Used for binary files.
void serial(NLMISC::IStream &f);
// Root primitive hierarchy
CPrimNode *RootNode;
// get the static alias part for this primitive
uint32 getAliasStaticPart();
// set the static alias part for this primitive
void setAliasStaticPart(uint32 staticPart);
// Build an alias by combining the static and dynamic part
uint32 buildFullAlias(uint32 dynamicPart);
// Generate a new unique alias (dynamic part only)
uint32 genAlias(IPrimitive *prim, uint32 preferedAlias = 0);
// Reserve an alias and store it in the used alias list (dynamic part only)
// void reserveAlias(uint32 dynamicAlias);
// Remove an alias from the list of alias in use (dynamic part only)
void releaseAlias(IPrimitive *prim, uint32 dynamicAlias);
// Force the assignation of the specified alias to the primitive. If another primitive
// already hold the alias, this other primitive is assigned a new alias.
void forceAlias(CPrimAlias *prim, uint32 alias);
// get the last generated alias value (for debug only)
uint32 getLastGeneratedAlias();
// Return the primitive indexed by the given alias (ie, it doesn't return the alias primitive, but its first parent)
IPrimitive *getPrimitiveByAlias(uint32 primAlias);
// Build the complete list of indexed primitive (ie all primitive that have a primalias child)
void buildPrimitiveWithAliasList(std::map<uint32, IPrimitive*> &result);
private:
// Conversion internal methods
void convertAddPrimitive (IPrimitive *child, const IPrimitive *prim, bool hidden);
void convertPrimitive (const IPrimitive *prim, bool hidden);
/// Optional context information
CLigoConfig *_LigoConfig;
/// Static part alias mapping (can be 0 if no mapping is defined)
uint32 _AliasStaticPart;
/// Last generated Alias, used to compute the next alias
uint32 _LastGeneratedAlias;
/// List of alias in use in the primitive (dynamic part only)
std::map<uint32, IPrimitive*> _AliasInUse;
// Store the filename
// This allows to retrieve the static alias when reloading from binary file
std::string _Filename;
};
// ***************************************************************************
/** Singleton to manage special loading feature related to
* unique alias assignment
*/
class CPrimitiveContext
{
static CPrimitiveContext *_Instance;
// private ctor
CPrimitiveContext();
public:
// get the singleton reference
static CPrimitiveContext &instance()
{
if (!_Instance)
{
_Instance = new CPrimitiveContext;
}
return *_Instance;
}
/// The current ligo configuration file.
CLigoConfig *CurrentLigoConfig;
/// The current primitives container.
CPrimitives *CurrentPrimitive;
};
} // namespace NLLIGO
#endif // __PRIMITIVE_H__

View file

@ -108,6 +108,7 @@ namespace NLMISC
{ {
public: public:
CApplicationContext(); CApplicationContext();
virtual ~CApplicationContext();
virtual void *getSingletonPointer(const std::string &singletonName); virtual void *getSingletonPointer(const std::string &singletonName);
virtual void setSingletonPointer(const std::string &singletonName, void *ptr); virtual void setSingletonPointer(const std::string &singletonName, void *ptr);

View file

@ -112,7 +112,8 @@ public:
// A BNP structure // A BNP structure
struct BNP struct BNP
{ {
BNP() : FileNames(NULL), ThreadFileId(0), CacheFileOnOpen(false), AlwaysOpened(false), InternalUse(false), OffsetFromBeginning(0) { } BNP();
~BNP();
// FileName of the BNP. important to open it in getFile() (for other threads or if not always opened). // FileName of the BNP. important to open it in getFile() (for other threads or if not always opened).
std::string BigFileName; std::string BigFileName;
@ -163,6 +164,7 @@ private:
{ {
public: public:
CThreadFileArray(); CThreadFileArray();
~CThreadFileArray();
// Allocate a FileId for a BNP. // Allocate a FileId for a BNP.
uint32 allocate(); uint32 allocate();

View file

@ -636,11 +636,17 @@ public:
/** Get the pixel at the given coorrdinate. /** Get the pixel at the given coordinate.
* Works in RGBA and DXTC modes. * Works in RGBA and DXTC modes.
* Outside of the bitmap it returns Black (or if mipmap is not found) * Outside of the bitmap it returns Black (or if mipmap is not found)
*/ */
CRGBA getPixelColor(sint x, sint y, uint32 numMipMap = 0) const; CRGBA getPixelColor(sint x, sint y, uint32 numMipMap = 0) const;
/** Set the pixel at the given coordinate.
* Works in RGBA mode only.
*/
void setPixelColor(sint x, sint y, CRGBA c, uint32 numMipMap = 0);
/** /**
* Horizontal flip (all the columns are flipped) * Horizontal flip (all the columns are flipped)
* Works only with RGBA, and DXTC formats (only if w/h is a power of 2) * Works only with RGBA, and DXTC formats (only if w/h is a power of 2)

View file

@ -132,7 +132,7 @@ public:
} }
/// delete an element allocated with this manager. dtor is called. NULL is tested. /// delete an element allocated with this manager. dtor is called. NULL is tested.
void free(T* ptr) void freeBlock(T* ptr)
{ {
if(!ptr) if(!ptr)
return; return;

View file

@ -40,20 +40,20 @@ public:
/// Return the value of the property. /// Return the value of the property.
inline sint64 getValue64() { return _Property; } inline sint64 getValue64() const { return _Property; }
/// Set the value of the property (set '_Changed' flag with 'true'). /// Set the value of the property (set '_Changed' flag with 'true').
void setValue64 (sint64 prop); void setValue64 (sint64 prop);
inline sint32 getValue32() { return *((sint32*)&_Property); } inline sint32 getValue32() const { return (sint32)(_Property & 0xffffffff); }
void setValue32 (sint32 prop); void setValue32 (sint32 prop);
inline sint16 getValue16() { return *((sint16*)&_Property); } inline sint16 getValue16() const { return (sint16)(_Property & 0xffff); }
void setValue16 (sint16 prop); void setValue16 (sint16 prop);
inline sint8 getValue8() { return *((sint8*)&_Property); } inline sint8 getValue8() const { return (sint8)(_Property & 0xff); }
void setValue8 (sint8 prop); void setValue8 (sint8 prop);
inline bool getValueBool() { return (_Property!=(sint64)0 ); } inline bool getValueBool() const { return (_Property!=(sint64)0 ); }
void setValueBool (bool prop); void setValueBool (bool prop);
inline CRGBA getValueRGBA() inline CRGBA getValueRGBA() const
{ {
CRGBA col; CRGBA col;
col.R = (uint8)(_Property&0xff); col.R = (uint8)(_Property&0xff);
@ -65,11 +65,11 @@ public:
void setValueRGBA (const CRGBA &color); void setValueRGBA (const CRGBA &color);
/// Return the value of the property before the database change /// Return the value of the property before the database change
inline sint64 getOldValue64() { return _oldProperty; } inline sint64 getOldValue64() const { return _oldProperty; }
inline sint32 getOldValue32() { return *((sint32*)&_oldProperty); } inline sint32 getOldValue32() const { return (sint32)(_oldProperty & 0xffffffff); }
inline sint16 getOldValue16() { return *((sint16*)&_oldProperty); } inline sint16 getOldValue16() const { return (sint16)(_oldProperty & 0xffff); }
inline sint8 getOldValue8() { return *((sint8*)&_oldProperty); } inline sint8 getOldValue8() const { return (sint8)(_oldProperty & 0xff); }
inline bool getOldValueBool() { return (_oldProperty!=(sint64)0 ); } inline bool getOldValueBool() const { return (_oldProperty!=(sint64)0 ); }
/// Return the type of the property. /// Return the type of the property.

View file

@ -201,7 +201,9 @@ namespace NLMISC
*/ */
void sleep(uint milliseconds); void sleep(uint milliseconds);
/** Release internal instance.
*/
static void releaseInstance();
}; };

Some files were not shown because too many files have changed in this diff Show more