mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-10-08 22:59:54 +03:00
System1: Detect game title by CRC32
This commit is contained in:
+37
-26
@@ -167,33 +167,44 @@ AGS::AGS(NACT* parent) : nact(parent)
|
||||
// Bコマンド
|
||||
for(int i = 0; i < 10; i++) {
|
||||
// ウィンドウの初期位置はシステムによって異なる
|
||||
#if defined(_BUNKASAI)
|
||||
SET_TEXT(i, 24, 304, 616, 384, false);
|
||||
SET_MENU(i, 440, 18, 620, 178, true);
|
||||
#elif defined(_CRESCENT)
|
||||
SET_TEXT(i, 24, 288, 616, 378, false);
|
||||
// 本来は横メニュー
|
||||
SET_MENU(i, 464, 50, 623, 240, true);
|
||||
#elif defined(_DPS)
|
||||
SET_TEXT(i, 48, 288, 594, 393, false);
|
||||
//SET_MENU(i, 48, 288, 584, 393, false);
|
||||
SET_MENU(i, 48, 288, 594, 393, false);
|
||||
#elif defined(_FUKEI)
|
||||
SET_TEXT(i, 44, 282, 593, 396, false);
|
||||
SET_MENU(i, 460, 14, 635, 214, false);
|
||||
#elif defined(_INTRUDER)
|
||||
SET_TEXT(i, 8, 280, 629, 393, false);
|
||||
SET_MENU(i, 448, 136, 623, 340, true);
|
||||
#elif defined(_TENGU)
|
||||
SET_TEXT(i, 44, 282, 593, 396, false);
|
||||
SET_MENU(i, 452, 14, 627, 214, false);
|
||||
#elif defined(_VAMPIRE)
|
||||
SET_TEXT(i, 8, 255, 615, 383, false);
|
||||
SET_MENU(i, 448, 11, 615, 224, false);
|
||||
#else
|
||||
SET_TEXT(i, 8, 311, 623, 391, true);
|
||||
SET_MENU(i, 464, 80, 623, 240, true);
|
||||
switch (nact->crc32) {
|
||||
#if defined(_SYSTEM1)
|
||||
case CRC32_BUNKASAI:
|
||||
SET_TEXT(i, 24, 304, 616, 384, false);
|
||||
SET_MENU(i, 440, 18, 620, 178, true);
|
||||
break;
|
||||
case CRC32_CRESCENT:
|
||||
SET_TEXT(i, 24, 288, 616, 378, false);
|
||||
// 本来は横メニュー
|
||||
SET_MENU(i, 464, 50, 623, 240, true);
|
||||
break;
|
||||
case CRC32_DPS:
|
||||
SET_TEXT(i, 48, 288, 594, 393, false);
|
||||
//SET_MENU(i, 48, 288, 584, 393, false);
|
||||
SET_MENU(i, 48, 288, 594, 393, false);
|
||||
break;
|
||||
case CRC32_FUKEI:
|
||||
SET_TEXT(i, 44, 282, 593, 396, false);
|
||||
SET_MENU(i, 460, 14, 635, 214, false);
|
||||
break;
|
||||
case CRC32_INTRUDER:
|
||||
SET_TEXT(i, 8, 280, 629, 393, false);
|
||||
SET_MENU(i, 448, 136, 623, 340, true);
|
||||
break;
|
||||
case CRC32_TENGU:
|
||||
SET_TEXT(i, 44, 282, 593, 396, false);
|
||||
SET_MENU(i, 452, 14, 627, 214, false);
|
||||
break;
|
||||
case CRC32_VAMPIRE:
|
||||
SET_TEXT(i, 8, 255, 615, 383, false);
|
||||
SET_MENU(i, 448, 11, 615, 224, false);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
SET_TEXT(i, 8, 311, 623, 391, true);
|
||||
SET_MENU(i, 464, 80, 623, 240, true);
|
||||
break;
|
||||
}
|
||||
text_w[i].push = false;
|
||||
text_w[i].screen = NULL;
|
||||
text_w[i].window = NULL;
|
||||
|
||||
+15
-10
@@ -31,16 +31,21 @@ void AGS::load_cg(int page, int transparent)
|
||||
uint8* data = dri->load(acg, page, &size);
|
||||
if(data) {
|
||||
#if defined(_SYSTEM1)
|
||||
#if defined(_BUNKASAI)
|
||||
load_vsp(data, page, transparent);
|
||||
#elif defined(_INTRUDER)
|
||||
// load_gm3(data, page, transparent);
|
||||
load_vsp(data, page, transparent); // 暫定
|
||||
#elif defined(_VAMPIRE)
|
||||
load_vsp2l(data, page, transparent);
|
||||
#else
|
||||
load_gl3(data, page, transparent);
|
||||
#endif
|
||||
switch (nact->crc32) {
|
||||
case CRC32_BUNKASAI:
|
||||
load_vsp(data, page, transparent);
|
||||
break;
|
||||
case CRC32_INTRUDER:
|
||||
// load_gm3(data, page, transparent);
|
||||
load_vsp(data, page, transparent); // 暫定
|
||||
break;
|
||||
case CRC32_VAMPIRE:
|
||||
load_vsp2l(data, page, transparent);
|
||||
break;
|
||||
default:
|
||||
load_gl3(data, page, transparent);
|
||||
break;
|
||||
}
|
||||
#elif defined(_SYSTEM2)
|
||||
if(nact->crc32 == CRC32_AYUMI_PROTO) {
|
||||
// あゆみちゃん物語 PROTO
|
||||
|
||||
@@ -10,6 +10,14 @@
|
||||
// ADISK.DATの先頭256bytes
|
||||
#if defined(_SYSTEM1)
|
||||
|
||||
#define CRC32_CRESCENT 0x42351f2c // クレセントムーンがぁる
|
||||
#define CRC32_DPS 0x69ea4865 // D.P.S. - Dream Program System
|
||||
#define CRC32_FUKEI 0x026de326 // 婦警さんVX (ALICEの館3 UNITBASE/Y_SYUREN.LZH)
|
||||
#define CRC32_INTRUDER 0xa7520fb2 // Intruder -桜屋敷の探索-
|
||||
#define CRC32_TENGU 0xc942ff58 // あぶないてんぐ伝説
|
||||
#define CRC32_VAMPIRE 0x957bcfbf // Little Vampire
|
||||
#define CRC32_BUNKASAI 0 // あぶない文化祭前夜? (未確認)
|
||||
|
||||
#elif defined(_SYSTEM2)
|
||||
|
||||
#define CRC32_AYUMI_PROTO 0x4e2f5678 // あゆみちゃん物語 PROTO
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include "mako.h"
|
||||
#include "dri.h"
|
||||
#include "crc32.h"
|
||||
|
||||
#define next_mml(p) mml[p].data[mml[p].addr++]
|
||||
|
||||
@@ -197,11 +198,12 @@ void MAKO::play_midi()
|
||||
play[i].pan = next_mml(i);
|
||||
send_3bytes(0xb0 + play[i].channel, 0x0a, play[i].pan);
|
||||
}
|
||||
#if !defined(_DPS)
|
||||
else if(d0 == 0xec) {
|
||||
#ifdef _SYSTEM1
|
||||
if (nact->crc32 != CRC32_DPS)
|
||||
#endif
|
||||
mute_flag = true;
|
||||
}
|
||||
#endif
|
||||
else if(d0 == 0xf5) {
|
||||
int n = next_mml(i);
|
||||
if(n != play[i].timbre) {
|
||||
|
||||
+23
-15
@@ -9,6 +9,7 @@
|
||||
#include "mako.h"
|
||||
#include "dri.h"
|
||||
#include "../fileio.h"
|
||||
#include "crc32.h"
|
||||
|
||||
// 初期化
|
||||
|
||||
@@ -87,18 +88,25 @@ NACT::NACT()
|
||||
pcm_index = 0;
|
||||
memset(pcm, 0, sizeof(pcm));
|
||||
|
||||
#ifdef _SYSTEM1
|
||||
// SYETEM1 初期化
|
||||
#if defined(_DPS)
|
||||
text_refresh = false;
|
||||
_tcscpy_s(tvar[0], 22, _T("カスタム"));
|
||||
_tcscpy_s(tvar[1], 22, _T("リーナス"));
|
||||
_tcscpy_s(tvar[2], 22, _T("かつみ"));
|
||||
_tcscpy_s(tvar[3], 22, _T("由美子"));
|
||||
_tcscpy_s(tvar[4], 22, _T("いつみ"));
|
||||
_tcscpy_s(tvar[5], 22, _T("ひとみ"));
|
||||
_tcscpy_s(tvar[6], 22, _T("真理子"));
|
||||
#elif defined(_INTRUDER)
|
||||
paint_x = paint_y = map_page = 0;
|
||||
menu_max = 6;
|
||||
switch (crc32) {
|
||||
case CRC32_DPS:
|
||||
text_refresh = false;
|
||||
_tcscpy_s(tvar[0], 22, _T("カスタム"));
|
||||
_tcscpy_s(tvar[1], 22, _T("リーナス"));
|
||||
_tcscpy_s(tvar[2], 22, _T("かつみ"));
|
||||
_tcscpy_s(tvar[3], 22, _T("由美子"));
|
||||
_tcscpy_s(tvar[4], 22, _T("いつみ"));
|
||||
_tcscpy_s(tvar[5], 22, _T("ひとみ"));
|
||||
_tcscpy_s(tvar[6], 22, _T("真理子"));
|
||||
break;
|
||||
case CRC32_INTRUDER:
|
||||
menu_max = 11;
|
||||
paint_x = paint_y = map_page = 0;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
// 各種クラス生成
|
||||
@@ -302,8 +310,8 @@ void NACT::execute()
|
||||
string[0] = cmd;
|
||||
string[1] = '\0';
|
||||
ags->draw_text(string);
|
||||
#if defined(_DPS)
|
||||
if(!ags->draw_menu) {
|
||||
#if defined(_SYSTEM1)
|
||||
if(crc32 == CRC32_DPS && !ags->draw_menu) {
|
||||
text_refresh = false;
|
||||
}
|
||||
#endif
|
||||
@@ -335,8 +343,8 @@ void NACT::execute()
|
||||
string[1] = getd();
|
||||
string[2] = '\0';
|
||||
ags->draw_text(string);
|
||||
#if defined(_DPS)
|
||||
if(!ags->draw_menu) {
|
||||
#if defined(_SYSTEM1)
|
||||
if(crc32 == CRC32_DPS && !ags->draw_menu) {
|
||||
text_refresh = false;
|
||||
}
|
||||
#endif
|
||||
|
||||
+7
-4
@@ -163,13 +163,16 @@ private:
|
||||
|
||||
#if defined(_SYSTEM1)
|
||||
void opening();
|
||||
#if defined(_DPS)
|
||||
|
||||
int menu_max; // メニューの改ページ
|
||||
|
||||
// DPS
|
||||
bool text_refresh;
|
||||
#elif defined(_INTRUDER)
|
||||
int paint_x; // Intruder Zコマンド
|
||||
|
||||
// Intruder Zコマンド
|
||||
int paint_x;
|
||||
int paint_y;
|
||||
int map_page;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
bool column; // 座標モード
|
||||
|
||||
+24
-25
@@ -64,9 +64,7 @@ uint32 NACT::calc_crc32()
|
||||
#endif
|
||||
delete fio;
|
||||
#if 0
|
||||
FILE* fp = fopen("crc32.txt", "w");
|
||||
fprintf(fp, "%x\n", crc);
|
||||
fclose(fp);
|
||||
printf("CRC: %x\n", crc);
|
||||
#endif
|
||||
return crc;
|
||||
}
|
||||
@@ -75,28 +73,29 @@ bool NACT::get_title(_TCHAR title[], int length)
|
||||
{
|
||||
#if defined(_SYSTEM1)
|
||||
|
||||
#if defined(_CRESCENT)
|
||||
_tcscpy_s(title, length, _T("クレセントムーンがぁる"));
|
||||
return true;
|
||||
#elif defined(_DPS)
|
||||
_tcscpy_s(title, length, _T("D.P.S - Dream Program System"));
|
||||
return true;
|
||||
#elif defined(_FUKEI)
|
||||
_tcscpy_s(title, length, _T("婦警さんVX"));
|
||||
return true;
|
||||
#elif defined(_INTRUDER)
|
||||
_tcscpy_s(title, length, _T("Intruder -桜屋敷の探索-"));
|
||||
return true;
|
||||
#elif defined(_TENGU)
|
||||
_tcscpy_s(title, length, _T("あぶないてんぐ伝説"));
|
||||
return true;
|
||||
#elif defined(_VAMPIRE)
|
||||
_tcscpy_s(title, length, _T("Little Vampire"));
|
||||
return true;
|
||||
#else
|
||||
title[0] = _T('\0');
|
||||
return false;
|
||||
#endif
|
||||
switch(crc32) {
|
||||
case CRC32_CRESCENT:
|
||||
_tcscpy_s(title, length, _T("クレセントムーンがぁる"));
|
||||
return true;
|
||||
case CRC32_DPS:
|
||||
_tcscpy_s(title, length, _T("D.P.S - Dream Program System"));
|
||||
return true;
|
||||
case CRC32_FUKEI:
|
||||
_tcscpy_s(title, length, _T("婦警さんVX"));
|
||||
return true;
|
||||
case CRC32_INTRUDER:
|
||||
_tcscpy_s(title, length, _T("Intruder -桜屋敷の探索-"));
|
||||
return true;
|
||||
case CRC32_TENGU:
|
||||
_tcscpy_s(title, length, _T("あぶないてんぐ伝説"));
|
||||
return true;
|
||||
case CRC32_VAMPIRE:
|
||||
_tcscpy_s(title, length, _T("Little Vampire"));
|
||||
return true;
|
||||
default:
|
||||
title[0] = _T('\0');
|
||||
return false;
|
||||
}
|
||||
|
||||
#elif defined(_SYSTEM2)
|
||||
|
||||
|
||||
+134
-129
@@ -17,13 +17,6 @@
|
||||
#include "crc32.h"
|
||||
#include "../fileio.h"
|
||||
|
||||
// メニューの改ページ
|
||||
#if defined(_INTRUDER)
|
||||
#define MENU_MAX 6
|
||||
#else
|
||||
#define MENU_MAX 11
|
||||
#endif
|
||||
|
||||
#define WAIT(tm) \
|
||||
{ \
|
||||
Uint32 dwTime = SDL_GetTicks() + (tm); \
|
||||
@@ -69,23 +62,27 @@
|
||||
|
||||
void NACT::opening()
|
||||
{
|
||||
#if defined(_CRESCENT)
|
||||
mako->play_music(2);
|
||||
ags->load_cg(1, -1);
|
||||
WAIT(3000);
|
||||
ags->load_cg(81, -1);
|
||||
#elif defined(_INTRUDER)
|
||||
ags->load_cg(77, -1);
|
||||
WAIT(1667)
|
||||
ags->load_cg(74, -1);
|
||||
#elif defined(_VAMPIRE)
|
||||
mako->play_music(4);
|
||||
ags->load_cg(3, -1);
|
||||
WAIT(2000)
|
||||
ags->load_cg(38, -1);
|
||||
cmd_a();
|
||||
ags->draw_box(0);
|
||||
#endif
|
||||
switch (crc32) {
|
||||
case CRC32_CRESCENT:
|
||||
mako->play_music(2);
|
||||
ags->load_cg(1, -1);
|
||||
WAIT(3000);
|
||||
ags->load_cg(81, -1);
|
||||
break;
|
||||
case CRC32_INTRUDER:
|
||||
ags->load_cg(77, -1);
|
||||
WAIT(1667);
|
||||
ags->load_cg(74, -1);
|
||||
break;
|
||||
case CRC32_VAMPIRE:
|
||||
mako->play_music(4);
|
||||
ags->load_cg(3, -1);
|
||||
WAIT(2000);
|
||||
ags->load_cg(38, -1);
|
||||
cmd_a();
|
||||
ags->draw_box(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void NACT::cmd_calc()
|
||||
@@ -327,11 +324,9 @@ void NACT::cmd_open_menu()
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(_DPS)
|
||||
if(!text_refresh) {
|
||||
if(crc32 == CRC32_DPS && !text_refresh) {
|
||||
cmd_a();
|
||||
}
|
||||
#endif
|
||||
|
||||
// クリック中の間は待機
|
||||
for(;;) {
|
||||
@@ -497,7 +492,7 @@ top:
|
||||
ags->menu_dest_y = 0;
|
||||
ags->draw_menu = true;
|
||||
|
||||
if(cnt <= MENU_MAX) {
|
||||
if(cnt <= menu_max) {
|
||||
// 1ページ内に全て表示できる
|
||||
for(int i = 0; i < MAX_VERB; i++) {
|
||||
if(chk[i]) {
|
||||
@@ -519,7 +514,7 @@ top2:
|
||||
ags->menu_dest_y += ags->menu_font_size + 2;
|
||||
}
|
||||
page = i + 1;
|
||||
if(index == MENU_MAX - 1) {
|
||||
if(index == menu_max - 1) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -672,7 +667,7 @@ top:
|
||||
ags->menu_dest_y = 0;
|
||||
ags->draw_menu = true;
|
||||
|
||||
if(cnt <= MENU_MAX - 1) {
|
||||
if(cnt <= menu_max - 1) {
|
||||
// 1ページ内に全て表示できる
|
||||
for(int i = 0; i < MAX_OBJ; i++) {
|
||||
if(chk[i]) {
|
||||
@@ -700,7 +695,7 @@ top2:
|
||||
ags->menu_dest_y += ags->menu_font_size + 2;
|
||||
}
|
||||
page = i + 1;
|
||||
if(index == MENU_MAX - 2) {
|
||||
if(index == menu_max - 2) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -861,9 +856,8 @@ void NACT::cmd_a()
|
||||
// ウィンドウ更新
|
||||
ags->clear_text_window(text_window, true);
|
||||
|
||||
#if defined(_DPS)
|
||||
text_refresh = true;
|
||||
#endif
|
||||
if (crc32 == CRC32_DPS)
|
||||
text_refresh = true;
|
||||
}
|
||||
|
||||
void NACT::cmd_b()
|
||||
@@ -902,20 +896,20 @@ void NACT::cmd_g()
|
||||
output_console(log);
|
||||
#endif
|
||||
|
||||
#if defined(_INTRUDER)
|
||||
page = (page == 97) ? 96 : (page == 98) ? 97 : page;
|
||||
#endif
|
||||
if (crc32 == CRC32_INTRUDER) {
|
||||
page = (page == 97) ? 96 : (page == 98) ? 97 : page;
|
||||
}
|
||||
|
||||
ags->load_cg(page, -1);
|
||||
|
||||
#if defined(_INTRUDER)
|
||||
if(page == 94) {
|
||||
WAIT(400)
|
||||
if (crc32 == CRC32_INTRUDER) {
|
||||
if(page == 94) {
|
||||
WAIT(400);
|
||||
}
|
||||
if(page == 81 || page == 82) {
|
||||
map_page = page;
|
||||
}
|
||||
}
|
||||
if(page == 81 || page == 82) {
|
||||
map_page = page;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void NACT::cmd_h()
|
||||
@@ -1222,15 +1216,15 @@ void NACT::cmd_u()
|
||||
output_console(log);
|
||||
#endif
|
||||
|
||||
#if defined(_INTRUDER)
|
||||
ags->load_cg(page, 11);
|
||||
if (crc32 == CRC32_INTRUDER) {
|
||||
ags->load_cg(page, 11);
|
||||
|
||||
if(page == 5) {
|
||||
WAIT(400)
|
||||
if(page == 5) {
|
||||
WAIT(400);
|
||||
}
|
||||
} else {
|
||||
ags->load_cg(page, transparent);
|
||||
}
|
||||
#else
|
||||
ags->load_cg(page, transparent);
|
||||
#endif
|
||||
}
|
||||
|
||||
void NACT::cmd_v()
|
||||
@@ -1269,8 +1263,13 @@ void NACT::cmd_y()
|
||||
output_console(log);
|
||||
#endif
|
||||
|
||||
#if defined(_BUNKASAI) || defined(_CRESCENT) || defined(_DPS) || defined(_FUKEI) || defined(_TENGU)
|
||||
switch(cmd) {
|
||||
switch (crc32) {
|
||||
case CRC32_BUNKASAI:
|
||||
case CRC32_CRESCENT:
|
||||
case CRC32_DPS:
|
||||
case CRC32_FUKEI:
|
||||
case CRC32_TENGU:
|
||||
switch(cmd) {
|
||||
case 0:
|
||||
ags->clear_text_window(text_window, true);
|
||||
break;
|
||||
@@ -1298,14 +1297,19 @@ void NACT::cmd_y()
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
#if defined(_CRESCENT)
|
||||
for(int i = 39; i <= 48; i++) {
|
||||
#elif defined(_DPS)
|
||||
for(int i = 0; i <= 20; i++) {
|
||||
#else
|
||||
for(int i = 0; i <= 16; i++) {
|
||||
#endif
|
||||
var[i] = 0;
|
||||
switch (crc32) {
|
||||
case CRC32_CRESCENT:
|
||||
for(int i = 39; i <= 48; i++)
|
||||
var[i] = 0;
|
||||
break;
|
||||
case CRC32_DPS:
|
||||
for(int i = 0; i <= 20; i++)
|
||||
var[i] = 0;
|
||||
break;
|
||||
default:
|
||||
for(int i = 0; i <= 16; i++)
|
||||
var[i] = 0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
@@ -1314,16 +1318,13 @@ void NACT::cmd_y()
|
||||
case 4:
|
||||
RND = (param == 0 || param == 1) ? 0 : random(param);
|
||||
break;
|
||||
#if defined(_DPS)
|
||||
case 7:
|
||||
if(param == 1) {
|
||||
if(crc32 == CRC32_DPS && param == 1) {
|
||||
ags->box_fill(0, 40, 8, 598, 270, 0);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
#if defined(_TENGU)
|
||||
case 130:
|
||||
{
|
||||
if (crc32 == CRC32_TENGU) {
|
||||
WAIT(2000)
|
||||
ags->load_cg(180, -1);
|
||||
|
||||
@@ -1350,7 +1351,6 @@ void NACT::cmd_y()
|
||||
ags->draw_box(param);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
case 253:
|
||||
post_quit = false;
|
||||
fatal_error = true;
|
||||
@@ -1359,16 +1359,16 @@ void NACT::cmd_y()
|
||||
RND = 0;
|
||||
break;
|
||||
case 255:
|
||||
#if defined(_DPS)
|
||||
post_quit = false;
|
||||
#else
|
||||
post_quit = true;
|
||||
#endif
|
||||
if (crc32 == CRC32_DPS)
|
||||
post_quit = false;
|
||||
else
|
||||
post_quit = true;
|
||||
fatal_error = true;
|
||||
break;
|
||||
}
|
||||
#elif defined(_INTRUDER)
|
||||
switch(cmd) {
|
||||
}
|
||||
break;
|
||||
case CRC32_INTRUDER:
|
||||
switch(cmd) {
|
||||
case 0:
|
||||
ags->clear_text_window(text_window, true);
|
||||
break;
|
||||
@@ -1412,16 +1412,17 @@ void NACT::cmd_y()
|
||||
post_quit = true;
|
||||
fatal_error = true;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void NACT::cmd_z()
|
||||
{
|
||||
#if defined(_CRESCENT)
|
||||
cmd_y();
|
||||
return;
|
||||
#endif
|
||||
if (crc32 == CRC32_CRESCENT) {
|
||||
cmd_y();
|
||||
return;
|
||||
}
|
||||
int cmd = cali();
|
||||
int param = cali();
|
||||
|
||||
@@ -1431,60 +1432,64 @@ void NACT::cmd_z()
|
||||
output_console(log);
|
||||
#endif
|
||||
|
||||
#if defined(_INTRUDER)
|
||||
if(cmd == 1 && 1 <= param && param <= 4) {
|
||||
char* buf[4] = {"<", "∧", ">", "∨"};
|
||||
switch (crc32) {
|
||||
case CRC32_INTRUDER:
|
||||
if(cmd == 1 && 1 <= param && param <= 4) {
|
||||
char* buf[4] = {"<", "∧", ">", "∨"};
|
||||
|
||||
// 矢印を消去する
|
||||
if(map_page) {
|
||||
ags->load_cg(map_page, -1);
|
||||
// 矢印を消去する
|
||||
if(map_page) {
|
||||
ags->load_cg(map_page, -1);
|
||||
if(paint_x) {
|
||||
ags->paint(paint_x, paint_y * 2, 2 + 16);
|
||||
}
|
||||
}
|
||||
|
||||
// 矢印を表示する
|
||||
int x = ags->text_dest_x;
|
||||
int y = ags->text_dest_y;
|
||||
int color = ags->text_font_color;
|
||||
ags->text_font_size = 24;
|
||||
ags->text_font_color = 16;
|
||||
|
||||
ags->text_dest_x = 456;
|
||||
ags->text_dest_y = 103;
|
||||
ags->draw_text(buf[param - 1]);
|
||||
|
||||
ags->text_dest_x = x;
|
||||
ags->text_dest_y = y;
|
||||
ags->text_font_size = 16;
|
||||
ags->text_font_color = color;
|
||||
} else if(cmd == 2) {
|
||||
ags->load_cg(74, -1);
|
||||
ags->load_cg(81, -1);
|
||||
map_page = 81;
|
||||
} else if(cmd == 3) {
|
||||
RND = (param == 0 || param == 1) ? 0 : random(param);
|
||||
} else if(460 <= cmd && cmd <= 625 && 20 <= param && param <= 55) {
|
||||
if(paint_x) {
|
||||
ags->paint(paint_x, paint_y * 2, 2 + 16);
|
||||
ags->paint(paint_x, paint_y * 2, 5 + 16);
|
||||
}
|
||||
ags->paint(cmd, param * 2, 2 + 16);
|
||||
paint_x = cmd;
|
||||
paint_y = param;
|
||||
} else {
|
||||
paint_x = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case CRC32_TENGU:
|
||||
if(cmd == 10) {
|
||||
// nop
|
||||
} else if(cmd == 20) {
|
||||
if(param == 20) {
|
||||
ags->gcopy(8, 8, 46, 144, 2);
|
||||
} else if(param == 21) {
|
||||
ags->gcopy(8, 8, 46, 144, 3);
|
||||
}
|
||||
}
|
||||
|
||||
// 矢印を表示する
|
||||
int x = ags->text_dest_x;
|
||||
int y = ags->text_dest_y;
|
||||
int color = ags->text_font_color;
|
||||
ags->text_font_size = 24;
|
||||
ags->text_font_color = 16;
|
||||
|
||||
ags->text_dest_x = 456;
|
||||
ags->text_dest_y = 103;
|
||||
ags->draw_text(buf[param - 1]);
|
||||
|
||||
ags->text_dest_x = x;
|
||||
ags->text_dest_y = y;
|
||||
ags->text_font_size = 16;
|
||||
ags->text_font_color = color;
|
||||
} else if(cmd == 2) {
|
||||
ags->load_cg(74, -1);
|
||||
ags->load_cg(81, -1);
|
||||
map_page = 81;
|
||||
} else if(cmd == 3) {
|
||||
RND = (param == 0 || param == 1) ? 0 : random(param);
|
||||
} else if(460 <= cmd && cmd <= 625 && 20 <= param && param <= 55) {
|
||||
if(paint_x) {
|
||||
ags->paint(paint_x, paint_y * 2, 5 + 16);
|
||||
}
|
||||
ags->paint(cmd, param * 2, 2 + 16);
|
||||
paint_x = cmd;
|
||||
paint_y = param;
|
||||
} else {
|
||||
paint_x = 0;
|
||||
break;
|
||||
}
|
||||
#elif defined(_TENGU)
|
||||
if(cmd == 10) {
|
||||
// nop
|
||||
} else if(cmd == 20) {
|
||||
if(param == 20) {
|
||||
ags->gcopy(8, 8, 46, 144, 2);
|
||||
} else if(param == 21) {
|
||||
ags->gcopy(8, 8, 46, 144, 3);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1343,15 +1343,7 @@ void NACT::cmd_u()
|
||||
output_console(log);
|
||||
#endif
|
||||
|
||||
#if defined(_INTRUDER)
|
||||
ags->load_cg(page, 11);
|
||||
|
||||
if(page == 5) {
|
||||
WAIT(400)
|
||||
}
|
||||
#else
|
||||
ags->load_cg(page, transparent);
|
||||
#endif
|
||||
}
|
||||
|
||||
void NACT::cmd_v()
|
||||
|
||||
Reference in New Issue
Block a user