오래된 것들

개발 단계에서 수정 등으로 오래되어 버려진 계획들을 저장함.

초기 패턴 설계

ksh 형식처럼 비트를 줄마다 표시하려 했으나 여러 문제점이 있어 버려졌다

구조 예시

[header]
title=Narkotik Kal
artist=Hard Bass School
subartist=
jacket=narkotik.png
designer=
difficulty=2
level=9
tempo=165
wave=narkotik_kal.mp3
waveoffset=230
movie=
movieoffset=0
ver=0.01.00
guide05=runningman
guide06=runningman2
guide07=hardbassdance
[pattern]
00:00,0,24,2
00:guide,05
05:00,0,24,3
06:00,0,36,3
11:00,0,36,3
12:24,2,48,4
17:24,3,00,0
18:36,3,00,0
23:36,3,00,0
24:48,4,24,2
29:00,0,24,3
30:00,0,36,3
35:00,0,36,3
36:24,2,48,4
41:24,3,00,0
42:36,3,00,0
--

[pattern] 을 기준으로 두 부분으로 나눌 수 있다. (split)
각 부분은 한 줄마다 구조체 배열로 처리한다.

헤더 구조체

cmd, arg 두 스트링으로 이루어짐.
=로 파싱한다

곡의 정보, 재생 시간, 템포 등을 지정

패턴 구조체

  • bar, beat, l_pos, l_type, r_pos, r_type으로 이루어짐
  • bar는 --를 만났을 때 1씩 올라감 (마디)
  • pos 는 레인 전체를 48분할한 위치값. k-shoot mania에선 50분할로 노브를 처리하고 있으므로 48이면 약수도 많이 나오고 적절한 값이 아닐까 생각함
  • type
    0: 없음 / 1: 스텝 / 2: 롱스텝 시작 / 3: 롱스텝 진행 / 4: 롱스텝 끝
    48비트 간격으로 이어지는 롱스텝은 슬라이드 스텝으로 친다
  • jump : 다운 또는 점프. 본래 rtype 옆에 있었으나, 롱스텝 나오면서 처리하기 애매해 보여서 특수명령으로 편입시켰다
    24:jump,1 - 0은 쓰지 않으며, 1이 다운, 2가 점프로 쓰임
  • 특수명령은 00:guide,05 처럼 비트를 명시해주고 한 줄씩 처리
  • beat, lpos에 특수명령이 들어갈 것임. 이것 처리해주어야
  1. bar=0 에서부터 시작, 한줄씩 스트링 배열로 만들어서 for 처리한다
  2. bar를 제외한 모든 값을 0으로 초기화한다. 그러지 않으면 특수명령을 만날 때 곤란해짐
  3. --를 만나면 bar를 갱신하고 바로 다음 줄로 넘어간다.
  4. “**:” 를 만나면 beat에 집어넣는다.
  5. “\n”을 만날때까지 “,”로 파싱한다
  6. “\n”을 만나면 바로 다음 줄로 넘어간다
  7. EOF까지 루프