瀏覽代碼

bam2egg: Fix support for more than two tags

Fixes #1725
omg-really 4 月之前
父節點
當前提交
85e4d0734d
共有 1 個文件被更改,包括 5 次插入23 次删除
  1. 5 23
      panda/src/egg2pg/eggSaver.cxx

+ 5 - 23
panda/src/egg2pg/eggSaver.cxx

@@ -1196,34 +1196,16 @@ apply_state_properties(EggRenderMode *egg_render_mode, const RenderState *state)
  */
 bool EggSaver::
 apply_tags(EggGroup *egg_group, PandaNode *node) {
-  std::ostringstream strm;
-  char delimiter = '\n';
-  string delimiter_str(1, delimiter);
-  node->list_tags(strm, delimiter_str);
-
-  string data = strm.str();
-  if (data.empty()) {
-    return false;
-  }
-
   bool any_applied = false;
 
-  size_t p = 0;
-  size_t q = data.find(delimiter);
-  while (q != string::npos) {
-    string tag = data.substr(p, q);
-    if (apply_tag(egg_group, node, tag)) {
+  vector_string keys;
+  node->get_tag_keys(keys);
+
+  for (size_t i = 0; i < keys.size(); ++i) {
+    if (apply_tag(egg_group, node, keys[i])) {
       any_applied = true;
     }
-    p = q + 1;
-    q = data.find(delimiter, p);
   }
-
-  string tag = data.substr(p);
-  if (apply_tag(egg_group, node, tag)) {
-    any_applied = true;
-  }
-
   return any_applied;
 }