%s",
@@ -2393,13 +2364,13 @@ goto Cleanup;
CopyBuffer(&Player, &Annotation);
// NOTE(matt): Tree structure of "annotation local" buffer dependencies
- // Category
+ // TopicDots
// Text
// AnnotationData
// AnnotationClass
// AnnotationHeader
- DeclaimBuffer(&Category, &ClaimedMemory);
+ DeclaimBuffer(&TopicDots, &ClaimedMemory);
DeclaimBuffer(&Text, &ClaimedMemory);
DeclaimBuffer(&AnnotationData, &ClaimedMemory);
DeclaimBuffer(&AnnotationClass, &ClaimedMemory);
@@ -2478,15 +2449,15 @@ goto Cleanup;
{
CopyStringToBuffer(&FilterState,
" var filterState = {\n");
- for(int i = 0; i < UniqueTopics; ++i)
+ for(int i = 0; i < Topics.Count; ++i)
{
CopyStringToBuffer(&FilterState, "\"%s\":\t{ \"type\": \"%s\",\t\"off\": false },\n",
- TopicsArray[i].Marker, "topic");
+ Topics.Category[i].Marker, "topic");
}
- for(int i = 0; i < UniqueMedia; ++i)
+ for(int i = 0; i < Media.Count; ++i)
{
CopyStringToBuffer(&FilterState, "\"%s\":\t{ \"type\": \"%s\",\t\"off\": false },\n",
- MediaArray[i].Marker, "medium");
+ Media.Category[i].Marker, "medium");
}
CopyStringToBuffer(&FilterState,
" };\n");
@@ -2502,7 +2473,7 @@ goto Cleanup;
bool HasTopic = FALSE;
bool HasMedium = FALSE;
- for(int i = 0; i < UniqueTopics; ++i)
+ for(int i = 0; i < Topics.Count; ++i)
{
if(!HasTopic)
{
@@ -2516,12 +2487,12 @@ goto Cleanup;
"
\n"
" %s\n"
"
\n",
- TopicsArray[i].Marker,
- TopicsArray[i].Marker,
- TopicsArray[i].Marker);
+ Topics.Category[i].Marker,
+ Topics.Category[i].Marker,
+ Topics.Category[i].Marker);
}
- for(int i = 0; i < UniqueMedia; ++i)
+ for(int i = 0; i < Media.Count; ++i)
{
if(!HasMedium)
{
@@ -2535,7 +2506,7 @@ goto Cleanup;
int j;
for(j = 0; j < ArrayCount(CategoryMedium); ++j)
{
- if(!StringsDiffer(MediaArray[i].Marker, CategoryMedium[j].Medium))
+ if(!StringsDiffer(Media.Category[i].Marker, CategoryMedium[j].Medium))
{
break;
}
@@ -2545,7 +2516,7 @@ goto Cleanup;
"
\n"
" %s%s\n"
"
\n",
- MediaArray[i].Marker,
+ Media.Category[i].Marker,
CategoryMedium[j].Icon,
CategoryMedium[j].WrittenName
);
@@ -2589,104 +2560,107 @@ goto Cleanup;
"
\n"
"
?Keyboard Navigation
\n"
"\n"
- "
Global Keys
\n"
- "
W,
A,
P /
S,
D,
N Jump to previous / next marker\n");
+ /* NOTE(matt) */
+ "
Global Keys
\n"
+ "
W,
A,
P /
S,
D,
N Jump to previous / next marker\n");
if(HasFilterMenu)
{
CopyStringToBuffer(&Menus,
- "
z Toggle filter mode V Revert filter to original state\n");
+ "
z Toggle filter mode V Revert filter to original state\n");
}
else
{
CopyStringToBuffer(&Menus,
- "
z Toggle filter mode V Revert filter to original state\n");
+ "
z Toggle filter mode V Revert filter to original state\n");
}
CopyStringToBuffer(&Menus,
"\n"
- "
Menu toggling
\n");
+ "
Menu toggling
\n");
if(HasQuoteMenu)
{
CopyStringToBuffer(&Menus,
- "
q Quotes\n");
+ "
q Quotes\n");
}
else
{
CopyStringToBuffer(&Menus,
- "
q Quotes\n");
+ "
q Quotes\n");
}
if(HasReferenceMenu)
{
CopyStringToBuffer(&Menus,
- "
r References\n");
+ "
r References\n");
}
else
{
CopyStringToBuffer(&Menus,
- "
r References\n");
+ "
r References\n");
}
if(HasFilterMenu)
{
CopyStringToBuffer(&Menus,
- "
f Filter\n");
+ "
f Filter\n");
}
else
{
CopyStringToBuffer(&Menus,
- "
f Filter\n");
+ "
f Filter\n");
}
if(HasCreditsMenu)
{
CopyStringToBuffer(&Menus,
- "
c Credits\n");
+ "
c Credits\n");
}
else
{
CopyStringToBuffer(&Menus,
- "
c Credits\n");
+ "
c Credits\n");
}
CopyStringToBuffer(&Menus,
"\n"
- "
Movement
\n"
- "
\n"
- "
\n"
- "
\n"
- "
a\n"
+ "
Movement
\n"
+ "
\n"
+ "
\n"
+ "
\n"
+ " a\n"
+ "
\n"
+ "
\n"
+ " w
\n"
+ " s\n"
+ "
\n"
+ "
\n"
+ " d\n"
+ "
\n"
+ "
\n"
+ "
\n"
+ " h\n"
+ " j\n"
+ " k\n"
+ " l\n"
+ "
\n"
+ "
\n"
+ "
\n"
+ " ←\n"
+ "
\n"
+ "
\n"
+ " ↑
\n"
+ " ↓\n"
+ "
\n"
+ "
\n"
+ " →\n"
+ "
\n"
+ "
\n"
"
\n"
- "
\n"
- " w
\n"
- " s\n"
- "
\n"
- "
\n"
- " d\n"
- "
\n"
- "
\n"
- "
\n"
- " h\n"
- " j\n"
- " k\n"
- " l\n"
- "
\n"
- "
\n"
- "
\n"
- " ←\n"
- "
\n"
- "
\n"
- " ↑
\n"
- " ↓\n"
- "
\n"
- "
\n"
- " →\n"
- "
\n"
- "
\n"
- "
\n"
- "
\n");
+ "
\n");
+
+ // NOTE(matt);
if(HasQuoteMenu)
{
@@ -2726,6 +2700,8 @@ goto Cleanup;
"
Enter Jump to timecode\n");
}
+ CopyStringToBuffer(&Menus, "\n");
+
if(HasQuoteMenu)
{
CopyStringToBuffer(&Menus,
@@ -2785,6 +2761,8 @@ goto Cleanup;
}
}
+ CopyStringToBuffer(&Menus, "\n");
+
if(HasQuoteMenu || HasReferenceMenu || HasCreditsMenu)
{
CopyStringToBuffer(&Menus,
@@ -2816,6 +2794,8 @@ goto Cleanup;
"
v Invert topics / media as per focus\n");
}
+ CopyStringToBuffer(&Menus, "\n");
+
if(HasCreditsMenu)
{
CopyStringToBuffer(&Menus,
@@ -2841,19 +2821,46 @@ goto Cleanup;
// TODO(matt): Maybe do something about indentation levels
CopyStringToBuffer(&Includes,
- "
\n"
- "\n"
- " \n"
- " \n"
- "
\n"
+ "
\n"
"
\n"
- "
",
- JSDir,
+ "
\n"
+ "\n"
+ "
\n"
+ "
\n",
CSSDir,
CSSDir,
HMML.metadata.project,
CSSDir);
+ if(Topics.Count || Media.Count)
+ {
+ CopyStringToBuffer(&Includes,
+ "
0)
+ {
+ for(int i = 0; i < Topics.Count; ++i)
+ {
+ CopyStringToBuffer(&Includes, "%s, ", Topics.Category[i].Marker);
+ }
+ }
+
+ if(Media.Count > 0)
+ {
+ for(int i = 0; i < Media.Count; ++i)
+ {
+ CopyStringToBuffer(&Includes, "%s, ", Media.Category[i].WrittenText);
+ }
+ }
+
+ Includes.Ptr -= 2;
+ CopyStringToBuffer(&Includes, "\">\n\n");
+ }
+
+ CopyStringToBuffer(&Includes,
+ " \n",
+ JSDir);
+
CopyStringToBuffer(&Script,
"