コード例 #1
0
 // Token: 0x060004F7 RID: 1271 RVA: 0x0002AAE4 File Offset: 0x00028CE4
 private static AppMain.OBS_OBJECT_WORK GmBoss5LandInit(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type)
 {
     AppMain.GMS_BOSS5_LAND_PLACEMENT_INFO gms_BOSS5_LAND_PLACEMENT_INFO = new AppMain.GMS_BOSS5_LAND_PLACEMENT_INFO();
     if (AppMain.gmBoss5LandGetPlacementInfo(gms_BOSS5_LAND_PLACEMENT_INFO) == 0)
     {
         return(null);
     }
     AppMain.OBS_OBJECT_WORK     obs_OBJECT_WORK = AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, gms_BOSS5_LAND_PLACEMENT_INFO.pos_x, gms_BOSS5_LAND_PLACEMENT_INFO.pos_y, () => new AppMain.GMS_BOSS5_LAND_WORK(), "BOSS5_LAND");
     AppMain.GMS_BOSS5_LAND_WORK land_work       = (AppMain.GMS_BOSS5_LAND_WORK)obs_OBJECT_WORK;
     obs_OBJECT_WORK.pos.z      = -524288;
     obs_OBJECT_WORK.flag      |= 16U;
     obs_OBJECT_WORK.flag      &= 4294966271U;
     obs_OBJECT_WORK.disp_flag &= 4294967263U;
     obs_OBJECT_WORK.disp_flag |= 4194304U;
     obs_OBJECT_WORK.move_flag |= 8448U;
     obs_OBJECT_WORK.move_flag &= 4294967167U;
     for (int i = 0; i < gms_BOSS5_LAND_PLACEMENT_INFO.part_num; i++)
     {
         uint num = (uint)((long)i % 3L);
         AppMain.gmBoss5LandCreateLdPart(land_work, AppMain.gm_boss5_land_place_pattern_tbl[( int )(( UIntPtr )num)], i);
     }
     AppMain.gmBoss5LandSetObjCollisionRect(land_work, gms_BOSS5_LAND_PLACEMENT_INFO.part_num);
     obs_OBJECT_WORK.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss5LandMain);
     AppMain.gmBoss5LandProcInit(land_work);
     return(obs_OBJECT_WORK);
 }
コード例 #2
0
ファイル: GmBoss5Land.cs プロジェクト: uwx/Sonic4Episode1
    private static int gmBoss5LandGetPlacementInfo(AppMain.GMS_BOSS5_LAND_PLACEMENT_INFO place_info)
    {
        AppMain.GMS_EVE_RECORD_EVENT gmsEveRecordEvent = (AppMain.GMS_EVE_RECORD_EVENT)null;
        AppMain.OBS_OBJECT_WORK      obj_work;
        for (obj_work = AppMain.ObjObjectSearchRegistObject((AppMain.OBS_OBJECT_WORK)null, (ushort)3); obj_work != null; obj_work = AppMain.ObjObjectSearchRegistObject(obj_work, (ushort)3))
        {
            AppMain.GMS_ENEMY_COM_WORK gmsEnemyComWork = (AppMain.GMS_ENEMY_COM_WORK)obj_work;
            if (gmsEnemyComWork.eve_rec != null && gmsEnemyComWork.eve_rec.id == (ushort)282)
            {
                gmsEveRecordEvent = gmsEnemyComWork.eve_rec;
                break;
            }
        }
        if (obj_work == null)
        {
            AppMain.mppAssertNotImpl();
            return(0);
        }
        place_info.pos_x = obj_work.pos.x;
        place_info.pos_y = obj_work.pos.y;
        int num = (int)gmsEveRecordEvent.left + (int)gmsEveRecordEvent.width << 3;

        place_info.part_num = (int)((long)num / (long)AppMain.GMD_BOSS5_LAND_LDPART_WIDTH_INT);
        return(1);
    }
コード例 #3
0
    // Token: 0x060004F9 RID: 1273 RVA: 0x0002AC60 File Offset: 0x00028E60
    private static int gmBoss5LandGetPlacementInfo(AppMain.GMS_BOSS5_LAND_PLACEMENT_INFO place_info)
    {
        AppMain.GMS_EVE_RECORD_EVENT gms_EVE_RECORD_EVENT = null;
        AppMain.OBS_OBJECT_WORK      obs_OBJECT_WORK;
        for (obs_OBJECT_WORK = AppMain.ObjObjectSearchRegistObject(null, 3); obs_OBJECT_WORK != null; obs_OBJECT_WORK = AppMain.ObjObjectSearchRegistObject(obs_OBJECT_WORK, 3))
        {
            AppMain.GMS_ENEMY_COM_WORK gms_ENEMY_COM_WORK = (AppMain.GMS_ENEMY_COM_WORK)obs_OBJECT_WORK;
            if (gms_ENEMY_COM_WORK.eve_rec != null && gms_ENEMY_COM_WORK.eve_rec.id == 282)
            {
                gms_EVE_RECORD_EVENT = gms_ENEMY_COM_WORK.eve_rec;
                break;
            }
        }
        if (obs_OBJECT_WORK == null)
        {
            AppMain.mppAssertNotImpl();
            return(0);
        }
        place_info.pos_x = obs_OBJECT_WORK.pos.x;
        place_info.pos_y = obs_OBJECT_WORK.pos.y;
        int num = (int)(gms_EVE_RECORD_EVENT.left + (sbyte)gms_EVE_RECORD_EVENT.width);

        num <<= 3;
        place_info.part_num = ( int )(( long )num / ( long )(( ulong )AppMain.GMD_BOSS5_LAND_LDPART_WIDTH_INT));
        return(1);
    }
コード例 #4
0
ファイル: GmBoss5Land.cs プロジェクト: uwx/Sonic4Episode1
 private static AppMain.OBS_OBJECT_WORK GmBoss5LandInit(
     AppMain.GMS_EVE_RECORD_EVENT eve_rec,
     int pos_x,
     int pos_y,
     byte type)
 {
     AppMain.GMS_BOSS5_LAND_PLACEMENT_INFO place_info = new AppMain.GMS_BOSS5_LAND_PLACEMENT_INFO();
     if (AppMain.gmBoss5LandGetPlacementInfo(place_info) == 0)
     {
         return((AppMain.OBS_OBJECT_WORK)null);
     }
     AppMain.OBS_OBJECT_WORK     work           = AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, place_info.pos_x, place_info.pos_y, (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_BOSS5_LAND_WORK()), "BOSS5_LAND");
     AppMain.GMS_ENEMY_3D_WORK   gmsEnemy3DWork = (AppMain.GMS_ENEMY_3D_WORK)work;
     AppMain.GMS_BOSS5_LAND_WORK land_work      = (AppMain.GMS_BOSS5_LAND_WORK)work;
     work.pos.z      = -524288;
     work.flag      |= 16U;
     work.flag      &= 4294966271U;
     work.disp_flag &= 4294967263U;
     work.disp_flag |= 4194304U;
     work.move_flag |= 8448U;
     work.move_flag &= 4294967167U;
     for (int part_index = 0; part_index < place_info.part_num; ++part_index)
     {
         uint num = (uint)((ulong)part_index % 3UL);
         AppMain.gmBoss5LandCreateLdPart(land_work, AppMain.gm_boss5_land_place_pattern_tbl[(int)num], part_index);
     }
     AppMain.gmBoss5LandSetObjCollisionRect(land_work, place_info.part_num);
     work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss5LandMain);
     AppMain.gmBoss5LandProcInit(land_work);
     return(work);
 }