Difference between revisions of "FF7/Battle/Battle Mechanics"

From Final Fantasy Inside
< FF7‎ | Battle
Jump to navigation Jump to search
my_wiki>NFITC1
(Active Character Data)
my_wiki>NFITC1
Line 18: Line 18:
 
|-
 
|-
 
|}
 
|}
 +
 +
==Queued Actions==
 +
When a command is selected either by a player character or an enemy the action gets queued in a FIFO structure while there are actions queued or one is being performed. Up to 64 actions can be queued. This does not contain Counter Attacks or Limit Breaks.
 +
 +
{| border="1" cellspacing="1" cellpadding="3" align="center" style="border: 1px solid black; border-collapse: collapse;"
 +
! style="background:rgb(204,204,204)" align="center" | Offset
 +
! style="background:rgb(204,204,204)" | Value
 +
|-
 +
| 0
 +
| Command Index
 +
|-
 +
| 1
 +
| Command's Actor
 +
|-
 +
| 2
 +
| Unknown
 +
|-
 +
| 3
 +
| AI-related function parameter
 +
|-
 +
| 4
 +
| Target Mask
 +
|-
 +
| 6
 +
| Action Index
 +
|}
 +
  
 
==AI Structure==
 
==AI Structure==

Revision as of 23:21, 17 September 2013

This page will be for Battle memory structures. May be pretty unstructured for a while.

Command Defaults

Each command type has default execution values that can, in some cases, be overridden.

Offset Default
0h Animation
1h Damage Calculation
2h Command Properties

Queued Actions

When a command is selected either by a player character or an enemy the action gets queued in a FIFO structure while there are actions queued or one is being performed. Up to 64 actions can be queued. This does not contain Counter Attacks or Limit Breaks.

Offset Value
0 Command Index
1 Command's Actor
2 Unknown
3 AI-related function parameter
4 Target Mask
6 Action Index


AI Structure

There is a single block of memory that holds AI information on the current running script. Each Actor "owns" this while their scripts are executing.

Offset Function
0h Actor Index
4h Script Position
8h Remaining Stack Space (initially 200h)
0Ch Current AI OpCode
10h OpCode Lower Nybble
14h OpCode Upper Nybble
18h First Group Type
1Ch Second Group Type
20h OpCode Lower Nybble (related to group 1?)
24h OpCode Lower Nybble (related to group 2?)
28h Mask of non-null values in Group 1
2Ah Mask of non-null values in Group 2
2Ch - 50h Group 1 of variables
54h - 78h Group 2 of variables
7Ch - 27Ch Stack of values

Active Character Data

This is an array that each playable character maintains an instance of. (These addresses are off)

Offset Value
000h Character ID
001h Cover Chance
002h Strength
003h Vitality
004h Magic
005h Spirit
006h Speed
007h Luck
008h Phys Attack
00Ah Phys Def
00Ch Mag Attack
00Eh Mag Def
010h Current HP
012h Max HP
014h Current MP
016h Max MP
018h Timer
01Ah Counter Attack Action Index
01Ch Counter Attack Chance
021h Some sort of divisor
022h Character Flags (Underwater, Long Range, HP<->MP, etc)
023h Eight entries of three bytes...
03Ch Attacking Elements
03Eh Halved Elements
040h Nullified Elements
042h Absorbed Elements
044h Attacking Elements
046h Self Mask as a DWord
04Ah Immune Statuses
04Eh Enabled Command Menu (16 entries of 6 bytes)
0ACh Limit Actions for current Limit Level
0B8h Enabled Limit Data (three entries in Attack Data format)
10Ch Enabled Magics (54 entries of 8 bytes)
0 Magic Index
1h MP Cost
2h All Count
3h Quad Enabled?
4h Quad Count?
5h Target Data
6h Properties
2CCh Enabled Summons (format like above)
32Ch Enabled ESkills (format like above)
40Ch First 11 bytes of Weapon Data
41Ch Elements added to Attacking Elements above
420h Four sets of two DWords : (Stat to increase, Increase value)
43Ch Gil Bonus granted by this character
43Dh Encounter rate ""
43Eh Chocobo Chance ""
43Fh PreEmptive Chance ""