parent
7683965dba
commit
f4c315c137
@ -219,7 +219,8 @@ void Editor_create()
|
||||
RemoteConnection_createListner();
|
||||
|
||||
s_editorData.trackViewInfo.smallFontId = id;
|
||||
s_editorData.trackViewInfo.endRow = 10000;
|
||||
s_editorData.trackData.startRow = 0;
|
||||
s_editorData.trackData.endRow = 10000;
|
||||
|
||||
Emgui_setDefaultFont();
|
||||
}
|
||||
@ -351,8 +352,8 @@ static void drawStatus()
|
||||
size = drawConnectionStatus(0, sizeY);
|
||||
size += drawCurrentValue(size, sizeY);
|
||||
size += drawNameValue("Row", size, sizeY, &s_editorData.trackViewInfo.rowPos, 0, 20000 - 1, s_currentRow);
|
||||
size += drawNameValue("Start Row", size, sizeY, &s_editorData.trackViewInfo.startRow, 0, 10000000, s_startRow);
|
||||
size += drawNameValue("End Row", size, sizeY, &s_editorData.trackViewInfo.endRow, 0, 10000000, s_endRow);
|
||||
size += drawNameValue("Start Row", size, sizeY, &s_editorData.trackData.startRow, 0, 10000000, s_startRow);
|
||||
size += drawNameValue("End Row", size, sizeY, &s_editorData.trackData.endRow, 0, 10000000, s_endRow);
|
||||
|
||||
if (getRowPos() != prevRow)
|
||||
RemoteConnection_sendSetRowCommand(getRowPos());
|
||||
@ -660,8 +661,8 @@ bool Editor_keyDown(int key, int keyCode, int modifiers)
|
||||
|
||||
row += modifiers & EMGUI_KEY_ALT ? 8 : 1;
|
||||
|
||||
if ((modifiers & EMGUI_KEY_COMMAND) || row > viewInfo->endRow)
|
||||
row = viewInfo->endRow;
|
||||
if ((modifiers & EMGUI_KEY_COMMAND) || row > trackData->endRow)
|
||||
row = trackData->endRow;
|
||||
|
||||
viewInfo->rowPos = row;
|
||||
|
||||
@ -709,8 +710,8 @@ bool Editor_keyDown(int key, int keyCode, int modifiers)
|
||||
|
||||
row -= modifiers & EMGUI_KEY_ALT ? 8 : 1;
|
||||
|
||||
if ((modifiers & EMGUI_KEY_COMMAND) || row < viewInfo->startRow)
|
||||
row = viewInfo->startRow;
|
||||
if ((modifiers & EMGUI_KEY_COMMAND) || row < trackData->startRow)
|
||||
row = trackData->startRow;
|
||||
|
||||
viewInfo->rowPos = row;
|
||||
|
||||
@ -1035,7 +1036,6 @@ void Editor_scroll(float deltaX, float deltaY, int flags)
|
||||
{
|
||||
int current_row = s_editorData.trackViewInfo.rowPos;
|
||||
int old_offset = s_editorData.trackViewInfo.startPixel;
|
||||
TrackViewInfo* viewInfo = &s_editorData.trackViewInfo;
|
||||
|
||||
if (flags & EMGUI_KEY_ALT)
|
||||
{
|
||||
@ -1055,11 +1055,11 @@ void Editor_scroll(float deltaX, float deltaY, int flags)
|
||||
|
||||
current_row += (int)deltaY;
|
||||
|
||||
if (current_row < viewInfo->startRow || current_row >= viewInfo->endRow)
|
||||
if (current_row < trackData->startRow || current_row >= trackData->endRow)
|
||||
return;
|
||||
|
||||
s_editorData.trackViewInfo.startPixel += (int)(deltaX * 4.0f);
|
||||
s_editorData.trackViewInfo.rowPos = eclampi(current_row, viewInfo->startRow, viewInfo->endRow);
|
||||
s_editorData.trackViewInfo.rowPos = eclampi(current_row, trackData->startRow, trackData->endRow);
|
||||
|
||||
RemoteConnection_sendSetRowCommand(s_editorData.trackViewInfo.rowPos);
|
||||
|
||||
|
||||
@ -68,6 +68,8 @@ typedef struct TrackData
|
||||
int activeTrack;
|
||||
int lastColor;
|
||||
int trackCount;
|
||||
int startRow;
|
||||
int endRow;
|
||||
char* editText;
|
||||
} TrackData;
|
||||
|
||||
|
||||
@ -14,8 +14,6 @@ typedef struct TrackViewInfo
|
||||
int windowSizeX;
|
||||
int windowSizeY;
|
||||
int rowPos;
|
||||
int startRow;
|
||||
int endRow;
|
||||
int startTrack;
|
||||
int startPixel;
|
||||
int smallFontId;
|
||||
|
||||
@ -31,6 +31,18 @@ static void parseXml(mxml_node_t* rootNode, TrackData* trackData)
|
||||
{
|
||||
const char* element_name = mxmlGetElement(node);
|
||||
|
||||
if (!strcmp("tracks", element_name))
|
||||
{
|
||||
const char* start_row = mxmlElementGetAttr(node, "startRow");
|
||||
const char* end_row = mxmlElementGetAttr(node, "endRow");
|
||||
|
||||
if (start_row)
|
||||
trackData->startRow = atoi(start_row);
|
||||
|
||||
if (end_row)
|
||||
trackData->endRow = atoi(end_row);
|
||||
}
|
||||
|
||||
if (!strcmp("track", element_name))
|
||||
{
|
||||
int i;
|
||||
@ -178,6 +190,26 @@ static const char* whitespaceCallback(mxml_node_t* node, int where)
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static void setElementInt(mxml_node_t* node, const char* attr, const char* format, int v)
|
||||
{
|
||||
char temp[256];
|
||||
memset(temp, 0, sizeof(temp));
|
||||
sprintf(temp, format, v);
|
||||
mxmlElementSetAttr(node, attr, temp);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static void setElementFloat(mxml_node_t* node, char* attr, float v)
|
||||
{
|
||||
char temp[256];
|
||||
memset(temp, 0, sizeof(temp));
|
||||
sprintf(temp, "%f", v);
|
||||
mxmlElementSetAttr(node, attr, temp);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
int LoadSave_saveRocketXML(const char* path, TrackData* trackData)
|
||||
{
|
||||
mxml_node_t* xml;
|
||||
@ -190,47 +222,26 @@ int LoadSave_saveRocketXML(const char* path, TrackData* trackData)
|
||||
xml = mxmlNewXML("1.0");
|
||||
tracks = mxmlNewElement(xml, "tracks");
|
||||
|
||||
mxmlElementSetAttr(tracks, "rows", "10000"); // TODO: Fix me
|
||||
mxmlElementSetAttr(tracks, "rows", "10000");
|
||||
setElementInt(tracks, "startRow", "%d", trackData->startRow);
|
||||
setElementInt(tracks, "endRow", "%d", trackData->endRow);
|
||||
|
||||
for (p = 0; p < sync_data->num_tracks; ++p)
|
||||
{
|
||||
int i;
|
||||
char temp[256];
|
||||
const struct sync_track* t = sync_data->tracks[p];
|
||||
mxml_node_t* track = mxmlNewElement(tracks, "track");
|
||||
|
||||
memset(temp, 0, sizeof(temp));
|
||||
sprintf(temp, "%08x", trackData->tracks[p].color);
|
||||
|
||||
// setup the elements for the trak
|
||||
|
||||
mxmlElementSetAttr(track, "name", t->name);
|
||||
mxmlElementSetAttr(track, "color", temp);
|
||||
mxmlElementSetAttr(track, "folded", trackData->tracks[p].folded ? "1" : "0");
|
||||
setElementInt(track, "color", "%08x", trackData->tracks[p].color);
|
||||
|
||||
for (i = 0; i < (int)t->num_keys; ++i)
|
||||
{
|
||||
char temp0[256];
|
||||
char temp1[256];
|
||||
char temp2[256];
|
||||
|
||||
int row = (int)t->keys[i].row;
|
||||
float value = t->keys[i].value;
|
||||
char interpolationType = (char)t->keys[i].type;
|
||||
|
||||
mxml_node_t* key = mxmlNewElement(track, "key");
|
||||
|
||||
memset(temp0, 0, sizeof(temp0));
|
||||
memset(temp1, 0, sizeof(temp1));
|
||||
memset(temp2, 0, sizeof(temp2));
|
||||
|
||||
sprintf(temp0, "%d", row);
|
||||
sprintf(temp1, "%f", value);
|
||||
sprintf(temp2, "%d", interpolationType);
|
||||
|
||||
mxmlElementSetAttr(key, "row", temp0);
|
||||
mxmlElementSetAttr(key, "value", temp1);
|
||||
mxmlElementSetAttr(key, "interpolation", temp2);
|
||||
setElementInt(key, "row", "%d", (int)t->keys[i].row);
|
||||
setElementFloat(key, "value", t->keys[i].value);
|
||||
setElementInt(key, "interpolation", "%d", (int)t->keys[i].type);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user