# 도구: 분류, 사용 효과, 측량, 항해 용품, 보물 지도

도구 100개의 표와 "사용" 명령의 처리 코드를 정리했습니다. 표시 방법은 [index.md](index.md)를 따릅니다.
상륙해서 보물을 파내는 규칙은 [landing.md](landing.md), 무기·갑옷 수치가 쓰이는 결투 공식은 [combat.md](combat.md)에 있습니다.

## 1. 도구 기록

**확인됨[직접]** (`DATA1.LZW` 15번 엔트리 = 세이브 슬롯 `0x7514`부터 26바이트 × 100, 기록 그룹 11)

| 오프셋 | 크기 | 내용 |
| --- | --: | --- |
| `+0x00` | 21 | 이름(CP949, NUL로 끝남) |
| `+0x15` | 1 | 그림 번호(`KAO.LZW` 128 + 85 + n) |
| `+0x16` | 2 | 가격 ÷ 100 |
| `+0x18` | 1 | 성능(무기 공격력, 갑옷 방어력, 측량기 눈금 등). 보물 지도는 새 게임 때 이 값이 숨긴 발견물 번호로 바뀜 |
| `+0x19` | 1 | 하위 4비트 = 분류 |

설명은 `ITEM.MES`에 124바이트씩 있습니다([data-formats.md](data-formats.md)). 영문판 기록은 22바이트이고 성능이 `+0x14`, 분류가 `+0x15`입니다(**확인됨[직접]**: 아래 보물 숨기기 루틴이 영문판은 `+0x14`·간격 0x16, 한글판은 `+0x18`·간격 0x1A를 씀).

분류(`+0x19 & 0x0F`): 0 검, 1 스트레이트 소드, 2 커브 소드, 3 헤비 소드, 4 방패, 5 방어 무기, 6 갑옷, 7 측량기, 8 항해 용품, 9 소모품, 10 장신구, 11 보물, 12 지도, 13 국보급 보물.

### 한글판 도구 표 (발췌)

**확인됨[직접]** (기록을 직접 읽음; 가격은 원래 단위)

| 번호 | 이름 | 분류 | 성능 | 가격 |
| --: | --- | --: | --: | --: |
| 0~2 | 단도 / 숏 소드 / 롱 소드 | 0 | 5 / 10 / 20 | 500 / 1,000 / 4,000 |
| 3~5 | 레이피어 / 에페 / 에스톡 | 1 | 15 / 10 / 20 | 3,000 / 2,000 / 6,000 |
| 6~8 | 숏 사브르 / 시미타 / 일본도 | 2 | 10 / 20 / 25 | 3,000 / 8,000 / 20,000 |
| 9~11 | 커트라스 / 브로드 소드 / 청룡언월도 | 3 | 10 / 20 / 30 | 1,500 / 5,000 / 24,000 |
| 12, 13, 14, 15 | 프람베르그 / 바스터드 소드 / 클레이모어 / 사브르 | 1 / 0 / 3 / 2 | 25 / 25 / 25 / 15 | 14,000 / 14,000 / 15,000 / 3,000 |
| 16~19 | 하드 레더 / 체인 메일 / 하프 플레이트 / 플레이트 메일 | 6 | 10 / 20 / 30 / 40 | 1,000 / 2,000 / 4,000 / 8,000 |
| 20~22 | 사분의 / 육분의 / 경위의 | 7 | 5 / 2 / 1 | 4,000 / 8,000 / 12,000 |
| 23~25 | 회중시계 / 망원경 / 고양이 | 8 | 1 | 2,000 / 5,000 / 2,000 |
| 26 | 백호반월도 | 3 | 25 | 18,000 |
| 27, 28 | 망원경(두 번째) / 공백 | 8 | 0 | 5,000 |
| 29~34 | 사략허가서 (P)(S)(O)(E)(I)(H) | 8 | 0 | 0 |
| 35~40 | 면세증 (P)(S)(O)(E)(I)(H) | 8 | 0 | 10,000 |
| 41~43 | 쥐약 / 성스런 향유 / 라임 주스 | 9 | 1 | 500 / 1,000 / 1,000 |
| 44 | 왕관 | 10 | 1 | 300,000 |
| 45~49 | 성스런 향유(두 번째) / 속죄상 / 면죄부 / 공백 / 공백 | 9 | 1 / 0 / 0 / 0 / 0 | 1,000 |
| 50~58 | 비단 숄 ~ 벨벳 가운(장신구) | 10 | 2~12 | 1,000~12,000 |
| 59~69 | 다이아몬드 왕관 ~ 루비 반지(보물) | 11 | 3~100 | 3,000~100,000 |
| 73~78 | 요도촌정 / 룬 블레이드 / 성기사의 갑옷 / 성기사의 검 / 시바신의 마검 / 에롤즈플레이트 | 2 / 0 / 6 / 1 / 2 / 6 | 40 / 40 / 70 / 40 / 30 / 55 | 280,000~600,000 |
| 80~89 | 가면의 지도 ~ 성자의 지팡이의 지도, 낡은 지도 | 12 | 0 | 0 |
| 90~99 | 순금 가면 ~ 최후의 보물(국보급 보물) | 13 | 0 | 0 |

사략허가서 괄호는 나라(P 포르투갈, S 에스파냐, O 오스만, E 잉글랜드, I 이탈리아, H 네덜란드)입니다. 사략허가서와 면세증의 효과는 [trade.md](trade.md)·[relations.md](relations.md)에 있습니다.

## 2. "사용" 명령의 분기

**확인됨[직접]** (`KO 0x2E79A`, 영문판 `EN 0x2F8C4`와 명령어 차이 0)

```text
분류 = 도구[+0x19] & 0x0F
 7 측량기   → KO 0x2E644
 8 항해 용품 → KO 0x2E4AE
 9 소모품   → KO 0x2E5A7
12 지도     → KO 0x2E792 (지도 보기)
그 밖      → KO 0x2E3CB: "무기는, / 방패는, / 갑옷은, / 이 아이템은, " + "이 곳에서는 사용할 수 없습니다." (공통 대사 1093~1098)
```

바다에서 도구 메뉴는 장비와 사용만 있어서 버릴 수는 없습니다(**확인됨[대조]**).

## 3. 측량기: 위도·경도 재기

**확인됨[직접]** (`KO 0x2E644`)

- 항구 안에서 쓰면 "경도·위도의 계측은 배 위에서 해 주세요."(공통 대사 756)만 나옵니다.
- 바다에서는 주인공의 기술 바이트(`+0x30`) 비트 `0x10`(측량술)을 봅니다. 없으면 "측량술을 가지고 있는 동료를 선택해 주세요."(757)로 동료를 고르게 하고, 고르지 않으면 주인공이 직접 잽니다(758 "할 수 없군요. 잘은 모르지만 내가 측량해 보겠어요.").

**확인됨[대조]** (영문판과 명령어 4개만 다름, 상수 같음):

- 값은 도구 성능 바이트(`+0x18`) 단위로 내림합니다. 사분의 5°, 육분의 2°, 경위의 1°(성능 값은 위 표에서 **확인됨[직접]**). 그래서 정확한 도(°)는 경위의만 보여 줍니다.
- 측량술이 있는 사람이 없으면 위도·경도 둘 다에 `random(100) + 1`이 더해집니다.
- 측량기는 써도 없어지지 않습니다.

## 4. 항해 용품

### 출항할 때만 읽는 망원경·고양이

**확인됨[직접]** (`KO 0x0D7E5`~`0x0D80C`)

출항할 때 소지품 20칸(`DS:0x2D93`)을 훑어 도구 0x18(망원경)이 있으면 `DS:0xC158` 비트 `0x80`, 0x19(고양이)가 있으면 비트 `0x40`을 켭니다. 이 바이트는 출항 때만 다시 계산됩니다.
두 번째 망원경(27번, 0x1B)은 이 검사에 걸리지 않으므로 효과가 없습니다.

- 망원경 비트: 망대 시야가 넓어집니다([navigation.md](navigation.md)의 발견 거리). **확인됨[대조]**
- 고양이 비트: 쥐가 생기지 않습니다(항해 30일 뒤 `random(floor(항해 레벨/5)+2) = 0`이고 `random(105) > 운`이면 쥐 발생, 배마다 하루 식량 1통 손실). **확인됨[대조]**

### "사용"했을 때

**확인됨[직접]** (`KO 0x2E4AE`의 도구 번호 분기표)

| 도구 번호 | 처리 | 결과 |
| --- | --- | --- |
| 0x17 회중시계 | `KO 0x2E430` | 지금 시각 표시 |
| 0x18 망원경, 0x1A, 0x1B 망원경(두 번째), 0x1C 공백 | `KO 0x2E47C` | "멀리 보인다"는 한 줄만 나옴. 효과 없음 |
| 0x19 고양이 | `KO 0x2E495` | 고양이 울음 한 줄만 나옴. 효과 없음 |

0x1A(26번)는 한글판에서 백호반월도(분류 3)라 실제로는 이 분기에 오지 않습니다.

회중시계 표시(**확인됨[대조]**): 시 = `floor(틱/3) mod 12`(0은 12로), 분 = `(틱 mod 3) × 30`. 한 틱은 20분인데 분을 30씩 세므로 :00, :30, :60만 나옵니다(예: 8시 40분이 "8:60"). 오전/오후는 틱 24 미만일 때만 오전이라, 8:00~11:40 오전도 오후로 표시됩니다.

## 5. 소모품

**확인됨[대조]** (`KO 0x2E5A7`, 영문판 `EN 0x2F6C2`와 명령어 차이 0)

| 도구 | 효과 |
| --- | --- |
| 41 쥐약 | 쥐를 없앰 |
| 42 성스런 향유 | 폭풍 중이면 폭풍을 끝냄 |
| 43 라임 주스 | 괴혈병을 고침 |
| 45 성스런 향유(두 번째), 46 속죄상, 47 면죄부, 48~49 공백 | 처리기 없음(아무 효과 없음) |

소모품은 효과가 있었든 없었든 쓰면 없어집니다. 쥐와 괴혈병은 항구에 들어가면 저절로 낫습니다([navigation.md](navigation.md)).

## 6. 보물 지도

### 새 게임 때 보물 숨기기

`KO 0x1B577`(영문판 `EN 0x1B9A2`와 명령어 차이 0, 상수 차이는 도구 기록 크기 22→26과 필드 위치뿐). 1번은 **확인됨[대조]**, 2번은 **확인됨[직접]**(`KO 0x1B5C2`~`0x1B605`를 직접 읽음)입니다.

1. 발견물 98곳 전부에 "이번 게임에 쓰지 않음" 비트 `0x80`을 켠 뒤, `random(98)`로 서로 다른 50곳을 골라 비트를 끕니다. 그래서 한 게임에 발견물은 50곳뿐입니다.
2. 보물 k = 0~9마다, 아직 `0x80`이 켜져 있고 내용이 보통(90 미만)인 기록 하나를 무작위로 골라 내용을 도구 `90 + k`로 바꾸고, 지도 도구 `80 + k`의 성능 바이트(한글판 `+0x18`)에 그 발견물 번호를 적습니다.

따라서 보물은 "고르지 않은 48곳" 중에 숨고, 그 마을 아이콘에 상륙하면 마을 메뉴가 아니라 빈 땅 메뉴가 나옵니다([landing.md](landing.md)).

### 지도 보기

**확인됨[대조]** (`KO 0x22AEF`, 영문판 `EN 0x2308C`와 명령어 3개만 다름)

- 지도는 써도 없어지지 않습니다. 낡은 지도(89)도 같은 처리입니다.
- 48 × 48칸 범위를 보여 주며, 중심이 아니라 24칸 격자에 맞춥니다.

  ```text
  cx = floor(X / 24), X mod 24 < 12 이면 1을 뺌 (세계는 가로로 이어짐)
  cy = floor(Y / 24), Y mod 24 < 12 이고 cy > 0 이면 1을 뺌
  시작점 = (24 × cx, 24 × cy)
  ```

- 범위 안의 모든 발견물 자리(마을 아이콘 타일 `0x7C`~`0x7F`)가 X로 그려집니다. 지도의 보물이 아닌 곳도 X로 나옵니다. 항구는 땅으로 바뀌어 보이지 않습니다.
- 보물을 파내는 법은 [landing.md](landing.md)의 "빈 땅 탐색"을 보세요.

## 확인하지 못한 것

- 공백 도구(28, 48, 49)와 예비(79)를 게임이 어디서 주는지.
- 망원경이 시야를 몇 칸 늘리는지 한글판에서 직접 읽지 않았습니다([navigation.md](navigation.md)의 표시를 따름).
- 장신구(50~58)의 효과는 주점 아가씨에게 주는 선물이라는 영문판 연구가 있으나 한글판에서 확인하지 않았습니다(**외부자료**).
