/*

    kamome.txt                                             

    Metal Gear Solid 2 - SONS OF LIBERTY-                

    ͥ                                   

    2001/10/24 Masafumi Okuta                            

    $Id: kamome.txt,v 1.1.1.3 2002/11/19 11:48:12 Yoshizawa1 Exp $                                                 

*/



ᥭѤΥɷ



ϴԤʤ_KAMOME_MNG¤ΤñΤΥǡȤʤ_KAMOME¤Τ¸ߤ

_KAMOMEϥޥ͡ΥꥹȤɲäư



⡼

Ͽ¿Τǥ⡼η׻ʤ٤˥˥⡼ǡŸƤ򻲾ȤäƤ롣

okuta/conv/memmot.c, okuta/conv/memmot.h Υ⡼󥷥ƥ



å

åϥޥ͡Ф졢Ǽ륫ꤷѤΥåХåե

ǡꤹ롣ƥϼʬʳǤΥåХåեƤ׹ͤؤꤹ

ƥϥå1ե졼1Ĥ뤳ȤǤʤ

ͥι⤤å()ʳϸ夫񤭤ޤ



㡧ꤵ줿ꥢΤ򣵱Φ

            

ޥ͡ˤƥåʻꥨꥢϡɤ

            

ޥ͡㤬Υå

            

åХåե˥ǡ

            

Φ륫ʥåμˤ

(٤ƤΥ椫ΥꥢΣʬӽФ)

            

ġΥ᤬äǡΦؤΥ롼ؤ򤹤





ϸġԥꥢ(Хܥå)ˣ̲ݥȤꤷ

ΥݥȤ˲ʤּͳԾ֤Ūΰ֤˰ư֤





ήϰʲ̤



ޥ͡

        

ޥ͡

        

Ŀʬ

        

ޥ͡ư 

                                       

(վ󹹿Ԥʤ)       

                                       

å                     

                                       

׹                               

                                       

ư                               

                                        

                             

                                       

                           

                                       

ʤ᤬⤵겼ˤää 

                                       

Ǥ 

        

ޥ͡˴



kamome.h

    Ϣإå



kmmng.c 

    ޥ͡



        KMM_InsertKamome( KAMOME_MNG* kmmng,    // ޥ͡

                          KAMOME*     pKamome); // ꥹȤ˲ä뤫

            ꥹȤ˥ɲ

        KMM_RemoveKamome( KAMOME_MNG* kmmng,    // ޥ͡

                          KAMOME*     pKamome); // ꥹȤ鳰

            ꥹȤ饫򳰤

        KMMNG_CheckKamomeIn( FVECTOR* pvecCenter,  // 濴

                             int      nRadius);    // Ⱦ

            ᤬ˤ뤫å



        KMMNG_CheckLandKamomeInBox( FVECTOR* pvecCenter, // 濴

                                    float    fBoxX,      // åX

                                    float    fBoxY,      // åY

                                    float    fBoxZ);     // åZ

            ᤬ꥨꥢˤ뤫å



        KMM_SetAllLandOperationKMM_SetConcomitantEndOpperation( KAMOME_MNG* kmmng, 

                                                                  GV_MSG* msg, 

                                                                  int code,

                                                                  int nMess);

            ޥ͡㰸Υå

            Ŭ륫ȥǡХåե˥ס뤹

        

        KMMNG_RecieveMessage( KAMOME_MNG* kmmng);

            å



        KMMNG_ActControl( KAMOME_MNG* kmmng);

            ޥ͡Υȥ륷ƥι



        KMMNG_ActDanna( KAMOME_MNG* kmmng);

            ʵ



        KMMNG_ActTarget( KAMOME_MNG* kmmng);

            åȹ



        KMMNG_ActSound( KAMOME_MNG* kmmng);

            



        KMM_ExecKamome( KAMOME_MNG* kmmng);

            ưؿ



        KMMNG_Act( KAMOME_MNG* kmmng);

            ޥ͡ưؿ



        KMMNG_Die( KAMOME_MNG* kmmng);

            ޥ͡˴ؿ



        KMM_GetGCLData( KAMOME_MNG* kmmng );

            GCLΥǡ



        KMMNG_GetResources( KAMOME_MNG* kmmng, int name, int where );

            ؿ



        NewKamomeManager( int name, int where );

            ޥ͡



        NewCmdKamomeInvisible( void );

            ʥꥪcommandؿɽ



        NewCmdDeadKamomeInvisible( void );

            ʥꥪcommandؿɽ



        NewCmdKamomeVisible( void );

            ʥꥪcommandؿɽ



        GetConcKamomeNum( void );

            տ路Ƥ륫ο



kamome.def 

    Ϣؿ

        

kmtest.c 

    



        KMM_SetLodMode( KAMOME* kamome, int mode);

            LODå



        KMM_ActControl( KAMOME* kamome );

            



        KMM_ActSystem( KAMOME* kamome );

            ƥ



        KMM_Routine( KAMOME* kamome );

            ׹͡ưȤ



        Act( KAMOME* kamome );

            ưؿ



        Die( KAMOME* kamome );

            ˴ؿ



        KMM_InitObject( KAMOME* kamome, int modelname ); 

            ǥ



        KMM_InitMotion( KAMOME* kamome, int motname);

            ⡼ 



        KMM_InitPose( KAMOME*  kamome,     // 

                      FVECTOR* pvecPos,    // 

                      int      nDirY,      // 

                      int      nInitMar,   // ѥ⡼

                      int      nInitMot);  // ⡼ֹ

            



        KMM_InitTarget( KAMOME* kamome);

            åȽ



        KMM_InitHeadMark( KAMOME* kamome );

            إåɥޡ



        KMM_CallHeadMark( KAMOME* kamome, int mode );

            إåɥޡƽ



        KMM_EraseHeadMark( KAMOME* kamome );

            إåɥޡõ



        InitWork( KAMOME*  kamome;

                  int      name;

                  int      where;

                  FVECTOR* pvec;

                  int      nYRot;

                  int      nInitMot;

                  int      nInitThink;

                  int      nNumber);

            ν



        GetResource2 ̤



        GetResource( KAMOME* kamome,

                     int     name,

                     int     where);

            ؿ



        NewKamomeTest( int name, int where );

            



        NewKamomeTestProg ̤

kmmess.c 

    å



        KMM_MessageLandLineKMM_MessageConcomitantEnd( KAMOME* kamome, 

                                                        int*    nMsg);

            åȿǤ٤ؿ 



        KMM_SettingMessage( KAMOME* kamome, int code, int* pmsg);

            åμؿƤʬ



        KMM_RecieveMessage( KAMOME* kamome);

            ̤

            ̤



        KMM_PickAttackMessage( KAMOME* kamome);

            եåȥޥ狼ᵺΤĤĤѤΥå



kmsend.c 

    ᤫå



        KMMNG_SendMessageNumAttackPlayer( KAMOME_MNG* kmmng );

            ץ쥤䡼åʬ

        

kmact.c 

    ưؿ

       

        Get_EvadeWallDir( KAMOME* kamome);

            



        KMM_SetNeedl( KAMOME* kamome, FVECTOR *pos, int model );

            ǥĤ

        

        KMM_ClearNeedl( OBJECT *body );

            ǥ򳰤

        

        KMM_TargetCallback( TARGET* off, TARGET* def, void* pvKamome);

            ᡼Хåؿ

        

        KMM_Incline( KAMOME* kamome );

            Τη׻



        KMM_GetMotCtrl( KAMOME* kamome);

            ⡼󥳥ȥ;



        KMM_GetMotPlayRate( KAMOME* kamome); 

            ⡼



        KMM_CheckObject_IsEnd( MEMMOT_CTRL* mmt_ctrl, int nLayer);

            ⡼äɤ



        KMM_SetActMotionEx( KAMOME* kamome, int n_layer, int mot, int start, u_long mask, int interp, float speed );

            ⡼ؤ

        

        KMM_SetActMotion( KAMOME* kamome, int n_layer, int mot );

            ⡼ؤ

        

        KMM_ActStandStillKMM_ActDead( KAMOME* kamome, int time);

            ưؿ



        KamomeCheckPad( KAMOME* kamome );

            ưؿ



        KMM_InitAction( KAMOME* kamome, int nInitThink );

            ư



        KMM_CheckDamage( KAMOME* kamome );

            ᡼Ƚ



        KMM_CheckDownDamage( KAMOME* kamome );

            Υ᡼Ƚ



        Action( KAMOME* kamome );

            ưؿ



kmmove.c 

    ư



        KMM_UpdateHermiteWork( KAMOME* kamome );

            ߡְư



        KMM_InitMoveWork( KAMOME* kamome );

            ư



        UpdateHoverWork( KAMOME* kamome);

            ư



        KMM_LandMove( KAMOME* kamome);

            ˸



        KMM_LandingMove( KAMOME* kamome );

            ϰư



        KMM_FlipflopMove( KAMOME* kamome );

            ФĤư



        KMM_AttackMove( KAMOME* kamome );

            ư



        KMM_Attack( KAMOME* kamome );

            



        KMM_ConcomitantMove( KAMOME* kamome );

            տ



        KMM_CameraZMove( KAMOME* kamome );

            ̤ѡ˰ư



        KMM_BoxRide( KAMOME* kamome );

            ̤ѡܡ˾



        KMM_AddFallAtcList( KAMOME_MNG* kmmng, KAMOME* kamome);

            ΥꥹȤɲ



        KMM_FallMove( KAMOME* kamome );

            ư



        KMM_GetTargetNearZonePos( KAMOME* kamome, FVECTOR* pvecPos, int addr, FVECTOR* pvecAim, int* pnAddr );

            ɸФƥפǰưܥꥢޤǡ



        KMM_CheckNearZone( int nCharaAddr, int nAimAddr );

            ܥå



        KMM_MakeFlyingArea( KAMOME* kamome, FVECTOR* pvecMin, FVECTOR* pvecMax);

            ԥꥢ



        KMM_EulerMove( KAMOME* kamome );

            顼ѤȤäưư



        KMM_EulerLand( KAMOME* kamome );

            顼ѤȤä



        KMM_ChkDownFloorCheck( KAMOME* kamome);

            ξå



kmthink.c 

    λ׹ʹؿ



        DamageCheck( KAMOME* kamome );

            ᡼⡼ɤλ׹



        Think3_Rest( KAMOME* kamome );

            ٤



        Think3_RestGround( KAMOME* kamome );

            ̤Ǳ٤



        Think3_Flying( KAMOME* kamome );

            ͳ



        Think3_Hovering( KAMOME* kamome );

            



        Think3_LandingMove( KAMOME* kamome );

            ذư



        Think3_Landing( KAMOME* kamome );

            



        Think3_FlipMove( KAMOME* kamome );

            ФĤư



        Think3_Flipflop( KAMOME* kamome );

            ФĤ



        Think3_Backward( KAMOME* kamome );

            



        Think3_AttackMove( KAMOME* kamome );

            ư



        Think3_Attack( KAMOME* kamome );

            



        Think3_Takeoff(KAMOME* kamome );

            Ω



        Think3_Evade(KAMOME* kamome );

            



        Think3_ConcMove( KAMOME* kamome );

            տ魯ޤǤΰư



        Think3_Concomitant( KAMOME* kamome );

            տ路ưư



        Think3_CamZHover( KAMOME* kamome );

            ̤ѡظ



        Think3_CBoxRide( KAMOME* kamome );

            ܡ



        Think3_EludeMove( KAMOME* kamome );

            ̤ѡ롼˸ư

            

        Think3_Eluding( KAMOME* kamome );

            ̤ѡ롼˸



        Think3_CtrlMove( KAMOME* kamome );

            ȥ



        Think3_DamageWait( KAMOME* kamome);

            ᡼



        Think3_Backoff( KAMOME* kamome);

            



        Think3_DamageFall( KAMOME* kamome);

            ᡼



        Think3_DamageSleepFall( KAMOME* kamome);

            ̲



        Think3_DamageGroundSleep( KAMOME* kamome);

            ̤ǤͤƤ

            

        Think3_DamageStandSleep( KAMOME* kamome);

            Ω̲

            

        Think3_Wakeup( KAMOME* kamome);

            

            

        Think3_StandWakeup( KAMOME* kamome);

            Ω֤ǵ

            

        Think3_DamageFeintFall( KAMOME* kamome);

            

            

        Think3_DamageFeint( KAMOME* kamome);

            

            

        Think3_DamageDead( KAMOME* kamome);

            ˴

            

        Think2_Normal( KAMOME* kamome );

            ̾׹

            

        Think2_Damage( KAMOME* kamome );

            ᡼׹

            

        Think1_Normal( KAMOME* kamome );

            ̾׹



        Think1_Damage( KAMOME* kamome );

            ᡼׹



        Think( KAMOME* kamome );

            ׹ʹؿ

            

        KMM_InitThink( KAMOME* kamome, int nInitThink );

            ׹ͥ



kmpre.c 

    λ׹͡ư˹Ԥʤ



        PreProcess( KAMOME* kamome);

            ׹͡ư



        AfterProcess( KAMOME* kamome);

            ׹͡ưθ



kmsound.c 

    ᲻Ϣ

        

        KAMOME_CallSe( KAMOME*  kamome,    // 

                       int      nSeIndex,  // SEֹʥǥå

                       FVECTOR* pvecPos,   // SEȯ

                       int      nMode);    // SE⡼        

            SE



        KAMOME_Say( KAMOME*  kamome,       // 

                    int      nSeIndex,     // SEֹʥǥå

                    int      nMode);       // SE⡼

            Ƭΰ֤SE

 

        KMM_ClearSeList( KAMOME_MNG* kmmng);

            SEꥹȤ򥯥ꥢ



        KMM_AddAtcSeList( KAMOME_MNG* kmmng, KAMOME* kamome);

            ⲻΥꥹȤɲ



        KMM_AddNearSeList( KAMOME_MNG* kmmng, KAMOME* kamome);

            ĤΥꥹȤɲ



        KMM_InitSoundWork( KAMOME* kamome);

            



        KMM_UpdateSoundWork( KAMOME* kamome);

            



        KMM_CallMotionSe( KAMOME* kamome);

            ⡼˹碌Ʋ

 

kmdbg.c 

    ǥХåϢ



        KMM_CallDbgNumber(void);

            ǥХå˥塼ɲáֹ



        KMM_CallDbgRoute(void);

            ǥХå˥塼ɲá롼ɽ



        KMM_CallDbgSound(void);

            ǥХå˥塼ɲá



        KMM_CallDbgArea(void);

            ǥХå˥塼ɲáԥꥢ



        KMM_DbgCheckSe(KAMOME_MNG* kmmng);

            å



        KMM_DbgDrawNumber( KAMOME_MNG* kmmng );

            ֹɽ



        KMM_DbgDrawRoute( KAMOME_MNG* kmmng );

            롼ɽ

            

        KMM_DbgDrawArea( KAMOME_MNG* kmmng);

            ꥢɽ

            

        KMM_DbgProcess(KAMOME_MNG* kmmng);

            ǥХå¹Դؿ

            

        KMM_InitDebugWork(KAMOME_MNG* kmmng);

            ǥХå

            

        KMM_DbgDumpExecTime(KAMOME_MNG* kmmng, int nTime);

            ¹Իɽ

            

        KMM_DbgActControl( KAMOME_MNG* kmmng );

            ȥư

            

        ʲ̤

        TestLineAct( TestLine* work );

        TestLineDie( TestLine* work );

        TestLineGetResources( TestLine*  work,

                              FVECTOR*   pvec1, 

                              FVECTOR*   pvec2, 

                              u_char     r,

                              u_char     g,

                              u_char     b);

        NewMaoTestLine( FVECTOR* pvec1, 

                        FVECTOR* pvec2, 

                        u_char   r,

                        u_char   g,

                        u_char   b);

            ̤

            

kmginfo.c 

    μվ



        KMMNG_UpdateInfo( KAMOME_MNG* kmmng);

            վ󹹿

            

        KMMNG_BaseLight( KAMOME_MNG* kmmng );

            ȿ׻ʤ

            

        KMMNG_BaseBardy( KAMOME_MNG* kmmng );

            ȿ

            

        KMMNG_BaseEscape( KAMOME_MNG* kmmng );

            ȿҴ

            

        KMMNG_BaseAngry( KAMOME_MNG* kmmng );

            ȿܤ

            

        KMM_CheckNoiseTakeOff( KAMOME_MNG* kmmng);

            ˤΩå

            

        KMMNG_JudgeBase( KAMOME_MNG* kmmng );

            ȿ

            

        KMM_CallDmgProc( KAMOME_MNG* kmmng, int nType);

            ᤬᡼˸ƤФץ򥳡

            



