1#ifndef ALCHEMY_WINDOW_INTERNAL_H
2#define ALCHEMY_WINDOW_INTERNAL_H
63#include "text/msg_ids.h"
98#if (LANGUAGE == LANGUAGE_SPANISH)
99#define ITEM_POSSESSIVE_TEXT_COUNT 2
101#define ITEM_POSSESSIVE_TEXT_COUNT 4
104#if (LANGUAGE == LANGUAGE_GERMAN) || (LANGUAGE == LANGUAGE_SPANISH) || \
105 (LANGUAGE == LANGUAGE_FRENCH) || (LANGUAGE == LANGUAGE_ITALIAN)
106#define TEXT_ARGUMENT_SPACE ' '
108#define TEXT_ARGUMENT_SPACE 143
111#if (LANGUAGE == LANGUAGE_JAPANESE)
112#define UI_SPRITE_SPACE_WIDTH 7
114#define UI_SPRITE_SPACE_WIDTH 5
126#define NO_GLYPH_RESOURCE 99
129#define UI_MESSAGE_CHANNEL_COUNT 3
130#define UI_MESSAGE_LINE_COUNT 4
131#define UI_TEXT_DEFAULT_COLOUR 15
132#define UI_TEXT_DEFAULT_LINE_SPACING 10
133#define UI_TILEMAP_PALETTE 15
136#define UI_WINDOW_OPEN_FRAMES 8
137#define UI_WINDOW_CLOSE_FRAMES 4
138#define UI_PALETTE_SLOT_FREE 999
139#define UI_CANVAS_BACKGROUND_WORD 0x44444444
142#define UI_NUMBER_BUFFER_SIZE 16
143#define UI_BYTE_STRING_BUFFER_SIZE 0x200
144#define UI_MESSAGE_NAME_HALFWORDS 24
145#define UI_ARGUMENT_SLOT_COUNT 8
146#define UI_SELECTION_ENTRY_LIMIT 16
147#define UI_AREA_NOTICE_FRAMES 90
173#define TEXT_CODE_MARK_SHIFT 14
174#define TEXT_CODE_VOICED (1 << TEXT_CODE_MARK_SHIFT)
175#define TEXT_CODE_SEMIVOICED (2 << TEXT_CODE_MARK_SHIFT)
180#define UI_WINDOW_EFFECT_SWELL 4
187#define TEXT_WORK_BLOCK 50
Sprite rotation and scale, and the affine matrices handed out each frame.
Animated sprites: their layers, frames and colour modes, and the resource slots they draw from.
B5Context, the object context a battle routine reads; most of its fields are still unnamed.
BattleEffectWork, the running battle effect's work, and its animation objects.
Which units are in a battle, and the Djinn recovery list.
Summons and the battle sprite definitions of the enemy classes.
BattleUnit_Recalculate, which recalculates a unit's stats.
BattlePlan, an action planned for its targets: the hits, criticals and multipliers rolled.
BattleUnit, a party member's or enemy's battle state, with the elements, abilities and actions it use...
BattleWork, the battle's own work, and the battle display work.
The task scheduler: tasks, their order and the scheduler's state.
The engine calls the debug menus import, and their palette swatch tiles.
The display transition's frames, windows and state.
The Djinn preview's sprites and arrow tiles.
DMA channel registers, and the DMA and CPU fills.
The edition's language, for C to compare (LANGUAGE == LANGUAGE_GERMAN).
EffectStep and EffectPosition, the positions effects move through.
The scene script layer: the engine services a scene's events call, declared once (Engine_EventBegin,...
16.16 fixed-point constants, sine and cosine, and the library division.
Game flags, named where their meaning is shown.
FourObjectMotion, the row of four figures the Status and Djinn menus show.
The frame loop's globals: lag counts, the CPU load display and the VBlank flags.
GameState, the game's state: play time, coins, the scene and the leader's position,...
The work slots of gWorkSlot, read through their own names.
Font glyphs and their palettes.
The screen blend's globals and the graphics routines.
The heap's work slots and HeapState.
The hardware's I/O registers and their bits, as pret names them.
The register write queue that VBlank carries out after each finished frame.
The hardware's interrupt sources and the interrupt handler table.
Items: their definitions, types, flags and effects.
The IWRAM call layer: the routines the game keeps resident in IWRAM, each at its fixed address,...
The keypad state the VBlank interrupt keeps.
Declares nothing of its own: it only includes types.h and edition.h.
Small statement macros both games use for positions, velocities and bounds.
The heaps: allocating and freeing blocks.
The reel game's title lettering.
MotionObject, an effect object that moves and draws one sprite.
Declares nothing of its own: it only includes edition.h and render_input.h.
Declares nothing of its own: it only includes battle_system.h.
Declares nothing of its own: it only includes static_assert.h and game_state.h.
The work pointers in the gWorkSlot table, by name.
Copying ARM routines to RAM to run them there.
Resource numbers, named where their contents are known.
Declares nothing of its own: it only includes edition.h and types.h.
The save workspace: slot headers and summaries.
FIELD_AT_OFFSET and the entity and camera views older scene code reads.
The selection screen's sprites and nodes.
The link cable's runtime: serial packets, registers and transfer state.
ShopRuntime, a shop's work, and the shop screen's tiles.
Song and sound effect ids, indices into gSound_SongTable.
STATIC_ASSERT, a compile-time check that emits nothing.
A window: a framed rectangle of the tilemap with its sprite outputs, its opening or closing animation...
The system's routines and globals: interrupts, BIOS sound bias, random numbers and sleep.
Values that differ by patch level or language, chosen once for their code.
The kanji glyphs and the text marks drawn with characters.
TextReader, a cursor through message text.
Declares nothing of its own: it only includes edition.h and render_input.h.
void UiWindow_ClearTileAttributesInRect(s32 x, s32 y, u32 width, u32 height)
Marks the text tiles under a tilemap rectangle (x, y, width and height in tiles) as no longer shown,...
The integer types, TRUE, UNUSED and the fixed-address macros.
UiWork, the window system's work, and the status screen's cursors.
Declares nothing of its own: it only includes edition.h and uiwindow.h.
UiWindow, a window's work, and marking its tilemap rows for transfer.
Declares nothing of its own: it only includes the window, battle command, resource and VRAM table hea...
The sprite VRAM block cache and its owners.
void UiWindow_PutGlyph(struct UiWindow *win, u32 tile, u32 x, u32 y, s32 mode)
Puts a character into a window's tilemap as a tile at tile (x, y) of its interior.
The window renderer's work.
@ TEXT_PAUSE_SHORT
a 20-frame pause a button can cut short
@ TEXT_WINDOW_STATE
the next entry is the window effect to run
@ TEXT_PAUSE_LONGEST
a 120-frame pause a button can cut short
@ TEXT_OUTLINE
the next entry is the outline colour
@ TEXT_WAIT_KEY
wait for a button, then close the window
@ TEXT_VOICED_MARK
dakuten
@ TEXT_PAGE
wait for a button, then clear the window for a new page
@ TEXT_SEMIVOICED_MARK
handakuten
@ TEXT_COLOUR
the next entry is the text colour
@ TEXT_LINE_SPACING
the next entry is the line spacing
@ TEXT_PAUSE_LONG
a 60-frame pause
const void *const Text_MessageContexts[][2]
Each message context bank's Huffman models and their offsets, which the message catalog built from ga...
@ HEAP_SLOT_BATTLE_DISPLAY
GlyphTransfer * gGlyphWork
The glyph transfer work in IWRAM (system/iwram.s), which icons are built in.
The options screen's work and the selection work.