Changes

Jump to navigation Jump to search

FF7/Field/DialogWindow

908 bytes added, 17:39, 17 September 2007
no edit summary
== Functions ==
 
dialog_copy_text_from_field:
First we set reading parameters.
If 800832A2 (cbc) 0x02 bit is set then A1 = 0x100, S5 = 1. This will cause all characters show at once.
If 800832A2 (cbc) 0x02 bit is not set then we check if "OK" button (0x0020) pressed. If yes we increment 80114480 by 1 (but no more than 80), if not - decrement by 1 (no less than 1).
If 800832A2 (cbc) 0x02 bit is not set and message speed < 0x80 then we set A1 = ((80 - message speed) / 32) + 2. S5 = 1.
If 800832A2 (cbc) 0x02 bit is not set and message speed >= 0x80 then we set A1 = 2. S5 = ((message speed - 80) / 32) + 1.
Now we use A1, S5, 80114480 and 80114470 to calculate 80114470 value which will be used to calculate if we must continue reading characters or not. 80114470 = 80114470 + S5 * 80114480 / 10 + A1.
Now we will read characters until 80114470 <= S5 if so - end string copy until next call.
 
dialog_window_init:
Anonymous user

Navigation menu