Anonymous

Changes

From Final Fantasy Inside

FF7/Field/Script/Opcodes/50 WINDOW

556 bytes added, 10:53, 8 September 2020
Add window position adjustments
==== Description ====
Creates a window with a given ID and placement/size parameters. Windows are used to show [[FF7/Field/Script/Opcodes/40 MESSAGE|dialog]], present [[FF7/Field/Script/Opcodes/48 ASK|choices]] and so on, each of which reference the window's ID to insert text. This command only initializes a window ID, but does not present itself until a dialog command is issued on it.
 
Adjustments are made for windows that are either too close an edge, or the width / height is too big for the screen. Eg:
 
// Adjust window position if too close to an edge
const MIN_WINDOW_DISTANCE = 8 // Looks about right
if (x < MIN_WINDOW_DISTANCE) { dialog.x = MIN_WINDOW_DISTANCE }
if (y < MIN_WINDOW_DISTANCE) { dialog.y = MIN_WINDOW_DISTANCE }
if (x + w + MIN_WINDOW_DISTANCE > GAME_WIDTH) { dialog.x = GAME_WIDTH - w - MIN_WINDOW_DISTANCE }
if (y + h + MIN_WINDOW_DISTANCE > GAME_HEIGHT) { dialog.y = GAME_HEIGHT - h - MIN_WINDOW_DISTANCE }
50
edits