From 275dbf68eca4fa8b97df53a6d06a9b825b968840 Mon Sep 17 00:00:00 2001 From: Daniel Collin Date: Sun, 28 Oct 2012 15:56:01 +0100 Subject: [PATCH] Can now load XML files to the rocket data --- ogl_editor/src/Editor.c | 8 ++++---- ogl_editor/src/TrackData.c | 2 +- ogl_editor/src/loadsave.c | 15 ++++++++++++--- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/ogl_editor/src/Editor.c b/ogl_editor/src/Editor.c index 1f1e13e..382cc12 100644 --- a/ogl_editor/src/Editor.c +++ b/ogl_editor/src/Editor.c @@ -27,7 +27,6 @@ typedef struct EditorData { - struct sync_data syncData; TrackViewInfo trackViewInfo; TrackData trackData; } EditorData; @@ -64,7 +63,7 @@ void Editor_update() { Emgui_begin(); - TrackView_render(&s_editorData.trackViewInfo, &s_editorData.syncData); + TrackView_render(&s_editorData.trackViewInfo, &s_editorData.trackData.syncData); Emgui_end(); } @@ -165,7 +164,7 @@ static void processCommands() // setup remap and send the keyframes to the demo RemoteConnection_mapTrackName(trackName); - RemoteConnection_sendKeyFrames(trackName, s_editorData.syncData.tracks[serverIndex]); + RemoteConnection_sendKeyFrames(trackName, s_editorData.trackData.syncData.tracks[serverIndex]); break; } @@ -199,7 +198,8 @@ void Editor_timedUpdate() static void onOpen() { - LoadSave_loadRocketXMLDialog(&s_editorData.trackData); + if (LoadSave_loadRocketXMLDialog(&s_editorData.trackData)) + Editor_update(); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/ogl_editor/src/TrackData.c b/ogl_editor/src/TrackData.c index 822d070..7036076 100644 --- a/ogl_editor/src/TrackData.c +++ b/ogl_editor/src/TrackData.c @@ -7,7 +7,7 @@ int TrackData_createGetTrack(TrackData* trackData, const char* name) int index = sync_find_track(&trackData->syncData, name); if (index < 0) { - int index = sync_create_track(&trackData->syncData, name); + index = sync_create_track(&trackData->syncData, name); trackData->order[trackData->orderCount] = index; trackData->orderCount++; } diff --git a/ogl_editor/src/loadsave.c b/ogl_editor/src/loadsave.c index 1f17ced..6a732d3 100644 --- a/ogl_editor/src/loadsave.c +++ b/ogl_editor/src/loadsave.c @@ -11,9 +11,11 @@ static void parseXml(mxml_node_t* rootNode, TrackData* trackData) { int track_index = 0; //struct sync_track** tracks = trackData->syncData.tracks; + mxml_node_t* node = rootNode; // find the tracks element + /* mxml_node_t* node = mxmlFindElement(rootNode, rootNode, "tracks", NULL, NULL, MXML_NO_DESCEND); if (!node) @@ -30,6 +32,9 @@ static void parseXml(mxml_node_t* rootNode, TrackData* trackData) return; } } + */ + + // Traverse the tracks node data @@ -50,10 +55,12 @@ static void parseXml(mxml_node_t* rootNode, TrackData* trackData) { // TODO: Create the new track/channel here - track_index = TrackData_createGetTrack(trackData, element_name); + const char* track_name = mxmlElementGetAttr(node, "name"); + + track_index = TrackData_createGetTrack(trackData, track_name); printf("track_index %d\n", track_index); - printf("Creating track/channel with name %s\n", mxmlElementGetAttr(node, "name")); + printf("Creating track/channel with name %s\n", track_name); } else if (!strcmp("key", element_name)) { @@ -68,7 +75,9 @@ static void parseXml(mxml_node_t* rootNode, TrackData* trackData) k.value = (float)(atof(value)); k.type = (atoi(interpolation)); - assert(!is_key_frame(track, k.row)); + int is_key = is_key_frame(track, k.row); + + assert(!is_key); sync_set_key(track, &k); printf("Adding key: row %s | value %s | interpolation %s\n", row, value, interpolation);