|
|
@ -8,7 +8,611 @@
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* It contains also the special level loader.
|
|
|
|
* It contains also the special level loader.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*int lspo_set_map_size(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,设置地图大小。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_map_size(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取地图大小。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_set_terrain(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,设置指定位置的地形。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_terrain(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取指定位置的地形。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_set_wall(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,设置指定位置的墙壁属性。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_wall(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取指定位置的墙壁属性。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_set_feature(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,设置指定位置的特征。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_feature(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取指定位置的特征。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_create_room(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建一个房间。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_create_corridor(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建一个走廊。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_connect_rooms(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,连接两个房间。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_connect_regions(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,连接两个区域。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_place_player(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,放置玩家角色。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_place_stairs(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,放置楼梯。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_place_items(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,放置物品。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_place_monster(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,放置怪物。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_place_trap(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,放置陷阱。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_place_feature(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,放置特征。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_place_terrain(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,放置地形。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_place_water(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,放置水域。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_item(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,移除物品。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_monster(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,移除怪物。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_trap(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,移除陷阱。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_feature(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,移除特征。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_terrain(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,移除地形。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_water(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,移除水域。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_is_valid_location(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,检查位置是否有效。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_is_walkable(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,检查位置是否可行走。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_is_solid(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,检查位置是否为实体。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_is_transparent(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,检查位置是否透明。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_is_wall(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,检查位置是否有墙壁。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_is_door(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,检查位置是否有门。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_is_closed_door(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,检查位置是否是关闭的门。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_is_locked_door(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,检查位置是否是上锁的门。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_is_open_door(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,检查位置是否是打开的门。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_is_feature(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,检查位置是否有特征。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_is_terrain(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,检查位置是否有地形。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_is_water(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,检查位置是否有水域。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_room_id(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取房间的ID。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_region_id(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取区域的ID。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_item_id(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取物品的ID。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_monster_id(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取怪物的ID。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_trap_id(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取陷阱的ID。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_feature_id(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取特征的ID。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_terrain_id(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取地形的ID。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_water_id(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取水域的ID。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_map_id(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取地图的ID。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_player_position(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取玩家角色的位置。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_stairs_up_position(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取楼梯上行的位置。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_get_stairs_down_position(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,获取楼梯下行的位置。
|
|
|
|
|
|
|
|
int lspo_light_region(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,照亮区域。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_map(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,生成完整地图。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_mazewalk(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,在地图中生成迷宫。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_monster(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建怪物。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_object(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建物品。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_region(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建区域。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_room(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建房间。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_selection_flood(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,根据选择器填充地图。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_stair(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建楼梯。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_subroom(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建子房间。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_terrain(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,设置地形。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_trap(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建陷阱。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_wall_property(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,设置墙壁属性。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_warning(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,发出警告信息。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_waterbody(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建水域。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_grass(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,生成草地。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_tree(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,生成树木。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_rock(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,生成岩石。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_pool(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,生成水池。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_fountain(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,生成喷泉。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_sink(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,生成水槽。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_throne(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,生成王座。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_altar_generic(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建通用祭坛。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_feature_region(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,在地图区域中创建特征。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_terrain_region(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,在地图区域中设置地形。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_wallify_map(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,给地图添加墙壁。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_replace_terrain(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,替换地形。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_replace_feature(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,替换特征。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_replace_terrain_region(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,在地图区域中替换地形。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_replace_feature_region(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,在地图区域中替换特征。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_random_corridors(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,生成随机走廊。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_ensure_rng_seed(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,确保随机数种子相同。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_adjust_branch_walls(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,调整支路的墙壁。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_region_floodfill(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,基于区域填充器进行填充。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_rooms(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有房间。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_corridors(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有走廊。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_walls(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有墙壁。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_features(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有特征。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_terrain(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有地形。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_traps(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有陷阱。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_monsters(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有怪物。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_objects(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有物品。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_regions(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有区域。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_grass(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有草地。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_trees(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有树木。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_rocks(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有岩石。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_water(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有水域和水池。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_fountains(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有喷泉。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_sinks(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有水槽。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_remove_throne(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,删除所有王座。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_random_walls(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,随机添加墙壁。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_dig(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,挖掘地形。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_random_region(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,随机选择地图区域。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_ensure_valid_map(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,确保生成的地图是有效的。
|
|
|
|
|
|
|
|
typedef void (*select_iter_func)(coordxy, coordxy, genericptr);
|
|
|
|
|
|
|
|
这是一个函数指针类型定义,用于迭代选择器。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void mkmap(lev_init *);
|
|
|
|
|
|
|
|
生成地图的函数。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static boolean match_maptyps(xint16, xint16);
|
|
|
|
|
|
|
|
检查地图坐标位置上的类型是否匹配。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void solidify_map(void);
|
|
|
|
|
|
|
|
填充地图中未定义或未加固的区域。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void map_cleanup(void);
|
|
|
|
|
|
|
|
清理地图,将未定义的区域填充为墙壁。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void lvlfill_maze_grid(int, int, int, int, schar);
|
|
|
|
|
|
|
|
在地图中生成迷宫。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void lvlfill_solid(schar, schar);
|
|
|
|
|
|
|
|
在地图中填充指定类型的实心墙。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void lvlfill_swamp(schar, schar, schar);
|
|
|
|
|
|
|
|
在地图中填充沼泽。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void flip_dbridge_horizontal(struct rm *);
|
|
|
|
|
|
|
|
水平翻转地牢桥。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void flip_dbridge_vertical(struct rm *);
|
|
|
|
|
|
|
|
垂直翻转地牢桥。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void flip_visuals(int, int, int, int, int);
|
|
|
|
|
|
|
|
翻转视觉元素。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int flip_encoded_dir_bits(int, int);
|
|
|
|
|
|
|
|
翻转方向编码位。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void flip_vault_guard(int, struct monst *,
|
|
|
|
|
|
|
|
coordxy, coordxy, coordxy, coordxy);
|
|
|
|
|
|
|
|
翻转金库守卫。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void sel_set_wall_property(coordxy, coordxy, genericptr_t);
|
|
|
|
|
|
|
|
在选择区域中设置墙壁属性。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void set_wall_property(coordxy, coordxy, coordxy, coordxy, int);
|
|
|
|
|
|
|
|
设置墙壁属性。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void remove_boundary_syms(void);
|
|
|
|
|
|
|
|
删除边界符号。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void set_door_orientation(int, int);
|
|
|
|
|
|
|
|
设置门的方向。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static boolean shared_with_room(int, int, struct mkroom *);
|
|
|
|
|
|
|
|
检查给定位置是否与给定房间共享。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void maybe_add_door(int, int, struct mkroom *);
|
|
|
|
|
|
|
|
可能添加门。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void link_doors_rooms(void);
|
|
|
|
|
|
|
|
连接门和房间。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int rnddoor(void);
|
|
|
|
|
|
|
|
随机生成门方向。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int rndtrap(void);
|
|
|
|
|
|
|
|
随机生成陷阱类型。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void get_location(coordxy *, coordxy *, getloc_flags_t,
|
|
|
|
|
|
|
|
struct mkroom *);
|
|
|
|
|
|
|
|
获取位置坐标。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void set_ok_location_func(boolean (*)(coordxy, coordxy));
|
|
|
|
|
|
|
|
设置位置检查函数。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static boolean is_ok_location(coordxy, coordxy, getloc_flags_t);
|
|
|
|
|
|
|
|
检查给定位置是否可用。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static unpacked_coord get_unpacked_coord(long, int);
|
|
|
|
|
|
|
|
获取未打包的坐标。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void get_room_loc(coordxy *, coordxy *, struct mkroom *);
|
|
|
|
|
|
|
|
获取房间位置。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void get_free_room_loc(coordxy *, coordxy *, struct mkroom *,
|
|
|
|
|
|
|
|
packed_coord);
|
|
|
|
|
|
|
|
获取空闲房间位置。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static boolean create_subroom(struct mkroom *, coordxy, coordxy, coordxy,
|
|
|
|
|
|
|
|
coordxy, xint16, xint16);
|
|
|
|
|
|
|
|
创建子房间。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void create_door(room_door *, struct mkroom *);
|
|
|
|
|
|
|
|
创建门。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void create_trap(spltrap *, struct mkroom *);
|
|
|
|
|
|
|
|
创建陷阱。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int noncoalignment(aligntyp);
|
|
|
|
|
|
|
|
非同盟对齐修正。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static boolean m_bad_boulder_spot(coordxy, coordxy);
|
|
|
|
|
|
|
|
检查给定位置是否适合放置巨石。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int pm_to_humidity(struct permonst *);
|
|
|
|
|
|
|
|
将怪物转换为湿度。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static unsigned int sp_amask_to_amask(unsigned int sp_amask);
|
|
|
|
|
|
|
|
将特殊房间标志位转换为标准房间标志位。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void create_monster(monster *, struct mkroom *);
|
|
|
|
|
|
|
|
创建怪物。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static struct obj *create_object(object *, struct mkroom *);
|
|
|
|
|
|
|
|
创建物品。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void create_altar(altar *, struct mkroom *);
|
|
|
|
|
|
|
|
创建祭坛。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static boolean search_door(struct mkroom *, coordxy *, coordxy *, xint16, int);
|
|
|
|
|
|
|
|
查找门。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void create_corridor(corridor *);
|
|
|
|
|
|
|
|
创建走廊。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static struct mkroom *build_room(room *, struct mkroom *);
|
|
|
|
|
|
|
|
构建房间。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void light_region(region *);
|
|
|
|
|
|
|
|
照亮区域。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void maze1xy(coord *, int);
|
|
|
|
|
|
|
|
在迷宫中获取坐标。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void fill_empty_maze(void);
|
|
|
|
|
|
|
|
填充空迷宫。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void splev_initlev(lev_init *);
|
|
|
|
|
|
|
|
初始化地图。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static boolean generate_way_out_method(coordxy nx, coordxy ny,
|
|
|
|
|
|
|
|
struct selectionvar *ov);
|
|
|
|
|
|
|
|
生成通路。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void spo_end_moninvent(void);
|
|
|
|
|
|
|
|
结束怪物物品链表。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void spo_pop_container(void);
|
|
|
|
|
|
|
|
弹出容器。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int l_create_stairway(lua_State *, boolean);
|
|
|
|
|
|
|
|
创建楼梯。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void spo_endroom(struct sp_coder *);
|
|
|
|
|
|
|
|
结束房间。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void l_table_getset_feature_flag(lua_State *, int, int, const char *,
|
|
|
|
|
|
|
|
int);
|
|
|
|
|
|
|
|
获取或设置特征标志。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void l_get_lregion(lua_State *, lev_region *);
|
|
|
|
|
|
|
|
获取地图区域。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void sel_set_lit(coordxy, coordxy, genericptr_t);
|
|
|
|
|
|
|
|
在选择区域中设置光照。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void add_doors_to_room(struct mkroom *);
|
|
|
|
|
|
|
|
将门添加到房间中。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void selection_iterate(struct selectionvar *, select_iter_func,
|
|
|
|
|
|
|
|
genericptr_t);
|
|
|
|
|
|
|
|
迭代选择器。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void sel_set_ter(coordxy, coordxy, genericptr_t);
|
|
|
|
|
|
|
|
在选择区域中设置地形。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void sel_set_door(coordxy, coordxy, genericptr_t);
|
|
|
|
|
|
|
|
在选择区域中设置门。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void sel_set_feature(coordxy, coordxy, genericptr_t);
|
|
|
|
|
|
|
|
在选择区域中设置特征。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void levregion_add(lev_region *);
|
|
|
|
|
|
|
|
添加地图区域。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void get_table_xy_or_coord(lua_State *, lua_Integer *, lua_Integer *);
|
|
|
|
|
|
|
|
获取表格中的坐标。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int get_table_region(lua_State *, const char *, lua_Integer *,
|
|
|
|
|
|
|
|
lua_Integer *, lua_Integer *, lua_Integer *, boolean);
|
|
|
|
|
|
|
|
获取表格中的地图区域。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void set_wallprop_in_selection(lua_State *, int);
|
|
|
|
|
|
|
|
在选择区域内设置墙壁属性。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static coordxy random_wdir(void);
|
|
|
|
|
|
|
|
随机方向。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int floodfillchk_match_under(coordxy, coordxy);
|
|
|
|
|
|
|
|
检查给定位置是否与下面的类型匹配。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int floodfillchk_match_accessible(coordxy, coordxy);
|
|
|
|
|
|
|
|
检查给定位置是否可通行。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static boolean sel_flood_havepoint(coordxy, coordxy, coordxy *, coordxy *, int);
|
|
|
|
|
|
|
|
判断选择器中是否有给定点。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static long line_dist_coord(long, long, long, long, long, long);
|
|
|
|
|
|
|
|
计算两个坐标之间的距离。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void l_push_mkroom_table(lua_State *, struct mkroom *);
|
|
|
|
|
|
|
|
将房间转换为表格形式压入Lua栈。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int get_table_align(lua_State *);
|
|
|
|
|
|
|
|
获取表格中的对齐方式。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int get_table_monclass(lua_State *);
|
|
|
|
|
|
|
|
获取表格中的怪物类别。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int find_montype(lua_State *, const char *, int *);
|
|
|
|
|
|
|
|
查找怪物类型。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int get_table_montype(lua_State *, int *);
|
|
|
|
|
|
|
|
获取表格中的怪物类型。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static lua_Integer get_table_int_or_random(lua_State *, const char *, int);
|
|
|
|
|
|
|
|
获取表格中的整数或随机数。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int get_table_buc(lua_State *);
|
|
|
|
|
|
|
|
获取表格中的容器。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int get_table_objclass(lua_State *);
|
|
|
|
|
|
|
|
获取表格中的物品类别。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int find_objtype(lua_State *, const char *);
|
|
|
|
|
|
|
|
查找物品类型。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int get_table_objtype(lua_State *);
|
|
|
|
|
|
|
|
获取表格中的物品类型。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static const char *get_mkroom_name(int);
|
|
|
|
|
|
|
|
获取房间名称。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int get_table_roomtype_opt(lua_State *, const char *, int);
|
|
|
|
|
|
|
|
获取表格中的房间类型。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int get_table_traptype_opt(lua_State *, const char *, int);
|
|
|
|
|
|
|
|
获取表格中的陷阱类型。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int get_traptype_byname(const char *);
|
|
|
|
|
|
|
|
根据名称获取陷阱类型。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static lua_Integer get_table_intarray_entry(lua_State *, int, int);
|
|
|
|
|
|
|
|
获取表格中的整数数组项。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static struct sp_coder *sp_level_coder_init(void);
|
|
|
|
|
|
|
|
初始化特殊房间编码器。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_altar(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建祭坛。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_branch(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建支路。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_corridor(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建走廊。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_door(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建门。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_drawbridge(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建地牢桥。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_engraving(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,进行题字刻印。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_feature(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建特征。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_gold(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建黄金。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_grave(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建墓地。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_ladder(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,创建梯子。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_level_flags(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,设置地图标志。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_level_init(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,初始化地图。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int lspo_levregion(lua_State *);
|
|
|
|
|
|
|
|
Lua函数,*/
|
|
|
|
#define IN_SP_LEV_C
|
|
|
|
#define IN_SP_LEV_C
|
|
|
|
|
|
|
|
|
|
|
|
#include "hack.h"
|
|
|
|
#include "hack.h"
|
|
|
|