diff --git a/src/rcore.c b/src/rcore.c index 59563537d..52ca0e2b6 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -3230,15 +3230,25 @@ bool ExportAutomationEventList(AutomationEventList list, const char *fileName) #if defined(SUPPORT_AUTOMATION_EVENTS) // Export events as binary file - // TODO: Save to memory buffer and SaveFileData() - /* - unsigned char fileId[4] = "rAE "; - FILE *raeFile = fopen(fileName, "wb"); - fwrite(fileId, sizeof(unsigned char), 4, raeFile); - fwrite(&eventCount, sizeof(int), 1, raeFile); - fwrite(events, sizeof(AutomationEvent), eventCount, raeFile); - fclose(raeFile); - */ + + // Binary buffer size = header (file id + count) + events data + int binarySize = 4 + sizeof(int) + sizeof(AutomationEvent)*list.count; + unsigned char *binBuffer = (unsigned char* )RL_MALLOC(binarySize); + if(!binBuffer) return false; + + int offset = 0; + memcpy(binBuffer + offset, "rAE ", 4); offset += 4; + memcpy(binBuffer + offset, &list.count, sizeof(int)); offset += sizeof(int); + + if(list.count > 0) + { + memcpy(binBuffer + offset, list.events,sizeof(AutomationEvent)*list.count); + offset += sizeof(AutomationEvent)*list.count; + } + + success = SaveFileData(TextFormat("%s.rae",fileName), binBuffer, binarySize); + + RL_FREE(binBuffer); // Export events as text // NOTE: Save to memory buffer and SaveFileText()