MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / mng_WriteGenericPage

Function mng_WriteGenericPage

manage/generic.cpp:506–847  ·  view source on GitHub ↗

Given an open file pointer and a generic_page struct, writes that generic page out

Source from the content-addressed store, hash-verified

504
505// Given an open file pointer and a generic_page struct, writes that generic page out
506void mng_WriteGenericPage(CFILE *outfile, mngs_generic_page *genericpage) {
507 int i, size;
508
509 ASSERT(outfile != NULL);
510 ASSERT(genericpage != NULL);
511 ASSERT((strlen(genericpage->image_name)) > 2);
512
513 cf_WriteByte(outfile, PAGETYPE_GENERIC);
514
515 cf_WriteByte(outfile, GENERICPAGE_COMMAND_VERSION);
516 cf_WriteByte(outfile, 1);
517 cf_WriteByte(outfile, GENERICFILE_VERSION);
518
519 cf_WriteByte(outfile, GENERICPAGE_COMMAND_TYPE);
520 cf_WriteByte(outfile, 1);
521 cf_WriteByte(outfile, genericpage->objinfo_struct.type);
522
523 // Write the name
524 cf_WriteByte(outfile, GENERICPAGE_COMMAND_NAME);
525 cf_WriteByte(outfile, strlen(genericpage->objinfo_struct.name) + 1);
526 cf_WriteString(outfile, genericpage->objinfo_struct.name);
527
528 // Write the model name
529 cf_WriteByte(outfile, GENERICPAGE_COMMAND_IMAGE_NAME);
530 cf_WriteByte(outfile, strlen(genericpage->image_name) + 1);
531 cf_WriteString(outfile, genericpage->image_name);
532
533 cf_WriteByte(outfile, GENERICPAGE_COMMAND_IMPACT);
534 cf_WriteByte(outfile, 3 * sizeof(float));
535 cf_WriteFloat(outfile, genericpage->objinfo_struct.impact_size);
536 cf_WriteFloat(outfile, genericpage->objinfo_struct.impact_time);
537 cf_WriteFloat(outfile, genericpage->objinfo_struct.damage);
538
539 // Write the LOD model names
540 cf_WriteByte(outfile, GENERICPAGE_COMMAND_LOD_MODELS);
541 size = strlen(genericpage->med_image_name) + 1;
542 size += strlen(genericpage->lo_image_name) + 1;
543
544 cf_WriteByte(outfile, size);
545 cf_WriteString(outfile, genericpage->med_image_name);
546 cf_WriteString(outfile, genericpage->lo_image_name);
547
548 cf_WriteByte(outfile, GENERICPAGE_COMMAND_SCORE);
549 cf_WriteByte(outfile, 1);
550 cf_WriteByte(outfile, genericpage->objinfo_struct.score);
551
552 cf_WriteByte(outfile, GENERICPAGE_COMMAND_SCRIPTNAME);
553 cf_WriteByte(outfile, strlen("") + 1); // genericpage->objinfo_struct.script_name
554 cf_WriteString(outfile, "");
555
556 if (genericpage->objinfo_struct.description != NULL) {
557 cf_WriteByte(outfile, GENERICPAGE_COMMAND_DESCRIPTION);
558 cf_WriteByte(outfile, strlen(genericpage->objinfo_struct.description) + 1);
559 cf_WriteString(outfile, genericpage->objinfo_struct.description);
560 }
561
562 if (genericpage->objinfo_struct.icon_name[0] != '\0') {
563 cf_WriteByte(outfile, GENERICPAGE_COMMAND_ICON_NAME);

Callers

nothing calls this directly

Calls 5

cf_WriteByteFunction · 0.85
cf_WriteStringFunction · 0.85
cf_WriteFloatFunction · 0.85
cf_WriteIntFunction · 0.85
cf_WriteShortFunction · 0.85

Tested by

no test coverage detected