public static void SetCharacterData(BTL_DATA btl, UInt32 id, UInt32 val) { FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle; switch (id) { case 32u: for (Int32 i = 0; i < btl.meshCount; i++) { btl.SetIsEnabledMeshRenderer(i, true); } btl.getShadow().SetActive(true); btl.SetIsEnabledWeaponRenderer(true); btl.SetIsEnabledBattleModelRenderer(true); btl_sys.AddCharacter(btl); break; case 33u: for (Int32 j = 0; j < btl.meshCount; j++) { btl.SetIsEnabledMeshRenderer(j, false); } btl.getShadow().SetActive(false); btl.SetIsEnabledWeaponRenderer(false); btl.SetIsEnabledBattleModelRenderer(false); btl_cmd.KillCommand2(btl); btl_sys.DelCharacter(btl); break; case 34u: if (btl_cmd.KillCommand2(btl)) { btl.sel_mode = 0; } break; case 35u: btl.max.hp = (UInt16)val; break; case 36u: btl.cur.hp = (UInt16)val; break; case 37u: btl.max.mp = (Int16)val; break; case 38u: btl.cur.mp = (Int16)val; break; case 40u: btl.cur.at = (Int16)val; break; case 48u: btl.def_attr.invalid = (Byte)val; break; case 49u: btl.def_attr.absorb = (Byte)val; break; case 50u: btl.def_attr.half = (Byte)val; break; case 51u: btl.def_attr.weak = (Byte)val; break; case 52u: if (ff9Battle.btl_phase == 2) { btl.tar_mode = 0; btl.bi.target = 0; btl.bi.atb = 0; btl.bi.select = 0; } else { btl.tar_mode = (Byte)(2u + val); } break; case 53u: btl.SetDisappear((Byte)val); if (val == 0u || ff9Battle.btl_phase == 2) { } break; case 54u: btl.bi.shadow = (Byte)val; if (btl.bi.shadow != 0) { btl.getShadow().SetActive(true); } else { btl.getShadow().SetActive(false); } break; case 55u: geo.geoScaleSet(btl, (Int32)val); btlshadow.FF9ShadowSetScaleBattle(btl_util.GetFF9CharNo(btl), (Byte)((UInt32)btl.shadow_x * val >> 12), (Byte)((UInt32)btl.shadow_z * val >> 12)); break; case 56u: geo.geoScaleReset(btl); btlshadow.FF9ShadowSetScaleBattle(btl_util.GetFF9CharNo(btl), btl.shadow_x, btl.shadow_z); break; case 59u: btl_mot.HideMesh(btl, (UInt16)val, false); btl.mesh_current = (UInt16)(btl.mesh_current | (UInt16)val); break; case 60u: btl_mot.ShowMesh(btl, (UInt16)val, false); btl.mesh_current = (UInt16)(btl.mesh_current & (UInt16)(~(UInt16)val)); break; case 61u: GeoTexAnim.geoTexAnimPlay(btl.texanimptr, (Int32)val); break; case 62u: GeoTexAnim.geoTexAnimStop(btl.texanimptr, (Int32)val); break; case 63u: GeoTexAnim.geoTexAnimPlayOnce(btl.texanimptr, (Int32)val); break; case 69u: btl.bi.def_idle = (Byte)val; break; case 71u: btl_sys.SetBonus(btl_util.getEnemyTypePtr(btl)); break; case 72u: btl.elem.str = (Byte)val; break; case 73u: btl.elem.mgc = (Byte)val; break; case 74u: btl.defence.PhisicalDefence = (Byte)val; break; case 75u: btl.defence.PhisicalEvade = (Byte)val; break; case 76u: btl.defence.MagicalDefence = (Byte)val; break; case 77u: btl.defence.MagicalEvade = (Byte)val; break; case 78u: btl.cur.at = btl.max.at; btl.sel_mode = 1; btl_cmd.SetCommand(btl.cmd[0], 20u, 187u, (UInt16)val, 8u); UIManager.Battle.FF9BMenu_EnableMenu(true); break; } }
public void updateModelsToBeAdded() { if (this.gMode != 1 && this.gMode != 3 && (Int32)this._ff9Sys.prevMode != 9 || (Int32)this.sEventContext1.inited == 0) { return; } for (ObjList objList = this._context.activeObj; objList != null; objList = objList.next) { Obj obj = objList.obj; if ((Int32)obj.cid == 4) { PosObj posObj = (PosObj)obj; if ((Int32)posObj.model != (Int32)UInt16.MaxValue) { if (!((UnityEngine.Object)posObj.go != (UnityEngine.Object)null)) { posObj.go = ModelFactory.CreateModel(FF9BattleDB.GEO.GetValue((Int32)posObj.model), false); if (this.gMode == 1) { GeoTexAnim.addTexAnim(posObj.go, FF9BattleDB.GEO.GetValue((Int32)posObj.model)); } if (this.gMode == 1) { this.ReassignBasicAnimationForField((Actor)posObj); } } if ((UnityEngine.Object)posObj.go != (UnityEngine.Object)null) { this.requiredAddActor = true; this.toBeAddedObjUIDList.Add((Int32)posObj.uid); } //if (this.gMode != 1) // ; } } } this.sEventContext1.inited = (Byte)0; if (!this.requiredAddActor) { return; } Int32 num = (Int32)this.GetControlUID(); this.requiredAddActor = false; using (List <Int32> .Enumerator enumerator = this.toBeAddedObjUIDList.GetEnumerator()) { while (enumerator.MoveNext()) { Int32 current = enumerator.Current; Obj objUid = this.GetObjUID(current); Boolean isPlayer = current == num; if (this.gMode == 1) { if (isPlayer) { objUid.go.name = "Player"; } else { //Debug.Log((object)("o.uid = " + (object)objUid.uid + ", o.sid = " + (object)objUid.sid)); objUid.go.name = "obj" + (Object)current; } FF9Char ff9Char = new FF9Char(); ff9Char.geo = objUid.go; ff9Char.evt = (PosObj)objUid; FF9StateSystem.Common.FF9.charArray.Add((Int32)objUid.uid, ff9Char); FF9FieldCharState ff9FieldCharState = new FF9FieldCharState(); FF9StateSystem.Field.FF9Field.loc.map.charStateArray.Add((Int32)objUid.uid, ff9FieldCharState); FF9StateSystem.Field.FF9Field.loc.map.shadowArray.Add((Int32)objUid.uid, new FF9Shadow()); this.fieldmap.AddFieldChar(objUid.go, ((PosObj)objUid).posField, ((PosObj)objUid).rotField, isPlayer, (Actor)objUid, true); this.turnOffTriManually((Int32)objUid.sid); } else if (this.gMode == 3) { Singleton <WMWorld> .Instance.addWMActorOnly((Actor)objUid); Singleton <WMWorld> .Instance.addGameObjectToWMActor(objUid.go, ((Actor)objUid).wmActor); PosObj posObj = (PosObj)objUid; //if ((Int32)posObj.uid != (Int32)this._context.controlUID) // ; ((Actor)objUid).wmActor.SetPosition(posObj.pos[0], posObj.pos[1], posObj.pos[2]); } } } this.requiredAddActor = false; this.toBeAddedObjUIDList.Clear(); }
public static UInt32 RemoveStatus(BTL_DATA btl, UInt32 status) { STAT_INFO stat = btl.stat; if (((Int32)stat.permanent & (Int32)status) != 0 || ((Int32)stat.cur & (Int32)status) == 0 || btl.bi.player == 0 && FF9StateSystem.Battle.FF9Battle.btl_phase == 5 && (status & 4099L) != 0L) { return(1); } stat.cur &= ~status; switch ((BattleStatus)status) { case BattleStatus.Petrify: SetStatusClut(btl, false); break; case BattleStatus.Zombie: case BattleStatus.Heat: case BattleStatus.Freeze: if (Status.checkCurStat(btl, 50333760U)) { SetStatusPolyColor(btl); } break; case BattleStatus.Death: btl.die_seq = 0; btl.bi.dmg_mot_f = 0; btl.bi.cmd_idle = 0; btl.bi.death_f = 0; btl.bi.stop_anim = 0; btl.escape_key = 0; if (btl_mot.checkMotion(btl, 4) || btl_mot.checkMotion(btl, 8)) { GeoTexAnim.geoTexAnimPlay(btl.texanimptr, 2); if (btl.bi.player != 0) { GeoTexAnim.geoTexAnimPlay(btl.tranceTexanimptr, 2); } btl_mot.setMotion(btl, 6); btl.evt.animFrame = 0; } if (FF9StateSystem.Battle.FF9Battle.cur_cmd.regist != btl || FF9StateSystem.Battle.FF9Battle.cur_cmd.cmd_no > 48) { btl.sel_mode = 0; } btl_cmd.KillSpecificCommand(btl, 60); if (((Int32)btl.stat.permanent & 262144) != 0) { SetOprStatusCount(btl, 18U); } break; case BattleStatus.Confuse: Vector3 eulerAngles = btl.rot.eulerAngles; eulerAngles.y = btl.evt.rotBattle.eulerAngles.y; btl.rot = Quaternion.Euler(eulerAngles); StatusCommandCancel(btl, status); break; case BattleStatus.Berserk: StatusCommandCancel(btl, status); if (Status.checkCurStat(btl, 50333760U)) { SetStatusPolyColor(btl); } break; case BattleStatus.Trance: btl.trance = 0; if (Status.checkCurStat(btl, 1073741824U)) { RemoveStatus(btl, 1073741824U); btl.SetDisappear(0); btl_mot.setBasePos(btl); btl_mot.setMotion(btl, btl.bi.def_idle); btl.evt.animFrame = 0; } btl_cmd.SetCommand(btl.cmd[4], 59U, 0U, btl.btl_id, 0U); break; case BattleStatus.Haste: case BattleStatus.Slow: btl_para.InitATB(btl); break; case BattleStatus.Float: Single value = 0f; btl.pos[1] = value; btl.base_pos[1] = value; break; case BattleStatus.Vanish: btl_mot.ShowMesh(btl, btl.mesh_banish, true); break; case BattleStatus.Doom: if (btl.deathMessage != null) { Singleton <HUDMessage> .Instance.ReleaseObject(btl.deathMessage); btl.deathMessage = null; } break; case BattleStatus.Mini: geo.geoScaleReset(btl); btlshadow.FF9ShadowSetScaleBattle(btl_util.GetFF9CharNo(btl), btl.shadow_x, btl.shadow_z); break; case BattleStatus.Jump: btl.tar_mode = 3; btl.bi.atb = 1; if (btl.bi.player != 0 && !FF9StateSystem.Settings.IsATBFull) { btl.cur.at = 0; } btl.sel_mode = 0; btl.cmd[3].cmd_no = 0; btl.cmd[3].tar_id = 0; break; case BattleStatus.GradualPetrify: if (btl.petrifyMessage != null) { Singleton <HUDMessage> .Instance.ReleaseObject(btl.petrifyMessage); btl.petrifyMessage = null; } btl_cmd.KillSpecificCommand(btl, 62); break; } HonoluluBattleMain.battleSPS.RemoveBtlSPSObj(btl, status); return(2); }
public static void geoTexAnimService(GEOTEXHEADER texHeader) { if (texHeader == null) { return; } for (Int32 i = 0; i < (Int32)texHeader.count; i++) { GEOTEXANIMHEADER geotexanimheader = texHeader.geotex[i]; if ((geotexanimheader.flags & 1) != 0) { if (geotexanimheader.numframes != 0) { Int32 num = geotexanimheader.frame; Int16 lastframe = geotexanimheader.lastframe; Int16 num2 = (Int16)(num >> 12); if (num2 >= 0) { if (num2 != lastframe) { for (Int32 j = 0; j < (Int32)geotexanimheader.count; j++) { if (texHeader.geotex != null) { GeoTexAnim.MultiTexAnimService(geotexanimheader, texHeader, i, num2); } } geotexanimheader.lastframe = num2; } Int16 rate = geotexanimheader.rate; num += (Int32)rate; } else { num += 4096; } if (num >> 12 < (Int32)geotexanimheader.numframes) { geotexanimheader.frame = num; } else if (geotexanimheader.randrange > 0) { UInt32 num3 = (UInt32)UnityEngine.Random.Range((Int32)geotexanimheader.randmin, (Int32)(geotexanimheader.randrange + 1)); geotexanimheader.frame = (Int32)(-(Int32)((UInt64)((UInt64)num3 << 12))); } else if ((geotexanimheader.flags & 2) != 0) { Byte b = 3; GEOTEXANIMHEADER geotexanimheader2 = geotexanimheader; geotexanimheader2.flags = (Byte)(geotexanimheader2.flags & (Byte)(~b)); } else { geotexanimheader.frame = 0; } } else if ((geotexanimheader.flags & 4) != 0) { global::Debug.Log("SCROLL!!!"); } } } }