#!/usr/bin/perl -w
package MudConvert::WileyMUD::Constants;
use strict;
use English;
use base 'Exporter';
our @EXPORT_OK = qw( $zone_reset_flags $rev_zone_reset_flags
$equip_positions $rev_equip_positions
$door_states $rev_door_states
$hate_types $rev_hate_types
$fear_types $rev_fear_types
$sector_types $rev_sector_types
$room_flags $rev_room_flags
$zone_commands
$exit_directions $rev_exit_directions
$exit_types $rev_exit_types
$exit_flags $rev_exit_flags
$shop_sell_item_count $shop_buy_item_count $shop_message_count
$shop_attitudes $rev_shop_attitudes
$shop_immortal_flags $rev_shop_immortal_flags
$shop_message_names
);
our $zone_reset_flags = {
0 => 'RESET_NEVER',
1 => 'RESET_PC',
2 => 'RESET_ALWAYS',
};
our $rev_zone_reset_flags = { reverse %{ $zone_reset_flags } };
$rev_zone_reset_flags->{$_} = int($rev_zone_reset_flags->{$_}) foreach (keys %{ $rev_zone_reset_flags });
our $equip_positions = {
0 => 'WEAR_LIGHT',
1 => 'WEAR_FINGER_R',
2 => 'WEAR_FINGER_L',
3 => 'WEAR_NECK_1',
4 => 'WEAR_NECK_2',
5 => 'WEAR_BODY',
6 => 'WEAR_HEAD',
7 => 'WEAR_LEGS',
8 => 'WEAR_FEET',
9 => 'WEAR_HANDS',
10 => 'WEAR_ARMS',
11 => 'WEAR_SHIELD',
12 => 'WEAR_ABOUT',
13 => 'WEAR_WAISTE',
14 => 'WEAR_WRIST_R',
15 => 'WEAR_WRIST_L',
16 => 'WIELD',
17 => 'HOLD',
18 => 'WIELD_TWOH',
};
our $rev_equip_positions = { reverse %{ $equip_positions } };
$rev_equip_positions->{$_} = int($rev_equip_positions->{$_}) foreach (keys %{ $rev_equip_positions });
our $door_states = {
0 => 'DOOR_OPEN',
1 => 'DOOR_CLOSED',
2 => 'DOOR_LOCKED',
};
our $rev_door_states = { reverse %{ $door_states } };
$rev_door_states->{$_} = int($rev_door_states->{$_}) foreach (keys %{ $rev_door_states });
our $exit_directions = {
-1 => 'EXIT_NONE',
0 => 'EXIT_NORTH',
1 => 'EXIT_EAST',
2 => 'EXIT_SOUTH',
3 => 'EXIT_WEST',
4 => 'EXIT_UP',
5 => 'EXIT_DOWN',
};
our $rev_exit_directions = { reverse %{ $exit_directions } };
$rev_exit_directions->{$_} = int($rev_exit_directions->{$_}) foreach (keys %{ $rev_exit_directions });
our $exit_types = {
-1 => 'EXIT_INVALID',
0 => 'EXIT_OPEN',
1 => 'EXIT_DOOR',
2 => 'EXIT_NOPICK',
3 => 'EXIT_SECRET',
4 => 'EXIT_SECRET_NOPICK',
5 => 'EXIT_OPEN_ALIAS',
6 => 'EXIT_DOOR_ALIAS',
7 => 'EXIT_NOPICK_ALIAS',
8 => 'EXIT_SECRET_ALIAS',
9 => 'EXIT_SECRET_NOPICK_ALIAS',
};
our $rev_exit_types = { reverse %{ $exit_types } };
$rev_exit_types->{$_} = int($rev_exit_types->{$_}) foreach (keys %{ $rev_exit_types });
our $exit_flags = {
(1 << 0) => 'EXITFLAG_DOOR',
(1 << 1) => 'EXITFLAG_NOPICK',
(1 << 2) => 'EXITFLAG_SECRET',
(1 << 3) => 'EXITFLAG_ALIAS',
};
our $rev_exit_flags = { reverse %{ $exit_flags } };
$rev_exit_flags->{$_} = int($rev_exit_flags->{$_}) foreach (keys %{ $rev_exit_flags });
our $room_flags = {
(1 << 0) => 'ROOM_DARK',
(1 << 1) => 'ROOM_DEATH',
(1 << 2) => 'ROOM_NOMOB',
(1 << 3) => 'ROOM_INDOORS',
(1 << 4) => 'ROOM_NOATACK',
(1 << 5) => 'ROOM_NOSTEAL',
(1 << 6) => 'ROOM_NOSUMMON',
(1 << 7) => 'ROOM_NOMAGIC',
(1 << 8) => 'ROOM_UNUSED',
(1 << 9) => 'ROOM_PRIVATE',
(1 << 10) => 'ROOM_SOUND',
};
our $rev_room_flags = { reverse %{ $room_flags } };
$rev_room_flags->{$_} = int($rev_room_flags->{$_}) foreach (keys %{ $rev_room_flags });
our $sector_types = {
-1 => 'SECT_TELEPORT',
0 => 'SECT_INDOORS',
1 => 'SECT_CITY',
2 => 'SECT_FIELD',
3 => 'SECT_FOREST',
4 => 'SECT_HILLS',
5 => 'SECT_MOUNTAIN',
6 => 'SECT_WATER_SWIM',
7 => 'SECT_WATER_NOSWIM',
8 => 'SECT_AIR',
9 => 'SECT_UNDERWATER',
};
our $rev_sector_types = { reverse %{ $sector_types } };
$rev_sector_types->{$_} = int($rev_sector_types->{$_}) foreach (keys %{ $rev_sector_types });
our $hate_types = {
1 => 'HATE_SEX',
2 => 'HATE_RACE',
4 => 'HATE_CHAR',
8 => 'HATE_CLASS',
16 => 'HATE_EVIL',
32 => 'HATE_GOOD',
64 => 'HATE_VNUM',
128 => 'HATE_RICH',
};
our $rev_hate_types = { reverse %{ $hate_types } };
$rev_hate_types->{$_} = int($rev_hate_types->{$_}) foreach (keys %{ $rev_hate_types });
our $fear_types = {
1 => 'FEAR_SEX',
2 => 'FEAR_RACE',
4 => 'FEAR_CHAR',
8 => 'FEAR_CLASS',
16 => 'FEAR_EVIL',
32 => 'FEAR_GOOD',
64 => 'FEAR_VNUM',
128 => 'FEAR_RICH',
};
our $rev_fear_types = { reverse %{ $fear_types } };
$rev_fear_types->{$_} = int($rev_fear_types->{$_}) foreach (keys %{ $rev_fear_types });
our $zone_commands = {
'M' => { 'Command' => 'M', 'Name' => 'MOBILE', 'Args' => [ 'IFF_FLAG', 'MOB_VNUM', 'MAX_COUNT', 'ROOM_VNUM' ] },
'O' => { 'Command' => 'O', 'Name' => 'OBJECT', 'Args' => [ 'IFF_FLAG', 'OBJ_VNUM', 'MAX_COUNT', 'ROOM_VNUM' ] },
'G' => { 'Command' => 'G', 'Name' => 'GIVE', 'Args' => [ 'IFF_FLAG', 'OBJ_VNUM', 'MAX_COUNT' ] },
'E' => { 'Command' => 'E', 'Name' => 'EQUIP', 'Args' => [ 'IFF_FLAG', 'OBJ_VNUM', 'MAX_COUNT', 'EQUIP_POS' ] },
'P' => { 'Command' => 'P', 'Name' => 'PUT', 'Args' => [ 'IFF_FLAG', 'SRC_OBJ', 'MAX_COUNT', 'DEST_OBJ' ] },
'D' => { 'Command' => 'D', 'Name' => 'DOOR', 'Args' => [ 'IFF_FLAG', 'ROOM_VNUM', 'EXIT_DIR', 'DOOR_STATE' ] },
'R' => { 'Command' => 'R', 'Name' => 'REMOVE', 'Args' => [ 'IFF_FLAG', 'ROOM_VNUM', 'OBJ_VNUM' ] },
'L' => { 'Command' => 'L', 'Name' => 'LEAD', 'Args' => [ 'IFF_FLAG', 'MOB_VNUM', 'DO_GROUP' ] },
'H' => { 'Command' => 'H', 'Name' => 'HATE', 'Args' => [ 'IFF_FLAG', 'HATE_TYPE', 'HATE_VALUE' ] },
'S' => { 'Command' => 'S', 'Name' => 'END', 'Args' => [ ] },
};
our $shop_sell_item_count = 5;
our $shop_buy_item_count = 5;
our $shop_message_count = 7;
our $shop_attitudes = {
0 => 'SHOP_RUDE',
1 => 'SHOP_ALOOF',
};
our $rev_shop_attitudes = { reverse %{ $shop_attitudes } };
$rev_shop_attitudes->{$_} = int($rev_shop_attitudes->{$_}) foreach (keys %{ $rev_shop_attitudes });
our $shop_immortal_flags = {
0 => 'SHOP_FIRSTSTRIKE',
1 => 'SHOP_IMMORTAL',
};
our $rev_shop_immortal_flags = { reverse %{ $shop_immortal_flags } };
$rev_shop_immortal_flags->{$_} = int($rev_shop_immortal_flags->{$_}) foreach (keys %{ $rev_shop_immortal_flags });
our $shop_message_names = [
'SHOP_MSG_NO_SUCH_ITEM_1',
'SHOP_MSG_NO_SUCH_ITEM_2',
'SHOP_MSG_DO_NOT_BUY',
'SHOP_MSG_MISSING_CASH_1',
'SHOP_MSG_MISSING_CASH_2',
'SHOP_MSG_BUY',
'SHOP_MSG_SELL',
];
1;