コード例 #1
0
ファイル: GmEneSting.cs プロジェクト: uwx/Sonic4Episode1
 public static void gmEneStingAtkInit(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_STING_WORK gmsEneStingWork = (AppMain.GMS_ENE_STING_WORK)obj_work;
     AppMain.GmEneComActionSetDependHFlip(obj_work, 4, 7);
     obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneStingAtkMain);
     obj_work.spd.x  = 0;
 }
コード例 #2
0
 // Token: 0x060015A4 RID: 5540 RVA: 0x000BCE40 File Offset: 0x000BB040
 public static void gmEneStingFlipInit(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_STING_WORK gms_ENE_STING_WORK = (AppMain.GMS_ENE_STING_WORK)obj_work;
     AppMain.GmEneComActionSetDependHFlip(obj_work, 2, 3);
     obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneStingFlipMain);
     gms_ENE_STING_WORK.search_rect_work.flag &= 4294967291U;
     AppMain.gmEneStingClearJetEfct(gms_ENE_STING_WORK);
 }
コード例 #3
0
    // Token: 0x060015A3 RID: 5539 RVA: 0x000BCE1C File Offset: 0x000BB01C
    public static void gmEneStingWalkMain(AppMain.OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_ENE_STING_WORK sting_work = (AppMain.GMS_ENE_STING_WORK)obj_work;
        int num = AppMain.gmEneStingSetWalkSpeed(sting_work);

        if (num != 0)
        {
            AppMain.gmEneStingFlipInit(obj_work);
        }
    }
コード例 #4
0
    // Token: 0x060015AA RID: 5546 RVA: 0x000BD158 File Offset: 0x000BB358
    public static void gmEneStingSearchDefFunc(AppMain.OBS_RECT_WORK mine_rect, AppMain.OBS_RECT_WORK match_rect)
    {
        if (match_rect.parent_obj.obj_type != 1)
        {
            return;
        }
        AppMain.GMS_ENE_STING_WORK gms_ENE_STING_WORK = (AppMain.GMS_ENE_STING_WORK)mine_rect.parent_obj;
        GMS_PLAYER_WORK            gms_PLAYER_WORK    = (GMS_PLAYER_WORK)match_rect.parent_obj;

        AppMain.OBS_RECT_WORK obs_RECT_WORK = gms_PLAYER_WORK.rect_work[2];
        float num  = AppMain.FXM_FX32_TO_FLOAT(gms_PLAYER_WORK.obj_work.pos.x) + (float)(obs_RECT_WORK.rect.left + obs_RECT_WORK.rect.right >> 1);
        float num2 = AppMain.FXM_FX32_TO_FLOAT(gms_PLAYER_WORK.obj_work.pos.y) + (float)(obs_RECT_WORK.rect.top + obs_RECT_WORK.rect.bottom >> 1);

        obs_RECT_WORK = gms_ENE_STING_WORK.ene_3d_work.ene_com.rect_work[2];
        float num3 = AppMain.FXM_FX32_TO_FLOAT(gms_ENE_STING_WORK.ene_3d_work.ene_com.obj_work.pos.x) + (float)(obs_RECT_WORK.rect.left + obs_RECT_WORK.rect.right >> 1);
        float num4 = AppMain.FXM_FX32_TO_FLOAT(gms_ENE_STING_WORK.ene_3d_work.ene_com.obj_work.pos.y + AppMain.GMD_ENE_STING_GUN_OFST_Y) + (float)(obs_RECT_WORK.rect.top + obs_RECT_WORK.rect.bottom >> 1);
        int   num5;
        int   num6;

        if ((gms_ENE_STING_WORK.ene_3d_work.ene_com.obj_work.disp_flag & 1U) != 0U)
        {
            num5 = 32768 - AppMain.GMD_ENE_STING_SEARCH_DIR_START;
            num6 = 32768 - AppMain.GMD_ENE_STING_SEARCH_DIR_END;
        }
        else
        {
            num5 = AppMain.GMD_ENE_STING_SEARCH_DIR_START;
            num6 = AppMain.GMD_ENE_STING_SEARCH_DIR_END;
        }
        if (num6 < num5)
        {
            AppMain.MTM_MATH_SWAP <int>(ref num5, ref num6);
        }
        float num7 = num - num3;
        float num8 = num2 - num4;
        int   num9 = AppMain.nnArcTan2((double)num8, (double)num7);

        if (num9 < num5 || num9 > num6)
        {
            return;
        }
        gms_ENE_STING_WORK.bullet_spd_x = ( int )(( float )AppMain.GMD_ENE_STING_BULLET_SPD * AppMain.nnCos(num9));
        gms_ENE_STING_WORK.bullet_spd_y = ( int )(( float )AppMain.GMD_ENE_STING_BULLET_SPD * AppMain.nnSin(num9));
        if ((gms_ENE_STING_WORK.ene_3d_work.ene_com.obj_work.disp_flag & 1U) != 0U)
        {
            gms_ENE_STING_WORK.bullet_dir = ( short )(num9 - 32768);
        }
        else
        {
            gms_ENE_STING_WORK.bullet_dir = ( short )num9;
        }
        AppMain.gmEneStingAtkInit(( OBS_OBJECT_WORK )gms_ENE_STING_WORK);
        gms_ENE_STING_WORK.search_rect_work.flag &= 4294967291U;
    }
コード例 #5
0
    // Token: 0x0600159D RID: 5533 RVA: 0x000BC83C File Offset: 0x000BAA3C
    public static int gmEneStingSetWalkSpeed(AppMain.GMS_ENE_STING_WORK sting_work)
    {
        int result = 0;

        AppMain.OBS_OBJECT_WORK obs_OBJECT_WORK = (AppMain.OBS_OBJECT_WORK)sting_work;
        if ((obs_OBJECT_WORK.disp_flag & 1U) != 0U)
        {
            if (obs_OBJECT_WORK.obj_3d.act_id[0] == 3 && obs_OBJECT_WORK.obj_3d.frame[0] >= ( float )(AppMain.GMD_ENE_STING_TURN_FRAME / 2))
            {
                obs_OBJECT_WORK.spd.x = AppMain.ObjSpdUpSet(obs_OBJECT_WORK.spd.x, sting_work.spd_dec, ( int )AppMain.GMD_ENE_STING_SPD_X);
            }
            else if (obs_OBJECT_WORK.pos.x <= Convert.ToInt32(obs_OBJECT_WORK.user_work) + sting_work.spd_dec_dist)
            {
                obs_OBJECT_WORK.spd.x = AppMain.ObjSpdDownSet(obs_OBJECT_WORK.spd.x, sting_work.spd_dec);
                result = 1;
                if (obs_OBJECT_WORK.spd.x == 0 && obs_OBJECT_WORK.pos.x > ( int )obs_OBJECT_WORK.user_work)
                {
                    obs_OBJECT_WORK.spd.x = ( int )(obs_OBJECT_WORK.user_work - ( uint )obs_OBJECT_WORK.pos.x);
                    if (obs_OBJECT_WORK.spd.x < -sting_work.spd_dec)
                    {
                        obs_OBJECT_WORK.spd.x = -sting_work.spd_dec;
                    }
                }
            }
            else if (obs_OBJECT_WORK.spd.x > ( int )(-( int )AppMain.GMD_ENE_STING_SPD_X))
            {
                obs_OBJECT_WORK.spd.x = AppMain.ObjSpdUpSet(obs_OBJECT_WORK.spd.x, -sting_work.spd_dec, ( int )AppMain.GMD_ENE_STING_SPD_X);
            }
        }
        else if (obs_OBJECT_WORK.obj_3d.act_id[0] == 2 && obs_OBJECT_WORK.obj_3d.frame[0] >= ( float )(AppMain.GMD_ENE_STING_TURN_FRAME / 2))
        {
            obs_OBJECT_WORK.spd.x = AppMain.ObjSpdUpSet(obs_OBJECT_WORK.spd.x, -sting_work.spd_dec, ( int )AppMain.GMD_ENE_STING_SPD_X);
        }
        else if (( long )obs_OBJECT_WORK.pos.x >= ( long )(( ulong )Convert.ToUInt32(obs_OBJECT_WORK.user_flag) - ( ulong )(( long )sting_work.spd_dec_dist)))
        {
            obs_OBJECT_WORK.spd.x = AppMain.ObjSpdDownSet(obs_OBJECT_WORK.spd.x, sting_work.spd_dec);
            result = 1;
            if (obs_OBJECT_WORK.spd.x == 0 && obs_OBJECT_WORK.pos.x < Convert.ToInt32(obs_OBJECT_WORK.user_flag))
            {
                obs_OBJECT_WORK.spd.x = Convert.ToInt32(obs_OBJECT_WORK.user_flag) - obs_OBJECT_WORK.pos.x;
                if (obs_OBJECT_WORK.spd.x > sting_work.spd_dec)
                {
                    obs_OBJECT_WORK.spd.x = sting_work.spd_dec;
                }
            }
        }
        else if (obs_OBJECT_WORK.spd.x < ( int )AppMain.GMD_ENE_STING_SPD_X)
        {
            obs_OBJECT_WORK.spd.x = AppMain.ObjSpdUpSet(obs_OBJECT_WORK.spd.x, sting_work.spd_dec, ( int )AppMain.GMD_ENE_STING_SPD_X);
        }
        return(result);
    }
コード例 #6
0
ファイル: GmEneSting.cs プロジェクト: uwx/Sonic4Episode1
    public static int gmEneStingSetWalkSpeed(AppMain.GMS_ENE_STING_WORK sting_work)
    {
        int num = 0;

        AppMain.OBS_OBJECT_WORK obsObjectWork = (AppMain.OBS_OBJECT_WORK)sting_work;
        if (((int)obsObjectWork.disp_flag & 1) != 0)
        {
            if (obsObjectWork.obj_3d.act_id[0] == 3 && (double)obsObjectWork.obj_3d.frame[0] >= (double)(AppMain.GMD_ENE_STING_TURN_FRAME / 2))
            {
                obsObjectWork.spd.x = AppMain.ObjSpdUpSet(obsObjectWork.spd.x, sting_work.spd_dec, (int)AppMain.GMD_ENE_STING_SPD_X);
            }
            else if (obsObjectWork.pos.x <= Convert.ToInt32(obsObjectWork.user_work) + sting_work.spd_dec_dist)
            {
                obsObjectWork.spd.x = AppMain.ObjSpdDownSet(obsObjectWork.spd.x, sting_work.spd_dec);
                num = 1;
                if (obsObjectWork.spd.x == 0 && obsObjectWork.pos.x > (int)obsObjectWork.user_work)
                {
                    obsObjectWork.spd.x = (int)obsObjectWork.user_work - obsObjectWork.pos.x;
                    if (obsObjectWork.spd.x < -sting_work.spd_dec)
                    {
                        obsObjectWork.spd.x = -sting_work.spd_dec;
                    }
                }
            }
            else if (obsObjectWork.spd.x > (int)-AppMain.GMD_ENE_STING_SPD_X)
            {
                obsObjectWork.spd.x = AppMain.ObjSpdUpSet(obsObjectWork.spd.x, -sting_work.spd_dec, (int)AppMain.GMD_ENE_STING_SPD_X);
            }
        }
        else if (obsObjectWork.obj_3d.act_id[0] == 2 && (double)obsObjectWork.obj_3d.frame[0] >= (double)(AppMain.GMD_ENE_STING_TURN_FRAME / 2))
        {
            obsObjectWork.spd.x = AppMain.ObjSpdUpSet(obsObjectWork.spd.x, -sting_work.spd_dec, (int)AppMain.GMD_ENE_STING_SPD_X);
        }
        else if ((long)obsObjectWork.pos.x >= (long)Convert.ToUInt32(obsObjectWork.user_flag) - (long)sting_work.spd_dec_dist)
        {
            obsObjectWork.spd.x = AppMain.ObjSpdDownSet(obsObjectWork.spd.x, sting_work.spd_dec);
            num = 1;
            if (obsObjectWork.spd.x == 0 && obsObjectWork.pos.x < Convert.ToInt32(obsObjectWork.user_flag))
            {
                obsObjectWork.spd.x = Convert.ToInt32(obsObjectWork.user_flag) - obsObjectWork.pos.x;
                if (obsObjectWork.spd.x > sting_work.spd_dec)
                {
                    obsObjectWork.spd.x = sting_work.spd_dec;
                }
            }
        }
        else if (obsObjectWork.spd.x < (int)AppMain.GMD_ENE_STING_SPD_X)
        {
            obsObjectWork.spd.x = AppMain.ObjSpdUpSet(obsObjectWork.spd.x, sting_work.spd_dec, (int)AppMain.GMD_ENE_STING_SPD_X);
        }
        return(num);
    }
コード例 #7
0
 // Token: 0x060015A7 RID: 5543 RVA: 0x000BD018 File Offset: 0x000BB218
 public static void gmEneStingFlipMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.gmEneStingSetWalkSpeed((AppMain.GMS_ENE_STING_WORK)obj_work);
     if ((obj_work.disp_flag & 8U) != 0U)
     {
         AppMain.GMS_ENE_STING_WORK gms_ENE_STING_WORK = (AppMain.GMS_ENE_STING_WORK)obj_work;
         obj_work.disp_flag ^= 1U;
         AppMain.gmEneStingCreateJetEfct(gms_ENE_STING_WORK);
         AppMain.gmEneStingWalkInit(obj_work);
         gms_ENE_STING_WORK = (AppMain.GMS_ENE_STING_WORK)obj_work;
         gms_ENE_STING_WORK.search_rect_work.flag |= 4U;
     }
 }
コード例 #8
0
 // Token: 0x060015A6 RID: 5542 RVA: 0x000BCFC0 File Offset: 0x000BB1C0
 public static void gmEneStingClearJetEfct(AppMain.GMS_ENE_STING_WORK sting_work)
 {
     if (sting_work.efct_r_jet != null)
     {
         AppMain.ObjDrawKillAction3DES(sting_work.efct_r_jet.efct_com.obj_work);
         sting_work.efct_r_jet = null;
     }
     if (sting_work.efct_l_jet != null)
     {
         AppMain.ObjDrawKillAction3DES(sting_work.efct_l_jet.efct_com.obj_work);
         sting_work.efct_l_jet = null;
     }
 }
コード例 #9
0
ファイル: GmEneSting.cs プロジェクト: uwx/Sonic4Episode1
 public static void gmEneStingFlipMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.gmEneStingSetWalkSpeed((AppMain.GMS_ENE_STING_WORK)obj_work);
     if (((int)obj_work.disp_flag & 8) == 0)
     {
         return;
     }
     AppMain.GMS_ENE_STING_WORK sting_work = (AppMain.GMS_ENE_STING_WORK)obj_work;
     obj_work.disp_flag ^= 1U;
     AppMain.gmEneStingCreateJetEfct(sting_work);
     AppMain.gmEneStingWalkInit(obj_work);
     ((AppMain.GMS_ENE_STING_WORK)obj_work).search_rect_work.flag |= 4U;
 }
コード例 #10
0
ファイル: GmEneSting.cs プロジェクト: uwx/Sonic4Episode1
 private static AppMain.OBS_OBJECT_WORK GmEneStingInit(
     AppMain.GMS_EVE_RECORD_EVENT eve_rec,
     int pos_x,
     int pos_y,
     byte type)
 {
     AppMain.OBS_OBJECT_WORK    work           = AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_ENE_STING_WORK()), "ENE_STING");
     AppMain.GMS_ENEMY_3D_WORK  gmsEnemy3DWork = (AppMain.GMS_ENEMY_3D_WORK)work;
     AppMain.GMS_ENE_STING_WORK sting_work     = (AppMain.GMS_ENE_STING_WORK)work;
     AppMain.ObjObjectCopyAction3dNNModel(work, AppMain.gm_ene_sting_obj_3d_list[0], gmsEnemy3DWork.obj_3d);
     AppMain.ObjObjectAction3dNNMotionLoad(work, 0, false, AppMain.ObjDataGet(669), (string)null, 0, (AppMain.AMS_AMB_HEADER)null);
     AppMain.ObjDrawObjectSetToon(work);
     gmsEnemy3DWork.obj_3d.mtn_cb_func  = new AppMain.mtn_cb_func_delegate(AppMain.gmEneStingMotionCallback);
     gmsEnemy3DWork.obj_3d.mtn_cb_param = (object)sting_work;
     work.pos.z = 0;
     AppMain.OBS_RECT_WORK pRec1 = gmsEnemy3DWork.ene_com.rect_work[1];
     AppMain.ObjRectWorkSet(pRec1, (short)-10, (short)-8, (short)20, (short)8);
     pRec1.flag |= 4U;
     AppMain.OBS_RECT_WORK pRec2 = gmsEnemy3DWork.ene_com.rect_work[0];
     AppMain.ObjRectWorkSet(pRec2, (short)-18, (short)-16, (short)28, (short)16);
     pRec2.flag |= 4U;
     AppMain.OBS_RECT_WORK pRec3 = gmsEnemy3DWork.ene_com.rect_work[2];
     AppMain.ObjRectWorkSet(pRec3, (short)-18, (short)-16, (short)28, (short)16);
     pRec3.flag &= 4294967291U;
     AppMain.OBS_RECT_WORK searchRectWork = sting_work.search_rect_work;
     searchRectWork.ppDef = new AppMain.OBS_RECT_WORK_Delegate1(AppMain.gmEneStingSearchDefFunc);
     AppMain.ObjRectGroupSet(searchRectWork, (byte)1, (byte)1);
     AppMain.ObjRectAtkSet(searchRectWork, (ushort)0, (short)0);
     AppMain.ObjRectDefSet(searchRectWork, (ushort)65534, (short)0);
     searchRectWork.parent_obj = work;
     AppMain.ObjRectWorkSet(searchRectWork, (short)0, (short)0, (short)128, (short)128);
     searchRectWork.flag |= 1048804U;
     work.ppRec           = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneStingRegRectFunc);
     work.move_flag      |= 256U;
     work.move_flag      &= 4294967167U;
     if (((int)eve_rec.flag & (int)AppMain.GMD_ENE_STING_EVE_FLAG_RIGHT) == 0)
     {
         work.disp_flag |= 1U;
     }
     work.user_work          = (uint)(work.pos.x + ((int)eve_rec.left << 12));
     work.user_flag          = (uint)(work.pos.x + ((int)eve_rec.left + (int)eve_rec.width << 12));
     sting_work.spd_dec      = (int)AppMain.GMD_ENE_STING_SPD_X / (AppMain.GMD_ENE_STING_TURN_FRAME / 2);
     sting_work.spd_dec_dist = (int)AppMain.GMD_ENE_STING_SPD_X * (AppMain.GMD_ENE_STING_TURN_FRAME / 2) / 2;
     AppMain.gmEneStingWalkInit(work);
     AppMain.gmEneStingCreateJetEfct(sting_work);
     work.obj_3d.use_light_flag &= 4294967294U;
     work.obj_3d.use_light_flag |= 64U;
     return(work);
 }
コード例 #11
0
ファイル: GmEneSting.cs プロジェクト: uwx/Sonic4Episode1
    public static void gmEneStingSearchDefFunc(
        AppMain.OBS_RECT_WORK mine_rect,
        AppMain.OBS_RECT_WORK match_rect)
    {
        if (match_rect.parent_obj.obj_type != (ushort)1)
        {
            return;
        }
        AppMain.GMS_ENE_STING_WORK parentObj1   = (AppMain.GMS_ENE_STING_WORK)mine_rect.parent_obj;
        AppMain.GMS_PLAYER_WORK    parentObj2   = (AppMain.GMS_PLAYER_WORK)match_rect.parent_obj;
        AppMain.OBS_RECT_WORK      obsRectWork1 = parentObj2.rect_work[2];
        float num1 = AppMain.FXM_FX32_TO_FLOAT(parentObj2.obj_work.pos.x) + (float)((int)obsRectWork1.rect.left + (int)obsRectWork1.rect.right >> 1);
        float num2 = AppMain.FXM_FX32_TO_FLOAT(parentObj2.obj_work.pos.y) + (float)((int)obsRectWork1.rect.top + (int)obsRectWork1.rect.bottom >> 1);

        AppMain.OBS_RECT_WORK obsRectWork2 = parentObj1.ene_3d_work.ene_com.rect_work[2];
        float num3 = AppMain.FXM_FX32_TO_FLOAT(parentObj1.ene_3d_work.ene_com.obj_work.pos.x) + (float)((int)obsRectWork2.rect.left + (int)obsRectWork2.rect.right >> 1);
        float num4 = AppMain.FXM_FX32_TO_FLOAT(parentObj1.ene_3d_work.ene_com.obj_work.pos.y + AppMain.GMD_ENE_STING_GUN_OFST_Y) + (float)((int)obsRectWork2.rect.top + (int)obsRectWork2.rect.bottom >> 1);
        int   a;
        int   b;

        if (((int)parentObj1.ene_3d_work.ene_com.obj_work.disp_flag & 1) != 0)
        {
            a = 32768 - AppMain.GMD_ENE_STING_SEARCH_DIR_START;
            b = 32768 - AppMain.GMD_ENE_STING_SEARCH_DIR_END;
        }
        else
        {
            a = AppMain.GMD_ENE_STING_SEARCH_DIR_START;
            b = AppMain.GMD_ENE_STING_SEARCH_DIR_END;
        }
        if (b < a)
        {
            AppMain.MTM_MATH_SWAP <int>(ref a, ref b);
        }
        float num5 = num1 - num3;
        int   ang  = AppMain.nnArcTan2((double)(num2 - num4), (double)num5);

        if (ang < a || ang > b)
        {
            return;
        }
        parentObj1.bullet_spd_x = (int)((double)AppMain.GMD_ENE_STING_BULLET_SPD * (double)AppMain.nnCos(ang));
        parentObj1.bullet_spd_y = (int)((double)AppMain.GMD_ENE_STING_BULLET_SPD * (double)AppMain.nnSin(ang));
        parentObj1.bullet_dir   = ((int)parentObj1.ene_3d_work.ene_com.obj_work.disp_flag & 1) == 0 ? (short)ang : (short)(ang - 32768);
        AppMain.gmEneStingAtkInit((AppMain.OBS_OBJECT_WORK)parentObj1);
        parentObj1.search_rect_work.flag &= 4294967291U;
    }
コード例 #12
0
    // Token: 0x0600159C RID: 5532 RVA: 0x000BC5C8 File Offset: 0x000BA7C8
    private static OBS_OBJECT_WORK GmEneStingInit(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type)
    {
        OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, () => new AppMain.GMS_ENE_STING_WORK(), "ENE_STING");

        AppMain.GMS_ENEMY_3D_WORK  gms_ENEMY_3D_WORK  = (AppMain.GMS_ENEMY_3D_WORK)obs_OBJECT_WORK;
        AppMain.GMS_ENE_STING_WORK gms_ENE_STING_WORK = (AppMain.GMS_ENE_STING_WORK)obs_OBJECT_WORK;
        AppMain.ObjObjectCopyAction3dNNModel(obs_OBJECT_WORK, AppMain.gm_ene_sting_obj_3d_list[0], gms_ENEMY_3D_WORK.obj_3d);
        AppMain.ObjObjectAction3dNNMotionLoad(obs_OBJECT_WORK, 0, false, AppMain.ObjDataGet(669), null, 0, null);
        AppMain.ObjDrawObjectSetToon(obs_OBJECT_WORK);
        gms_ENEMY_3D_WORK.obj_3d.mtn_cb_func  = AppMain.gmEneStingMotionCallback;
        gms_ENEMY_3D_WORK.obj_3d.mtn_cb_param = gms_ENE_STING_WORK;
        obs_OBJECT_WORK.pos.z = 0;
        AppMain.OBS_RECT_WORK obs_RECT_WORK = gms_ENEMY_3D_WORK.ene_com.rect_work[1];
        AppMain.ObjRectWorkSet(obs_RECT_WORK, -10, -8, 20, 8);
        obs_RECT_WORK.flag |= 4U;
        obs_RECT_WORK       = gms_ENEMY_3D_WORK.ene_com.rect_work[0];
        AppMain.ObjRectWorkSet(obs_RECT_WORK, -18, -16, 28, 16);
        obs_RECT_WORK.flag |= 4U;
        obs_RECT_WORK       = gms_ENEMY_3D_WORK.ene_com.rect_work[2];
        AppMain.ObjRectWorkSet(obs_RECT_WORK, -18, -16, 28, 16);
        obs_RECT_WORK.flag &= 4294967291U;
        obs_RECT_WORK       = gms_ENE_STING_WORK.search_rect_work;
        obs_RECT_WORK.ppDef = AppMain.gmEneStingSearchDefFunc;
        AppMain.ObjRectGroupSet(obs_RECT_WORK, 1, 1);
        AppMain.ObjRectAtkSet(obs_RECT_WORK, 0, 0);
        AppMain.ObjRectDefSet(obs_RECT_WORK, 65534, 0);
        obs_RECT_WORK.parent_obj = obs_OBJECT_WORK;
        AppMain.ObjRectWorkSet(obs_RECT_WORK, 0, 0, 128, 128);
        obs_RECT_WORK.flag        |= 1048804U;
        obs_OBJECT_WORK.ppRec      = AppMain.gmEneStingRegRectFunc;
        obs_OBJECT_WORK.move_flag |= 256U;
        obs_OBJECT_WORK.move_flag &= 4294967167U;
        if ((eve_rec.flag & ( ushort )AppMain.GMD_ENE_STING_EVE_FLAG_RIGHT) == 0)
        {
            obs_OBJECT_WORK.disp_flag |= 1U;
        }
        obs_OBJECT_WORK.user_work       = ( uint )(obs_OBJECT_WORK.pos.x + (( int )eve_rec.left << 12));
        obs_OBJECT_WORK.user_flag       = ( uint )(obs_OBJECT_WORK.pos.x + (( int )(eve_rec.left + ( sbyte )eve_rec.width) << 12));
        gms_ENE_STING_WORK.spd_dec      = ( int )AppMain.GMD_ENE_STING_SPD_X / (AppMain.GMD_ENE_STING_TURN_FRAME / 2);
        gms_ENE_STING_WORK.spd_dec_dist = ( int )AppMain.GMD_ENE_STING_SPD_X * (AppMain.GMD_ENE_STING_TURN_FRAME / 2) / 2;
        AppMain.gmEneStingWalkInit(obs_OBJECT_WORK);
        AppMain.gmEneStingCreateJetEfct(gms_ENE_STING_WORK);
        obs_OBJECT_WORK.obj_3d.use_light_flag &= 4294967294U;
        obs_OBJECT_WORK.obj_3d.use_light_flag |= 64U;
        return(obs_OBJECT_WORK);
    }
コード例 #13
0
    // Token: 0x060015AC RID: 5548 RVA: 0x000BD39C File Offset: 0x000BB59C
    public static void gmEneStingAtkMain(AppMain.OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_ENE_STING_WORK gms_ENE_STING_WORK = (AppMain.GMS_ENE_STING_WORK)obj_work;
        if (obj_work.user_timer != 0)
        {
            obj_work.user_timer--;
            if (obj_work.user_timer != 0)
            {
                return;
            }
            if (obj_work.obj_3d.act_id[0] == 4 || obj_work.obj_3d.act_id[0] == 7)
            {
                AppMain.GmEneStingCreateBullet(obj_work, AppMain.GMD_ENE_STING_BULLET_FLASH_OFST_X, AppMain.GMD_ENE_STING_BULLET_FLASH_OFST_Y, AppMain.GMD_ENE_STING_BULLET_FLASH_OFST_Z, AppMain.GMD_ENE_STING_BULLET_OFST_X, AppMain.GMD_ENE_STING_BULLET_OFST_Y, AppMain.GMD_ENE_STING_BULLET_OFST_Z, gms_ENE_STING_WORK.bullet_spd_x, gms_ENE_STING_WORK.bullet_spd_y, gms_ENE_STING_WORK.bullet_dir);
                AppMain.GmEneComActionSetDependHFlip(obj_work, 5, 8);
                AppMain.GmSoundPlaySE("Sting");
            }
            else
            {
                AppMain.GmEneComActionSetDependHFlip(obj_work, 6, 9);
            }
        }
        if ((obj_work.disp_flag & 8U) != 0U)
        {
            switch (obj_work.obj_3d.act_id[0])
            {
            case 4:
            case 7:
                obj_work.user_timer = AppMain.GMD_ENE_STING_BULLET_WAIT;
                return;

            case 5:
            case 8:
                obj_work.user_timer = AppMain.GMD_ENE_STING_BULLET_AFTER_WAIT;
                return;

            case 6:
            case 9:
                AppMain.gmEneStingWalkInit(obj_work);
                break;

            default:
                return;
            }
        }
    }
コード例 #14
0
    // Token: 0x060015A9 RID: 5545 RVA: 0x000BD0A8 File Offset: 0x000BB2A8
    public static void gmEneStingMotionCallback(AppMain.AMS_MOTION motion, AppMain.NNS_OBJECT _object, object param)
    {
        AppMain.NNS_MATRIX nns_MATRIX = AppMain.GlobalPool <AppMain.NNS_MATRIX> .Alloc();

        AppMain.NNS_MATRIX nns_MATRIX2 = AppMain.GlobalPool <AppMain.NNS_MATRIX> .Alloc();

        AppMain.GMS_ENE_STING_WORK gms_ENE_STING_WORK = (AppMain.GMS_ENE_STING_WORK)param;
        AppMain.nnMakeUnitMatrix(nns_MATRIX2);
        AppMain.nnMultiplyMatrix(nns_MATRIX2, nns_MATRIX2, AppMain.amMatrixGetCurrent());
        AppMain.nnCalcNodeMatrixTRSList(nns_MATRIX, _object, AppMain.GMD_ENE_STING_NODE_ID_R_JET, motion.data, nns_MATRIX2);
        gms_ENE_STING_WORK.jet_r_mtx.Assign(nns_MATRIX);
        AppMain.nnCalcNodeMatrixTRSList(nns_MATRIX, _object, AppMain.GMD_ENE_STING_NODE_ID_L_JET, motion.data, nns_MATRIX2);
        gms_ENE_STING_WORK.jet_l_mtx.Assign(nns_MATRIX);
        AppMain.nnCalcNodeMatrixTRSList(nns_MATRIX, _object, AppMain.GMD_ENE_STING_NODE_ID_GUN, motion.data, nns_MATRIX2);
        gms_ENE_STING_WORK.gun_mtx.Assign(nns_MATRIX);
        AppMain.GlobalPool <AppMain.NNS_MATRIX> .Release(nns_MATRIX);

        AppMain.GlobalPool <AppMain.NNS_MATRIX> .Release(nns_MATRIX2);
    }
コード例 #15
0
 // Token: 0x060015A5 RID: 5541 RVA: 0x000BCE88 File Offset: 0x000BB088
 public static void gmEneStingCreateJetEfct(AppMain.GMS_ENE_STING_WORK sting_work)
 {
     if (sting_work.efct_r_jet == null)
     {
         sting_work.efct_r_jet = AppMain.GmEfctEneEsCreate((AppMain.OBS_OBJECT_WORK)sting_work, 0);
         AppMain.GmComEfctAddDispOffsetF(sting_work.efct_r_jet, -11f, -9f, 0f);
         sting_work.efct_r_jet.efct_com.obj_work.flag            |= 524304U;
         sting_work.efct_r_jet.efct_com.obj_work.user_work_OBJECT = sting_work.jet_r_mtx;
         sting_work.efct_r_jet.efct_com.obj_work.ppFunc           = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneStingJetEfctMain);
     }
     if (sting_work.efct_l_jet == null)
     {
         sting_work.efct_l_jet = AppMain.GmEfctEneEsCreate((AppMain.OBS_OBJECT_WORK)sting_work, 0);
         AppMain.GmComEfctAddDispOffsetF(sting_work.efct_l_jet, -11f, -9f, 0f);
         sting_work.efct_l_jet.efct_com.obj_work.flag            |= 524304U;
         sting_work.efct_l_jet.efct_com.obj_work.user_work_OBJECT = sting_work.jet_l_mtx;
         sting_work.efct_l_jet.efct_com.obj_work.ppFunc           = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmEneStingJetEfctMain);
     }
 }
コード例 #16
0
 // Token: 0x060015AB RID: 5547 RVA: 0x000BD37C File Offset: 0x000BB57C
 public static void gmEneStingRegRectFunc(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_STING_WORK gms_ENE_STING_WORK = (AppMain.GMS_ENE_STING_WORK)obj_work;
     AppMain.ObjObjectRectRegist(obj_work, gms_ENE_STING_WORK.search_rect_work);
 }