Implement coevent. (2)
This commit is contained in:
@@ -12,6 +12,8 @@ namespace Cryville.Crtr.Event {
|
||||
ContainerState RootState;
|
||||
readonly Dictionary<ChartEvent, ContainerState> containerMap
|
||||
= new Dictionary<ChartEvent, ContainerState>();
|
||||
readonly Dictionary<EventContainer, ContainerState> stateMap
|
||||
= new Dictionary<EventContainer, ContainerState>();
|
||||
readonly Dictionary<ChartEvent, StampedEvent> map
|
||||
= new Dictionary<ChartEvent, StampedEvent>();
|
||||
public Dictionary<EventContainer, List<StampedEvent>> coeventMap
|
||||
@@ -34,6 +36,7 @@ namespace Cryville.Crtr.Event {
|
||||
|
||||
void AddEventContainer(EventContainer c, ContainerState parent = null) {
|
||||
var cs = new ContainerState(chart, c, parent);
|
||||
stateMap.Add(c, cs);
|
||||
if (parent == null) {
|
||||
cs.Depth = 0;
|
||||
RootState = cs;
|
||||
@@ -78,6 +81,9 @@ namespace Cryville.Crtr.Event {
|
||||
Unstamped = ev,
|
||||
Container = con
|
||||
};
|
||||
if (ev is EventContainer) {
|
||||
stateMap[(EventContainer)ev].StampedContainer = sev;
|
||||
}
|
||||
if (ev is InstantEvent) {
|
||||
var tev = (InstantEvent)ev;
|
||||
var pev = map[tev.Original];
|
||||
@@ -146,8 +152,8 @@ namespace Cryville.Crtr.Event {
|
||||
ocevs.Add(cev);
|
||||
BatchCoevents(cev, ocevs);
|
||||
}
|
||||
ocevs.Add(ev);
|
||||
if (rootFlag) ocevs.Sort(CompareStampedEvents);
|
||||
else ocevs.Add(ev);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user