… | |
… | |
242 | |
242 | |
243 | //TODO//temporary, used only for saving body locations |
243 | //TODO//temporary, used only for saving body locations |
244 | void put (const char *k, int v) |
244 | void put (const char *k, int v) |
245 | { |
245 | { |
246 | add (k); |
246 | add (k); |
|
|
247 | force (2 + sint32_digits); |
247 | add (' '); |
248 | fadd (' '); |
248 | add (sint32 (v)); |
249 | add (sint32 (v)); |
249 | add ('\n'); |
250 | fadd ('\n'); |
250 | } |
251 | } |
251 | |
252 | |
252 | template<typename T> |
253 | template<typename T> |
253 | void put_string (keyword k, const T &v) |
254 | void put_string (keyword k, const T &v) |
254 | { |
255 | { |
… | |
… | |
278 | put_string (k, v); |
279 | put_string (k, v); |
279 | } |
280 | } |
280 | |
281 | |
281 | void put (keyword k, double v) |
282 | void put (keyword k, double v) |
282 | { |
283 | { |
283 | force (32); |
284 | force (MAX_KEYWORD_LEN + 2 + 32); |
|
|
285 | fadd (keyword_str [k], keyword_len [k]); |
|
|
286 | fadd (' '); |
284 | ptr += sprintf (ptr, "%.7g", v); |
287 | falloc (sprintf (ptr, "%.7g", v)); |
|
|
288 | fadd ('\n'); |
285 | } |
289 | } |
286 | |
290 | |
287 | void put_(keyword k, sint64 v) |
291 | void put_(keyword k, sint64 v) |
288 | { |
292 | { |
|
|
293 | force (MAX_KEYWORD_LEN + 2 + sint64_digits); |
289 | add (keyword_str [k], keyword_len [k]); |
294 | fadd (keyword_str [k], keyword_len [k]); |
290 | add (' '); |
295 | fadd (' '); |
291 | add (v); |
296 | add (v); |
292 | add ('\n'); |
297 | fadd ('\n'); |
293 | } |
298 | } |
294 | |
299 | |
295 | void put_(keyword k, sint32 v) |
300 | void put_(keyword k, sint32 v) |
296 | { |
301 | { |
|
|
302 | force (MAX_KEYWORD_LEN + 2 + sint32_digits); |
297 | add (keyword_str [k], keyword_len [k]); |
303 | fadd (keyword_str [k], keyword_len [k]); |
298 | add (' '); |
304 | fadd (' '); |
299 | add (v); |
305 | add (v); |
300 | add ('\n'); |
306 | fadd ('\n'); |
301 | } |
307 | } |
302 | |
308 | |
303 | void put (keyword kbeg, keyword kend, const shstr &v) |
309 | void put (keyword kbeg, keyword kend, const shstr &v) |
304 | { |
310 | { |
|
|
311 | force (MAX_KEYWORD_LEN + 1); |
305 | add (keyword_str [kbeg], keyword_len [kbeg]); add ('\n'); |
312 | fadd (keyword_str [kbeg], keyword_len [kbeg]); fadd ('\n'); |
306 | |
313 | |
307 | if (expect_true (v)) |
314 | if (expect_true (v)) |
308 | { |
315 | { |
309 | add (v); |
316 | add (v); |
310 | add ('\n'); |
317 | add ('\n'); |
311 | } |
318 | } |
312 | |
319 | |
|
|
320 | force (MAX_KEYWORD_LEN + 1); |
313 | add (keyword_str [kend], keyword_len [kend]); add ('\n'); |
321 | fadd (keyword_str [kend], keyword_len [kend]); fadd ('\n'); |
314 | } |
322 | } |
315 | |
323 | |
316 | void put (keyword k, float v) { put (k, (double)v); } |
324 | void put (keyword k, float v) { put (k, (double)v); } |
317 | void put (keyword k, signed char v) { put_(k, (sint32)v); } |
325 | void put (keyword k, signed char v) { put_(k, (sint32)v); } |
318 | void put (keyword k, unsigned char v) { put_(k, (sint32)v); } |
326 | void put (keyword k, unsigned char v) { put_(k, (sint32)v); } |