5.25. 職業

5.25.1. 構造に関する構成要素
5.25.1.1. 構造体 $C4179E: 職業
5.25.2. 振る舞いに関する構成要素

本節では職業について述べる。

5.25.1. 構造に関する構成要素

職業を表現するオブジェクト型について述べる。

5.25.1.1. 構造体 $C4179E: 職業

アドレス $C4179E に下の表に示すような巨大なオブジェクトが 9 個配列されている。 これらがそれぞれの職業の性質を表現する。

表 5.52 構造体 $C4179E

オフセット 属性
#$0000 #$00FFFF 名前
#$0002 #$0000FF スプライト男
#$0003 #$0000FF スプライト女
#$0004 #$0000FF スプライト水着
#$0005 #$0000FF 頭文字コード
#$0006 #$0000FF 初期性格条件 0
#$0007 #$0000FF 初期性格条件 1
#$0008 #$0000FF 初期性格条件 2
#$0009 #$0000FF 初期性格条件 3
#$000A #$0000FF 初期性格条件 4
#$000B #$FFFFFF 習得呪文配列
#$000E #$0000FF 習得呪文個数
#$000F #$FFFFFF 経験値 #$00
#$0012 #$FFFFFF 経験値 #$01
#$0015 #$FFFFFF 経験値 #$02
#$0018 #$FFFFFF 経験値 #$03
#$001B #$FFFFFF 経験値 #$04
#$001E #$FFFFFF 経験値 #$05
#$0021 #$FFFFFF 経験値 #$06
#$0024 #$FFFFFF 経験値 #$07
#$0027 #$FFFFFF 経験値 #$08
#$002A #$FFFFFF 経験値 #$09
#$002D #$FFFFFF 経験値 #$0A
#$0030 #$FFFFFF 経験値 #$0B
#$0033 #$FFFFFF 経験値 #$0C
#$0036 #$FFFFFF 経験値 #$0D
#$0039 #$FFFFFF 経験値 #$0E
#$003C #$FFFFFF 経験値 #$0F
#$003F #$FFFFFF 経験値 #$10
#$0042 #$FFFFFF 経験値 #$11
#$0045 #$FFFFFF 経験値 #$12
#$0048 #$FFFFFF 経験値 #$13
#$004B #$FFFFFF 経験値 #$14
#$004E #$FFFFFF 経験値 #$15
#$0051 #$FFFFFF 経験値 #$16
#$0054 #$FFFFFF 経験値 #$17
#$0057 #$FFFFFF 経験値 #$18
#$005A #$FFFFFF 経験値 #$19
#$005D #$FFFFFF 経験値 #$1A
#$0060 #$FFFFFF 経験値 #$1B
#$0063 #$FFFFFF 経験値 #$1C
#$0066 #$FFFFFF 経験値 #$1D
#$0069 #$FFFFFF 経験値 #$1E
#$006C #$FFFFFF 経験値 #$1F
#$006F #$FFFFFF 経験値 #$20
#$0072 #$FFFFFF 経験値 #$21
#$0075 #$FFFFFF 経験値 #$22
#$0078 #$FFFFFF 経験値 #$23
#$007B #$FFFFFF 経験値 #$24
#$007E #$FFFFFF 経験値 #$25
#$0081 #$FFFFFF 経験値 #$26
#$0084 #$FFFFFF 経験値 #$27
#$0087 #$FFFFFF 経験値 #$28
#$008A #$FFFFFF 経験値 #$29
#$008D #$FFFFFF 経験値 #$2A
#$0090 #$FFFFFF 経験値 #$2B
#$0093 #$FFFFFF 経験値 #$2C
#$0096 #$FFFFFF 経験値 #$2D
#$0099 #$FFFFFF 経験値 #$2E
#$009C #$FFFFFF 経験値 #$2F
#$009F #$FFFFFF 経験値 #$30
#$00A2 #$FFFFFF 経験値 #$31
#$00A5 #$FFFFFF 経験値 #$32
#$00A8 #$FFFFFF 経験値 #$33
#$00AB #$FFFFFF 経験値 #$34
#$00AE #$FFFFFF 経験値 #$35
#$00B1 #$FFFFFF 経験値 #$36
#$00B4 #$FFFFFF 経験値 #$37
#$00B7 #$FFFFFF 経験値 #$38
#$00BA #$FFFFFF 経験値 #$39
#$00BD #$FFFFFF 経験値 #$3A
#$00C0 #$FFFFFF 経験値 #$3B
#$00C3 #$FFFFFF 経験値 #$3C
#$00C6 #$FFFFFF 経験値 #$3D
#$00C9 #$FFFFFF 経験値 #$3E
#$00CC #$FFFFFF 経験値 #$3F
#$00CF #$FFFFFF 経験値 #$40
#$00D2 #$FFFFFF 経験値 #$41
#$00D5 #$FFFFFF 経験値 #$42
#$00D8 #$FFFFFF 経験値 #$43
#$00DB #$FFFFFF 経験値 #$44
#$00DE #$FFFFFF 経験値 #$45
#$00E1 #$FFFFFF 経験値 #$46
#$00E4 #$FFFFFF 経験値 #$47
#$00E7 #$FFFFFF 経験値 #$48
#$00EA #$FFFFFF 経験値 #$49
#$00ED #$FFFFFF 経験値 #$4A
#$00F0 #$FFFFFF 経験値 #$4B
#$00F3 #$FFFFFF 経験値 #$4C
#$00F6 #$FFFFFF 経験値 #$4D
#$00F9 #$FFFFFF 経験値 #$4E
#$00FC #$FFFFFF 経験値 #$4F
#$00FF #$FFFFFF 経験値 #$50
#$0102 #$FFFFFF 経験値 #$51
#$0105 #$FFFFFF 経験値 #$52
#$0108 #$FFFFFF 経験値 #$53
#$010B #$FFFFFF 経験値 #$54
#$010E #$FFFFFF 経験値 #$55
#$0111 #$FFFFFF 経験値 #$56
#$0114 #$FFFFFF 経験値 #$57
#$0117 #$FFFFFF 経験値 #$58
#$011A #$FFFFFF 経験値 #$59
#$011D #$FFFFFF 経験値 #$5A
#$0120 #$FFFFFF 経験値 #$5B
#$0123 #$FFFFFF 経験値 #$5C
#$0126 #$FFFFFF 経験値 #$5D
#$0129 #$FFFFFF 経験値 #$5E
#$012C #$FFFFFF 経験値 #$5F
#$012F #$FFFFFF 経験値 #$60
#$0132 #$FFFFFF 経験値 #$61
#$0135 #$0000FF ちから初期値男
#$0136 #$0000FF ちから初期値女
#$0137 #$0000FF ちからレベル 0
#$0138 #$0000FF ちから増分 0
#$0139 #$0000FF ちからレベル 1
#$013A #$0000FF ちから増分 1
#$013B #$0000FF ちからレベル 2
#$013C #$0000FF ちから増分 2
#$013D #$0000FF ちからレベル 3
#$013E #$0000FF ちから増分 3
#$013F #$0000FF ちからレベル 4
#$0140 #$0000FF ちから増分 4
#$0141 #$0000FF すばやさ初期値男
#$0142 #$0000FF すばやさ初期値女
#$0143 #$0000FF すばやさレベル 0
#$0144 #$0000FF すばやさ増分 0
#$0145 #$0000FF すばやさレベル 1
#$0146 #$0000FF すばやさ増分 1
#$0147 #$0000FF すばやさレベル 2
#$0148 #$0000FF すばやさ増分 2
#$0149 #$0000FF すばやさレベル 3
#$014A #$0000FF すばやさ増分 3
#$014B #$0000FF すばやさレベル 4
#$014C #$0000FF すばやさ増分 4
#$014D #$0000FF たいりょく初期値男
#$014E #$0000FF たいりょく初期値女
#$014F #$0000FF たいりょくレベル 0
#$0150 #$0000FF たいりょく増分 0
#$0151 #$0000FF たいりょくレベル 1
#$0152 #$0000FF たいりょく増分 1
#$0153 #$0000FF たいりょくレベル 2
#$0154 #$0000FF たいりょく増分 2
#$0155 #$0000FF たいりょくレベル 3
#$0156 #$0000FF たいりょく増分 3
#$0157 #$0000FF たいりょくレベル 4
#$0158 #$0000FF たいりょく増分 4
#$0159 #$0000FF たいりょくレベル 5
#$015A #$0000FF たいりょく増分 5
#$015B #$0000FF かしこさ初期値男
#$015C #$0000FF かしこさ初期値女
#$015D #$0000FF かしこさレベル 0
#$015E #$0000FF かしこさ増分 0
#$015F #$0000FF かしこさレベル 1
#$0160 #$0000FF かしこさ増分 1
#$0161 #$0000FF かしこさレベル 2
#$0162 #$0000FF かしこさ増分 2
#$0163 #$0000FF かしこさレベル 3
#$0164 #$0000FF かしこさ増分 3
#$0165 #$0000FF かしこさレベル 4
#$0166 #$0000FF かしこさ増分 4
#$0167 #$0000FF うんのよさ初期値男
#$0168 #$0000FF うんのよさ初期値女
#$0169 #$0000FF うんのよさレベル 0
#$016A #$0000FF うんのよさ増分 0
#$016B #$0000FF うんのよさレベル 1
#$016C #$0000FF うんのよさ増分 1
#$016D #$0000FF うんのよさレベル 2
#$016E #$0000FF うんのよさ増分 2
#$016F #$0000FF うんのよさレベル 3
#$0170 #$0000FF うんのよさ増分 3
#$0171 #$0000FF うんのよさレベル 4
#$0172 #$0000FF うんのよさ増分 4

各属性の意味を次に述べる。

名前

職業の名前を表す文字列 の ID を値に取る属性だ。 文字列については 5.3 文字列 で述べる。

スプライト男, スプライト女, スプライト水着

「はなす」対象分類オブジェクトの ID を値に取る属性だ。 この職業のキャラクターを移動中の画面上に表現するときに用いられるスプライトに関する情報は、 そのオブジェクトから参照する。

「はなす」対象分類オブジェクトについては 5.27.1.2 構造体 $C893D4: 「はなす」対象分類 で述べる。

頭文字コード

移動中や戦闘中のパーティー編成ウィンドウにおいて、各キャラクターのレベルの左に現れる平仮名一文字のコード値を取る属性だ。

初期性格条件 k (k = 0..4)

この職業のキャラクターを仲間登録所で新規に作成する際に用いるオブジェクトの ID を値とする属性だ。 詳細は 5.17 冒険者たちの登録所 で述べる。

習得呪文配列

この職業のキャラクターが、レベルアップ時に習得する可能性のあるレベルと、 習得呪文のペアを定義する配列のアドレスである。 厳密には、コマンド ID を直接保持するわけではなく、 仲間キャラクターオブジェクトの一部である「習得済み呪文フラグ」の位置を指示する配列 $C456AC の添字を保持する。

仲間キャラクターオブジェクトについては 5.5 仲間キャラクターオブジェクト で述べる。

習得呪文個数

上述した習得呪文配列属性の配列長を値とする属性だ。

経験値 k (k = #$00..#$61)

この職業のキャラクターのレベルが k + 2 であるために必要な経験値を値とする属性だ。

ちから初期値男, ちから初期値女

この職業のキャラクターを仲間登録所で新規に作成する際、男女それぞれのちから属性値の初期値(の最小値)を表す属性だ。 実際にはここにある乱数が加算される。

ちからレベル k (k = 0..4), ちから増分 k (k = 0..4)

この職業のキャラクターのレベルが上がるときに再設定されるちから属性値の基準値を計算するための属性だ。 この職業のキャラクターのレベルがちからレベル k 以上ちからレベル k + 1 未満であるとき、 その評価値を次の式で求める:

基準値 = (初期値
        + 増分[0]     * (レベル[0]     - 2)
        + 増分[1]     * (レベル[1]     - レベル[0])
        + ...
        + 増分[k - 1] * (レベル[k - 1] - レベル[k - 2])
        + 増分[k]     * (キャラレベル  - レベル[k]))
        / 16
すばやさ初期値男, すばやさ初期値女, すばやさレベル k (k = 0..4), すばやさ増分 k (k = 0..4)

ちからでの各属性についての説明をすばやさに置き換えて読んで欲しい。

たいりょく初期値男, たいりょく初期値女, たいりょくレベル k (k = 0..4), たいりょく増分 k (k = 0..4)

ちからでの各属性についての説明をたいりょくに置き換えて読んで欲しい。

かしこさ初期値男, かしこさ初期値女, かしこさレベル k (k = 0..4), かしこさ増分 k (k = 0..4)

ちからでの各属性についての説明をかしこさに置き換えて読んで欲しい。

うんのよさ初期値男, うんのよさ初期値女, うんのよさレベル k (k = 0..4), うんのよさ増分 k (k = 0..4)

ちからでの各属性についての説明をうんのよさに置き換えて読んで欲しい。

5.25.2. 振る舞いに関する構成要素

職業オブジェクトが参照される処理のうち主要なものは、 仲間キャラクター初期化処理、同レベルアップ処理、同転職処理だろう。 本節ではそのうちで最も職業オブジェクトの属性値を参照するレベルアップ処理について記す。

仲間キャラクター初期化処理については 5.17.2.1 サブルーチン $C3DAEB: 登録所メイン で、 転職処理については 5.19.2.1 サブルーチン $C3E477: ダーマの神官との対話的処理 でそれぞれ述べる。