Use range iterators for RBSet in most cases
This commit is contained in:
parent
71c40ff4da
commit
900c676b02
|
@ -360,8 +360,8 @@ void ProjectSettings::_get_property_list(List<PropertyInfo> *p_list) const {
|
||||||
vclist.insert(vc);
|
vclist.insert(vc);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<_VCSort>::Element *E = vclist.front(); E; E = E->next()) {
|
for (const _VCSort &E : vclist) {
|
||||||
String prop_info_name = E->get().name;
|
String prop_info_name = E.name;
|
||||||
int dot = prop_info_name.find(".");
|
int dot = prop_info_name.find(".");
|
||||||
if (dot != -1 && !custom_prop_info.has(prop_info_name)) {
|
if (dot != -1 && !custom_prop_info.has(prop_info_name)) {
|
||||||
prop_info_name = prop_info_name.substr(0, dot);
|
prop_info_name = prop_info_name.substr(0, dot);
|
||||||
|
@ -369,11 +369,11 @@ void ProjectSettings::_get_property_list(List<PropertyInfo> *p_list) const {
|
||||||
|
|
||||||
if (custom_prop_info.has(prop_info_name)) {
|
if (custom_prop_info.has(prop_info_name)) {
|
||||||
PropertyInfo pi = custom_prop_info[prop_info_name];
|
PropertyInfo pi = custom_prop_info[prop_info_name];
|
||||||
pi.name = E->get().name;
|
pi.name = E.name;
|
||||||
pi.usage = E->get().flags;
|
pi.usage = E.flags;
|
||||||
p_list->push_back(pi);
|
p_list->push_back(pi);
|
||||||
} else {
|
} else {
|
||||||
p_list->push_back(PropertyInfo(E->get().type, E->get().name, PROPERTY_HINT_NONE, "", E->get().flags));
|
p_list->push_back(PropertyInfo(E.type, E.name, PROPERTY_HINT_NONE, "", E.flags));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -959,9 +959,9 @@ Error ProjectSettings::save_custom(const String &p_path, const CustomMap &p_cust
|
||||||
|
|
||||||
RBMap<String, List<String>> props;
|
RBMap<String, List<String>> props;
|
||||||
|
|
||||||
for (RBSet<_VCSort>::Element *E = vclist.front(); E; E = E->next()) {
|
for (const _VCSort &E : vclist) {
|
||||||
String category = E->get().name;
|
String category = E.name;
|
||||||
String name = E->get().name;
|
String name = E.name;
|
||||||
|
|
||||||
int div = category.find("/");
|
int div = category.find("/");
|
||||||
|
|
||||||
|
|
|
@ -406,8 +406,8 @@ Error DirAccessPack::list_dir_begin() {
|
||||||
list_dirs.push_back(E.key);
|
list_dirs.push_back(E.key);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<String>::Element *E = current->files.front(); E; E = E->next()) {
|
for (const String &E : current->files) {
|
||||||
list_files.push_back(E->get());
|
list_files.push_back(E);
|
||||||
}
|
}
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
|
|
|
@ -317,8 +317,8 @@ void Resource::unregister_owner(Object *p_owner) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Resource::notify_change_to_owners() {
|
void Resource::notify_change_to_owners() {
|
||||||
for (RBSet<ObjectID>::Element *E = owners.front(); E; E = E->next()) {
|
for (const ObjectID &E : owners) {
|
||||||
Object *obj = ObjectDB::get_instance(E->get());
|
Object *obj = ObjectDB::get_instance(E);
|
||||||
ERR_CONTINUE_MSG(!obj, "Object was deleted, while still owning a resource."); //wtf
|
ERR_CONTINUE_MSG(!obj, "Object was deleted, while still owning a resource."); //wtf
|
||||||
//TODO store string
|
//TODO store string
|
||||||
obj->call("resource_changed", Ref<Resource>(this));
|
obj->call("resource_changed", Ref<Resource>(this));
|
||||||
|
|
|
@ -391,8 +391,8 @@ float ResourceLoader::_dependency_get_progress(const String &p_path) {
|
||||||
int dep_count = load_task.sub_tasks.size();
|
int dep_count = load_task.sub_tasks.size();
|
||||||
if (dep_count > 0) {
|
if (dep_count > 0) {
|
||||||
float dep_progress = 0;
|
float dep_progress = 0;
|
||||||
for (RBSet<String>::Element *E = load_task.sub_tasks.front(); E; E = E->next()) {
|
for (const String &E : load_task.sub_tasks) {
|
||||||
dep_progress += _dependency_get_progress(E->get());
|
dep_progress += _dependency_get_progress(E);
|
||||||
}
|
}
|
||||||
dep_progress /= float(dep_count);
|
dep_progress /= float(dep_count);
|
||||||
dep_progress *= 0.5;
|
dep_progress *= 0.5;
|
||||||
|
|
|
@ -293,10 +293,10 @@ Vector3 AStar3D::get_closest_position_in_segment(const Vector3 &p_point) const {
|
||||||
real_t closest_dist = 1e20;
|
real_t closest_dist = 1e20;
|
||||||
Vector3 closest_point;
|
Vector3 closest_point;
|
||||||
|
|
||||||
for (const RBSet<Segment>::Element *E = segments.front(); E; E = E->next()) {
|
for (const Segment &E : segments) {
|
||||||
Point *from_point = nullptr, *to_point = nullptr;
|
Point *from_point = nullptr, *to_point = nullptr;
|
||||||
points.lookup(E->get().u, from_point);
|
points.lookup(E.u, from_point);
|
||||||
points.lookup(E->get().v, to_point);
|
points.lookup(E.v, to_point);
|
||||||
|
|
||||||
if (!(from_point->enabled && to_point->enabled)) {
|
if (!(from_point->enabled && to_point->enabled)) {
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -494,8 +494,8 @@ Vector<int> MultiplayerAPI::get_peer_ids() const {
|
||||||
ERR_FAIL_COND_V_MSG(!multiplayer_peer.is_valid(), Vector<int>(), "No multiplayer peer is assigned. Assume no peers are connected.");
|
ERR_FAIL_COND_V_MSG(!multiplayer_peer.is_valid(), Vector<int>(), "No multiplayer peer is assigned. Assume no peers are connected.");
|
||||||
|
|
||||||
Vector<int> ret;
|
Vector<int> ret;
|
||||||
for (RBSet<int>::Element *E = connected_peers.front(); E; E = E->next()) {
|
for (const int &E : connected_peers) {
|
||||||
ret.push_back(E->get());
|
ret.push_back(E);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -507,8 +507,8 @@ String TranslationServer::get_locale() const {
|
||||||
|
|
||||||
Array TranslationServer::get_loaded_locales() const {
|
Array TranslationServer::get_loaded_locales() const {
|
||||||
Array locales;
|
Array locales;
|
||||||
for (const RBSet<Ref<Translation>>::Element *E = translations.front(); E; E = E->next()) {
|
for (const Ref<Translation> &E : translations) {
|
||||||
const Ref<Translation> &t = E->get();
|
const Ref<Translation> &t = E;
|
||||||
ERR_FAIL_COND_V(t.is_null(), Array());
|
ERR_FAIL_COND_V(t.is_null(), Array());
|
||||||
String l = t->get_locale();
|
String l = t->get_locale();
|
||||||
|
|
||||||
|
@ -530,8 +530,8 @@ Ref<Translation> TranslationServer::get_translation_object(const String &p_local
|
||||||
Ref<Translation> res;
|
Ref<Translation> res;
|
||||||
int best_score = 0;
|
int best_score = 0;
|
||||||
|
|
||||||
for (const RBSet<Ref<Translation>>::Element *E = translations.front(); E; E = E->next()) {
|
for (const Ref<Translation> &E : translations) {
|
||||||
const Ref<Translation> &t = E->get();
|
const Ref<Translation> &t = E;
|
||||||
ERR_FAIL_COND_V(t.is_null(), nullptr);
|
ERR_FAIL_COND_V(t.is_null(), nullptr);
|
||||||
String l = t->get_locale();
|
String l = t->get_locale();
|
||||||
|
|
||||||
|
@ -599,8 +599,8 @@ StringName TranslationServer::_get_message_from_translations(const StringName &p
|
||||||
StringName res;
|
StringName res;
|
||||||
int best_score = 0;
|
int best_score = 0;
|
||||||
|
|
||||||
for (const RBSet<Ref<Translation>>::Element *E = translations.front(); E; E = E->next()) {
|
for (const Ref<Translation> &E : translations) {
|
||||||
const Ref<Translation> &t = E->get();
|
const Ref<Translation> &t = E;
|
||||||
ERR_FAIL_COND_V(t.is_null(), p_message);
|
ERR_FAIL_COND_V(t.is_null(), p_message);
|
||||||
String l = t->get_locale();
|
String l = t->get_locale();
|
||||||
|
|
||||||
|
|
|
@ -2091,8 +2091,8 @@ void MaterialStorage::global_variable_set(const StringName &p_name, const Varian
|
||||||
} else {
|
} else {
|
||||||
//texture
|
//texture
|
||||||
MaterialStorage *material_storage = MaterialStorage::get_singleton();
|
MaterialStorage *material_storage = MaterialStorage::get_singleton();
|
||||||
for (RBSet<RID>::Element *E = gv.texture_materials.front(); E; E = E->next()) {
|
for (const RID &E : gv.texture_materials) {
|
||||||
Material *material = material_storage->get_material(E->get());
|
Material *material = material_storage->get_material(E);
|
||||||
ERR_CONTINUE(!material);
|
ERR_CONTINUE(!material);
|
||||||
material_storage->_material_queue_update(material, false, true);
|
material_storage->_material_queue_update(material, false, true);
|
||||||
}
|
}
|
||||||
|
@ -2123,8 +2123,8 @@ void MaterialStorage::global_variable_set_override(const StringName &p_name, con
|
||||||
} else {
|
} else {
|
||||||
//texture
|
//texture
|
||||||
MaterialStorage *material_storage = MaterialStorage::get_singleton();
|
MaterialStorage *material_storage = MaterialStorage::get_singleton();
|
||||||
for (RBSet<RID>::Element *E = gv.texture_materials.front(); E; E = E->next()) {
|
for (const RID &E : gv.texture_materials) {
|
||||||
Material *material = material_storage->get_material(E->get());
|
Material *material = material_storage->get_material(E);
|
||||||
ERR_CONTINUE(!material);
|
ERR_CONTINUE(!material);
|
||||||
material_storage->_material_queue_update(material, false, true);
|
material_storage->_material_queue_update(material, false, true);
|
||||||
}
|
}
|
||||||
|
@ -2421,8 +2421,8 @@ void MaterialStorage::shader_set_code(RID p_shader, const String &p_code) {
|
||||||
shader->data = nullptr;
|
shader->data = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Material *>::Element *E = shader->owners.front(); E; E = E->next()) {
|
for (Material *E : shader->owners) {
|
||||||
Material *material = E->get();
|
Material *material = E;
|
||||||
material->shader_mode = new_mode;
|
material->shader_mode = new_mode;
|
||||||
if (material->data) {
|
if (material->data) {
|
||||||
memdelete(material->data);
|
memdelete(material->data);
|
||||||
|
@ -2438,8 +2438,8 @@ void MaterialStorage::shader_set_code(RID p_shader, const String &p_code) {
|
||||||
shader->mode = RS::SHADER_MAX; //invalid
|
shader->mode = RS::SHADER_MAX; //invalid
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Material *>::Element *E = shader->owners.front(); E; E = E->next()) {
|
for (Material *E : shader->owners) {
|
||||||
Material *material = E->get();
|
Material *material = E;
|
||||||
if (shader->data) {
|
if (shader->data) {
|
||||||
material->data = material_data_request_func[new_mode](shader->data);
|
material->data = material_data_request_func[new_mode](shader->data);
|
||||||
material->data->self = material->self;
|
material->data->self = material->self;
|
||||||
|
@ -2462,8 +2462,8 @@ void MaterialStorage::shader_set_code(RID p_shader, const String &p_code) {
|
||||||
shader->data->set_code(p_code);
|
shader->data->set_code(p_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Material *>::Element *E = shader->owners.front(); E; E = E->next()) {
|
for (Material *E : shader->owners) {
|
||||||
Material *material = E->get();
|
Material *material = E;
|
||||||
material->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MATERIAL);
|
material->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MATERIAL);
|
||||||
_material_queue_update(material, true, true);
|
_material_queue_update(material, true, true);
|
||||||
}
|
}
|
||||||
|
@ -2504,8 +2504,8 @@ void MaterialStorage::shader_set_default_texture_param(RID p_shader, const Strin
|
||||||
if (shader->data) {
|
if (shader->data) {
|
||||||
shader->data->set_default_texture_param(p_name, p_texture, p_index);
|
shader->data->set_default_texture_param(p_name, p_texture, p_index);
|
||||||
}
|
}
|
||||||
for (RBSet<Material *>::Element *E = shader->owners.front(); E; E = E->next()) {
|
for (Material *E : shader->owners) {
|
||||||
Material *material = E->get();
|
Material *material = E;
|
||||||
_material_queue_update(material, false, true);
|
_material_queue_update(material, false, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,8 +68,8 @@ void MeshStorage::mesh_free(RID p_rid) {
|
||||||
ERR_PRINT("deleting mesh with active instances");
|
ERR_PRINT("deleting mesh with active instances");
|
||||||
}
|
}
|
||||||
if (mesh->shadow_owners.size()) {
|
if (mesh->shadow_owners.size()) {
|
||||||
for (RBSet<Mesh *>::Element *E = mesh->shadow_owners.front(); E; E = E->next()) {
|
for (Mesh *E : mesh->shadow_owners) {
|
||||||
Mesh *shadow_owner = E->get();
|
Mesh *shadow_owner = E;
|
||||||
shadow_owner->shadow_mesh = RID();
|
shadow_owner->shadow_mesh = RID();
|
||||||
shadow_owner->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
shadow_owner->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
||||||
}
|
}
|
||||||
|
@ -268,8 +268,8 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface)
|
||||||
|
|
||||||
mesh->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
mesh->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
||||||
|
|
||||||
for (RBSet<Mesh *>::Element *E = mesh->shadow_owners.front(); E; E = E->next()) {
|
for (Mesh *E : mesh->shadow_owners) {
|
||||||
Mesh *shadow_owner = E->get();
|
Mesh *shadow_owner = E;
|
||||||
shadow_owner->shadow_mesh = RID();
|
shadow_owner->shadow_mesh = RID();
|
||||||
shadow_owner->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
shadow_owner->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
||||||
}
|
}
|
||||||
|
@ -610,8 +610,8 @@ void MeshStorage::mesh_clear(RID p_mesh) {
|
||||||
mesh->has_bone_weights = false;
|
mesh->has_bone_weights = false;
|
||||||
mesh->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
mesh->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
||||||
|
|
||||||
for (RBSet<Mesh *>::Element *E = mesh->shadow_owners.front(); E; E = E->next()) {
|
for (Mesh *E : mesh->shadow_owners) {
|
||||||
Mesh *shadow_owner = E->get();
|
Mesh *shadow_owner = E;
|
||||||
shadow_owner->shadow_mesh = RID();
|
shadow_owner->shadow_mesh = RID();
|
||||||
shadow_owner->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
shadow_owner->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
||||||
}
|
}
|
||||||
|
|
|
@ -159,8 +159,8 @@ void RenderingDeviceVulkan::_free_dependencies(RID p_id) {
|
||||||
E = reverse_dependency_map.find(p_id);
|
E = reverse_dependency_map.find(p_id);
|
||||||
|
|
||||||
if (E) {
|
if (E) {
|
||||||
for (RBSet<RID>::Element *F = E->value.front(); F; F = F->next()) {
|
for (const RID &F : E->value) {
|
||||||
HashMap<RID, RBSet<RID>>::Iterator G = dependency_map.find(F->get());
|
HashMap<RID, RBSet<RID>>::Iterator G = dependency_map.find(F);
|
||||||
ERR_CONTINUE(!G);
|
ERR_CONTINUE(!G);
|
||||||
ERR_CONTINUE(!G->value.has(p_id));
|
ERR_CONTINUE(!G->value.has(p_id));
|
||||||
G->value.erase(p_id);
|
G->value.erase(p_id);
|
||||||
|
@ -5473,9 +5473,9 @@ RenderingDeviceVulkan::DescriptorPool *RenderingDeviceVulkan::_descriptor_pool_a
|
||||||
|
|
||||||
DescriptorPool *pool = nullptr;
|
DescriptorPool *pool = nullptr;
|
||||||
|
|
||||||
for (RBSet<DescriptorPool *>::Element *E = descriptor_pools[p_key].front(); E; E = E->next()) {
|
for (DescriptorPool *E : descriptor_pools[p_key]) {
|
||||||
if (E->get()->usage < max_descriptors_per_pool) {
|
if (E->usage < max_descriptors_per_pool) {
|
||||||
pool = E->get();
|
pool = E;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8349,31 +8349,31 @@ void RenderingDeviceVulkan::compute_list_end(uint32_t p_post_barrier) {
|
||||||
|
|
||||||
uint32_t barrier_idx = 0;
|
uint32_t barrier_idx = 0;
|
||||||
|
|
||||||
for (RBSet<Texture *>::Element *E = compute_list->state.textures_to_sampled_layout.front(); E; E = E->next()) {
|
for (Texture *E : compute_list->state.textures_to_sampled_layout) {
|
||||||
VkImageMemoryBarrier &image_memory_barrier = image_barriers[barrier_idx++];
|
VkImageMemoryBarrier &image_memory_barrier = image_barriers[barrier_idx++];
|
||||||
image_memory_barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
|
image_memory_barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
|
||||||
image_memory_barrier.pNext = nullptr;
|
image_memory_barrier.pNext = nullptr;
|
||||||
image_memory_barrier.srcAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT;
|
image_memory_barrier.srcAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT;
|
||||||
image_memory_barrier.dstAccessMask = access_flags;
|
image_memory_barrier.dstAccessMask = access_flags;
|
||||||
image_memory_barrier.oldLayout = E->get()->layout;
|
image_memory_barrier.oldLayout = E->layout;
|
||||||
image_memory_barrier.newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
image_memory_barrier.newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
||||||
|
|
||||||
image_memory_barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
|
image_memory_barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
|
||||||
image_memory_barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
|
image_memory_barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
|
||||||
image_memory_barrier.image = E->get()->image;
|
image_memory_barrier.image = E->image;
|
||||||
image_memory_barrier.subresourceRange.aspectMask = E->get()->read_aspect_mask;
|
image_memory_barrier.subresourceRange.aspectMask = E->read_aspect_mask;
|
||||||
image_memory_barrier.subresourceRange.baseMipLevel = E->get()->base_mipmap;
|
image_memory_barrier.subresourceRange.baseMipLevel = E->base_mipmap;
|
||||||
image_memory_barrier.subresourceRange.levelCount = E->get()->mipmaps;
|
image_memory_barrier.subresourceRange.levelCount = E->mipmaps;
|
||||||
image_memory_barrier.subresourceRange.baseArrayLayer = E->get()->base_layer;
|
image_memory_barrier.subresourceRange.baseArrayLayer = E->base_layer;
|
||||||
image_memory_barrier.subresourceRange.layerCount = E->get()->layers;
|
image_memory_barrier.subresourceRange.layerCount = E->layers;
|
||||||
|
|
||||||
E->get()->layout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
E->layout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
||||||
|
|
||||||
if (E->get()->used_in_frame != frames_drawn) {
|
if (E->used_in_frame != frames_drawn) {
|
||||||
E->get()->used_in_transfer = false;
|
E->used_in_transfer = false;
|
||||||
E->get()->used_in_raster = false;
|
E->used_in_raster = false;
|
||||||
E->get()->used_in_compute = false;
|
E->used_in_compute = false;
|
||||||
E->get()->used_in_frame = frames_drawn;
|
E->used_in_frame = frames_drawn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -747,8 +747,8 @@ void AnimationBezierTrackEdit::_update_locked_tracks_after(int p_track) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector<int> updated_locked_tracks;
|
Vector<int> updated_locked_tracks;
|
||||||
for (RBSet<int>::Element *E = locked_tracks.front(); E; E = E->next()) {
|
for (const int &E : locked_tracks) {
|
||||||
updated_locked_tracks.push_back(E->get());
|
updated_locked_tracks.push_back(E);
|
||||||
}
|
}
|
||||||
locked_tracks.clear();
|
locked_tracks.clear();
|
||||||
for (int i = 0; i < updated_locked_tracks.size(); ++i) {
|
for (int i = 0; i < updated_locked_tracks.size(); ++i) {
|
||||||
|
@ -766,8 +766,8 @@ void AnimationBezierTrackEdit::_update_hidden_tracks_after(int p_track) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector<int> updated_hidden_tracks;
|
Vector<int> updated_hidden_tracks;
|
||||||
for (RBSet<int>::Element *E = hidden_tracks.front(); E; E = E->next()) {
|
for (const int &E : hidden_tracks) {
|
||||||
updated_hidden_tracks.push_back(E->get());
|
updated_hidden_tracks.push_back(E);
|
||||||
}
|
}
|
||||||
hidden_tracks.clear();
|
hidden_tracks.clear();
|
||||||
for (int i = 0; i < updated_hidden_tracks.size(); ++i) {
|
for (int i = 0; i < updated_hidden_tracks.size(); ++i) {
|
||||||
|
|
|
@ -138,8 +138,8 @@ bool CreateDialog::_should_hide_type(const String &p_type) const {
|
||||||
return true; // Wrong inheritance.
|
return true; // Wrong inheritance.
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<StringName>::Element *E = type_blacklist.front(); E; E = E->next()) {
|
for (const StringName &E : type_blacklist) {
|
||||||
if (ClassDB::is_parent_class(p_type, E->get())) {
|
if (ClassDB::is_parent_class(p_type, E)) {
|
||||||
return true; // Parent type is blacklisted.
|
return true; // Parent type is blacklisted.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -193,8 +193,8 @@ ObjectID EditorDebuggerInspector::add_object(const Array &p_arr) {
|
||||||
|
|
||||||
if (old_prop_size == debugObj->prop_list.size() && new_props_added == 0) {
|
if (old_prop_size == debugObj->prop_list.size() && new_props_added == 0) {
|
||||||
//only some may have changed, if so, then update those, if exist
|
//only some may have changed, if so, then update those, if exist
|
||||||
for (RBSet<String>::Element *E = changed.front(); E; E = E->next()) {
|
for (const String &E : changed) {
|
||||||
emit_signal(SNAME("object_property_updated"), debugObj->remote_object_id, E->get());
|
emit_signal(SNAME("object_property_updated"), debugObj->remote_object_id, E);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//full update, because props were added or removed
|
//full update, because props were added or removed
|
||||||
|
|
|
@ -118,8 +118,8 @@ ScriptEditorDebugger *EditorDebuggerNode::_add_debugger() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!debugger_plugins.is_empty()) {
|
if (!debugger_plugins.is_empty()) {
|
||||||
for (RBSet<Ref<Script>>::Element *i = debugger_plugins.front(); i; i = i->next()) {
|
for (const Ref<Script> &i : debugger_plugins) {
|
||||||
node->add_debugger_plugin(i->get());
|
node->add_debugger_plugin(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -198,13 +198,13 @@ void EditorProfiler::_update_plot() {
|
||||||
for (int i = 0; i < total_metrics; i++) {
|
for (int i = 0; i < total_metrics; i++) {
|
||||||
const Metric &m = _get_frame_metric(i);
|
const Metric &m = _get_frame_metric(i);
|
||||||
|
|
||||||
for (RBSet<StringName>::Element *E = plot_sigs.front(); E; E = E->next()) {
|
for (const StringName &E : plot_sigs) {
|
||||||
HashMap<StringName, Metric::Category *>::ConstIterator F = m.category_ptrs.find(E->get());
|
HashMap<StringName, Metric::Category *>::ConstIterator F = m.category_ptrs.find(E);
|
||||||
if (F) {
|
if (F) {
|
||||||
highest = MAX(F->value->total_time, highest);
|
highest = MAX(F->value->total_time, highest);
|
||||||
}
|
}
|
||||||
|
|
||||||
HashMap<StringName, Metric::Category::Item *>::ConstIterator G = m.item_ptrs.find(E->get());
|
HashMap<StringName, Metric::Category::Item *>::ConstIterator G = m.item_ptrs.find(E);
|
||||||
if (G) {
|
if (G) {
|
||||||
if (use_self) {
|
if (use_self) {
|
||||||
highest = MAX(G->value->self, highest);
|
highest = MAX(G->value->self, highest);
|
||||||
|
@ -234,17 +234,17 @@ void EditorProfiler::_update_plot() {
|
||||||
|
|
||||||
int current = i * frame_metrics.size() / w;
|
int current = i * frame_metrics.size() / w;
|
||||||
|
|
||||||
for (RBSet<StringName>::Element *E = plot_sigs.front(); E; E = E->next()) {
|
for (const StringName &E : plot_sigs) {
|
||||||
const Metric &m = _get_frame_metric(current);
|
const Metric &m = _get_frame_metric(current);
|
||||||
|
|
||||||
float value = 0;
|
float value = 0;
|
||||||
|
|
||||||
HashMap<StringName, Metric::Category *>::ConstIterator F = m.category_ptrs.find(E->get());
|
HashMap<StringName, Metric::Category *>::ConstIterator F = m.category_ptrs.find(E);
|
||||||
if (F) {
|
if (F) {
|
||||||
value = F->value->total_time;
|
value = F->value->total_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
HashMap<StringName, Metric::Category::Item *>::ConstIterator G = m.item_ptrs.find(E->get());
|
HashMap<StringName, Metric::Category::Item *>::ConstIterator G = m.item_ptrs.find(E);
|
||||||
if (G) {
|
if (G) {
|
||||||
if (use_self) {
|
if (use_self) {
|
||||||
value = G->value->self;
|
value = G->value->self;
|
||||||
|
@ -256,12 +256,12 @@ void EditorProfiler::_update_plot() {
|
||||||
int plot_pos = CLAMP(int(value * h / highest), 0, h - 1);
|
int plot_pos = CLAMP(int(value * h / highest), 0, h - 1);
|
||||||
|
|
||||||
int prev_plot = plot_pos;
|
int prev_plot = plot_pos;
|
||||||
HashMap<StringName, int>::Iterator H = prev_plots.find(E->get());
|
HashMap<StringName, int>::Iterator H = prev_plots.find(E);
|
||||||
if (H) {
|
if (H) {
|
||||||
prev_plot = H->value;
|
prev_plot = H->value;
|
||||||
H->value = plot_pos;
|
H->value = plot_pos;
|
||||||
} else {
|
} else {
|
||||||
prev_plots[E->get()] = plot_pos;
|
prev_plots[E] = plot_pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
plot_pos = h - plot_pos - 1;
|
plot_pos = h - plot_pos - 1;
|
||||||
|
@ -271,7 +271,7 @@ void EditorProfiler::_update_plot() {
|
||||||
SWAP(prev_plot, plot_pos);
|
SWAP(prev_plot, plot_pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
Color col = _get_color_from_signature(E->get());
|
Color col = _get_color_from_signature(E);
|
||||||
|
|
||||||
for (int j = prev_plot; j <= plot_pos; j++) {
|
for (int j = prev_plot; j <= plot_pos; j++) {
|
||||||
column[j * 4 + 0] += Math::fast_ftoi(CLAMP(col.r * 255, 0, 255));
|
column[j * 4 + 0] += Math::fast_ftoi(CLAMP(col.r * 255, 0, 255));
|
||||||
|
@ -534,9 +534,9 @@ Vector<Vector<String>> EditorProfiler::get_data_as_csv() const {
|
||||||
Vector<String> signatures;
|
Vector<String> signatures;
|
||||||
signatures.resize(possible_signatures.size());
|
signatures.resize(possible_signatures.size());
|
||||||
int sig_index = 0;
|
int sig_index = 0;
|
||||||
for (const RBSet<StringName>::Element *E = possible_signatures.front(); E; E = E->next()) {
|
for (const StringName &E : possible_signatures) {
|
||||||
signatures.write[sig_index] = E->get();
|
signatures.write[sig_index] = E;
|
||||||
sig_map[E->get()] = sig_index;
|
sig_map[E] = sig_index;
|
||||||
sig_index++;
|
sig_index++;
|
||||||
}
|
}
|
||||||
res.push_back(signatures);
|
res.push_back(signatures);
|
||||||
|
|
|
@ -154,8 +154,8 @@ void EditorAssetInstaller::open(const String &p_path, int p_depth) {
|
||||||
|
|
||||||
int num_file_conflicts = 0;
|
int num_file_conflicts = 0;
|
||||||
|
|
||||||
for (RBSet<String>::Element *E = files_sorted.front(); E; E = E->next()) {
|
for (const String &E : files_sorted) {
|
||||||
String path = E->get();
|
String path = E;
|
||||||
int depth = p_depth;
|
int depth = p_depth;
|
||||||
bool skip = false;
|
bool skip = false;
|
||||||
while (depth > 0) {
|
while (depth > 0) {
|
||||||
|
@ -224,7 +224,7 @@ void EditorAssetInstaller::open(const String &p_path, int p_depth) {
|
||||||
ti->set_metadata(0, res_path);
|
ti->set_metadata(0, res_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
status_map[E->get()] = ti;
|
status_map[E] = ti;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (num_file_conflicts >= 1) {
|
if (num_file_conflicts >= 1) {
|
||||||
|
|
|
@ -95,9 +95,9 @@ Ref<EditorExportPlatform> EditorExportPreset::get_platform() const {
|
||||||
|
|
||||||
void EditorExportPreset::update_files_to_export() {
|
void EditorExportPreset::update_files_to_export() {
|
||||||
Vector<String> to_remove;
|
Vector<String> to_remove;
|
||||||
for (RBSet<String>::Element *E = selected_files.front(); E; E = E->next()) {
|
for (const String &E : selected_files) {
|
||||||
if (!FileAccess::exists(E->get())) {
|
if (!FileAccess::exists(E)) {
|
||||||
to_remove.push_back(E->get());
|
to_remove.push_back(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (int i = 0; i < to_remove.size(); ++i) {
|
for (int i = 0; i < to_remove.size(); ++i) {
|
||||||
|
@ -107,8 +107,8 @@ void EditorExportPreset::update_files_to_export() {
|
||||||
|
|
||||||
Vector<String> EditorExportPreset::get_files_to_export() const {
|
Vector<String> EditorExportPreset::get_files_to_export() const {
|
||||||
Vector<String> files;
|
Vector<String> files;
|
||||||
for (RBSet<String>::Element *E = selected_files.front(); E; E = E->next()) {
|
for (const String &E : selected_files) {
|
||||||
files.push_back(E->get());
|
files.push_back(E);
|
||||||
}
|
}
|
||||||
return files;
|
return files;
|
||||||
}
|
}
|
||||||
|
@ -879,8 +879,8 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
int total = paths.size();
|
int total = paths.size();
|
||||||
|
|
||||||
for (RBSet<String>::Element *E = paths.front(); E; E = E->next()) {
|
for (const String &E : paths) {
|
||||||
String path = E->get();
|
String path = E;
|
||||||
String type = ResourceLoader::get_resource_type(path);
|
String type = ResourceLoader::get_resource_type(path);
|
||||||
|
|
||||||
if (FileAccess::exists(path + ".import")) {
|
if (FileAccess::exists(path + ".import")) {
|
||||||
|
|
|
@ -166,15 +166,15 @@ Error EditorFeatureProfile::save_to_file(const String &p_path) {
|
||||||
Dictionary data;
|
Dictionary data;
|
||||||
data["type"] = "feature_profile";
|
data["type"] = "feature_profile";
|
||||||
Array dis_classes;
|
Array dis_classes;
|
||||||
for (RBSet<StringName>::Element *E = disabled_classes.front(); E; E = E->next()) {
|
for (const StringName &E : disabled_classes) {
|
||||||
dis_classes.push_back(String(E->get()));
|
dis_classes.push_back(String(E));
|
||||||
}
|
}
|
||||||
dis_classes.sort();
|
dis_classes.sort();
|
||||||
data["disabled_classes"] = dis_classes;
|
data["disabled_classes"] = dis_classes;
|
||||||
|
|
||||||
Array dis_editors;
|
Array dis_editors;
|
||||||
for (RBSet<StringName>::Element *E = disabled_editors.front(); E; E = E->next()) {
|
for (const StringName &E : disabled_editors) {
|
||||||
dis_editors.push_back(String(E->get()));
|
dis_editors.push_back(String(E));
|
||||||
}
|
}
|
||||||
dis_editors.sort();
|
dis_editors.sort();
|
||||||
data["disabled_editors"] = dis_editors;
|
data["disabled_editors"] = dis_editors;
|
||||||
|
@ -182,8 +182,8 @@ Error EditorFeatureProfile::save_to_file(const String &p_path) {
|
||||||
Array dis_props;
|
Array dis_props;
|
||||||
|
|
||||||
for (KeyValue<StringName, RBSet<StringName>> &E : disabled_properties) {
|
for (KeyValue<StringName, RBSet<StringName>> &E : disabled_properties) {
|
||||||
for (RBSet<StringName>::Element *F = E.value.front(); F; F = F->next()) {
|
for (const StringName &F : E.value) {
|
||||||
dis_props.push_back(String(E.key) + ":" + String(F->get()));
|
dis_props.push_back(String(E.key) + ":" + String(F));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1458,8 +1458,8 @@ void EditorFileSystem::_save_late_updated_files() {
|
||||||
String fscache = EditorSettings::get_singleton()->get_project_settings_dir().plus_file("filesystem_update4");
|
String fscache = EditorSettings::get_singleton()->get_project_settings_dir().plus_file("filesystem_update4");
|
||||||
Ref<FileAccess> f = FileAccess::open(fscache, FileAccess::WRITE);
|
Ref<FileAccess> f = FileAccess::open(fscache, FileAccess::WRITE);
|
||||||
ERR_FAIL_COND_MSG(f.is_null(), "Cannot create file '" + fscache + "'. Check user write permissions.");
|
ERR_FAIL_COND_MSG(f.is_null(), "Cannot create file '" + fscache + "'. Check user write permissions.");
|
||||||
for (RBSet<String>::Element *E = late_update_files.front(); E; E = E->next()) {
|
for (const String &E : late_update_files) {
|
||||||
f->store_line(E->get());
|
f->store_line(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,8 +40,8 @@ Vector<String> EditorFolding::_get_unfolds(const Object *p_object) {
|
||||||
if (sections.size()) {
|
if (sections.size()) {
|
||||||
String *w = sections.ptrw();
|
String *w = sections.ptrw();
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
for (const RBSet<String>::Element *E = p_object->editor_get_section_folding().front(); E; E = E->next()) {
|
for (const String &E : p_object->editor_get_section_folding()) {
|
||||||
w[idx++] = E->get();
|
w[idx++] = E;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,8 +270,8 @@ void EditorFolding::_do_object_unfolds(Object *p_object, RBSet<Ref<Resource>> &r
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<String>::Element *E = unfold_group.front(); E; E = E->next()) {
|
for (const String &E : unfold_group) {
|
||||||
p_object->editor_set_section_unfold(E->get(), true);
|
p_object->editor_set_section_unfold(E, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -231,8 +231,8 @@ void EditorNode::disambiguate_filenames(const Vector<String> p_full_paths, Vecto
|
||||||
RBSet<int> iset = index_sets[i];
|
RBSet<int> iset = index_sets[i];
|
||||||
while (iset.size() > 1) {
|
while (iset.size() > 1) {
|
||||||
// Append the parent folder to each scene name.
|
// Append the parent folder to each scene name.
|
||||||
for (RBSet<int>::Element *E = iset.front(); E; E = E->next()) {
|
for (const int &E : iset) {
|
||||||
int set_idx = E->get();
|
int set_idx = E;
|
||||||
String scene_name = r_filenames[set_idx];
|
String scene_name = r_filenames[set_idx];
|
||||||
String full_path = p_full_paths[set_idx];
|
String full_path = p_full_paths[set_idx];
|
||||||
|
|
||||||
|
@ -270,11 +270,11 @@ void EditorNode::disambiguate_filenames(const Vector<String> p_full_paths, Vecto
|
||||||
while (E) {
|
while (E) {
|
||||||
String scene_name = r_filenames[E->get()];
|
String scene_name = r_filenames[E->get()];
|
||||||
bool duplicate_found = false;
|
bool duplicate_found = false;
|
||||||
for (RBSet<int>::Element *F = iset.front(); F; F = F->next()) {
|
for (const int &F : iset) {
|
||||||
if (E->get() == F->get()) {
|
if (E->get() == F) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
String other_scene_name = r_filenames[F->get()];
|
String other_scene_name = r_filenames[F];
|
||||||
if (other_scene_name == scene_name) {
|
if (other_scene_name == scene_name) {
|
||||||
duplicate_found = true;
|
duplicate_found = true;
|
||||||
break;
|
break;
|
||||||
|
@ -907,12 +907,12 @@ void EditorNode::_resources_changed(const Vector<String> &p_resources) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorNode::_fs_changed() {
|
void EditorNode::_fs_changed() {
|
||||||
for (RBSet<FileDialog *>::Element *E = file_dialogs.front(); E; E = E->next()) {
|
for (FileDialog *E : file_dialogs) {
|
||||||
E->get()->invalidate();
|
E->invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<EditorFileDialog *>::Element *E = editor_file_dialogs.front(); E; E = E->next()) {
|
for (EditorFileDialog *E : editor_file_dialogs) {
|
||||||
E->get()->invalidate();
|
E->invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
_mark_unsaved_scenes();
|
_mark_unsaved_scenes();
|
||||||
|
@ -1185,8 +1185,8 @@ Error EditorNode::load_resource(const String &p_resource, bool p_ignore_broken_d
|
||||||
|
|
||||||
if (!p_ignore_broken_deps && dependency_errors.has(p_resource)) {
|
if (!p_ignore_broken_deps && dependency_errors.has(p_resource)) {
|
||||||
Vector<String> errors;
|
Vector<String> errors;
|
||||||
for (RBSet<String>::Element *E = dependency_errors[p_resource].front(); E; E = E->next()) {
|
for (const String &E : dependency_errors[p_resource]) {
|
||||||
errors.push_back(E->get());
|
errors.push_back(E);
|
||||||
}
|
}
|
||||||
dependency_error->show(DependencyErrorDialog::MODE_RESOURCE, p_resource, errors);
|
dependency_error->show(DependencyErrorDialog::MODE_RESOURCE, p_resource, errors);
|
||||||
dependency_errors.erase(p_resource);
|
dependency_errors.erase(p_resource);
|
||||||
|
@ -1677,8 +1677,8 @@ int EditorNode::_save_external_resources() {
|
||||||
// Clear later, because user may have put the same subresource in two different resources,
|
// Clear later, because user may have put the same subresource in two different resources,
|
||||||
// which will be shared until the next reload.
|
// which will be shared until the next reload.
|
||||||
|
|
||||||
for (RBSet<Ref<Resource>>::Element *E = edited_subresources.front(); E; E = E->next()) {
|
for (const Ref<Resource> &E : edited_subresources) {
|
||||||
Ref<Resource> res = E->get();
|
Ref<Resource> res = E;
|
||||||
res->set_edited(false);
|
res->set_edited(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3663,8 +3663,8 @@ Error EditorNode::load_scene(const String &p_scene, bool p_ignore_broken_deps, b
|
||||||
if (!p_ignore_broken_deps && dependency_errors.has(lpath)) {
|
if (!p_ignore_broken_deps && dependency_errors.has(lpath)) {
|
||||||
current_menu_option = -1;
|
current_menu_option = -1;
|
||||||
Vector<String> errors;
|
Vector<String> errors;
|
||||||
for (RBSet<String>::Element *E = dependency_errors[lpath].front(); E; E = E->next()) {
|
for (const String &E : dependency_errors[lpath]) {
|
||||||
errors.push_back(E->get());
|
errors.push_back(E);
|
||||||
}
|
}
|
||||||
dependency_error->show(DependencyErrorDialog::MODE_SCENE, lpath, errors);
|
dependency_error->show(DependencyErrorDialog::MODE_SCENE, lpath, errors);
|
||||||
opening_prev = false;
|
opening_prev = false;
|
||||||
|
@ -3680,8 +3680,8 @@ Error EditorNode::load_scene(const String &p_scene, bool p_ignore_broken_deps, b
|
||||||
|
|
||||||
for (KeyValue<String, RBSet<String>> &E : dependency_errors) {
|
for (KeyValue<String, RBSet<String>> &E : dependency_errors) {
|
||||||
String txt = vformat(TTR("Scene '%s' has broken dependencies:"), E.key) + "\n";
|
String txt = vformat(TTR("Scene '%s' has broken dependencies:"), E.key) + "\n";
|
||||||
for (RBSet<String>::Element *F = E.value.front(); F; F = F->next()) {
|
for (const String &F : E.value) {
|
||||||
txt += "\t" + F->get() + "\n";
|
txt += "\t" + F + "\n";
|
||||||
}
|
}
|
||||||
add_io_error(txt);
|
add_io_error(txt);
|
||||||
}
|
}
|
||||||
|
|
|
@ -253,8 +253,8 @@ void EditorResourcePicker::_edit_menu_cbk(int p_which) {
|
||||||
}
|
}
|
||||||
|
|
||||||
file_dialog->clear_filters();
|
file_dialog->clear_filters();
|
||||||
for (RBSet<String>::Element *E = valid_extensions.front(); E; E = E->next()) {
|
for (const String &E : valid_extensions) {
|
||||||
file_dialog->add_filter("*." + E->get() + " ; " + E->get().to_upper());
|
file_dialog->add_filter("*." + E + " ; " + E.to_upper());
|
||||||
}
|
}
|
||||||
|
|
||||||
file_dialog->popup_file_dialog();
|
file_dialog->popup_file_dialog();
|
||||||
|
@ -417,8 +417,8 @@ void EditorResourcePicker::set_create_options(Object *p_menu_node) {
|
||||||
custom_resources = EditorNode::get_editor_data().get_custom_types()["Resource"];
|
custom_resources = EditorNode::get_editor_data().get_custom_types()["Resource"];
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<String>::Element *E = allowed_types.front(); E; E = E->next()) {
|
for (const String &E : allowed_types) {
|
||||||
const String &t = E->get();
|
const String &t = E;
|
||||||
|
|
||||||
bool is_custom_resource = false;
|
bool is_custom_resource = false;
|
||||||
Ref<Texture2D> icon;
|
Ref<Texture2D> icon;
|
||||||
|
@ -599,8 +599,8 @@ bool EditorResourcePicker::_is_drop_valid(const Dictionary &p_drag_data) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EditorResourcePicker::_is_type_valid(const String p_type_name, RBSet<String> p_allowed_types) const {
|
bool EditorResourcePicker::_is_type_valid(const String p_type_name, RBSet<String> p_allowed_types) const {
|
||||||
for (RBSet<String>::Element *E = p_allowed_types.front(); E; E = E->next()) {
|
for (const String &E : p_allowed_types) {
|
||||||
String at = E->get().strip_edges();
|
String at = E.strip_edges();
|
||||||
if (p_type_name == at || ClassDB::is_parent_class(p_type_name, at) || EditorNode::get_editor_data().script_class_is_parent(p_type_name, at)) {
|
if (p_type_name == at || ClassDB::is_parent_class(p_type_name, at) || EditorNode::get_editor_data().script_class_is_parent(p_type_name, at)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -651,8 +651,8 @@ void EditorResourcePicker::drop_data_fw(const Point2 &p_point, const Variant &p_
|
||||||
|
|
||||||
// If the accepted dropped resource is from the extended list, it requires conversion.
|
// If the accepted dropped resource is from the extended list, it requires conversion.
|
||||||
if (!_is_type_valid(dropped_resource->get_class(), allowed_types)) {
|
if (!_is_type_valid(dropped_resource->get_class(), allowed_types)) {
|
||||||
for (RBSet<String>::Element *E = allowed_types.front(); E; E = E->next()) {
|
for (const String &E : allowed_types) {
|
||||||
String at = E->get().strip_edges();
|
String at = E.strip_edges();
|
||||||
|
|
||||||
if (at == "BaseMaterial3D" && Ref<Texture2D>(dropped_resource).is_valid()) {
|
if (at == "BaseMaterial3D" && Ref<Texture2D>(dropped_resource).is_valid()) {
|
||||||
// Use existing resource if possible and only replace its data.
|
// Use existing resource if possible and only replace its data.
|
||||||
|
|
|
@ -268,25 +268,25 @@ void EditorSettings::_get_property_list(List<PropertyInfo> *p_list) const {
|
||||||
vclist.insert(vc);
|
vclist.insert(vc);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<_EVCSort>::Element *E = vclist.front(); E; E = E->next()) {
|
for (const _EVCSort &E : vclist) {
|
||||||
uint32_t pusage = PROPERTY_USAGE_NONE;
|
uint32_t pusage = PROPERTY_USAGE_NONE;
|
||||||
if (E->get().save || !optimize_save) {
|
if (E.save || !optimize_save) {
|
||||||
pusage |= PROPERTY_USAGE_STORAGE;
|
pusage |= PROPERTY_USAGE_STORAGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!E->get().name.begins_with("_") && !E->get().name.begins_with("projects/")) {
|
if (!E.name.begins_with("_") && !E.name.begins_with("projects/")) {
|
||||||
pusage |= PROPERTY_USAGE_EDITOR;
|
pusage |= PROPERTY_USAGE_EDITOR;
|
||||||
} else {
|
} else {
|
||||||
pusage |= PROPERTY_USAGE_STORAGE; //hiddens must always be saved
|
pusage |= PROPERTY_USAGE_STORAGE; //hiddens must always be saved
|
||||||
}
|
}
|
||||||
|
|
||||||
PropertyInfo pi(E->get().type, E->get().name);
|
PropertyInfo pi(E.type, E.name);
|
||||||
pi.usage = pusage;
|
pi.usage = pusage;
|
||||||
if (hints.has(E->get().name)) {
|
if (hints.has(E.name)) {
|
||||||
pi = hints[E->get().name];
|
pi = hints[E.name];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (E->get().restart_if_changed) {
|
if (E.restart_if_changed) {
|
||||||
pi.usage |= PROPERTY_USAGE_RESTART_IF_CHANGED;
|
pi.usage |= PROPERTY_USAGE_RESTART_IF_CHANGED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -96,8 +96,8 @@ void EditorTranslationParser::get_recognized_extensions(List<String> *r_extensio
|
||||||
for (int i = 0; i < temp.size(); i++) {
|
for (int i = 0; i < temp.size(); i++) {
|
||||||
extensions.insert(temp[i]);
|
extensions.insert(temp[i]);
|
||||||
}
|
}
|
||||||
for (RBSet<String>::Element *E = extensions.front(); E; E = E->next()) {
|
for (const String &E : extensions) {
|
||||||
r_extensions->push_back(E->get());
|
r_extensions->push_back(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -875,8 +875,8 @@ Error ColladaImport::_create_mesh_surfaces(bool p_optimize, Ref<ImporterMesh> &p
|
||||||
Vector<Collada::Vertex> vertex_array; //there we go, vertex array
|
Vector<Collada::Vertex> vertex_array; //there we go, vertex array
|
||||||
|
|
||||||
vertex_array.resize(vertex_set.size());
|
vertex_array.resize(vertex_set.size());
|
||||||
for (RBSet<Collada::Vertex>::Element *F = vertex_set.front(); F; F = F->next()) {
|
for (Collada::Vertex &F : vertex_set) {
|
||||||
vertex_array.write[F->get().idx] = F->get();
|
vertex_array.write[F.idx] = F;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (has_weights) {
|
if (has_weights) {
|
||||||
|
@ -1507,14 +1507,14 @@ void ColladaImport::create_animation(int p_clip, bool p_import_value_tracks) {
|
||||||
|
|
||||||
bool tracks_found = false;
|
bool tracks_found = false;
|
||||||
|
|
||||||
for (RBSet<String>::Element *E = valid_animated_nodes.front(); E; E = E->next()) {
|
for (const String &E : valid_animated_nodes) {
|
||||||
// take snapshots
|
// take snapshots
|
||||||
|
|
||||||
if (!collada.state.scene_map.has(E->get())) {
|
if (!collada.state.scene_map.has(E)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
NodeMap &nm = node_map[E->get()];
|
NodeMap &nm = node_map[E];
|
||||||
String path = scene->get_path_to(nm.node);
|
String path = scene->get_path_to(nm.node);
|
||||||
|
|
||||||
if (nm.bone >= 0) {
|
if (nm.bone >= 0) {
|
||||||
|
@ -1525,7 +1525,7 @@ void ColladaImport::create_animation(int p_clip, bool p_import_value_tracks) {
|
||||||
|
|
||||||
bool found_anim = false;
|
bool found_anim = false;
|
||||||
|
|
||||||
Collada::Node *cn = collada.state.scene_map[E->get()];
|
Collada::Node *cn = collada.state.scene_map[E];
|
||||||
if (cn->ignore_anim) {
|
if (cn->ignore_anim) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -1665,7 +1665,7 @@ void ColladaImport::create_animation(int p_clip, bool p_import_value_tracks) {
|
||||||
|
|
||||||
if (nm.bone >= 0) {
|
if (nm.bone >= 0) {
|
||||||
if (found_anim) {
|
if (found_anim) {
|
||||||
bones_with_animation[E->get()] = true;
|
bones_with_animation[E] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -603,8 +603,8 @@ bool AnimationNodeBlendTreeEditor::_update_filters(const Ref<AnimationNode> &ano
|
||||||
|
|
||||||
HashMap<String, TreeItem *> parenthood;
|
HashMap<String, TreeItem *> parenthood;
|
||||||
|
|
||||||
for (RBSet<String>::Element *E = paths.front(); E; E = E->next()) {
|
for (const String &E : paths) {
|
||||||
NodePath path = E->get();
|
NodePath path = E;
|
||||||
TreeItem *ti = nullptr;
|
TreeItem *ti = nullptr;
|
||||||
String accum;
|
String accum;
|
||||||
for (int i = 0; i < path.get_name_count(); i++) {
|
for (int i = 0; i < path.get_name_count(); i++) {
|
||||||
|
|
|
@ -6710,8 +6710,8 @@ RBSet<RID> _get_physics_bodies_rid(Node *node) {
|
||||||
rids.insert(pb->get_rid());
|
rids.insert(pb->get_rid());
|
||||||
}
|
}
|
||||||
RBSet<PhysicsBody3D *> child_nodes = _get_child_nodes<PhysicsBody3D>(node);
|
RBSet<PhysicsBody3D *> child_nodes = _get_child_nodes<PhysicsBody3D>(node);
|
||||||
for (RBSet<PhysicsBody3D *>::Element *I = child_nodes.front(); I; I = I->next()) {
|
for (const PhysicsBody3D *I : child_nodes) {
|
||||||
rids.insert(I->get()->get_rid());
|
rids.insert(I->get_rid());
|
||||||
}
|
}
|
||||||
|
|
||||||
return rids;
|
return rids;
|
||||||
|
@ -6755,8 +6755,8 @@ void Node3DEditor::snap_selected_nodes_to_floor() {
|
||||||
}
|
}
|
||||||
if (!found_valid_shape && vi.size()) {
|
if (!found_valid_shape && vi.size()) {
|
||||||
AABB aabb = vi.front()->get()->get_transformed_aabb();
|
AABB aabb = vi.front()->get()->get_transformed_aabb();
|
||||||
for (RBSet<VisualInstance3D *>::Element *I = vi.front(); I; I = I->next()) {
|
for (const VisualInstance3D *I : vi) {
|
||||||
aabb.merge_with(I->get()->get_transformed_aabb());
|
aabb.merge_with(I->get_transformed_aabb());
|
||||||
}
|
}
|
||||||
Vector3 size = aabb.size * Vector3(0.5, 0.0, 0.5);
|
Vector3 size = aabb.size * Vector3(0.5, 0.0, 0.5);
|
||||||
from = aabb.position + size;
|
from = aabb.position + size;
|
||||||
|
|
|
@ -83,8 +83,8 @@ void EditorPropertyRootMotion::_node_assign() {
|
||||||
|
|
||||||
HashMap<String, TreeItem *> parenthood;
|
HashMap<String, TreeItem *> parenthood;
|
||||||
|
|
||||||
for (RBSet<String>::Element *E = paths.front(); E; E = E->next()) {
|
for (const String &E : paths) {
|
||||||
NodePath path = E->get();
|
NodePath path = E;
|
||||||
TreeItem *ti = nullptr;
|
TreeItem *ti = nullptr;
|
||||||
String accum;
|
String accum;
|
||||||
for (int i = 0; i < path.get_name_count(); i++) {
|
for (int i = 0; i < path.get_name_count(); i++) {
|
||||||
|
|
|
@ -693,8 +693,8 @@ void ScriptEditor::_update_modified_scripts_for_external_editor(Ref<Script> p_fo
|
||||||
_find_changed_scripts_for_external_editor(base, base, scripts);
|
_find_changed_scripts_for_external_editor(base, base, scripts);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Ref<Script>>::Element *E = scripts.front(); E; E = E->next()) {
|
for (const Ref<Script> &E : scripts) {
|
||||||
Ref<Script> script = E->get();
|
Ref<Script> script = E;
|
||||||
|
|
||||||
if (p_for_script.is_valid() && p_for_script != script) {
|
if (p_for_script.is_valid() && p_for_script != script) {
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -125,8 +125,8 @@ void SpriteFramesEditor::_sheet_preview_draw() {
|
||||||
|
|
||||||
Color accent = get_theme_color("accent_color", "Editor");
|
Color accent = get_theme_color("accent_color", "Editor");
|
||||||
|
|
||||||
for (RBSet<int>::Element *E = frames_selected.front(); E; E = E->next()) {
|
for (const int &E : frames_selected) {
|
||||||
const int idx = E->get();
|
const int idx = E;
|
||||||
const int x = idx % frame_count.x;
|
const int x = idx % frame_count.x;
|
||||||
const int y = idx / frame_count.x;
|
const int y = idx / frame_count.x;
|
||||||
const Point2 pos = draw_offset + Point2(x, y) * (draw_frame_size + draw_sep);
|
const Point2 pos = draw_offset + Point2(x, y) * (draw_frame_size + draw_sep);
|
||||||
|
@ -248,8 +248,8 @@ void SpriteFramesEditor::_sheet_add_frames() {
|
||||||
|
|
||||||
int fc = frames->get_frame_count(edited_anim);
|
int fc = frames->get_frame_count(edited_anim);
|
||||||
|
|
||||||
for (RBSet<int>::Element *E = frames_selected.front(); E; E = E->next()) {
|
for (const int &E : frames_selected) {
|
||||||
int idx = E->get();
|
int idx = E;
|
||||||
const Point2 frame_coords(idx % frame_count.x, idx / frame_count.x);
|
const Point2 frame_coords(idx % frame_count.x, idx / frame_count.x);
|
||||||
|
|
||||||
Ref<AtlasTexture> at;
|
Ref<AtlasTexture> at;
|
||||||
|
|
|
@ -897,8 +897,8 @@ void TileDataDefaultEditor::forward_draw_over_atlas(TileAtlasView *p_tile_atlas_
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<TileMapCell>::Element *E = edited.front(); E; E = E->next()) {
|
for (const TileMapCell &E : edited) {
|
||||||
Vector2i coords = E->get().get_atlas_coords();
|
Vector2i coords = E.get_atlas_coords();
|
||||||
p_canvas_item->draw_rect(p_tile_set_atlas_source->get_tile_texture_region(coords), selection_color, false);
|
p_canvas_item->draw_rect(p_tile_set_atlas_source->get_tile_texture_region(coords), selection_color, false);
|
||||||
}
|
}
|
||||||
p_canvas_item->draw_set_transform_matrix(Transform2D());
|
p_canvas_item->draw_set_transform_matrix(Transform2D());
|
||||||
|
@ -1755,8 +1755,8 @@ void TileDataTerrainsEditor::forward_draw_over_atlas(TileAtlasView *p_tile_atlas
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<TileMapCell>::Element *E = edited.front(); E; E = E->next()) {
|
for (const TileMapCell &E : edited) {
|
||||||
Vector2i coords = E->get().get_atlas_coords();
|
Vector2i coords = E.get_atlas_coords();
|
||||||
p_canvas_item->draw_rect(p_tile_set_atlas_source->get_tile_texture_region(coords), selection_color, false);
|
p_canvas_item->draw_rect(p_tile_set_atlas_source->get_tile_texture_region(coords), selection_color, false);
|
||||||
}
|
}
|
||||||
p_canvas_item->draw_set_transform_matrix(Transform2D());
|
p_canvas_item->draw_set_transform_matrix(Transform2D());
|
||||||
|
@ -1800,8 +1800,8 @@ void TileDataTerrainsEditor::forward_draw_over_atlas(TileAtlasView *p_tile_atlas
|
||||||
|
|
||||||
p_canvas_item->draw_set_transform_matrix(p_transform);
|
p_canvas_item->draw_set_transform_matrix(p_transform);
|
||||||
|
|
||||||
for (RBSet<TileMapCell>::Element *E = edited.front(); E; E = E->next()) {
|
for (const TileMapCell &E : edited) {
|
||||||
Vector2i coords = E->get().get_atlas_coords();
|
Vector2i coords = E.get_atlas_coords();
|
||||||
|
|
||||||
Rect2i texture_region = p_tile_set_atlas_source->get_tile_texture_region(coords);
|
Rect2i texture_region = p_tile_set_atlas_source->get_tile_texture_region(coords);
|
||||||
Vector2i position = texture_region.get_center() + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
|
Vector2i position = texture_region.get_center() + p_tile_set_atlas_source->get_tile_effective_texture_offset(coords, 0);
|
||||||
|
@ -2133,15 +2133,15 @@ void TileDataTerrainsEditor::forward_painting_atlas_gui_input(TileAtlasView *p_t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
undo_redo->create_action(TTR("Painting Terrain Set"));
|
undo_redo->create_action(TTR("Painting Terrain Set"));
|
||||||
for (RBSet<TileMapCell>::Element *E = edited.front(); E; E = E->next()) {
|
for (const TileMapCell &E : edited) {
|
||||||
Vector2i coords = E->get().get_atlas_coords();
|
Vector2i coords = E.get_atlas_coords();
|
||||||
TileData *tile_data = p_tile_set_atlas_source->get_tile_data(coords, 0);
|
TileData *tile_data = p_tile_set_atlas_source->get_tile_data(coords, 0);
|
||||||
undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/terrain_set", coords.x, coords.y, E->get().alternative_tile), tile_data->get_terrain_set());
|
undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/terrain_set", coords.x, coords.y, E.alternative_tile), tile_data->get_terrain_set());
|
||||||
undo_redo->add_do_property(p_tile_set_atlas_source, vformat("%d:%d/%d/terrain_set", coords.x, coords.y, E->get().alternative_tile), drag_painted_value);
|
undo_redo->add_do_property(p_tile_set_atlas_source, vformat("%d:%d/%d/terrain_set", coords.x, coords.y, E.alternative_tile), drag_painted_value);
|
||||||
for (int i = 0; i < TileSet::CELL_NEIGHBOR_MAX; i++) {
|
for (int i = 0; i < TileSet::CELL_NEIGHBOR_MAX; i++) {
|
||||||
TileSet::CellNeighbor bit = TileSet::CellNeighbor(i);
|
TileSet::CellNeighbor bit = TileSet::CellNeighbor(i);
|
||||||
if (tile_data->is_valid_peering_bit_terrain(bit)) {
|
if (tile_data->is_valid_peering_bit_terrain(bit)) {
|
||||||
undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/terrains_peering_bit/" + String(TileSet::CELL_NEIGHBOR_ENUM_TO_TEXT[i]), coords.x, coords.y, E->get().alternative_tile), tile_data->get_peering_bit_terrain(bit));
|
undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/terrains_peering_bit/" + String(TileSet::CELL_NEIGHBOR_ENUM_TO_TEXT[i]), coords.x, coords.y, E.alternative_tile), tile_data->get_peering_bit_terrain(bit));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2220,8 +2220,8 @@ void TileDataTerrainsEditor::forward_painting_atlas_gui_input(TileAtlasView *p_t
|
||||||
mouse_pos_rect_polygon.push_back(Vector2(drag_start_pos.x, mb->get_position().y));
|
mouse_pos_rect_polygon.push_back(Vector2(drag_start_pos.x, mb->get_position().y));
|
||||||
|
|
||||||
undo_redo->create_action(TTR("Painting Terrain"));
|
undo_redo->create_action(TTR("Painting Terrain"));
|
||||||
for (RBSet<TileMapCell>::Element *E = edited.front(); E; E = E->next()) {
|
for (const TileMapCell &E : edited) {
|
||||||
Vector2i coords = E->get().get_atlas_coords();
|
Vector2i coords = E.get_atlas_coords();
|
||||||
TileData *tile_data = p_tile_set_atlas_source->get_tile_data(coords, 0);
|
TileData *tile_data = p_tile_set_atlas_source->get_tile_data(coords, 0);
|
||||||
|
|
||||||
for (int i = 0; i < TileSet::CELL_NEIGHBOR_MAX; i++) {
|
for (int i = 0; i < TileSet::CELL_NEIGHBOR_MAX; i++) {
|
||||||
|
@ -2236,8 +2236,8 @@ void TileDataTerrainsEditor::forward_painting_atlas_gui_input(TileAtlasView *p_t
|
||||||
}
|
}
|
||||||
if (!Geometry2D::intersect_polygons(polygon, mouse_pos_rect_polygon).is_empty()) {
|
if (!Geometry2D::intersect_polygons(polygon, mouse_pos_rect_polygon).is_empty()) {
|
||||||
// Draw bit.
|
// Draw bit.
|
||||||
undo_redo->add_do_property(p_tile_set_atlas_source, vformat("%d:%d/%d/terrains_peering_bit/" + String(TileSet::CELL_NEIGHBOR_ENUM_TO_TEXT[i]), coords.x, coords.y, E->get().alternative_tile), terrain);
|
undo_redo->add_do_property(p_tile_set_atlas_source, vformat("%d:%d/%d/terrains_peering_bit/" + String(TileSet::CELL_NEIGHBOR_ENUM_TO_TEXT[i]), coords.x, coords.y, E.alternative_tile), terrain);
|
||||||
undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/terrains_peering_bit/" + String(TileSet::CELL_NEIGHBOR_ENUM_TO_TEXT[i]), coords.x, coords.y, E->get().alternative_tile), tile_data->get_peering_bit_terrain(bit));
|
undo_redo->add_undo_property(p_tile_set_atlas_source, vformat("%d:%d/%d/terrains_peering_bit/" + String(TileSet::CELL_NEIGHBOR_ENUM_TO_TEXT[i]), coords.x, coords.y, E.alternative_tile), tile_data->get_peering_bit_terrain(bit));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -501,8 +501,8 @@ bool TileMapEditorTilesPlugin::forward_canvas_gui_input(const Ref<InputEvent> &p
|
||||||
if (!tile_map_selection.is_empty()) {
|
if (!tile_map_selection.is_empty()) {
|
||||||
tile_map_clipboard.instantiate();
|
tile_map_clipboard.instantiate();
|
||||||
TypedArray<Vector2i> coords_array;
|
TypedArray<Vector2i> coords_array;
|
||||||
for (RBSet<Vector2i>::Element *E = tile_map_selection.front(); E; E = E->next()) {
|
for (const Vector2i &E : tile_map_selection) {
|
||||||
coords_array.push_back(E->get());
|
coords_array.push_back(E);
|
||||||
}
|
}
|
||||||
tile_map_clipboard = tile_map->get_pattern(tile_map_layer, coords_array);
|
tile_map_clipboard = tile_map->get_pattern(tile_map_layer, coords_array);
|
||||||
}
|
}
|
||||||
|
@ -511,9 +511,9 @@ bool TileMapEditorTilesPlugin::forward_canvas_gui_input(const Ref<InputEvent> &p
|
||||||
// Delete selected tiles.
|
// Delete selected tiles.
|
||||||
if (!tile_map_selection.is_empty()) {
|
if (!tile_map_selection.is_empty()) {
|
||||||
undo_redo->create_action(TTR("Delete tiles"));
|
undo_redo->create_action(TTR("Delete tiles"));
|
||||||
for (RBSet<Vector2i>::Element *E = tile_map_selection.front(); E; E = E->next()) {
|
for (const Vector2i &E : tile_map_selection) {
|
||||||
undo_redo->add_do_method(tile_map, "set_cell", tile_map_layer, E->get(), TileSet::INVALID_SOURCE, TileSetSource::INVALID_ATLAS_COORDS, TileSetSource::INVALID_TILE_ALTERNATIVE);
|
undo_redo->add_do_method(tile_map, "set_cell", tile_map_layer, E, TileSet::INVALID_SOURCE, TileSetSource::INVALID_ATLAS_COORDS, TileSetSource::INVALID_TILE_ALTERNATIVE);
|
||||||
undo_redo->add_undo_method(tile_map, "set_cell", tile_map_layer, E->get(), tile_map->get_cell_source_id(tile_map_layer, E->get()), tile_map->get_cell_atlas_coords(tile_map_layer, E->get()), tile_map->get_cell_alternative_tile(tile_map_layer, E->get()));
|
undo_redo->add_undo_method(tile_map, "set_cell", tile_map_layer, E, tile_map->get_cell_source_id(tile_map_layer, E), tile_map->get_cell_atlas_coords(tile_map_layer, E), tile_map->get_cell_alternative_tile(tile_map_layer, E));
|
||||||
}
|
}
|
||||||
undo_redo->add_undo_method(this, "_set_tile_map_selection", _get_tile_map_selection());
|
undo_redo->add_undo_method(this, "_set_tile_map_selection", _get_tile_map_selection());
|
||||||
tile_map_selection.clear();
|
tile_map_selection.clear();
|
||||||
|
@ -542,9 +542,9 @@ bool TileMapEditorTilesPlugin::forward_canvas_gui_input(const Ref<InputEvent> &p
|
||||||
// Delete selected tiles.
|
// Delete selected tiles.
|
||||||
if (!tile_map_selection.is_empty()) {
|
if (!tile_map_selection.is_empty()) {
|
||||||
undo_redo->create_action(TTR("Delete tiles"));
|
undo_redo->create_action(TTR("Delete tiles"));
|
||||||
for (RBSet<Vector2i>::Element *E = tile_map_selection.front(); E; E = E->next()) {
|
for (const Vector2i &E : tile_map_selection) {
|
||||||
undo_redo->add_do_method(tile_map, "set_cell", tile_map_layer, E->get(), TileSet::INVALID_SOURCE, TileSetSource::INVALID_ATLAS_COORDS, TileSetSource::INVALID_TILE_ALTERNATIVE);
|
undo_redo->add_do_method(tile_map, "set_cell", tile_map_layer, E, TileSet::INVALID_SOURCE, TileSetSource::INVALID_ATLAS_COORDS, TileSetSource::INVALID_TILE_ALTERNATIVE);
|
||||||
undo_redo->add_undo_method(tile_map, "set_cell", tile_map_layer, E->get(), tile_map->get_cell_source_id(tile_map_layer, E->get()), tile_map->get_cell_atlas_coords(tile_map_layer, E->get()), tile_map->get_cell_alternative_tile(tile_map_layer, E->get()));
|
undo_redo->add_undo_method(tile_map, "set_cell", tile_map_layer, E, tile_map->get_cell_source_id(tile_map_layer, E), tile_map->get_cell_atlas_coords(tile_map_layer, E), tile_map->get_cell_alternative_tile(tile_map_layer, E));
|
||||||
}
|
}
|
||||||
undo_redo->add_undo_method(this, "_set_tile_map_selection", _get_tile_map_selection());
|
undo_redo->add_undo_method(this, "_set_tile_map_selection", _get_tile_map_selection());
|
||||||
tile_map_selection.clear();
|
tile_map_selection.clear();
|
||||||
|
@ -628,8 +628,8 @@ bool TileMapEditorTilesPlugin::forward_canvas_gui_input(const Ref<InputEvent> &p
|
||||||
_update_selection_pattern_from_tilemap_selection(); // Make sure the pattern is up to date before moving.
|
_update_selection_pattern_from_tilemap_selection(); // Make sure the pattern is up to date before moving.
|
||||||
drag_type = DRAG_TYPE_MOVE;
|
drag_type = DRAG_TYPE_MOVE;
|
||||||
drag_modified.clear();
|
drag_modified.clear();
|
||||||
for (RBSet<Vector2i>::Element *E = tile_map_selection.front(); E; E = E->next()) {
|
for (const Vector2i &E : tile_map_selection) {
|
||||||
Vector2i coords = E->get();
|
Vector2i coords = E;
|
||||||
drag_modified.insert(coords, tile_map->get_cell(tile_map_layer, coords));
|
drag_modified.insert(coords, tile_map->get_cell(tile_map_layer, coords));
|
||||||
tile_map->set_cell(tile_map_layer, coords, TileSet::INVALID_SOURCE, TileSetSource::INVALID_ATLAS_COORDS, TileSetSource::INVALID_TILE_ALTERNATIVE);
|
tile_map->set_cell(tile_map_layer, coords, TileSet::INVALID_SOURCE, TileSetSource::INVALID_ATLAS_COORDS, TileSetSource::INVALID_TILE_ALTERNATIVE);
|
||||||
}
|
}
|
||||||
|
@ -785,8 +785,8 @@ void TileMapEditorTilesPlugin::forward_canvas_draw_over_viewport(Control *p_over
|
||||||
if (!tile_map_selection.is_empty()) {
|
if (!tile_map_selection.is_empty()) {
|
||||||
top_left = tile_map_selection.front()->get();
|
top_left = tile_map_selection.front()->get();
|
||||||
}
|
}
|
||||||
for (RBSet<Vector2i>::Element *E = tile_map_selection.front(); E; E = E->next()) {
|
for (const Vector2i &E : tile_map_selection) {
|
||||||
top_left = top_left.min(E->get());
|
top_left = top_left.min(E);
|
||||||
}
|
}
|
||||||
Vector2i offset = drag_start_mouse_pos - tile_map->map_to_world(top_left);
|
Vector2i offset = drag_start_mouse_pos - tile_map->map_to_world(top_left);
|
||||||
offset = tile_map->world_to_map(drag_last_mouse_pos - offset) - tile_map->world_to_map(drag_start_mouse_pos - offset);
|
offset = tile_map->world_to_map(drag_last_mouse_pos - offset) - tile_map->world_to_map(drag_start_mouse_pos - offset);
|
||||||
|
@ -1278,8 +1278,8 @@ void TileMapEditorTilesPlugin::_stop_dragging() {
|
||||||
if (!tile_map_selection.is_empty()) {
|
if (!tile_map_selection.is_empty()) {
|
||||||
top_left = tile_map_selection.front()->get();
|
top_left = tile_map_selection.front()->get();
|
||||||
}
|
}
|
||||||
for (RBSet<Vector2i>::Element *E = tile_map_selection.front(); E; E = E->next()) {
|
for (const Vector2i &E : tile_map_selection) {
|
||||||
top_left = top_left.min(E->get());
|
top_left = top_left.min(E);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the offset from the mouse.
|
// Get the offset from the mouse.
|
||||||
|
@ -1534,8 +1534,8 @@ void TileMapEditorTilesPlugin::_update_selection_pattern_from_tilemap_selection(
|
||||||
selection_pattern.instantiate();
|
selection_pattern.instantiate();
|
||||||
|
|
||||||
TypedArray<Vector2i> coords_array;
|
TypedArray<Vector2i> coords_array;
|
||||||
for (RBSet<Vector2i>::Element *E = tile_map_selection.front(); E; E = E->next()) {
|
for (const Vector2i &E : tile_map_selection) {
|
||||||
coords_array.push_back(E->get());
|
coords_array.push_back(E);
|
||||||
}
|
}
|
||||||
selection_pattern = tile_map->get_pattern(tile_map_layer, coords_array);
|
selection_pattern = tile_map->get_pattern(tile_map_layer, coords_array);
|
||||||
}
|
}
|
||||||
|
@ -1559,8 +1559,8 @@ void TileMapEditorTilesPlugin::_update_selection_pattern_from_tileset_tiles_sele
|
||||||
|
|
||||||
// Group per source.
|
// Group per source.
|
||||||
HashMap<int, List<const TileMapCell *>> per_source;
|
HashMap<int, List<const TileMapCell *>> per_source;
|
||||||
for (RBSet<TileMapCell>::Element *E = tile_set_selection.front(); E; E = E->next()) {
|
for (const TileMapCell &E : tile_set_selection) {
|
||||||
per_source[E->get().source_id].push_back(&(E->get()));
|
per_source[E.source_id].push_back(&(E));
|
||||||
}
|
}
|
||||||
|
|
||||||
int vertical_offset = 0;
|
int vertical_offset = 0;
|
||||||
|
@ -1680,14 +1680,14 @@ void TileMapEditorTilesPlugin::_tile_atlas_control_draw() {
|
||||||
// Draw the selection.
|
// Draw the selection.
|
||||||
Color grid_color = EditorSettings::get_singleton()->get("editors/tiles_editor/grid_color");
|
Color grid_color = EditorSettings::get_singleton()->get("editors/tiles_editor/grid_color");
|
||||||
Color selection_color = Color().from_hsv(Math::fposmod(grid_color.get_h() + 0.5, 1.0), grid_color.get_s(), grid_color.get_v(), 1.0);
|
Color selection_color = Color().from_hsv(Math::fposmod(grid_color.get_h() + 0.5, 1.0), grid_color.get_s(), grid_color.get_v(), 1.0);
|
||||||
for (RBSet<TileMapCell>::Element *E = tile_set_selection.front(); E; E = E->next()) {
|
for (const TileMapCell &E : tile_set_selection) {
|
||||||
if (E->get().source_id == source_id && E->get().alternative_tile == 0) {
|
if (E.source_id == source_id && E.alternative_tile == 0) {
|
||||||
for (int frame = 0; frame < atlas->get_tile_animation_frames_count(E->get().get_atlas_coords()); frame++) {
|
for (int frame = 0; frame < atlas->get_tile_animation_frames_count(E.get_atlas_coords()); frame++) {
|
||||||
Color color = selection_color;
|
Color color = selection_color;
|
||||||
if (frame > 0) {
|
if (frame > 0) {
|
||||||
color.a *= 0.3;
|
color.a *= 0.3;
|
||||||
}
|
}
|
||||||
tile_atlas_control->draw_rect(atlas->get_tile_texture_region(E->get().get_atlas_coords(), frame), color, false);
|
tile_atlas_control->draw_rect(atlas->get_tile_texture_region(E.get_atlas_coords(), frame), color, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1721,8 +1721,8 @@ void TileMapEditorTilesPlugin::_tile_atlas_control_draw() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Color selection_rect_color = selection_color.lightened(0.2);
|
Color selection_rect_color = selection_color.lightened(0.2);
|
||||||
for (RBSet<Vector2i>::Element *E = to_draw.front(); E; E = E->next()) {
|
for (const Vector2i &E : to_draw) {
|
||||||
tile_atlas_control->draw_rect(atlas->get_tile_texture_region(E->get()), selection_rect_color, false);
|
tile_atlas_control->draw_rect(atlas->get_tile_texture_region(E), selection_rect_color, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1868,9 +1868,9 @@ void TileMapEditorTilesPlugin::_tile_alternatives_control_draw() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw the selection.
|
// Draw the selection.
|
||||||
for (RBSet<TileMapCell>::Element *E = tile_set_selection.front(); E; E = E->next()) {
|
for (const TileMapCell &E : tile_set_selection) {
|
||||||
if (E->get().source_id == source_id && E->get().get_atlas_coords() != TileSetSource::INVALID_ATLAS_COORDS && E->get().alternative_tile > 0) {
|
if (E.source_id == source_id && E.get_atlas_coords() != TileSetSource::INVALID_ATLAS_COORDS && E.alternative_tile > 0) {
|
||||||
Rect2i rect = tile_atlas_view->get_alternative_tile_rect(E->get().get_atlas_coords(), E->get().alternative_tile);
|
Rect2i rect = tile_atlas_view->get_alternative_tile_rect(E.get_atlas_coords(), E.alternative_tile);
|
||||||
if (rect != Rect2i()) {
|
if (rect != Rect2i()) {
|
||||||
alternative_tiles_control->draw_rect(rect, Color(0.2, 0.2, 1.0), false);
|
alternative_tiles_control->draw_rect(rect, Color(0.2, 0.2, 1.0), false);
|
||||||
}
|
}
|
||||||
|
@ -1972,8 +1972,8 @@ void TileMapEditorTilesPlugin::_set_tile_map_selection(const TypedArray<Vector2i
|
||||||
|
|
||||||
TypedArray<Vector2i> TileMapEditorTilesPlugin::_get_tile_map_selection() const {
|
TypedArray<Vector2i> TileMapEditorTilesPlugin::_get_tile_map_selection() const {
|
||||||
TypedArray<Vector2i> output;
|
TypedArray<Vector2i> output;
|
||||||
for (RBSet<Vector2i>::Element *E = tile_map_selection.front(); E; E = E->next()) {
|
for (const Vector2i &E : tile_map_selection) {
|
||||||
output.push_back(E->get());
|
output.push_back(E);
|
||||||
}
|
}
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
@ -2341,8 +2341,8 @@ HashMap<Vector2i, TileMapCell> TileMapEditorTerrainsPlugin::_draw_terrains(const
|
||||||
TileSet::TerrainsPattern terrains_pattern = E_to_paint.value;
|
TileSet::TerrainsPattern terrains_pattern = E_to_paint.value;
|
||||||
|
|
||||||
RBSet<TileMap::TerrainConstraint> cell_constraints = tile_map->get_terrain_constraints_from_added_tile(coords, p_terrain_set, terrains_pattern);
|
RBSet<TileMap::TerrainConstraint> cell_constraints = tile_map->get_terrain_constraints_from_added_tile(coords, p_terrain_set, terrains_pattern);
|
||||||
for (RBSet<TileMap::TerrainConstraint>::Element *E = cell_constraints.front(); E; E = E->next()) {
|
for (const TileMap::TerrainConstraint &E : cell_constraints) {
|
||||||
added_tiles_constraints_set.insert(E->get());
|
added_tiles_constraints_set.insert(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2377,18 +2377,18 @@ HashMap<Vector2i, TileMapCell> TileMapEditorTerrainsPlugin::_draw_terrains(const
|
||||||
|
|
||||||
// Filter the sources to make sure they are in the potential_to_replace.
|
// Filter the sources to make sure they are in the potential_to_replace.
|
||||||
RBMap<TileMap::TerrainConstraint, RBSet<Vector2i>> per_constraint_tiles;
|
RBMap<TileMap::TerrainConstraint, RBSet<Vector2i>> per_constraint_tiles;
|
||||||
for (RBSet<TileMap::TerrainConstraint>::Element *E = removed_cells_constraints_set.front(); E; E = E->next()) {
|
for (const TileMap::TerrainConstraint &E : removed_cells_constraints_set) {
|
||||||
HashMap<Vector2i, TileSet::CellNeighbor> sources_of_constraint = E->get().get_overlapping_coords_and_peering_bits();
|
HashMap<Vector2i, TileSet::CellNeighbor> sources_of_constraint = E.get_overlapping_coords_and_peering_bits();
|
||||||
for (const KeyValue<Vector2i, TileSet::CellNeighbor> &E_source_tile_of_constraint : sources_of_constraint) {
|
for (const KeyValue<Vector2i, TileSet::CellNeighbor> &E_source_tile_of_constraint : sources_of_constraint) {
|
||||||
if (potential_to_replace.has(E_source_tile_of_constraint.key)) {
|
if (potential_to_replace.has(E_source_tile_of_constraint.key)) {
|
||||||
per_constraint_tiles[E->get()].insert(E_source_tile_of_constraint.key);
|
per_constraint_tiles[E].insert(E_source_tile_of_constraint.key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
to_replace_modified = false;
|
to_replace_modified = false;
|
||||||
for (RBSet<TileMap::TerrainConstraint>::Element *E = added_tiles_constraints_set.front(); E; E = E->next()) {
|
for (const TileMap::TerrainConstraint &E : added_tiles_constraints_set) {
|
||||||
TileMap::TerrainConstraint c = E->get();
|
TileMap::TerrainConstraint c = E;
|
||||||
// Check if we have a conflict in constraints.
|
// Check if we have a conflict in constraints.
|
||||||
if (removed_cells_constraints_set.has(c) && removed_cells_constraints_set.find(c)->get().get_terrain() != c.get_terrain()) {
|
if (removed_cells_constraints_set.has(c) && removed_cells_constraints_set.find(c)->get().get_terrain() != c.get_terrain()) {
|
||||||
// If we do, we search for a neighbor to remove.
|
// If we do, we search for a neighbor to remove.
|
||||||
|
@ -2409,8 +2409,8 @@ HashMap<Vector2i, TileMapCell> TileMapEditorTerrainsPlugin::_draw_terrains(const
|
||||||
|
|
||||||
// Combine all constraints together.
|
// Combine all constraints together.
|
||||||
RBSet<TileMap::TerrainConstraint> constraints = removed_cells_constraints_set;
|
RBSet<TileMap::TerrainConstraint> constraints = removed_cells_constraints_set;
|
||||||
for (RBSet<TileMap::TerrainConstraint>::Element *E = added_tiles_constraints_set.front(); E; E = E->next()) {
|
for (const TileMap::TerrainConstraint &E : added_tiles_constraints_set) {
|
||||||
constraints.insert(E->get());
|
constraints.insert(E);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove the central tiles from the ones to replace.
|
// Remove the central tiles from the ones to replace.
|
||||||
|
@ -3194,22 +3194,22 @@ void TileMapEditorTerrainsPlugin::_update_tiles_list() {
|
||||||
// Sort the items in a map by the number of corresponding terrains.
|
// Sort the items in a map by the number of corresponding terrains.
|
||||||
RBMap<int, RBSet<TileSet::TerrainsPattern>> sorted;
|
RBMap<int, RBSet<TileSet::TerrainsPattern>> sorted;
|
||||||
|
|
||||||
for (RBSet<TileSet::TerrainsPattern>::Element *E = per_terrain_terrains_patterns[selected_terrain_set][selected_terrain_id].front(); E; E = E->next()) {
|
for (const TileSet::TerrainsPattern &E : per_terrain_terrains_patterns[selected_terrain_set][selected_terrain_id]) {
|
||||||
// Count the number of matching sides/terrains.
|
// Count the number of matching sides/terrains.
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
for (int i = 0; i < TileSet::CELL_NEIGHBOR_MAX; i++) {
|
for (int i = 0; i < TileSet::CELL_NEIGHBOR_MAX; i++) {
|
||||||
TileSet::CellNeighbor bit = TileSet::CellNeighbor(i);
|
TileSet::CellNeighbor bit = TileSet::CellNeighbor(i);
|
||||||
if (tile_set->is_valid_peering_bit_terrain(selected_terrain_set, bit) && E->get().get_terrain(bit) == selected_terrain_id) {
|
if (tile_set->is_valid_peering_bit_terrain(selected_terrain_set, bit) && E.get_terrain(bit) == selected_terrain_id) {
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sorted[count].insert(E->get());
|
sorted[count].insert(E);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBMap<int, RBSet<TileSet::TerrainsPattern>>::Element *E_set = sorted.back(); E_set; E_set = E_set->prev()) {
|
for (RBMap<int, RBSet<TileSet::TerrainsPattern>>::Element *E_set = sorted.back(); E_set; E_set = E_set->prev()) {
|
||||||
for (RBSet<TileSet::TerrainsPattern>::Element *E = E_set->get().front(); E; E = E->next()) {
|
for (const TileSet::TerrainsPattern &E : E_set->get()) {
|
||||||
TileSet::TerrainsPattern terrains_pattern = E->get();
|
TileSet::TerrainsPattern terrains_pattern = E;
|
||||||
|
|
||||||
// Get the icon.
|
// Get the icon.
|
||||||
Ref<Texture2D> icon;
|
Ref<Texture2D> icon;
|
||||||
|
|
|
@ -270,9 +270,9 @@ bool TileSetAtlasSourceEditor::AtlasTileProxyObject::_set(const StringName &p_na
|
||||||
|
|
||||||
// Other properties.
|
// Other properties.
|
||||||
bool any_valid = false;
|
bool any_valid = false;
|
||||||
for (RBSet<TileSelection>::Element *E = tiles.front(); E; E = E->next()) {
|
for (const TileSelection &E : tiles) {
|
||||||
const Vector2i &coords = E->get().tile;
|
const Vector2i &coords = E.tile;
|
||||||
const int &alternative = E->get().alternative;
|
const int &alternative = E.alternative;
|
||||||
|
|
||||||
bool valid = false;
|
bool valid = false;
|
||||||
TileData *tile_data = tile_set_atlas_source->get_tile_data(coords, alternative);
|
TileData *tile_data = tile_set_atlas_source->get_tile_data(coords, alternative);
|
||||||
|
@ -354,11 +354,11 @@ bool TileSetAtlasSourceEditor::AtlasTileProxyObject::_get(const StringName &p_na
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<TileSelection>::Element *E = tiles.front(); E; E = E->next()) {
|
for (const TileSelection &E : tiles) {
|
||||||
// Return the first tile with a property matching the name.
|
// Return the first tile with a property matching the name.
|
||||||
// Note: It's a little bit annoying, but the behavior is the same the one in MultiNodeEdit.
|
// Note: It's a little bit annoying, but the behavior is the same the one in MultiNodeEdit.
|
||||||
const Vector2i &coords = E->get().tile;
|
const Vector2i &coords = E.tile;
|
||||||
const int &alternative = E->get().alternative;
|
const int &alternative = E.alternative;
|
||||||
|
|
||||||
TileData *tile_data = tile_set_atlas_source->get_tile_data(coords, alternative);
|
TileData *tile_data = tile_set_atlas_source->get_tile_data(coords, alternative);
|
||||||
ERR_FAIL_COND_V(!tile_data, false);
|
ERR_FAIL_COND_V(!tile_data, false);
|
||||||
|
@ -429,9 +429,9 @@ void TileSetAtlasSourceEditor::AtlasTileProxyObject::_get_property_list(List<Pro
|
||||||
RBMap<PropertyId, PLData> usage;
|
RBMap<PropertyId, PLData> usage;
|
||||||
|
|
||||||
List<PLData *> data_list;
|
List<PLData *> data_list;
|
||||||
for (RBSet<TileSelection>::Element *E = tiles.front(); E; E = E->next()) {
|
for (const TileSelection &E : tiles) {
|
||||||
const Vector2i &coords = E->get().tile;
|
const Vector2i &coords = E.tile;
|
||||||
const int &alternative = E->get().alternative;
|
const int &alternative = E.alternative;
|
||||||
|
|
||||||
TileData *tile_data = tile_set_atlas_source->get_tile_data(coords, alternative);
|
TileData *tile_data = tile_set_atlas_source->get_tile_data(coords, alternative);
|
||||||
ERR_FAIL_COND(!tile_data);
|
ERR_FAIL_COND(!tile_data);
|
||||||
|
@ -476,15 +476,15 @@ void TileSetAtlasSourceEditor::AtlasTileProxyObject::_get_property_list(List<Pro
|
||||||
void TileSetAtlasSourceEditor::AtlasTileProxyObject::edit(TileSetAtlasSource *p_tile_set_atlas_source, RBSet<TileSelection> p_tiles) {
|
void TileSetAtlasSourceEditor::AtlasTileProxyObject::edit(TileSetAtlasSource *p_tile_set_atlas_source, RBSet<TileSelection> p_tiles) {
|
||||||
ERR_FAIL_COND(!p_tile_set_atlas_source);
|
ERR_FAIL_COND(!p_tile_set_atlas_source);
|
||||||
ERR_FAIL_COND(p_tiles.is_empty());
|
ERR_FAIL_COND(p_tiles.is_empty());
|
||||||
for (RBSet<TileSelection>::Element *E = p_tiles.front(); E; E = E->next()) {
|
for (const TileSelection &E : p_tiles) {
|
||||||
ERR_FAIL_COND(E->get().tile == TileSetSource::INVALID_ATLAS_COORDS);
|
ERR_FAIL_COND(E.tile == TileSetSource::INVALID_ATLAS_COORDS);
|
||||||
ERR_FAIL_COND(E->get().alternative < 0);
|
ERR_FAIL_COND(E.alternative < 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disconnect to changes.
|
// Disconnect to changes.
|
||||||
for (RBSet<TileSelection>::Element *E = tiles.front(); E; E = E->next()) {
|
for (const TileSelection &E : tiles) {
|
||||||
const Vector2i &coords = E->get().tile;
|
const Vector2i &coords = E.tile;
|
||||||
const int &alternative = E->get().alternative;
|
const int &alternative = E.alternative;
|
||||||
|
|
||||||
if (tile_set_atlas_source && tile_set_atlas_source->has_tile(coords) && tile_set_atlas_source->has_alternative_tile(coords, alternative)) {
|
if (tile_set_atlas_source && tile_set_atlas_source->has_tile(coords) && tile_set_atlas_source->has_alternative_tile(coords, alternative)) {
|
||||||
TileData *tile_data = tile_set_atlas_source->get_tile_data(coords, alternative);
|
TileData *tile_data = tile_set_atlas_source->get_tile_data(coords, alternative);
|
||||||
|
@ -498,9 +498,9 @@ void TileSetAtlasSourceEditor::AtlasTileProxyObject::edit(TileSetAtlasSource *p_
|
||||||
tiles = RBSet<TileSelection>(p_tiles);
|
tiles = RBSet<TileSelection>(p_tiles);
|
||||||
|
|
||||||
// Connect to changes.
|
// Connect to changes.
|
||||||
for (RBSet<TileSelection>::Element *E = p_tiles.front(); E; E = E->next()) {
|
for (const TileSelection &E : p_tiles) {
|
||||||
const Vector2i &coords = E->get().tile;
|
const Vector2i &coords = E.tile;
|
||||||
const int &alternative = E->get().alternative;
|
const int &alternative = E.alternative;
|
||||||
|
|
||||||
if (tile_set_atlas_source->has_tile(coords) && tile_set_atlas_source->has_alternative_tile(coords, alternative)) {
|
if (tile_set_atlas_source->has_tile(coords) && tile_set_atlas_source->has_alternative_tile(coords, alternative)) {
|
||||||
TileData *tile_data = tile_set_atlas_source->get_tile_data(coords, alternative);
|
TileData *tile_data = tile_set_atlas_source->get_tile_data(coords, alternative);
|
||||||
|
@ -1313,9 +1313,9 @@ void TileSetAtlasSourceEditor::_end_dragging() {
|
||||||
switch (drag_type) {
|
switch (drag_type) {
|
||||||
case DRAG_TYPE_CREATE_TILES:
|
case DRAG_TYPE_CREATE_TILES:
|
||||||
undo_redo->create_action(TTR("Create tiles"));
|
undo_redo->create_action(TTR("Create tiles"));
|
||||||
for (RBSet<Vector2i>::Element *E = drag_modified_tiles.front(); E; E = E->next()) {
|
for (const Vector2i &E : drag_modified_tiles) {
|
||||||
undo_redo->add_do_method(tile_set_atlas_source, "create_tile", E->get());
|
undo_redo->add_do_method(tile_set_atlas_source, "create_tile", E);
|
||||||
undo_redo->add_undo_method(tile_set_atlas_source, "remove_tile", E->get());
|
undo_redo->add_undo_method(tile_set_atlas_source, "remove_tile", E);
|
||||||
}
|
}
|
||||||
undo_redo->commit_action(false);
|
undo_redo->commit_action(false);
|
||||||
break;
|
break;
|
||||||
|
@ -1330,8 +1330,8 @@ void TileSetAtlasSourceEditor::_end_dragging() {
|
||||||
tile_set_atlas_source->get_property_list(&list);
|
tile_set_atlas_source->get_property_list(&list);
|
||||||
HashMap<Vector2i, List<const PropertyInfo *>> per_tile = _group_properties_per_tiles(list, tile_set_atlas_source);
|
HashMap<Vector2i, List<const PropertyInfo *>> per_tile = _group_properties_per_tiles(list, tile_set_atlas_source);
|
||||||
undo_redo->create_action(TTR("Remove tiles"));
|
undo_redo->create_action(TTR("Remove tiles"));
|
||||||
for (RBSet<Vector2i>::Element *E = drag_modified_tiles.front(); E; E = E->next()) {
|
for (const Vector2i &E : drag_modified_tiles) {
|
||||||
Vector2i coords = E->get();
|
Vector2i coords = E;
|
||||||
undo_redo->add_do_method(tile_set_atlas_source, "remove_tile", coords);
|
undo_redo->add_do_method(tile_set_atlas_source, "remove_tile", coords);
|
||||||
undo_redo->add_undo_method(tile_set_atlas_source, "create_tile", coords);
|
undo_redo->add_undo_method(tile_set_atlas_source, "create_tile", coords);
|
||||||
if (per_tile.has(coords)) {
|
if (per_tile.has(coords)) {
|
||||||
|
@ -1384,8 +1384,8 @@ void TileSetAtlasSourceEditor::_end_dragging() {
|
||||||
|
|
||||||
undo_redo->create_action(TTR("Remove tiles"));
|
undo_redo->create_action(TTR("Remove tiles"));
|
||||||
undo_redo->add_do_method(this, "_set_selection_from_array", Array());
|
undo_redo->add_do_method(this, "_set_selection_from_array", Array());
|
||||||
for (RBSet<Vector2i>::Element *E = to_delete.front(); E; E = E->next()) {
|
for (const Vector2i &E : to_delete) {
|
||||||
Vector2i coords = E->get();
|
Vector2i coords = E;
|
||||||
undo_redo->add_do_method(tile_set_atlas_source, "remove_tile", coords);
|
undo_redo->add_do_method(tile_set_atlas_source, "remove_tile", coords);
|
||||||
undo_redo->add_undo_method(tile_set_atlas_source, "create_tile", coords);
|
undo_redo->add_undo_method(tile_set_atlas_source, "create_tile", coords);
|
||||||
if (per_tile.has(coords)) {
|
if (per_tile.has(coords)) {
|
||||||
|
@ -1549,8 +1549,8 @@ void TileSetAtlasSourceEditor::_menu_option(int p_option) {
|
||||||
|
|
||||||
// Remove tiles
|
// Remove tiles
|
||||||
RBSet<Vector2i> removed;
|
RBSet<Vector2i> removed;
|
||||||
for (RBSet<TileSelection>::Element *E = selection.front(); E; E = E->next()) {
|
for (const TileSelection &E : selection) {
|
||||||
TileSelection selected = E->get();
|
TileSelection selected = E;
|
||||||
if (selected.alternative == 0) {
|
if (selected.alternative == 0) {
|
||||||
// Remove a tile.
|
// Remove a tile.
|
||||||
undo_redo->add_do_method(tile_set_atlas_source, "remove_tile", selected.tile);
|
undo_redo->add_do_method(tile_set_atlas_source, "remove_tile", selected.tile);
|
||||||
|
@ -1569,8 +1569,8 @@ void TileSetAtlasSourceEditor::_menu_option(int p_option) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove alternatives
|
// Remove alternatives
|
||||||
for (RBSet<TileSelection>::Element *E = selection.front(); E; E = E->next()) {
|
for (const TileSelection &E : selection) {
|
||||||
TileSelection selected = E->get();
|
TileSelection selected = E;
|
||||||
if (selected.alternative > 0 && !removed.has(selected.tile)) {
|
if (selected.alternative > 0 && !removed.has(selected.tile)) {
|
||||||
// Remove an alternative tile.
|
// Remove an alternative tile.
|
||||||
undo_redo->add_do_method(tile_set_atlas_source, "remove_alternative_tile", selected.tile, selected.alternative);
|
undo_redo->add_do_method(tile_set_atlas_source, "remove_alternative_tile", selected.tile, selected.alternative);
|
||||||
|
@ -1608,13 +1608,13 @@ void TileSetAtlasSourceEditor::_menu_option(int p_option) {
|
||||||
case TILE_CREATE_ALTERNATIVE: {
|
case TILE_CREATE_ALTERNATIVE: {
|
||||||
undo_redo->create_action(TTR("Create tile alternatives"));
|
undo_redo->create_action(TTR("Create tile alternatives"));
|
||||||
Array array;
|
Array array;
|
||||||
for (RBSet<TileSelection>::Element *E = selection.front(); E; E = E->next()) {
|
for (const TileSelection &E : selection) {
|
||||||
if (E->get().alternative == 0) {
|
if (E.alternative == 0) {
|
||||||
int next_id = tile_set_atlas_source->get_next_alternative_tile_id(E->get().tile);
|
int next_id = tile_set_atlas_source->get_next_alternative_tile_id(E.tile);
|
||||||
undo_redo->add_do_method(tile_set_atlas_source, "create_alternative_tile", E->get().tile, next_id);
|
undo_redo->add_do_method(tile_set_atlas_source, "create_alternative_tile", E.tile, next_id);
|
||||||
array.push_back(E->get().tile);
|
array.push_back(E.tile);
|
||||||
array.push_back(next_id);
|
array.push_back(next_id);
|
||||||
undo_redo->add_undo_method(tile_set_atlas_source, "remove_alternative_tile", E->get().tile, next_id);
|
undo_redo->add_undo_method(tile_set_atlas_source, "remove_alternative_tile", E.tile, next_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
undo_redo->add_do_method(this, "_set_selection_from_array", array);
|
undo_redo->add_do_method(this, "_set_selection_from_array", array);
|
||||||
|
@ -1658,9 +1658,9 @@ void TileSetAtlasSourceEditor::_set_selection_from_array(Array p_selection) {
|
||||||
|
|
||||||
Array TileSetAtlasSourceEditor::_get_selection_as_array() {
|
Array TileSetAtlasSourceEditor::_get_selection_as_array() {
|
||||||
Array output;
|
Array output;
|
||||||
for (RBSet<TileSelection>::Element *E = selection.front(); E; E = E->next()) {
|
for (const TileSelection &E : selection) {
|
||||||
output.push_back(E->get().tile);
|
output.push_back(E.tile);
|
||||||
output.push_back(E->get().alternative);
|
output.push_back(E.alternative);
|
||||||
}
|
}
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
@ -1672,8 +1672,8 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_draw() {
|
||||||
|
|
||||||
// Draw the selected tile.
|
// Draw the selected tile.
|
||||||
if (tools_button_group->get_pressed_button() == tool_select_button) {
|
if (tools_button_group->get_pressed_button() == tool_select_button) {
|
||||||
for (RBSet<TileSelection>::Element *E = selection.front(); E; E = E->next()) {
|
for (const TileSelection &E : selection) {
|
||||||
TileSelection selected = E->get();
|
TileSelection selected = E;
|
||||||
if (selected.alternative == 0) {
|
if (selected.alternative == 0) {
|
||||||
// Draw the rect.
|
// Draw the rect.
|
||||||
for (int frame = 0; frame < tile_set_atlas_source->get_tile_animation_frames_count(selected.tile); frame++) {
|
for (int frame = 0; frame < tile_set_atlas_source->get_tile_animation_frames_count(selected.tile); frame++) {
|
||||||
|
@ -1722,9 +1722,9 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_draw() {
|
||||||
|
|
||||||
if (drag_type == DRAG_TYPE_REMOVE_TILES) {
|
if (drag_type == DRAG_TYPE_REMOVE_TILES) {
|
||||||
// Draw the tiles to be removed.
|
// Draw the tiles to be removed.
|
||||||
for (RBSet<Vector2i>::Element *E = drag_modified_tiles.front(); E; E = E->next()) {
|
for (const Vector2i &E : drag_modified_tiles) {
|
||||||
for (int frame = 0; frame < tile_set_atlas_source->get_tile_animation_frames_count(E->get()); frame++) {
|
for (int frame = 0; frame < tile_set_atlas_source->get_tile_animation_frames_count(E); frame++) {
|
||||||
tile_atlas_control->draw_rect(tile_set_atlas_source->get_tile_texture_region(E->get(), frame), Color(0.0, 0.0, 0.0), false);
|
tile_atlas_control->draw_rect(tile_set_atlas_source->get_tile_texture_region(E, frame), Color(0.0, 0.0, 0.0), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (drag_type == DRAG_TYPE_RECT_SELECT || drag_type == DRAG_TYPE_REMOVE_TILES_USING_RECT) {
|
} else if (drag_type == DRAG_TYPE_RECT_SELECT || drag_type == DRAG_TYPE_REMOVE_TILES_USING_RECT) {
|
||||||
|
@ -1749,8 +1749,8 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_draw() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Vector2i>::Element *E = to_paint.front(); E; E = E->next()) {
|
for (const Vector2i &E : to_paint) {
|
||||||
Vector2i coords = E->get();
|
Vector2i coords = E;
|
||||||
tile_atlas_control->draw_rect(tile_set_atlas_source->get_tile_texture_region(coords), color, false);
|
tile_atlas_control->draw_rect(tile_set_atlas_source->get_tile_texture_region(coords), color, false);
|
||||||
}
|
}
|
||||||
} else if (drag_type == DRAG_TYPE_CREATE_TILES_USING_RECT) {
|
} else if (drag_type == DRAG_TYPE_CREATE_TILES_USING_RECT) {
|
||||||
|
@ -1837,19 +1837,19 @@ void TileSetAtlasSourceEditor::_tile_atlas_control_unscaled_draw() {
|
||||||
|
|
||||||
// Draw the selection on top of other.
|
// Draw the selection on top of other.
|
||||||
if (tools_button_group->get_pressed_button() == tool_select_button) {
|
if (tools_button_group->get_pressed_button() == tool_select_button) {
|
||||||
for (RBSet<TileSelection>::Element *E = selection.front(); E; E = E->next()) {
|
for (const TileSelection &E : selection) {
|
||||||
if (E->get().alternative != 0) {
|
if (E.alternative != 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Rect2i texture_region = tile_set_atlas_source->get_tile_texture_region(E->get().tile);
|
Rect2i texture_region = tile_set_atlas_source->get_tile_texture_region(E.tile);
|
||||||
Vector2i position = texture_region.get_center() + tile_set_atlas_source->get_tile_effective_texture_offset(E->get().tile, 0);
|
Vector2i position = texture_region.get_center() + tile_set_atlas_source->get_tile_effective_texture_offset(E.tile, 0);
|
||||||
|
|
||||||
Transform2D xform = tile_atlas_control->get_parent_control()->get_transform();
|
Transform2D xform = tile_atlas_control->get_parent_control()->get_transform();
|
||||||
xform.translate(position);
|
xform.translate(position);
|
||||||
|
|
||||||
TileMapCell cell;
|
TileMapCell cell;
|
||||||
cell.source_id = tile_set_atlas_source_id;
|
cell.source_id = tile_set_atlas_source_id;
|
||||||
cell.set_atlas_coords(E->get().tile);
|
cell.set_atlas_coords(E.tile);
|
||||||
cell.alternative_tile = 0;
|
cell.alternative_tile = 0;
|
||||||
current_tile_data_editor->draw_over_tile(tile_atlas_control_unscaled, xform, cell, true);
|
current_tile_data_editor->draw_over_tile(tile_atlas_control_unscaled, xform, cell, true);
|
||||||
}
|
}
|
||||||
|
@ -1962,8 +1962,8 @@ void TileSetAtlasSourceEditor::_tile_alternatives_control_draw() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw selected tile.
|
// Draw selected tile.
|
||||||
for (RBSet<TileSelection>::Element *E = selection.front(); E; E = E->next()) {
|
for (const TileSelection &E : selection) {
|
||||||
TileSelection selected = E->get();
|
TileSelection selected = E;
|
||||||
if (selected.alternative >= 1) {
|
if (selected.alternative >= 1) {
|
||||||
Rect2i rect = tile_atlas_view->get_alternative_tile_rect(selected.tile, selected.alternative);
|
Rect2i rect = tile_atlas_view->get_alternative_tile_rect(selected.tile, selected.alternative);
|
||||||
if (rect != Rect2i()) {
|
if (rect != Rect2i()) {
|
||||||
|
@ -2005,11 +2005,11 @@ void TileSetAtlasSourceEditor::_tile_alternatives_control_unscaled_draw() {
|
||||||
|
|
||||||
// Draw the selection on top of other.
|
// Draw the selection on top of other.
|
||||||
if (tools_button_group->get_pressed_button() == tool_select_button) {
|
if (tools_button_group->get_pressed_button() == tool_select_button) {
|
||||||
for (RBSet<TileSelection>::Element *E = selection.front(); E; E = E->next()) {
|
for (const TileSelection &E : selection) {
|
||||||
if (E->get().alternative == 0) {
|
if (E.alternative == 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Rect2i rect = tile_atlas_view->get_alternative_tile_rect(E->get().tile, E->get().alternative);
|
Rect2i rect = tile_atlas_view->get_alternative_tile_rect(E.tile, E.alternative);
|
||||||
Vector2 position = rect.get_center();
|
Vector2 position = rect.get_center();
|
||||||
|
|
||||||
Transform2D xform = alternative_tiles_control->get_parent_control()->get_transform();
|
Transform2D xform = alternative_tiles_control->get_parent_control()->get_transform();
|
||||||
|
@ -2017,8 +2017,8 @@ void TileSetAtlasSourceEditor::_tile_alternatives_control_unscaled_draw() {
|
||||||
|
|
||||||
TileMapCell cell;
|
TileMapCell cell;
|
||||||
cell.source_id = tile_set_atlas_source_id;
|
cell.source_id = tile_set_atlas_source_id;
|
||||||
cell.set_atlas_coords(E->get().tile);
|
cell.set_atlas_coords(E.tile);
|
||||||
cell.alternative_tile = E->get().alternative;
|
cell.alternative_tile = E.alternative;
|
||||||
current_tile_data_editor->draw_over_tile(alternative_tiles_control_unscaled, xform, cell, true);
|
current_tile_data_editor->draw_over_tile(alternative_tiles_control_unscaled, xform, cell, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3215,8 +3215,8 @@ void VisualShaderEditor::_convert_constants_to_uniforms(bool p_vice_versa) {
|
||||||
const RBSet<int> ¤t_set = p_vice_versa ? selected_uniforms : selected_constants;
|
const RBSet<int> ¤t_set = p_vice_versa ? selected_uniforms : selected_constants;
|
||||||
RBSet<String> deleted_names;
|
RBSet<String> deleted_names;
|
||||||
|
|
||||||
for (RBSet<int>::Element *E = current_set.front(); E; E = E->next()) {
|
for (const int &E : current_set) {
|
||||||
int node_id = E->get();
|
int node_id = E;
|
||||||
Ref<VisualShaderNode> node = visual_shader->get_node(type_id, node_id);
|
Ref<VisualShaderNode> node = visual_shader->get_node(type_id, node_id);
|
||||||
bool caught = false;
|
bool caught = false;
|
||||||
Variant var;
|
Variant var;
|
||||||
|
|
|
@ -46,8 +46,8 @@ void POTGenerator::_print_all_translation_strings() {
|
||||||
print_line("msgid: " + E.key());
|
print_line("msgid: " + E.key());
|
||||||
print_line("context: " + v_md[i].ctx);
|
print_line("context: " + v_md[i].ctx);
|
||||||
print_line("msgid_plural: " + v_md[i].plural);
|
print_line("msgid_plural: " + v_md[i].plural);
|
||||||
for (RBSet<String>::Element *F = v_md[i].locations.front(); F; F = F->next()) {
|
for (const String &F : v_md[i].locations) {
|
||||||
print_line("location: " + F->get());
|
print_line("location: " + F);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -133,8 +133,8 @@ void POTGenerator::_write_to_pot(const String &p_file) {
|
||||||
file->store_line("");
|
file->store_line("");
|
||||||
|
|
||||||
// Write file locations.
|
// Write file locations.
|
||||||
for (RBSet<String>::Element *E = locations.front(); E; E = E->next()) {
|
for (const String &E : locations) {
|
||||||
file->store_line("#: " + E->get().trim_prefix("res://"));
|
file->store_line("#: " + E.trim_prefix("res://"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write context.
|
// Write context.
|
||||||
|
|
|
@ -2099,8 +2099,8 @@ void ProjectManager::_open_selected_projects() {
|
||||||
|
|
||||||
const RBSet<String> &selected_list = _project_list->get_selected_project_keys();
|
const RBSet<String> &selected_list = _project_list->get_selected_project_keys();
|
||||||
|
|
||||||
for (const RBSet<String>::Element *E = selected_list.front(); E; E = E->next()) {
|
for (const String &E : selected_list) {
|
||||||
const String &selected = E->get();
|
const String &selected = E;
|
||||||
String path = EditorSettings::get_singleton()->get("projects/" + selected);
|
String path = EditorSettings::get_singleton()->get("projects/" + selected);
|
||||||
String conf = path.plus_file("project.godot");
|
String conf = path.plus_file("project.godot");
|
||||||
|
|
||||||
|
@ -2327,8 +2327,8 @@ void ProjectManager::_rename_project() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<String>::Element *E = selected_list.front(); E; E = E->next()) {
|
for (const String &E : selected_list) {
|
||||||
const String &selected = E->get();
|
const String &selected = E;
|
||||||
String path = EditorSettings::get_singleton()->get("projects/" + selected);
|
String path = EditorSettings::get_singleton()->get("projects/" + selected);
|
||||||
npdialog->set_project_path(path);
|
npdialog->set_project_path(path);
|
||||||
npdialog->set_mode(ProjectDialog::MODE_RENAME);
|
npdialog->set_mode(ProjectDialog::MODE_RENAME);
|
||||||
|
@ -2412,8 +2412,8 @@ void ProjectManager::_files_dropped(PackedStringArray p_files) {
|
||||||
}
|
}
|
||||||
if (folders_set.size() > 0) {
|
if (folders_set.size() > 0) {
|
||||||
PackedStringArray folders;
|
PackedStringArray folders;
|
||||||
for (RBSet<String>::Element *E = folders_set.front(); E; E = E->next()) {
|
for (const String &E : folders_set) {
|
||||||
folders.push_back(E->get());
|
folders.push_back(E);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool confirm = true;
|
bool confirm = true;
|
||||||
|
|
|
@ -292,8 +292,8 @@ void ProjectSettingsEditor::_add_feature_overrides() {
|
||||||
feature_box->clear();
|
feature_box->clear();
|
||||||
feature_box->add_item(TTR("(All)"), 0); // So it is always on top.
|
feature_box->add_item(TTR("(All)"), 0); // So it is always on top.
|
||||||
int id = 1;
|
int id = 1;
|
||||||
for (RBSet<String>::Element *E = presets.front(); E; E = E->next()) {
|
for (const String &E : presets) {
|
||||||
feature_box->add_item(E->get(), id++);
|
feature_box->add_item(E, id++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -143,8 +143,8 @@ void CustomPropertyEditor::_menu_option(int p_which) {
|
||||||
}
|
}
|
||||||
|
|
||||||
file->clear_filters();
|
file->clear_filters();
|
||||||
for (RBSet<String>::Element *E = valid_extensions.front(); E; E = E->next()) {
|
for (const String &E : valid_extensions) {
|
||||||
file->add_filter("*." + E->get() + " ; " + E->get().to_upper());
|
file->add_filter("*." + E + " ; " + E.to_upper());
|
||||||
}
|
}
|
||||||
|
|
||||||
file->popup_file_dialog();
|
file->popup_file_dialog();
|
||||||
|
@ -890,8 +890,8 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant::
|
||||||
E = E->next();
|
E = E->next();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<String>::Element *j = valid_inheritors.front(); j; j = j->next()) {
|
for (const String &j : valid_inheritors) {
|
||||||
const String &t = j->get();
|
const String &t = j;
|
||||||
|
|
||||||
bool is_custom_resource = false;
|
bool is_custom_resource = false;
|
||||||
Ref<Texture2D> icon;
|
Ref<Texture2D> icon;
|
||||||
|
|
|
@ -2189,10 +2189,10 @@ bool Main::start() {
|
||||||
print_line("Merging docs...");
|
print_line("Merging docs...");
|
||||||
doc.merge_from(docsrc);
|
doc.merge_from(docsrc);
|
||||||
|
|
||||||
for (RBSet<String>::Element *E = checked_paths.front(); E; E = E->next()) {
|
for (const String &E : checked_paths) {
|
||||||
print_line("Erasing old docs at: " + E->get());
|
print_line("Erasing old docs at: " + E);
|
||||||
err = DocTools::erase_classes(E->get());
|
err = DocTools::erase_classes(E);
|
||||||
ERR_FAIL_COND_V_MSG(err != OK, false, "Error erasing old docs at: " + E->get() + ": " + itos(err));
|
ERR_FAIL_COND_V_MSG(err != OK, false, "Error erasing old docs at: " + E + ": " + itos(err));
|
||||||
}
|
}
|
||||||
|
|
||||||
print_line("Generating new docs...");
|
print_line("Generating new docs...");
|
||||||
|
|
|
@ -764,8 +764,8 @@ bool GDScript::_update_exports(bool *r_err, bool p_recursive_call, PlaceHolderSc
|
||||||
_update_exports_values(values, propnames);
|
_update_exports_values(values, propnames);
|
||||||
|
|
||||||
if (changed) {
|
if (changed) {
|
||||||
for (RBSet<PlaceHolderScriptInstance *>::Element *E = placeholders.front(); E; E = E->next()) {
|
for (PlaceHolderScriptInstance *E : placeholders) {
|
||||||
E->get()->update(propnames, values);
|
E->update(propnames, values);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
p_instance_to_update->update(propnames, values);
|
p_instance_to_update->update(propnames, values);
|
||||||
|
@ -790,8 +790,8 @@ void GDScript::update_exports() {
|
||||||
|
|
||||||
RBSet<ObjectID> copy = inheriters_cache; //might get modified
|
RBSet<ObjectID> copy = inheriters_cache; //might get modified
|
||||||
|
|
||||||
for (RBSet<ObjectID>::Element *E = copy.front(); E; E = E->next()) {
|
for (const ObjectID &E : copy) {
|
||||||
Object *id = ObjectDB::get_instance(E->get());
|
Object *id = ObjectDB::get_instance(E);
|
||||||
GDScript *s = Object::cast_to<GDScript>(id);
|
GDScript *s = Object::cast_to<GDScript>(id);
|
||||||
if (!s) {
|
if (!s) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -939,8 +939,8 @@ void GDScript::get_constants(HashMap<StringName, Variant> *p_constants) {
|
||||||
|
|
||||||
void GDScript::get_members(RBSet<StringName> *p_members) {
|
void GDScript::get_members(RBSet<StringName> *p_members) {
|
||||||
if (p_members) {
|
if (p_members) {
|
||||||
for (RBSet<StringName>::Element *E = members.front(); E; E = E->next()) {
|
for (const StringName &E : members) {
|
||||||
p_members->insert(E->get());
|
p_members->insert(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -794,7 +794,7 @@ GDScriptWorkspace::~GDScriptWorkspace() {
|
||||||
cached_parsers.insert(E.key);
|
cached_parsers.insert(E.key);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<String>::Element *E = cached_parsers.front(); E; E = E->next()) {
|
for (const String &E : cached_parsers) {
|
||||||
remove_cache_parser(E->get());
|
remove_cache_parser(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -483,15 +483,15 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
|
||||||
|
|
||||||
HashMap<int, List<Pair<Transform3D, IndexKey>>> multimesh_items;
|
HashMap<int, List<Pair<Transform3D, IndexKey>>> multimesh_items;
|
||||||
|
|
||||||
for (RBSet<IndexKey>::Element *E = g.cells.front(); E; E = E->next()) {
|
for (const IndexKey &E : g.cells) {
|
||||||
ERR_CONTINUE(!cell_map.has(E->get()));
|
ERR_CONTINUE(!cell_map.has(E));
|
||||||
const Cell &c = cell_map[E->get()];
|
const Cell &c = cell_map[E];
|
||||||
|
|
||||||
if (!mesh_library.is_valid() || !mesh_library->has_item(c.item)) {
|
if (!mesh_library.is_valid() || !mesh_library->has_item(c.item)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector3 cellpos = Vector3(E->get().x, E->get().y, E->get().z);
|
Vector3 cellpos = Vector3(E.x, E.y, E.z);
|
||||||
Vector3 ofs = _get_offset();
|
Vector3 ofs = _get_offset();
|
||||||
|
|
||||||
Transform3D xform;
|
Transform3D xform;
|
||||||
|
@ -507,7 +507,7 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
|
||||||
|
|
||||||
Pair<Transform3D, IndexKey> p;
|
Pair<Transform3D, IndexKey> p;
|
||||||
p.first = xform * mesh_library->get_item_mesh_transform(c.item);
|
p.first = xform * mesh_library->get_item_mesh_transform(c.item);
|
||||||
p.second = E->get();
|
p.second = E;
|
||||||
multimesh_items[c.item].push_back(p);
|
multimesh_items[c.item].push_back(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -540,7 +540,7 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
|
||||||
nm.region = region;
|
nm.region = region;
|
||||||
}
|
}
|
||||||
|
|
||||||
g.navmesh_ids[E->get()] = nm;
|
g.navmesh_ids[E] = nm;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -153,16 +153,16 @@ void LightmapRaycasterEmbree::commit() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void LightmapRaycasterEmbree::set_mesh_filter(const RBSet<int> &p_mesh_ids) {
|
void LightmapRaycasterEmbree::set_mesh_filter(const RBSet<int> &p_mesh_ids) {
|
||||||
for (RBSet<int>::Element *E = p_mesh_ids.front(); E; E = E->next()) {
|
for (const int &E : p_mesh_ids) {
|
||||||
rtcDisableGeometry(rtcGetGeometry(embree_scene, E->get()));
|
rtcDisableGeometry(rtcGetGeometry(embree_scene, E));
|
||||||
}
|
}
|
||||||
rtcCommitScene(embree_scene);
|
rtcCommitScene(embree_scene);
|
||||||
filter_meshes = p_mesh_ids;
|
filter_meshes = p_mesh_ids;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LightmapRaycasterEmbree::clear_mesh_filter() {
|
void LightmapRaycasterEmbree::clear_mesh_filter() {
|
||||||
for (RBSet<int>::Element *E = filter_meshes.front(); E; E = E->next()) {
|
for (const int &E : filter_meshes) {
|
||||||
rtcEnableGeometry(rtcGetGeometry(embree_scene, E->get()));
|
rtcEnableGeometry(rtcGetGeometry(embree_scene, E));
|
||||||
}
|
}
|
||||||
rtcCommitScene(embree_scene);
|
rtcCommitScene(embree_scene);
|
||||||
filter_meshes.clear();
|
filter_meshes.clear();
|
||||||
|
|
|
@ -223,9 +223,9 @@ void RaycastOcclusionCull::occluder_set_mesh(RID p_occluder, const PackedVector3
|
||||||
occluder->vertices = p_vertices;
|
occluder->vertices = p_vertices;
|
||||||
occluder->indices = p_indices;
|
occluder->indices = p_indices;
|
||||||
|
|
||||||
for (RBSet<InstanceID>::Element *E = occluder->users.front(); E; E = E->next()) {
|
for (const InstanceID &E : occluder->users) {
|
||||||
RID scenario_rid = E->get().scenario;
|
RID scenario_rid = E.scenario;
|
||||||
RID instance_rid = E->get().instance;
|
RID instance_rid = E.instance;
|
||||||
ERR_CONTINUE(!scenarios.has(scenario_rid));
|
ERR_CONTINUE(!scenarios.has(scenario_rid));
|
||||||
Scenario &scenario = scenarios[scenario_rid];
|
Scenario &scenario = scenarios[scenario_rid];
|
||||||
ERR_CONTINUE(!scenario.instances.has(instance_rid));
|
ERR_CONTINUE(!scenario.instances.has(instance_rid));
|
||||||
|
|
|
@ -95,16 +95,16 @@ void StaticRaycasterEmbree::commit() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void StaticRaycasterEmbree::set_mesh_filter(const RBSet<int> &p_mesh_ids) {
|
void StaticRaycasterEmbree::set_mesh_filter(const RBSet<int> &p_mesh_ids) {
|
||||||
for (RBSet<int>::Element *E = p_mesh_ids.front(); E; E = E->next()) {
|
for (const int &E : p_mesh_ids) {
|
||||||
rtcDisableGeometry(rtcGetGeometry(embree_scene, E->get()));
|
rtcDisableGeometry(rtcGetGeometry(embree_scene, E));
|
||||||
}
|
}
|
||||||
rtcCommitScene(embree_scene);
|
rtcCommitScene(embree_scene);
|
||||||
filter_meshes = p_mesh_ids;
|
filter_meshes = p_mesh_ids;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StaticRaycasterEmbree::clear_mesh_filter() {
|
void StaticRaycasterEmbree::clear_mesh_filter() {
|
||||||
for (RBSet<int>::Element *E = filter_meshes.front(); E; E = E->next()) {
|
for (const int &E : filter_meshes) {
|
||||||
rtcEnableGeometry(rtcGetGeometry(embree_scene, E->get()));
|
rtcEnableGeometry(rtcGetGeometry(embree_scene, E));
|
||||||
}
|
}
|
||||||
rtcCommitScene(embree_scene);
|
rtcCommitScene(embree_scene);
|
||||||
filter_meshes.clear();
|
filter_meshes.clear();
|
||||||
|
|
|
@ -1625,8 +1625,8 @@ void VisualScriptEditor::_remove_output_port(int p_id, int p_port) {
|
||||||
undo_redo->add_do_method(this, "_update_graph", p_id);
|
undo_redo->add_do_method(this, "_update_graph", p_id);
|
||||||
|
|
||||||
for (const KeyValue<int, RBSet<int>> &E : conn_map) {
|
for (const KeyValue<int, RBSet<int>> &E : conn_map) {
|
||||||
for (const RBSet<int>::Element *F = E.value.front(); F; F = F->next()) {
|
for (const int &F : E.value) {
|
||||||
undo_redo->add_undo_method(script.ptr(), "data_connect", p_id, p_port, E.key, F->get());
|
undo_redo->add_undo_method(script.ptr(), "data_connect", p_id, p_port, E.key, F);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1813,14 +1813,14 @@ void VisualScriptEditor::_on_nodes_paste() {
|
||||||
undo_redo->add_undo_method(script.ptr(), "remove_node", new_id);
|
undo_redo->add_undo_method(script.ptr(), "remove_node", new_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<VisualScript::SequenceConnection>::Element *E = clipboard->sequence_connections.front(); E; E = E->next()) {
|
for (const VisualScript::SequenceConnection &E : clipboard->sequence_connections) {
|
||||||
undo_redo->add_do_method(script.ptr(), "sequence_connect", remap[E->get().from_node], E->get().from_output, remap[E->get().to_node]);
|
undo_redo->add_do_method(script.ptr(), "sequence_connect", remap[E.from_node], E.from_output, remap[E.to_node]);
|
||||||
undo_redo->add_undo_method(script.ptr(), "sequence_disconnect", remap[E->get().from_node], E->get().from_output, remap[E->get().to_node]);
|
undo_redo->add_undo_method(script.ptr(), "sequence_disconnect", remap[E.from_node], E.from_output, remap[E.to_node]);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<VisualScript::DataConnection>::Element *E = clipboard->data_connections.front(); E; E = E->next()) {
|
for (const VisualScript::DataConnection &E : clipboard->data_connections) {
|
||||||
undo_redo->add_do_method(script.ptr(), "data_connect", remap[E->get().from_node], E->get().from_port, remap[E->get().to_node], E->get().to_port);
|
undo_redo->add_do_method(script.ptr(), "data_connect", remap[E.from_node], E.from_port, remap[E.to_node], E.to_port);
|
||||||
undo_redo->add_undo_method(script.ptr(), "data_disconnect", remap[E->get().from_node], E->get().from_port, remap[E->get().to_node], E->get().to_port);
|
undo_redo->add_undo_method(script.ptr(), "data_disconnect", remap[E.from_node], E.from_port, remap[E.to_node], E.to_port);
|
||||||
}
|
}
|
||||||
|
|
||||||
undo_redo->add_do_method(this, "_update_graph");
|
undo_redo->add_do_method(this, "_update_graph");
|
||||||
|
@ -1910,17 +1910,17 @@ void VisualScriptEditor::_on_nodes_duplicate() {
|
||||||
RBSet<int> to_select;
|
RBSet<int> to_select;
|
||||||
HashMap<int, int> remap;
|
HashMap<int, int> remap;
|
||||||
|
|
||||||
for (RBSet<int>::Element *F = to_duplicate.front(); F; F = F->next()) {
|
for (const int &F : to_duplicate) {
|
||||||
// Duplicate from the specific function but place it into the default func as it would lack the connections.
|
// Duplicate from the specific function but place it into the default func as it would lack the connections.
|
||||||
Ref<VisualScriptNode> node = script->get_node(F->get());
|
Ref<VisualScriptNode> node = script->get_node(F);
|
||||||
|
|
||||||
Ref<VisualScriptNode> dupe = node->duplicate(true);
|
Ref<VisualScriptNode> dupe = node->duplicate(true);
|
||||||
|
|
||||||
int new_id = idc++;
|
int new_id = idc++;
|
||||||
remap.insert(F->get(), new_id);
|
remap.insert(F, new_id);
|
||||||
|
|
||||||
to_select.insert(new_id);
|
to_select.insert(new_id);
|
||||||
undo_redo->add_do_method(script.ptr(), "add_node", new_id, dupe, script->get_node_position(F->get()) + Vector2(20, 20));
|
undo_redo->add_do_method(script.ptr(), "add_node", new_id, dupe, script->get_node_position(F) + Vector2(20, 20));
|
||||||
undo_redo->add_undo_method(script.ptr(), "remove_node", new_id);
|
undo_redo->add_undo_method(script.ptr(), "remove_node", new_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4201,9 +4201,9 @@ void VisualScriptEditor::_menu_option(int p_what) {
|
||||||
// If we still don't have a start node then,
|
// If we still don't have a start node then,
|
||||||
// run through the nodes and select the first tree node,
|
// run through the nodes and select the first tree node,
|
||||||
// i.e. node without any input sequence but output sequence.
|
// i.e. node without any input sequence but output sequence.
|
||||||
for (RBSet<int>::Element *E = nodes_from.front(); E; E = E->next()) {
|
for (const int &E : nodes_from) {
|
||||||
if (!nodes_to.has(E->get())) {
|
if (!nodes_to.has(E)) {
|
||||||
start_node = E->get();
|
start_node = E;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4272,13 +4272,13 @@ void VisualScriptEditor::_menu_option(int p_what) {
|
||||||
// Move the nodes.
|
// Move the nodes.
|
||||||
|
|
||||||
// Handles reconnection of sequence connections on undo, start here in case of issues.
|
// Handles reconnection of sequence connections on undo, start here in case of issues.
|
||||||
for (RBSet<VisualScript::SequenceConnection>::Element *E = seqext.front(); E; E = E->next()) {
|
for (const VisualScript::SequenceConnection &E : seqext) {
|
||||||
undo_redo->add_do_method(script.ptr(), "sequence_disconnect", E->get().from_node, E->get().from_output, E->get().to_node);
|
undo_redo->add_do_method(script.ptr(), "sequence_disconnect", E.from_node, E.from_output, E.to_node);
|
||||||
undo_redo->add_undo_method(script.ptr(), "sequence_connect", E->get().from_node, E->get().from_output, E->get().to_node);
|
undo_redo->add_undo_method(script.ptr(), "sequence_connect", E.from_node, E.from_output, E.to_node);
|
||||||
}
|
}
|
||||||
for (RBSet<VisualScript::DataConnection>::Element *E = dataext.front(); E; E = E->next()) {
|
for (const VisualScript::DataConnection &E : dataext) {
|
||||||
undo_redo->add_do_method(script.ptr(), "data_disconnect", E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
|
undo_redo->add_do_method(script.ptr(), "data_disconnect", E.from_node, E.from_port, E.to_node, E.to_port);
|
||||||
undo_redo->add_undo_method(script.ptr(), "data_connect", E->get().from_node, E->get().from_port, E->get().to_node, E->get().to_port);
|
undo_redo->add_undo_method(script.ptr(), "data_connect", E.from_node, E.from_port, E.to_node, E.to_port);
|
||||||
}
|
}
|
||||||
|
|
||||||
// I don't really think we need support for non sequenced functions at this moment.
|
// I don't really think we need support for non sequenced functions at this moment.
|
||||||
|
@ -4286,24 +4286,24 @@ void VisualScriptEditor::_menu_option(int p_what) {
|
||||||
|
|
||||||
// Could fail with the new changes, start here when searching for bugs in create function shortcut.
|
// Could fail with the new changes, start here when searching for bugs in create function shortcut.
|
||||||
int m = 1;
|
int m = 1;
|
||||||
for (RBSet<int>::Element *G = end_nodes.front(); G; G = G->next()) {
|
for (const int &G : end_nodes) {
|
||||||
Ref<VisualScriptReturn> ret_node;
|
Ref<VisualScriptReturn> ret_node;
|
||||||
ret_node.instantiate();
|
ret_node.instantiate();
|
||||||
|
|
||||||
int ret_id = fn_id + (m++);
|
int ret_id = fn_id + (m++);
|
||||||
selections.insert(ret_id);
|
selections.insert(ret_id);
|
||||||
Vector2 posi = _get_available_pos(false, script->get_node_position(G->get()) + Vector2(80, -100));
|
Vector2 posi = _get_available_pos(false, script->get_node_position(G) + Vector2(80, -100));
|
||||||
undo_redo->add_do_method(script.ptr(), "add_node", ret_id, ret_node, posi);
|
undo_redo->add_do_method(script.ptr(), "add_node", ret_id, ret_node, posi);
|
||||||
undo_redo->add_undo_method(script.ptr(), "remove_node", ret_id);
|
undo_redo->add_undo_method(script.ptr(), "remove_node", ret_id);
|
||||||
|
|
||||||
undo_redo->add_do_method(script.ptr(), "sequence_connect", G->get(), 0, ret_id);
|
undo_redo->add_do_method(script.ptr(), "sequence_connect", G, 0, ret_id);
|
||||||
// Add data outputs from each of the end_nodes.
|
// Add data outputs from each of the end_nodes.
|
||||||
Ref<VisualScriptNode> vsn = script->get_node(G->get());
|
Ref<VisualScriptNode> vsn = script->get_node(G);
|
||||||
if (vsn.is_valid() && vsn->get_output_value_port_count() > 0) {
|
if (vsn.is_valid() && vsn->get_output_value_port_count() > 0) {
|
||||||
ret_node->set_enable_return_value(true);
|
ret_node->set_enable_return_value(true);
|
||||||
// Use the zeroth data port cause that's the likely one that is planned to be used.
|
// Use the zeroth data port cause that's the likely one that is planned to be used.
|
||||||
ret_node->set_return_type(vsn->get_output_value_port_info(0).type);
|
ret_node->set_return_type(vsn->get_output_value_port_info(0).type);
|
||||||
undo_redo->add_do_method(script.ptr(), "data_connect", G->get(), 0, ret_id, 0);
|
undo_redo->add_do_method(script.ptr(), "data_connect", G, 0, ret_id, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -230,12 +230,12 @@ void VisualScript::_node_ports_changed(int p_id) {
|
||||||
{
|
{
|
||||||
List<SequenceConnection> to_remove;
|
List<SequenceConnection> to_remove;
|
||||||
|
|
||||||
for (RBSet<SequenceConnection>::Element *E = sequence_connections.front(); E; E = E->next()) {
|
for (const SequenceConnection &E : sequence_connections) {
|
||||||
if (E->get().from_node == p_id && E->get().from_output >= vsn->get_output_sequence_port_count()) {
|
if (E.from_node == p_id && E.from_output >= vsn->get_output_sequence_port_count()) {
|
||||||
to_remove.push_back(E->get());
|
to_remove.push_back(E);
|
||||||
}
|
}
|
||||||
if (E->get().to_node == p_id && !vsn->has_input_sequence_port()) {
|
if (E.to_node == p_id && !vsn->has_input_sequence_port()) {
|
||||||
to_remove.push_back(E->get());
|
to_remove.push_back(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,12 +248,12 @@ void VisualScript::_node_ports_changed(int p_id) {
|
||||||
{
|
{
|
||||||
List<DataConnection> to_remove;
|
List<DataConnection> to_remove;
|
||||||
|
|
||||||
for (RBSet<DataConnection>::Element *E = data_connections.front(); E; E = E->next()) {
|
for (const DataConnection &E : data_connections) {
|
||||||
if (E->get().from_node == p_id && E->get().from_port >= vsn->get_output_value_port_count()) {
|
if (E.from_node == p_id && E.from_port >= vsn->get_output_value_port_count()) {
|
||||||
to_remove.push_back(E->get());
|
to_remove.push_back(E);
|
||||||
}
|
}
|
||||||
if (E->get().to_node == p_id && E->get().to_port >= vsn->get_input_value_port_count()) {
|
if (E.to_node == p_id && E.to_port >= vsn->get_input_value_port_count()) {
|
||||||
to_remove.push_back(E->get());
|
to_remove.push_back(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,9 +292,9 @@ void VisualScript::remove_node(int p_id) {
|
||||||
{
|
{
|
||||||
List<SequenceConnection> to_remove;
|
List<SequenceConnection> to_remove;
|
||||||
|
|
||||||
for (RBSet<SequenceConnection>::Element *E = sequence_connections.front(); E; E = E->next()) {
|
for (const SequenceConnection &E : sequence_connections) {
|
||||||
if (E->get().from_node == p_id || E->get().to_node == p_id) {
|
if (E.from_node == p_id || E.to_node == p_id) {
|
||||||
to_remove.push_back(E->get());
|
to_remove.push_back(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -307,9 +307,9 @@ void VisualScript::remove_node(int p_id) {
|
||||||
{
|
{
|
||||||
List<DataConnection> to_remove;
|
List<DataConnection> to_remove;
|
||||||
|
|
||||||
for (RBSet<DataConnection>::Element *E = data_connections.front(); E; E = E->next()) {
|
for (const DataConnection &E : data_connections) {
|
||||||
if (E->get().from_node == p_id || E->get().to_node == p_id) {
|
if (E.from_node == p_id || E.to_node == p_id) {
|
||||||
to_remove.push_back(E->get());
|
to_remove.push_back(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -384,8 +384,8 @@ bool VisualScript::has_sequence_connection(int p_from_node, int p_from_output, i
|
||||||
}
|
}
|
||||||
|
|
||||||
void VisualScript::get_sequence_connection_list(List<SequenceConnection> *r_connection) const {
|
void VisualScript::get_sequence_connection_list(List<SequenceConnection> *r_connection) const {
|
||||||
for (const RBSet<SequenceConnection>::Element *E = sequence_connections.front(); E; E = E->next()) {
|
for (const SequenceConnection &E : sequence_connections) {
|
||||||
r_connection->push_back(E->get());
|
r_connection->push_back(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -426,8 +426,8 @@ bool VisualScript::has_data_connection(int p_from_node, int p_from_port, int p_t
|
||||||
}
|
}
|
||||||
|
|
||||||
bool VisualScript::is_input_value_port_connected(int p_node, int p_port) const {
|
bool VisualScript::is_input_value_port_connected(int p_node, int p_port) const {
|
||||||
for (const RBSet<DataConnection>::Element *E = data_connections.front(); E; E = E->next()) {
|
for (const DataConnection &E : data_connections) {
|
||||||
if (E->get().to_node == p_node && E->get().to_port == p_port) {
|
if (E.to_node == p_node && E.to_port == p_port) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -435,10 +435,10 @@ bool VisualScript::is_input_value_port_connected(int p_node, int p_port) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool VisualScript::get_input_value_port_connection_source(int p_node, int p_port, int *r_node, int *r_port) const {
|
bool VisualScript::get_input_value_port_connection_source(int p_node, int p_port, int *r_node, int *r_port) const {
|
||||||
for (const RBSet<DataConnection>::Element *E = data_connections.front(); E; E = E->next()) {
|
for (const DataConnection &E : data_connections) {
|
||||||
if (E->get().to_node == p_node && E->get().to_port == p_port) {
|
if (E.to_node == p_node && E.to_port == p_port) {
|
||||||
*r_node = E->get().from_node;
|
*r_node = E.from_node;
|
||||||
*r_port = E->get().from_port;
|
*r_port = E.from_port;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -446,8 +446,8 @@ bool VisualScript::get_input_value_port_connection_source(int p_node, int p_port
|
||||||
}
|
}
|
||||||
|
|
||||||
void VisualScript::get_data_connection_list(List<DataConnection> *r_connection) const {
|
void VisualScript::get_data_connection_list(List<DataConnection> *r_connection) const {
|
||||||
for (const RBSet<DataConnection>::Element *E = data_connections.front(); E; E = E->next()) {
|
for (const DataConnection &E : data_connections) {
|
||||||
r_connection->push_back(E->get());
|
r_connection->push_back(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -764,8 +764,8 @@ void VisualScript::_update_placeholders() {
|
||||||
values[p.name] = variables[E.key].default_value;
|
values[p.name] = variables[E.key].default_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<PlaceHolderScriptInstance *>::Element *E = placeholders.front(); E; E = E->next()) {
|
for (PlaceHolderScriptInstance *E : placeholders) {
|
||||||
E->get()->update(pinfo, values);
|
E->update(pinfo, values);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1078,19 +1078,19 @@ Dictionary VisualScript::_get_data() const {
|
||||||
d["nodes"] = nds;
|
d["nodes"] = nds;
|
||||||
|
|
||||||
Array seqconns;
|
Array seqconns;
|
||||||
for (const RBSet<SequenceConnection>::Element *F = sequence_connections.front(); F; F = F->next()) {
|
for (const SequenceConnection &F : sequence_connections) {
|
||||||
seqconns.push_back(F->get().from_node);
|
seqconns.push_back(F.from_node);
|
||||||
seqconns.push_back(F->get().from_output);
|
seqconns.push_back(F.from_output);
|
||||||
seqconns.push_back(F->get().to_node);
|
seqconns.push_back(F.to_node);
|
||||||
}
|
}
|
||||||
d["sequence_connections"] = seqconns;
|
d["sequence_connections"] = seqconns;
|
||||||
|
|
||||||
Array dataconns;
|
Array dataconns;
|
||||||
for (const RBSet<DataConnection>::Element *F = data_connections.front(); F; F = F->next()) {
|
for (const DataConnection &F : data_connections) {
|
||||||
dataconns.push_back(F->get().from_node);
|
dataconns.push_back(F.from_node);
|
||||||
dataconns.push_back(F->get().from_port);
|
dataconns.push_back(F.from_port);
|
||||||
dataconns.push_back(F->get().to_node);
|
dataconns.push_back(F.to_node);
|
||||||
dataconns.push_back(F->get().to_port);
|
dataconns.push_back(F.to_port);
|
||||||
}
|
}
|
||||||
d["data_connections"] = dataconns;
|
d["data_connections"] = dataconns;
|
||||||
|
|
||||||
|
@ -1869,23 +1869,23 @@ void VisualScriptInstance::create(const Ref<VisualScript> &p_script, Object *p_o
|
||||||
List<int> nd_queue;
|
List<int> nd_queue;
|
||||||
nd_queue.push_back(function.node);
|
nd_queue.push_back(function.node);
|
||||||
while (!nd_queue.is_empty()) {
|
while (!nd_queue.is_empty()) {
|
||||||
for (const RBSet<VisualScript::SequenceConnection>::Element *F = script->sequence_connections.front(); F; F = F->next()) {
|
for (const VisualScript::SequenceConnection &F : script->sequence_connections) {
|
||||||
if (nd_queue.front()->get() == F->get().from_node && !node_ids.has(F->get().to_node)) {
|
if (nd_queue.front()->get() == F.from_node && !node_ids.has(F.to_node)) {
|
||||||
nd_queue.push_back(F->get().to_node);
|
nd_queue.push_back(F.to_node);
|
||||||
node_ids.insert(F->get().to_node);
|
node_ids.insert(F.to_node);
|
||||||
}
|
}
|
||||||
if (nd_queue.front()->get() == F->get().from_node && !seqconns.has(F->get())) {
|
if (nd_queue.front()->get() == F.from_node && !seqconns.has(F)) {
|
||||||
seqconns.insert(F->get());
|
seqconns.insert(F);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
nd_queue.pop_front();
|
nd_queue.pop_front();
|
||||||
}
|
}
|
||||||
HashMap<int, HashMap<int, Pair<int, int>>> dc_lut; // :: to -> to_port -> (from, from_port)
|
HashMap<int, HashMap<int, Pair<int, int>>> dc_lut; // :: to -> to_port -> (from, from_port)
|
||||||
for (const RBSet<VisualScript::DataConnection>::Element *F = script->data_connections.front(); F; F = F->next()) {
|
for (const VisualScript::DataConnection &F : script->data_connections) {
|
||||||
dc_lut[F->get().to_node][F->get().to_port] = Pair<int, int>(F->get().from_node, F->get().from_port);
|
dc_lut[F.to_node][F.to_port] = Pair<int, int>(F.from_node, F.from_port);
|
||||||
}
|
}
|
||||||
for (const RBSet<int>::Element *F = node_ids.front(); F; F = F->next()) {
|
for (const int &F : node_ids) {
|
||||||
nd_queue.push_back(F->get());
|
nd_queue.push_back(F);
|
||||||
}
|
}
|
||||||
List<int> dc_keys;
|
List<int> dc_keys;
|
||||||
while (!nd_queue.is_empty()) {
|
while (!nd_queue.is_empty()) {
|
||||||
|
@ -1907,15 +1907,15 @@ void VisualScriptInstance::create(const Ref<VisualScript> &p_script, Object *p_o
|
||||||
|
|
||||||
//Multiple passes are required to set up this complex thing..
|
//Multiple passes are required to set up this complex thing..
|
||||||
//First create the nodes.
|
//First create the nodes.
|
||||||
for (const RBSet<int>::Element *F = node_ids.front(); F; F = F->next()) {
|
for (const int &F : node_ids) {
|
||||||
Ref<VisualScriptNode> node = script->nodes[F->get()].node;
|
Ref<VisualScriptNode> node = script->nodes[F].node;
|
||||||
|
|
||||||
VisualScriptNodeInstance *instance = node->instantiate(this); // Create instance.
|
VisualScriptNodeInstance *instance = node->instantiate(this); // Create instance.
|
||||||
ERR_FAIL_COND(!instance);
|
ERR_FAIL_COND(!instance);
|
||||||
|
|
||||||
instance->base = node.ptr();
|
instance->base = node.ptr();
|
||||||
|
|
||||||
instance->id = F->get();
|
instance->id = F;
|
||||||
instance->input_port_count = node->get_input_value_port_count();
|
instance->input_port_count = node->get_input_value_port_count();
|
||||||
instance->input_ports = nullptr;
|
instance->input_ports = nullptr;
|
||||||
instance->output_port_count = node->get_output_value_port_count();
|
instance->output_port_count = node->get_output_value_port_count();
|
||||||
|
@ -1975,14 +1975,14 @@ void VisualScriptInstance::create(const Ref<VisualScript> &p_script, Object *p_o
|
||||||
max_input_args = MAX(max_input_args, instance->input_port_count);
|
max_input_args = MAX(max_input_args, instance->input_port_count);
|
||||||
max_output_args = MAX(max_output_args, instance->output_port_count);
|
max_output_args = MAX(max_output_args, instance->output_port_count);
|
||||||
|
|
||||||
instances[F->get()] = instance;
|
instances[F] = instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
function.trash_pos = function.max_stack++; // create pos for trash
|
function.trash_pos = function.max_stack++; // create pos for trash
|
||||||
|
|
||||||
// Second pass, do data connections.
|
// Second pass, do data connections.
|
||||||
for (const RBSet<VisualScript::DataConnection>::Element *F = dataconns.front(); F; F = F->next()) {
|
for (const VisualScript::DataConnection &F : dataconns) {
|
||||||
VisualScript::DataConnection dc = F->get();
|
VisualScript::DataConnection dc = F;
|
||||||
ERR_CONTINUE(!instances.has(dc.from_node));
|
ERR_CONTINUE(!instances.has(dc.from_node));
|
||||||
VisualScriptNodeInstance *from = instances[dc.from_node];
|
VisualScriptNodeInstance *from = instances[dc.from_node];
|
||||||
ERR_CONTINUE(!instances.has(dc.to_node));
|
ERR_CONTINUE(!instances.has(dc.to_node));
|
||||||
|
@ -2008,8 +2008,8 @@ void VisualScriptInstance::create(const Ref<VisualScript> &p_script, Object *p_o
|
||||||
}
|
}
|
||||||
|
|
||||||
// Third pass, do sequence connections.
|
// Third pass, do sequence connections.
|
||||||
for (const RBSet<VisualScript::SequenceConnection>::Element *F = seqconns.front(); F; F = F->next()) {
|
for (const VisualScript::SequenceConnection &F : seqconns) {
|
||||||
VisualScript::SequenceConnection sc = F->get();
|
VisualScript::SequenceConnection sc = F;
|
||||||
ERR_CONTINUE(!instances.has(sc.from_node));
|
ERR_CONTINUE(!instances.has(sc.from_node));
|
||||||
VisualScriptNodeInstance *from = instances[sc.from_node];
|
VisualScriptNodeInstance *from = instances[sc.from_node];
|
||||||
ERR_CONTINUE(!instances.has(sc.to_node));
|
ERR_CONTINUE(!instances.has(sc.to_node));
|
||||||
|
@ -2022,11 +2022,11 @@ void VisualScriptInstance::create(const Ref<VisualScript> &p_script, Object *p_o
|
||||||
//fourth pass:
|
//fourth pass:
|
||||||
// 1) unassigned input ports to default values
|
// 1) unassigned input ports to default values
|
||||||
// 2) connect unassigned output ports to trash
|
// 2) connect unassigned output ports to trash
|
||||||
for (const RBSet<int>::Element *F = node_ids.front(); F; F = F->next()) {
|
for (const int &F : node_ids) {
|
||||||
ERR_CONTINUE(!instances.has(F->get()));
|
ERR_CONTINUE(!instances.has(F));
|
||||||
|
|
||||||
Ref<VisualScriptNode> node = script->nodes[F->get()].node;
|
Ref<VisualScriptNode> node = script->nodes[F].node;
|
||||||
VisualScriptNodeInstance *instance = instances[F->get()];
|
VisualScriptNodeInstance *instance = instances[F];
|
||||||
|
|
||||||
// Connect to default values.
|
// Connect to default values.
|
||||||
for (int i = 0; i < instance->input_port_count; i++) {
|
for (int i = 0; i < instance->input_port_count; i++) {
|
||||||
|
|
|
@ -1350,8 +1350,8 @@ Error EditorExportPlatformIOS::_export_ios_plugins(const Ref<EditorExportPreset>
|
||||||
// Update Linker Flag Values
|
// Update Linker Flag Values
|
||||||
{
|
{
|
||||||
String result_linker_flags = " ";
|
String result_linker_flags = " ";
|
||||||
for (RBSet<String>::Element *E = plugin_linker_flags.front(); E; E = E->next()) {
|
for (const String &E : plugin_linker_flags) {
|
||||||
const String &flag = E->get();
|
const String &flag = E;
|
||||||
|
|
||||||
if (flag.length() == 0) {
|
if (flag.length() == 0) {
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -810,8 +810,8 @@ void TileMap::_update_dirty_quadrants() {
|
||||||
for (SelfList<TileMapQuadrant> *q = dirty_quadrant_list.first(); q; q = q->next()) {
|
for (SelfList<TileMapQuadrant> *q = dirty_quadrant_list.first(); q; q = q->next()) {
|
||||||
q->self()->map_to_world.clear();
|
q->self()->map_to_world.clear();
|
||||||
q->self()->world_to_map.clear();
|
q->self()->world_to_map.clear();
|
||||||
for (RBSet<Vector2i>::Element *E = q->self()->cells.front(); E; E = E->next()) {
|
for (const Vector2i &E : q->self()->cells) {
|
||||||
Vector2i pk = E->get();
|
Vector2i pk = E;
|
||||||
Vector2i pk_world_coords = map_to_world(pk);
|
Vector2i pk_world_coords = map_to_world(pk);
|
||||||
q->self()->map_to_world[pk] = pk_world_coords;
|
q->self()->map_to_world[pk] = pk_world_coords;
|
||||||
q->self()->world_to_map[pk_world_coords] = pk;
|
q->self()->world_to_map[pk_world_coords] = pk;
|
||||||
|
@ -1250,8 +1250,8 @@ void TileMap::_rendering_draw_quadrant_debug(TileMapQuadrant *p_quadrant) {
|
||||||
// Draw a placeholder for scenes needing one.
|
// Draw a placeholder for scenes needing one.
|
||||||
RenderingServer *rs = RenderingServer::get_singleton();
|
RenderingServer *rs = RenderingServer::get_singleton();
|
||||||
Vector2 quadrant_pos = map_to_world(p_quadrant->coords * get_effective_quadrant_size(p_quadrant->layer));
|
Vector2 quadrant_pos = map_to_world(p_quadrant->coords * get_effective_quadrant_size(p_quadrant->layer));
|
||||||
for (RBSet<Vector2i>::Element *E_cell = p_quadrant->cells.front(); E_cell; E_cell = E_cell->next()) {
|
for (const Vector2i &E_cell : p_quadrant->cells) {
|
||||||
const TileMapCell &c = get_cell(p_quadrant->layer, E_cell->get(), true);
|
const TileMapCell &c = get_cell(p_quadrant->layer, E_cell, true);
|
||||||
|
|
||||||
TileSetSource *source;
|
TileSetSource *source;
|
||||||
if (tile_set->has_source(c.source_id)) {
|
if (tile_set->has_source(c.source_id)) {
|
||||||
|
@ -1281,7 +1281,7 @@ void TileMap::_rendering_draw_quadrant_debug(TileMapQuadrant *p_quadrant) {
|
||||||
|
|
||||||
// Draw a placeholder tile.
|
// Draw a placeholder tile.
|
||||||
Transform2D xform;
|
Transform2D xform;
|
||||||
xform.set_origin(map_to_world(E_cell->get()) - quadrant_pos);
|
xform.set_origin(map_to_world(E_cell) - quadrant_pos);
|
||||||
rs->canvas_item_add_set_transform(p_quadrant->debug_canvas_item, xform);
|
rs->canvas_item_add_set_transform(p_quadrant->debug_canvas_item, xform);
|
||||||
rs->canvas_item_add_circle(p_quadrant->debug_canvas_item, Vector2(), MIN(tile_set->get_tile_size().x, tile_set->get_tile_size().y) / 4.0, color);
|
rs->canvas_item_add_circle(p_quadrant->debug_canvas_item, Vector2(), MIN(tile_set->get_tile_size().x, tile_set->get_tile_size().y) / 4.0, color);
|
||||||
}
|
}
|
||||||
|
@ -1464,8 +1464,8 @@ void TileMap::_physics_update_dirty_quadrants(SelfList<TileMapQuadrant>::List &r
|
||||||
q.bodies.clear();
|
q.bodies.clear();
|
||||||
|
|
||||||
// Recreate bodies and shapes.
|
// Recreate bodies and shapes.
|
||||||
for (RBSet<Vector2i>::Element *E_cell = q.cells.front(); E_cell; E_cell = E_cell->next()) {
|
for (const Vector2i &E_cell : q.cells) {
|
||||||
TileMapCell c = get_cell(q.layer, E_cell->get(), true);
|
TileMapCell c = get_cell(q.layer, E_cell, true);
|
||||||
|
|
||||||
TileSetSource *source;
|
TileSetSource *source;
|
||||||
if (tile_set->has_source(c.source_id)) {
|
if (tile_set->has_source(c.source_id)) {
|
||||||
|
@ -1478,8 +1478,8 @@ void TileMap::_physics_update_dirty_quadrants(SelfList<TileMapQuadrant>::List &r
|
||||||
TileSetAtlasSource *atlas_source = Object::cast_to<TileSetAtlasSource>(source);
|
TileSetAtlasSource *atlas_source = Object::cast_to<TileSetAtlasSource>(source);
|
||||||
if (atlas_source) {
|
if (atlas_source) {
|
||||||
const TileData *tile_data;
|
const TileData *tile_data;
|
||||||
if (q.runtime_tile_data_cache.has(E_cell->get())) {
|
if (q.runtime_tile_data_cache.has(E_cell)) {
|
||||||
tile_data = q.runtime_tile_data_cache[E_cell->get()];
|
tile_data = q.runtime_tile_data_cache[E_cell];
|
||||||
} else {
|
} else {
|
||||||
tile_data = atlas_source->get_tile_data(c.get_atlas_coords(), c.alternative_tile);
|
tile_data = atlas_source->get_tile_data(c.get_atlas_coords(), c.alternative_tile);
|
||||||
}
|
}
|
||||||
|
@ -1490,12 +1490,12 @@ void TileMap::_physics_update_dirty_quadrants(SelfList<TileMapQuadrant>::List &r
|
||||||
|
|
||||||
// Create the body.
|
// Create the body.
|
||||||
RID body = ps->body_create();
|
RID body = ps->body_create();
|
||||||
bodies_coords[body] = E_cell->get();
|
bodies_coords[body] = E_cell;
|
||||||
ps->body_set_mode(body, collision_animatable ? PhysicsServer2D::BODY_MODE_KINEMATIC : PhysicsServer2D::BODY_MODE_STATIC);
|
ps->body_set_mode(body, collision_animatable ? PhysicsServer2D::BODY_MODE_KINEMATIC : PhysicsServer2D::BODY_MODE_STATIC);
|
||||||
ps->body_set_space(body, space);
|
ps->body_set_space(body, space);
|
||||||
|
|
||||||
Transform2D xform;
|
Transform2D xform;
|
||||||
xform.set_origin(map_to_world(E_cell->get()));
|
xform.set_origin(map_to_world(E_cell));
|
||||||
xform = global_transform * xform;
|
xform = global_transform * xform;
|
||||||
ps->body_set_state(body, PhysicsServer2D::BODY_STATE_TRANSFORM, xform);
|
ps->body_set_state(body, PhysicsServer2D::BODY_STATE_TRANSFORM, xform);
|
||||||
|
|
||||||
|
@ -1661,8 +1661,8 @@ void TileMap::_navigation_update_dirty_quadrants(SelfList<TileMapQuadrant>::List
|
||||||
q.navigation_regions.clear();
|
q.navigation_regions.clear();
|
||||||
|
|
||||||
// Get the navigation polygons and create regions.
|
// Get the navigation polygons and create regions.
|
||||||
for (RBSet<Vector2i>::Element *E_cell = q.cells.front(); E_cell; E_cell = E_cell->next()) {
|
for (const Vector2i &E_cell : q.cells) {
|
||||||
TileMapCell c = get_cell(q.layer, E_cell->get(), true);
|
TileMapCell c = get_cell(q.layer, E_cell, true);
|
||||||
|
|
||||||
TileSetSource *source;
|
TileSetSource *source;
|
||||||
if (tile_set->has_source(c.source_id)) {
|
if (tile_set->has_source(c.source_id)) {
|
||||||
|
@ -1675,12 +1675,12 @@ void TileMap::_navigation_update_dirty_quadrants(SelfList<TileMapQuadrant>::List
|
||||||
TileSetAtlasSource *atlas_source = Object::cast_to<TileSetAtlasSource>(source);
|
TileSetAtlasSource *atlas_source = Object::cast_to<TileSetAtlasSource>(source);
|
||||||
if (atlas_source) {
|
if (atlas_source) {
|
||||||
const TileData *tile_data;
|
const TileData *tile_data;
|
||||||
if (q.runtime_tile_data_cache.has(E_cell->get())) {
|
if (q.runtime_tile_data_cache.has(E_cell)) {
|
||||||
tile_data = q.runtime_tile_data_cache[E_cell->get()];
|
tile_data = q.runtime_tile_data_cache[E_cell];
|
||||||
} else {
|
} else {
|
||||||
tile_data = atlas_source->get_tile_data(c.get_atlas_coords(), c.alternative_tile);
|
tile_data = atlas_source->get_tile_data(c.get_atlas_coords(), c.alternative_tile);
|
||||||
}
|
}
|
||||||
q.navigation_regions[E_cell->get()].resize(tile_set->get_navigation_layers_count());
|
q.navigation_regions[E_cell].resize(tile_set->get_navigation_layers_count());
|
||||||
|
|
||||||
for (int layer_index = 0; layer_index < tile_set->get_navigation_layers_count(); layer_index++) {
|
for (int layer_index = 0; layer_index < tile_set->get_navigation_layers_count(); layer_index++) {
|
||||||
Ref<NavigationPolygon> navpoly;
|
Ref<NavigationPolygon> navpoly;
|
||||||
|
@ -1688,13 +1688,13 @@ void TileMap::_navigation_update_dirty_quadrants(SelfList<TileMapQuadrant>::List
|
||||||
|
|
||||||
if (navpoly.is_valid()) {
|
if (navpoly.is_valid()) {
|
||||||
Transform2D tile_transform;
|
Transform2D tile_transform;
|
||||||
tile_transform.set_origin(map_to_world(E_cell->get()));
|
tile_transform.set_origin(map_to_world(E_cell));
|
||||||
|
|
||||||
RID region = NavigationServer2D::get_singleton()->region_create();
|
RID region = NavigationServer2D::get_singleton()->region_create();
|
||||||
NavigationServer2D::get_singleton()->region_set_map(region, get_world_2d()->get_navigation_map());
|
NavigationServer2D::get_singleton()->region_set_map(region, get_world_2d()->get_navigation_map());
|
||||||
NavigationServer2D::get_singleton()->region_set_transform(region, tilemap_xform * tile_transform);
|
NavigationServer2D::get_singleton()->region_set_transform(region, tilemap_xform * tile_transform);
|
||||||
NavigationServer2D::get_singleton()->region_set_navpoly(region, navpoly);
|
NavigationServer2D::get_singleton()->region_set_navpoly(region, navpoly);
|
||||||
q.navigation_regions[E_cell->get()].write[layer_index] = region;
|
q.navigation_regions[E_cell].write[layer_index] = region;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1750,8 +1750,8 @@ void TileMap::_navigation_draw_quadrant_debug(TileMapQuadrant *p_quadrant) {
|
||||||
|
|
||||||
Vector2 quadrant_pos = map_to_world(p_quadrant->coords * get_effective_quadrant_size(p_quadrant->layer));
|
Vector2 quadrant_pos = map_to_world(p_quadrant->coords * get_effective_quadrant_size(p_quadrant->layer));
|
||||||
|
|
||||||
for (RBSet<Vector2i>::Element *E_cell = p_quadrant->cells.front(); E_cell; E_cell = E_cell->next()) {
|
for (const Vector2i &E_cell : p_quadrant->cells) {
|
||||||
TileMapCell c = get_cell(p_quadrant->layer, E_cell->get(), true);
|
TileMapCell c = get_cell(p_quadrant->layer, E_cell, true);
|
||||||
|
|
||||||
TileSetSource *source;
|
TileSetSource *source;
|
||||||
if (tile_set->has_source(c.source_id)) {
|
if (tile_set->has_source(c.source_id)) {
|
||||||
|
@ -1764,14 +1764,14 @@ void TileMap::_navigation_draw_quadrant_debug(TileMapQuadrant *p_quadrant) {
|
||||||
TileSetAtlasSource *atlas_source = Object::cast_to<TileSetAtlasSource>(source);
|
TileSetAtlasSource *atlas_source = Object::cast_to<TileSetAtlasSource>(source);
|
||||||
if (atlas_source) {
|
if (atlas_source) {
|
||||||
const TileData *tile_data;
|
const TileData *tile_data;
|
||||||
if (p_quadrant->runtime_tile_data_cache.has(E_cell->get())) {
|
if (p_quadrant->runtime_tile_data_cache.has(E_cell)) {
|
||||||
tile_data = p_quadrant->runtime_tile_data_cache[E_cell->get()];
|
tile_data = p_quadrant->runtime_tile_data_cache[E_cell];
|
||||||
} else {
|
} else {
|
||||||
tile_data = atlas_source->get_tile_data(c.get_atlas_coords(), c.alternative_tile);
|
tile_data = atlas_source->get_tile_data(c.get_atlas_coords(), c.alternative_tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
Transform2D xform;
|
Transform2D xform;
|
||||||
xform.set_origin(map_to_world(E_cell->get()) - quadrant_pos);
|
xform.set_origin(map_to_world(E_cell) - quadrant_pos);
|
||||||
rs->canvas_item_add_set_transform(p_quadrant->debug_canvas_item, xform);
|
rs->canvas_item_add_set_transform(p_quadrant->debug_canvas_item, xform);
|
||||||
|
|
||||||
for (int layer_index = 0; layer_index < tile_set->get_navigation_layers_count(); layer_index++) {
|
for (int layer_index = 0; layer_index < tile_set->get_navigation_layers_count(); layer_index++) {
|
||||||
|
@ -1825,8 +1825,8 @@ void TileMap::_scenes_update_dirty_quadrants(SelfList<TileMapQuadrant>::List &r_
|
||||||
q.scenes.clear();
|
q.scenes.clear();
|
||||||
|
|
||||||
// Recreate the scenes.
|
// Recreate the scenes.
|
||||||
for (RBSet<Vector2i>::Element *E_cell = q.cells.front(); E_cell; E_cell = E_cell->next()) {
|
for (const Vector2i &E_cell : q.cells) {
|
||||||
const TileMapCell &c = get_cell(q.layer, E_cell->get(), true);
|
const TileMapCell &c = get_cell(q.layer, E_cell, true);
|
||||||
|
|
||||||
TileSetSource *source;
|
TileSetSource *source;
|
||||||
if (tile_set->has_source(c.source_id)) {
|
if (tile_set->has_source(c.source_id)) {
|
||||||
|
@ -1845,13 +1845,13 @@ void TileMap::_scenes_update_dirty_quadrants(SelfList<TileMapQuadrant>::List &r_
|
||||||
Control *scene_as_control = Object::cast_to<Control>(scene);
|
Control *scene_as_control = Object::cast_to<Control>(scene);
|
||||||
Node2D *scene_as_node2d = Object::cast_to<Node2D>(scene);
|
Node2D *scene_as_node2d = Object::cast_to<Node2D>(scene);
|
||||||
if (scene_as_control) {
|
if (scene_as_control) {
|
||||||
scene_as_control->set_position(map_to_world(E_cell->get()) + scene_as_control->get_position());
|
scene_as_control->set_position(map_to_world(E_cell) + scene_as_control->get_position());
|
||||||
} else if (scene_as_node2d) {
|
} else if (scene_as_node2d) {
|
||||||
Transform2D xform;
|
Transform2D xform;
|
||||||
xform.set_origin(map_to_world(E_cell->get()));
|
xform.set_origin(map_to_world(E_cell));
|
||||||
scene_as_node2d->set_transform(xform * scene_as_node2d->get_transform());
|
scene_as_node2d->set_transform(xform * scene_as_node2d->get_transform());
|
||||||
}
|
}
|
||||||
q.scenes[E_cell->get()] = scene->get_name();
|
q.scenes[E_cell] = scene->get_name();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1883,8 +1883,8 @@ void TileMap::_scenes_draw_quadrant_debug(TileMapQuadrant *p_quadrant) {
|
||||||
// Draw a placeholder for scenes needing one.
|
// Draw a placeholder for scenes needing one.
|
||||||
RenderingServer *rs = RenderingServer::get_singleton();
|
RenderingServer *rs = RenderingServer::get_singleton();
|
||||||
Vector2 quadrant_pos = map_to_world(p_quadrant->coords * get_effective_quadrant_size(p_quadrant->layer));
|
Vector2 quadrant_pos = map_to_world(p_quadrant->coords * get_effective_quadrant_size(p_quadrant->layer));
|
||||||
for (RBSet<Vector2i>::Element *E_cell = p_quadrant->cells.front(); E_cell; E_cell = E_cell->next()) {
|
for (const Vector2i &E_cell : p_quadrant->cells) {
|
||||||
const TileMapCell &c = get_cell(p_quadrant->layer, E_cell->get(), true);
|
const TileMapCell &c = get_cell(p_quadrant->layer, E_cell, true);
|
||||||
|
|
||||||
TileSetSource *source;
|
TileSetSource *source;
|
||||||
if (tile_set->has_source(c.source_id)) {
|
if (tile_set->has_source(c.source_id)) {
|
||||||
|
@ -1912,7 +1912,7 @@ void TileMap::_scenes_draw_quadrant_debug(TileMapQuadrant *p_quadrant) {
|
||||||
|
|
||||||
// Draw a placeholder tile.
|
// Draw a placeholder tile.
|
||||||
Transform2D xform;
|
Transform2D xform;
|
||||||
xform.set_origin(map_to_world(E_cell->get()) - quadrant_pos);
|
xform.set_origin(map_to_world(E_cell) - quadrant_pos);
|
||||||
rs->canvas_item_add_set_transform(p_quadrant->debug_canvas_item, xform);
|
rs->canvas_item_add_set_transform(p_quadrant->debug_canvas_item, xform);
|
||||||
rs->canvas_item_add_circle(p_quadrant->debug_canvas_item, Vector2(), MIN(tile_set->get_tile_size().x, tile_set->get_tile_size().y) / 4.0, color);
|
rs->canvas_item_add_circle(p_quadrant->debug_canvas_item, Vector2(), MIN(tile_set->get_tile_size().x, tile_set->get_tile_size().y) / 4.0, color);
|
||||||
}
|
}
|
||||||
|
@ -2189,19 +2189,19 @@ RBSet<TileMap::TerrainConstraint> TileMap::get_terrain_constraints_from_removed_
|
||||||
|
|
||||||
// Build a set of dummy constraints get the constrained points.
|
// Build a set of dummy constraints get the constrained points.
|
||||||
RBSet<TerrainConstraint> dummy_constraints;
|
RBSet<TerrainConstraint> dummy_constraints;
|
||||||
for (RBSet<Vector2i>::Element *E = p_to_replace.front(); E; E = E->next()) {
|
for (const Vector2i &E : p_to_replace) {
|
||||||
for (int i = 0; i < TileSet::CELL_NEIGHBOR_MAX; i++) { // Iterates over sides.
|
for (int i = 0; i < TileSet::CELL_NEIGHBOR_MAX; i++) { // Iterates over sides.
|
||||||
TileSet::CellNeighbor bit = TileSet::CellNeighbor(i);
|
TileSet::CellNeighbor bit = TileSet::CellNeighbor(i);
|
||||||
if (tile_set->is_valid_peering_bit_terrain(p_terrain_set, bit)) {
|
if (tile_set->is_valid_peering_bit_terrain(p_terrain_set, bit)) {
|
||||||
dummy_constraints.insert(TerrainConstraint(this, E->get(), bit, -1));
|
dummy_constraints.insert(TerrainConstraint(this, E, bit, -1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// For each constrained point, we get all overlapping tiles, and select the most adequate terrain for it.
|
// For each constrained point, we get all overlapping tiles, and select the most adequate terrain for it.
|
||||||
RBSet<TerrainConstraint> constraints;
|
RBSet<TerrainConstraint> constraints;
|
||||||
for (RBSet<TerrainConstraint>::Element *E = dummy_constraints.front(); E; E = E->next()) {
|
for (const TerrainConstraint &E : dummy_constraints) {
|
||||||
TerrainConstraint c = E->get();
|
TerrainConstraint c = E;
|
||||||
|
|
||||||
HashMap<int, int> terrain_count;
|
HashMap<int, int> terrain_count;
|
||||||
|
|
||||||
|
@ -2348,8 +2348,8 @@ HashMap<Vector2i, TileSet::TerrainsPattern> TileMap::terrain_wave_function_colla
|
||||||
|
|
||||||
// Add the new constraints from the added tiles.
|
// Add the new constraints from the added tiles.
|
||||||
RBSet<TerrainConstraint> new_constraints = get_terrain_constraints_from_added_tile(selected_cell_to_replace, p_terrain_set, selected_terrain_tile_pattern);
|
RBSet<TerrainConstraint> new_constraints = get_terrain_constraints_from_added_tile(selected_cell_to_replace, p_terrain_set, selected_terrain_tile_pattern);
|
||||||
for (RBSet<TerrainConstraint>::Element *E_constraint = new_constraints.front(); E_constraint; E_constraint = E_constraint->next()) {
|
for (const TerrainConstraint &E_constraint : new_constraints) {
|
||||||
constraints.insert(E_constraint->get());
|
constraints.insert(E_constraint);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compute valid tiles again for neighbors.
|
// Compute valid tiles again for neighbors.
|
||||||
|
@ -2425,8 +2425,8 @@ void TileMap::fix_invalid_tiles() {
|
||||||
coords.insert(E.key);
|
coords.insert(E.key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (RBSet<Vector2i>::Element *E = coords.front(); E; E = E->next()) {
|
for (const Vector2i &E : coords) {
|
||||||
set_cell(i, E->get(), TileSet::INVALID_SOURCE, TileSetSource::INVALID_ATLAS_COORDS, TileSetSource::INVALID_TILE_ALTERNATIVE);
|
set_cell(i, E, TileSet::INVALID_SOURCE, TileSetSource::INVALID_ATLAS_COORDS, TileSetSource::INVALID_TILE_ALTERNATIVE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3524,11 +3524,11 @@ void TileMap::draw_cells_outline(Control *p_control, RBSet<Vector2i> p_cells, Co
|
||||||
Vector<Vector2> polygon = tile_set->get_tile_shape_polygon();
|
Vector<Vector2> polygon = tile_set->get_tile_shape_polygon();
|
||||||
TileSet::TileShape shape = tile_set->get_tile_shape();
|
TileSet::TileShape shape = tile_set->get_tile_shape();
|
||||||
|
|
||||||
for (RBSet<Vector2i>::Element *E = p_cells.front(); E; E = E->next()) {
|
for (const Vector2i &E : p_cells) {
|
||||||
Vector2 center = map_to_world(E->get());
|
Vector2 center = map_to_world(E);
|
||||||
|
|
||||||
#define DRAW_SIDE_IF_NEEDED(side, polygon_index_from, polygon_index_to) \
|
#define DRAW_SIDE_IF_NEEDED(side, polygon_index_from, polygon_index_to) \
|
||||||
if (!p_cells.has(get_neighbor_cell(E->get(), side))) { \
|
if (!p_cells.has(get_neighbor_cell(E, side))) { \
|
||||||
Vector2 from = p_transform.xform(center + polygon[polygon_index_from] * tile_size); \
|
Vector2 from = p_transform.xform(center + polygon[polygon_index_from] * tile_size); \
|
||||||
Vector2 to = p_transform.xform(center + polygon[polygon_index_to] * tile_size); \
|
Vector2 to = p_transform.xform(center + polygon[polygon_index_to] * tile_size); \
|
||||||
p_control->draw_line(from, to, p_color); \
|
p_control->draw_line(from, to, p_color); \
|
||||||
|
|
|
@ -345,9 +345,9 @@ void CollisionObject3D::_update_debug_shapes() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<uint32_t>::Element *shapedata_idx = debug_shapes_to_update.front(); shapedata_idx; shapedata_idx = shapedata_idx->next()) {
|
for (const uint32_t &shapedata_idx : debug_shapes_to_update) {
|
||||||
if (shapes.has(shapedata_idx->get())) {
|
if (shapes.has(shapedata_idx)) {
|
||||||
ShapeData &shapedata = shapes[shapedata_idx->get()];
|
ShapeData &shapedata = shapes[shapedata_idx];
|
||||||
ShapeData::ShapeBase *shapes = shapedata.shapes.ptrw();
|
ShapeData::ShapeBase *shapes = shapedata.shapes.ptrw();
|
||||||
for (int i = 0; i < shapedata.shapes.size(); i++) {
|
for (int i = 0; i < shapedata.shapes.size(); i++) {
|
||||||
ShapeData::ShapeBase &s = shapes[i];
|
ShapeData::ShapeBase &s = shapes[i];
|
||||||
|
|
|
@ -263,19 +263,19 @@ void Skeleton3D::_notification(int p_what) {
|
||||||
force_update_all_bone_transforms();
|
force_update_all_bone_transforms();
|
||||||
|
|
||||||
// Update skins.
|
// Update skins.
|
||||||
for (RBSet<SkinReference *>::Element *E = skin_bindings.front(); E; E = E->next()) {
|
for (SkinReference *E : skin_bindings) {
|
||||||
const Skin *skin = E->get()->skin.operator->();
|
const Skin *skin = E->skin.operator->();
|
||||||
RID skeleton = E->get()->skeleton;
|
RID skeleton = E->skeleton;
|
||||||
uint32_t bind_count = skin->get_bind_count();
|
uint32_t bind_count = skin->get_bind_count();
|
||||||
|
|
||||||
if (E->get()->bind_count != bind_count) {
|
if (E->bind_count != bind_count) {
|
||||||
RS::get_singleton()->skeleton_allocate_data(skeleton, bind_count);
|
RS::get_singleton()->skeleton_allocate_data(skeleton, bind_count);
|
||||||
E->get()->bind_count = bind_count;
|
E->bind_count = bind_count;
|
||||||
E->get()->skin_bone_indices.resize(bind_count);
|
E->skin_bone_indices.resize(bind_count);
|
||||||
E->get()->skin_bone_indices_ptrs = E->get()->skin_bone_indices.ptrw();
|
E->skin_bone_indices_ptrs = E->skin_bone_indices.ptrw();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (E->get()->skeleton_version != version) {
|
if (E->skeleton_version != version) {
|
||||||
for (uint32_t i = 0; i < bind_count; i++) {
|
for (uint32_t i = 0; i < bind_count; i++) {
|
||||||
StringName bind_name = skin->get_bind_name(i);
|
StringName bind_name = skin->get_bind_name(i);
|
||||||
|
|
||||||
|
@ -284,7 +284,7 @@ void Skeleton3D::_notification(int p_what) {
|
||||||
bool found = false;
|
bool found = false;
|
||||||
for (int j = 0; j < len; j++) {
|
for (int j = 0; j < len; j++) {
|
||||||
if (bonesptr[j].name == bind_name) {
|
if (bonesptr[j].name == bind_name) {
|
||||||
E->get()->skin_bone_indices_ptrs[i] = j;
|
E->skin_bone_indices_ptrs[i] = j;
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -292,27 +292,27 @@ void Skeleton3D::_notification(int p_what) {
|
||||||
|
|
||||||
if (!found) {
|
if (!found) {
|
||||||
ERR_PRINT("Skin bind #" + itos(i) + " contains named bind '" + String(bind_name) + "' but Skeleton3D has no bone by that name.");
|
ERR_PRINT("Skin bind #" + itos(i) + " contains named bind '" + String(bind_name) + "' but Skeleton3D has no bone by that name.");
|
||||||
E->get()->skin_bone_indices_ptrs[i] = 0;
|
E->skin_bone_indices_ptrs[i] = 0;
|
||||||
}
|
}
|
||||||
} else if (skin->get_bind_bone(i) >= 0) {
|
} else if (skin->get_bind_bone(i) >= 0) {
|
||||||
int bind_index = skin->get_bind_bone(i);
|
int bind_index = skin->get_bind_bone(i);
|
||||||
if (bind_index >= len) {
|
if (bind_index >= len) {
|
||||||
ERR_PRINT("Skin bind #" + itos(i) + " contains bone index bind: " + itos(bind_index) + " , which is greater than the skeleton bone count: " + itos(len) + ".");
|
ERR_PRINT("Skin bind #" + itos(i) + " contains bone index bind: " + itos(bind_index) + " , which is greater than the skeleton bone count: " + itos(len) + ".");
|
||||||
E->get()->skin_bone_indices_ptrs[i] = 0;
|
E->skin_bone_indices_ptrs[i] = 0;
|
||||||
} else {
|
} else {
|
||||||
E->get()->skin_bone_indices_ptrs[i] = bind_index;
|
E->skin_bone_indices_ptrs[i] = bind_index;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ERR_PRINT("Skin bind #" + itos(i) + " does not contain a name nor a bone index.");
|
ERR_PRINT("Skin bind #" + itos(i) + " does not contain a name nor a bone index.");
|
||||||
E->get()->skin_bone_indices_ptrs[i] = 0;
|
E->skin_bone_indices_ptrs[i] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
E->get()->skeleton_version = version;
|
E->skeleton_version = version;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (uint32_t i = 0; i < bind_count; i++) {
|
for (uint32_t i = 0; i < bind_count; i++) {
|
||||||
uint32_t bone_index = E->get()->skin_bone_indices_ptrs[i];
|
uint32_t bone_index = E->skin_bone_indices_ptrs[i];
|
||||||
ERR_CONTINUE(bone_index >= (uint32_t)len);
|
ERR_CONTINUE(bone_index >= (uint32_t)len);
|
||||||
rs->skeleton_bone_set_transform(skeleton, i, bonesptr[bone_index].pose_global * skin->get_bind_pose(i));
|
rs->skeleton_bone_set_transform(skeleton, i, bonesptr[bone_index].pose_global * skin->get_bind_pose(i));
|
||||||
}
|
}
|
||||||
|
@ -1000,9 +1000,9 @@ Ref<Skin> Skeleton3D::create_skin_from_rest_transforms() {
|
||||||
Ref<SkinReference> Skeleton3D::register_skin(const Ref<Skin> &p_skin) {
|
Ref<SkinReference> Skeleton3D::register_skin(const Ref<Skin> &p_skin) {
|
||||||
ERR_FAIL_COND_V(p_skin.is_null(), Ref<SkinReference>());
|
ERR_FAIL_COND_V(p_skin.is_null(), Ref<SkinReference>());
|
||||||
|
|
||||||
for (RBSet<SkinReference *>::Element *E = skin_bindings.front(); E; E = E->next()) {
|
for (const SkinReference *E : skin_bindings) {
|
||||||
if (E->get()->skin == p_skin) {
|
if (E->skin == p_skin) {
|
||||||
return Ref<SkinReference>(E->get());
|
return Ref<SkinReference>(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1303,7 +1303,7 @@ Skeleton3D::Skeleton3D() {
|
||||||
|
|
||||||
Skeleton3D::~Skeleton3D() {
|
Skeleton3D::~Skeleton3D() {
|
||||||
// Some skins may remain bound.
|
// Some skins may remain bound.
|
||||||
for (RBSet<SkinReference *>::Element *E = skin_bindings.front(); E; E = E->next()) {
|
for (SkinReference *E : skin_bindings) {
|
||||||
E->get()->skeleton_node = nullptr;
|
E->skeleton_node = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1766,12 +1766,12 @@ void AnimationPlayer::_animation_changed() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AnimationPlayer::_stop_playing_caches() {
|
void AnimationPlayer::_stop_playing_caches() {
|
||||||
for (RBSet<TrackNodeCache *>::Element *E = playing_caches.front(); E; E = E->next()) {
|
for (TrackNodeCache *E : playing_caches) {
|
||||||
if (E->get()->node && E->get()->audio_playing) {
|
if (E->node && E->audio_playing) {
|
||||||
E->get()->node->call(SNAME("stop"));
|
E->node->call(SNAME("stop"));
|
||||||
}
|
}
|
||||||
if (E->get()->node && E->get()->animation_playing) {
|
if (E->node && E->animation_playing) {
|
||||||
AnimationPlayer *player = Object::cast_to<AnimationPlayer>(E->get()->node);
|
AnimationPlayer *player = Object::cast_to<AnimationPlayer>(E->node);
|
||||||
if (!player) {
|
if (!player) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -487,9 +487,9 @@ void AnimationTree::set_active(bool p_active) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!active && is_inside_tree()) {
|
if (!active && is_inside_tree()) {
|
||||||
for (RBSet<TrackCache *>::Element *E = playing_caches.front(); E; E = E->next()) {
|
for (const TrackCache *E : playing_caches) {
|
||||||
if (ObjectDB::get_instance(E->get()->object_id)) {
|
if (ObjectDB::get_instance(E->object_id)) {
|
||||||
E->get()->object->call(SNAME("stop"));
|
E->object->call(SNAME("stop"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -436,11 +436,11 @@ void SceneDebuggerObject::_parse_script_properties(Script *p_script, ScriptInsta
|
||||||
|
|
||||||
// Members
|
// Members
|
||||||
for (KeyValue<const Script *, RBSet<StringName>> sm : members) {
|
for (KeyValue<const Script *, RBSet<StringName>> sm : members) {
|
||||||
for (RBSet<StringName>::Element *E = sm.value.front(); E; E = E->next()) {
|
for (const StringName &E : sm.value) {
|
||||||
Variant m;
|
Variant m;
|
||||||
if (p_instance->get(E->get(), m)) {
|
if (p_instance->get(E, m)) {
|
||||||
String script_path = sm.key == p_script ? "" : sm.key->get_path().get_file() + "/";
|
String script_path = sm.key == p_script ? "" : sm.key->get_path().get_file() + "/";
|
||||||
PropertyInfo pi(m.get_type(), "Members/" + script_path + E->get());
|
PropertyInfo pi(m.get_type(), "Members/" + script_path + E);
|
||||||
properties.push_back(SceneDebuggerProperty(pi, m));
|
properties.push_back(SceneDebuggerProperty(pi, m));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -629,8 +629,8 @@ void LiveEditor::_node_set_func(int p_id, const StringName &p_prop, const Varian
|
||||||
return; //scene not editable
|
return; //scene not editable
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Node *>::Element *F = E->value.front(); F; F = F->next()) {
|
for (Node *F : E->value) {
|
||||||
Node *n = F->get();
|
Node *n = F;
|
||||||
|
|
||||||
if (base && !base->is_ancestor_of(n)) {
|
if (base && !base->is_ancestor_of(n)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -673,8 +673,8 @@ void LiveEditor::_node_call_func(int p_id, const StringName &p_method, const Var
|
||||||
return; //scene not editable
|
return; //scene not editable
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Node *>::Element *F = E->value.front(); F; F = F->next()) {
|
for (Node *F : E->value) {
|
||||||
Node *n = F->get();
|
Node *n = F;
|
||||||
|
|
||||||
if (base && !base->is_ancestor_of(n)) {
|
if (base && !base->is_ancestor_of(n)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -758,8 +758,8 @@ void LiveEditor::_create_node_func(const NodePath &p_parent, const String &p_typ
|
||||||
return; //scene not editable
|
return; //scene not editable
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Node *>::Element *F = E->value.front(); F; F = F->next()) {
|
for (Node *F : E->value) {
|
||||||
Node *n = F->get();
|
Node *n = F;
|
||||||
|
|
||||||
if (base && !base->is_ancestor_of(n)) {
|
if (base && !base->is_ancestor_of(n)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -802,8 +802,8 @@ void LiveEditor::_instance_node_func(const NodePath &p_parent, const String &p_p
|
||||||
return; //scene not editable
|
return; //scene not editable
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Node *>::Element *F = E->value.front(); F; F = F->next()) {
|
for (Node *F : E->value) {
|
||||||
Node *n = F->get();
|
Node *n = F;
|
||||||
|
|
||||||
if (base && !base->is_ancestor_of(n)) {
|
if (base && !base->is_ancestor_of(n)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -968,8 +968,8 @@ void LiveEditor::_duplicate_node_func(const NodePath &p_at, const String &p_new_
|
||||||
return; //scene not editable
|
return; //scene not editable
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Node *>::Element *F = E->value.front(); F; F = F->next()) {
|
for (Node *F : E->value) {
|
||||||
Node *n = F->get();
|
Node *n = F;
|
||||||
|
|
||||||
if (base && !base->is_ancestor_of(n)) {
|
if (base && !base->is_ancestor_of(n)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -1007,8 +1007,8 @@ void LiveEditor::_reparent_node_func(const NodePath &p_at, const NodePath &p_new
|
||||||
return; //scene not editable
|
return; //scene not editable
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Node *>::Element *F = E->value.front(); F; F = F->next()) {
|
for (Node *F : E->value) {
|
||||||
Node *n = F->get();
|
Node *n = F;
|
||||||
|
|
||||||
if (base && !base->is_ancestor_of(n)) {
|
if (base && !base->is_ancestor_of(n)) {
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -43,12 +43,12 @@ void BaseButton::_unpress_group() {
|
||||||
status.pressed = true;
|
status.pressed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<BaseButton *>::Element *E = button_group->buttons.front(); E; E = E->next()) {
|
for (BaseButton *E : button_group->buttons) {
|
||||||
if (E->get() == this) {
|
if (E == this) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
E->get()->set_pressed(false);
|
E->set_pressed(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -485,24 +485,24 @@ BaseButton::~BaseButton() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ButtonGroup::get_buttons(List<BaseButton *> *r_buttons) {
|
void ButtonGroup::get_buttons(List<BaseButton *> *r_buttons) {
|
||||||
for (RBSet<BaseButton *>::Element *E = buttons.front(); E; E = E->next()) {
|
for (BaseButton *E : buttons) {
|
||||||
r_buttons->push_back(E->get());
|
r_buttons->push_back(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Array ButtonGroup::_get_buttons() {
|
Array ButtonGroup::_get_buttons() {
|
||||||
Array btns;
|
Array btns;
|
||||||
for (RBSet<BaseButton *>::Element *E = buttons.front(); E; E = E->next()) {
|
for (const BaseButton *E : buttons) {
|
||||||
btns.push_back(E->get());
|
btns.push_back(E);
|
||||||
}
|
}
|
||||||
|
|
||||||
return btns;
|
return btns;
|
||||||
}
|
}
|
||||||
|
|
||||||
BaseButton *ButtonGroup::get_pressed_button() {
|
BaseButton *ButtonGroup::get_pressed_button() {
|
||||||
for (RBSet<BaseButton *>::Element *E = buttons.front(); E; E = E->next()) {
|
for (BaseButton *E : buttons) {
|
||||||
if (E->get()->is_pressed()) {
|
if (E->is_pressed()) {
|
||||||
return E->get();
|
return E;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -740,8 +740,8 @@ void CodeEdit::set_auto_indent_prefixes(const TypedArray<String> &p_prefixes) {
|
||||||
|
|
||||||
TypedArray<String> CodeEdit::get_auto_indent_prefixes() const {
|
TypedArray<String> CodeEdit::get_auto_indent_prefixes() const {
|
||||||
TypedArray<String> prefixes;
|
TypedArray<String> prefixes;
|
||||||
for (const RBSet<char32_t>::Element *E = auto_indent_prefixes.front(); E; E = E->next()) {
|
for (const char32_t &E : auto_indent_prefixes) {
|
||||||
prefixes.push_back(String::chr(E->get()));
|
prefixes.push_back(String::chr(E));
|
||||||
}
|
}
|
||||||
return prefixes;
|
return prefixes;
|
||||||
}
|
}
|
||||||
|
@ -1752,8 +1752,8 @@ void CodeEdit::set_code_completion_prefixes(const TypedArray<String> &p_prefixes
|
||||||
|
|
||||||
TypedArray<String> CodeEdit::get_code_completion_prefixes() const {
|
TypedArray<String> CodeEdit::get_code_completion_prefixes() const {
|
||||||
TypedArray<String> prefixes;
|
TypedArray<String> prefixes;
|
||||||
for (const RBSet<char32_t>::Element *E = code_completion_prefixes.front(); E; E = E->next()) {
|
for (const char32_t &E : code_completion_prefixes) {
|
||||||
prefixes.push_back(String::chr(E->get()));
|
prefixes.push_back(String::chr(E));
|
||||||
}
|
}
|
||||||
return prefixes;
|
return prefixes;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1699,8 +1699,8 @@ void GraphEdit::set_warped_panning(bool p_warped) {
|
||||||
int GraphEdit::_set_operations(SET_OPERATIONS p_operation, RBSet<StringName> &r_u, const RBSet<StringName> &r_v) {
|
int GraphEdit::_set_operations(SET_OPERATIONS p_operation, RBSet<StringName> &r_u, const RBSet<StringName> &r_v) {
|
||||||
switch (p_operation) {
|
switch (p_operation) {
|
||||||
case GraphEdit::IS_EQUAL: {
|
case GraphEdit::IS_EQUAL: {
|
||||||
for (RBSet<StringName>::Element *E = r_u.front(); E; E = E->next()) {
|
for (const StringName &E : r_u) {
|
||||||
if (!r_v.has(E->get())) {
|
if (!r_v.has(E)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1710,8 +1710,8 @@ int GraphEdit::_set_operations(SET_OPERATIONS p_operation, RBSet<StringName> &r_
|
||||||
if (r_u.size() == r_v.size() && !r_u.size()) {
|
if (r_u.size() == r_v.size() && !r_u.size()) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
for (RBSet<StringName>::Element *E = r_u.front(); E; E = E->next()) {
|
for (const StringName &E : r_u) {
|
||||||
if (!r_v.has(E->get())) {
|
if (!r_v.has(E)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1726,9 +1726,9 @@ int GraphEdit::_set_operations(SET_OPERATIONS p_operation, RBSet<StringName> &r_
|
||||||
return r_u.size();
|
return r_u.size();
|
||||||
} break;
|
} break;
|
||||||
case GraphEdit::UNION: {
|
case GraphEdit::UNION: {
|
||||||
for (RBSet<StringName>::Element *E = r_v.front(); E; E = E->next()) {
|
for (const StringName &E : r_v) {
|
||||||
if (!r_u.has(E->get())) {
|
if (!r_u.has(E)) {
|
||||||
r_u.insert(E->get());
|
r_u.insert(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return r_u.size();
|
return r_u.size();
|
||||||
|
@ -1748,11 +1748,11 @@ HashMap<int, Vector<StringName>> GraphEdit::_layering(const RBSet<StringName> &r
|
||||||
|
|
||||||
while (!_set_operations(GraphEdit::IS_EQUAL, q, u)) {
|
while (!_set_operations(GraphEdit::IS_EQUAL, q, u)) {
|
||||||
_set_operations(GraphEdit::DIFFERENCE, p, u);
|
_set_operations(GraphEdit::DIFFERENCE, p, u);
|
||||||
for (const RBSet<StringName>::Element *E = p.front(); E; E = E->next()) {
|
for (const StringName &E : p) {
|
||||||
RBSet<StringName> n = r_upper_neighbours[E->get()];
|
RBSet<StringName> n = r_upper_neighbours[E];
|
||||||
if (_set_operations(GraphEdit::IS_SUBSET, n, z)) {
|
if (_set_operations(GraphEdit::IS_SUBSET, n, z)) {
|
||||||
Vector<StringName> t;
|
Vector<StringName> t;
|
||||||
t.push_back(E->get());
|
t.push_back(E);
|
||||||
if (!l.has(current_layer)) {
|
if (!l.has(current_layer)) {
|
||||||
l.insert(current_layer, Vector<StringName>{});
|
l.insert(current_layer, Vector<StringName>{});
|
||||||
}
|
}
|
||||||
|
@ -1760,7 +1760,7 @@ HashMap<int, Vector<StringName>> GraphEdit::_layering(const RBSet<StringName> &r
|
||||||
t.append_array(l[current_layer]);
|
t.append_array(l[current_layer]);
|
||||||
l.insert(current_layer, t);
|
l.insert(current_layer, t);
|
||||||
RBSet<StringName> V;
|
RBSet<StringName> V;
|
||||||
V.insert(E->get());
|
V.insert(E);
|
||||||
_set_operations(GraphEdit::UNION, u, V);
|
_set_operations(GraphEdit::UNION, u, V);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1802,9 +1802,9 @@ Vector<StringName> GraphEdit::_split(const Vector<StringName> &r_layer, const Ha
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphEdit::_horizontal_alignment(Dictionary &r_root, Dictionary &r_align, const HashMap<int, Vector<StringName>> &r_layers, const HashMap<StringName, RBSet<StringName>> &r_upper_neighbours, const RBSet<StringName> &r_selected_nodes) {
|
void GraphEdit::_horizontal_alignment(Dictionary &r_root, Dictionary &r_align, const HashMap<int, Vector<StringName>> &r_layers, const HashMap<StringName, RBSet<StringName>> &r_upper_neighbours, const RBSet<StringName> &r_selected_nodes) {
|
||||||
for (const RBSet<StringName>::Element *E = r_selected_nodes.front(); E; E = E->next()) {
|
for (const StringName &E : r_selected_nodes) {
|
||||||
r_root[E->get()] = E->get();
|
r_root[E] = E;
|
||||||
r_align[E->get()] = E->get();
|
r_align[E] = E;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (r_layers.size() == 1) {
|
if (r_layers.size() == 1) {
|
||||||
|
@ -1880,9 +1880,9 @@ void GraphEdit::_crossing_minimisation(HashMap<int, Vector<StringName>> &r_layer
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphEdit::_calculate_inner_shifts(Dictionary &r_inner_shifts, const Dictionary &r_root, const Dictionary &r_node_names, const Dictionary &r_align, const RBSet<StringName> &r_block_heads, const HashMap<StringName, Pair<int, int>> &r_port_info) {
|
void GraphEdit::_calculate_inner_shifts(Dictionary &r_inner_shifts, const Dictionary &r_root, const Dictionary &r_node_names, const Dictionary &r_align, const RBSet<StringName> &r_block_heads, const HashMap<StringName, Pair<int, int>> &r_port_info) {
|
||||||
for (const RBSet<StringName>::Element *E = r_block_heads.front(); E; E = E->next()) {
|
for (const StringName &E : r_block_heads) {
|
||||||
real_t left = 0;
|
real_t left = 0;
|
||||||
StringName u = E->get();
|
StringName u = E;
|
||||||
StringName v = r_align[u];
|
StringName v = r_align[u];
|
||||||
while (u != v && (StringName)r_root[u] != v) {
|
while (u != v && (StringName)r_root[u] != v) {
|
||||||
String _connection = String(u) + " " + String(v);
|
String _connection = String(u) + " " + String(v);
|
||||||
|
@ -1903,11 +1903,11 @@ void GraphEdit::_calculate_inner_shifts(Dictionary &r_inner_shifts, const Dictio
|
||||||
v = (StringName)r_align[v];
|
v = (StringName)r_align[v];
|
||||||
}
|
}
|
||||||
|
|
||||||
u = E->get();
|
u = E;
|
||||||
do {
|
do {
|
||||||
r_inner_shifts[u] = (real_t)r_inner_shifts[u] - left;
|
r_inner_shifts[u] = (real_t)r_inner_shifts[u] - left;
|
||||||
u = (StringName)r_align[u];
|
u = (StringName)r_align[u];
|
||||||
} while (u != E->get());
|
} while (u != E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2117,33 +2117,33 @@ void GraphEdit::arrange_nodes() {
|
||||||
Dictionary inner_shift;
|
Dictionary inner_shift;
|
||||||
RBSet<StringName> block_heads;
|
RBSet<StringName> block_heads;
|
||||||
|
|
||||||
for (const RBSet<StringName>::Element *E = selected_nodes.front(); E; E = E->next()) {
|
for (const StringName &E : selected_nodes) {
|
||||||
inner_shift[E->get()] = 0.0f;
|
inner_shift[E] = 0.0f;
|
||||||
sink[E->get()] = E->get();
|
sink[E] = E;
|
||||||
shift[E->get()] = FLT_MAX;
|
shift[E] = FLT_MAX;
|
||||||
new_positions.insert(E->get(), default_position);
|
new_positions.insert(E, default_position);
|
||||||
if ((StringName)root[E->get()] == E->get()) {
|
if ((StringName)root[E] == E) {
|
||||||
block_heads.insert(E->get());
|
block_heads.insert(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_calculate_inner_shifts(inner_shift, root, node_names, align, block_heads, port_info);
|
_calculate_inner_shifts(inner_shift, root, node_names, align, block_heads, port_info);
|
||||||
|
|
||||||
for (const RBSet<StringName>::Element *E = block_heads.front(); E; E = E->next()) {
|
for (const StringName &E : block_heads) {
|
||||||
_place_block(E->get(), gap_v, layers, root, align, node_names, inner_shift, sink, shift, new_positions);
|
_place_block(E, gap_v, layers, root, align, node_names, inner_shift, sink, shift, new_positions);
|
||||||
}
|
}
|
||||||
origin.y = Object::cast_to<GraphNode>(node_names[layers[0][0]])->get_position_offset().y - (new_positions[layers[0][0]].y + (float)inner_shift[layers[0][0]]);
|
origin.y = Object::cast_to<GraphNode>(node_names[layers[0][0]])->get_position_offset().y - (new_positions[layers[0][0]].y + (float)inner_shift[layers[0][0]]);
|
||||||
origin.x = Object::cast_to<GraphNode>(node_names[layers[0][0]])->get_position_offset().x;
|
origin.x = Object::cast_to<GraphNode>(node_names[layers[0][0]])->get_position_offset().x;
|
||||||
|
|
||||||
for (const RBSet<StringName>::Element *E = block_heads.front(); E; E = E->next()) {
|
for (const StringName &E : block_heads) {
|
||||||
StringName u = E->get();
|
StringName u = E;
|
||||||
float start_from = origin.y + new_positions[E->get()].y;
|
float start_from = origin.y + new_positions[E].y;
|
||||||
do {
|
do {
|
||||||
Vector2 cal_pos;
|
Vector2 cal_pos;
|
||||||
cal_pos.y = start_from + (real_t)inner_shift[u];
|
cal_pos.y = start_from + (real_t)inner_shift[u];
|
||||||
new_positions.insert(u, cal_pos);
|
new_positions.insert(u, cal_pos);
|
||||||
u = align[u];
|
u = align[u];
|
||||||
} while (u != E->get());
|
} while (u != E);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compute horizontal coordinates individually for layers to get uniform gap.
|
// Compute horizontal coordinates individually for layers to get uniform gap.
|
||||||
|
@ -2181,10 +2181,10 @@ void GraphEdit::arrange_nodes() {
|
||||||
}
|
}
|
||||||
|
|
||||||
emit_signal(SNAME("begin_node_move"));
|
emit_signal(SNAME("begin_node_move"));
|
||||||
for (const RBSet<StringName>::Element *E = selected_nodes.front(); E; E = E->next()) {
|
for (const StringName &E : selected_nodes) {
|
||||||
GraphNode *gn = Object::cast_to<GraphNode>(node_names[E->get()]);
|
GraphNode *gn = Object::cast_to<GraphNode>(node_names[E]);
|
||||||
gn->set_drag(true);
|
gn->set_drag(true);
|
||||||
Vector2 pos = (new_positions[E->get()]);
|
Vector2 pos = (new_positions[E]);
|
||||||
|
|
||||||
if (is_using_snap()) {
|
if (is_using_snap()) {
|
||||||
const int snap = get_snap();
|
const int snap = get_snap();
|
||||||
|
|
|
@ -104,11 +104,11 @@ void GridContainer::_notification(int p_what) {
|
||||||
// Check if all minwidth constraints are OK if we use the remaining space.
|
// Check if all minwidth constraints are OK if we use the remaining space.
|
||||||
can_fit = true;
|
can_fit = true;
|
||||||
int max_index = col_expanded.front()->get();
|
int max_index = col_expanded.front()->get();
|
||||||
for (RBSet<int>::Element *E = col_expanded.front(); E; E = E->next()) {
|
for (const int &E : col_expanded) {
|
||||||
if (col_minw[E->get()] > col_minw[max_index]) {
|
if (col_minw[E] > col_minw[max_index]) {
|
||||||
max_index = E->get();
|
max_index = E;
|
||||||
}
|
}
|
||||||
if (can_fit && (remaining_space.width / col_expanded.size()) < col_minw[E->get()]) {
|
if (can_fit && (remaining_space.width / col_expanded.size()) < col_minw[E]) {
|
||||||
can_fit = false;
|
can_fit = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -125,11 +125,11 @@ void GridContainer::_notification(int p_what) {
|
||||||
// Check if all minheight constraints are OK if we use the remaining space.
|
// Check if all minheight constraints are OK if we use the remaining space.
|
||||||
can_fit = true;
|
can_fit = true;
|
||||||
int max_index = row_expanded.front()->get();
|
int max_index = row_expanded.front()->get();
|
||||||
for (RBSet<int>::Element *E = row_expanded.front(); E; E = E->next()) {
|
for (const int &E : row_expanded) {
|
||||||
if (row_minh[E->get()] > row_minh[max_index]) {
|
if (row_minh[E] > row_minh[max_index]) {
|
||||||
max_index = E->get();
|
max_index = E;
|
||||||
}
|
}
|
||||||
if (can_fit && (remaining_space.height / row_expanded.size()) < row_minh[E->get()]) {
|
if (can_fit && (remaining_space.height / row_expanded.size()) < row_minh[E]) {
|
||||||
can_fit = false;
|
can_fit = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,8 +50,8 @@ void Range::_value_changed_notify() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Range::Shared::emit_value_changed() {
|
void Range::Shared::emit_value_changed() {
|
||||||
for (RBSet<Range *>::Element *E = owners.front(); E; E = E->next()) {
|
for (Range *E : owners) {
|
||||||
Range *r = E->get();
|
Range *r = E;
|
||||||
if (!r->is_inside_tree()) {
|
if (!r->is_inside_tree()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -70,8 +70,8 @@ void Range::_validate_values() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Range::Shared::emit_changed(const char *p_what) {
|
void Range::Shared::emit_changed(const char *p_what) {
|
||||||
for (RBSet<Range *>::Element *E = owners.front(); E; E = E->next()) {
|
for (Range *E : owners) {
|
||||||
Range *r = E->get();
|
Range *r = E;
|
||||||
if (!r->is_inside_tree()) {
|
if (!r->is_inside_tree()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,9 +62,9 @@ Array ResourcePreloader::_get_resources() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (RBSet<String>::Element *E = sorted_names.front(); E; E = E->next()) {
|
for (const String &E : sorted_names) {
|
||||||
names.set(i, E->get());
|
names.set(i, E);
|
||||||
arr[i] = resources[E->get()];
|
arr[i] = resources[E];
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -412,9 +412,9 @@ void Viewport::_notification(int p_what) {
|
||||||
#ifndef _3D_DISABLED
|
#ifndef _3D_DISABLED
|
||||||
if (audio_listener_3d_set.size() && !audio_listener_3d) {
|
if (audio_listener_3d_set.size() && !audio_listener_3d) {
|
||||||
AudioListener3D *first = nullptr;
|
AudioListener3D *first = nullptr;
|
||||||
for (RBSet<AudioListener3D *>::Element *E = audio_listener_3d_set.front(); E; E = E->next()) {
|
for (AudioListener3D *E : audio_listener_3d_set) {
|
||||||
if (first == nullptr || first->is_greater_than(E->get())) {
|
if (first == nullptr || first->is_greater_than(E)) {
|
||||||
first = E->get();
|
first = E;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -426,9 +426,9 @@ void Viewport::_notification(int p_what) {
|
||||||
if (camera_3d_set.size() && !camera_3d) {
|
if (camera_3d_set.size() && !camera_3d) {
|
||||||
// There are cameras but no current camera, pick first in tree and make it current.
|
// There are cameras but no current camera, pick first in tree and make it current.
|
||||||
Camera3D *first = nullptr;
|
Camera3D *first = nullptr;
|
||||||
for (RBSet<Camera3D *>::Element *E = camera_3d_set.front(); E; E = E->next()) {
|
for (Camera3D *E : camera_3d_set) {
|
||||||
if (first == nullptr || first->is_greater_than(E->get())) {
|
if (first == nullptr || first->is_greater_than(E)) {
|
||||||
first = E->get();
|
first = E;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -647,13 +647,13 @@ void Viewport::_process_picking() {
|
||||||
uint64_t frame = get_tree()->get_frame();
|
uint64_t frame = get_tree()->get_frame();
|
||||||
|
|
||||||
PhysicsDirectSpaceState2D::ShapeResult res[64];
|
PhysicsDirectSpaceState2D::ShapeResult res[64];
|
||||||
for (RBSet<CanvasLayer *>::Element *E = canvas_layers.front(); E; E = E->next()) {
|
for (const CanvasLayer *E : canvas_layers) {
|
||||||
Transform2D canvas_transform;
|
Transform2D canvas_transform;
|
||||||
ObjectID canvas_layer_id;
|
ObjectID canvas_layer_id;
|
||||||
if (E->get()) {
|
if (E) {
|
||||||
// A descendant CanvasLayer.
|
// A descendant CanvasLayer.
|
||||||
canvas_transform = E->get()->get_transform();
|
canvas_transform = E->get_transform();
|
||||||
canvas_layer_id = E->get()->get_instance_id();
|
canvas_layer_id = E->get_instance_id();
|
||||||
} else {
|
} else {
|
||||||
// This Viewport's builtin canvas.
|
// This Viewport's builtin canvas.
|
||||||
canvas_transform = get_canvas_transform();
|
canvas_transform = get_canvas_transform();
|
||||||
|
@ -3202,18 +3202,18 @@ void Viewport::_audio_listener_3d_remove(AudioListener3D *p_listener) {
|
||||||
|
|
||||||
void Viewport::_audio_listener_3d_make_next_current(AudioListener3D *p_exclude) {
|
void Viewport::_audio_listener_3d_make_next_current(AudioListener3D *p_exclude) {
|
||||||
if (audio_listener_3d_set.size() > 0) {
|
if (audio_listener_3d_set.size() > 0) {
|
||||||
for (RBSet<AudioListener3D *>::Element *E = audio_listener_3d_set.front(); E; E = E->next()) {
|
for (AudioListener3D *E : audio_listener_3d_set) {
|
||||||
if (p_exclude == E->get()) {
|
if (p_exclude == E) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!E->get()->is_inside_tree()) {
|
if (!E->is_inside_tree()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (audio_listener_3d != nullptr) {
|
if (audio_listener_3d != nullptr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
E->get()->make_current();
|
E->make_current();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Attempt to reset listener to the camera position.
|
// Attempt to reset listener to the camera position.
|
||||||
|
@ -3290,18 +3290,18 @@ void Viewport::_camera_3d_remove(Camera3D *p_camera) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Viewport::_camera_3d_make_next_current(Camera3D *p_exclude) {
|
void Viewport::_camera_3d_make_next_current(Camera3D *p_exclude) {
|
||||||
for (RBSet<Camera3D *>::Element *E = camera_3d_set.front(); E; E = E->next()) {
|
for (Camera3D *E : camera_3d_set) {
|
||||||
if (p_exclude == E->get()) {
|
if (p_exclude == E) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!E->get()->is_inside_tree()) {
|
if (!E->is_inside_tree()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (camera_3d != nullptr) {
|
if (camera_3d != nullptr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
E->get()->make_current();
|
E->make_current();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3936,8 +3936,8 @@ Viewport::Viewport() {
|
||||||
|
|
||||||
Viewport::~Viewport() {
|
Viewport::~Viewport() {
|
||||||
// Erase itself from viewport textures.
|
// Erase itself from viewport textures.
|
||||||
for (RBSet<ViewportTexture *>::Element *E = viewport_textures.front(); E; E = E->next()) {
|
for (ViewportTexture *E : viewport_textures) {
|
||||||
E->get()->vp = nullptr;
|
E->vp = nullptr;
|
||||||
}
|
}
|
||||||
RenderingServer::get_singleton()->free(viewport);
|
RenderingServer::get_singleton()->free(viewport);
|
||||||
}
|
}
|
||||||
|
|
|
@ -263,9 +263,9 @@ void Window::_make_window() {
|
||||||
DisplayServer::get_singleton()->window_set_transient(window_id, transient_parent->window_id);
|
DisplayServer::get_singleton()->window_set_transient(window_id, transient_parent->window_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Window *>::Element *E = transient_children.front(); E; E = E->next()) {
|
for (const Window *E : transient_children) {
|
||||||
if (E->get()->window_id != DisplayServer::INVALID_WINDOW_ID) {
|
if (E->window_id != DisplayServer::INVALID_WINDOW_ID) {
|
||||||
DisplayServer::get_singleton()->window_set_transient(E->get()->window_id, transient_parent->window_id);
|
DisplayServer::get_singleton()->window_set_transient(E->window_id, transient_parent->window_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -290,9 +290,9 @@ void Window::_clear_window() {
|
||||||
DisplayServer::get_singleton()->window_set_transient(window_id, DisplayServer::INVALID_WINDOW_ID);
|
DisplayServer::get_singleton()->window_set_transient(window_id, DisplayServer::INVALID_WINDOW_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Window *>::Element *E = transient_children.front(); E; E = E->next()) {
|
for (const Window *E : transient_children) {
|
||||||
if (E->get()->window_id != DisplayServer::INVALID_WINDOW_ID) {
|
if (E->window_id != DisplayServer::INVALID_WINDOW_ID) {
|
||||||
DisplayServer::get_singleton()->window_set_transient(E->get()->window_id, DisplayServer::INVALID_WINDOW_ID);
|
DisplayServer::get_singleton()->window_set_transient(E->window_id, DisplayServer::INVALID_WINDOW_ID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -214,17 +214,17 @@ bool SceneCacheInterface::send_object_cache(Object *p_obj, NodePath p_path, int
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Long and painful.
|
// Long and painful.
|
||||||
for (const RBSet<int>::Element *E = multiplayer->get_connected_peers().front(); E; E = E->next()) {
|
for (const int &E : multiplayer->get_connected_peers()) {
|
||||||
if (p_peer_id < 0 && E->get() == -p_peer_id) {
|
if (p_peer_id < 0 && E == -p_peer_id) {
|
||||||
continue; // Continue, excluded.
|
continue; // Continue, excluded.
|
||||||
}
|
}
|
||||||
if (p_peer_id > 0 && E->get() != p_peer_id) {
|
if (p_peer_id > 0 && E != p_peer_id) {
|
||||||
continue; // Continue, not for this peer.
|
continue; // Continue, not for this peer.
|
||||||
}
|
}
|
||||||
|
|
||||||
HashMap<int, bool>::Iterator F = psc->confirmed_peers.find(E->get());
|
HashMap<int, bool>::Iterator F = psc->confirmed_peers.find(E);
|
||||||
if (!F) {
|
if (!F) {
|
||||||
peers_to_add.push_back(E->get()); // Need to also be notified.
|
peers_to_add.push_back(E); // Need to also be notified.
|
||||||
has_all_peers = false;
|
has_all_peers = false;
|
||||||
} else if (!F->value) {
|
} else if (!F->value) {
|
||||||
has_all_peers = false;
|
has_all_peers = false;
|
||||||
|
|
|
@ -50,9 +50,9 @@ Vector<Vector3> ConcavePolygonShape3D::get_debug_mesh_lines() const {
|
||||||
Vector<Vector3> points;
|
Vector<Vector3> points;
|
||||||
points.resize(edges.size() * 2);
|
points.resize(edges.size() * 2);
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
for (RBSet<DrawEdge>::Element *E = edges.front(); E; E = E->next()) {
|
for (const DrawEdge &E : edges) {
|
||||||
points.write[idx + 0] = E->get().a;
|
points.write[idx + 0] = E.a;
|
||||||
points.write[idx + 1] = E->get().b;
|
points.write[idx + 1] = E.b;
|
||||||
idx += 2;
|
idx += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,8 +34,8 @@
|
||||||
bool PolygonPathFinder::_is_point_inside(const Vector2 &p_point) const {
|
bool PolygonPathFinder::_is_point_inside(const Vector2 &p_point) const {
|
||||||
int crosses = 0;
|
int crosses = 0;
|
||||||
|
|
||||||
for (RBSet<Edge>::Element *E = edges.front(); E; E = E->next()) {
|
for (const Edge &E : edges) {
|
||||||
const Edge &e = E->get();
|
const Edge &e = E;
|
||||||
|
|
||||||
Vector2 a = points[e.points[0]].pos;
|
Vector2 a = points[e.points[0]].pos;
|
||||||
Vector2 b = points[e.points[1]].pos;
|
Vector2 b = points[e.points[1]].pos;
|
||||||
|
@ -105,8 +105,8 @@ void PolygonPathFinder::setup(const Vector<Vector2> &p_points, const Vector<int>
|
||||||
|
|
||||||
bool valid = true;
|
bool valid = true;
|
||||||
|
|
||||||
for (RBSet<Edge>::Element *E = edges.front(); E; E = E->next()) {
|
for (const Edge &E : edges) {
|
||||||
const Edge &e = E->get();
|
const Edge &e = E;
|
||||||
if (e.points[0] == i || e.points[1] == i || e.points[0] == j || e.points[1] == j) {
|
if (e.points[0] == i || e.points[1] == i || e.points[0] == j || e.points[1] == j) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -140,8 +140,8 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector
|
||||||
float closest_dist = 1e20f;
|
float closest_dist = 1e20f;
|
||||||
Vector2 closest_point;
|
Vector2 closest_point;
|
||||||
|
|
||||||
for (RBSet<Edge>::Element *E = edges.front(); E; E = E->next()) {
|
for (const Edge &E : edges) {
|
||||||
const Edge &e = E->get();
|
const Edge &e = E;
|
||||||
Vector2 seg[2] = {
|
Vector2 seg[2] = {
|
||||||
points[e.points[0]].pos,
|
points[e.points[0]].pos,
|
||||||
points[e.points[1]].pos
|
points[e.points[1]].pos
|
||||||
|
@ -151,7 +151,7 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector
|
||||||
float d = from.distance_squared_to(closest);
|
float d = from.distance_squared_to(closest);
|
||||||
|
|
||||||
if (d < closest_dist) {
|
if (d < closest_dist) {
|
||||||
ignore_from_edge = E->get();
|
ignore_from_edge = E;
|
||||||
closest_dist = d;
|
closest_dist = d;
|
||||||
closest_point = closest;
|
closest_point = closest;
|
||||||
}
|
}
|
||||||
|
@ -164,8 +164,8 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector
|
||||||
float closest_dist = 1e20f;
|
float closest_dist = 1e20f;
|
||||||
Vector2 closest_point;
|
Vector2 closest_point;
|
||||||
|
|
||||||
for (RBSet<Edge>::Element *E = edges.front(); E; E = E->next()) {
|
for (const Edge &E : edges) {
|
||||||
const Edge &e = E->get();
|
const Edge &e = E;
|
||||||
Vector2 seg[2] = {
|
Vector2 seg[2] = {
|
||||||
points[e.points[0]].pos,
|
points[e.points[0]].pos,
|
||||||
points[e.points[1]].pos
|
points[e.points[1]].pos
|
||||||
|
@ -175,7 +175,7 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector
|
||||||
float d = to.distance_squared_to(closest);
|
float d = to.distance_squared_to(closest);
|
||||||
|
|
||||||
if (d < closest_dist) {
|
if (d < closest_dist) {
|
||||||
ignore_to_edge = E->get();
|
ignore_to_edge = E;
|
||||||
closest_dist = d;
|
closest_dist = d;
|
||||||
closest_point = closest;
|
closest_point = closest;
|
||||||
}
|
}
|
||||||
|
@ -188,8 +188,8 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector
|
||||||
{
|
{
|
||||||
bool can_see_eachother = true;
|
bool can_see_eachother = true;
|
||||||
|
|
||||||
for (RBSet<Edge>::Element *E = edges.front(); E; E = E->next()) {
|
for (const Edge &E : edges) {
|
||||||
const Edge &e = E->get();
|
const Edge &e = E;
|
||||||
if (e.points[0] == ignore_from_edge.points[0] && e.points[1] == ignore_from_edge.points[1]) {
|
if (e.points[0] == ignore_from_edge.points[0] && e.points[1] == ignore_from_edge.points[1]) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -240,8 +240,8 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector
|
||||||
valid_b = false;
|
valid_b = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Edge>::Element *E = edges.front(); E; E = E->next()) {
|
for (const Edge &E : edges) {
|
||||||
const Edge &e = E->get();
|
const Edge &e = E;
|
||||||
|
|
||||||
if (e.points[0] == i || e.points[1] == i) {
|
if (e.points[0] == i || e.points[1] == i) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -293,10 +293,10 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector
|
||||||
|
|
||||||
points.write[aidx].distance = 0;
|
points.write[aidx].distance = 0;
|
||||||
points.write[aidx].prev = aidx;
|
points.write[aidx].prev = aidx;
|
||||||
for (RBSet<int>::Element *E = points[aidx].connections.front(); E; E = E->next()) {
|
for (const int &E : points[aidx].connections) {
|
||||||
open_list.insert(E->get());
|
open_list.insert(E);
|
||||||
points.write[E->get()].distance = from.distance_to(points[E->get()].pos);
|
points.write[E].distance = from.distance_to(points[E].pos);
|
||||||
points.write[E->get()].prev = aidx;
|
points.write[E].prev = aidx;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool found_route = false;
|
bool found_route = false;
|
||||||
|
@ -312,14 +312,14 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector
|
||||||
float least_cost = 1e30;
|
float least_cost = 1e30;
|
||||||
|
|
||||||
//this could be faster (cache previous results)
|
//this could be faster (cache previous results)
|
||||||
for (RBSet<int>::Element *E = open_list.front(); E; E = E->next()) {
|
for (const int &E : open_list) {
|
||||||
const Point &p = points[E->get()];
|
const Point &p = points[E];
|
||||||
float cost = p.distance;
|
float cost = p.distance;
|
||||||
cost += p.pos.distance_to(to);
|
cost += p.pos.distance_to(to);
|
||||||
cost += p.penalty;
|
cost += p.penalty;
|
||||||
|
|
||||||
if (cost < least_cost) {
|
if (cost < least_cost) {
|
||||||
least_cost_point = E->get();
|
least_cost_point = E;
|
||||||
least_cost = cost;
|
least_cost = cost;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -327,8 +327,8 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector
|
||||||
const Point &np = points[least_cost_point];
|
const Point &np = points[least_cost_point];
|
||||||
//open the neighbours for search
|
//open the neighbours for search
|
||||||
|
|
||||||
for (RBSet<int>::Element *E = np.connections.front(); E; E = E->next()) {
|
for (const int &E : np.connections) {
|
||||||
Point &p = points.write[E->get()];
|
Point &p = points.write[E];
|
||||||
float distance = np.pos.distance_to(p.pos) + np.distance;
|
float distance = np.pos.distance_to(p.pos) + np.distance;
|
||||||
|
|
||||||
if (p.prev != -1) {
|
if (p.prev != -1) {
|
||||||
|
@ -343,9 +343,9 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector
|
||||||
|
|
||||||
p.prev = least_cost_point;
|
p.prev = least_cost_point;
|
||||||
p.distance = distance;
|
p.distance = distance;
|
||||||
open_list.insert(E->get());
|
open_list.insert(E);
|
||||||
|
|
||||||
if (E->get() == bidx) {
|
if (E == bidx) {
|
||||||
//oh my reached end! stop algorithm
|
//oh my reached end! stop algorithm
|
||||||
found_route = true;
|
found_route = true;
|
||||||
break;
|
break;
|
||||||
|
@ -459,8 +459,8 @@ Dictionary PolygonPathFinder::_get_data() const {
|
||||||
{
|
{
|
||||||
int *cw = c.ptrw();
|
int *cw = c.ptrw();
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
for (RBSet<int>::Element *E = points[i].connections.front(); E; E = E->next()) {
|
for (const int &E : points[i].connections) {
|
||||||
cw[idx++] = E->get();
|
cw[idx++] = E;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
connections[i] = c;
|
connections[i] = c;
|
||||||
|
@ -469,9 +469,9 @@ Dictionary PolygonPathFinder::_get_data() const {
|
||||||
{
|
{
|
||||||
int *iw = ind.ptrw();
|
int *iw = ind.ptrw();
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
for (RBSet<Edge>::Element *E = edges.front(); E; E = E->next()) {
|
for (const Edge &E : edges) {
|
||||||
iw[idx++] = E->get().points[0];
|
iw[idx++] = E.points[0];
|
||||||
iw[idx++] = E->get().points[1];
|
iw[idx++] = E.points[1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -492,8 +492,8 @@ Vector2 PolygonPathFinder::get_closest_point(const Vector2 &p_point) const {
|
||||||
float closest_dist = 1e20f;
|
float closest_dist = 1e20f;
|
||||||
Vector2 closest_point;
|
Vector2 closest_point;
|
||||||
|
|
||||||
for (RBSet<Edge>::Element *E = edges.front(); E; E = E->next()) {
|
for (const Edge &E : edges) {
|
||||||
const Edge &e = E->get();
|
const Edge &e = E;
|
||||||
Vector2 seg[2] = {
|
Vector2 seg[2] = {
|
||||||
points[e.points[0]].pos,
|
points[e.points[0]].pos,
|
||||||
points[e.points[1]].pos
|
points[e.points[1]].pos
|
||||||
|
@ -516,9 +516,9 @@ Vector2 PolygonPathFinder::get_closest_point(const Vector2 &p_point) const {
|
||||||
Vector<Vector2> PolygonPathFinder::get_intersections(const Vector2 &p_from, const Vector2 &p_to) const {
|
Vector<Vector2> PolygonPathFinder::get_intersections(const Vector2 &p_from, const Vector2 &p_to) const {
|
||||||
Vector<Vector2> inters;
|
Vector<Vector2> inters;
|
||||||
|
|
||||||
for (RBSet<Edge>::Element *E = edges.front(); E; E = E->next()) {
|
for (const Edge &E : edges) {
|
||||||
Vector2 a = points[E->get().points[0]].pos;
|
Vector2 a = points[E.points[0]].pos;
|
||||||
Vector2 b = points[E->get().points[1]].pos;
|
Vector2 b = points[E.points[1]].pos;
|
||||||
|
|
||||||
Vector2 res;
|
Vector2 res;
|
||||||
if (Geometry2D::segment_intersects_segment(a, b, p_from, p_to, &res)) {
|
if (Geometry2D::segment_intersects_segment(a, b, p_from, p_to, &res)) {
|
||||||
|
|
|
@ -1307,8 +1307,8 @@ void Theme::get_type_list(List<StringName> *p_list) const {
|
||||||
types.insert(E.key);
|
types.insert(E.key);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<StringName>::Element *E = types.front(); E; E = E->next()) {
|
for (const StringName &E : types) {
|
||||||
p_list->push_back(E->get());
|
p_list->push_back(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1369,12 +1369,12 @@ TileMapCell TileSet::get_random_tile_from_terrains_pattern(int p_terrain_set, Ti
|
||||||
// Count the sum of probabilities.
|
// Count the sum of probabilities.
|
||||||
double sum = 0.0;
|
double sum = 0.0;
|
||||||
RBSet<TileMapCell> set = per_terrain_pattern_tiles[p_terrain_set][p_terrain_tile_pattern];
|
RBSet<TileMapCell> set = per_terrain_pattern_tiles[p_terrain_set][p_terrain_tile_pattern];
|
||||||
for (RBSet<TileMapCell>::Element *E = set.front(); E; E = E->next()) {
|
for (const TileMapCell &E : set) {
|
||||||
if (E->get().source_id >= 0) {
|
if (E.source_id >= 0) {
|
||||||
Ref<TileSetSource> source = sources[E->get().source_id];
|
Ref<TileSetSource> source = sources[E.source_id];
|
||||||
Ref<TileSetAtlasSource> atlas_source = source;
|
Ref<TileSetAtlasSource> atlas_source = source;
|
||||||
if (atlas_source.is_valid()) {
|
if (atlas_source.is_valid()) {
|
||||||
TileData *tile_data = atlas_source->get_tile_data(E->get().get_atlas_coords(), E->get().alternative_tile);
|
TileData *tile_data = atlas_source->get_tile_data(E.get_atlas_coords(), E.alternative_tile);
|
||||||
sum += tile_data->get_probability();
|
sum += tile_data->get_probability();
|
||||||
} else {
|
} else {
|
||||||
sum += 1.0;
|
sum += 1.0;
|
||||||
|
@ -1389,13 +1389,13 @@ TileMapCell TileSet::get_random_tile_from_terrains_pattern(int p_terrain_set, Ti
|
||||||
double picked = Math::random(0.0, sum);
|
double picked = Math::random(0.0, sum);
|
||||||
|
|
||||||
// Pick the tile.
|
// Pick the tile.
|
||||||
for (RBSet<TileMapCell>::Element *E = set.front(); E; E = E->next()) {
|
for (const TileMapCell &E : set) {
|
||||||
if (E->get().source_id >= 0) {
|
if (E.source_id >= 0) {
|
||||||
Ref<TileSetSource> source = sources[E->get().source_id];
|
Ref<TileSetSource> source = sources[E.source_id];
|
||||||
|
|
||||||
Ref<TileSetAtlasSource> atlas_source = source;
|
Ref<TileSetAtlasSource> atlas_source = source;
|
||||||
if (atlas_source.is_valid()) {
|
if (atlas_source.is_valid()) {
|
||||||
TileData *tile_data = atlas_source->get_tile_data(E->get().get_atlas_coords(), E->get().alternative_tile);
|
TileData *tile_data = atlas_source->get_tile_data(E.get_atlas_coords(), E.alternative_tile);
|
||||||
count += tile_data->get_probability();
|
count += tile_data->get_probability();
|
||||||
} else {
|
} else {
|
||||||
count += 1.0;
|
count += 1.0;
|
||||||
|
@ -1405,7 +1405,7 @@ TileMapCell TileSet::get_random_tile_from_terrains_pattern(int p_terrain_set, Ti
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count >= picked) {
|
if (count >= picked) {
|
||||||
return E->get();
|
return E;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1579,8 +1579,8 @@ void VisualShader::_get_property_list(List<PropertyInfo> *p_list) const {
|
||||||
p_list->push_back(PropertyInfo(Variant::INT, vformat("%s/%s", PNAME("modes"), E.key), PROPERTY_HINT_ENUM, E.value));
|
p_list->push_back(PropertyInfo(Variant::INT, vformat("%s/%s", PNAME("modes"), E.key), PROPERTY_HINT_ENUM, E.value));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<String>::Element *E = toggles.front(); E; E = E->next()) {
|
for (const String &E : toggles) {
|
||||||
p_list->push_back(PropertyInfo(Variant::BOOL, vformat("%s/%s", PNAME("flags"), E->get())));
|
p_list->push_back(PropertyInfo(Variant::BOOL, vformat("%s/%s", PNAME("flags"), E)));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const KeyValue<String, Varying> &E : varyings) {
|
for (const KeyValue<String, Varying> &E : varyings) {
|
||||||
|
|
|
@ -1250,11 +1250,11 @@ void GodotPhysicsServer2D::step(real_t p_step) {
|
||||||
island_count = 0;
|
island_count = 0;
|
||||||
active_objects = 0;
|
active_objects = 0;
|
||||||
collision_pairs = 0;
|
collision_pairs = 0;
|
||||||
for (RBSet<const GodotSpace2D *>::Element *E = active_spaces.front(); E; E = E->next()) {
|
for (const GodotSpace2D *E : active_spaces) {
|
||||||
stepper->step(const_cast<GodotSpace2D *>(E->get()), p_step);
|
stepper->step(const_cast<GodotSpace2D *>(E), p_step);
|
||||||
island_count += E->get()->get_island_count();
|
island_count += E->get_island_count();
|
||||||
active_objects += E->get()->get_active_objects();
|
active_objects += E->get_active_objects();
|
||||||
collision_pairs += E->get()->get_collision_pairs();
|
collision_pairs += E->get_collision_pairs();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1271,8 +1271,8 @@ void GodotPhysicsServer2D::flush_queries() {
|
||||||
|
|
||||||
uint64_t time_beg = OS::get_singleton()->get_ticks_usec();
|
uint64_t time_beg = OS::get_singleton()->get_ticks_usec();
|
||||||
|
|
||||||
for (RBSet<const GodotSpace2D *>::Element *E = active_spaces.front(); E; E = E->next()) {
|
for (const GodotSpace2D *E : active_spaces) {
|
||||||
GodotSpace2D *space = const_cast<GodotSpace2D *>(E->get());
|
GodotSpace2D *space = const_cast<GodotSpace2D *>(E);
|
||||||
space->call_queries();
|
space->call_queries();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1292,9 +1292,9 @@ void GodotPhysicsServer2D::flush_queries() {
|
||||||
total_time[i] = 0;
|
total_time[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<const GodotSpace2D *>::Element *E = active_spaces.front(); E; E = E->next()) {
|
for (const GodotSpace2D *E : active_spaces) {
|
||||||
for (int i = 0; i < GodotSpace2D::ELAPSED_TIME_MAX; i++) {
|
for (int i = 0; i < GodotSpace2D::ELAPSED_TIME_MAX; i++) {
|
||||||
total_time[i] += E->get()->get_elapsed_time(GodotSpace2D::ElapsedTime(i));
|
total_time[i] += E->get_elapsed_time(GodotSpace2D::ElapsedTime(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -168,8 +168,8 @@ void GodotStep2D::step(GodotSpace2D *p_space, real_t p_delta) {
|
||||||
const SelfList<GodotArea2D>::List &aml = p_space->get_moved_area_list();
|
const SelfList<GodotArea2D>::List &aml = p_space->get_moved_area_list();
|
||||||
|
|
||||||
while (aml.first()) {
|
while (aml.first()) {
|
||||||
for (const RBSet<GodotConstraint2D *>::Element *E = aml.first()->self()->get_constraints().front(); E; E = E->next()) {
|
for (GodotConstraint2D *E : aml.first()->self()->get_constraints()) {
|
||||||
GodotConstraint2D *constraint = E->get();
|
GodotConstraint2D *constraint = E;
|
||||||
if (constraint->get_island_step() == _step) {
|
if (constraint->get_island_step() == _step) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1611,11 +1611,11 @@ void GodotPhysicsServer3D::step(real_t p_step) {
|
||||||
island_count = 0;
|
island_count = 0;
|
||||||
active_objects = 0;
|
active_objects = 0;
|
||||||
collision_pairs = 0;
|
collision_pairs = 0;
|
||||||
for (RBSet<const GodotSpace3D *>::Element *E = active_spaces.front(); E; E = E->next()) {
|
for (const GodotSpace3D *E : active_spaces) {
|
||||||
stepper->step(const_cast<GodotSpace3D *>(E->get()), p_step);
|
stepper->step(const_cast<GodotSpace3D *>(E), p_step);
|
||||||
island_count += E->get()->get_island_count();
|
island_count += E->get_island_count();
|
||||||
active_objects += E->get()->get_active_objects();
|
active_objects += E->get_active_objects();
|
||||||
collision_pairs += E->get()->get_collision_pairs();
|
collision_pairs += E->get_collision_pairs();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -1635,8 +1635,8 @@ void GodotPhysicsServer3D::flush_queries() {
|
||||||
|
|
||||||
uint64_t time_beg = OS::get_singleton()->get_ticks_usec();
|
uint64_t time_beg = OS::get_singleton()->get_ticks_usec();
|
||||||
|
|
||||||
for (RBSet<const GodotSpace3D *>::Element *E = active_spaces.front(); E; E = E->next()) {
|
for (const GodotSpace3D *E : active_spaces) {
|
||||||
GodotSpace3D *space = const_cast<GodotSpace3D *>(E->get());
|
GodotSpace3D *space = const_cast<GodotSpace3D *>(E);
|
||||||
space->call_queries();
|
space->call_queries();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1656,9 +1656,9 @@ void GodotPhysicsServer3D::flush_queries() {
|
||||||
total_time[i] = 0;
|
total_time[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<const GodotSpace3D *>::Element *E = active_spaces.front(); E; E = E->next()) {
|
for (const GodotSpace3D *E : active_spaces) {
|
||||||
for (int i = 0; i < GodotSpace3D::ELAPSED_TIME_MAX; i++) {
|
for (int i = 0; i < GodotSpace3D::ELAPSED_TIME_MAX; i++) {
|
||||||
total_time[i] += E->get()->get_elapsed_time(GodotSpace3D::ElapsedTime(i));
|
total_time[i] += E->get_elapsed_time(GodotSpace3D::ElapsedTime(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -87,8 +87,8 @@ void GodotStep3D::_populate_island(GodotBody3D *p_body, LocalVector<GodotBody3D
|
||||||
void GodotStep3D::_populate_island_soft_body(GodotSoftBody3D *p_soft_body, LocalVector<GodotBody3D *> &p_body_island, LocalVector<GodotConstraint3D *> &p_constraint_island) {
|
void GodotStep3D::_populate_island_soft_body(GodotSoftBody3D *p_soft_body, LocalVector<GodotBody3D *> &p_body_island, LocalVector<GodotConstraint3D *> &p_constraint_island) {
|
||||||
p_soft_body->set_island_step(_step);
|
p_soft_body->set_island_step(_step);
|
||||||
|
|
||||||
for (RBSet<GodotConstraint3D *>::Element *E = p_soft_body->get_constraints().front(); E; E = E->next()) {
|
for (const GodotConstraint3D *E : p_soft_body->get_constraints()) {
|
||||||
GodotConstraint3D *constraint = const_cast<GodotConstraint3D *>(E->get());
|
GodotConstraint3D *constraint = const_cast<GodotConstraint3D *>(E);
|
||||||
if (constraint->get_island_step() == _step) {
|
if (constraint->get_island_step() == _step) {
|
||||||
continue; // Already processed.
|
continue; // Already processed.
|
||||||
}
|
}
|
||||||
|
@ -236,8 +236,8 @@ void GodotStep3D::step(GodotSpace3D *p_space, real_t p_delta) {
|
||||||
const SelfList<GodotArea3D>::List &aml = p_space->get_moved_area_list();
|
const SelfList<GodotArea3D>::List &aml = p_space->get_moved_area_list();
|
||||||
|
|
||||||
while (aml.first()) {
|
while (aml.first()) {
|
||||||
for (const RBSet<GodotConstraint3D *>::Element *E = aml.first()->self()->get_constraints().front(); E; E = E->next()) {
|
for (GodotConstraint3D *E : aml.first()->self()->get_constraints()) {
|
||||||
GodotConstraint3D *constraint = E->get();
|
GodotConstraint3D *constraint = E;
|
||||||
if (constraint->get_island_step() == _step) {
|
if (constraint->get_island_step() == _step) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,8 +158,8 @@ Vector<RID> PhysicsRayQueryParameters2D::get_exclude() const {
|
||||||
Vector<RID> ret;
|
Vector<RID> ret;
|
||||||
ret.resize(parameters.exclude.size());
|
ret.resize(parameters.exclude.size());
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
for (RBSet<RID>::Element *E = parameters.exclude.front(); E; E = E->next()) {
|
for (const RID &E : parameters.exclude) {
|
||||||
ret.write[idx++] = E->get();
|
ret.write[idx++] = E;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -208,8 +208,8 @@ Vector<RID> PhysicsPointQueryParameters2D::get_exclude() const {
|
||||||
Vector<RID> ret;
|
Vector<RID> ret;
|
||||||
ret.resize(parameters.exclude.size());
|
ret.resize(parameters.exclude.size());
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
for (RBSet<RID>::Element *E = parameters.exclude.front(); E; E = E->next()) {
|
for (const RID &E : parameters.exclude) {
|
||||||
ret.write[idx++] = E->get();
|
ret.write[idx++] = E;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -267,8 +267,8 @@ Vector<RID> PhysicsShapeQueryParameters2D::get_exclude() const {
|
||||||
Vector<RID> ret;
|
Vector<RID> ret;
|
||||||
ret.resize(parameters.exclude.size());
|
ret.resize(parameters.exclude.size());
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
for (RBSet<RID>::Element *E = parameters.exclude.front(); E; E = E->next()) {
|
for (const RID &E : parameters.exclude) {
|
||||||
ret.write[idx++] = E->get();
|
ret.write[idx++] = E;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -177,8 +177,8 @@ Vector<RID> PhysicsRayQueryParameters3D::get_exclude() const {
|
||||||
Vector<RID> ret;
|
Vector<RID> ret;
|
||||||
ret.resize(parameters.exclude.size());
|
ret.resize(parameters.exclude.size());
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
for (RBSet<RID>::Element *E = parameters.exclude.front(); E; E = E->next()) {
|
for (const RID &E : parameters.exclude) {
|
||||||
ret.write[idx++] = E->get();
|
ret.write[idx++] = E;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -231,8 +231,8 @@ Vector<RID> PhysicsPointQueryParameters3D::get_exclude() const {
|
||||||
Vector<RID> ret;
|
Vector<RID> ret;
|
||||||
ret.resize(parameters.exclude.size());
|
ret.resize(parameters.exclude.size());
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
for (RBSet<RID>::Element *E = parameters.exclude.front(); E; E = E->next()) {
|
for (const RID &E : parameters.exclude) {
|
||||||
ret.write[idx++] = E->get();
|
ret.write[idx++] = E;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -286,8 +286,8 @@ Vector<RID> PhysicsShapeQueryParameters3D::get_exclude() const {
|
||||||
Vector<RID> ret;
|
Vector<RID> ret;
|
||||||
ret.resize(parameters.exclude.size());
|
ret.resize(parameters.exclude.size());
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
for (RBSet<RID>::Element *E = parameters.exclude.front(); E; E = E->next()) {
|
for (const RID &E : parameters.exclude) {
|
||||||
ret.write[idx++] = E->get();
|
ret.write[idx++] = E;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1831,8 +1831,8 @@ void RendererCanvasCull::canvas_occluder_polygon_set_shape(RID p_occluder_polygo
|
||||||
|
|
||||||
RSG::canvas_render->occluder_polygon_set_shape(occluder_poly->occluder, p_shape, p_closed);
|
RSG::canvas_render->occluder_polygon_set_shape(occluder_poly->occluder, p_shape, p_closed);
|
||||||
|
|
||||||
for (RBSet<RendererCanvasRender::LightOccluderInstance *>::Element *E = occluder_poly->owners.front(); E; E = E->next()) {
|
for (RendererCanvasRender::LightOccluderInstance *E : occluder_poly->owners) {
|
||||||
E->get()->aabb_cache = occluder_poly->aabb;
|
E->aabb_cache = occluder_poly->aabb;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1841,8 +1841,8 @@ void RendererCanvasCull::canvas_occluder_polygon_set_cull_mode(RID p_occluder_po
|
||||||
ERR_FAIL_COND(!occluder_poly);
|
ERR_FAIL_COND(!occluder_poly);
|
||||||
occluder_poly->cull_mode = p_mode;
|
occluder_poly->cull_mode = p_mode;
|
||||||
RSG::canvas_render->occluder_polygon_set_cull_mode(occluder_poly->occluder, p_mode);
|
RSG::canvas_render->occluder_polygon_set_cull_mode(occluder_poly->occluder, p_mode);
|
||||||
for (RBSet<RendererCanvasRender::LightOccluderInstance *>::Element *E = occluder_poly->owners.front(); E; E = E->next()) {
|
for (RendererCanvasRender::LightOccluderInstance *E : occluder_poly->owners) {
|
||||||
E->get()->cull_cache = p_mode;
|
E->cull_cache = p_mode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1942,12 +1942,12 @@ bool RendererCanvasCull::free(RID p_rid) {
|
||||||
canvas->child_items[i].item->parent = RID();
|
canvas->child_items[i].item->parent = RID();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<RendererCanvasRender::Light *>::Element *E = canvas->lights.front(); E; E = E->next()) {
|
for (RendererCanvasRender::Light *E : canvas->lights) {
|
||||||
E->get()->canvas = RID();
|
E->canvas = RID();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<RendererCanvasRender::LightOccluderInstance *>::Element *E = canvas->occluders.front(); E; E = E->next()) {
|
for (RendererCanvasRender::LightOccluderInstance *E : canvas->occluders) {
|
||||||
E->get()->canvas = RID();
|
E->canvas = RID();
|
||||||
}
|
}
|
||||||
|
|
||||||
canvas_owner.free(p_rid);
|
canvas_owner.free(p_rid);
|
||||||
|
|
|
@ -5464,8 +5464,8 @@ bool RendererSceneRenderRD::free(RID p_rid) {
|
||||||
LightInstance *light_instance = light_instance_owner.get_or_null(p_rid);
|
LightInstance *light_instance = light_instance_owner.get_or_null(p_rid);
|
||||||
|
|
||||||
//remove from shadow atlases..
|
//remove from shadow atlases..
|
||||||
for (RBSet<RID>::Element *E = light_instance->shadow_atlases.front(); E; E = E->next()) {
|
for (const RID &E : light_instance->shadow_atlases) {
|
||||||
ShadowAtlas *shadow_atlas = shadow_atlas_owner.get_or_null(E->get());
|
ShadowAtlas *shadow_atlas = shadow_atlas_owner.get_or_null(E);
|
||||||
ERR_CONTINUE(!shadow_atlas->shadow_owners.has(p_rid));
|
ERR_CONTINUE(!shadow_atlas->shadow_owners.has(p_rid));
|
||||||
uint32_t key = shadow_atlas->shadow_owners[p_rid];
|
uint32_t key = shadow_atlas->shadow_owners[p_rid];
|
||||||
uint32_t q = (key >> ShadowAtlas::QUADRANT_SHIFT) & 0x3;
|
uint32_t q = (key >> ShadowAtlas::QUADRANT_SHIFT) & 0x3;
|
||||||
|
|
|
@ -1979,8 +1979,8 @@ void MaterialStorage::global_variable_set(const StringName &p_name, const Varian
|
||||||
} else {
|
} else {
|
||||||
//texture
|
//texture
|
||||||
MaterialStorage *material_storage = MaterialStorage::get_singleton();
|
MaterialStorage *material_storage = MaterialStorage::get_singleton();
|
||||||
for (RBSet<RID>::Element *E = gv.texture_materials.front(); E; E = E->next()) {
|
for (const RID &E : gv.texture_materials) {
|
||||||
Material *material = material_storage->get_material(E->get());
|
Material *material = material_storage->get_material(E);
|
||||||
ERR_CONTINUE(!material);
|
ERR_CONTINUE(!material);
|
||||||
material_storage->_material_queue_update(material, false, true);
|
material_storage->_material_queue_update(material, false, true);
|
||||||
}
|
}
|
||||||
|
@ -2011,8 +2011,8 @@ void MaterialStorage::global_variable_set_override(const StringName &p_name, con
|
||||||
} else {
|
} else {
|
||||||
//texture
|
//texture
|
||||||
MaterialStorage *material_storage = MaterialStorage::get_singleton();
|
MaterialStorage *material_storage = MaterialStorage::get_singleton();
|
||||||
for (RBSet<RID>::Element *E = gv.texture_materials.front(); E; E = E->next()) {
|
for (const RID &E : gv.texture_materials) {
|
||||||
Material *material = material_storage->get_material(E->get());
|
Material *material = material_storage->get_material(E);
|
||||||
ERR_CONTINUE(!material);
|
ERR_CONTINUE(!material);
|
||||||
material_storage->_material_queue_update(material, false, true);
|
material_storage->_material_queue_update(material, false, true);
|
||||||
}
|
}
|
||||||
|
@ -2305,8 +2305,8 @@ void MaterialStorage::shader_set_code(RID p_shader, const String &p_code) {
|
||||||
shader->data = nullptr;
|
shader->data = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Material *>::Element *E = shader->owners.front(); E; E = E->next()) {
|
for (Material *E : shader->owners) {
|
||||||
Material *material = E->get();
|
Material *material = E;
|
||||||
material->shader_type = new_type;
|
material->shader_type = new_type;
|
||||||
if (material->data) {
|
if (material->data) {
|
||||||
memdelete(material->data);
|
memdelete(material->data);
|
||||||
|
@ -2322,8 +2322,8 @@ void MaterialStorage::shader_set_code(RID p_shader, const String &p_code) {
|
||||||
shader->type = SHADER_TYPE_MAX; //invalid
|
shader->type = SHADER_TYPE_MAX; //invalid
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Material *>::Element *E = shader->owners.front(); E; E = E->next()) {
|
for (Material *E : shader->owners) {
|
||||||
Material *material = E->get();
|
Material *material = E;
|
||||||
if (shader->data) {
|
if (shader->data) {
|
||||||
material->data = material_get_data_request_function(new_type)(shader->data);
|
material->data = material_get_data_request_function(new_type)(shader->data);
|
||||||
material->data->self = material->self;
|
material->data->self = material->self;
|
||||||
|
@ -2346,8 +2346,8 @@ void MaterialStorage::shader_set_code(RID p_shader, const String &p_code) {
|
||||||
shader->data->set_code(p_code);
|
shader->data->set_code(p_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Material *>::Element *E = shader->owners.front(); E; E = E->next()) {
|
for (Material *E : shader->owners) {
|
||||||
Material *material = E->get();
|
Material *material = E;
|
||||||
material->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MATERIAL);
|
material->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MATERIAL);
|
||||||
_material_queue_update(material, true, true);
|
_material_queue_update(material, true, true);
|
||||||
}
|
}
|
||||||
|
@ -2388,8 +2388,8 @@ void MaterialStorage::shader_set_default_texture_param(RID p_shader, const Strin
|
||||||
if (shader->data) {
|
if (shader->data) {
|
||||||
shader->data->set_default_texture_param(p_name, p_texture, p_index);
|
shader->data->set_default_texture_param(p_name, p_texture, p_index);
|
||||||
}
|
}
|
||||||
for (RBSet<Material *>::Element *E = shader->owners.front(); E; E = E->next()) {
|
for (Material *E : shader->owners) {
|
||||||
Material *material = E->get();
|
Material *material = E;
|
||||||
_material_queue_update(material, false, true);
|
_material_queue_update(material, false, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -215,8 +215,8 @@ void MeshStorage::mesh_free(RID p_rid) {
|
||||||
ERR_PRINT("deleting mesh with active instances");
|
ERR_PRINT("deleting mesh with active instances");
|
||||||
}
|
}
|
||||||
if (mesh->shadow_owners.size()) {
|
if (mesh->shadow_owners.size()) {
|
||||||
for (RBSet<Mesh *>::Element *E = mesh->shadow_owners.front(); E; E = E->next()) {
|
for (Mesh *E : mesh->shadow_owners) {
|
||||||
Mesh *shadow_owner = E->get();
|
Mesh *shadow_owner = E;
|
||||||
shadow_owner->shadow_mesh = RID();
|
shadow_owner->shadow_mesh = RID();
|
||||||
shadow_owner->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
shadow_owner->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
||||||
}
|
}
|
||||||
|
@ -431,8 +431,8 @@ void MeshStorage::mesh_add_surface(RID p_mesh, const RS::SurfaceData &p_surface)
|
||||||
|
|
||||||
mesh->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
mesh->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
||||||
|
|
||||||
for (RBSet<Mesh *>::Element *E = mesh->shadow_owners.front(); E; E = E->next()) {
|
for (Mesh *E : mesh->shadow_owners) {
|
||||||
Mesh *shadow_owner = E->get();
|
Mesh *shadow_owner = E;
|
||||||
shadow_owner->shadow_mesh = RID();
|
shadow_owner->shadow_mesh = RID();
|
||||||
shadow_owner->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
shadow_owner->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
||||||
}
|
}
|
||||||
|
@ -742,8 +742,8 @@ void MeshStorage::mesh_clear(RID p_mesh) {
|
||||||
mesh->has_bone_weights = false;
|
mesh->has_bone_weights = false;
|
||||||
mesh->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
mesh->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
||||||
|
|
||||||
for (RBSet<Mesh *>::Element *E = mesh->shadow_owners.front(); E; E = E->next()) {
|
for (Mesh *E : mesh->shadow_owners) {
|
||||||
Mesh *shadow_owner = E->get();
|
Mesh *shadow_owner = E;
|
||||||
shadow_owner->shadow_mesh = RID();
|
shadow_owner->shadow_mesh = RID();
|
||||||
shadow_owner->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
shadow_owner->dependency.changed_notify(RendererStorage::DEPENDENCY_CHANGED_MESH);
|
||||||
}
|
}
|
||||||
|
|
|
@ -838,8 +838,8 @@ void ParticlesStorage::_particles_process(Particles *p_particles, double p_delta
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t collision_3d_textures_used = 0;
|
uint32_t collision_3d_textures_used = 0;
|
||||||
for (const RBSet<RID>::Element *E = p_particles->collisions.front(); E; E = E->next()) {
|
for (const RID &E : p_particles->collisions) {
|
||||||
ParticlesCollisionInstance *pci = particles_collision_instance_owner.get_or_null(E->get());
|
ParticlesCollisionInstance *pci = particles_collision_instance_owner.get_or_null(E);
|
||||||
if (!pci || !pci->active) {
|
if (!pci || !pci->active) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -653,8 +653,8 @@ void RendererSceneCull::instance_set_base(RID p_instance, RID p_base) {
|
||||||
scene_render->geometry_instance_set_lightmap_capture(geom->geometry_instance, instance->lightmap_sh.ptr());
|
scene_render->geometry_instance_set_lightmap_capture(geom->geometry_instance, instance->lightmap_sh.ptr());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Instance *>::Element *E = instance->visibility_dependencies.front(); E; E = E->next()) {
|
for (Instance *E : instance->visibility_dependencies) {
|
||||||
Instance *dep_instance = E->get();
|
Instance *dep_instance = E;
|
||||||
ERR_CONTINUE(dep_instance->array_index == -1);
|
ERR_CONTINUE(dep_instance->array_index == -1);
|
||||||
ERR_CONTINUE(dep_instance->scenario->instance_data[dep_instance->array_index].parent_array_index != -1);
|
ERR_CONTINUE(dep_instance->scenario->instance_data[dep_instance->array_index].parent_array_index != -1);
|
||||||
dep_instance->scenario->instance_data[dep_instance->array_index].parent_array_index = instance->array_index;
|
dep_instance->scenario->instance_data[dep_instance->array_index].parent_array_index = instance->array_index;
|
||||||
|
@ -1299,8 +1299,8 @@ bool RendererSceneCull::_update_instance_visibility_depth(Instance *p_instance)
|
||||||
while (instance) {
|
while (instance) {
|
||||||
if (!instance->visibility_dependencies.is_empty()) {
|
if (!instance->visibility_dependencies.is_empty()) {
|
||||||
uint32_t depth = 0;
|
uint32_t depth = 0;
|
||||||
for (RBSet<Instance *>::Element *E = instance->visibility_dependencies.front(); E; E = E->next()) {
|
for (const Instance *E : instance->visibility_dependencies) {
|
||||||
depth = MAX(depth, E->get()->visibility_dependencies_depth);
|
depth = MAX(depth, E->visibility_dependencies_depth);
|
||||||
}
|
}
|
||||||
instance->visibility_dependencies_depth = depth + 1;
|
instance->visibility_dependencies_depth = depth + 1;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1559,8 +1559,8 @@ void RendererSceneCull::_update_instance(Instance *p_instance) {
|
||||||
InstanceLightmapData *lightmap_data = static_cast<InstanceLightmapData *>(p_instance->base_data);
|
InstanceLightmapData *lightmap_data = static_cast<InstanceLightmapData *>(p_instance->base_data);
|
||||||
//erase dependencies, since no longer a lightmap
|
//erase dependencies, since no longer a lightmap
|
||||||
|
|
||||||
for (RBSet<Instance *>::Element *E = lightmap_data->geometries.front(); E; E = E->next()) {
|
for (Instance *E : lightmap_data->geometries) {
|
||||||
Instance *geom = E->get();
|
Instance *geom = E;
|
||||||
_instance_queue_update(geom, true, false);
|
_instance_queue_update(geom, true, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1574,8 +1574,8 @@ void RendererSceneCull::_update_instance(Instance *p_instance) {
|
||||||
//make sure lights are updated if it casts shadow
|
//make sure lights are updated if it casts shadow
|
||||||
|
|
||||||
if (geom->can_cast_shadows) {
|
if (geom->can_cast_shadows) {
|
||||||
for (RBSet<Instance *>::Element *E = geom->lights.front(); E; E = E->next()) {
|
for (const Instance *E : geom->lights) {
|
||||||
InstanceLightData *light = static_cast<InstanceLightData *>(E->get()->base_data);
|
InstanceLightData *light = static_cast<InstanceLightData *>(E->base_data);
|
||||||
light->shadow_dirty = true;
|
light->shadow_dirty = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1632,8 +1632,8 @@ void RendererSceneCull::_update_instance(Instance *p_instance) {
|
||||||
idata.parent_array_index = p_instance->visibility_parent ? p_instance->visibility_parent->array_index : -1;
|
idata.parent_array_index = p_instance->visibility_parent ? p_instance->visibility_parent->array_index : -1;
|
||||||
idata.visibility_index = p_instance->visibility_index;
|
idata.visibility_index = p_instance->visibility_index;
|
||||||
|
|
||||||
for (RBSet<Instance *>::Element *E = p_instance->visibility_dependencies.front(); E; E = E->next()) {
|
for (Instance *E : p_instance->visibility_dependencies) {
|
||||||
Instance *dep_instance = E->get();
|
Instance *dep_instance = E;
|
||||||
if (dep_instance->array_index != -1) {
|
if (dep_instance->array_index != -1) {
|
||||||
dep_instance->scenario->instance_data[dep_instance->array_index].parent_array_index = p_instance->array_index;
|
dep_instance->scenario->instance_data[dep_instance->array_index].parent_array_index = p_instance->array_index;
|
||||||
}
|
}
|
||||||
|
@ -1800,8 +1800,8 @@ void RendererSceneCull::_unpair_instance(Instance *p_instance) {
|
||||||
swapped_instance->scenario->instance_visibility[swapped_instance->visibility_index].array_index = swapped_instance->array_index;
|
swapped_instance->scenario->instance_visibility[swapped_instance->visibility_index].array_index = swapped_instance->array_index;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Instance *>::Element *E = swapped_instance->visibility_dependencies.front(); E; E = E->next()) {
|
for (Instance *E : swapped_instance->visibility_dependencies) {
|
||||||
Instance *dep_instance = E->get();
|
Instance *dep_instance = E;
|
||||||
if (dep_instance != p_instance && dep_instance->array_index != -1) {
|
if (dep_instance != p_instance && dep_instance->array_index != -1) {
|
||||||
dep_instance->scenario->instance_data[dep_instance->array_index].parent_array_index = swapped_instance->array_index;
|
dep_instance->scenario->instance_data[dep_instance->array_index].parent_array_index = swapped_instance->array_index;
|
||||||
}
|
}
|
||||||
|
@ -1824,8 +1824,8 @@ void RendererSceneCull::_unpair_instance(Instance *p_instance) {
|
||||||
scene_render->geometry_instance_pair_voxel_gi_instances(geom->geometry_instance, nullptr, 0);
|
scene_render->geometry_instance_pair_voxel_gi_instances(geom->geometry_instance, nullptr, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<Instance *>::Element *E = p_instance->visibility_dependencies.front(); E; E = E->next()) {
|
for (Instance *E : p_instance->visibility_dependencies) {
|
||||||
Instance *dep_instance = E->get();
|
Instance *dep_instance = E;
|
||||||
if (dep_instance->array_index != -1) {
|
if (dep_instance->array_index != -1) {
|
||||||
dep_instance->scenario->instance_data[dep_instance->array_index].parent_array_index = -1;
|
dep_instance->scenario->instance_data[dep_instance->array_index].parent_array_index = -1;
|
||||||
if ((1 << dep_instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) {
|
if ((1 << dep_instance->base_type) & RS::INSTANCE_GEOMETRY_MASK) {
|
||||||
|
@ -1923,8 +1923,8 @@ void RendererSceneCull::_update_instance_lightmap_captures(Instance *p_instance)
|
||||||
float accum_blend = 0.0;
|
float accum_blend = 0.0;
|
||||||
|
|
||||||
InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(p_instance->base_data);
|
InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(p_instance->base_data);
|
||||||
for (RBSet<Instance *>::Element *E = geom->lightmap_captures.front(); E; E = E->next()) {
|
for (Instance *E : geom->lightmap_captures) {
|
||||||
Instance *lightmap = E->get();
|
Instance *lightmap = E;
|
||||||
|
|
||||||
bool interior = RSG::light_storage->lightmap_is_interior(lightmap->base);
|
bool interior = RSG::light_storage->lightmap_is_interior(lightmap->base);
|
||||||
|
|
||||||
|
@ -2744,8 +2744,8 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul
|
||||||
InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(idata.instance->base_data);
|
InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(idata.instance->base_data);
|
||||||
uint32_t idx = 0;
|
uint32_t idx = 0;
|
||||||
|
|
||||||
for (RBSet<Instance *>::Element *E = geom->lights.front(); E; E = E->next()) {
|
for (const Instance *E : geom->lights) {
|
||||||
InstanceLightData *light = static_cast<InstanceLightData *>(E->get()->base_data);
|
InstanceLightData *light = static_cast<InstanceLightData *>(E->base_data);
|
||||||
instance_pair_buffer[idx++] = light->instance;
|
instance_pair_buffer[idx++] = light->instance;
|
||||||
if (idx == MAX_INSTANCE_PAIRS) {
|
if (idx == MAX_INSTANCE_PAIRS) {
|
||||||
break;
|
break;
|
||||||
|
@ -2767,8 +2767,8 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul
|
||||||
InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(idata.instance->base_data);
|
InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(idata.instance->base_data);
|
||||||
uint32_t idx = 0;
|
uint32_t idx = 0;
|
||||||
|
|
||||||
for (RBSet<Instance *>::Element *E = geom->reflection_probes.front(); E; E = E->next()) {
|
for (const Instance *E : geom->reflection_probes) {
|
||||||
InstanceReflectionProbeData *reflection_probe = static_cast<InstanceReflectionProbeData *>(E->get()->base_data);
|
InstanceReflectionProbeData *reflection_probe = static_cast<InstanceReflectionProbeData *>(E->base_data);
|
||||||
|
|
||||||
instance_pair_buffer[idx++] = reflection_probe->instance;
|
instance_pair_buffer[idx++] = reflection_probe->instance;
|
||||||
if (idx == MAX_INSTANCE_PAIRS) {
|
if (idx == MAX_INSTANCE_PAIRS) {
|
||||||
|
@ -2784,8 +2784,8 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul
|
||||||
InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(idata.instance->base_data);
|
InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(idata.instance->base_data);
|
||||||
uint32_t idx = 0;
|
uint32_t idx = 0;
|
||||||
|
|
||||||
for (RBSet<Instance *>::Element *E = geom->decals.front(); E; E = E->next()) {
|
for (const Instance *E : geom->decals) {
|
||||||
InstanceDecalData *decal = static_cast<InstanceDecalData *>(E->get()->base_data);
|
InstanceDecalData *decal = static_cast<InstanceDecalData *>(E->base_data);
|
||||||
|
|
||||||
instance_pair_buffer[idx++] = decal->instance;
|
instance_pair_buffer[idx++] = decal->instance;
|
||||||
if (idx == MAX_INSTANCE_PAIRS) {
|
if (idx == MAX_INSTANCE_PAIRS) {
|
||||||
|
@ -2799,8 +2799,8 @@ void RendererSceneCull::_scene_cull(CullData &cull_data, InstanceCullResult &cul
|
||||||
if (idata.flags & InstanceData::FLAG_GEOM_VOXEL_GI_DIRTY) {
|
if (idata.flags & InstanceData::FLAG_GEOM_VOXEL_GI_DIRTY) {
|
||||||
InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(idata.instance->base_data);
|
InstanceGeometryData *geom = static_cast<InstanceGeometryData *>(idata.instance->base_data);
|
||||||
uint32_t idx = 0;
|
uint32_t idx = 0;
|
||||||
for (RBSet<Instance *>::Element *E = geom->voxel_gi_instances.front(); E; E = E->next()) {
|
for (const Instance *E : geom->voxel_gi_instances) {
|
||||||
InstanceVoxelGIData *voxel_gi = static_cast<InstanceVoxelGIData *>(E->get()->base_data);
|
InstanceVoxelGIData *voxel_gi = static_cast<InstanceVoxelGIData *>(E->base_data);
|
||||||
|
|
||||||
instance_pair_buffer[idx++] = voxel_gi->probe_instance;
|
instance_pair_buffer[idx++] = voxel_gi->probe_instance;
|
||||||
if (idx == MAX_INSTANCE_PAIRS) {
|
if (idx == MAX_INSTANCE_PAIRS) {
|
||||||
|
@ -3420,8 +3420,8 @@ void RendererSceneCull::render_probes() {
|
||||||
const RID *instance_caches = probe->light_instances.ptr();
|
const RID *instance_caches = probe->light_instances.ptr();
|
||||||
|
|
||||||
int idx = 0; //must count visible lights
|
int idx = 0; //must count visible lights
|
||||||
for (RBSet<Instance *>::Element *E = probe->lights.front(); E; E = E->next()) {
|
for (Instance *E : probe->lights) {
|
||||||
Instance *instance = E->get();
|
Instance *instance = E;
|
||||||
InstanceLightData *instance_light = (InstanceLightData *)instance->base_data;
|
InstanceLightData *instance_light = (InstanceLightData *)instance->base_data;
|
||||||
if (!instance->visible) {
|
if (!instance->visible) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -3502,8 +3502,8 @@ void RendererSceneCull::render_probes() {
|
||||||
RID *instance_caches = probe->light_instances.ptrw();
|
RID *instance_caches = probe->light_instances.ptrw();
|
||||||
|
|
||||||
int idx = 0; //must count visible lights
|
int idx = 0; //must count visible lights
|
||||||
for (RBSet<Instance *>::Element *E = probe->lights.front(); E; E = E->next()) {
|
for (Instance *E : probe->lights) {
|
||||||
Instance *instance = E->get();
|
Instance *instance = E;
|
||||||
InstanceLightData *instance_light = (InstanceLightData *)instance->base_data;
|
InstanceLightData *instance_light = (InstanceLightData *)instance->base_data;
|
||||||
if (!instance->visible) {
|
if (!instance->visible) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -3557,8 +3557,8 @@ void RendererSceneCull::render_probes() {
|
||||||
|
|
||||||
RID instance_pair_buffer[MAX_INSTANCE_PAIRS];
|
RID instance_pair_buffer[MAX_INSTANCE_PAIRS];
|
||||||
|
|
||||||
for (RBSet<Instance *>::Element *E = probe->dynamic_geometries.front(); E; E = E->next()) {
|
for (Instance *E : probe->dynamic_geometries) {
|
||||||
Instance *ins = E->get();
|
Instance *ins = E;
|
||||||
if (!ins->visible) {
|
if (!ins->visible) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -3566,8 +3566,8 @@ void RendererSceneCull::render_probes() {
|
||||||
|
|
||||||
if (ins->scenario && ins->array_index >= 0 && (ins->scenario->instance_data[ins->array_index].flags & InstanceData::FLAG_GEOM_VOXEL_GI_DIRTY)) {
|
if (ins->scenario && ins->array_index >= 0 && (ins->scenario->instance_data[ins->array_index].flags & InstanceData::FLAG_GEOM_VOXEL_GI_DIRTY)) {
|
||||||
uint32_t idx = 0;
|
uint32_t idx = 0;
|
||||||
for (RBSet<Instance *>::Element *F = geom->voxel_gi_instances.front(); F; F = F->next()) {
|
for (const Instance *F : geom->voxel_gi_instances) {
|
||||||
InstanceVoxelGIData *voxel_gi2 = static_cast<InstanceVoxelGIData *>(F->get()->base_data);
|
InstanceVoxelGIData *voxel_gi2 = static_cast<InstanceVoxelGIData *>(F->base_data);
|
||||||
|
|
||||||
instance_pair_buffer[idx++] = voxel_gi2->probe_instance;
|
instance_pair_buffer[idx++] = voxel_gi2->probe_instance;
|
||||||
if (idx == MAX_INSTANCE_PAIRS) {
|
if (idx == MAX_INSTANCE_PAIRS) {
|
||||||
|
@ -3823,8 +3823,8 @@ void RendererSceneCull::_update_dirty_instance(Instance *p_instance) {
|
||||||
|
|
||||||
if (can_cast_shadows != geom->can_cast_shadows) {
|
if (can_cast_shadows != geom->can_cast_shadows) {
|
||||||
//ability to cast shadows change, let lights now
|
//ability to cast shadows change, let lights now
|
||||||
for (RBSet<Instance *>::Element *E = geom->lights.front(); E; E = E->next()) {
|
for (const Instance *E : geom->lights) {
|
||||||
InstanceLightData *light = static_cast<InstanceLightData *>(E->get()->base_data);
|
InstanceLightData *light = static_cast<InstanceLightData *>(E->base_data);
|
||||||
light->shadow_dirty = true;
|
light->shadow_dirty = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -85,8 +85,8 @@ public:
|
||||||
void update_end() { //call after updating dependencies
|
void update_end() { //call after updating dependencies
|
||||||
List<Pair<Dependency *, DependencyTracker *>> to_clean_up;
|
List<Pair<Dependency *, DependencyTracker *>> to_clean_up;
|
||||||
|
|
||||||
for (RBSet<Dependency *>::Element *E = dependencies.front(); E; E = E->next()) {
|
for (Dependency *E : dependencies) {
|
||||||
Dependency *dep = E->get();
|
Dependency *dep = E;
|
||||||
HashMap<DependencyTracker *, uint32_t>::Iterator F = dep->instances.find(this);
|
HashMap<DependencyTracker *, uint32_t>::Iterator F = dep->instances.find(this);
|
||||||
ERR_CONTINUE(!F);
|
ERR_CONTINUE(!F);
|
||||||
if (F->value != instance_version) {
|
if (F->value != instance_version) {
|
||||||
|
@ -105,8 +105,8 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void clear() { // clear all dependencies
|
void clear() { // clear all dependencies
|
||||||
for (RBSet<Dependency *>::Element *E = dependencies.front(); E; E = E->next()) {
|
for (Dependency *E : dependencies) {
|
||||||
Dependency *dep = E->get();
|
Dependency *dep = E;
|
||||||
dep->instances.erase(this);
|
dep->instances.erase(this);
|
||||||
}
|
}
|
||||||
dependencies.clear();
|
dependencies.clear();
|
||||||
|
|
|
@ -247,15 +247,15 @@ void RendererViewport::_draw_viewport(Viewport *p_viewport) {
|
||||||
RendererCanvasCull::Canvas *canvas = static_cast<RendererCanvasCull::Canvas *>(E.value.canvas);
|
RendererCanvasCull::Canvas *canvas = static_cast<RendererCanvasCull::Canvas *>(E.value.canvas);
|
||||||
Transform2D xf = _canvas_get_transform(p_viewport, canvas, &E.value, clip_rect.size);
|
Transform2D xf = _canvas_get_transform(p_viewport, canvas, &E.value, clip_rect.size);
|
||||||
|
|
||||||
for (RBSet<RendererCanvasRender::LightOccluderInstance *>::Element *F = canvas->occluders.front(); F; F = F->next()) {
|
for (RendererCanvasRender::LightOccluderInstance *F : canvas->occluders) {
|
||||||
if (!F->get()->enabled) {
|
if (!F->enabled) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
F->get()->xform_cache = xf * F->get()->xform;
|
F->xform_cache = xf * F->xform;
|
||||||
|
|
||||||
if (sdf_rect.intersects_transformed(F->get()->xform_cache, F->get()->aabb_cache)) {
|
if (sdf_rect.intersects_transformed(F->xform_cache, F->aabb_cache)) {
|
||||||
F->get()->next = occluders;
|
F->next = occluders;
|
||||||
occluders = F->get();
|
occluders = F;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -281,8 +281,8 @@ void RendererViewport::_draw_viewport(Viewport *p_viewport) {
|
||||||
|
|
||||||
// Find lights in canvas.
|
// Find lights in canvas.
|
||||||
|
|
||||||
for (RBSet<RendererCanvasRender::Light *>::Element *F = canvas->lights.front(); F; F = F->next()) {
|
for (RendererCanvasRender::Light *F : canvas->lights) {
|
||||||
RendererCanvasRender::Light *cl = F->get();
|
RendererCanvasRender::Light *cl = F;
|
||||||
if (cl->enabled && cl->texture.is_valid()) {
|
if (cl->enabled && cl->texture.is_valid()) {
|
||||||
//not super efficient..
|
//not super efficient..
|
||||||
Size2 tsize = RSG::texture_storage->texture_size_with_proxy(cl->texture);
|
Size2 tsize = RSG::texture_storage->texture_size_with_proxy(cl->texture);
|
||||||
|
@ -313,8 +313,8 @@ void RendererViewport::_draw_viewport(Viewport *p_viewport) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<RendererCanvasRender::Light *>::Element *F = canvas->directional_lights.front(); F; F = F->next()) {
|
for (RendererCanvasRender::Light *F : canvas->directional_lights) {
|
||||||
RendererCanvasRender::Light *cl = F->get();
|
RendererCanvasRender::Light *cl = F;
|
||||||
if (cl->enabled) {
|
if (cl->enabled) {
|
||||||
cl->filter_next_ptr = directional_lights;
|
cl->filter_next_ptr = directional_lights;
|
||||||
directional_lights = cl;
|
directional_lights = cl;
|
||||||
|
@ -349,14 +349,14 @@ void RendererViewport::_draw_viewport(Viewport *p_viewport) {
|
||||||
RendererCanvasCull::Canvas *canvas = static_cast<RendererCanvasCull::Canvas *>(E.value.canvas);
|
RendererCanvasCull::Canvas *canvas = static_cast<RendererCanvasCull::Canvas *>(E.value.canvas);
|
||||||
Transform2D xf = _canvas_get_transform(p_viewport, canvas, &E.value, clip_rect.size);
|
Transform2D xf = _canvas_get_transform(p_viewport, canvas, &E.value, clip_rect.size);
|
||||||
|
|
||||||
for (RBSet<RendererCanvasRender::LightOccluderInstance *>::Element *F = canvas->occluders.front(); F; F = F->next()) {
|
for (RendererCanvasRender::LightOccluderInstance *F : canvas->occluders) {
|
||||||
if (!F->get()->enabled) {
|
if (!F->enabled) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
F->get()->xform_cache = xf * F->get()->xform;
|
F->xform_cache = xf * F->xform;
|
||||||
if (shadow_rect.intersects_transformed(F->get()->xform_cache, F->get()->aabb_cache)) {
|
if (shadow_rect.intersects_transformed(F->xform_cache, F->aabb_cache)) {
|
||||||
F->get()->next = occluders;
|
F->next = occluders;
|
||||||
occluders = F->get();
|
occluders = F;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -429,19 +429,19 @@ void RendererViewport::_draw_viewport(Viewport *p_viewport) {
|
||||||
RendererCanvasCull::Canvas *canvas = static_cast<RendererCanvasCull::Canvas *>(E.value.canvas);
|
RendererCanvasCull::Canvas *canvas = static_cast<RendererCanvasCull::Canvas *>(E.value.canvas);
|
||||||
Transform2D xf = _canvas_get_transform(p_viewport, canvas, &E.value, clip_rect.size);
|
Transform2D xf = _canvas_get_transform(p_viewport, canvas, &E.value, clip_rect.size);
|
||||||
|
|
||||||
for (RBSet<RendererCanvasRender::LightOccluderInstance *>::Element *F = canvas->occluders.front(); F; F = F->next()) {
|
for (RendererCanvasRender::LightOccluderInstance *F : canvas->occluders) {
|
||||||
if (!F->get()->enabled) {
|
if (!F->enabled) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
F->get()->xform_cache = xf * F->get()->xform;
|
F->xform_cache = xf * F->xform;
|
||||||
Transform2D localizer = F->get()->xform_cache.affine_inverse();
|
Transform2D localizer = F->xform_cache.affine_inverse();
|
||||||
|
|
||||||
for (int j = 0; j < point_count; j++) {
|
for (int j = 0; j < point_count; j++) {
|
||||||
xf_points[j] = localizer.xform(points[j]);
|
xf_points[j] = localizer.xform(points[j]);
|
||||||
}
|
}
|
||||||
if (F->get()->aabb_cache.intersects_filled_polygon(xf_points, point_count)) {
|
if (F->aabb_cache.intersects_filled_polygon(xf_points, point_count)) {
|
||||||
F->get()->next = occluders;
|
F->next = occluders;
|
||||||
occluders = F->get();
|
occluders = F;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -303,8 +303,8 @@ void ShaderCompiler::_dump_function_deps(const SL::ShaderNode *p_node, const Str
|
||||||
|
|
||||||
Vector<StringName> uses_functions;
|
Vector<StringName> uses_functions;
|
||||||
|
|
||||||
for (RBSet<StringName>::Element *E = p_node->functions[fidx].uses_function.front(); E; E = E->next()) {
|
for (const StringName &E : p_node->functions[fidx].uses_function) {
|
||||||
uses_functions.push_back(E->get());
|
uses_functions.push_back(E);
|
||||||
}
|
}
|
||||||
uses_functions.sort_custom<StringName::AlphCompare>(); //ensure order is deterministic so the same shader is always produced
|
uses_functions.sort_custom<StringName::AlphCompare>(); //ensure order is deterministic so the same shader is always produced
|
||||||
|
|
||||||
|
|
|
@ -4036,8 +4036,8 @@ void ShaderLanguage::get_keyword_list(List<String> *r_keywords) {
|
||||||
idx++;
|
idx++;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<String>::Element *E = kws.front(); E; E = E->next()) {
|
for (const String &E : kws) {
|
||||||
r_keywords->push_back(E->get());
|
r_keywords->push_back(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4066,8 +4066,8 @@ void ShaderLanguage::get_builtin_funcs(List<String> *r_keywords) {
|
||||||
idx++;
|
idx++;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (RBSet<String>::Element *E = kws.front(); E; E = E->next()) {
|
for (const String &E : kws) {
|
||||||
r_keywords->push_back(E->get());
|
r_keywords->push_back(E);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4341,8 +4341,8 @@ bool ShaderLanguage::_propagate_function_call_sampler_uniform_settings(StringNam
|
||||||
arg->tex_argument_filter = p_filter;
|
arg->tex_argument_filter = p_filter;
|
||||||
arg->tex_argument_repeat = p_repeat;
|
arg->tex_argument_repeat = p_repeat;
|
||||||
for (KeyValue<StringName, RBSet<int>> &E : arg->tex_argument_connect) {
|
for (KeyValue<StringName, RBSet<int>> &E : arg->tex_argument_connect) {
|
||||||
for (RBSet<int>::Element *F = E.value.front(); F; F = F->next()) {
|
for (const int &F : E.value) {
|
||||||
if (!_propagate_function_call_sampler_uniform_settings(E.key, F->get(), p_filter, p_repeat)) {
|
if (!_propagate_function_call_sampler_uniform_settings(E.key, F, p_filter, p_repeat)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4375,8 +4375,8 @@ bool ShaderLanguage::_propagate_function_call_sampler_builtin_reference(StringNa
|
||||||
arg->tex_builtin = p_builtin;
|
arg->tex_builtin = p_builtin;
|
||||||
|
|
||||||
for (KeyValue<StringName, RBSet<int>> &E : arg->tex_argument_connect) {
|
for (KeyValue<StringName, RBSet<int>> &E : arg->tex_argument_connect) {
|
||||||
for (RBSet<int>::Element *F = E.value.front(); F; F = F->next()) {
|
for (const int &F : E.value) {
|
||||||
if (!_propagate_function_call_sampler_builtin_reference(E.key, F->get(), p_builtin)) {
|
if (!_propagate_function_call_sampler_builtin_reference(E.key, F, p_builtin)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7568,12 +7568,12 @@ Error ShaderLanguage::_parse_block(BlockNode *p_block, const FunctionInfo &p_fun
|
||||||
String ShaderLanguage::_get_shader_type_list(const RBSet<String> &p_shader_types) const {
|
String ShaderLanguage::_get_shader_type_list(const RBSet<String> &p_shader_types) const {
|
||||||
// Return a list of shader types as an human-readable string
|
// Return a list of shader types as an human-readable string
|
||||||
String valid_types;
|
String valid_types;
|
||||||
for (const RBSet<String>::Element *E = p_shader_types.front(); E; E = E->next()) {
|
for (const String &E : p_shader_types) {
|
||||||
if (!valid_types.is_empty()) {
|
if (!valid_types.is_empty()) {
|
||||||
valid_types += ", ";
|
valid_types += ", ";
|
||||||
}
|
}
|
||||||
|
|
||||||
valid_types += "'" + E->get() + "'";
|
valid_types += "'" + E + "'";
|
||||||
}
|
}
|
||||||
|
|
||||||
return valid_types;
|
return valid_types;
|
||||||
|
|
Loading…
Reference in New Issue