Hengband
2.2.1
|
#include "angband.h"
#include "util.h"
#include "grid.h"
#include "floor-generate.h"
#include "rooms.h"
#include "rooms-pitnest.h"
#include "monster.h"
#include "monsterrace-hook.h"
#include "sort.h"
#include "floor.h"
#include "feature.h"
#include "dungeon.h"
データ構造 | |
struct | vault_aux_type |
pit/nest型情報の構造体定義 [詳解] | |
マクロ定義 | |
#define | NUM_NEST_MON_TYPE 64 |
nestの種別数 [詳解] | |
#define | NEST_TYPE_CLONE 0 |
nestのID定義 / Nest types code [詳解] | |
#define | NEST_TYPE_JELLY 1 |
#define | NEST_TYPE_SYMBOL_GOOD 2 |
#define | NEST_TYPE_SYMBOL_EVIL 3 |
#define | NEST_TYPE_MIMIC 4 |
#define | NEST_TYPE_LOVECRAFTIAN 5 |
#define | NEST_TYPE_KENNEL 6 |
#define | NEST_TYPE_ANIMAL 7 |
#define | NEST_TYPE_CHAPEL 8 |
#define | NEST_TYPE_UNDEAD 9 |
#define | PIT_TYPE_ORC 0 |
pitのID定義 / Pit types code [詳解] | |
#define | PIT_TYPE_TROLL 1 |
#define | PIT_TYPE_GIANT 2 |
#define | PIT_TYPE_LOVECRAFTIAN 3 |
#define | PIT_TYPE_SYMBOL_GOOD 4 |
#define | PIT_TYPE_SYMBOL_EVIL 5 |
#define | PIT_TYPE_CHAPEL 6 |
#define | PIT_TYPE_DRAGON 7 |
#define | PIT_TYPE_DEMON 8 |
#define | PIT_TYPE_DARK_ELF 9 |
型定義 | |
typedef struct vault_aux_type | vault_aux_type |
pit/nest型情報のtypedef [詳解] | |
関数 | |
static int | pick_vault_type (vault_aux_type *l_ptr, BIT_FLAGS16 allow_flag_mask) |
ダンジョン毎に指定されたピット配列を基準にランダムなpit/nestタイプを決める [詳解] | |
static concptr | pit_subtype_string (int type, bool nest) |
デバッグ時に生成されたpit/nestの型を出力する処理 [詳解] | |
static bool | ang_sort_comp_nest_mon_info (vptr u, vptr v, int a, int b) |
static void | ang_sort_swap_nest_mon_info (vptr u, vptr v, int a, int b) |
nestのモンスターリストをスワップするための関数 / Swap function for sorting nest monster information [詳解] | |
bool | build_type5 (floor_type *floor_ptr) |
タイプ5の部屋…nestを生成する / Type 5 – Monster nests [詳解] | |
bool | build_type6 (floor_type *floor_ptr) |
タイプ6の部屋…pitを生成する / Type 6 – Monster pits [詳解] | |
static bool | vault_aux_trapped_pit (MONRACE_IDX r_idx) |
bool | build_type13 (floor_type *floor_ptr) |
タイプ13の部屋…トラップpitの生成 / Type 13 – Trapped monster pits [詳解] | |
変数 | |
static vault_aux_type | nest_types [] |
nest情報テーブル [詳解] | |
static vault_aux_type | pit_types [] |
pit情報テーブル [詳解] | |
#define NEST_TYPE_ANIMAL 7 |
#define NEST_TYPE_CHAPEL 8 |
#define NEST_TYPE_CLONE 0 |
nestのID定義 / Nest types code
#define NEST_TYPE_JELLY 1 |
#define NEST_TYPE_KENNEL 6 |
#define NEST_TYPE_LOVECRAFTIAN 5 |
#define NEST_TYPE_MIMIC 4 |
#define NEST_TYPE_SYMBOL_EVIL 3 |
#define NEST_TYPE_SYMBOL_GOOD 2 |
#define NEST_TYPE_UNDEAD 9 |
#define NUM_NEST_MON_TYPE 64 |
nestの種別数
#define PIT_TYPE_CHAPEL 6 |
#define PIT_TYPE_DARK_ELF 9 |
#define PIT_TYPE_DEMON 8 |
#define PIT_TYPE_DRAGON 7 |
#define PIT_TYPE_GIANT 2 |
#define PIT_TYPE_LOVECRAFTIAN 3 |
#define PIT_TYPE_ORC 0 |
pitのID定義 / Pit types code
#define PIT_TYPE_SYMBOL_EVIL 5 |
#define PIT_TYPE_SYMBOL_GOOD 4 |
#define PIT_TYPE_TROLL 1 |
typedef struct vault_aux_type vault_aux_type |
pit/nest型情報のtypedef
nestのモンスターリストをスワップするための関数 / Swap function for sorting nest monster information
u | スワップ処理対象配列ポインタ |
v | 未使用 |
a | スワップ対象参照ID1 |
b | スワップ対象参照ID2 TODO: to sort.c |
bool build_type13 | ( | floor_type * | floor_ptr | ) |
タイプ13の部屋…トラップpitの生成 / Type 13 – Trapped monster pits
A trapped monster pit is a "big" room with a straight corridor in
which wall opening traps are placed, and with two "inner" rooms
containing a "collection" of monsters of a given type organized in
the room.
The trapped monster pit appears as shown below, where the actual
monsters in each location depend on the type of the pit
XXXXXXXXXXXXXXXXXXXXXXXXX
X X
XXXXXXXXXXXXXXXXXXXXXXX X
XXXXX001123454321100XXX X
XXX0012234567654322100X X
XXXXXXXXXXXXXXXXXXXXXXX X
X ^ X
X XXXXXXXXXXXXXXXXXXXXXXX
X X0012234567654322100XXX
X XXX001123454321100XXXXX
X XXXXXXXXXXXXXXXXXXXXXXX
X X
XXXXXXXXXXXXXXXXXXXXXXXXX
Note that the monsters in the pit are now chosen by using "get_mon_num()"
to request 16 "appropriate" monsters, sorting them by level, and using
the "even" entries in this sorted list for the contents of the pit.
Hack – all of the "dragons" in a "dragon" pit must be the same "color",
which is handled by requiring a specific "breath" attack for all of the
dragons. This may include "multi-hued" breath. Note that "wyrms" may
be present in many of the dragon pits, if they have the proper breath.
Note the use of the "get_mon_num_prep()" function, and the special
"get_mon_num_hook()" restriction function, to prepare the "monster\n
allocation table" in such a way as to optimize the selection of
"appropriate" non-unique monsters for the pit.
Note that the "get_mon_num()" function may (rarely) fail, in which case
the pit will be empty.
Note that "monster pits" will never contain "unique" monsters.
bool build_type5 | ( | floor_type * | floor_ptr | ) |
タイプ5の部屋…nestを生成する / Type 5 – Monster nests
A monster nest is a "big" room, with an "inner" room, containing
a "collection" of monsters of a given type strewn about the room.
The monsters are chosen from a set of 64 randomly selected monster
races, to allow the nest creation to fail instead of having "holes".
Note the use of the "get_mon_num_prep()" function, and the special
"get_mon_num_hook()" restriction function, to prepare the "monster\n
allocation table" in such a way as to optimize the selection of
"appropriate" non-unique monsters for the nest.
Note that the "get_mon_num()" function may (rarely) fail, in which
case the nest will be empty.
Note that "monster nests" will never contain "unique" monsters.
bool build_type6 | ( | floor_type * | floor_ptr | ) |
タイプ6の部屋…pitを生成する / Type 6 – Monster pits
A monster pit is a "big" room, with an "inner" room, containing
a "collection" of monsters of a given type organized in the room.
The inside room in a monster pit appears as shown below, where the
actual monsters in each location depend on the type of the pit
XXXXXXXXXXXXXXXXXXXXX
X0000000000000000000X
X0112233455543322110X
X0112233467643322110X
X0112233455543322110X
X0000000000000000000X
XXXXXXXXXXXXXXXXXXXXX
Note that the monsters in the pit are now chosen by using "get_mon_num()"
to request 16 "appropriate" monsters, sorting them by level, and using
the "even" entries in this sorted list for the contents of the pit.
Hack – all of the "dragons" in a "dragon" pit must be the same "color",
which is handled by requiring a specific "breath" attack for all of the
dragons. This may include "multi-hued" breath. Note that "wyrms" may
be present in many of the dragon pits, if they have the proper breath.
Note the use of the "get_mon_num_prep()" function, and the special
"get_mon_num_hook()" restriction function, to prepare the "monster\n
allocation table" in such a way as to optimize the selection of
"appropriate" non-unique monsters for the pit.
Note that the "get_mon_num()" function may (rarely) fail, in which case
the pit will be empty.
Note that "monster pits" will never contain "unique" monsters.
|
static |
ダンジョン毎に指定されたピット配列を基準にランダムなpit/nestタイプを決める
l_ptr | 選択されたpit/nest情報を返す参照ポインタ |
allow_flag_mask | 生成が許されるpit/nestのビット配列 |
デバッグ時に生成されたpit/nestの型を出力する処理
type | pit/nestの型ID |
nest | TRUEならばnest、FALSEならばpit |
Hack – Get the string describing subtype of pit/nest Determined in prepare function (some pit/nest only)
|
static |
|
static |
nest情報テーブル
|
static |
pit情報テーブル