デビルバスターに戻る


 
//今決めているデータと、エディタのデータ宣言

//将来的には、WEBページ所有者なら誰でもダンジョンを用意できるようにしたいです。
//もっときれいにまとめてからまた公開します。

//会社と違って、書式は適当に書いています。コンパイラも違うし。
 

///////////////////////////////////////////////////////////////
//現在のアドレスはアプレットをロードしたアドレス(#applet.getDocumentBase)
//ワープする場合はページごと開きなおしてアプレットをロードする
//#applet.getAppletContext().showDocument(new URL(u));
//
//
//アイテムID 1:ほうぎょく
//アイテムID 2:...
//...
//アイテムID 249,250,251:マグネタイト少、中、多
//アイテムID 252,253,254:マッカ少、中、多
//アイテムID 255:不正
//
//

#define MAX_FLOOR 8

//データ仕様バージョン0.1 ___ 2000/2/27 ___ S.Kitade(Kitaz)

//・エリアデータ
//
//エリアID32bit (4byte)
//
//隣接する東西南北のエリアID (4*4=16byte)
//
//スタートフロア 4bit (1byte)
//
//店2つ(店種類、アイテムID3つ、価格(x10, max655,350)3つ)(1+3+3*2)*2=20byte
//
//予備23byte
//
//計64byte
 

//・フロアデータ(*MAX_FLOOR)
//
//フロア中に8x8ブロックある
//
//・ブロックデータ
//
//-----壁、扉情報64byte-----
//東西南北の壁、扉で8Bit (1byte)
//
//
//-----ブロック種類64byte(カッコ内は補助データの意味)-----
//階段(上下1bit)
//
//メッセージ(番号4Bit)
//
//ワープ(フロア内位置4bit+4bit、
//ただし最上位ビットが1のときは下位7bitはエリア外ワープアドレスのインデックス)
//
//人物(種類4bit、メッセージ番号4bit)
//
//エレベーター(出口向き2bit)
//
//固定配置モンスター(ID8bit)
//
//落とし穴
//
//回転床(左右1bit)
//
//宝箱(ID8bit)
//
//回復の泉
//
//邪教の館
//
//武器防具の店(エリア中のID1bit)
//
// 以上、現在12種類
//
//
//-----ブロック種類の補助データ64byte-----
//補助データ8bit=1byte
//
//

//予備データ64byte
//出現モンスターなど
//(ダークゾーンのこともあるし、これくらいとっておく)

//メッセージ数(最大16個)
//メッセージ1(長さ128byte)
//メッセージ2(長さ128byte)
//・・・

//エリア外ワープアドレス数(最大8個?)
//エリア外ワープアドレス1の長さ
//エリア外ワープアドレス1(http://...)
//エリア外ワープアドレス2の長さ
//エリア外ワープアドレス2(http://...)
//・・・

//
//フロアデータ合計256 + (1 + 128*?) + (1 + 256*?) byte
//(平均すれば1kb以内に収まると思われる)
//
//

struct S_Shop { //ショップはエリア中に2つまで存在可能
 unsigned char kind; //店種類
 unsigned char item_id[3]; //アイテムID
 unsigned short value[3]; //値段
};

int eria_id = 0;
int n_eria_id[4] = {0, 0, 0, 0};
int start_floor = MAX_FLOOR - 1;
S_Shop shop[2] = {
 {0, {0, 0, 0}, {0, 0, 0}},
 {0, {0, 0, 0}, {0, 0, 0}}
};

enum EFLOORKIND {
 E_FLKIND_STAIR,
 E_FLKIND_MESSAGE,
 E_FLKIND_WARP,
 E_FLKIND_PERSON,
 E_FLKIND_ELEVATOR,
 E_FLKIND_MONSTER,
 E_FLKIND_HOLE,
 E_FLKIND_TURN,
 E_FLKIND_TREASURE,
 E_FLKIND_MP_RESTORE,
 E_FLKIND_MP_HERETIC,//邪教
 E_FLKIND_MP_SHOP,
 NUM_E_FLKIND
};

#define MAX_MESSAGE_NUM 16
#define MAX_MESSAGE     128
#define MAX_URLSTR_NUM  8
#define MAX_URLSTR      256

struct S_FloorData {
 unsigned char wall_door[8][8];
 unsigned char kind[8][8];
 unsigned char sub_data[8][8];
 unsigned char num_message;
 unsigned char message[MAX_MESSAGE_NUM][MAX_MESSAGE];
 unsigned char num_urlstr;
 unsigned char urlstr[MAX_URLSTR_NUM][MAX_URLSTR];

 //以下、エディタ専用メンバー
 unsigned char now_message_num; //使っているメッセージ数
 unsigned char now_urlstr_num; // 使っているURL数
};

S_FloorData floor_data[MAX_FLOOR]; //すべて0で初期化する