コード例 #1
0
    // Token: 0x06001B6F RID: 7023 RVA: 0x000FB104 File Offset: 0x000F9304
    private static int gmEneBukuSetWalkSpeed(AppMain.GMS_ENE_BUKU_WORK buku_work)
    {
        int result = 0;

        AppMain.OBS_OBJECT_WORK obs_OBJECT_WORK = (AppMain.OBS_OBJECT_WORK)buku_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] >= 20f)
            {
                obs_OBJECT_WORK.spd.x = AppMain.ObjSpdUpSet(obs_OBJECT_WORK.spd.x, buku_work.spd_dec, 2048);
            }
            else if (obs_OBJECT_WORK.pos.x <= ( int )(obs_OBJECT_WORK.user_work + ( uint )buku_work.spd_dec_dist))
            {
                obs_OBJECT_WORK.spd.x = AppMain.ObjSpdDownSet(obs_OBJECT_WORK.spd.x, buku_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 < -buku_work.spd_dec)
                    {
                        obs_OBJECT_WORK.spd.x = -buku_work.spd_dec;
                    }
                }
            }
            else if (obs_OBJECT_WORK.spd.x > -2048)
            {
                obs_OBJECT_WORK.spd.x = AppMain.ObjSpdUpSet(obs_OBJECT_WORK.spd.x, -buku_work.spd_dec, 2048);
            }
        }
        else if (obs_OBJECT_WORK.obj_3d.act_id[0] == 2 && obs_OBJECT_WORK.obj_3d.frame[0] >= 20f)
        {
            obs_OBJECT_WORK.spd.x = AppMain.ObjSpdUpSet(obs_OBJECT_WORK.spd.x, -buku_work.spd_dec, 2048);
        }
        else if (obs_OBJECT_WORK.pos.x >= ( int )(obs_OBJECT_WORK.user_flag - ( uint )buku_work.spd_dec_dist))
        {
            obs_OBJECT_WORK.spd.x = AppMain.ObjSpdDownSet(obs_OBJECT_WORK.spd.x, buku_work.spd_dec);
            result = 1;
            if (obs_OBJECT_WORK.spd.x == 0 && obs_OBJECT_WORK.pos.x < ( int )obs_OBJECT_WORK.user_flag)
            {
                obs_OBJECT_WORK.spd.x = ( int )(obs_OBJECT_WORK.user_flag - ( uint )obs_OBJECT_WORK.pos.x);
                if (obs_OBJECT_WORK.spd.x > buku_work.spd_dec)
                {
                    obs_OBJECT_WORK.spd.x = buku_work.spd_dec;
                }
            }
        }
        else if (obs_OBJECT_WORK.spd.x < 2048)
        {
            obs_OBJECT_WORK.spd.x = AppMain.ObjSpdUpSet(obs_OBJECT_WORK.spd.x, buku_work.spd_dec, 2048);
        }
        return(result);
    }
コード例 #2
0
ファイル: GmEneBuku.cs プロジェクト: uwx/Sonic4Episode1
    private static int gmEneBukuSetWalkSpeed(AppMain.GMS_ENE_BUKU_WORK buku_work)
    {
        int num = 0;

        AppMain.OBS_OBJECT_WORK obsObjectWork = (AppMain.OBS_OBJECT_WORK)buku_work;
        if (((int)obsObjectWork.disp_flag & 1) != 0)
        {
            if (obsObjectWork.obj_3d.act_id[0] == 3 && (double)obsObjectWork.obj_3d.frame[0] >= 20.0)
            {
                obsObjectWork.spd.x = AppMain.ObjSpdUpSet(obsObjectWork.spd.x, buku_work.spd_dec, 2048);
            }
            else if (obsObjectWork.pos.x <= (int)obsObjectWork.user_work + buku_work.spd_dec_dist)
            {
                obsObjectWork.spd.x = AppMain.ObjSpdDownSet(obsObjectWork.spd.x, buku_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 < -buku_work.spd_dec)
                    {
                        obsObjectWork.spd.x = -buku_work.spd_dec;
                    }
                }
            }
            else if (obsObjectWork.spd.x > -2048)
            {
                obsObjectWork.spd.x = AppMain.ObjSpdUpSet(obsObjectWork.spd.x, -buku_work.spd_dec, 2048);
            }
        }
        else if (obsObjectWork.obj_3d.act_id[0] == 2 && (double)obsObjectWork.obj_3d.frame[0] >= 20.0)
        {
            obsObjectWork.spd.x = AppMain.ObjSpdUpSet(obsObjectWork.spd.x, -buku_work.spd_dec, 2048);
        }
        else if (obsObjectWork.pos.x >= (int)obsObjectWork.user_flag - buku_work.spd_dec_dist)
        {
            obsObjectWork.spd.x = AppMain.ObjSpdDownSet(obsObjectWork.spd.x, buku_work.spd_dec);
            num = 1;
            if (obsObjectWork.spd.x == 0 && obsObjectWork.pos.x < (int)obsObjectWork.user_flag)
            {
                obsObjectWork.spd.x = (int)obsObjectWork.user_flag - obsObjectWork.pos.x;
                if (obsObjectWork.spd.x > buku_work.spd_dec)
                {
                    obsObjectWork.spd.x = buku_work.spd_dec;
                }
            }
        }
        else if (obsObjectWork.spd.x < 2048)
        {
            obsObjectWork.spd.x = AppMain.ObjSpdUpSet(obsObjectWork.spd.x, buku_work.spd_dec, 2048);
        }
        return(num);
    }
コード例 #3
0
    // Token: 0x06001B6B RID: 7019 RVA: 0x000FB040 File Offset: 0x000F9240
    private static void gmEneBukuWalkMain(AppMain.OBS_OBJECT_WORK obj_work)
    {
        AppMain.GMS_ENE_BUKU_WORK gms_ENE_BUKU_WORK = (AppMain.GMS_ENE_BUKU_WORK)obj_work;
        int num = AppMain.gmEneBukuSetWalkSpeed(gms_ENE_BUKU_WORK);

        if (num != 0)
        {
            AppMain.gmEneBukuFlipInit(obj_work);
        }
        if (gms_ENE_BUKU_WORK.timer > 0)
        {
            gms_ENE_BUKU_WORK.timer--;
            return;
        }
        gms_ENE_BUKU_WORK.timer = 216000 + ( int )(AppMain.mtMathRand() % 30);
    }
コード例 #4
0
ファイル: GmEneBuku.cs プロジェクト: uwx/Sonic4Episode1
 private static void gmEneBukuWalkMain(AppMain.OBS_OBJECT_WORK obj_work)
 {
     AppMain.GMS_ENE_BUKU_WORK buku_work = (AppMain.GMS_ENE_BUKU_WORK)obj_work;
     if (AppMain.gmEneBukuSetWalkSpeed(buku_work) != 0)
     {
         AppMain.gmEneBukuFlipInit(obj_work);
     }
     if (buku_work.timer > 0)
     {
         --buku_work.timer;
     }
     else
     {
         buku_work.timer = 216000 + (int)AppMain.mtMathRand() % 30;
     }
 }
コード例 #5
0
ファイル: GmEneBuku.cs プロジェクト: uwx/Sonic4Episode1
 private static AppMain.OBS_OBJECT_WORK GmEneBukuInit(
     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_BUKU_WORK()), "ENE_BUKU");
     AppMain.GMS_ENEMY_3D_WORK gmsEnemy3DWork = (AppMain.GMS_ENEMY_3D_WORK)work;
     AppMain.GMS_ENE_BUKU_WORK gmsEneBukuWork = (AppMain.GMS_ENE_BUKU_WORK)work;
     AppMain.ObjObjectCopyAction3dNNModel(work, AppMain.gm_ene_buku_obj_3d_list[0], gmsEnemy3DWork.obj_3d);
     AppMain.ObjObjectAction3dNNMotionLoad(work, 0, true, AppMain.ObjDataGet(698), (string)null, 0, (AppMain.AMS_AMB_HEADER)null);
     AppMain.ObjDrawObjectSetToon(work);
     work.pos.z = 0;
     AppMain.OBS_RECT_WORK pRec1 = gmsEnemy3DWork.ene_com.rect_work[1];
     AppMain.ObjRectWorkSet(pRec1, (short)-8, (short)-8, (short)8, (short)8);
     pRec1.flag |= 4U;
     AppMain.OBS_RECT_WORK pRec2 = gmsEnemy3DWork.ene_com.rect_work[0];
     AppMain.ObjRectWorkSet(pRec2, (short)-16, (short)-16, (short)16, (short)16);
     pRec2.flag |= 4U;
     gmsEnemy3DWork.ene_com.rect_work[2].flag &= 4294967291U;
     AppMain.OBS_RECT_WORK pRec3 = gmsEnemy3DWork.ene_com.rect_work[2];
     AppMain.ObjRectWorkSet(pRec3, (short)-19, (short)-16, (short)19, (short)16);
     pRec3.flag     &= 4294967291U;
     work.move_flag |= 256U;
     work.move_flag &= 4294967167U;
     if (((int)eve_rec.flag & 1) == 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));
     gmsEneBukuWork.spd_dec      = 102;
     gmsEneBukuWork.spd_dec_dist = 20480;
     AppMain.gmEneBukuWalkInit(work);
     AppMain.GmComEfctSetDispOffsetF(AppMain.GmEfctEneEsCreate(work, 9), -24f, -5f, 0.0f);
     work.obj_3d.use_light_flag &= 4294967294U;
     work.obj_3d.use_light_flag |= 64U;
     return(work);
 }
コード例 #6
0
    // Token: 0x06001B69 RID: 7017 RVA: 0x000FADD0 File Offset: 0x000F8FD0
    private static OBS_OBJECT_WORK GmEneBukuInit(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_BUKU_WORK(), "ENE_BUKU");

        AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)obs_OBJECT_WORK;
        AppMain.GMS_ENE_BUKU_WORK gms_ENE_BUKU_WORK = (AppMain.GMS_ENE_BUKU_WORK)obs_OBJECT_WORK;
        AppMain.ObjObjectCopyAction3dNNModel(obs_OBJECT_WORK, AppMain.gm_ene_buku_obj_3d_list[0], gms_ENEMY_3D_WORK.obj_3d);
        AppMain.ObjObjectAction3dNNMotionLoad(obs_OBJECT_WORK, 0, true, AppMain.ObjDataGet(698), null, 0, null);
        AppMain.ObjDrawObjectSetToon(obs_OBJECT_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, -8, -8, 8, 8);
        obs_RECT_WORK.flag |= 4U;
        obs_RECT_WORK       = gms_ENEMY_3D_WORK.ene_com.rect_work[0];
        AppMain.ObjRectWorkSet(obs_RECT_WORK, -16, -16, 16, 16);
        obs_RECT_WORK.flag |= 4U;
        gms_ENEMY_3D_WORK.ene_com.rect_work[2].flag &= 4294967291U;
        obs_RECT_WORK = gms_ENEMY_3D_WORK.ene_com.rect_work[2];
        AppMain.ObjRectWorkSet(obs_RECT_WORK, -19, -16, 19, 16);
        obs_RECT_WORK.flag        &= 4294967291U;
        obs_OBJECT_WORK.move_flag |= 256U;
        obs_OBJECT_WORK.move_flag &= 4294967167U;
        if ((eve_rec.flag & 1) == 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_BUKU_WORK.spd_dec      = 102;
        gms_ENE_BUKU_WORK.spd_dec_dist = 20480;
        AppMain.gmEneBukuWalkInit(obs_OBJECT_WORK);
        AppMain.GMS_EFFECT_3DES_WORK efct_work = AppMain.GmEfctEneEsCreate(obs_OBJECT_WORK, 9);
        AppMain.GmComEfctSetDispOffsetF(efct_work, -24f, -5f, 0f);
        obs_OBJECT_WORK.obj_3d.use_light_flag &= 4294967294U;
        obs_OBJECT_WORK.obj_3d.use_light_flag |= 64U;
        return(obs_OBJECT_WORK);
    }