changeset 8:a2598221d010

Fixed layer generation to only build trigger lists from the given layer. - Required more complex correlation to get the layer ownership right for each trigger macro from the global list
author Jacob Alexander <haata@kiibohd.com>
date Mon, 08 Sep 2014 23:51:44 -0700
parents 8104b5dd54c4
children 53940964a8e7
files kll_lib/containers.py
diffstat 1 files changed, 24 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/kll_lib/containers.py	Sun Sep 07 23:22:07 2014 -0700
+++ b/kll_lib/containers.py	Mon Sep 08 23:51:44 2014 -0700
@@ -200,24 +200,31 @@
 			self.triggerList.append( [ [] ] * 0xFF )
 			self.maxScanCode.append( 0x00 )
 
-			# Iterate through triggersIndex to locate necessary ScanCodes and corresponding triggerIndex
-			for triggerItem in self.triggersIndex.keys():
-				# Iterate over the trigger portion of the triggerItem (other part is the index)
-				for sequence in triggerItem[ 0 ]:
-					for combo in sequence:
-						# Append triggerIndex for each found scanCode of the Trigger List
-						# Do not re-add if triggerIndex is already in the Trigger List
-						if not triggerItem[1] in self.triggerList[ layer ][ combo ]:
-							# Append is working strangely with list pre-initialization
-							# Doing a 0 check replacement instead -HaaTa
-							if len( self.triggerList[ layer ][ combo ] ) == 0:
-								self.triggerList[ layer ][ combo ] = [ triggerItem[ 1 ] ]
-							else:
-								self.triggerList[ layer ][ combo ].append( triggerItem[1] )
+			# Iterate through trigger macros to locate necessary ScanCodes and corresponding triggerIndex
+			for trigger in self.macros[ layer ].keys():
+				for variant in range( 0, len( self.macros[ layer ][ trigger ] ) ):
+					# Identify result index
+					resultIndex = self.resultsIndex[ self.macros[ layer ][ trigger ][ variant ] ]
+
+					# Identify trigger index
+					triggerIndex = self.triggersIndex[ tuple( [ trigger, resultIndex ] ) ]
 
-						# Look for max Scan Code
-						if combo > self.maxScanCode[ layer ]:
-							self.maxScanCode[ layer ] = combo
+					# Iterate over the trigger to locate the ScanCodes
+					for sequence in trigger:
+						for combo in sequence:
+							# Append triggerIndex for each found scanCode of the Trigger List
+							# Do not re-add if triggerIndex is already in the Trigger List
+							if not triggerIndex in self.triggerList[ layer ][ combo ]:
+								# Append is working strangely with list pre-initialization
+								# Doing a 0 check replacement instead -HaaTa
+								if len( self.triggerList[ layer ][ combo ] ) == 0:
+									self.triggerList[ layer ][ combo ] = [ triggerIndex ]
+								else:
+									self.triggerList[ layer ][ combo ].append( triggerIndex )
+
+							# Look for max Scan Code
+							if combo > self.maxScanCode[ layer ]:
+								self.maxScanCode[ layer ] = combo
 
 			# Shrink triggerList to actual max size
 			self.triggerList[ layer ] = self.triggerList[ layer ][ : self.maxScanCode[ layer ] + 1 ]