private static AppMain.GMS_EFFECT_3DES_WORK gmBoss1EffShockwaveInit( AppMain.GMS_BOSS1_CHAIN_WORK chain_work) { AppMain.OBS_OBJECT_WORK work = AppMain.GMM_EFFECT_CREATE_WORK((AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_BOSS1_EFF_SHOCKWAVE_WORK()), AppMain.GMM_BS_OBJ((object)chain_work), (ushort)0, "B01_ShockWave"); AppMain.GMS_EFFECT_3DES_WORK efct_3des = (AppMain.GMS_EFFECT_3DES_WORK)work; AppMain.GMS_BOSS1_EFF_SHOCKWAVE_WORK sw_work = (AppMain.GMS_BOSS1_EFF_SHOCKWAVE_WORK)efct_3des; sw_work.mgr_work = chain_work.mgr_work; AppMain.gmBoss1MgrIncObjCreateCount(sw_work.mgr_work); int index = AppMain.GmBsCmnIsFinalZoneType(AppMain.GMM_BS_OBJ((object)chain_work.mgr_work)) == 0 ? 706 : 708; AppMain.ObjObjectAction3dESEffectLoad(AppMain.GMM_BS_OBJ((object)efct_3des), efct_3des.obj_3des, AppMain.ObjDataGet(index), (string)null, 0, (AppMain.AMS_AMB_HEADER)null); AppMain.ObjObjectAction3dESTextureLoad(AppMain.GMM_BS_OBJ((object)efct_3des), efct_3des.obj_3des, AppMain.ObjDataGet(709), (string)null, 0, (AppMain.AMS_AMB_HEADER)null, false); AppMain.ObjObjectAction3dESTextureSetByDwork(work, AppMain.ObjDataGet(710)); AppMain.GmEffect3DESSetupBase(efct_3des, 1U, 1U); AppMain.NNS_MATRIX snmMtx = AppMain.GmBsCmnGetSNMMtx(chain_work.snm_work, chain_work.ball_snm_reg_id); AppMain.VEC_Set(ref work.pos, AppMain.FX_F32_TO_FX32(snmMtx.M03), AppMain.GMD_BOSS1_GROUND_POS_Y, 0); work.flag &= 4294967293U; AppMain.GmEffectRectInit(efct_3des.efct_com, AppMain.gm_boss1_eff_sw_atk_flag_tbl, AppMain.gm_boss1_eff_sw_def_flag_tbl, (byte)1, (byte)1); AppMain.ObjRectWorkSet(efct_3des.efct_com.rect_work[1], (short)-64, (short)-32, (short)64, (short)32); sw_work.atk_rect_timer = 10U; work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss1EffShockwaveProcMain); AppMain.gmBoss1EffShockwaveSubpartInit(sw_work, 163840, true); AppMain.gmBoss1EffShockwaveSubpartInit(sw_work, 163840, false); AppMain.mtTaskChangeTcbDestructor(work.tcb, new AppMain.GSF_TASK_PROCEDURE(AppMain.gmBoss1EffShockwaveExit)); return(efct_3des); }
private static AppMain.OBS_OBJECT_WORK GmBoss1ChainInit( AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type) { AppMain.UNREFERENCED_PARAMETER((object)type); AppMain.OBS_OBJECT_WORK work = AppMain.GMM_ENEMY_CREATE_WORK(eve_rec, pos_x, pos_y, (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_BOSS1_CHAIN_WORK()), "BOSS1_CHAIN"); AppMain.GMS_ENEMY_3D_WORK gmsEnemy3DWork = (AppMain.GMS_ENEMY_3D_WORK)work; AppMain.GMS_BOSS1_CHAIN_WORK gmsBosS1ChainWork = (AppMain.GMS_BOSS1_CHAIN_WORK)work; work.move_flag |= 256U; AppMain.ObjObjectCopyAction3dNNModel(work, AppMain.gm_boss1_obj_3d_list[1], gmsEnemy3DWork.obj_3d); AppMain.ObjObjectAction3dNNMotionLoad(work, 0, true, AppMain.ObjDataGet(704), (string)null, 0, (AppMain.AMS_AMB_HEADER)null); AppMain.ObjDrawObjectSetToon(work); work.obj_3d.blend_spd = 0.125f; work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss1ChainWaitSetup); work.flag |= 16U; work.disp_flag |= 4U; gmsEnemy3DWork.ene_com.enemy_flag |= 32768U; AppMain.ObjRectWorkSet(gmsEnemy3DWork.ene_com.rect_work[1], (short)-16, (short)-16, (short)16, (short)16); gmsEnemy3DWork.ene_com.rect_work[1].ppHit = new AppMain.OBS_RECT_WORK_Delegate1(AppMain.gmBoss1ChainAtkHitFunc); gmsEnemy3DWork.ene_com.rect_work[0].flag |= 2048U; gmsEnemy3DWork.ene_com.rect_work[2].flag |= 2048U; work.ppOut = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss1ChainOutFunc); AppMain.mtTaskChangeTcbDestructor(work.tcb, new AppMain.GSF_TASK_PROCEDURE(AppMain.gmBoss1ChainExit)); work.obj_3d.use_light_flag &= 4294967294U; work.obj_3d.use_light_flag |= 64U; return(work); }
private static void gmBoss1ChainExit(AppMain.MTS_TASK_TCB tcb) { AppMain.OBS_OBJECT_WORK tcbWork = AppMain.mtTaskGetTcbWork(tcb); AppMain.GMS_BOSS1_CHAIN_WORK gmsBosS1ChainWork = (AppMain.GMS_BOSS1_CHAIN_WORK)tcbWork; AppMain.gmBoss1MgrDecObjCreateCount(gmsBosS1ChainWork.mgr_work); AppMain.GmBsCmnClearBossMotionCBSystem(tcbWork); AppMain.GmBsCmnDeleteSNMWork(gmsBosS1ChainWork.snm_work); AppMain.GmBsCmnClearCNMCb(tcbWork); AppMain.GmBsCmnDeleteCNMMgrWork(gmsBosS1ChainWork.cnm_mgr_work); AppMain.GmEnemyDefaultExit(tcb); }
private static void gmBoss1EffScatterInit(AppMain.GMS_BOSS1_CHAIN_WORK chain_work) { for (int index = 0; index < 9; ++index) { AppMain.GMS_BS_CMN_NODE_CTRL_OBJECT controlObjectBySize = AppMain.GmBsCmnCreateNodeControlObjectBySize(AppMain.GMM_BS_OBJ((object)chain_work), chain_work.cnm_mgr_work, chain_work.sct_cnm_reg_ids[index], chain_work.snm_work, chain_work.sct_snm_reg_ids[index], (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_BOSS1_EFF_SCT_PART_NDC_WORK())); AppMain.GMS_BOSS1_EFF_SCT_PART_NDC_WORK sct_part_ndc = (AppMain.GMS_BOSS1_EFF_SCT_PART_NDC_WORK)controlObjectBySize; controlObjectBySize.user_timer = (uint)AppMain.mtMathRand() % 20U; controlObjectBySize.is_enable = 0; AppMain.gmBoss1EffScatterSetPartParam(sct_part_ndc, index == 8); AppMain.GMM_BS_OBJ((object)controlObjectBySize).move_flag |= 4608U; AppMain.nnMakeUnitQuaternion(ref controlObjectBySize.user_quat); controlObjectBySize.proc_update = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss1EffScatterProcWait); } }
private static void gmBoss1MgrWaitLoad(AppMain.OBS_OBJECT_WORK obj_work) { bool flag = false; if (AppMain.GmBsCmnIsFinalZoneType(obj_work) != 0) { if (AppMain.GmMainDatLoadBossBattleLoadCheck(0)) { flag = true; } } else { flag = true; } if (!flag) { return; } AppMain.GMS_BOSS1_MGR_WORK mgr_work = (AppMain.GMS_BOSS1_MGR_WORK)obj_work; AppMain.OBS_OBJECT_WORK obsObjectWork1 = AppMain.GmEventMgrLocalEventBirth((ushort)313, obj_work.pos.x, obj_work.pos.y, (ushort)0, (sbyte)0, (sbyte)0, (byte)0, (byte)0, (byte)0); AppMain.gmBoss1MgrIncObjCreateCount(mgr_work); AppMain.OBS_OBJECT_WORK obsObjectWork2 = AppMain.GmEventMgrLocalEventBirth((ushort)314, obj_work.pos.x, obj_work.pos.y, (ushort)0, (sbyte)0, (sbyte)0, (byte)0, (byte)0, (byte)0); AppMain.gmBoss1MgrIncObjCreateCount(mgr_work); AppMain.OBS_OBJECT_WORK obsObjectWork3 = AppMain.GmEventMgrLocalEventBirth((ushort)315, obj_work.pos.x, obj_work.pos.y, (ushort)0, (sbyte)0, (sbyte)0, (byte)0, (byte)0, (byte)0); AppMain.gmBoss1MgrIncObjCreateCount(mgr_work); AppMain.GMS_BOSS1_BODY_WORK gmsBosS1BodyWork = (AppMain.GMS_BOSS1_BODY_WORK)obsObjectWork1; AppMain.GMS_BOSS1_CHAIN_WORK gmsBosS1ChainWork = (AppMain.GMS_BOSS1_CHAIN_WORK)obsObjectWork2; AppMain.GMS_BOSS1_EGG_WORK gmsBosS1EggWork = (AppMain.GMS_BOSS1_EGG_WORK)obsObjectWork3; mgr_work.body_work = gmsBosS1BodyWork; gmsBosS1BodyWork.mgr_work = mgr_work; gmsBosS1ChainWork.mgr_work = mgr_work; gmsBosS1EggWork.mgr_work = mgr_work; obsObjectWork1.parent_obj = obj_work; obsObjectWork2.parent_obj = obsObjectWork1; obsObjectWork3.parent_obj = obsObjectWork1; gmsBosS1BodyWork.parts_objs[0] = obsObjectWork1; gmsBosS1BodyWork.parts_objs[1] = obsObjectWork2; gmsBosS1BodyWork.parts_objs[2] = obsObjectWork3; obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss1MgrWaitSetup); }
private static void gmBoss1ChainWaitSetup(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_BOSS1_CHAIN_WORK gmsBosS1ChainWork = (AppMain.GMS_BOSS1_CHAIN_WORK)obj_work; if (((int)AppMain.GMM_BOSS1_MGR((AppMain.GMS_BOSS1_BODY_WORK)obj_work.parent_obj).flag & 1) == 0) { return; } AppMain.GmBsCmnInitBossMotionCBSystem(obj_work, gmsBosS1ChainWork.bmcb_mgr); AppMain.GmBsCmnCreateSNMWork(gmsBosS1ChainWork.snm_work, obj_work.obj_3d._object, (ushort)10); AppMain.GmBsCmnAppendBossMotionCallback(gmsBosS1ChainWork.bmcb_mgr, gmsBosS1ChainWork.snm_work.bmcb_link); gmsBosS1ChainWork.ball_snm_reg_id = AppMain.GmBsCmnRegisterSNMNode(gmsBosS1ChainWork.snm_work, 11); for (int index = 0; index < 9; ++index) { gmsBosS1ChainWork.sct_snm_reg_ids[index] = AppMain.GmBsCmnRegisterSNMNode(gmsBosS1ChainWork.snm_work, 2 + index); } AppMain.GmBsCmnCreateCNMMgrWork(gmsBosS1ChainWork.cnm_mgr_work, obj_work.obj_3d._object, (ushort)9); AppMain.GmBsCmnInitCNMCb(obj_work, gmsBosS1ChainWork.cnm_mgr_work); for (int index = 0; index < 9; ++index) { gmsBosS1ChainWork.sct_cnm_reg_ids[index] = AppMain.GmBsCmnRegisterCNMNode(gmsBosS1ChainWork.cnm_mgr_work, 2 + index); } obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmBoss1ChainMain); }
private static void gmBoss1ChainOutFunc(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_BOSS1_CHAIN_WORK gmsBosS1ChainWork = (AppMain.GMS_BOSS1_CHAIN_WORK)obj_work; AppMain.GmBsCmnUpdateCNMParam(obj_work, gmsBosS1ChainWork.cnm_mgr_work); AppMain.ObjDrawActionSummary(obj_work); }
private static void gmBoss1ChainUpdateAtkRectPosition(AppMain.GMS_BOSS1_CHAIN_WORK chain_work) { AppMain.OBS_OBJECT_WORK obsObjectWork = AppMain.GMM_BS_OBJ((object)chain_work); AppMain.NNS_MATRIX snmMtx = AppMain.GmBsCmnGetSNMMtx(chain_work.snm_work, chain_work.ball_snm_reg_id); AppMain.VEC_Set(ref chain_work.ene_3d.ene_com.rect_work[1].rect.pos, AppMain.FX_F32_TO_FX32(snmMtx.M03) - obsObjectWork.pos.x, AppMain.FX_F32_TO_FX32(-snmMtx.M13) - obsObjectWork.pos.y, 0); }
private static void gmBoss1ChainMain(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_BOSS1_CHAIN_WORK chain_work = (AppMain.GMS_BOSS1_CHAIN_WORK)obj_work; AppMain.GMS_BOSS1_BODY_WORK parentObj = (AppMain.GMS_BOSS1_BODY_WORK)obj_work.parent_obj; bool flag; if (((int)parentObj.flag & 1) != 0) { obj_work.disp_flag |= 4194304U; flag = true; } else { obj_work.disp_flag &= 4290772991U; flag = false; } if (((int)chain_work.flag & 1) != 0) { obj_work.obj_3d.flag &= 4294967294U; if ((double)obj_work.obj_3d.marge > 0.0) { obj_work.obj_3d.marge -= obj_work.obj_3d.blend_spd; } else { chain_work.flag &= 4294967294U; if (AppMain.gm_boss1_act_id_tbl[parentObj.whole_act_id][1].is_repeat != (byte)0) { obj_work.disp_flag |= 4U; } else { obj_work.disp_flag &= 4294967291U; } obj_work.obj_3d.marge = 0.0f; } } if (((int)AppMain.GMM_BS_OBJ((object)parentObj).disp_flag & 16) != 0) { obj_work.disp_flag |= 16U; } else if (((int)parentObj.flag & 128) == 0) { obj_work.disp_flag &= 4294967279U; } if (((int)parentObj.flag & 32) != 0) { obj_work.disp_flag |= 32U; } else { obj_work.disp_flag &= 4294967263U; } if (((int)parentObj.flag & 64) != 0) { obj_work.flag |= 2U; } else { obj_work.flag &= 4294967293U; } if (((int)parentObj.flag & 8) != 0) { obj_work.disp_flag |= 16U; obj_work.flag |= 2U; } AppMain.GmBsCmnUpdateObject3DNNStuckWithNode(obj_work, parentObj.snm_work, parentObj.chain_snm_reg_id, flag ? 1 : 0); if (((int)parentObj.flag & 134217728) != 0) { parentObj.flag &= 4160749567U; AppMain.gmBoss1EffShockwaveInit(chain_work); } if (((int)parentObj.flag & 67108864) != 0) { parentObj.flag &= 4227858431U; AppMain.gmBoss1EffScatterInit(chain_work); } AppMain.gmBoss1ChainUpdateAtkRectPosition(chain_work); }