Skip to content

Commit 296270c

Browse files
committed
Refactoring: BattleStatus
1 parent 796fba7 commit 296270c

35 files changed

+503
-450
lines changed

Assembly-CSharp/FF9/STAT_DATA.cs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
using System;
2+
using Memoria.Data;
23

34
namespace FF9
45
{
56
public class STAT_DATA
67
{
7-
public STAT_DATA(Byte priority, Byte opr_cnt, UInt16 conti_cnt, UInt32 clear, UInt32 invalid)
8+
public STAT_DATA(Byte priority, Byte opr_cnt, UInt16 conti_cnt, BattleStatus clear, BattleStatus invalid)
89
{
910
this.priority = priority;
1011
this.opr_cnt = opr_cnt;
@@ -19,8 +20,8 @@ public STAT_DATA(Byte priority, Byte opr_cnt, UInt16 conti_cnt, UInt32 clear, UI
1920

2021
public UInt16 conti_cnt;
2122

22-
public UInt32 clear;
23+
public BattleStatus clear;
2324

24-
public UInt32 invalid;
25+
public BattleStatus invalid;
2526
}
2627
}

Assembly-CSharp/FF9/Status.cs

+8-6
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
using System;
2+
using Memoria.Data;
23

34
namespace FF9
45
{
56
public class Status
67
{
7-
public static Boolean checkCurStat(BTL_DATA btl, UInt32 status)
8-
{
9-
return (btl.stat.cur & status) != 0u;
10-
}
8+
public static Boolean checkCurStat(BTL_DATA btl, BattleStatus status)
9+
{
10+
return (btl.stat.cur & status) != 0u;
11+
}
1112

12-
public const UInt32 STATUS_MASK_FIELD = 127u;
13+
public const UInt32 STATUS_MASK_FIELD = 127u;
1314

1415
public const UInt32 STATUS_MASK_COUNT = 4026466304u;
16+
public const BattleStatus STATUS_MASK = BattleStatus.Poison | BattleStatus.Sleep | BattleStatus.Regen | BattleStatus.Haste | BattleStatus.Slow | BattleStatus.Float | BattleStatus.Shell | BattleStatus.Protect | BattleStatus.Heat | BattleStatus.Freeze | BattleStatus.Vanish | BattleStatus.Doom | BattleStatus.Reflect | BattleStatus.Jump | BattleStatus.GradualPetrify;
1517

16-
public const UInt32 STAT_OPR_POISON2 = 0u;
18+
public const UInt32 STAT_OPR_POISON2 = 0u;
1719

1820
public const UInt32 STAT_OPR_POISON = 1u;
1921

Assembly-CSharp/FF9/btl_abil.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,9 @@ private static BattleUnit FindStrongestDefender(SupportAbility2 ability, BattleU
163163

164164
public static void CheckReactionAbility(BTL_DATA btl, AA_DATA aa)
165165
{
166-
if (!Status.checkCurStat(btl, 1107300611u))
166+
if (!Status.checkCurStat(btl, BattleStatus.NoReaction))
167167
{
168-
if ((btl.sa[1] & 1048576u) != 0u && btl.cur.hp != 0 && Status.checkCurStat(btl, 512u))
168+
if ((btl.sa[1] & 1048576u) != 0u && btl.cur.hp != 0 && Status.checkCurStat(btl, BattleStatus.LowHP))
169169
{
170170
if (btl.cur.hp + btl.max.hp / 2 < btl.max.hp)
171171
{
@@ -197,7 +197,7 @@ public static void CheckStatusAbility(BattleUnit btl)
197197
if (btl.HasSupportAbility(SupportAbility1.AutoReflect))
198198
{
199199
btl.PermanentStatus |= BattleStatus.Reflect;
200-
HonoluluBattleMain.battleSPS.AddBtlSPSObj(btl, (UInt32)BattleStatus.Reflect);
200+
HonoluluBattleMain.battleSPS.AddBtlSPSObj(btl, BattleStatus.Reflect);
201201
}
202202

203203
if (btl.HasSupportAbility(SupportAbility1.AutoFloat))
@@ -210,7 +210,7 @@ public static void CheckStatusAbility(BattleUnit btl)
210210
btl.PermanentStatus |= BattleStatus.Haste;
211211
btl.ResistStatus |= BattleStatus.Slow;
212212
btl.Data.cur.at_coef = (SByte)(btl.Data.cur.at_coef * 3 / 2);
213-
HonoluluBattleMain.battleSPS.AddBtlSPSObj(btl, (UInt32)BattleStatus.Haste);
213+
HonoluluBattleMain.battleSPS.AddBtlSPSObj(btl, BattleStatus.Haste);
214214
}
215215

216216
if (btl.HasSupportAbility(SupportAbility1.AutoRegen))

Assembly-CSharp/FF9/btl_mot.cs

+12-12
Original file line numberDiff line numberDiff line change
@@ -896,11 +896,11 @@ public static Boolean DecidePlayerDieSequence(BTL_DATA btl)
896896
GeoTexAnim.geoTexAnimPlayOnce(btl.tranceTexanimptr, 0);
897897
}
898898
btl.evt.animFrame = 0;
899-
if ((btl.stat.cur & 8192u) != 0u)
899+
if ((btl.stat.cur & BattleStatus.AutoLife) != 0u)
900900
{
901901
btl.die_seq = 7;
902902
btl_cmd.SetCommand(btl.cmd[5], BattleCommandId.SysReraise, 0u, btl.btl_id, 0u);
903-
btl_stat.RemoveStatus(btl, 8192u);
903+
btl_stat.RemoveStatus(btl, BattleStatus.AutoLife);
904904
UIManager.Battle.RemovePlayerFromAction((Int32)btl.btl_id, true);
905905
return false;
906906
}
@@ -912,15 +912,15 @@ public static Boolean SetDefaultIdle(BTL_DATA btl)
912912
{
913913
FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;
914914
CMD_DATA cur_cmd = ff9Battle.cur_cmd;
915-
if (Status.checkCurStat(btl, 256u))
915+
if (Status.checkCurStat(btl, BattleStatus.Death))
916916
{
917917
if (btl.bi.player != 0 && btl.bi.dmg_mot_f == 0 && cur_cmd != null && btl != cur_cmd.regist && btl.die_seq == 0 && !btl_mot.checkMotion(btl, 4) && !btl_mot.checkMotion(btl, 9))
918918
{
919919
btl_mot.setMotion(btl, btl.bi.def_idle);
920920
}
921921
return false;
922922
}
923-
if (cur_cmd != null && (Status.checkCurStat(btl, 1107300355u) || btl.bi.dmg_mot_f != 0 || (btl_util.getSerialNumber(btl) == 2 && cur_cmd.cmd_no == BattleCommandId.MagicSword)))
923+
if (cur_cmd != null && (Status.checkCurStat(btl, BattleStatus.FrozenAnimation) || btl.bi.dmg_mot_f != 0 || (btl_util.getSerialNumber(btl) == 2 && cur_cmd.cmd_no == BattleCommandId.MagicSword)))
924924
{
925925
return false;
926926
}
@@ -936,11 +936,11 @@ public static Boolean SetDefaultIdle(BTL_DATA btl)
936936
{
937937
if (btl.bi.cover == 0 && btl.bi.dodge == 0)
938938
{
939-
if ((ff9Battle.btl_escape_key != 0 || (ff9Battle.cmd_status & 1) != 0) && !Status.checkCurStat(btl, 1107431747u))
939+
if ((ff9Battle.btl_escape_key != 0 || (ff9Battle.cmd_status & 1) != 0) && !Status.checkCurStat(btl, BattleStatus.CannotEscape))
940940
{
941941
btl_mot.setMotion(btl, 17);
942942
}
943-
else if (Status.checkCurStat(btl, 32768u))
943+
else if (Status.checkCurStat(btl, BattleStatus.Defend))
944944
{
945945
btl_mot.setMotion(btl, 13);
946946
}
@@ -955,12 +955,12 @@ public static Boolean SetDefaultIdle(BTL_DATA btl)
955955
btl_mot.setMotion(btl, 9);
956956
}
957957
}
958-
else if (btl_mot.checkMotion(btl, 0) && Status.checkCurStat(btl, 197122u))
958+
else if (btl_mot.checkMotion(btl, 0) && Status.checkCurStat(btl, BattleStatus.IdleDying))
959959
{
960960
global::Debug.LogWarning(btl.gameObject.name + " Dead");
961961
btl_mot.setMotion(btl, 7);
962962
}
963-
else if ((btl_mot.checkMotion(btl, 1) || btl_mot.checkMotion(btl, 6)) && !Status.checkCurStat(btl, 197122u))
963+
else if ((btl_mot.checkMotion(btl, 1) || btl_mot.checkMotion(btl, 6)) && !Status.checkCurStat(btl, BattleStatus.IdleDying))
964964
{
965965
btl_mot.setMotion(btl, 5);
966966
}
@@ -1040,7 +1040,7 @@ private static void PlayerDamageMotion(BTL_DATA btl)
10401040
{
10411041
if (btl_mot.checkMotion(btl, 2))
10421042
{
1043-
if (Status.checkCurStat(btl, 256u))
1043+
if (Status.checkCurStat(btl, BattleStatus.Death))
10441044
{
10451045
btl.die_seq = 1;
10461046
btl.bi.dmg_mot_f = 0;
@@ -1056,7 +1056,7 @@ private static void PlayerDamageMotion(BTL_DATA btl)
10561056
}
10571057
else if (btl_mot.checkMotion(btl, 3))
10581058
{
1059-
if (Status.checkCurStat(btl, 256u))
1059+
if (Status.checkCurStat(btl, BattleStatus.Death))
10601060
{
10611061
btl.die_seq = 5;
10621062
btl.bi.dmg_mot_f = 0;
@@ -1073,7 +1073,7 @@ private static void PlayerDamageMotion(BTL_DATA btl)
10731073
{
10741074
btl_mot.setMotion(btl, 11);
10751075
}
1076-
else if (Status.checkCurStat(btl, 197122u))
1076+
else if (Status.checkCurStat(btl, BattleStatus.IdleDying))
10771077
{
10781078
btl.bi.dmg_mot_f = 0;
10791079
}
@@ -1092,7 +1092,7 @@ private static void PlayerDamageMotion(BTL_DATA btl)
10921092
public static void EnemyDamageMotion(BTL_DATA btl)
10931093
{
10941094
btl.bi.dmg_mot_f = 0;
1095-
if (Status.checkCurStat(btl, 256u))
1095+
if (Status.checkCurStat(btl, BattleStatus.Death))
10961096
{
10971097
if (btl_mot.checkMotion(btl, 3) && btl_util.getEnemyPtr(btl).info.die_dmg != 0)
10981098
{

Assembly-CSharp/FF9/btl_sys.cs

+6-6
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ public static void CheckBattlePhase(BTL_DATA btl)
5454
Int32 num1 = 6; /*btl.bi.player == 0 ? 6 : 6*/
5555
for (BTL_DATA next = ff9Battle.btl_list.next; next != null; next = next.next)
5656
{
57-
if (next.bi.player == btl.bi.player && (!Status.checkCurStat(next, 4355U) || Status.checkCurStat(next, 256U) && next.die_seq != num1))
57+
if (next.bi.player == btl.bi.player && (!Status.checkCurStat(next, BattleStatus.BattleEnd) || Status.checkCurStat(next, BattleStatus.Death) && next.die_seq != num1))
5858
return;
5959
}
6060
if (btl.bi.player == 0)
6161
{
6262
Int32 num2 = 0;
6363
for (BTL_DATA next = ff9Battle.btl_list.next; next != null; next = next.next)
6464
{
65-
if (next.bi.player != 0 && (!Status.checkCurStat(next, 4355U) || (next.cur.hp == 0 || Status.checkCurStat(next, 256U)) && Status.checkCurStat(next, 8192U) || btl_cmd.CheckSpecificCommand(next, BattleCommandId.SysReraise)))
65+
if (next.bi.player != 0 && (!Status.checkCurStat(next, BattleStatus.BattleEnd) || (next.cur.hp == 0 || Status.checkCurStat(next, BattleStatus.Death)) && Status.checkCurStat(next, BattleStatus.AutoLife) || btl_cmd.CheckSpecificCommand(next, BattleCommandId.SysReraise)))
6666
{
6767
num2 = 1;
6868
break;
@@ -81,7 +81,7 @@ public static void CheckBattlePhase(BTL_DATA btl)
8181
{
8282
case 10:
8383
case 11:
84-
if (!Status.checkCurStat(next, 4163U))
84+
if (!Status.checkCurStat(next, BattleStatus.Petrify | BattleStatus.Venom | BattleStatus.Zombie | BattleStatus.Stop))
8585
{
8686
if (btl_cmd.CheckSpecificCommand(next, BattleCommandId.SysLastPhoenix))
8787
return;
@@ -115,7 +115,7 @@ public static void CheckBattleMenuOff(BattleUnit btl)
115115
if (next.PlayerIndex == CharacterIndex.Eiko)
116116
btl1 = next;
117117

118-
if (next.IsPlayer == btl.IsPlayer && (!next.IsUnderStatus((BattleStatus)4355U) || (next.CurrentHp == 0 || next.IsUnderStatus(BattleStatus.Death)) && next.IsUnderStatus(BattleStatus.AutoLife) || btl_cmd.CheckSpecificCommand(next.Data, BattleCommandId.SysReraise)))
118+
if (next.IsPlayer == btl.IsPlayer && (!next.IsUnderStatus(BattleStatus.BattleEnd) || (next.CurrentHp == 0 || next.IsUnderStatus(BattleStatus.Death)) && next.IsUnderStatus(BattleStatus.AutoLife) || btl_cmd.CheckSpecificCommand(next.Data, BattleCommandId.SysReraise)))
119119
return;
120120
}
121121

@@ -132,7 +132,7 @@ public static void CheckForecastMenuOff(BTL_DATA btl)
132132
FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;
133133
for (BTL_DATA next = ff9Battle.btl_list.next; next != null; next = next.next)
134134
{
135-
if (next.bi.player == 0 && !Status.checkCurStat(next, 256U))
135+
if (next.bi.player == 0 && !Status.checkCurStat(next, BattleStatus.Death))
136136
return;
137137
}
138138
UIManager.Battle.FF9BMenu_EnableMenu(false);
@@ -260,7 +260,7 @@ public static void SavePlayerData(BTL_DATA btl, Boolean removingUnit)
260260
if (btl.cur.hp == 0)
261261
{
262262
/*int num = (int)*/
263-
btl_stat.AlterStatus(btl, 256U);
263+
btl_stat.AlterStatus(btl, BattleStatus.Death);
264264
}
265265
btl_stat.SaveStatus(playerPtr, btl);
266266
}

Assembly-CSharp/FF9/btl_util.cs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using Memoria;
3+
using Memoria.Data;
34
using Memoria.Scripts;
45
using UnityEngine;
56

@@ -73,7 +74,7 @@ public static UInt32 SumOfTarget(UInt32 player)
7374
UInt32 num = 0u;
7475
for (BTL_DATA next = FF9StateSystem.Battle.FF9Battle.btl_list.next; next != null; next = next.next)
7576
{
76-
if ((UInt32)next.bi.player == player && next.bi.target != 0 && !Status.checkCurStat(next, 256u))
77+
if ((UInt32)next.bi.player == player && next.bi.target != 0 && !Status.checkCurStat(next, BattleStatus.Death))
7778
{
7879
num += 1u;
7980
}
@@ -91,7 +92,7 @@ public static UInt16 GetRandomBtlID(UInt32 player)
9192
}
9293
for (BTL_DATA next = FF9StateSystem.Battle.FF9Battle.btl_list.next; next != null; next = next.next)
9394
{
94-
if ((UInt32)next.bi.player == player && !Status.checkCurStat(next, 256u) && next.bi.target != 0)
95+
if ((UInt32)next.bi.player == player && !Status.checkCurStat(next, BattleStatus.Death) && next.bi.target != 0)
9596
{
9697
UInt16[] array2 = array;
9798
UInt16 num2 = num;
@@ -135,7 +136,7 @@ public static Boolean ManageBattleSong(FF9StateGlobal sys, UInt32 ticks, UInt32
135136
return true;
136137
}
137138

138-
public static UInt16 GetStatusBtlID(UInt32 list_no, UInt32 status)
139+
public static UInt16 GetStatusBtlID(UInt32 list_no, BattleStatus status)
139140
{
140141
UInt16 num = 0;
141142
for (BTL_DATA next = FF9StateSystem.Battle.FF9Battle.btl_list.next; next != null; next = next.next)

Assembly-CSharp/Global/Achievement/AchievementState.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Collections.Generic;
33
using Assets.SiliconSocial;
4+
using Memoria.Data;
45
using UnityEngine;
56

67
public class AchievementState : MonoBehaviour
@@ -132,7 +133,7 @@ public static Int32 ConvertAchievementStatusToData(AchievementStatusesEnum statu
132133

133134
public Int32 trance_no;
134135

135-
public UInt32 abnormal_status;
136+
public BattleStatus abnormal_status;
136137

137138
public Boolean summon_shiva;
138139

Assembly-CSharp/Global/BTL_SCENE.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public void ReadBattleScene(String name)
4949
SB2_MON_PARM sb2_MON_PARM = this.MonAddr[k] = new SB2_MON_PARM();
5050
for (Int32 l = 0; l < 3; l++)
5151
{
52-
sb2_MON_PARM.Status[l] = binaryReader.ReadUInt32();
52+
sb2_MON_PARM.Status[l] = (BattleStatus)binaryReader.ReadUInt32();
5353
}
5454
sb2_MON_PARM.MaxHP = binaryReader.ReadUInt16();
5555
sb2_MON_PARM.MaxMP = binaryReader.ReadUInt16();

Assembly-CSharp/Global/Honolulu/HonoluluBattleMain.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@ private void ProcessActiveTime(BTL_DATA btl)
488488
}
489489
else
490490
{
491-
if (!btl_stat.CheckStatus(btl, 33685506U))
491+
if (!btl_stat.CheckStatus(btl, BattleStatus.Venom | BattleStatus.Sleep | BattleStatus.Freeze))
492492
needContinue = false;
493493
}
494494
}
@@ -500,12 +500,12 @@ private void ProcessActiveTime(BTL_DATA btl)
500500
if (!Configuration.Fixes.IsKeepRestTimeInBattle)
501501
current.at = maximum.at;
502502

503-
if (btl_stat.CheckStatus(btl, 33685506U))
503+
if (btl_stat.CheckStatus(btl, BattleStatus.Venom | BattleStatus.Sleep | BattleStatus.Freeze))
504504
continue;
505505

506506
if (btl.bi.player != 0)
507507
{
508-
if (btl_stat.CheckStatus(btl, 3072U))
508+
if (btl_stat.CheckStatus(btl, BattleStatus.Confuse | BattleStatus.Berserk))
509509
{
510510
Int32 num = 0;
511511
while (1 << num != btl.btl_id)

Assembly-CSharp/Global/JsonParser.cs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Globalization;
4+
using Memoria.Data;
45
using SimpleJSON;
56
using UnityEngine;
67

@@ -93,7 +94,7 @@ public void ParseFromFF9StateSystem(JSONClass rootNode, JSONClass schemaNode)
9394
{
9495
{
9596
"00001_abnormal_status",
96-
FF9StateSystem.Achievement.abnormal_status.ToString()
97+
((UInt32)FF9StateSystem.Achievement.abnormal_status).ToString()
9798
},
9899
{
99100
"00002_summon_shiva",
@@ -164,7 +165,7 @@ public void ParseFromFF9StateSystem(JSONClass rootNode, JSONClass schemaNode)
164165
{
165166
{
166167
"00001_abnormal_status",
167-
FF9StateSystem.Achievement.abnormal_status.GetType().ToString()
168+
((UInt32)FF9StateSystem.Achievement.abnormal_status).GetType().ToString()
168169
},
169170
{
170171
"00002_summon_shiva",
@@ -319,7 +320,7 @@ public void ParseToFF9StateSystem(JSONNode rootNode)
319320
}
320321
if (jsonnode["98000_Achievement"]["00001_abnormal_status"] != null)
321322
{
322-
FF9StateSystem.Achievement.abnormal_status = jsonnode["98000_Achievement"]["00001_abnormal_status"].AsUInt;
323+
FF9StateSystem.Achievement.abnormal_status = (BattleStatus)jsonnode["98000_Achievement"]["00001_abnormal_status"].AsUInt;
323324
}
324325
if (jsonnode["98000_Achievement"]["00002_summon_shiva"] != null)
325326
{

Assembly-CSharp/Global/SB2/SB2_MON_PARM.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
using System;
2+
using Memoria.Data;
23

34
public class SB2_MON_PARM
45
{
56
public SB2_MON_PARM()
67
{
7-
this.Status = new UInt32[3];
8+
this.Status = new BattleStatus[3];
89
this.WinItems = new Byte[4];
910
this.StealItems = new Byte[4];
1011
this.Mot = new UInt16[6];
@@ -22,7 +23,7 @@ public SB2_MON_PARM()
2223

2324
public const Int32 Size = 116;
2425

25-
public UInt32[] Status;
26+
public BattleStatus[] Status;
2627

2728
public UInt16 MaxHP;
2829

0 commit comments

Comments
 (0)