view.cc. (Yes, this is semi-random.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4032 c06c8d41-db1a-0410-9941-cceddc491573
JJULXW764V5C2HJKZNWQAEWB6QM5YZADD7ZCE35LYTBFEM6PMYCAC
HBJTHYXGSD35S4VVUZOK3UE5M5PEQEDEQTSV3WPJYD25PNPPPSCAC
7RE7J5DEMEO52RKOE77JMEXKZ7ORJJMCRGKLC6NHYDJW66UKYE4AC
627QATWYWAYCCD3YFK2ZTFC2BPQF5DYFDLCTV6ULH53UVJOA265AC
LJSES3YZH4RECLXVBRJXS54NJOLWXVBKV5GXBPVQBLRCYXX23X4AC
FEW6F4OIKCNA7WCUSNEZDF6W3VRTX4J4G43VOXRZH5UKKG22T5ZQC
DNGQ22GB47UG4Q3IB77PEMLRQZ6WX5TSZS5JVDTDK7FLXTCP2U4AC
3GJTOMYXXJLY7QZNJLIONXAOHMU64PDYRXUYYQATIB7WPRHSNN6AC
XSGOCZRVJO3C2Z7ADWP5N6HTDKJLJ4LN5OY6RNXX3L42FZGGVRLAC
OOFJ4IAVGB6DAUN2AWJBKMFKR7NCE5PCFF5IURV6L5TJYK6CHTHAC
Z37LPWKBVEMAADJPZDI3DIPZTEIE4HI456I5PM2XTAG74X237XFQC
YYMVEFSCN7DGZC74WGG53XOLQF42KY2KGBXF2GOAXCR6WEE5VHCQC
C7GFFO4HB56MZHXN3YUZHFTXBDFQQ7OPCVQYZWH4RU23FL6SARGQC
VDMADGWYGYZJWAEWU3WE7UCPVDS2O6HOHCXLOML64U5UCH4FER3AC
PNRMCHHEBCAUD2XBSSH6JOEQ6A6CFEZBCIX436DVD26DA52OCYTQC
ZWBYOITMEKDLV22GQT32FZ4WXTZLHB6T5HUUYVE5G53KFASUNO7QC
5BYWI6JJMVTQLCOMPHQNSFC2HW5LYGYFBHBIOU7D4T4B2AIUZV4AC
52J7CYVAW3QCUEWA5OKWPDGOP6JZR5NJSE3JDLZFBCR7B6LH5ASAC
VOXLOCDUHOAFIKRTSISYMOA2QFY3TSHQGR7BKGGQ2VZ5BUUKUQYAC
KAOE5HB3THUKVGFZRO5EZESHEB3Q34WUO5DFMLWIKOBF47LZTIYAC
M2HMYLYYXSP5XGX6MCI77IT6UW5K4YSEUJWHPQPYXVSW5L36BJ2AC
LS5XCCGKQHSJQGWLWLGTP2F5OYWK4ND5AQQAGRN6H2HVBSXNCCZAC
XVFTIQ7MSVKQDMQ2HT3IY6FJOZFK4H6OFGTUAID5VGCA5BGVXYPAC
PL6I2CMSTHY5ZHWVMIQE5YTM5S5VPKBNZM6QJVHZSSKOJGIJ5W4AC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
D27U7RT2C77NEUBP6JCSQJ2DRCJVHOXUO2PFZ45VFYMEVMKI4TSAC
UH3CJQMQ3NPICXD34NTCTUZJWOCEF4P5XEGXFLLNDDFLZK7QPUBQC
RC6L3CIBLJEH4GWRFD7UQNGI6PZT74FRUVOYHSAN2XCC74NZUASQC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
XHNJ2W4AQHIF32P2ENIMMDLWAIFWP442KJIZC6RKS4HBJNZIHHBAC
MJWFTUS66PTCNEYXEJA3CUJFXNWXIKDD6H3V24PW7HK64NSVOFSAC
5ASC3STDYCNLZFEBN6UTMUCGDETHBR2OCBZCF5VIAZ5RRWLOTDYQC
UZ6N6HOUPGVSPC5NQROEEDWMEGJA5XUWUY2AKH5QG65AZ25PVXDAC
X3RDT655FEYO6XEVPIUAPEPJZAFE55KZBH2AZOLK3NGHINMVIGFQC
KYGKLJ3SYIIDSHRSFQUZCDHUIFU7D7EB6QIPIWGCWIAWZCLLUAIAC
PEXHYCLRKDG2PVOJ3DDCMUZUK2HTSPU5WKH4MODFL4FTBQRQTY5QC
OONYLF4DAPLIYLBNNRW74IVT5BBTWI4XHQBXSNSPVRX3FTKJBTRAC
WT66JDIRTLLP37SHTV4GI3V64JFJ4D25LNRLGCHFG6CLEFKJ3QGQC
PFEJ4LMDNEKLMGRCMWQ7EIRVU4JMYGICI4G7X4WVWOROVXQCBZ7QC
UWMN4HLG6YA2YFQEVIVMDISD6APKEPIZXMMPMNUYCBQDSAUYSXPQC
ANOEQTM6IGCBTESKKQ5PCBSDTZ7VGRCMDIOAFEH4R7DJHKWKDFAAC
5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
QKGDOYIYKE6B36ION5O2DRW65DWWPZMYNWJVH7LJJ7FPGGM2MYAQC
BHG4L3FEW3UDCNBQ4GLEONTAKFIXTRFCLQ2BQ4YNPF3I6NRZXBGQC
VD4KDTGHVKCN35AWREYB4TEOUMCTW7SAUPAMTMF5ABC7VBHVKP4AC
3SQQ7NFTRSYDTYI4A6NWKUMOD65JJ5YPSJJIME6JDAAAN7IF6KGQC
GVCGKTH5IJ4VSQEIN4CRC7ZFVZW26JPIYNCPTO7GY66CSZZEW3ZQC
XNYPQTF74HLRSKTEVLTNCDB43YHWOFTQL5TVSNO6WWPAJGZSCYKQC
AJJ6D6JRV6ZAZOAUHYUM2IQG42V6PBALOD4KEMNKSVVAOJXAUCPQC
JM6GKZ6VMX6FNVOZIDXIV22HGX7YESMIFZFE6EEQVCMFJIEA3FNAC
TAHSTXR7ROOMDFUSBUU4ZAIEWQLAS5CIRCTARLD4Q2BGNLSL7E5QC
UPJVSMMMHGRDUIJG4MZX6IBLQ4ODBF5Z3PF3RHDYTSAEOCVDZM5AC
EOMCPVNQLX3IMLC46EAO67DPBH5KEG2FQTPBLGU62HIRWA3UQ7XQC
QOYITYZZM3BXITPZGSQGAVUM4T5H6ZL4QYRG5H5W7PSELOF2PO2QC
6GJYM7D3VKAKCIHAOEZW5XPE7KIJZXJCYZYMHVJAECV5QZWGQAUAC
7NDXS36TE7QVXTXJWMYSVG5UHCCLPIO4VL6NXFGTDK3ZNKE3A2IAC
XRZPPYWPWUOM4SFNI6BHKH2UKJQNLKOV6Y7XIEPEZXE5QYRT26PAC
VXJEANI25DSSF6RUTT3HK7FRI5A6D5OHDUM3NENDG6KULMAR6ZHAC
TI2HASZUN3QBTNWRCXLXJHOZBOUHFEOQUCPK5EYLATL7BP32H6LQC
IHOKNI4O7EEW4UBMKHP6XOZNEIQSW4AYOT4O3JXUIXNNR553IQAQC
7HA2754QW3SBCAJ5K6KUXNXXXIZB5BIBCFPLXADCXHH6EREKXHSAC
Q4YYTFXYZUDBYWT37U354CJOAQMAAIWM5W72TAEGMEUKZIUZBMGAC
45FTVJJ5FMXBXQ2GVUZVJZU6Y6NUYG2JZIHWVMONA7QYYCZQSM2QC
6HG6JFO47Y3BZLU7Y6G3R2CX6JFGN4X5PKK6S5IGUXUYQ5GVZYFQC
JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC
547JREUJXTZNYVGHNNAET5F5O5JYYGNTDQB6ABZNT7YX5EY64OHAC
XEFLKDEZCVSPO4SMGNXRNQWAJ6KKWABWFX2PULITTDJUIKYPVPSAC
YV5KGOLCV7DBD6P4ARYQDLVO4AAH7NDJPF6PNASLQSRAKJRVO4YAC
FCL7KOWXA5O3GLMDR22JCGMTHMZ57C4WQIJKBIIUQV3LI2CI3X7AC
LABXKXWWQY2V4FUDLGVTDYHXINAP6KRHZDHBQ2FE22FFOEIZPL6QC
5OVWAD2MGK2NT6Q546KW7HZHELVDBBRC2CQX6VZMZF2YVRC7CPVAC
RGWUYJO74FDGTH22CYSHBKFDGJ4S76WTLIULKPXA4QT5ZCNOB4LQC
GUXTGUEMZYBRGV5QUAQSJHG3AOIQDWWCDIMOX4LASFJAZVGL2WQAC
YATODO2EN3AW7IXW5PL25HHK34YHF6Y32QBMOUZXEATZZ4YQQWZQC
UKYGZDI6PYZPXDACCQGVPHANUP5ADCSNROOZIE7LYIZQWSNFHJZAC
BTO5WE4OEK64DZQVNYLOESM74KKQNE7KSNMQVF5UDB26OBKP7ORQC
6O5667Y65C5GTP4V3NBKWUN22IRGCAXEELJ6MCANMYPBOKDUO75QC
JDM5R3HYGXKQKZWY35QZ2KOB24TFZ3FW2PCNXCRCMWG72AZC5ZXQC
OVM7ZULJJ6Q23AQ747AWBGISGDQYCGF2NT5YTXKW633I56WIYZPQC
5UVDIVD4NSXA52U4QMQIVST3GSZJ2A2YZK3RUEXKPM43YVQ7LI5AC
6LT6USGJOTDMRJGXLAN2NSZXK2GKWEXDKKUV6SVV7ZC6WI6EKMDQC
LCCFD6BLLDJO3PVPKKJ7YJ4PQUHLUKQBWRCYRH26UVMOTYZPJQRQC
DE2BXPJDLWN7F3LAYKUSWI5CFEYZMV2ZN4K2Y356NWIX4AIGD73QC
S4BRP4VHB23F2FCC6BXNAN2MZRVUGW7QMXUEOAVZVGFXKXJPVLLQC
B5OK4FEITJ6MUT7J76OJJH2TOPTZGG7J7UPIJ6Z6WA5FC526FLTAC
STQDS62PD6PCLYBAB7LPYTG47WMBJP3FIJL55UHC3XFDPGERC3UQC
O6ZMFKDI3XO2SWPNEYHIPYFDWJR4TVDP5BAATK6LVCVETQID6E7AC
TW7QOMTSLYPGUUWHGHLY5G5LV6QQRQIKK4BSE64RY7RDGKVDHCEAC
4O3VTUJT5T7NBNF3Q45XO2WHS6TCJXVLH6CKX4K36WUBDRT5F6KAC
3A3OAIFRFU3IHF6SDNDPCN3XYOFYIBYCEYJAXAFASCFDY76SMFXQC
Z6343ZVG2VOE7WOLBS7YLIWJ6XGCRCGJRJLP5WUVRTG7VOIXRRLAC
M5ZDZJBTOJ7SWQPZZQPC24JYZKP26MWSRDHXBWQE2MPPL6WCXOIQC
CC5NTNYE2VPD25CVJI6LL5TLZEGBGIL3PZEXKYXQDIVZGDLGBNOQC
QHABWX5UYQAREZC4B6JGSRXSUH6DQLRD7WB4YGV4HHUHMTXY3ERAC
HH5S4A3M4XPI23PCXKKG36H5ES2Z67NDLQFFMPA5PEWL3FJ4674QC
XVRZIUEK3PHCL6JIBTIBYEUWOVLZ6MQZYUIFYCH454WDGDSBADLAC
VAIKTEZVIZTJORAZMFO5KG3NR2WIZXCKSO2ESIC6MZAULKCQ4JYAC
W3ZIOVRGHZWWS7SB7QQWFIJ7XIFNXM3AEZSLGMQXAHC3LDV73VJAC
UFNXOEBCAUO3QMYOF6EXYILHZ44AXVMCOV76SFV3VV7DMVUPZWBAC
5P6MEKBISK6NI4MULM75HHFBQW5MXITSZJDGLLIDKJ7G24F7XYNAC
3BJ2OOF4F524G6UKVGOZVT6W3FSTSHHTKRJADUBZCHDXZWV3KANQC
XPMC3YAOVJXYI5FAXLIHOCHVJLI24HKAF2GH7HG7FTQI5HBU4GWAC
DL4M4VJQZX43KRYN4FBP57YPSBX2UJPJ43QSYGFXVJO4PH2CHRCAC
4LK4NWHXIWWCTTJARE3EP247GMDZW7OQBGBQZXVL5QKRNVJORUTAC
TFO3DNZBDBA7YGKQKL624CG6DMVCEOPWQNAXDEV42ZODT5U3666AC
3NIWNYMNSQZEEXZLEQADAAB3D7GLO5FIH64U5P5YQUVIV5MOURCAC
HSN6H5HDKBALFSBCGJMCNEG6M5KSCXGWPPHJGHUWOZI5EIERCBFQC
GO6DARZD47R5UPXZIBMPX7PZUGJH24JWYDFMTWWESS4IZR7PAWRQC
IE3INS4WUXZOBVXB5VWRBYPVPXADD2U2W5H3TBTOYNWJ3EGRSGQQC
JZCODQCOUBBBPPR4TLOAPIB4BQLDY3ORTJXTWEQSUJVJ7DMK7FVAC
IC6N445KSNOOEJNPWBGEWYMGOLNLJ2QGZWS2R3K6EQSCEQXDUFTQC
DDU4A3JGN5IUIPP5IASOODKPR2WBHSDSV4FITZ6HNXNSXXQACWAQC
QS3ZRS3E6KL3YJHPKYEWCWJYRBJSXD5OOYF6Y25HZVECGPJRDB5QC
L254F6ZIU2HWGLFFGPIORTN4C3TDQ3E5JZ7Z7GQA5AEDIKL6PKDAC
Y4WR4EIOFFXHRQI2PJAZWD4MVL6A7MNBHLN4KOV6BIKGGA7FXQTQC
7AMQN7MITMXBNVDAK5VOXTQ4TZIAOD6ZLOFJG7GQMBTY23Y2BKSAC
7KWDC7XFNMBLSUO2HISIROBINZBX5T67LJEEXTAORXW2YZ7VWFGAC
YH23OR26YDA6C5K74QRWHROMTPGRNZHTHE4HJGPC3JVNAJ62CHGAC
X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC
QNIQ2NBBIERVCA2YTD3O3P6QPJ5M6VDVGGX7V2BWXTW5553T4PVAC
GTXKQTORYHZ7XB2VIH6372UM5GMWAN7IVRXWY5FGBCHFGBV6D6NAC
TVC7W7C2XKBQSD2IJFMWFVGXZAOD4EUOW43NAQTOF5KFMAUOJABQC
RBAGQ2PB7V5YAM5KSHSZR2E3MLKDSRVM5XYGI2TIXP5QMVBOQHDQC
VK3LNDA3TXEPBMLDWBTEBDOZMPP3YUED3A624XMHWI6FI7LP3HGAC
D5EMJEEIJSSULF236DUM26QHHNDLH7FXAOBHFDAYI65KCKTDTDYQC
3JKKL6VSKQHBBTKEBSADZVCNXZLL4S6KN2W7G2CY5OBOMMUTIWXQC
WW6THKR7JN447YC23YYHYYNH7ABMCFFSECNUFTIJBZX6JHX6W7TAC
YA24HFHVUI2LDWFOZR5QSHRIVTAWGSGPAH5E2FPP6ANCL2MTUSTAC
UOW2X5KTUHYCM73SWNOSJPHUKWVLF3OJTNSISSSENEURBX2XWHVQC
BWAQ3FHBBM6G3K3KYP75CRTR343RDQZJRYX5ZGYUEXYBAC3APDLAC
5V47S4NNTHWTSAHV3YLO2VGH7JTUIYJ3GBPDN5ZM4UQALT2ZEXDQC
5RK245FAGZFCDDYG4AZAXSC7JPVIJG4DSAVAKHWWVBUNGICHYNJQC
K2MLPJIAXXZRWEWZCNSGICCBNIU2WAAPT7SPIMOH7FLLTOB4QFRAC
JVSCP4FTW2G57C6YD5HZOZXTODGZH7TR75JQGFJBEPX3LCZH236QC
OHJE4HQ2B3HVV4BOPBRFKO6HBRTLZEI74P5PLJF5GLSRD2MFWXHQC
Z6Q7JVMFQ32SC7FRGOB7CE7JS2HEOPAO3B2VLU3YR3UCUDZFIPFQC
QNKMXCJSGRBEPE6ZNPEXU5EQIOME6EI4DECVC56GLOBCMGWWE6MQC
5K2ANIEXD3CPJM4XNKNPZINP2G4NT7SJBKRN62WNBUKJXFERTILQC
static void get_symbol( int x, int y,
int object, unsigned *ch,
unsigned short *colour,
bool magic_mapped = false );
static unsigned get_symbol(int object, unsigned short *colour = NULL,
bool magic_mapped = false);
static void _get_symbol( int x, int y,
int object, unsigned *ch,
unsigned short *colour,
bool magic_mapped = false );
static unsigned _get_symbol(int object, unsigned short *colour = NULL,
bool magic_mapped = false);
static int get_item_dngn_code(const item_def &item);
static void set_show_backup( int ex, int ey );
static int get_viewobj_flags(int viewobj);
static int _get_item_dngn_code(const item_def &item);
static void _set_show_backup( int ex, int ey );
static int _get_viewobj_flags(int viewobj);
static void get_symbol( int x, int y,
int object, unsigned *ch,
unsigned short *colour,
bool magic_mapped )
static void _get_symbol( int x, int y,
int object, unsigned *ch,
unsigned short *colour,
bool magic_mapped )
if (igrd(gp) != NON_ITEM)
{
const coord_def ep = gp - you.pos() + coord_def(9, 9);
if (env.show(ep))
update_item_grid(gp, ep);
}
const coord_def ep = gp - you.pos() + coord_def(9, 9);
if (env.show(ep))
_update_item_grid(gp, ep);
std::vector<int> nondupe_cellrays = find_nonduped_cellrays();
const unsigned int num_nondupe_rays = nondupe_cellrays.size();
std::vector<int> nondupe_cellrays = _find_nonduped_cellrays();
const unsigned int num_nondupe_rays = nondupe_cellrays.size();
const int absx = signx * (targetx - sourcex);
const int absy = signy * (targety - sourcey);
const double want_slope = calc_slope(absx, absy);
int cur_offset = 0;
int shortest = INFINITE_DISTANCE;
int imbalance = INFINITE_DISTANCE;
double slope_diff = VERTICAL_SLOPE * 10.0;
const int absx = signx * (targetx - sourcex);
const int absy = signy * (targety - sourcey);
int cur_offset = 0;
int shortest = INFINITE_DISTANCE;
int imbalance = INFINITE_DISTANCE;
const double want_slope = _calc_slope(absx, absy);
double slope_diff = VERTICAL_SLOPE * 10.0;
if (x_p + realx >= 0 && x_p + realx < 80 &&
y_p + realy >= 0 && y_p + realy < 70 &&
realx * realx + realy * realy <= los_radius_squared )
sh[sh_xo+realx][sh_yo+realy]=gr[x_p+realx][y_p+realy];
if (x_p + realx >= 0 && x_p + realx < 80
&& y_p + realy >= 0 && y_p + realy < 70
&& realx * realx + realy * realy <= los_radius_squared )
{
sh[sh_xo+realx][sh_yo+realy] = gr[x_p+realx][y_p+realy];
}
static int find_feature( const std::vector<coord_def>& features,
int feature, int curs_x, int curs_y,
int start_x, int start_y,
int ignore_count,
int *move_x, int *move_y,
bool forward)
static int _find_feature( const std::vector<coord_def>& features,
int feature, int curs_x, int curs_y,
int start_x, int start_y,
int ignore_count,
int *move_x, int *move_y,
bool forward)
static bool class_allowed(species_type speci, job_type char_class);
static bool validate_player_name(bool verbose);
static bool choose_weapon(void);
static void enter_player_name(bool blankOK);
static void give_basic_knowledge(job_type which_job);
static void give_basic_spells(job_type which_job);
static void give_basic_mutations(species_type speci);
static void give_last_paycheck(job_type which_job);
static void init_player(void);
static void jobs_stat_init(job_type which_job);
static void openingScreen(void);
static void species_stat_init(species_type which_species);
static bool _class_allowed(species_type speci, job_type char_class);
static bool _validate_player_name(bool verbose);
static bool _choose_weapon(void);
static void _enter_player_name(bool blankOK);
static void _give_basic_knowledge(job_type which_job);
static void _give_basic_spells(job_type which_job);
static void _give_basic_mutations(species_type speci);
static void _give_last_paycheck(job_type which_job);
static void _init_player(void);
static void _jobs_stat_init(job_type which_job);
static void _opening_screen(void);
static void _species_stat_init(species_type which_species);
static void give_random_potion( int slot );
static void give_random_secondary_armour( int slot );
static bool give_wanderer_weapon( int slot, int wpn_skill );
static void create_wanderer(void);
static bool give_items_skills(void);
static void _give_random_potion( int slot );
static void _give_random_secondary_armour( int slot );
static bool _give_wanderer_weapon( int slot, int wpn_skill );
static void _create_wanderer(void);
static bool _give_items_skills(void);
} while ((colour == PDC_CLEAR && nature > PDQ_VISCOUS)
|| desc == PDESCS(PDC_CLEAR)
|| desc == PDESCQ(PDQ_GLUGGY, PDC_WHITE));
}
while ((colour == PDC_CLEAR && nature > PDQ_VISCOUS)
|| desc == PDESCS(PDC_CLEAR)
|| desc == PDESCQ(PDQ_GLUGGY, PDC_WHITE));
static void newgame_make_item(int slot, equipment_type eqslot,
object_class_type base,
int sub_type, int qty = 1,
int plus = 0, int plus2 = 0)
static void _newgame_make_item(int slot, equipment_type eqslot,
object_class_type base,
int sub_type, int qty = 1,
int plus = 0, int plus2 = 0)
while (!is_species_valid_choice(get_species(index), false)
|| (you.char_class != JOB_UNKNOWN &&
!class_allowed(get_species(index), you.char_class)));
while (!_is_species_valid_choice(_get_species(index), false)
|| (you.char_class != JOB_UNKNOWN
&& !_class_allowed(_get_species(index), you.char_class)));
else if (you.species == SP_HALFLING || you.species == SP_KOBOLD ||
you.species == SP_GNOME || you.species == SP_VAMPIRE)
else if (you.species == SP_HALFLING || you.species == SP_KOBOLD
|| you.species == SP_GNOME || you.species == SP_VAMPIRE)
newgame_make_item(1, EQ_BODY_ARMOUR,
OBJ_ARMOUR,
ARM_SCALE_MAIL);
newgame_make_item(2, EQ_SHIELD, OBJ_ARMOUR, ARM_SHIELD);
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_SCALE_MAIL);
_newgame_make_item(2, EQ_SHIELD, OBJ_ARMOUR, ARM_SHIELD);
newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS,
you.species == SP_OGRE_MAGE? WPN_QUARTERSTAFF :
player_genus(GENPC_DWARVEN)? WPN_HAMMER :
WPN_DAGGER);
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS,
you.species == SP_OGRE_MAGE? WPN_QUARTERSTAFF :
player_genus(GENPC_DWARVEN)? WPN_HAMMER :
WPN_DAGGER);
newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_SHORT_SWORD);
newgame_make_item(1, EQ_NONE, OBJ_WEAPONS, WPN_DAGGER);
newgame_make_item(2, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
newgame_make_item(3, EQ_CLOAK, OBJ_ARMOUR, ARM_CLOAK);
newgame_make_item(4, EQ_NONE, OBJ_MISSILES, MI_DART,
10 + roll_dice( 2, 10 ));
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_SHORT_SWORD);
_newgame_make_item(1, EQ_NONE, OBJ_WEAPONS, WPN_DAGGER);
_newgame_make_item(2, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
_newgame_make_item(3, EQ_CLOAK, OBJ_ARMOUR, ARM_CLOAK);
_newgame_make_item(4, EQ_NONE, OBJ_MISSILES, MI_DART,
10 + roll_dice( 2, 10 ));
newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ANIMAL_SKIN);
newgame_make_item(2, EQ_SHIELD, OBJ_ARMOUR, ARM_SHIELD);
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ANIMAL_SKIN);
_newgame_make_item(2, EQ_SHIELD, OBJ_ARMOUR, ARM_SHIELD);
newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR,
ARM_LEATHER_ARMOUR);
newgame_make_item(2, EQ_SHIELD, OBJ_ARMOUR, ARM_BUCKLER);
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR,
ARM_LEATHER_ARMOUR);
_newgame_make_item(2, EQ_SHIELD, OBJ_ARMOUR, ARM_BUCKLER);
newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_DAGGER);
newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
newgame_make_item(2, EQ_NONE, OBJ_BOOKS, BOOK_NECROMANCY);
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_DAGGER);
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
_newgame_make_item(2, EQ_NONE, OBJ_BOOKS, BOOK_NECROMANCY);
newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_FALCHION);
newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
newgame_make_item(2, EQ_SHIELD, OBJ_ARMOUR, ARM_SHIELD);
newgame_make_item(3, EQ_NONE, OBJ_POTIONS, POT_HEALING);
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_FALCHION);
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
_newgame_make_item(2, EQ_SHIELD, OBJ_ARMOUR, ARM_SHIELD);
_newgame_make_item(3, EQ_NONE, OBJ_POTIONS, POT_HEALING);
newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_DAGGER, 1,
1 + to_hit_bonus, 1 + (2 - to_hit_bonus));
newgame_make_item(1, EQ_NONE, OBJ_WEAPONS, WPN_BLOWGUN);
newgame_make_item(2, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
newgame_make_item(3, EQ_CLOAK, OBJ_ARMOUR, ARM_CLOAK);
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_DAGGER, 1,
1 + to_hit_bonus, 1 + (2 - to_hit_bonus));
_newgame_make_item(1, EQ_NONE, OBJ_WEAPONS, WPN_BLOWGUN);
_newgame_make_item(2, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
_newgame_make_item(3, EQ_CLOAK, OBJ_ARMOUR, ARM_CLOAK);
newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_DAGGER);
newgame_make_item(2, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR);
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_DAGGER);
_newgame_make_item(2, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR);
newgame_make_item(3, EQ_NONE, OBJ_MISSILES, MI_ARROW,
15 + random2avg(21, 5));
newgame_make_item(1, EQ_NONE, OBJ_WEAPONS, WPN_BOW);
_newgame_make_item(3, EQ_NONE, OBJ_MISSILES, MI_ARROW,
15 + random2avg(21, 5));
_newgame_make_item(1, EQ_NONE, OBJ_WEAPONS, WPN_BOW);
newgame_make_item(2, EQ_NONE, OBJ_BOOKS, BOOK_GEOMANCY);
newgame_make_item(3, EQ_NONE, OBJ_MISSILES, MI_STONE, 20);
_newgame_make_item(2, EQ_NONE, OBJ_BOOKS, BOOK_GEOMANCY);
_newgame_make_item(3, EQ_NONE, OBJ_MISSILES, MI_STONE, 20);
newgame_make_item(1, EQ_NONE, OBJ_MISSILES, MI_ARROW,
6 + roll_dice( 3, 4 ));
newgame_make_item(2, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
newgame_make_item(3, EQ_NONE, OBJ_BOOKS, BOOK_CHANGES);
_newgame_make_item(1, EQ_NONE, OBJ_MISSILES, MI_ARROW,
6 + roll_dice( 3, 4 ));
_newgame_make_item(2, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
_newgame_make_item(3, EQ_NONE, OBJ_BOOKS, BOOK_CHANGES);
newgame_make_item(3, EQ_NONE, OBJ_SCROLLS, SCR_BLINKING);
newgame_make_item(4, EQ_NONE, OBJ_MISSILES, MI_DART,
10 + roll_dice( 2, 10 ));
_newgame_make_item(3, EQ_NONE, OBJ_SCROLLS, SCR_BLINKING);
_newgame_make_item(4, EQ_NONE, OBJ_MISSILES, MI_DART,
10 + roll_dice( 2, 10 ));
newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_QUARTERSTAFF);
newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
newgame_make_item(2, EQ_NONE, OBJ_POTIONS, POT_HEALING);
newgame_make_item(3, EQ_NONE, OBJ_POTIONS, POT_HEAL_WOUNDS);
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_QUARTERSTAFF);
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
_newgame_make_item(2, EQ_NONE, OBJ_POTIONS, POT_HEALING);
_newgame_make_item(3, EQ_NONE, OBJ_POTIONS, POT_HEAL_WOUNDS);
newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_SHORT_SWORD);
if (!choose_weapon())
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_SHORT_SWORD);
if (!_choose_weapon())
newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
if (!choose_book( you.inv[2], BOOK_CONJURATIONS_I, 2 ))
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
if (!_choose_book( you.inv[2], BOOK_CONJURATIONS_I, 2 ))
newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_DAGGER, 1,
1 + to_hit_bonus, 1 + (2 - to_hit_bonus));
newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
newgame_make_item(2, EQ_CLOAK, OBJ_ARMOUR, ARM_CLOAK);
newgame_make_item(3, EQ_NONE, OBJ_BOOKS, BOOK_STALKING);
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_DAGGER, 1,
1 + to_hit_bonus, 1 + (2 - to_hit_bonus));
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
_newgame_make_item(2, EQ_CLOAK, OBJ_ARMOUR, ARM_CLOAK);
_newgame_make_item(3, EQ_NONE, OBJ_BOOKS, BOOK_STALKING);
case MR_RES_STEAM: steam = 3; break;
case MR_RES_ELEC: elec = nl; break;
case MR_RES_POISON: poison = nl; break;
case MR_RES_FIRE: fire = nl; break;
// resistances
case MR_RES_STEAM: steam = 3; break;
case MR_RES_ELEC: elec = nl; break;
case MR_RES_POISON: poison = nl; break;
case MR_RES_FIRE: fire = nl; break;
case MR_RES_COLD: cold = nl; break;
case MR_RES_ASPHYX: asphyx = nl; break;
case MR_RES_ACID: acid = nl; break;
case MR_VUL_ELEC: elec = -nl; break;
case MR_VUL_POISON: poison = -nl; break;
case MR_VUL_FIRE: fire = -nl; break;
case MR_VUL_COLD: cold = -nl; break;
case MR_RES_COLD: cold = nl; break;
case MR_RES_ASPHYX: asphyx = nl; break;
case MR_RES_ACID: acid = nl; break;
case MR_RES_PIERCE: pierce = nl; break;
case MR_RES_SLICE: slice = nl; break;
// vulnerabilities
case MR_VUL_ELEC: elec = -nl; break;
case MR_VUL_POISON: poison = -nl; break;
case MR_VUL_FIRE: fire = -nl; break;
case MR_VUL_COLD: cold = -nl; break;
// resistance to certain damage types
case MR_RES_PIERCE: pierce = nl; break;
case MR_RES_SLICE: slice = nl; break;
elec += o.elec;
poison += o.poison;
fire += o.fire;
cold += o.cold;
hellfire += o.hellfire;
asphyx += o.asphyx;
acid += o.acid;
pierce += o.pierce;
slice += o.slice;
bludgeon += o.bludgeon;
elec += o.elec;
poison += o.poison;
fire += o.fire;
cold += o.cold;
hellfire += o.hellfire;
asphyx += o.asphyx;
acid += o.acid;
pierce += o.pierce;
slice += o.slice;
bludgeon += o.bludgeon;
if(xev.type==KeyPress)
{
*etype = EV_KEYIN;
*key = x11_keypress(&(xev.xkey));
break;
}
else if(xev.type==Expose)
{
x11_check_exposure(&xev);
}
else if(xev.type == ConfigureNotify)
{
win_main->ox = xev.xconfigure.x;
win_main->oy = xev.xconfigure.y;
break;
}
else if(xev.type==ButtonPress)
if (xev.type == KeyPress)
*etype = EV_BUTTON;
*etype = EV_KEYIN;
*key = x11_keypress(&(xev.xkey));
break;
}
else if (xev.type == Expose)
{
x11_check_exposure(&xev);
}
else if (xev.type == ConfigureNotify)
{
win_main->ox = xev.xconfigure.x;
win_main->oy = xev.xconfigure.y;
break;
}
else if (xev.type == ButtonPress)
{
*etype = EV_BUTTON;
{
case XK_Escape:
base = 0x1b;
break;
case XK_Return:
base = '\r';
break;
case XK_Tab:
base = '\t';
break;
case XK_Delete:
case XK_BackSpace:
base = '\010';
break;
// for menus
case XK_Down:
return CK_DOWN;
case XK_Up:
return CK_UP;
case XK_Left:
return CK_LEFT;
case XK_Right:
return CK_RIGHT;
/*
* Keypad
*/
case XK_KP_1:
case XK_KP_End:
dir = 1;
break;
case XK_KP_2:
case XK_KP_Down:
dir = 2;
break;
case XK_KP_3:
case XK_KP_Page_Down:
dir = 3;
break;
case XK_KP_6:
case XK_KP_Right:
dir = 6;
break;
case XK_KP_9:
case XK_KP_Page_Up:
dir = 9;
break;
{
case XK_Escape:
base = 0x1b;
break;
case XK_Return:
base = '\r';
break;
case XK_Tab:
base = '\t';
break;
case XK_Delete:
case XK_BackSpace:
base = '\010';
break;
case XK_KP_7:
case XK_KP_Home:
dir = 7;
break;
case XK_KP_4:
case XK_KP_Left:
dir = 4;
break;
case XK_KP_5:
dir = 5;
break;
}/* switch */
// Keypad
case XK_KP_1:
case XK_KP_End:
dir = 1;
break;
case XK_KP_2:
case XK_KP_Down:
dir = 2;
break;
case XK_KP_3:
case XK_KP_Page_Down:
dir = 3;
break;
case XK_KP_6:
case XK_KP_Right:
dir = 6;
break;
case XK_KP_9:
case XK_KP_Page_Up:
dir = 9;
break;
case XK_KP_8:
case XK_KP_Up:
dir = 8;
break;
case XK_KP_7:
case XK_KP_Home:
dir = 7;
break;
case XK_KP_4:
case XK_KP_Left:
dir = 4;
break;
case XK_KP_5:
dir = 5;
break;
}
|| ends_with(name, "x"))
// To handle cockroaches, fish and sphinxes. Fish will be netted by
// the previous check anyway.
|| ends_with(name, "x"))
{
// To handle cockroaches and sphinxes, and in case there's some monster
// ending with sh (except fish, which are caught in the previous check).
std::vector<std::string> split_string(
const std::string &sep,
std::string s,
bool trim_segments,
bool accept_empty_segments,
int nsplits)
std::vector<std::string> split_string( const std::string &sep,
std::string s,
bool trim_segments,
bool accept_empty_segments,
int nsplits)
return !*pattern || glob_match(pattern, text - 1, icase)? true :
// Or skip one character in the text and try the wildcard
// match again. If this is the end of the text, the match has
// failed.
t? glob_match(pattern - 1, text, icase) : false;
else if (!t || (p != t && (p != '?' || !special)))
if (!*pattern || glob_match(pattern, text - 1, icase))
return true;
// Or skip one character in the text and try the wildcard match
// again. If this is the end of the text, the match has failed.
return (t ? glob_match(pattern - 1, text, icase) : false);
}
else if (!t || p != t && (p != '?' || !special))