adding yet another entry to props.
FR 1949504: Move version information into the help scroller, yay! It also looks much nicer now (if I may say so). Go, take a look! :)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5234 c06c8d41-db1a-0410-9941-cceddc491573
CKY7MRFWMNHXIPJD5ZUAJN5T2YHUIEAYBNYYV5GN74LBZJRDJMEQC
JYBCZ5MLYILAXVZ2XTTTVLPVFVRF3JHDQMUBKU6XDBCNZKSCYPLQC
KEANRIMF5CGFVZ2XJYNFPOAKLXOSOJUOVA73IWBWOG576265ERHAC
JQK4F4RTKVQWIF5YKFPH7IHF7UREBOY2NOFQ7J3O44KYPCNHNL5AC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
LP5EK64IEM7AHNYQID4GGKOQJQNZLKY4DCCZN47SIUZ6IXAXH5UAC
LDBTCT5WIPLJPZWXS2RUQ26QKISCUUTLO77M464WOE6VSYSNPKYAC
U6ILMKBXTQZYT62IGD2CALYNU4VQGRSTHN6QBFBU7BVUBHWYOEQQC
F42F3QNVICCXWPMNYL2QQJZNOVBVF4MXZUXNUC7KKYIRZ7R5HGPAC
KPU2SA6G7UECM5N6PNXOT5CCQAYFBN47K5JYBQMFBD25HL2A5GIAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
HL47H6Q4SA2KSPHWZSOCGHHCDB6JGC4LLHPA4JUHNCCPF2ZGQNTAC
7NDXS36TE7QVXTXJWMYSVG5UHCCLPIO4VL6NXFGTDK3ZNKE3A2IAC
EMJSHEKS7UTRRLF7GW5WYVI7RAAUJJQX2D3PAIO7UZFGNREIZOAAC
OQ4KB7QCJSK7GSW3DYBARH4DCB75HFKLUSOSOZZZ4IUFKNGFRUDQC
SRQJVKQVUY7QGCEBA2VQTWEJ7ADIUSY7L46HJQSQNM5DXYRRH5KAC
HFCPPPYI366EDKNBDGVNSAW76OGQA2NYTKLSP4LC3VYKHPLWFJ6QC
5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC
JQCVEFFILBCGLBRRKJ3EVVDDZFHZ4GCBSXKN3D5ZSQZ4HGDHMCHQC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
5B5DP5S6A6LQMKZYVLQAEMHQZWFWYDHPCKQGRNSCNNYIBQYZ6BIQC
XKOGHLABEKWUF6G7NEX3EWCM6JX7UFUDTGFAZDRPQTW4FAHOA6WQC
JMGFP3NPBN3IMFWC2T42UERZBAU3SPCTJ4SOJ5WL6WRUNB6BPKIQC
QEEJFAETO6B2J4IWDIDCJ5UNIFNNHHG22IWF2CUJRTJJBNE47CWQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
27JBFXYGCM6RU42Y5A4ZZ6I3RXXBY5A3B252YPAPSADTN6SFTH2QC
LAMIVDKY7LO5ONX5Z273ZCCEA5UBENOJD5VWNE4AK2EXGFED6BFQC
7NFVYCNQ54IN77PF334ADAF4YQT6LEABMAIZF4Y4BH5C3CYXYQGQC
WQU4ORZR2C52JNRTH5DN4XKNLEC4Q4SUZ7MLO6MBU6SSL2YXLSOAC
65CM2EZCAFFBWLAYZ7ALBV3BQKNZCYOHYIFY46KU7BZL3LHV36JAC
FNNHPDRUNN3NT34PMF7NRS2GNRAVL2XUUS2UVN5EB3BHUV23ERYQC
GOPBXMJ7EKKPDSDXCANWW6ARWGNLOQ5DK7WI4UPD7K2GCDSK2HXAC
ZIFFVCQ72K35WGIUMZYN3KOXIUXF2CNXWKG6ZWEZ6LT3NSF3XOQAC
NXVPOFYKJFWQWKVPQUMWH2Y2KJEZX44BUOBFJ4JD4KFGPEGYHG4QC
VNSBAPL2FZNOR2R2NIJQITPHLQCMUE53U54GAENUSIN4526NHCPAC
RC6L3CIBLJEH4GWRFD7UQNGI6PZT74FRUVOYHSAN2XCC74NZUASQC
NTHQ3RE6DK47HACSWRRVH7QPETSRCLTWMUN2AWKNVWYSV55GFNZAC
DOZORMA366M4HB5JKSS27BMCR6ET7QNZNND2B7KV3NVEEPR5H7EAC
GSQ72ULBSL6WBJZUB3GJKAPQDXZIQV7B2TDBA5OP2WVGHVJMCQFQC
6OPWKN5LKYBZQLD25BGC4T3P5KXCJM6KNLOEQCPMLKYPY3UATKEQC
EWJXUTTGMQTA6Q7ITOYVBPIWMZ55LBHXTLYCEV4YCFPS7DRCJ7GQC
QXQE7C5XDYNF4JSHGDAVMS7HYLOC6YEZFOVFJ3RD7RB6U4AJSFIQC
4KZCX2DSUCAWFYONVHEM7EXGF3KNNKZEIA2N3Z6ICLBQLQJHOG5AC
DHOSSNN4CUCGXX32MBLW6BAHHH5HUE4SAC6BNFHAG2OZZP6JQ7LAC
W45PMU4HNPSAMMEBJ4XH4MTHLPVIASZT4FXTBPID5LFXKIMNUBKAC
7PRZJ6KZLG26YVTAMXT7YOTQLWZHGWGRTKXZZ52P4XYCQD4GT5WQC
2PAHDAPDO6PN4FNGB5N7CQNEGHSE3NOGPXYZMIAOJC4VW34FRVOAC
PADV7V2SZDQMQICKJ5DZPQMFF26JXPNM5XEHTWD3BSHPTAAXXJKQC
43ZTEB57FU7KE5EVMYWZONNVJBZCGF3JEAJZIY25LC4LGE65PG5QC
AONBAYG4YXQKBTEOYFMRPAO44WYES7PJRZZ46LIBKXMPJYKFG4ZAC
HQYQ6ZCUZBFKNPREFNSWSMRA4UD7VJXW6XK2GQONE5F3OX5NOMUQC
XEUQ36QJIYDPC46OS3HYV6ORCN426PJDZJZVDPAO22OHTRUWDV6QC
JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC
case OBJ_STAVES:
id0 = id[ IDTYPE_STAVES ][s];
if (id0 != ID_KNOWN_TYPE)
return 1;
else
return 0;
case OBJ_STAVES:
id0 = id[ IDTYPE_STAVES ][s];
if (id0 != ID_KNOWN_TYPE)
return 1;
else
return 0;
case OBJ_JEWELLERY:
id0 = id[ IDTYPE_JEWELLERY ][s];
break;
case OBJ_JEWELLERY:
if (is_artefact(item))
{
if (item.props.exists("jewellery_tried")
&& item.props["jewellery_tried"].get_bool())
{
return 2;
}
return 1;
}
id0 = id[ IDTYPE_JEWELLERY ][s];
break;
// Randart jewellery shouldn't auto-ID just because the
// base type is known. Somehow the player should still
// be told, preferably by message. (jpeg)
// Randart jewellery shouldn't auto-ID just because the base type
// is known. Somehow the player should still be told, preferably
// by message. (jpeg)
#ifdef USE_TILE
"Tile support",
#endif
};
return (result);
}
static std::string _get_version_features(void)
{
std::string result = "FEATURES" EOL;
result += "--------" EOL;
for (unsigned int i = 0; i < ARRAYSZ(features); i++)
{
result += " * ";
result += features[i];
result += EOL;
}
result += "\n\n";
return (result);
}
static void _add_file_to_scroller(FILE* fp, formatted_scroller& m,
int first_hotkey = 0,
bool auto_hotkeys = false);
mpr( "This is " CRAWL " " VERSION " (" VERSION_DETAIL ")." );
mprf("Features: %s",
comma_separated_line(features, features + ARRAYSZ(features))
.c_str());
} // end version()
formatted_scroller cmd_version;
// Set flags.
int flags = MF_NOSELECT | MF_ALWAYS_SHOW_MORE | MF_NOWRAP | MF_EASY_EXIT;
cmd_version.set_flags(flags, false);
cmd_version.set_tag("version");
// FIXME: Allow for hiding Page down when at the end of the listing, ditto
// for page up at start of listing.
cmd_version.set_more( formatted_string::parse_string(
"<cyan>[ + : Page down. - : Page up."
" Esc exits.]") );
cmd_version.add_text(_get_version_information());
cmd_version.add_text(_get_version_features());
// Read in information about changed in comparison to the latest version.
FILE* fp = fopen(datafile_path("034_changes.txt", true).c_str(), "r");
if (fp)
{
char buf[200];
bool first = true;
while (fgets(buf, sizeof buf, fp))
{
// Remove trailing spaces.
for (int i = strlen(buf) - 1; i >= 0; i++)
{
if (isspace( buf[i] ))
buf[i] = 0;
else
break;
}
if (first)
{
// Highlight the first line (title).
std::string text = "<w>";
text += buf;
text += "</w>";
cmd_version.add_text(text);
first = false;
}
else
cmd_version.add_text(buf);
}
}
fclose(fp);
to_slot = prompt_invent_item(
"Adjust to which letter?",
MT_INVLIST,
-1,
false,
false );
to_slot = prompt_invent_item( "Adjust to which letter?",
MT_INVLIST,
-1,
false,
false );
int hotkey = is_first ? first_hotkey : buf[0];
if ( !is_first && buf[0] == 'X' &&
strlen(buf) >= 3 && isdigit(buf[2]) )
int hotkey = (is_first ? first_hotkey : buf[0]);
if (!is_first && buf[0] == 'X'
&& strlen(buf) >= 3 && isdigit(buf[2]))
"Table legend:\n"
" A = Kills in this place as a percentage of kills in entire the game.\n"
" B = Kills by you in this place as a percentage of kills by you in\n"
" the entire game.\n"
" C = Kills by friends in this place as a percentage of kills by\n"
" friends in the entire game.\n"
" D = Other kills in this place as a percentage of other kills in the\n"
" entire game.\n"
" E = Character level experience gained in this place as a percentage of\n"
" character level experience gained in the entire game.\n"
" F = Skills experience gained in this place as a percentage of skills\n"
" experience gained in the entire game.\n"
" G = Experience gained in this place divided by the number of levels of\n"
" this place that you have seen.\n\n";
"Table legend:\n"
" A = Kills in this place as a percentage of kills in entire the game.\n"
" B = Kills by you in this place as a percentage of kills by you in\n"
" the entire game.\n"
" C = Kills by friends in this place as a percentage of kills by\n"
" friends in the entire game.\n"
" D = Other kills in this place as a percentage of other kills in the\n"
" entire game.\n"
" E = Character level experience gained in this place as a percentage of\n"
" character level experience gained in the entire game.\n"
" F = Skills experience gained in this place as a percentage of skills\n"
" experience gained in the entire game.\n"
" G = Experience gained in this place divided by the number of levels of\n"
" this place that you have seen.\n\n";
(you.hunger <= 2600) ? "hungry" :
(you.hunger < 7000) ? "not hungry" :
(you.hunger < 11000) ? "full" : "completely stuffed");
(you.hunger <= 2600) ? "hungry" :
(you.hunger < 7000) ? "not hungry" :
(you.hunger < 11000) ? "full"
: "completely stuffed");
std::string dir =
!Options.morgue_dir.empty()? Options.morgue_dir :
!SysEnv.crawl_dir.empty() ? SysEnv.crawl_dir : "";
std::string dir = (!Options.morgue_dir.empty() ? Options.morgue_dir :
!SysEnv.crawl_dir.empty() ? SysEnv.crawl_dir
: "");
scr.set_title( new MenuEntry("Turn | Place | Note"));
for ( unsigned int i = 0; i < note_list.size(); ++i )
scr.set_title(new MenuEntry("Turn | Place | Note"));
for (unsigned int i = 0; i < note_list.size(); ++i)