강좌라고 하긴 뭐하지만 다른 카테고리 만들기 귀찮아서 여기 넣었다.
스트링파일 헤더부분:
[공백FSC] [뭔지 알려지지 않은 플래그, 4bytes ] [스트링 수, 4bytes] [스트링 수, 4bytes]
[0, 4byte] [언어코드, 4bytes]
4bytes... -> 32bit형 unsigned integer라고.. 음 ㄱ-;; 언어마다 조금씩 그 형식의 variable을 부르는 사투리가 다르므로 여기서는 패스.
그 이후로는 데이터, LBL,RTS가 반복된다.
데이터 부분:
[공백LBL] [4byte. 1혹은 다른 어떤 값. 대부분의경우 1이지만, ExtraData가 있는 경우에만 다른 값이다.]
[길이, 4byte] [라벨, Ascii로 된 string. 길이만큼의 byte]
[공백RTS][1 (4byte)][길이,4byte][ 스트링(길이만큼) ]
스트링 부분은 그냥 UTF8 데이터여도 되었겠지만 그렇게 만들어지지 않았다.
utf8의 한 character는 2byte를 차지하는데,
그 2byte를 각각 not연산으로 bitwise invert한 것이 들어간다.
너무 고급언어라서 not연산으로 character를 invert할 수 없다면,
character를 그 byte에 해당하는 숫자로 바꾸는 것이야 되겠지... (설마 ㅠㅠ)
그 값을 65535에서 빼면 된다.
길이에 특이한점이라면? 길이로 지정된 만큼의 2배의 byte를 [스트링]부분이 차지한다.
몇 wide character인지가 길이로 저장되어있고, 한 wide character당 2byte니 정상이다 ㄱ-
Extra Data(만약 있다면) => [길이,4byte][데이터 (Ascii로된 string.) 아까 적힌 길이만큼의 byte]
C&C3에는 Extra Data가 없다. -_-;; RA2와 제로아워에서 본듯.
스트링파일 헤더부분:
[공백FSC] [뭔지 알려지지 않은 플래그, 4bytes ] [스트링 수, 4bytes] [스트링 수, 4bytes]
[0, 4byte] [언어코드, 4bytes]
4bytes... -> 32bit형 unsigned integer라고.. 음 ㄱ-;; 언어마다 조금씩 그 형식의 variable을 부르는 사투리가 다르므로 여기서는 패스.
그 이후로는 데이터, LBL,RTS가 반복된다.
데이터 부분:
[공백LBL] [4byte. 1혹은 다른 어떤 값. 대부분의경우 1이지만, ExtraData가 있는 경우에만 다른 값이다.]
[길이, 4byte] [라벨, Ascii로 된 string. 길이만큼의 byte]
[공백RTS][1 (4byte)][길이,4byte][ 스트링(길이만큼) ]
스트링 부분은 그냥 UTF8 데이터여도 되었겠지만 그렇게 만들어지지 않았다.
utf8의 한 character는 2byte를 차지하는데,
그 2byte를 각각 not연산으로 bitwise invert한 것이 들어간다.
너무 고급언어라서 not연산으로 character를 invert할 수 없다면,
character를 그 byte에 해당하는 숫자로 바꾸는 것이야 되겠지... (설마 ㅠㅠ)
그 값을 65535에서 빼면 된다.
길이에 특이한점이라면? 길이로 지정된 만큼의 2배의 byte를 [스트링]부분이 차지한다.
몇 wide character인지가 길이로 저장되어있고, 한 wide character당 2byte니 정상이다 ㄱ-
Extra Data(만약 있다면) => [길이,4byte][데이터 (Ascii로된 string.) 아까 적힌 길이만큼의 byte]
C&C3에는 Extra Data가 없다. -_-;; RA2와 제로아워에서 본듯.
무심코 여태 넘겼는데, LBL, RTS, FSC는 각각 LBL, STR, CSF를 거꾸로 놓은 것이다 (-_-)
'모드강좌' 카테고리의 다른 글
C&C3의 BannerCarrierUpdate (0) | 2007.09.17 |
---|---|
jonwil의 도구 모음 (0) | 2007.09.02 |
빌더 버그. (0) | 2007.08.29 |
MOD SDK 컴파일 스크립트 다른 버전 (0) | 2007.08.25 |
모드 SDK로 모드 컴파일 하는 법 (0) | 2007.08.25 |