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;
// resistancescase 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;
// vulnerabilitiescase 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 typescase 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 menuscase 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 */
// Keypadcase 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))