This is a sub-page of Magical Medical.
0x2200#
;
free->status = 0;
voice_no = free->voice; /* 本当なら使用中かどうか調べてきちんと */
/* オフの処理をしてから渡す */
return(free);
}
/*
#########################################################################
# #
# 使用済みボイスを返却する #
# #
#########################################################################
# #
# void ReturnUsedVoice(voice_t *used_voice) #
# #
# arg : used_voice : 返却するボイスポインタ #
# ret : なし #
#########################################################################
*/
void ReturnUsedVoice(voice_t *used_voice)
{
voice_t *next;
voice_t *prev;
short voice_no;
used_voice->status = 0;
used_voice->priority = 0;
voice_no = used_voice->voice;
if(head == used_voice) /* ボイス・リストの先頭ボイスを返却された時には */
goto label; /* リストの付け替えは発生しない */
/* 使用済みボイスをボイス・リストから外す */
if(used_voice->next == (voice_t *)NULL) /* 使用済みボイスが末尾の場合 */
{
tail = used_voice->prev;
tail->next = (voice_t *)NULL;
}
else{ /* 使用済みボイスがリストの途中に存在した場合 */
next = used_voice->next;
prev = used_voice->prev;
next->prev = used_voice->prev;
prev->next = used_voice->next;
}
if(head->voice < used_voice->voice) /* 使用済みボイスをボイス番号に従い */
{
0x4A00#
ト部 */
/****************************************************************************/
/****************************************************************************/
extern void EVENT_SP00( void ); /* あゆみ */
extern void EVENT_SP01( void ); /* たからい */
extern void EVENT_SP02( void ); /* なおこ */
extern void EVENT_SP03( void ); /* いとう */
extern void EVENT_SP04( void ); /* 雪だるま */
extern void EVENT_SP05( void ); /* 宇宙人 */
void (*EV_table[])()={
EVENT_SP00, /* あゆみ */
EVENT_SP01, /* たからい */
EVENT_SP02, // EVENT_SP02, /**/
EVENT_SP03, // EVENT_SP03, /**/
EVENT_SP04, /* 雪だるま */
EVENT_SP05, /* 宇宙人 */
};
void EventMain( void ){
(*EV_table[Doc.kan.kanja_no])(); /* 飛んで行け */
}
/****************************************************************************/
/****************************************************************************/
/* イベント会話部 */
/****************************************************************************/
/****************************************************************************/
extern short *ayumi_kaiwa[];
u_short *tottoku;
u_char *aisatu;
short char_no;
u_short kakuninn;
u_short kaiwa_ayu_oft[]={
0, /* 小脳 */
2, /* 中脳 */
4, /* 大脳 */
5, /* 口 */
6, /* 肺 */
8, /* 腎臓 */
9, /* 心臓 */
13, /* 肝臓 */
14, /* 胆嚢 */
15, /* 胃 */
17, /* 膵臓 */
18, /* 小腸 */
20, /* 大腸 */
21, /* 膀胱 */
};
void GameKaiwaMain(void){
switch(Doc.G_PAYA){ /* メイン
0x12250#
/
/394-2705962023160001@rx7.konami> <usr02057-3105961825320001@bmw535i.konami> <usr01487-0306961042500001@corrida.konami> <usr02057-0306961811380001@bmw535i.konami> <usr05543-0406961007300001@raid.konami> <usr01487-0406961216470001@corrida.konami> <USR01364.96Jun4184325@baby.cobra.konami> <usr01454-0406961924100001@pantera.konami> <usr01343-0506961322330001@grandam.konami> kayo ozawa usr01487@cobra.konami a.konami> hiroaki k)
{
evwk[0] = 0; /* ridx */
evwk[1] = 0; /* */
evwk[2] = 0; /* */
evwk[3] = 0; /* */
evwk[4] = 0; /* */
evwk[5] = 0; /* flg */
}
/*==========================================================================*/
/*--------------------------------------------------------------------------*/
/* ロード */
/* Stage_j,EnemyFlg参照 */
/*--------------------------------------------------------------------------*/
/*==========================================================================*/
static void eneLoad(void)
{
int fp;
#if HD
fp = PCopen("EGRA\\EGRA.BIN",0,0);
PClseek(fp,(int)egratbl[Stage_j*2],0);
PCread(fp,(char*)ENEMY_DAT_ADR,(int)egratbl[Stage_j*2+1]);
PCclose(fp);
#else
/* 通常雑魚&ボス */
(void)uso_cdloadS((u_long)(EGRA_CD+egratbl[Stage_j*2]),
egratbl[Stage_j*2+1],(u_long *)ENEMY_DAT_ADR);
#endif
}
/*-------------------------------------
0x32DC4#
1961002500001@volvo850.konami> Hirano,Satoshi hirano@konam@RR"
"年齢③歳 血液型B型RR"
"身長⑱④㎝ 体重⑤㎏RR"
"性格 フェミニスト EE"
};
static unsigned char mes_kanjya_9[] = {
MOJI_HEADS
"患者 武知 直子 RR"
"年齢①歳 血液型A型RR"
"身長⑱⑥㎝ 体重⑲㎏RR"
"性格 高飛車 EE"
};
static unsigned char mes_kanjya_10[] = {
MOJI_HEADS
"患者 武知 直子 RR"
"年齢①歳 血液型A型RR"
"身長⑱⑥㎝ 体重⑯㎏RR"
"性格 楽天家 EE"
};
static unsigned char mes_kanjya_11[] = {
MOJI_HEADS
"患者 伊藤 光一 RR"
"年齢
0x6A520#
<208i126d.fsf@wx3-r.konami> Re: メスト5/15号 usr00406@cobra.konami (Hideo Ueda) <usr01474-1104971541030001@khasin.konami> Hideo Ueda usr00406@cobra.konami sf@wx3-r.konami> Tomohiro Ishimoto usr馥 ・ ・ マf ・ moto!=0x4))ret=0x1e;
}
break;
}
return ret;
}
static void UTYU_deguti( u_short moto ){
short cnt,iti,loop,offset,loop_max;
u_char lon;
u_char ll[]={33,35,37,39,41};
u_char oft_ikusaki[]={
0,0,0,3, /* 小 中 大 口 */
0,0,0,2, /* 肺 腎 心 肝 */
4,0,1,0, /* 胆 胃 膵 小 */
0,0, /* 大 膀 */
};
u_char oft_motu[]={
0, 0, 0,31, /* 小 中 大 口 */
33, 0, 0,35, /* 肺 腎 心 肝 */
37, 0,39, 0, /* 胆 胃 膵 小 */
0,41, /* 大 膀 */
};
if (moto==0x20)r
0x6CB74#
o) <asami_yuichi-1504972021280001@rx7.konami> <USR02097.97Apr15204134@peter.cobra.konami> <asami_yuichi-1504972059080001@rx7.konami> <usr009Event[Doc.Motu]=Doc.next_Event[Doc.Motu];
Doc.G_PAYA=0;
G_kai_1st();
Doc.PAYA_FLG=payan_kaiwa;
}else{
GAME_OVER_VIEW( 0 );
}
}
}
}
/********************************************************************************/
/********************************************************************************/
/********************************************************************************/
/********************************************************************************/
/* ここから先に共用関数があります。 */
/* */
/* int hoko_chk( short kasa_xxyy, char hou ); 方向チェッカー */
/* char Houkou(Game_virus *MY,Game_virus *Target); 方向検索(補正あり) */
/* short next_chk(short kasa_xxyy, char hou);マス目番号取得用 */
/* void Move_naizo(Game_virus *MY,char hou); MAP移動用 */
/* void Hati_naizo(Game_virus *MY); MAP配置用 */
/* */
/*****************************************************************************
0x7C424#
01@scud.konami> Re: SS版「わくわく7」 ishida_junichi@axelay.konami (ishida_junichi) <ishida_junichi-1906971039050001@scud.konami> <nakazawa_tomikazu-1906971258230001@ensemble.konami> <5okql1$50h@tinker.konami> <nakazawa_tomikazu-2306971301110001@ensemble.konami> ishida_junichi ishida_junichi@axelay.konami okkai_soshiro hokkai_soshiro@cobra.konam
<nakazawa_tomikazu-2306971301110001@ensemble.konami> Re: SS版「わくわ
-----------------------------------------*/
/* MACRO */
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/* GLOBAL FUNCTION */
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/* GLOBAL VALUE */
/*--------------------------------------------
0xC8520#
<usr02417-0506981152530001@oatmeal.konami> <urabe_taku-0506981223120001@raid.konami> <usr01603-0506981415550001@kalki.konami> <6l80j0$l4f$1@phlox.konami> <6l84t9$mdg$1@phlox.konami> <USR0
if(mact->cnt == 0)
{
stx = mact->obj->Ply.map_x;
sty = mact->obj->Ply.map_y;
dx = (mact->obj->Ply.position_x << 7) - stx;
dy = (mact->obj->Ply.position_y << 7) - sty;
dx/=RETTIME;
dy/=RETTIME;
}
mact->obj->Ply.map_x = stx + dx*mact->cnt;
mact->obj->Ply.map_y = sty + dy*mact->cnt;
if(mact->cnt > RETTIME)
{
mact->obj->Ply.map_x = mact->obj->Ply.position_x << 7;
mact->obj->Ply.map_y = mact->obj->Ply.position_y << 7;
eneATEndPat(mact);
eneActEnd(mact);
}
0xDC9DC#
<usr02021-2008961354320001@gratte.ko---*/
/*------------------------------------*/
if(ply->wait[0] >= 6)
{
/* 死亡 */
mact->flg &= ~ECA_MASK;
mact->flg |= ECA_ACTB;
mact->func = mikaSoul;
mact->disp = EneDispGet(mact->obj);
mact->para2 = (u_long)&mact->obj->Ply; //死亡時に使用
EneActPost(mact);
return;
}
tgt = &Doc.Ply; /* ぱやーん追尾 */
if( m14Kaihuku(mact) )
{
if(edistp(ply->position_x,ply->position_y) == 1)
{
/* パヤーンに回復アイテムをぶつける */
eneATSet(mact,&Doc.Ply,ply);
mact->func = m14AtkStart;
eneATPost(mact);
return;
}
}
else if((ply->wait[0]) && mikaTgtSelItem(mact->obj,&item))
{
tgt = &item;
if(edist(ply->position_x,ply->position_y,tgt->position_x,tgt->position_y) == 1)
{
if(etkmmapchk(tgt->position_x,tgt->position_y)==0)
{
/* 距離1の場合 eneNearMoveは移動しない為 */
dir = edirsrh(ply->position_x,ply->position_y,
tgt->position_x,tgt->position_y);
ply->vec = dir; /* 方向切り替え */
mact->act &= ~EACT_DMASK;
mact->act |= dir; /* アクション方向 */
mact->func = m13WalkStart;
mact->para2 = (u_long)m13WalkEnd; /* 移動終了時処理 */
eneMVClipPost(mact); /* 移動行動ポスト */
return;
}
}
}
mact->func = m13WalkStart;
mact->para2 = (u_long)m13WalkEnd; /* 移動終了時処理 */
eneNearMove(mact,tgt);
}
/*---------------------------------------------------------*/
/* 回復判定 */
/*------------------------------------
0xDF3C4#
a.konami> <59adeh$71t@cuty.konami> tooru higuchi usr00445@ */
/*---------------------------------------------------------*/
static void m15sleep(ENEDISP *disp)
{
}
/*---------------------------------------------------------*/
/* ダメージ */
/*---------------------------------------------------------*/
static ENE_ACT *cha15damage(TEKI_MIKATA *tgt,Game_virus *me)
{
ENE_ACT *dact;
dact = eneDmgActGet(tgt,me);
dact->func = m15DmgStart;
if(&Doc.Ply == me)
{
EneActStop();
EneActPost(dact);
}
return(dact);
}
/*---------------------------------------------------------*/
/*---------------------------------------------------------*/
static void m15DmgStart(ENE_ACT *mact)
{
EPAT chg;
u_short st;
chg.index = mcha2idx(mact->obj->Ply.cha_no);
chg.patno = 10;
if(etkmptset(mact,&chg,1))
{
st = mact->obj->Ply.State;
EneDmgCtrl(mact);
mact->obj->Ply.State =st;
mact->func = m15Damage;
mact->cnt = 0;
mact->obj->Ply.Act_no = 0;
(
0xF5528#
nami.discussion.mail
$B$H%/%m%9%]%9%H$7!"
(Bfollowup-to
$B$r
(B
#
$B$=$A$i$K$7$^$9!#
(B
> In article <usr02417-0207981210540001@oatmeal.konami>,
> usr02417@pikaichi.konami (iwata,yoshihiro) wrote:
>
> >
$B%a_no == CH_MK23)
{
/* 青血球のみ足元アイテム判定 */
mact->func = (void(*))(mact->para2);
(*mact->func)(mact);
}
eneActEnd(mact);
}
}
/* アイテムの取り込 */
static void m23WalkEnd(ENE_ACT *mact)
{
short x,y;
short xxyy;
Game_virus *ply;
ply = &mact->obj->Ply;
x = (short)(mact->para1>>16)+mdir_x[mact->act & EACT_DMASK];
y = (short)(mact->para1&0xffff)+mdir_y[mact->act & EACT_DMASK];
xxyy = Doc.Mo_x_size * y + x;
if((Doc.naizou[xxyy] & 0x20) && (ply->wait[1]) &&
0x104336#
<ishida-3004971411430001@scud.konami> Re: 下級生 (Re: 複数枚タイトル) ishida,junichi@axelay.konami (ishida,junichi) <urabe_taku-2901971310250001@raid.konami> <USR01121.97Jan29152426@bacchus.cobra.konadir_x[8] = {0,1,1,1,0,-1,-1,-1 }; /* マップ方向 */
static short mdir_y[8] = {1,1,0,-1,-1,-1,0,1 }; /* マップ方向 */
extern Doctor Doc;
extern int dir2sdir(int dir);
extern long xy2sxy( short x, short y, long *sxy );
/*---------------------------------------------------------*/
/*---------------------------------------------------------*/
static void cha01func(ENE_ACT *mact);
static void cha02func(ENE_ACT *mact);
static void cha03func(ENE_ACT *mact);
static void cha01ESP(TEKI_MIKATA *obj);
static ENE_ACT *cha01damage(TEKI_MIKATA *tgt,Game_virus *me);
static void m01WalkStart(ENE_ACT *mact);
static void m01Walk(ENE_ACT *mact);
static void m01AtkChk(ENE_ACT *mact);
static void m01Attack(ENE_ACT *mact);
static void m01Humi(ENE_ACT *mact);
static void m01dispfunc(ENEDISP *disp);
static void m01AttackFail(ENE_ACT *mact);
static void m01AttackEnd(ENE_ACT *mact);
static void m01enefunc(ENE_ACT *eact);
static void m01DmgStart(ENE_ACT *dact);
static void m01Damage(ENE_ACT *dact);
/*-
0x140E00#
eguti_ON(19,6,4); /* 胃出口君ON */
/* 胃の主を弱らせる */
nusi_yowaru(9); /* 1回実行 */
kaiwa_wo_tunagu();
}
}
}
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
//胃 アイテム判定
static void EVE_06(void)
{
short ran;
ITEM it;
Key_clear();
if(Doc.G_PAYA==0)
{
/* アイテム有無の判定 */
/* 持っている栄養素の種類 */
if(Doc.Item_t_suu[1] == 0)
0x145600#
ly.Action,8-Doc.Ply.vec,0);
Doc.Ply.Action.code=0x15; /* 反転&半透明 */
}
Hati_naizo(&Doc.Ply);
MikataPUSH();
MikataSanpo(0);
window_set(&mgWin,0,0,112,80,96,32);
window_set_PRI(&mgWin,19);
window_touroku_init(&mgWin);
MAreaInit(&mgMoji,mgStr3,120,88,MOJI_16);
str2tag(mgStr4);
str2tag(mgStr5);
FadeInit( 32, 19 , 0, 0, 320, 240, 1 );
Fade(1);
Doc.G_PAYA++;
}
else if((Doc.G_PAYA ==2))
{
if(Fade(1)==1)
{
mgwork[0] = 0;
mgwork[7] = 4;
0x152C00#
I());
}
}
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
// 小腸 マクロファージ仲間になる
static u_char nakaStr2[] = {MOJI_HEADS"マクロファージが仲間になった。EE"};
static void EVE_94(void)
{
static int wait;
int i,j;
Key_clear();
if(Doc.TEZUKURI_CHK == 0)
{
window_set(&mgWin,0,0,32,16,256,32);
window_set_PRI(&mgWin,19);
window_touroku_init(&mgWin);
MAreaInit(&mgMoji,nakaStr2,40,24,MOJI_16);
MikataDeruKesu(1); /* 消滅時SEロード */
Doc.TEZUKURI_CHK++;
wait = 120;
}
else if(Doc.TEZUKURI_CHK == 1)
{
if(EneActStat(1) == 0)
{
window_set_OPEN(&mgWin);
Moji2Print(&mgMoji);
Doc.TEZUKURI_CHK++;
}
}
else if(Doc.TEZUKURI_CHK ==2)
{
wait--;
if(wait) Moji2Print(&mgMoji);
else
{
window_set_CLOSE(&mgWin);
Doc.TEZUKURI_CHK++;
}
}
else if(Doc.TEZUKURI_CHK ==3)
{
window_exit(&mgWin);
MAreaExit(
0x16E908#
Magic Palette usr00584@paro.konami (kazuyuki nakajima) <usr01074-110894172433@zero1.konami> kazuyuki nakajima usr00584@paro.konami mi> <USR00515.95Jan12180633@jenny.konami
/ <usr00584-120894094915@N\\K5Z3.BIN",
"KAIWADAT\\BIN\\K5Z4.BIN",
"KAIWADAT\\BIN\\K5Z5.BIN",
"KAIWADAT\\BIN\\K5Z6.BIN",
"KAIWADAT\\BIN\\K5Z7.BIN",
"KAIWADAT\\BIN\\K5Z8.BIN",
"KAIWADAT\\BIN\\K5Z9.BIN",
"KAIWADAT\\BIN\\K5ZA.BIN",
"KAIWADAT\\BIN\\K5ZB.BIN",
"KAIWADAT\\BIN\\K5ZC.BIN",
"KAIWADAT\\BIN\\K5ZD.BIN",
};
fp=uso_pcload(file_name_kaiwabin[(*(Motu+2)*14) + *(Motu+0)],
(char *)Kaiwa_Adr,*(Motu+1));
#else
long k_file_oft[]={
kaiwa_all_cd_oft+(0x00000000/0x800),
kaiwa_all_cd_oft+(0x0000d800/0x800),
kaiwa_all_cd_oft+(0x00017800/0x800),
kaiwa_all_cd_oft+(0x00025000/0x800),
kaiwa_all_cd_oft+(0x0002c800/0x800),
kaiwa_all_cd_oft+(0x0002f800/0x800),
};
short fileoft[6][14]={
{0x00000000/0x800,0x00001800/0x800,0x00002800/0x800,0x00003000/0x800,
0x00005000/0x800,0x00006000/0x800,0x00006800/0x800,0x00008000/0x800,
0x00008800/0x800,0x00009000/0x800,0x0000b000/0x800,0x0000b800/0x800,
0x0000c800/0x800,0x0000d000/0x800,}, /* 6/20 */
{0x00000000/0x800,0x00001000/0x800,0x00000000/0x800,0x00001800/0x800,
0x00003000/0x800,0x00005000/0x800,0x00005800/0x800,0x00006800/0x800,
0x00000000/0x800,0x00007800/0x800,0x00000000/0x800,0x00008800/0x800,
0x00000000/0x800,0x00009800/0x800,}, /* 6/20 */
{0x00000000/0x800,0x00001000/0x800,0x00000000/0x800,0x00001800/0x800,
0x00002800/0x800,0x00003800/0x800,0x00004800/0x800,0x00006000/0x800,
0x00008000/0x800,0x00009000/0x800,0x0000a800/0x800,0x0000b000/0x800,
0x00000000/0x800,0x0000c000/0x800,}, /* 6/20 */
{0x00000000/0x800,0x000