157 print " /* Allow " cls " to be used as Squirrel parameter */" |
157 print " /* Allow " cls " to be used as Squirrel parameter */" |
158 dump_class_templates(cls) |
158 dump_class_templates(cls) |
159 |
159 |
160 print "}; // namespace SQConvert" |
160 print "}; // namespace SQConvert" |
161 |
161 |
|
162 print ""; |
|
163 # Then do the registration functions of the class. */ |
|
164 print "void SQ" cls "Register(Squirrel *engine) {" |
|
165 print " DefSQClass <" cls "> SQ" cls "(\"" cls "\");" |
|
166 if (super_cls == "AIObject" || super_cls == "AIAbstractList::Valuator") { |
|
167 print " SQ" cls ".PreRegister(engine);" |
|
168 } else { |
|
169 print " SQ" cls ".PreRegister(engine, \"" super_cls "\");" |
|
170 } |
162 if (virtual_class == "false") { |
171 if (virtual_class == "false") { |
163 print ""; |
|
164 # Then do the registration functions of the class. */ |
|
165 print "void SQ" cls "Register(Squirrel *engine) {" |
|
166 print " DefSQClass <" cls "> SQ" cls "(\"" cls "\");" |
|
167 if (super_cls == "AIObject" || super_cls == "AIAbstractList::Valuator") { |
|
168 print " SQ" cls ".PreRegister(engine);" |
|
169 } else { |
|
170 print " SQ" cls ".PreRegister(engine, \"" super_cls "\");" |
|
171 } |
|
172 print " SQ" cls ".AddConstructor<void (" cls "::*)(" cls_param[0] "), " cls_param[1]">(engine, \"" cls_param[2] "\");" |
172 print " SQ" cls ".AddConstructor<void (" cls "::*)(" cls_param[0] "), " cls_param[1]">(engine, \"" cls_param[2] "\");" |
173 print "" |
173 } |
174 |
174 print "" |
175 # Enum values |
175 |
176 mlen = 0 |
176 # Enum values |
177 for (i = 1; i <= enum_value_size; i++) { |
177 mlen = 0 |
178 if (mlen <= length(enum_value[i])) mlen = length(enum_value[i]) |
178 for (i = 1; i <= enum_value_size; i++) { |
179 } |
179 if (mlen <= length(enum_value[i])) mlen = length(enum_value[i]) |
180 for (i = 1; i <= enum_value_size; i++) { |
180 } |
181 print " SQ" cls ".DefSQConst(engine, " cls "::" enum_value[i] ", " substr(spaces, 1, mlen - length(enum_value[i])) "\"" enum_value[i] "\");" |
181 for (i = 1; i <= enum_value_size; i++) { |
182 delete enum_value[i] |
182 print " SQ" cls ".DefSQConst(engine, " cls "::" enum_value[i] ", " substr(spaces, 1, mlen - length(enum_value[i])) "\"" enum_value[i] "\");" |
183 } |
183 delete enum_value[i] |
184 if (enum_value_size != 0) print "" |
184 } |
185 |
185 if (enum_value_size != 0) print "" |
186 # Static methods |
186 |
187 mlen = 0 |
187 # Static methods |
188 for (i = 1; i <= static_method_size; i++) { |
188 mlen = 0 |
189 if (mlen <= length(static_methods[i, 0])) mlen = length(static_methods[i, 0]) |
189 for (i = 1; i <= static_method_size; i++) { |
190 } |
190 if (mlen <= length(static_methods[i, 0])) mlen = length(static_methods[i, 0]) |
191 for (i = 1; i <= static_method_size; i++) { |
191 } |
192 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] "\");" |
192 for (i = 1; i <= static_method_size; i++) { |
193 delete static_methods[i] |
193 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] "\");" |
194 } |
194 delete static_methods[i] |
195 if (static_method_size != 0) print "" |
195 } |
196 |
196 if (static_method_size != 0) print "" |
|
197 |
|
198 if (virtual_class == "false") { |
197 # Non-static methods |
199 # Non-static methods |
198 mlen = 0 |
200 mlen = 0 |
199 for (i = 1; i <= method_size; i++) { |
201 for (i = 1; i <= method_size; i++) { |
200 if (mlen <= length(methods[i, 0])) mlen = length(methods[i, 0]) |
202 if (mlen <= length(methods[i, 0])) mlen = length(methods[i, 0]) |
201 } |
203 } |
202 for (i = 1; i <= method_size; i++) { |
204 for (i = 1; i <= method_size; i++) { |
203 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] "\");" |
205 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] "\");" |
204 delete methods[i] |
206 delete methods[i] |
205 } |
207 } |
206 if (method_size != 0) print "" |
208 if (method_size != 0) print "" |
207 |
209 } |
208 print " SQ" cls ".PostRegister(engine);" |
210 print " SQ" cls ".PostRegister(engine);" |
209 print "}" |
211 print "}" |
210 } |
|
211 |
212 |
212 enum_size = 0 |
213 enum_size = 0 |
213 enum_value_size = 0 |
214 enum_value_size = 0 |
214 struct_size = 0 |
215 struct_size = 0 |
215 method_size = 0 |
216 method_size = 0 |