Browse Source

Add hidedata

ShiroSmith 6 years ago
parent
commit
819b7ea69f
1 changed files with 12 additions and 0 deletions
  1. 12 0
      hxd/fmt/hmd/Library.hx

+ 12 - 0
hxd/fmt/hmd/Library.hx

@@ -1,6 +1,10 @@
 package hxd.fmt.hmd;
 import hxd.fmt.hmd.Data;
 
+typedef HideData = {
+	var animations : haxe.DynamicAccess<{ events : Array<{ frame : Int, data : String }> }>;
+}
+
 private class FormatMap {
 	public var size : Int;
 	public var offset : Int;
@@ -29,6 +33,7 @@ class Library {
 	var cachedAnimations : Map<String, h3d.anim.Animation>;
 	var cachedSkin : Map<String, h3d.anim.Skin>;
 	var tmp = haxe.io.Bytes.alloc(4);
+	public var hideData : HideData;
 
 	public function new(res,  header) {
 		this.resource = res;
@@ -398,6 +403,13 @@ class Library {
 		l.loop = a.loop;
 		if( a.events != null ) l.setEvents(a.events);
 
+		if( hideData != null ) {
+			var name = resource.entry.name.split(".")[0];
+			if( StringTools.startsWith(name,"Anim_") ) name = name.substr(5);
+			if(hideData.animations.exists(name))
+				l.setEvents(hideData.animations.get(name).events);
+		}
+
 		var entry = resource.entry;
 		entry.open();
 		entry.skip(header.dataPosition + a.dataPosition);