#pragma once #include #include #include #include #include namespace ksys::phys { struct ClothSubWindParam : agl::utl::ParameterObj { ClothSubWindParam(); agl::utl::Parameter sub_wind_direction; agl::utl::Parameter sub_wind_frequency; agl::utl::Parameter sub_wind_speed; }; struct ClothParam : agl::utl::ParameterObj { ClothParam(); agl::utl::Parameter wind_drag; agl::utl::Parameter wind_frequency; agl::utl::Parameter wind_min_speed; agl::utl::Parameter wind_max_speed; agl::utl::Parameter sub_wind_factor_main; agl::utl::Parameter sub_wind_factor_add; agl::utl::Parameter wind_enable; agl::utl::Parameter writeback_to_local; agl::utl::Parameter name; agl::utl::Parameter base_bone; }; struct ClothSetParam : agl::utl::ParameterList { ClothSetParam(); ~ClothSetParam() override; ClothSetParam(const ClothSetParam&) = delete; auto operator=(const ClothSetParam&) = delete; bool parse(const agl::utl::ResParameterList& res_list, sead::Heap* heap); const ClothParam* getCloth(const sead::SafeString& name) const; agl::utl::ParameterObj cloth_header_obj; agl::utl::Parameter cloth_setup_file_path; agl::utl::Parameter cloth_num; sead::FixedSafeString<64> cloth_setup_file_name; ClothSubWindParam sub_wind; sead::Buffer cloths; }; } // namespace ksys::phys