135 print " /* Allow " cls " to be used as Squirrel parameter */" |
136 print " /* Allow " cls " to be used as Squirrel parameter */" |
136 print " template <> " cls " *GetParam(ForceType<" cls " *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (" cls " *)instance; }" |
137 print " template <> " cls " *GetParam(ForceType<" cls " *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (" cls " *)instance; }" |
137 # TODO returning... |
138 # TODO returning... |
138 |
139 |
139 print "}; // namespace SQConvert" |
140 print "}; // namespace SQConvert" |
140 print ""; |
141 |
141 |
142 if (virtual_class == "false") { |
142 # Then do the registration functions of the class. */ |
143 print ""; |
143 print "void SQ" cls "Register(Squirrel *engine) {" |
144 # Then do the registration functions of the class. */ |
144 print " DefSQClass <" cls "> SQ" cls "(\"" cls "\");" |
145 print "void SQ" cls "Register(Squirrel *engine) {" |
145 print " SQ" cls ".PreRegister(engine);" |
146 print " DefSQClass <" cls "> SQ" cls "(\"" cls "\");" |
146 print " SQ" cls ".AddConstructor(engine);" |
147 print " SQ" cls ".PreRegister(engine);" |
147 print "" |
148 print " SQ" cls ".AddConstructor(engine);" |
148 |
149 print "" |
149 # Enum values |
150 |
150 mlen = 0 |
151 # Enum values |
151 for (i = 1; i <= enum_value_size; i++) { |
152 mlen = 0 |
152 if (mlen <= length(enum_value[i])) mlen = length(enum_value[i]) |
153 for (i = 1; i <= enum_value_size; i++) { |
153 } |
154 if (mlen <= length(enum_value[i])) mlen = length(enum_value[i]) |
154 for (i = 1; i <= enum_value_size; i++) { |
155 } |
155 print " SQ" cls ".DefSQConst(engine, " cls "::" enum_value[i] ", " substr(spaces, 1, mlen - length(enum_value[i])) "\"" enum_value[i] "\");" |
156 for (i = 1; i <= enum_value_size; i++) { |
156 delete enum_value[i] |
157 print " SQ" cls ".DefSQConst(engine, " cls "::" enum_value[i] ", " substr(spaces, 1, mlen - length(enum_value[i])) "\"" enum_value[i] "\");" |
157 } |
158 delete enum_value[i] |
158 if (enum_value_size != 0) print "" |
159 } |
159 |
160 if (enum_value_size != 0) print "" |
160 # Static methods |
161 |
161 mlen = 0 |
162 # Static methods |
162 for (i = 1; i <= static_method_size; i++) { |
163 mlen = 0 |
163 if (mlen <= length(static_methods[i, 0])) mlen = length(static_methods[i, 0]) |
164 for (i = 1; i <= static_method_size; i++) { |
164 } |
165 if (mlen <= length(static_methods[i, 0])) mlen = length(static_methods[i, 0]) |
165 for (i = 1; i <= static_method_size; i++) { |
166 } |
166 print " SQ" cls ".DefSQStaticMethod(engine, &" cls "::" static_methods[i, 0] ", " substr(spaces, 1, mlen - length(static_methods[i, 0])) "\"" static_methods[i, 0] "\", " substr(spaces, 1, mlen - length(static_methods[i, 0])) "" static_methods[i, 1] ", \"" static_methods[i, 2] "\");" |
167 for (i = 1; i <= static_method_size; i++) { |
167 delete static_methods[i] |
168 print " SQ" cls ".DefSQStaticMethod(engine, &" cls "::" static_methods[i, 0] ", " substr(spaces, 1, mlen - length(static_methods[i, 0])) "\"" static_methods[i, 0] "\", " substr(spaces, 1, mlen - length(static_methods[i, 0])) "" static_methods[i, 1] ", \"" static_methods[i, 2] "\");" |
168 } |
169 delete static_methods[i] |
169 if (static_method_size != 0) print "" |
170 } |
170 |
171 if (static_method_size != 0) print "" |
171 # Non-static methods |
172 |
172 mlen = 0 |
173 # Non-static methods |
173 for (i = 1; i <= method_size; i++) { |
174 mlen = 0 |
174 if (mlen <= length(methods[i, 0])) mlen = length(methods[i, 0]) |
175 for (i = 1; i <= method_size; i++) { |
175 } |
176 if (mlen <= length(methods[i, 0])) mlen = length(methods[i, 0]) |
176 for (i = 1; i <= method_size; i++) { |
177 } |
177 print " SQ" cls ".DefSQMethod(engine, &" cls "::" methods[i, 0] ", " substr(spaces, 1, mlen - length(methods[i, 0])) "\"" methods[i, 0] "\", " substr(spaces, 1, mlen - length(methods[i, 0])) "" methods[i, 1] ", \"" methods[i, 2] "\");" |
178 for (i = 1; i <= method_size; i++) { |
178 delete methods[i] |
179 print " SQ" cls ".DefSQMethod(engine, &" cls "::" methods[i, 0] ", " substr(spaces, 1, mlen - length(methods[i, 0])) "\"" methods[i, 0] "\", " substr(spaces, 1, mlen - length(methods[i, 0])) "" methods[i, 1] ", \"" methods[i, 2] "\");" |
179 } |
180 delete methods[i] |
180 if (method_size != 0) print "" |
181 } |
181 |
182 if (method_size != 0) print "" |
182 print " SQ" cls ".PostRegister(engine);" |
183 |
183 print "}" |
184 print " SQ" cls ".PostRegister(engine);" |
|
185 print "}" |
|
186 } |
184 |
187 |
185 print "#endif /* DEFINE_SQUIRREL_CLASS */" |
188 print "#endif /* DEFINE_SQUIRREL_CLASS */" |
186 |
189 |
187 enum_size = 0 |
190 enum_size = 0 |
188 enum_value_size = 0 |
191 enum_value_size = 0 |
189 struct_size = 0 |
192 struct_size = 0 |
190 method_size = 0 |
193 method_size = 0 |
191 static_method_size = 0 |
194 static_method_size = 0 |
|
195 virtual_class = "false" |
192 cls = "" |
196 cls = "" |
193 start_squirrel_define_on_next_line = "false" |
197 start_squirrel_define_on_next_line = "false" |
194 cls_level = 0 |
198 cls_level = 0 |
195 } |
199 } |
196 |
200 |