the cutting room mirror

MOTU.BIN

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