@@ -46,10 +46,10 @@ def write(self, file):
4646 file .print_bytex (self .condtype [0 ], self .condtype [1 ])
4747 if self .varsize == 8 :
4848 #grfid + mask
49- file .print_dwordx (self .value & 0xFFFFFFFF )
50- file .print_dwordx (self .value >> 32 )
49+ file .print_dwordx (self .value . value & 0xFFFFFFFF )
50+ file .print_dwordx (self .value . value >> 32 )
5151 else :
52- file . print_varx ( self .value , self .varsize )
52+ self .value . write ( file , self .varsize )
5353 file .print_bytex (self .label )
5454 file .newline ()
5555 file .end_sprite ()
@@ -62,7 +62,7 @@ def skip_action9(self):
6262
6363class UnconditionalSkipAction (SkipAction ):
6464 def __init__ (self , action_type , label ):
65- SkipAction .__init__ (self , action_type , 0x9A , 1 , (0 , r'\71' ), 0 , label )
65+ SkipAction .__init__ (self , action_type , 0x9A , 1 , (0 , r'\71' ), expression . ConstantNumeric ( 0 ) , label )
6666
6767def op_to_cond_op (op ):
6868 #The operators are reversed as we want to skip if the expression is true
@@ -84,7 +84,7 @@ def parse_conditional(expr):
8484 - The size of the value (as integer)
8585 '''
8686 if expr is None :
87- return (None , [], (2 , r'\7=' ), 0 , 4 )
87+ return (None , [], (2 , r'\7=' ), expression . ConstantNumeric ( 0 ) , 4 )
8888 if isinstance (expr , expression .BinOp ):
8989 if expr .op == nmlop .HASBIT or expr .op == nmlop .NOTHASBIT :
9090 if isinstance (expr .expr1 , expression .Parameter ) and isinstance (expr .expr1 .num , expression .ConstantNumeric ):
@@ -93,7 +93,7 @@ def parse_conditional(expr):
9393 else :
9494 param , actions = actionD .get_tmp_parameter (expr .expr1 )
9595 if isinstance (expr .expr2 , expression .ConstantNumeric ):
96- bit_num = expr .expr2 . value
96+ bit_num = expr .expr2
9797 else :
9898 if isinstance (expr .expr2 , expression .Parameter ) and isinstance (expr .expr2 .num , expression .ConstantNumeric ):
9999 param = expr .expr2 .num .value
@@ -103,7 +103,7 @@ def parse_conditional(expr):
103103 act6 = action6 .Action6 ()
104104 act6 .modify_bytes (param , 1 , 4 )
105105 actions .append (act6 )
106- bit_num = 0
106+ bit_num = expression . ConstantNumeric ( 0 )
107107 comp_type = (1 , r'\70' ) if expr .op == nmlop .HASBIT else (0 , r'\71' )
108108 return (param , actions , comp_type , bit_num , 1 )
109109 elif expr .op in (nmlop .CMP_EQ , nmlop .CMP_NEQ , nmlop .CMP_LE , nmlop .CMP_GE ) \
@@ -114,17 +114,17 @@ def parse_conditional(expr):
114114 else :
115115 param , actions = actionD .get_tmp_parameter (expr .expr1 )
116116 op = op_to_cond_op (expr .op )
117- return (param , actions , op , expr .expr2 . value , 4 )
117+ return (param , actions , op , expr .expr2 , 4 )
118118
119119 if isinstance (expr , expression .Boolean ):
120120 expr = expr .expr
121121
122122 if isinstance (expr , expression .Not ):
123123 param , actions = actionD .get_tmp_parameter (expr .expr )
124- return (param , actions , (3 , r'\7!' ), 0 , 4 )
124+ return (param , actions , (3 , r'\7!' ), expression . ConstantNumeric ( 0 ) , 4 )
125125
126126 param , actions = actionD .get_tmp_parameter (expr )
127- return (param , actions , (2 , r'\7=' ), 0 , 4 )
127+ return (param , actions , (2 , r'\7=' ), expression . ConstantNumeric ( 0 ) , 4 )
128128
129129def cond_skip_actions (action_list , param , condtype , value , value_size , pos ):
130130 if len (action_list ) == 0 : return []
@@ -239,7 +239,7 @@ def parse_conditional_block(cond_list):
239239 param = block ['param_dst' ]
240240 if i == 0 : action_list .extend (block ['cond_actions' ])
241241 else :
242- action_list .extend (cond_skip_actions (block ['cond_actions' ], param_skip_all , (2 , r'\7=' ), 0 , 4 , cond_list .pos ))
242+ action_list .extend (cond_skip_actions (block ['cond_actions' ], param_skip_all , (2 , r'\7=' ), expression . ConstantNumeric ( 0 ) , 4 , cond_list .pos ))
243243 if param is None :
244244 param = param_skip_all
245245 else :
0 commit comments