diff --git a/examples/rexm.c b/examples/rexm.c index 5906c3ae7..be7f22325 100644 --- a/examples/rexm.c +++ b/examples/rexm.c @@ -290,6 +290,7 @@ int main(int argc, char *argv[]) // Edit: raylib/examples/Makefile --> Add new example //------------------------------------------------------------------------------------------------ + /* char *mkText = LoadFileText(TextFormat("%s/Makefile", exBasePath)); char *mkTextUpdated = (char *)RL_CALLOC(2*1024*1024, 1); // Updated Makefile copy, 2MB @@ -320,6 +321,7 @@ int main(int argc, char *argv[]) SaveFileText(TextFormat("%s/Makefile", exBasePath), mkTextUpdated); UnloadFileText(mkText); RL_FREE(mkTextUpdated); + */ //------------------------------------------------------------------------------------------------ // Edit: raylib/examples/Makefile.Web --> Add new example @@ -354,46 +356,60 @@ int main(int argc, char *argv[]) // Edit: raylib.com/common/examples.js --> Add new example // NOTE: Entries format: exampleEntry('⭐️☆☆☆' , 'core' , 'basic_window'), //------------------------------------------------------------------------------------------------ - /* + char *jsText = LoadFileText(TextFormat("%s/../common/examples.js", exWebPath)); char *jsTextUpdated = (char *)RL_CALLOC(2*1024*1024, 1); // Updated examples.js copy, 2MB - exListStartIndex = TextFindIndex(jsText, "//EXAMPLE_DATA_LIST_START"); - exListEndIndex = TextFindIndex(jsText, "//EXAMPLE_DATA_LIST_END"); + int exListStartIndex = TextFindIndex(jsText, "//EXAMPLE_DATA_LIST_START"); + int exListEndIndex = TextFindIndex(jsText, "//EXAMPLE_DATA_LIST_END"); - int jsIndex = exListStartIndex; + int mkIndex = 0; memcpy(jsTextUpdated, jsText, exListStartIndex); - TextAppend(jsTextUpdated + jsIndex, "//EXAMPLE_DATA_LIST_START\n", &jsIndex); - TextAppend(jsTextUpdated + jsIndex, "var exampleData = [\n", &jsIndex); + mkIndex = sprintf(jsTextUpdated + exListStartIndex, "#EXAMPLES_LIST_START\n"); + + int jsIndex = 0; + memcpy(jsTextUpdated, jsText, exListStartIndex); + jsIndex = sprintf(jsTextUpdated + exListStartIndex, "//EXAMPLE_DATA_LIST_START\n"); + jsIndex += sprintf(jsTextUpdated + exListStartIndex + jsIndex, " var exampleData = [\n"); // NOTE: We avoid "others" category for (int i = 0, exCount = 0; i < MAX_EXAMPLE_CATEGORIES - 1; i++) { - rlExampleInfo *exCatList = LoadExamplesData(exCollectionListPath, exCategories[i], true, &exCount); + rlExampleInfo *exCatList = LoadExamplesData(exCollectionListPath, exCategories[i], false, &exCount); for (int x = 0; x < exCount; x++) { - //char stars[16] = { 0 }; - //for (int s = 0; s < 4; s++) strcpy(stars + 3) - - TextAppend(jsTextUpdated + jsIndex, - TextFormat(" exampleEntry('%s%s%s%s' , '%s' , '%s'),\n", - "⭐️", "☆", "☆", "☆", - exCatList[x].category, - exCatList[x].name + strlen(exCatList[x].category) + 1), - &jsIndex); + char stars[16] = { 0 }; + for (int s = 0; s < 4; s++) + { + if (s < exCatList[x].stars) strcpy(stars + 3*s, "⭐️"); + else strcpy(stars + 3*s, "☆"); + } + + if ((i == 6) && (x == (exCount - 1))) + { + // Last line to add, special case to consider + jsIndex += sprintf(jsTextUpdated + exListStartIndex + jsIndex, + TextFormat(" exampleEntry('%s', '%s', '%s')];\n", stars, exCatList[x].category, exCatList[x].name + strlen(exCatList[x].category) + 1)); + } + else + { + jsIndex += sprintf(jsTextUpdated + exListStartIndex + jsIndex, + TextFormat(" exampleEntry('%s', '%s', '%s'),\n", stars, exCatList[x].category, exCatList[x].name + strlen(exCatList[x].category) + 1)); + + } } UnloadExamplesData(exCatList); } // Add the remaining part of the original file - TextAppend(jsTextUpdated + jsIndex, jsText + exListEndIndex, &jsIndex); + memcpy(jsTextUpdated + exListStartIndex + jsIndex, jsText + exListEndIndex, strlen(jsText) - exListEndIndex); // Save updated file SaveFileText(TextFormat("%s/../common/examples.js", exWebPath), jsTextUpdated); UnloadFileText(jsText); RL_FREE(jsTextUpdated); - */ + //------------------------------------------------------------------------------------------------ // Recompile example (on raylib side)