summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2006-09-22 14:02:54 +0000
committerharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2006-09-22 14:02:54 +0000
commit54703a5e095d2a33bbdcaf6b8864529fdeb26171 (patch)
tree1584ed38f8719a722e059b98ee90467db93178e6
parent4304e2c7598ce1bafb208194f3835f4450b393a6 (diff)
downloadcrawl-ref-54703a5e095d2a33bbdcaf6b8864529fdeb26171.tar.gz
crawl-ref-54703a5e095d2a33bbdcaf6b8864529fdeb26171.zip
Added 'show resists screen' command. Needs more improvement
(specifically colors.) git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup@67 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/acr.cc5
-rw-r--r--crawl-ref/source/chardump.cc52
-rw-r--r--crawl-ref/source/chardump.h2
-rw-r--r--crawl-ref/source/enum.h1
4 files changed, 60 insertions, 0 deletions
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc
index a23debc2ca..647c842d47 100644
--- a/crawl-ref/source/acr.cc
+++ b/crawl-ref/source/acr.cc
@@ -1393,6 +1393,10 @@ static void do_action( command_type cmd ) {
case CMD_DISPLAY_CHARACTER_STATUS:
display_char_status();
break;
+
+ case CMD_RESISTS_SCREEN:
+ resists_screen();
+ break;
case CMD_DISPLAY_SKILLS:
show_skills();
@@ -2459,6 +2463,7 @@ command_type keycode_to_command( keycode_type key ) {
case '<': return CMD_GO_UPSTAIRS;
case '>': return CMD_GO_DOWNSTAIRS;
case '@': return CMD_DISPLAY_CHARACTER_STATUS;
+ case '%': return CMD_RESISTS_SCREEN;
case ',': return CMD_PICKUP;
case ':': return CMD_MAKE_NOTE;
case ';': return CMD_INSPECT_FLOOR;
diff --git a/crawl-ref/source/chardump.cc b/crawl-ref/source/chardump.cc
index 7cacac08cc..b14b5f410f 100644
--- a/crawl-ref/source/chardump.cc
+++ b/crawl-ref/source/chardump.cc
@@ -1191,3 +1191,55 @@ bool dump_char( const char fname[30], bool show_prices ) // $$$ a try block?
return (succeeded);
} // end dump_char()
+
+void resists_screen() {
+#ifdef DOS_TERM
+ char dosbuffer[4000];
+ gettext( 1, 1, 80, 25, dosbuffer );
+ window( 1, 1, 80, 25 );
+#endif
+ clrscr();
+ textcolor( LIGHTGREY );
+ char buffer[25*3][45];
+ char text[4000];
+ char str_pass[80];
+ char* ptr_n;
+
+ text[0] = 0;
+ get_full_detail(&buffer[0][0], false);
+
+ for (int i = 0; i < 25; i++)
+ {
+ ptr_n = &buffer[i][0];
+ if (buffer[i+25][0] == '\0' && buffer[i+50][0] == '\0')
+ snprintf(&str_pass[0], 45, "%s", ptr_n);
+ else
+ snprintf(&str_pass[0], 45, "%-32s", ptr_n);
+ strcat(text, str_pass);
+
+ ptr_n = &buffer[i+25][0];
+ if (buffer[i+50][0] == '\0')
+ snprintf(&str_pass[0], 45, "%s", ptr_n);
+ else
+ snprintf(&str_pass[0], 45, "%-20s", ptr_n);
+ strcat(text, str_pass);
+
+ ptr_n = &buffer[i+50][0];
+ if (buffer[i+50][0] != '\0')
+ {
+ snprintf(&str_pass[0], 45, "%s", ptr_n);
+ strcat(text, str_pass);
+ }
+ strcat(text, EOL);
+ }
+
+ cprintf(text);
+
+ getch();
+#ifdef DOS_TERM
+ puttext(1, 1, 80, 25, dosbuffer);
+ window(1, 1, 80, 25);
+#endif
+
+ redraw_screen();
+}
diff --git a/crawl-ref/source/chardump.h b/crawl-ref/source/chardump.h
index 22b03ac8d3..b9b0f3811d 100644
--- a/crawl-ref/source/chardump.h
+++ b/crawl-ref/source/chardump.h
@@ -21,6 +21,8 @@
* *********************************************************************** */
bool dump_char( const char fname[30], bool show_prices );
+void resists_screen();
+
std::string munge_description(const std::string &inStr);
const char *hunger_level(void);
diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h
index dd4bfe839c..e99447e558 100644
--- a/crawl-ref/source/enum.h
+++ b/crawl-ref/source/enum.h
@@ -648,6 +648,7 @@ enum command_type
CMD_TOGGLE_NOFIZZLE,
CMD_TOGGLE_AUTOPRAYER,
CMD_MAKE_NOTE,
+ CMD_RESISTS_SCREEN,
CMD_PERFORM_ACTIVITY,