public void AddPopnMetadata(IEvent ev, IDjmainChartEvent ce) { var command = (DjmainEventType)(ce.Param0 & 0xF); var param0 = ce.Param0 >> 4; var param1 = ce.Param1; ev[NumericData.SourceCommand] = ce.Param0; ev[NumericData.SourceData] = ce.Param1; switch (command) { case DjmainEventType.Marker: case DjmainEventType.SoundSelect: ev[NumericData.Column] = param0; ev[NumericData.Player] = 0; ev[FlagData.Note] = true; if (command == DjmainEventType.SoundSelect) { ev[NumericData.LoadSound] = param1 - 1; } break; default: SetCommon(ev, command, param0, param1); break; } }
private static bool IsNote(IDjmainChartEvent ev) { switch ((DjmainEventType)(ev.Param0 & 0xF)) { case DjmainEventType.SoundSelect: case DjmainEventType.Bgm: return(true); default: return(false); } }
public void AddBeatmaniaMetadata(IEvent ev, IDjmainChartEvent ce) { var command = (DjmainEventType)(ce.Param0 & 0xF); var param0 = ce.Param0 >> 4; var param1 = ce.Param1; ev[NumericData.SourceCommand] = ce.Param0; ev[NumericData.SourceData] = ce.Param1; switch (command) { case DjmainEventType.Marker: case DjmainEventType.SoundSelect: switch ((DjmainBeatmaniaColumnType)param0) { case DjmainBeatmaniaColumnType.Player0Scratch: case DjmainBeatmaniaColumnType.Player1Scratch: { ev[FlagData.Scratch] = true; ev[NumericData.Player] = param0 & 1; break; } case DjmainBeatmaniaColumnType.Player0Measure: case DjmainBeatmaniaColumnType.Player1Measure: { // Sometimes you get commands like 0xD1 (2p measure sound select?? wtf??) // which are absolutely absurd, so we don't bother. if (command == DjmainEventType.Marker) { ev[FlagData.Measure] = true; } ev[NumericData.Player] = param0 & 1; break; } case DjmainBeatmaniaColumnType.Player0FreeScratch: case DjmainBeatmaniaColumnType.Player1FreeScratch: { if (command == DjmainEventType.SoundSelect) { ev[FlagData.Scratch] = true; } else { ev[FlagData.FreeZone] = true; } ev[NumericData.Player] = param0 & 1; break; } default: { ev[NumericData.Column] = param0 >> 1; ev[NumericData.Player] = param0 & 1; break; } } if (command == DjmainEventType.Marker && ev[FlagData.Measure] != true) { ev[FlagData.Note] = true; } if (command == DjmainEventType.SoundSelect) { ev[NumericData.LoadSound] = param1 - 1; } break; default: SetCommon(ev, command, param0, param1); break; } }