You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2026-01-05 19:31:35 +00:00
Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
This commit is contained in:
@@ -1353,8 +1353,8 @@ public:
|
||||
|
||||
Ref<Animation> animation;
|
||||
|
||||
Map<int, List<float>> key_ofs_map;
|
||||
Map<int, NodePath> base_map;
|
||||
RBMap<int, List<float>> key_ofs_map;
|
||||
RBMap<int, NodePath> base_map;
|
||||
PropertyInfo hint;
|
||||
|
||||
Node *root_path = nullptr;
|
||||
@@ -4382,7 +4382,7 @@ void AnimationTrackEditor::_update_tracks() {
|
||||
return;
|
||||
}
|
||||
|
||||
Map<String, VBoxContainer *> group_sort;
|
||||
RBMap<String, VBoxContainer *> group_sort;
|
||||
|
||||
bool use_grouping = !view_group->is_pressed();
|
||||
bool use_filter = selected_filter->is_pressed();
|
||||
@@ -5199,8 +5199,8 @@ void AnimationTrackEditor::_update_key_edit() {
|
||||
multi_key_edit = memnew(AnimationMultiTrackKeyEdit);
|
||||
multi_key_edit->animation = animation;
|
||||
|
||||
Map<int, List<float>> key_ofs_map;
|
||||
Map<int, NodePath> base_map;
|
||||
RBMap<int, List<float>> key_ofs_map;
|
||||
RBMap<int, NodePath> base_map;
|
||||
int first_track = -1;
|
||||
for (const KeyValue<SelectedKey, KeyInfo> &E : selection) {
|
||||
int track = E.key.track;
|
||||
@@ -5261,11 +5261,11 @@ void AnimationTrackEditor::_move_selection_commit() {
|
||||
|
||||
float motion = moving_selection_offset;
|
||||
// 1 - remove the keys.
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
undo_redo->add_do_method(animation.ptr(), "track_remove_key", E->key().track, E->key().key);
|
||||
}
|
||||
// 2 - Remove overlapped keys.
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
float newtime = snap_time(E->get().pos + motion);
|
||||
int idx = animation->track_find_key(E->key().track, newtime, true);
|
||||
if (idx == -1) {
|
||||
@@ -5290,19 +5290,19 @@ void AnimationTrackEditor::_move_selection_commit() {
|
||||
}
|
||||
|
||||
// 3 - Move the keys (Reinsert them).
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
float newpos = snap_time(E->get().pos + motion);
|
||||
undo_redo->add_do_method(animation.ptr(), "track_insert_key", E->key().track, newpos, animation->track_get_key_value(E->key().track, E->key().key), animation->track_get_key_transition(E->key().track, E->key().key));
|
||||
}
|
||||
|
||||
// 4 - (Undo) Remove inserted keys.
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
float newpos = snap_time(E->get().pos + motion);
|
||||
undo_redo->add_undo_method(animation.ptr(), "track_remove_key_at_time", E->key().track, newpos);
|
||||
}
|
||||
|
||||
// 5 - (Undo) Reinsert keys.
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
undo_redo->add_undo_method(animation.ptr(), "track_insert_key", E->key().track, E->get().pos, animation->track_get_key_value(E->key().track, E->key().key), animation->track_get_key_transition(E->key().track, E->key().key));
|
||||
}
|
||||
|
||||
@@ -5315,7 +5315,7 @@ void AnimationTrackEditor::_move_selection_commit() {
|
||||
undo_redo->add_undo_method(this, "_clear_selection_for_anim", animation);
|
||||
|
||||
// 7 - Reselect.
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
float oldpos = E->get().pos;
|
||||
float newpos = snap_time(oldpos + motion);
|
||||
|
||||
@@ -5488,7 +5488,7 @@ void AnimationTrackEditor::_anim_duplicate_keys(bool transpose) {
|
||||
if (selection.size() && animation.is_valid() && (!transpose || (_get_track_selected() >= 0 && _get_track_selected() < animation->get_track_count()))) {
|
||||
int top_track = 0x7FFFFFFF;
|
||||
float top_time = 1e10;
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
const SelectedKey &sk = E->key();
|
||||
|
||||
float t = animation->track_get_key_time(sk.track, sk.key);
|
||||
@@ -5509,7 +5509,7 @@ void AnimationTrackEditor::_anim_duplicate_keys(bool transpose) {
|
||||
|
||||
List<Pair<int, float>> new_selection_values;
|
||||
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
const SelectedKey &sk = E->key();
|
||||
|
||||
float t = animation->track_get_key_time(sk.track, sk.key);
|
||||
@@ -5544,7 +5544,7 @@ void AnimationTrackEditor::_anim_duplicate_keys(bool transpose) {
|
||||
|
||||
// Reselect duplicated.
|
||||
|
||||
Map<SelectedKey, KeyInfo> new_selection;
|
||||
RBMap<SelectedKey, KeyInfo> new_selection;
|
||||
for (const Pair<int, float> &E : new_selection_values) {
|
||||
int track = E.first;
|
||||
float time = E.second;
|
||||
@@ -5822,11 +5822,11 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) {
|
||||
List<_AnimMoveRestore> to_restore;
|
||||
|
||||
// 1 - Remove the keys.
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
undo_redo->add_do_method(animation.ptr(), "track_remove_key", E->key().track, E->key().key);
|
||||
}
|
||||
// 2 - Remove overlapped keys.
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
float newtime = (E->get().pos - from_t) * s + from_t;
|
||||
int idx = animation->track_find_key(E->key().track, newtime, true);
|
||||
if (idx == -1) {
|
||||
@@ -5852,19 +5852,19 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) {
|
||||
|
||||
#define NEW_POS(m_ofs) (((s > 0) ? m_ofs : from_t + (len - (m_ofs - from_t))) - pivot) * ABS(s) + from_t
|
||||
// 3 - Move the keys (re insert them).
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
float newpos = NEW_POS(E->get().pos);
|
||||
undo_redo->add_do_method(animation.ptr(), "track_insert_key", E->key().track, newpos, animation->track_get_key_value(E->key().track, E->key().key), animation->track_get_key_transition(E->key().track, E->key().key));
|
||||
}
|
||||
|
||||
// 4 - (Undo) Remove inserted keys.
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
float newpos = NEW_POS(E->get().pos);
|
||||
undo_redo->add_undo_method(animation.ptr(), "track_remove_key_at_time", E->key().track, newpos);
|
||||
}
|
||||
|
||||
// 5 - (Undo) Reinsert keys.
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
undo_redo->add_undo_method(animation.ptr(), "track_insert_key", E->key().track, E->get().pos, animation->track_get_key_value(E->key().track, E->key().key), animation->track_get_key_transition(E->key().track, E->key().key));
|
||||
}
|
||||
|
||||
@@ -5877,7 +5877,7 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) {
|
||||
undo_redo->add_undo_method(this, "_clear_selection_for_anim", animation);
|
||||
|
||||
// 7-reselect.
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
float oldpos = E->get().pos;
|
||||
float newpos = NEW_POS(oldpos);
|
||||
if (newpos >= 0) {
|
||||
@@ -5906,7 +5906,7 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) {
|
||||
undo_redo->create_action(TTR("Anim Add RESET Keys"));
|
||||
Ref<Animation> reset = _create_and_get_reset_animation();
|
||||
int reset_tracks = reset->get_track_count();
|
||||
Set<int> tracks_added;
|
||||
RBSet<int> tracks_added;
|
||||
|
||||
for (const KeyValue<SelectedKey, KeyInfo> &E : selection) {
|
||||
const SelectedKey &sk = E.key;
|
||||
@@ -5960,7 +5960,7 @@ void AnimationTrackEditor::_edit_menu_pressed(int p_option) {
|
||||
if (selection.size()) {
|
||||
undo_redo->create_action(TTR("Anim Delete Keys"));
|
||||
|
||||
for (Map<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
for (RBMap<SelectedKey, KeyInfo>::Element *E = selection.back(); E; E = E->prev()) {
|
||||
undo_redo->add_do_method(animation.ptr(), "track_remove_key", E->key().track, E->key().key);
|
||||
undo_redo->add_undo_method(animation.ptr(), "track_insert_key", E->key().track, E->get().pos, animation->track_get_key_value(E->key().track, E->key().key), animation->track_get_key_transition(E->key().track, E->key().key));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user