Пример #1
0
 public static AppMain.MTS_TASK_TCB mtTaskMake(
     AppMain.GSF_TASK_PROCEDURE proc,
     AppMain.GSF_TASK_PROCEDURE dest,
     uint flag,
     ushort pause_level,
     uint prio,
     int group,
     AppMain.TaskWorkFactoryDelegate work_size,
     string name)
 {
     if (((int)flag & int.MinValue) == 0 && (uint)group >= 15U)
     {
         group = 14;
     }
     AppMain.AMS_TCB amsTcb = AppMain.amTaskMake(AppMain._mtTaskProcedure, AppMain._mtTaskDestructor, prio, (uint)(1 << group), 2U, name);
     amsTcb.work = (object)new AppMain.MTS_TASK_TCB();
     AppMain.MTS_TASK_TCB work = (AppMain.MTS_TASK_TCB)AppMain.amTaskGetWork(amsTcb);
     work.am_tcb      = amsTcb;
     work.proc        = proc;
     work.dest        = dest;
     work.pause_level = pause_level;
     if (((int)flag & 1) != 0)
     {
         work.pause_level = ushort.MaxValue;
     }
     work.work = (object)null;
     if (work_size != null)
     {
         work.work = work_size();
     }
     AppMain.amTaskStart(amsTcb);
     return(work);
 }
 // Token: 0x060016D7 RID: 5847 RVA: 0x000C741C File Offset: 0x000C561C
 public static AppMain.MTS_TASK_TCB mtTaskMake(AppMain.GSF_TASK_PROCEDURE proc, AppMain.GSF_TASK_PROCEDURE dest, uint flag, ushort pause_level, uint prio, int group, AppMain.TaskWorkFactoryDelegate work_size, string name)
 {
     if ((flag & 2147483648U) == 0U && group >= 15)
     {
         group = 14;
     }
     AppMain.AMS_TCB ams_TCB = AppMain.amTaskMake(AppMain._mtTaskProcedure, AppMain._mtTaskDestructor, prio, 1U << group, 2U, name);
     ams_TCB.work = new AppMain.MTS_TASK_TCB();
     AppMain.MTS_TASK_TCB mts_TASK_TCB = (AppMain.MTS_TASK_TCB)AppMain.amTaskGetWork(ams_TCB);
     mts_TASK_TCB.am_tcb      = ams_TCB;
     mts_TASK_TCB.proc        = proc;
     mts_TASK_TCB.dest        = dest;
     mts_TASK_TCB.pause_level = pause_level;
     if ((flag & 1U) != 0U)
     {
         mts_TASK_TCB.pause_level = ushort.MaxValue;
     }
     mts_TASK_TCB.work = null;
     if (work_size != null)
     {
         mts_TASK_TCB.work = work_size();
     }
     AppMain.amTaskStart(ams_TCB);
     return(mts_TASK_TCB);
 }
Пример #3
0
 private static void gmMainObjectReleaseFinalClearObjWait(AppMain.MTS_TASK_TCB tcb)
 {
     if (!AppMain.ObjObjectCheckClearAllObject())
     {
         return;
     }
     AppMain.GSF_TASK_PROCEDURE proc;
     if (AppMain.GmMainDatLoadBossBattleLoadCheck())
     {
         proc = new AppMain.GSF_TASK_PROCEDURE(AppMain.gmMainObjectReleaseFinalWait);
         AppMain.GmGameDatLoadBossBattleExit();
         AppMain.GmGameDatReleaseBossBattleStart(AppMain.g_gm_main_system.boss_load_no);
     }
     else if (AppMain.GmMainDatLoadBossBattleLoadNowCheck())
     {
         proc = new AppMain.GSF_TASK_PROCEDURE(AppMain.gmMainObjectReleaseFinalLoadWait);
     }
     else if (AppMain.GmMainDatReleaseBossBattleReleaseNowCheck())
     {
         proc = new AppMain.GSF_TASK_PROCEDURE(AppMain.gmMainObjectReleaseFinalWait);
         AppMain.GmGameDatLoadBossBattleExit();
     }
     else
     {
         proc = new AppMain.GSF_TASK_PROCEDURE(AppMain.gmMainObjectReleaseWait);
         AppMain.GmGameDatReleaseBossBattleExit();
         AppMain.g_obj.flag |= 1073741824U;
         AppMain.ObjExit();
     }
     AppMain.mtTaskChangeTcbProcedure(tcb, proc);
 }
Пример #4
0
 private static void gmMainDataFlushExitFinalClearObjWait(AppMain.MTS_TASK_TCB tcb)
 {
     AppMain._bossFinishThread = true;
     if (!AppMain.ObjObjectCheckClearAllObject())
     {
         return;
     }
     AppMain.GsSoundReset();
     AppMain.GSF_TASK_PROCEDURE proc;
     if (AppMain.GmMainDatLoadBossBattleLoadCheck())
     {
         proc = new AppMain.GSF_TASK_PROCEDURE(AppMain.gmMainDataFlushExitFinalWait);
         AppMain.GmGameDatLoadBossBattleExit();
         AppMain.GmGameDatReleaseBossBattleStart(AppMain.g_gm_main_system.boss_load_no);
     }
     else if (AppMain.GmMainDatLoadBossBattleLoadNowCheck())
     {
         proc = new AppMain.GSF_TASK_PROCEDURE(AppMain.gmMainDataFlushExitFinalLoadWait);
     }
     else if (AppMain.GmMainDatReleaseBossBattleReleaseNowCheck())
     {
         proc = new AppMain.GSF_TASK_PROCEDURE(AppMain.gmMainDataFlushExitFinalWait);
         AppMain.GmGameDatLoadBossBattleExit();
     }
     else
     {
         proc = new AppMain.GSF_TASK_PROCEDURE(AppMain.gmMainDataFlushExitWait);
         AppMain.GmGameDatReleaseBossBattleExit();
     }
     AppMain.mtTaskChangeTcbProcedure(tcb, proc);
 }
Пример #5
0
 public void Clear()
 {
     this.am_tcb      = (AppMain.AMS_TCB)null;
     this.proc        = (AppMain.GSF_TASK_PROCEDURE)null;
     this.dest        = (AppMain.GSF_TASK_PROCEDURE)null;
     this.pause_level = (ushort)0;
     this.work        = (object)null;
 }
Пример #6
0
 public static AppMain.MTS_TASK_TCB MTM_TASK_MAKE_TCB(
     AppMain.GSF_TASK_PROCEDURE proc,
     AppMain.GSF_TASK_PROCEDURE dest,
     uint flag,
     ushort pause_level,
     uint prio,
     int group,
     AppMain.TaskWorkFactoryDelegate work_size,
     string name)
 {
     return(AppMain.mtTaskMake(proc, dest, flag, pause_level, prio, group, work_size, name));
 }
Пример #7
0
    // Token: 0x060016D7 RID: 5847 RVA: 0x000C741C File Offset: 0x000C561C
    public static MTS_TASK_TCB mtTaskMake(AppMain.GSF_TASK_PROCEDURE proc, AppMain.GSF_TASK_PROCEDURE dest,
                                          uint flag, ushort pause_level, uint prio, int group, AppMain.TaskWorkFactoryDelegate work_size, string name)
    {
        if ((flag & 2147483648U) == 0U && group >= 15)
        {
            group = 14;
        }

        if (string.IsNullOrEmpty(name))
        {
            throw new ArgumentNullException(nameof(name));
        }

        Debug.WriteLine($"Creating task {name}, group {group}, priority {prio}.");

        AppMain.AMS_TCB ams_TCB = AppMain.amTaskMake(AppMain._mtTaskProcedure, AppMain._mtTaskDestructor, prio,
                                                     1U << group, 2U, name);
        ams_TCB.work = new MTS_TASK_TCB();
        MTS_TASK_TCB mts_TASK_TCB = (MTS_TASK_TCB)AppMain.amTaskGetWork(ams_TCB);

        mts_TASK_TCB.am_tcb      = ams_TCB;
        mts_TASK_TCB.proc        = proc;
        mts_TASK_TCB.dest        = dest;
        mts_TASK_TCB.pause_level = pause_level;
        if ((flag & 1U) != 0U)
        {
            mts_TASK_TCB.pause_level = ushort.MaxValue;
        }

        mts_TASK_TCB.work = null;
        if (work_size != null)
        {
            mts_TASK_TCB.work = work_size();
        }

        AppMain.amTaskStart(ams_TCB);
        return(mts_TASK_TCB);
    }
Пример #8
0
 // Token: 0x060016DA RID: 5850 RVA: 0x000C74EE File Offset: 0x000C56EE
 public static void mtTaskChangeTcbProcedure(MTS_TASK_TCB tcb, AppMain.GSF_TASK_PROCEDURE proc)
 {
     tcb.proc = proc;
 }
Пример #9
0
 // Token: 0x060016DB RID: 5851 RVA: 0x000C74F7 File Offset: 0x000C56F7
 public static void mtTaskChangeTcbDestructor(MTS_TASK_TCB tcb, AppMain.GSF_TASK_PROCEDURE dest)
 {
     tcb.dest = dest;
 }