This is a port of Rogue-clone: Version II, but it is enhanced to display

messages with Japanese, colored and messages are separated from program
(you can make another message version of rogue).

PR:		ports/19962
Submitted by:	Yoshihiko Sarumaru <mistral@imasy.or.jp>
This commit is contained in:
SADA Kenji 2000-07-18 17:38:04 +00:00
parent a3b3c708a0
commit 740a2ec0ee
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=30790
9 changed files with 323 additions and 0 deletions

73
japanese/rogue_s/Makefile Normal file
View File

@ -0,0 +1,73 @@
# New ports collection makefile for: rogue_s
# Date created: 3 December 1998
# Whom: Yoshihiko Sarumaru <mistral@imasy.or.jp>
#
# $FreeBSD$
#
PORTNAME= rogue_s
PORTVERSION= 1.3a
CATEGORIES= japanese games
MASTER_SITES= ${MASTER_SITE_PORTS_JP} \
http://people.FreeBSD.org/~sada/distfiles/ \
ftp://ftp.lab.kdd.co.jp/Usenet/fj.sources/1992/sep/ \
ftp://ftp.lab.kdd.co.jp/Usenet/fj.sources/1992/nov/
DISTFILES= rogue_s.tar.z rogue_s.patch02.z rogue_s.patch03.z \
rogue_s.message.z
EXTRACT_ONLY= rogue_s.tar.z
PATCH_SITES= ${MASTER_SITE_PORTS_JP} \
http://people.FreeBSD.org/~sada/distfiles/ \
ftp://ftp.lab.kdd.co.jp/Usenet/fj.sources/1992/sep/ \
ftp://ftp.lab.kdd.co.jp/Usenet/fj.sources/1992/oct/
PATCHFILES= rogue_s.patch04
MAINTAINER= mistral@imasy.or.jp
BUILD_DEPENDS= nkf:${PORTSDIR}/japanese/nkf
WRKSRC= ${WRKDIR}/rogue_s
MAKEFILE= Makefile.nix
ALL_TARGET= rogue
NO_CDROM= yes
MAN6= rogue_s.6
MANLANG= ja
MANCOMPRESSED= no
DOC_DIR= ${PREFIX}/share/doc/rogue
DOCS= README README.1st README.doc options.doc rogue.doc
MESG_DIR= ${PREFIX}/share/rogue
pre-patch:
@(\
cd ${WRKSRC} ; \
${GZCAT} ${DISTDIR}/rogue_s.patch02.z | uudecode -p | ${PATCH} --quiet ;\
${GZCAT} ${DISTDIR}/rogue_s.patch03.z | ${PATCH} --quiet \
)
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/rogue ${PREFIX}/bin/rogue_s
${SED} "s#PREFIX#${PREFIX}#" ${FILESDIR}/rogue_s.6 > ${WRKSRC}/rogue_s.6
${INSTALL_MAN} ${WRKSRC}/rogue_s.6 ${PREFIX}/man/ja/man6/rogue_s.6
${MKDIR} ${MESG_DIR}
${INSTALL_DATA} ${WRKSRC}/mesg ${MESG_DIR}
${INSTALL_DATA} ${WRKSRC}/mesg_E ${MESG_DIR}
${GZCAT} ${FILESDIR}/mesg_fj.gz > ${WRKDIR}/mesg_fj
${INSTALL_DATA} ${WRKDIR}/mesg_fj ${MESG_DIR}/mesg_fj
@(\
cd ${WRKDIR} ; \
${GZCAT} ${DISTDIR}/rogue_s.message.z | \
${AWK} '{if (/^\#/) x++} {if(x) print $$0}' | ${SH} \
)
nkf -e ${WRKDIR}/mesg_utmc > ${WRKDIR}/mesg_utmc.euc
${INSTALL_DATA} ${WRKDIR}/mesg_utmc.euc ${MESG_DIR}/mesg_utmc
.if !defined(NOPORTDOCS)
${MKDIR} ${DOC_DIR}
for file in ${DOCS}; do \
${INSTALL_DATA} ${WRKSRC}/"$$file" ${DOC_DIR} ; \
done
.endif
.include <bsd.port.mk>

View File

@ -0,0 +1,5 @@
MD5 (rogue_s.tar.z) = b8ca39a0d96a3e50b984a010c132fa26
MD5 (rogue_s.patch02.z) = 69e5f0b7cd7bee38f20e784e84af8daa
MD5 (rogue_s.message.z) = f40390b6c7827db68f3c1db72c9e2487
MD5 (rogue_s.patch03.z) = 432168b9c397d598ee49f5dda41ae067
MD5 (rogue_s.patch04) = 694c769b54f1ac03ac2f0919be0b8d41

View File

@ -0,0 +1,23 @@
--- ../ports/work/rogue_s/Makefile.nix Sun Sep 13 23:36:02 1992
+++ Makefile.nix Thu Dec 3 11:46:23 1998
@@ -11,14 +11,14 @@
trap.o use.o zap.o
# for BSD (Japanese, using my own CURSES) by Yasha
-CC = gcc -traditional-cpp
-CFLAGS = -O -g -DUNIX -DUNIX_BSD4_2 -DCURSES -DJAPAN -DEUC -DTOPSCO
-LIBS =
+#CC = gcc -traditional-cpp
+#CFLAGS = -O -g -DUNIX -DUNIX_BSD4_2 -DCURSES -DJAPAN -DEUC -DTOPSCO -DCOLOR
+#LIBS =
# for 386BSD (Japanese, using my own CURSES) by Yasha
-#CC = gcc
-#CFLAGS = -O -g -DUNIX -DUNIX_BSD4_2 -DUNIX_386BSD -DCURSES -DJAPAN -DEUC -DTOPSCO
-#LIBS =
+CC = cc
+CFLAGS += -DUNIX -DUNIX_BSD4_2 -DUNIX_386BSD -DCURSES -DJAPAN -DEUC -DTOPSCO -DCOLOR -DMESG_DIR=\"${PREFIX}/share/rogue\" -DLIST_MESSAGES
+LIBS =
# for NeXT (Japanese, using jcurses of NeXT) by Yasha
#CFLAGS = -O -DUNIX -DUNIX_BSD4_2 -DJAPAN -DEUC -DTOPSCO

View File

@ -0,0 +1,79 @@
--- main.c.orig Mon Sep 14 14:40:12 1992
+++ main.c Sat Jul 15 02:05:20 2000
@@ -11,6 +11,8 @@
*/
#include <stdio.h>
+#include <sys/types.h>
+#include <dirent.h>
#include "rogue.h"
extern short party_room;
@@ -62,6 +64,41 @@
}
}
+#ifdef LIST_MESSAGES
+/*
+ * Display the list of message files.
+ * (by mistral@imasy.or.jp)
+ */
+
+void list_mesg(char *dir) {
+ DIR *dirp;
+ struct dirent *dp;
+
+ if ((dirp = opendir(dir)) != NULL) {
+ while ((dp = readdir(dirp)) != NULL) {
+ if (strncmp(dp->d_name, "mesg", strlen("mesg")) == 0) {
+ FILE *fp;
+ char buf[81];
+ char filename[FILENAME_MAX];
+ sprintf(filename, "%s/%s", dir, dp->d_name);
+ if ((fp = fopen(filename, "r")) != NULL) {
+ while (!feof(fp)) {
+ fgets(buf, 80, fp);
+ if (strncmp(buf, "1\t", strlen("1\t")) == 0) {
+ fprintf(stderr, "%s\t%s", dp->d_name, &buf[2]);
+ break;
+ }
+ }
+ fclose(fp);
+ }
+ }
+ }
+ closedir(dirp);
+ }
+ return;
+}
+#endif
+
int read_mesg(ac, av)
int ac;
char **av;
@@ -72,12 +109,25 @@
if (ac < 2) {
fprintf(stderr, "%s: message_file [options...]\n", av[0]);
+#ifdef LIST_MESSAGES
+ fprintf(stderr, "available message_files are:\n");
+ list_mesg(".");
+ list_mesg(MESG_DIR);
+#endif
return 1;
}
if ((mesg_file = fopen(av[1], "r")) == NULL) {
+#ifdef LIST_MESSAGES
+ char filename[FILENAME_MAX];
+ sprintf(filename, "%s/%s", MESG_DIR, av[1]);
+ if ((mesg_file = fopen(filename, "r")) == NULL) {
+#endif
fprintf(stderr, "Cannot open message file '%s'\n", av[1]);
return 1;
+#ifdef LIST_MESSAGES
+ }
+#endif
}
while (fgets(buf, 256, mesg_file) != NULL) {

View File

@ -0,0 +1,15 @@
--- machdep.c.orig Mon Sep 14 14:40:12 1992
+++ machdep.c Fri Dec 4 00:22:26 1998
@@ -397,9 +397,9 @@
md_heed_signals()
{
#ifdef UNIX
- signal(SIGINT, onintr);
- signal(SIGQUIT, byebye);
- signal(SIGHUP, error_save);
+ signal(SIGINT, (void *)onintr);
+ signal(SIGQUIT, (void *)byebye);
+ signal(SIGHUP, (void *)error_save);
#endif /* UNIX */
#ifdef HUMAN

View File

@ -0,0 +1,91 @@
.Dd Sep 10, 1992
.Dt ROGUE_S 6
.Sh 名称
.Nm rogue_s
.Nd ローグ・クローンにより運命の洞窟を探検する
.Sh 書式
.Nm rogue_s
.Ar mesg_file
.Op -s
.Op -r
.Op save_file
.Sh 解説
.Pp
このゲームは、バークレイ版 UNIX に付属しているゲーム、
ローグ 5.3 のクローンからメッセージを分離し、自分の好きなメッセージで
楽しむことができるようにしたものです。
.Pp
コマンドキャラクターは標準のローグ 5.3 と同じで、
h, j, k, l, y, u, b, n で1ステップ移動します。
シフトキーと同時に押せば、何かにぶつかるまで移動します。
コントロールキーと同時に押した場合には、何かが見つかるまで
移動することができます。
また ? を入力すれば、使用できるコマンドのリストを表示することができます。
.Pp
プログラムがプレイヤーに何かの選択を要求するときには、
いつでも * を入力して選択できるもののリストを表示させることができます。
しかしながら、場合によっては全リストではなく、巻き物、水薬、武器などだけの
リストを見たいことがあります。その場合には * のかわりに ?!=:/)] の
いずれかを入力することにより、それぞれ巻き物、水薬、指輪、食糧、杖、武器、
よろいの メニューを表示することができます。これは、何か特定の持ち物、
例えば巻き物を落としたいが、それを全リストからではなく、巻き物の中から
探したいようなときに特に有用です。
.Pp
CTRL-A を入力すると、次のような行が表示されます。
.Pp
.Bd -filled -offset indent
基本上昇率: 6.50, 実効上昇率: 7.00 (!: 2, V: 0)
.Ed
.Pp
この行は体力上昇率を表しています。プレイヤーの経験レベルが上がるごとに、
プレイヤーの体力はランダムに選ばれた 10 未満の値だけ上昇します。
CTRL-A コマンドを使えば、自分の幸運度を知ることができます。
上記の例では、基本上昇率はゲーム中の正確な体力上昇値の平均を表し、
有効上昇率は基本上昇率から水薬による上昇分とバンパイヤによる低下分を
差し引いたものです。上記の例では、2 ポイントの体力が体力が回復する薬を
飲んだことによって与えられ、バンパイヤの影響はないことが括弧の中に
示されています。ただし、ここで述べる体力値は体力の上限値を指しています。
すなわち、ローグ画面最下行にあるプレイヤー状態表示行の中の『体力: 15(22)』
という部分の最も右側にある数値です。
.Pp
CTRL-D コマンドは何の入力要求も行わずに rogue.screen というファイルを
カレントディレクトリーに作成します。このファイルの内容は CTRL-D を
入力したときの画面のコピーです。このコマンドはゲーム中のどの時点でも
実行できます。これは、自分がどのように悲惨な状態に陥ったか、
あるいはどれだけすごいゲームだったかを他人に説明するのに便利です。
.Pp
.Nm mesg_file
には読み込ませるメッセージファイル名を書きます。元々のメッセージファイル
(の日本語版)は mesg という名前になっています。ファイルは
カレントディレクトリ、PREFIX/share/rogue ディレクトリの
順に検索されます。
.Nm mesg_file
を指定せずに実行した場合、指定可能なファイル名をそのファイルの説明と共に
表示して終了します。
.Nm -s
オプションでは、スコアファイルを表示して終了します。
.Nm -r
オプションは、環境変数 ROGUEOPTS に指定されたセーブファイルから
ゲームを再開します。
.Nm save_file
を指定した場合には、そのファイルにセーブされたゲームを再開します。
.Pp
これより詳しいことについては、ドキュメント『日本語版ローグ・クローンに
よる『運命の洞窟』への招待』を参照してください。
.Sh 作者
.An Tim Stoehr <tim@zues.TEK.COM>: ローグ・クローン 2
.An 太田 <ohta@src.ricoh.co.jp>: 日本語版 1.3
.An 伊藤 康史 <brx@kmc.kyoto-u.ac.jp>: メッセージ分離版
.Sh 関連ファイル
.Bl -tag -width ~/rogue.scores -compact
.It Pa ~/rogue.scores
スコアファイル
.It Pa ~/rogue.screen
画面ダンプファイル
.It Pa PREFIX/share/rogue/mesg*
メッセージファイル
.It Pa PREFIX/share/doc/rogue/*
関連ドキュメント
.Sh 関連項目
日本語版ローグ・クローンによる『運命の洞窟』への招待
(PREFIX/share/doc/rogue/rogue.doc)

View File

@ -0,0 +1 @@
Japanized and message separeted version of Rogue-clone: Version II

View File

@ -0,0 +1,24 @@
This is a port of Rogue-clone: Version II, but it is enhanced to display
messages with Japanese, colored and messages are separated from program
(you can make another message version of rogue).
This port provide you 4 message files:
- Original English message [mesg_E]
(but it was broken, please recompile without -DJAPAN, sorry).
- Japanised message [mesg]
- UTMC (University of Tokyo Microcomputer Club) message [mesg_utmc]
- fj.* message [mesg_fj]
In this version, high score will be sorted to record by score only,
and you can record your own score more than one time.
You have to specify a message file to play this version of rogue like this:
% rogue_s mesg
or without argument, rogue_s will list available messages.
Welcome to the Dungeons of Doom...
- Yoshihiko
mistral@imasy.or.jp

View File

@ -0,0 +1,12 @@
bin/rogue_s
share/doc/rogue/README
share/doc/rogue/README.1st
share/doc/rogue/README.doc
share/doc/rogue/options.doc
share/doc/rogue/rogue.doc
share/rogue/mesg
share/rogue/mesg_E
share/rogue/mesg_fj
share/rogue/mesg_utmc
@dirrm share/rogue
@dirrm share/doc/rogue